From 21116cb6d75df5c9f556479a6434ca7021b8d0ea Mon Sep 17 00:00:00 2001 From: mayoreee Date: Sun, 7 May 2023 05:55:10 +0200 Subject: [PATCH 1/6] update --- src/primitives/Account/Account.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/primitives/Account/Account.ts b/src/primitives/Account/Account.ts index 030d72a..00e06d0 100644 --- a/src/primitives/Account/Account.ts +++ b/src/primitives/Account/Account.ts @@ -80,7 +80,7 @@ export class Account { } } // @ts-ignore - async sendTransaction(transactionOpts:{recipientAddress: string, recipientAmount:number, memo?: string}, lcdcUrl?: string): any{ + async sendTransaction(transactionOpts:{recipientAddress: string, recipientAmount:number, memo?: string, fee?: string}, lcdcUrl?: string, chainId?: string): any{ // create a simple message that moves coin balances const send = new MsgSend( this.getAddress(), @@ -94,9 +94,9 @@ export class Account { txOpts.memo = transactionOpts.memo; } - const URL = lcdcUrl ?? 'http://51.38.52.37:1317'; + const URL = lcdcUrl ?? 'http://64.92.191.45:1317'; const lcdc = new LCDClient({ - chainID: 'jmes-888', + chainID: chainId ?? 'jmes-testnet-1', // chainID: 'testing', URL, isClassic: true From ed3206ba39ec2aa10a149cefe0866d8937aec9e2 Mon Sep 17 00:00:00 2001 From: mayoreee Date: Sun, 7 May 2023 07:31:20 +0200 Subject: [PATCH 2/6] update --- src/Client/providers/LCDClient/lcd/LCDClient.ts | 7 ++++++- src/primitives/Account/Account.ts | 9 ++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/Client/providers/LCDClient/lcd/LCDClient.ts b/src/Client/providers/LCDClient/lcd/LCDClient.ts index 967fbab..c358d23 100644 --- a/src/Client/providers/LCDClient/lcd/LCDClient.ts +++ b/src/Client/providers/LCDClient/lcd/LCDClient.ts @@ -59,7 +59,9 @@ const DEFAULT_LCD_OPTIONS: Partial = { // forked network : false const DEFAULT_NETWORK_TYPE_BY_CHAIN_ID: { [key: string]: boolean } = { default: false, - 'jmes-888': true + 'jmes-888': true, + 'jmes-testnet-1': true + }; const DEFAULT_GAS_PRICES_BY_CHAIN_ID: { [key: string]: Coins.Input } = { @@ -69,6 +71,9 @@ const DEFAULT_GAS_PRICES_BY_CHAIN_ID: { [key: string]: Coins.Input } = { 'jmes-888': { ujmes: 0.15, }, + 'jmes-testnet-1': { + ujmes: 0.15, + }, }; /** diff --git a/src/primitives/Account/Account.ts b/src/primitives/Account/Account.ts index 00e06d0..e8ca382 100644 --- a/src/primitives/Account/Account.ts +++ b/src/primitives/Account/Account.ts @@ -99,16 +99,19 @@ export class Account { chainID: chainId ?? 'jmes-testnet-1', // chainID: 'testing', URL, - isClassic: true + isClassic: true, }); - + console.log("lcdurl: ", URL) + console.log("chainId: ", chainId) // @ts-ignore return lcdc.wallet(new RawKey(this.getPrivate())) //@ts-ignore .createAndSignTx(txOpts) //@ts-ignore - .then(tx => lcdc.tx.broadcast(tx)) + .then(tx => { + console.log("tx to be broadcasted: ", tx); + lcdc.tx.broadcast(tx)}) //@ts-ignore .then(result => { console.log(`TX hash: ${result.txhash}`); From 20dc669a0e6f45c7b07635c169a502a8257b561b Mon Sep 17 00:00:00 2001 From: mayoreee Date: Sun, 7 May 2023 08:01:39 +0200 Subject: [PATCH 3/6] update --- build/Client/api/APIRequester.d.ts | 4 +-- build/Client/api/APIRequester.js | 2 +- .../FaucetAPI/methods/requestCredit.js | 2 +- .../IdentityAPI/methods/createIdentity.js | 2 +- .../IdentityAPI/methods/getIdentity.js | 2 +- .../providers/IdentityAPI/methods/getToken.js | 2 +- .../providers/LCDClient/core/Denom.d.ts | 2 +- .../Client/providers/LCDClient/core/Msg.d.ts | 2 +- .../providers/LCDClient/core/PublicKey.d.ts | 2 +- .../providers/LCDClient/core/SignatureV2.d.ts | 2 +- build/Client/providers/LCDClient/core/Tx.d.ts | 2 +- .../LCDClient/core/auth/Account.d.ts | 2 +- .../authz/authorizations/Authorization.d.ts | 2 +- .../authorizations/StakeAuthorization.d.ts | 2 +- .../LCDClient/core/authz/msgs/index.d.ts | 2 +- .../LCDClient/core/bank/msgs/index.d.ts | 2 +- .../providers/LCDClient/core/bech32.d.ts | 10 +++--- .../LCDClient/core/crisis/index.d.ts | 2 +- .../core/distribution/msgs/index.d.ts | 2 +- .../core/feegrant/allowances/index.d.ts | 2 +- .../LCDClient/core/feegrant/msgs/index.d.ts | 2 +- .../LCDClient/core/gov/Proposal.d.ts | 2 +- .../providers/LCDClient/core/gov/Vote.d.ts | 4 +-- .../LCDClient/core/gov/msgs/MsgVote.d.ts | 2 +- .../LCDClient/core/gov/msgs/index.d.ts | 2 +- .../core/ibc/applications/transfer/index.d.ts | 2 +- .../core/ibc/msgs/channel/index.d.ts | 2 +- .../LCDClient/core/ibc/msgs/client/index.d.ts | 2 +- .../core/ibc/msgs/connection/index.d.ts | 2 +- .../LCDClient/core/market/msgs/index.d.ts | 2 +- .../LCDClient/core/oracle/msgs/index.d.ts | 2 +- .../LCDClient/core/slashing/msgs/index.d.ts | 2 +- .../LCDClient/core/staking/Validator.d.ts | 2 +- .../LCDClient/core/staking/msgs/index.d.ts | 2 +- .../LCDClient/core/vesting/msgs/index.d.ts | 2 +- .../LCDClient/core/wasm/msgs/index.d.ts | 2 +- .../Client/providers/LCDClient/key/CLIKey.js | 2 +- build/Client/providers/LCDClient/key/Key.js | 2 +- .../Client/providers/LCDClient/key/RawKey.js | 2 +- .../providers/LCDClient/lcd/APIRequester.d.ts | 6 ++-- .../providers/LCDClient/lcd/APIRequester.js | 2 +- .../providers/LCDClient/lcd/LCDClient.js | 8 ++--- .../providers/LCDClient/lcd/LCDClient.js.map | 2 +- .../providers/LCDClient/lcd/LCDUtils.js | 2 +- .../Client/providers/LCDClient/lcd/Wallet.js | 2 +- .../providers/LCDClient/lcd/api/AuthAPI.js | 2 +- .../providers/LCDClient/lcd/api/AuthzAPI.js | 2 +- .../providers/LCDClient/lcd/api/BankAPI.js | 2 +- .../LCDClient/lcd/api/DistributionAPI.js | 2 +- .../LCDClient/lcd/api/FeeGrantAPI.js | 2 +- .../providers/LCDClient/lcd/api/GovAPI.js | 2 +- .../providers/LCDClient/lcd/api/IbcAPI.js | 2 +- .../LCDClient/lcd/api/IbcTransferAPI.js | 2 +- .../providers/LCDClient/lcd/api/MarketAPI.js | 2 +- .../providers/LCDClient/lcd/api/MintAPI.js | 2 +- .../providers/LCDClient/lcd/api/OracleAPI.js | 2 +- .../LCDClient/lcd/api/SlashingAPI.js | 2 +- .../providers/LCDClient/lcd/api/StakingAPI.js | 2 +- .../LCDClient/lcd/api/TendermintAPI.js | 2 +- .../LCDClient/lcd/api/TreasuryAPI.js | 2 +- .../providers/LCDClient/lcd/api/TxAPI.d.ts | 10 +++--- .../providers/LCDClient/lcd/api/TxAPI.js | 2 +- .../LCDClient/lcd/api/UpgradeAPI.ts.js | 2 +- .../providers/LCDClient/lcd/api/WasmAPI.js | 2 +- .../MarketplaceAPI/methods/findItem.js | 2 +- .../MarketplaceAPI/methods/getAllItems.js | 2 +- .../MarketplaceAPI/methods/getAuthor.js | 2 +- .../MarketplaceAPI/methods/getAuthors.js | 2 +- .../MarketplaceAPI/methods/getFeed.js | 2 +- .../MarketplaceAPI/methods/getItem.js | 2 +- .../MarketplaceAPI/methods/mintItem.js | 2 +- .../MarketplaceAPI/methods/postItemOffer.js | 2 +- .../MarketplaceAPI/methods/postItemVote.js | 2 +- build/primitives/Account/Account.d.ts | 3 +- build/primitives/Account/Account.js | 19 ++++++---- build/primitives/Account/Account.js.map | 2 +- build/primitives/Bech32/Bech32.d.ts | 10 +++--- build/primitives/Denom/Denom.d.ts | 2 +- dist/749a262fc99fcdda51f3.module.wasm | Bin 190035 -> 0 bytes dist/jmes.min.js | 3 -- dist/jmes.min.js.LICENSE.txt | 33 ------------------ dist/jmes.min.js.map | 1 - .../providers/LCDClient/lcd/LCDClient.ts | 8 ++--- src/primitives/Account/Account.ts | 4 +-- 84 files changed, 113 insertions(+), 148 deletions(-) delete mode 100644 dist/749a262fc99fcdda51f3.module.wasm delete mode 100644 dist/jmes.min.js delete mode 100644 dist/jmes.min.js.LICENSE.txt delete mode 100644 dist/jmes.min.js.map diff --git a/build/Client/api/APIRequester.d.ts b/build/Client/api/APIRequester.d.ts index ac3c053..27eb206 100644 --- a/build/Client/api/APIRequester.d.ts +++ b/build/Client/api/APIRequester.d.ts @@ -1,5 +1,5 @@ -/// -export declare type APIParams = Record; +/// +export type APIParams = Record; export interface Pagination { next_key: string | null; total: number; diff --git a/build/Client/api/APIRequester.js b/build/Client/api/APIRequester.js index aded7b5..765b935 100644 --- a/build/Client/api/APIRequester.js +++ b/build/Client/api/APIRequester.js @@ -14,7 +14,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); - while (_) try { + while (g && (g = 0, op[0] && (_ = 0)), _) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { diff --git a/build/Client/providers/FaucetAPI/methods/requestCredit.js b/build/Client/providers/FaucetAPI/methods/requestCredit.js index 7d1744f..9aab3a5 100644 --- a/build/Client/providers/FaucetAPI/methods/requestCredit.js +++ b/build/Client/providers/FaucetAPI/methods/requestCredit.js @@ -14,7 +14,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); - while (_) try { + while (g && (g = 0, op[0] && (_ = 0)), _) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { diff --git a/build/Client/providers/IdentityAPI/methods/createIdentity.js b/build/Client/providers/IdentityAPI/methods/createIdentity.js index c3fe13d..79c7dba 100644 --- a/build/Client/providers/IdentityAPI/methods/createIdentity.js +++ b/build/Client/providers/IdentityAPI/methods/createIdentity.js @@ -14,7 +14,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); - while (_) try { + while (g && (g = 0, op[0] && (_ = 0)), _) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { diff --git a/build/Client/providers/IdentityAPI/methods/getIdentity.js b/build/Client/providers/IdentityAPI/methods/getIdentity.js index 534f808..14ba52e 100644 --- a/build/Client/providers/IdentityAPI/methods/getIdentity.js +++ b/build/Client/providers/IdentityAPI/methods/getIdentity.js @@ -14,7 +14,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); - while (_) try { + while (g && (g = 0, op[0] && (_ = 0)), _) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { diff --git a/build/Client/providers/IdentityAPI/methods/getToken.js b/build/Client/providers/IdentityAPI/methods/getToken.js index 9b444d0..256b1ee 100644 --- a/build/Client/providers/IdentityAPI/methods/getToken.js +++ b/build/Client/providers/IdentityAPI/methods/getToken.js @@ -14,7 +14,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); - while (_) try { + while (g && (g = 0, op[0] && (_ = 0)), _) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { diff --git a/build/Client/providers/LCDClient/core/Denom.d.ts b/build/Client/providers/LCDClient/core/Denom.d.ts index 591aa8b..54451d7 100644 --- a/build/Client/providers/LCDClient/core/Denom.d.ts +++ b/build/Client/providers/LCDClient/core/Denom.d.ts @@ -1 +1 @@ -export declare type Denom = string; +export type Denom = string; diff --git a/build/Client/providers/LCDClient/core/Msg.d.ts b/build/Client/providers/LCDClient/core/Msg.d.ts index 1f89833..3df583e 100644 --- a/build/Client/providers/LCDClient/core/Msg.d.ts +++ b/build/Client/providers/LCDClient/core/Msg.d.ts @@ -15,7 +15,7 @@ import { IbcConnectionMsg } from './ibc/msgs/connection'; import { IbcChannelMsg } from './ibc/msgs/channel'; import { CrisisMsg } from './crisis'; import { Any } from '@terra-money/terra.proto/google/protobuf/any'; -export declare type Msg = BankMsg | DistributionMsg | FeeGrantMsg | GovMsg | MarketMsg | MsgAuthMsg | OracleMsg | SlashingMsg | StakingMsg | VestingMsg | WasmMsg | IbcTransferMsg | IbcClientMsg | IbcConnectionMsg | IbcChannelMsg | CrisisMsg; +export type Msg = BankMsg | DistributionMsg | FeeGrantMsg | GovMsg | MarketMsg | MsgAuthMsg | OracleMsg | SlashingMsg | StakingMsg | VestingMsg | WasmMsg | IbcTransferMsg | IbcClientMsg | IbcConnectionMsg | IbcChannelMsg | CrisisMsg; export declare namespace Msg { type Amino = BankMsg.Amino | DistributionMsg.Amino | FeeGrantMsg.Amino | GovMsg.Amino | MarketMsg.Amino | MsgAuthMsg.Amino | OracleMsg.Amino | SlashingMsg.Amino | StakingMsg.Amino | VestingMsg.Amino | WasmMsg.Amino | IbcTransferMsg.Amino | CrisisMsg.Amino; type Data = BankMsg.Data | DistributionMsg.Data | FeeGrantMsg.Data | GovMsg.Data | MarketMsg.Data | MsgAuthMsg.Data | OracleMsg.Data | SlashingMsg.Data | StakingMsg.Data | VestingMsg.Data | WasmMsg.Data | IbcTransferMsg.Data | IbcClientMsg.Data | IbcConnectionMsg.Data | IbcChannelMsg.Data | CrisisMsg.Data; diff --git a/build/Client/providers/LCDClient/core/PublicKey.d.ts b/build/Client/providers/LCDClient/core/PublicKey.d.ts index cc7f3f7..c2b6256 100644 --- a/build/Client/providers/LCDClient/core/PublicKey.d.ts +++ b/build/Client/providers/LCDClient/core/PublicKey.d.ts @@ -2,7 +2,7 @@ import { JSONSerializable } from '../util/json'; import { LegacyAminoPubKey as LegacyAminoPubKey_pb } from '@terra-money/terra.proto/cosmos/crypto/multisig/keys'; import { Any } from '@terra-money/terra.proto/google/protobuf/any'; import { PubKey as PubKey_pb } from '@terra-money/terra.proto/cosmos/crypto/secp256k1/keys'; -export declare type PublicKey = SimplePublicKey | LegacyAminoMultisigPublicKey | ValConsPublicKey; +export type PublicKey = SimplePublicKey | LegacyAminoMultisigPublicKey | ValConsPublicKey; export declare namespace PublicKey { type Amino = SimplePublicKey.Amino | LegacyAminoMultisigPublicKey.Amino | ValConsPublicKey.Amino; type Data = SimplePublicKey.Data | LegacyAminoMultisigPublicKey.Data | ValConsPublicKey.Data; diff --git a/build/Client/providers/LCDClient/core/SignatureV2.d.ts b/build/Client/providers/LCDClient/core/SignatureV2.d.ts index f75f980..13542a5 100644 --- a/build/Client/providers/LCDClient/core/SignatureV2.d.ts +++ b/build/Client/providers/LCDClient/core/SignatureV2.d.ts @@ -13,7 +13,7 @@ export declare class SignatureV2 { static fromAmino(data: SignatureV2.Amino): SignatureV2; } export declare namespace SignatureV2 { - const SignMode: typeof SignMode_pb; + const SignMode: any; type SignMode = SignMode_pb; interface Amino { signature: string; diff --git a/build/Client/providers/LCDClient/core/Tx.d.ts b/build/Client/providers/LCDClient/core/Tx.d.ts index 9c839cb..8cb985d 100644 --- a/build/Client/providers/LCDClient/core/Tx.d.ts +++ b/build/Client/providers/LCDClient/core/Tx.d.ts @@ -112,7 +112,7 @@ export declare namespace ModeInfo { multi?: Multi.Data; } type Proto = ModeInfo_pb; - const SignMode: typeof SignMode_pb; + const SignMode: any; type SignMode = SignMode_pb; class Single { mode: SignMode; diff --git a/build/Client/providers/LCDClient/core/auth/Account.d.ts b/build/Client/providers/LCDClient/core/auth/Account.d.ts index 54ce8c7..4c144f8 100644 --- a/build/Client/providers/LCDClient/core/auth/Account.d.ts +++ b/build/Client/providers/LCDClient/core/auth/Account.d.ts @@ -5,7 +5,7 @@ import { ContinuousVestingAccount } from './ContinuousVestingAccount'; import { DelayedVestingAccount } from './DelayedVestingAccount'; import { PeriodicVestingAccount } from './PeriodicVestingAccount'; import { BaseVestingAccount } from './BaseVestingAccount'; -export declare type Account = BaseAccount | BaseVestingAccount | LazyGradedVestingAccount | ContinuousVestingAccount | DelayedVestingAccount | PeriodicVestingAccount; +export type Account = BaseAccount | BaseVestingAccount | LazyGradedVestingAccount | ContinuousVestingAccount | DelayedVestingAccount | PeriodicVestingAccount; /** * Stores information about an account fetched from the blockchain. */ diff --git a/build/Client/providers/LCDClient/core/authz/authorizations/Authorization.d.ts b/build/Client/providers/LCDClient/core/authz/authorizations/Authorization.d.ts index 8e9945d..2d9048f 100644 --- a/build/Client/providers/LCDClient/core/authz/authorizations/Authorization.d.ts +++ b/build/Client/providers/LCDClient/core/authz/authorizations/Authorization.d.ts @@ -26,7 +26,7 @@ export declare namespace AuthorizationGrant { } type Proto = Grant_pb; } -export declare type Authorization = SendAuthorization | GenericAuthorization | StakeAuthorization; +export type Authorization = SendAuthorization | GenericAuthorization | StakeAuthorization; export declare namespace Authorization { type Amino = SendAuthorization.Amino | GenericAuthorization.Amino; type Data = SendAuthorization.Data | GenericAuthorization.Data | StakeAuthorization.Data; diff --git a/build/Client/providers/LCDClient/core/authz/authorizations/StakeAuthorization.d.ts b/build/Client/providers/LCDClient/core/authz/authorizations/StakeAuthorization.d.ts index 6bd3a5d..62f26f5 100644 --- a/build/Client/providers/LCDClient/core/authz/authorizations/StakeAuthorization.d.ts +++ b/build/Client/providers/LCDClient/core/authz/authorizations/StakeAuthorization.d.ts @@ -36,7 +36,7 @@ export declare namespace StakeAuthorizationValidators { } export declare namespace StakeAuthorization { type Type = AuthorizationType; - const Type: typeof AuthorizationType; + const Type: any; interface Data { '@type': '/cosmos.staking.v1beta1.StakeAuthorization'; max_tokens?: Coin.Data; diff --git a/build/Client/providers/LCDClient/core/authz/msgs/index.d.ts b/build/Client/providers/LCDClient/core/authz/msgs/index.d.ts index 9da1250..04cdcc6 100644 --- a/build/Client/providers/LCDClient/core/authz/msgs/index.d.ts +++ b/build/Client/providers/LCDClient/core/authz/msgs/index.d.ts @@ -4,7 +4,7 @@ import { MsgExecAuthorized } from './MsgExecAuthorized'; export * from './MsgGrantAuthorization'; export * from './MsgRevokeAuthorization'; export * from './MsgExecAuthorized'; -export declare type MsgAuthMsg = MsgGrantAuthorization | MsgRevokeAuthorization | MsgExecAuthorized; +export type MsgAuthMsg = MsgGrantAuthorization | MsgRevokeAuthorization | MsgExecAuthorized; export declare namespace MsgAuthMsg { type Amino = MsgGrantAuthorization.Amino | MsgRevokeAuthorization.Amino | MsgExecAuthorized.Amino; type Data = MsgGrantAuthorization.Data | MsgRevokeAuthorization.Data | MsgExecAuthorized.Data; diff --git a/build/Client/providers/LCDClient/core/bank/msgs/index.d.ts b/build/Client/providers/LCDClient/core/bank/msgs/index.d.ts index 73bf69b..39943e9 100644 --- a/build/Client/providers/LCDClient/core/bank/msgs/index.d.ts +++ b/build/Client/providers/LCDClient/core/bank/msgs/index.d.ts @@ -2,7 +2,7 @@ import { MsgSend } from './MsgSend'; import { MsgMultiSend } from './MsgMultiSend'; export * from './MsgSend'; export * from './MsgMultiSend'; -export declare type BankMsg = MsgSend | MsgMultiSend; +export type BankMsg = MsgSend | MsgMultiSend; export declare namespace BankMsg { type Amino = MsgSend.Amino | MsgMultiSend.Amino; type Data = MsgSend.Data | MsgMultiSend.Data; diff --git a/build/Client/providers/LCDClient/core/bech32.d.ts b/build/Client/providers/LCDClient/core/bech32.d.ts index c5228c8..88b873a 100644 --- a/build/Client/providers/LCDClient/core/bech32.d.ts +++ b/build/Client/providers/LCDClient/core/bech32.d.ts @@ -1,13 +1,13 @@ /** `terra-` prefixed account address */ -export declare type AccAddress = string; +export type AccAddress = string; /** `terravaloper-` prefixed validator operator address */ -export declare type ValAddress = string; +export type ValAddress = string; /** `terravalcons-` prefixed validator consensus address */ -export declare type ValConsAddress = string; +export type ValConsAddress = string; /** `terrapub-` prefixed account public key */ -export declare type AccPubKey = string; +export type AccPubKey = string; /** `terravaloperpub-` prefixed validator public key */ -export declare type ValPubKey = string; +export type ValPubKey = string; export declare namespace AccAddress { /** * Checks if a string is a valid Terra account address. diff --git a/build/Client/providers/LCDClient/core/crisis/index.d.ts b/build/Client/providers/LCDClient/core/crisis/index.d.ts index f4bb9d0..a9d0bb6 100644 --- a/build/Client/providers/LCDClient/core/crisis/index.d.ts +++ b/build/Client/providers/LCDClient/core/crisis/index.d.ts @@ -1,6 +1,6 @@ import { MsgVerifyInvariant } from './MsgVerifyInvariant'; export * from './MsgVerifyInvariant'; -export declare type CrisisMsg = MsgVerifyInvariant; +export type CrisisMsg = MsgVerifyInvariant; export declare namespace CrisisMsg { type Amino = MsgVerifyInvariant.Amino; type Data = MsgVerifyInvariant.Data; diff --git a/build/Client/providers/LCDClient/core/distribution/msgs/index.d.ts b/build/Client/providers/LCDClient/core/distribution/msgs/index.d.ts index 72f587d..9332c89 100644 --- a/build/Client/providers/LCDClient/core/distribution/msgs/index.d.ts +++ b/build/Client/providers/LCDClient/core/distribution/msgs/index.d.ts @@ -6,7 +6,7 @@ export * from './MsgSetWithdrawAddress'; export * from './MsgWithdrawDelegatorReward'; export * from './MsgWithdrawValidatorCommission'; export * from './MsgFundCommunityPool'; -export declare type DistributionMsg = MsgSetWithdrawAddress | MsgWithdrawDelegatorReward | MsgWithdrawValidatorCommission | MsgFundCommunityPool; +export type DistributionMsg = MsgSetWithdrawAddress | MsgWithdrawDelegatorReward | MsgWithdrawValidatorCommission | MsgFundCommunityPool; export declare namespace DistributionMsg { type Amino = MsgSetWithdrawAddress.Amino | MsgWithdrawDelegatorReward.Amino | MsgWithdrawValidatorCommission.Amino | MsgFundCommunityPool.Amino; type Data = MsgSetWithdrawAddress.Data | MsgWithdrawDelegatorReward.Data | MsgWithdrawValidatorCommission.Data | MsgFundCommunityPool.Data; diff --git a/build/Client/providers/LCDClient/core/feegrant/allowances/index.d.ts b/build/Client/providers/LCDClient/core/feegrant/allowances/index.d.ts index fe51576..16ab560 100644 --- a/build/Client/providers/LCDClient/core/feegrant/allowances/index.d.ts +++ b/build/Client/providers/LCDClient/core/feegrant/allowances/index.d.ts @@ -5,7 +5,7 @@ export * from './BasicAllowance'; export * from './PeriodicAllowance'; export * from './AllowedMsgAllowance'; import { Any } from '@terra-money/legacy.proto/google/protobuf/any'; -export declare type Allowance = BasicAllowance | PeriodicAllowance | AllowedMsgAllowance; +export type Allowance = BasicAllowance | PeriodicAllowance | AllowedMsgAllowance; export declare namespace Allowance { type Amino = BasicAllowance.Amino | PeriodicAllowance.Amino | AllowedMsgAllowance.Amino; type Data = BasicAllowance.Data | PeriodicAllowance.Data | AllowedMsgAllowance.Data; diff --git a/build/Client/providers/LCDClient/core/feegrant/msgs/index.d.ts b/build/Client/providers/LCDClient/core/feegrant/msgs/index.d.ts index 10d9f6b..ddbd885 100644 --- a/build/Client/providers/LCDClient/core/feegrant/msgs/index.d.ts +++ b/build/Client/providers/LCDClient/core/feegrant/msgs/index.d.ts @@ -2,7 +2,7 @@ import { MsgGrantAllowance } from './MsgGrantAllowance'; import { MsgRevokeAllowance } from './MsgRevokeAllowance'; export * from './MsgGrantAllowance'; export * from './MsgRevokeAllowance'; -export declare type FeeGrantMsg = MsgGrantAllowance | MsgRevokeAllowance; +export type FeeGrantMsg = MsgGrantAllowance | MsgRevokeAllowance; export declare namespace FeeGrantMsg { type Amino = MsgGrantAllowance.Amino | MsgRevokeAllowance.Amino; type Data = MsgGrantAllowance.Data | MsgRevokeAllowance.Data; diff --git a/build/Client/providers/LCDClient/core/gov/Proposal.d.ts b/build/Client/providers/LCDClient/core/gov/Proposal.d.ts index bb8f9df..4639c93 100644 --- a/build/Client/providers/LCDClient/core/gov/Proposal.d.ts +++ b/build/Client/providers/LCDClient/core/gov/Proposal.d.ts @@ -44,7 +44,7 @@ export declare class Proposal extends JSONSerializable +/// import { OrderBy as OrderBy_pb } from '@terra-money/legacy.proto/cosmos/tx/v1beta1/service'; -export declare type APIParams = Record; +export type APIParams = Record; export interface Pagination { next_key: string | null; total: number; } export declare const OrderBy: typeof OrderBy_pb; -export declare type OrderBy = OrderBy_pb; +export type OrderBy = OrderBy_pb; export interface PaginationOptions { 'pagination.limit': string; 'pagination.offset': string; diff --git a/build/Client/providers/LCDClient/lcd/APIRequester.js b/build/Client/providers/LCDClient/lcd/APIRequester.js index bcff25a..698a643 100644 --- a/build/Client/providers/LCDClient/lcd/APIRequester.js +++ b/build/Client/providers/LCDClient/lcd/APIRequester.js @@ -14,7 +14,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); - while (_) try { + while (g && (g = 0, op[0] && (_ = 0)), _) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { diff --git a/build/Client/providers/LCDClient/lcd/LCDClient.js b/build/Client/providers/LCDClient/lcd/LCDClient.js index ae2faa4..accf693 100644 --- a/build/Client/providers/LCDClient/lcd/LCDClient.js +++ b/build/Client/providers/LCDClient/lcd/LCDClient.js @@ -23,14 +23,14 @@ var DEFAULT_LCD_OPTIONS = { // forked network : false var DEFAULT_NETWORK_TYPE_BY_CHAIN_ID = { default: false, - 'jmes-888': true + 'jmes-testnet-1': true }; var DEFAULT_GAS_PRICES_BY_CHAIN_ID = { default: { - ujmes: 0.15, + ujmes: 0.35, }, - 'jmes-888': { - ujmes: 0.15, + 'jmes-testnet-1': { + ujmes: 0.35, }, }; /** diff --git a/build/Client/providers/LCDClient/lcd/LCDClient.js.map b/build/Client/providers/LCDClient/lcd/LCDClient.js.map index 3a7dbd2..5ceff02 100644 --- a/build/Client/providers/LCDClient/lcd/LCDClient.js.map +++ b/build/Client/providers/LCDClient/lcd/LCDClient.js.map @@ -1 +1 @@ -{"version":3,"file":"LCDClient.js","sourceRoot":"","sources":["../../../../../src/Client/providers/LCDClient/lcd/LCDClient.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,+CAA8C;AAC9C,6BAkBe;AACf,uCAAsC;AACtC,mCAAkC;AAgClC,IAAM,mBAAmB,GAA6B;IACpD,aAAa,EAAE,IAAI;CACpB,CAAC;AAEF,0BAA0B;AAC1B,yBAAyB;AACzB,IAAM,gCAAgC,GAA+B;IACnE,OAAO,EAAE,KAAK;IACd,UAAU,EAAE,IAAI;CACjB,CAAC;AAEF,IAAM,8BAA8B,GAAmC;IACrE,OAAO,EAAE;QACP,KAAK,EAAE,IAAI;KACZ;IACD,UAAU,EAAE;QACV,KAAK,EAAE,IAAI;KACZ;CACF,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AAEH;IAwBE;;;;OAIG;IACH,mBAAY,MAAuB;QACjC,IAAI,CAAC,MAAM,kCACN,mBAAmB,KACtB,SAAS,EACP,8BAA8B,CAAC,MAAM,CAAC,OAAO,CAAC;gBAC9C,8BAA8B,CAAC,SAAS,CAAC,EAC3C,SAAS,EACP,gCAAgC,CAAC,MAAM,CAAC,OAAO,CAAC;gBAChD,gCAAgC,CAAC,SAAS,CAAC,KAC1C,MAAM,CACV,CAAC;QAEF,IAAI,CAAC,YAAY,GAAG,IAAI,2BAAY,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAEtD,mBAAmB;QACnB,IAAI,CAAC,IAAI,GAAG,IAAI,aAAO,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,aAAO,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,YAAY,GAAG,IAAI,qBAAe,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ,GAAG,IAAI,iBAAW,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,GAAG,GAAG,IAAI,YAAM,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,eAAS,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,IAAI,aAAO,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG,IAAI,cAAQ,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,MAAM,GAAG,IAAI,eAAS,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,QAAQ,GAAG,IAAI,iBAAW,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,OAAO,GAAG,IAAI,gBAAU,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,UAAU,GAAG,IAAI,mBAAa,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,QAAQ,GAAG,IAAI,iBAAW,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,IAAI,aAAO,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,GAAG,GAAG,IAAI,YAAM,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,CAAC,WAAW,GAAG,IAAI,oBAAc,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,EAAE,GAAG,IAAI,WAAK,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,mBAAQ,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,yCAAyC;IAClC,0BAAM,GAAb,UAAc,GAAQ;QACpB,OAAO,IAAI,eAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC/B,CAAC;IACH,gBAAC;AAAD,CAAC,AApED,IAoEC;AApEY,8BAAS"} \ No newline at end of file +{"version":3,"file":"LCDClient.js","sourceRoot":"","sources":["../../../../../src/Client/providers/LCDClient/lcd/LCDClient.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,+CAA8C;AAC9C,6BAkBe;AACf,uCAAsC;AACtC,mCAAkC;AAgClC,IAAM,mBAAmB,GAA6B;IACpD,aAAa,EAAE,IAAI;CACpB,CAAC;AAEF,0BAA0B;AAC1B,yBAAyB;AACzB,IAAM,gCAAgC,GAA+B;IACnE,OAAO,EAAE,KAAK;IACd,gBAAgB,EAAE,IAAI;CAEvB,CAAC;AAEF,IAAM,8BAA8B,GAAmC;IACrE,OAAO,EAAE;QACP,KAAK,EAAE,IAAI;KACZ;IACD,gBAAgB,EAAE;QAChB,KAAK,EAAE,IAAI;KACZ;CACF,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AAEH;IAwBE;;;;OAIG;IACH,mBAAY,MAAuB;QACjC,IAAI,CAAC,MAAM,kCACN,mBAAmB,KACtB,SAAS,EACP,8BAA8B,CAAC,MAAM,CAAC,OAAO,CAAC;gBAC9C,8BAA8B,CAAC,SAAS,CAAC,EAC3C,SAAS,EACP,gCAAgC,CAAC,MAAM,CAAC,OAAO,CAAC;gBAChD,gCAAgC,CAAC,SAAS,CAAC,KAC1C,MAAM,CACV,CAAC;QAEF,IAAI,CAAC,YAAY,GAAG,IAAI,2BAAY,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAEtD,mBAAmB;QACnB,IAAI,CAAC,IAAI,GAAG,IAAI,aAAO,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,aAAO,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,YAAY,GAAG,IAAI,qBAAe,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ,GAAG,IAAI,iBAAW,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,GAAG,GAAG,IAAI,YAAM,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,eAAS,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,IAAI,aAAO,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG,IAAI,cAAQ,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,MAAM,GAAG,IAAI,eAAS,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,QAAQ,GAAG,IAAI,iBAAW,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,OAAO,GAAG,IAAI,gBAAU,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,UAAU,GAAG,IAAI,mBAAa,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,QAAQ,GAAG,IAAI,iBAAW,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,IAAI,aAAO,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,GAAG,GAAG,IAAI,YAAM,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,CAAC,WAAW,GAAG,IAAI,oBAAc,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,EAAE,GAAG,IAAI,WAAK,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,mBAAQ,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,yCAAyC;IAClC,0BAAM,GAAb,UAAc,GAAQ;QACpB,OAAO,IAAI,eAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC/B,CAAC;IACH,gBAAC;AAAD,CAAC,AApED,IAoEC;AApEY,8BAAS"} \ No newline at end of file diff --git a/build/Client/providers/LCDClient/lcd/LCDUtils.js b/build/Client/providers/LCDClient/lcd/LCDUtils.js index 6d8a7b8..0952953 100644 --- a/build/Client/providers/LCDClient/lcd/LCDUtils.js +++ b/build/Client/providers/LCDClient/lcd/LCDUtils.js @@ -14,7 +14,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); - while (_) try { + while (g && (g = 0, op[0] && (_ = 0)), _) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { diff --git a/build/Client/providers/LCDClient/lcd/Wallet.js b/build/Client/providers/LCDClient/lcd/Wallet.js index 5be5940..dc3b9a4 100644 --- a/build/Client/providers/LCDClient/lcd/Wallet.js +++ b/build/Client/providers/LCDClient/lcd/Wallet.js @@ -14,7 +14,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); - while (_) try { + while (g && (g = 0, op[0] && (_ = 0)), _) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { diff --git a/build/Client/providers/LCDClient/lcd/api/AuthAPI.js b/build/Client/providers/LCDClient/lcd/api/AuthAPI.js index fd67903..35fa428 100644 --- a/build/Client/providers/LCDClient/lcd/api/AuthAPI.js +++ b/build/Client/providers/LCDClient/lcd/api/AuthAPI.js @@ -29,7 +29,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); - while (_) try { + while (g && (g = 0, op[0] && (_ = 0)), _) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { diff --git a/build/Client/providers/LCDClient/lcd/api/AuthzAPI.js b/build/Client/providers/LCDClient/lcd/api/AuthzAPI.js index 24a53c5..30c2636 100644 --- a/build/Client/providers/LCDClient/lcd/api/AuthzAPI.js +++ b/build/Client/providers/LCDClient/lcd/api/AuthzAPI.js @@ -29,7 +29,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); - while (_) try { + while (g && (g = 0, op[0] && (_ = 0)), _) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { diff --git a/build/Client/providers/LCDClient/lcd/api/BankAPI.js b/build/Client/providers/LCDClient/lcd/api/BankAPI.js index 66904a3..60f34ee 100644 --- a/build/Client/providers/LCDClient/lcd/api/BankAPI.js +++ b/build/Client/providers/LCDClient/lcd/api/BankAPI.js @@ -29,7 +29,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); - while (_) try { + while (g && (g = 0, op[0] && (_ = 0)), _) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { diff --git a/build/Client/providers/LCDClient/lcd/api/DistributionAPI.js b/build/Client/providers/LCDClient/lcd/api/DistributionAPI.js index fce48d2..28b9c33 100644 --- a/build/Client/providers/LCDClient/lcd/api/DistributionAPI.js +++ b/build/Client/providers/LCDClient/lcd/api/DistributionAPI.js @@ -29,7 +29,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); - while (_) try { + while (g && (g = 0, op[0] && (_ = 0)), _) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { diff --git a/build/Client/providers/LCDClient/lcd/api/FeeGrantAPI.js b/build/Client/providers/LCDClient/lcd/api/FeeGrantAPI.js index b51af06..ac91345 100644 --- a/build/Client/providers/LCDClient/lcd/api/FeeGrantAPI.js +++ b/build/Client/providers/LCDClient/lcd/api/FeeGrantAPI.js @@ -29,7 +29,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); - while (_) try { + while (g && (g = 0, op[0] && (_ = 0)), _) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { diff --git a/build/Client/providers/LCDClient/lcd/api/GovAPI.js b/build/Client/providers/LCDClient/lcd/api/GovAPI.js index 7640d01..828bdb7 100644 --- a/build/Client/providers/LCDClient/lcd/api/GovAPI.js +++ b/build/Client/providers/LCDClient/lcd/api/GovAPI.js @@ -29,7 +29,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); - while (_) try { + while (g && (g = 0, op[0] && (_ = 0)), _) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { diff --git a/build/Client/providers/LCDClient/lcd/api/IbcAPI.js b/build/Client/providers/LCDClient/lcd/api/IbcAPI.js index ceeafc7..f5b0372 100644 --- a/build/Client/providers/LCDClient/lcd/api/IbcAPI.js +++ b/build/Client/providers/LCDClient/lcd/api/IbcAPI.js @@ -29,7 +29,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); - while (_) try { + while (g && (g = 0, op[0] && (_ = 0)), _) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { diff --git a/build/Client/providers/LCDClient/lcd/api/IbcTransferAPI.js b/build/Client/providers/LCDClient/lcd/api/IbcTransferAPI.js index 4241995..931c3b1 100644 --- a/build/Client/providers/LCDClient/lcd/api/IbcTransferAPI.js +++ b/build/Client/providers/LCDClient/lcd/api/IbcTransferAPI.js @@ -29,7 +29,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); - while (_) try { + while (g && (g = 0, op[0] && (_ = 0)), _) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { diff --git a/build/Client/providers/LCDClient/lcd/api/MarketAPI.js b/build/Client/providers/LCDClient/lcd/api/MarketAPI.js index 67edac2..e051e3b 100644 --- a/build/Client/providers/LCDClient/lcd/api/MarketAPI.js +++ b/build/Client/providers/LCDClient/lcd/api/MarketAPI.js @@ -40,7 +40,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); - while (_) try { + while (g && (g = 0, op[0] && (_ = 0)), _) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { diff --git a/build/Client/providers/LCDClient/lcd/api/MintAPI.js b/build/Client/providers/LCDClient/lcd/api/MintAPI.js index 34227c8..6f0c7e9 100644 --- a/build/Client/providers/LCDClient/lcd/api/MintAPI.js +++ b/build/Client/providers/LCDClient/lcd/api/MintAPI.js @@ -29,7 +29,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); - while (_) try { + while (g && (g = 0, op[0] && (_ = 0)), _) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { diff --git a/build/Client/providers/LCDClient/lcd/api/OracleAPI.js b/build/Client/providers/LCDClient/lcd/api/OracleAPI.js index 335a943..dcb96a9 100644 --- a/build/Client/providers/LCDClient/lcd/api/OracleAPI.js +++ b/build/Client/providers/LCDClient/lcd/api/OracleAPI.js @@ -29,7 +29,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); - while (_) try { + while (g && (g = 0, op[0] && (_ = 0)), _) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { diff --git a/build/Client/providers/LCDClient/lcd/api/SlashingAPI.js b/build/Client/providers/LCDClient/lcd/api/SlashingAPI.js index cc6bca7..a17614c 100644 --- a/build/Client/providers/LCDClient/lcd/api/SlashingAPI.js +++ b/build/Client/providers/LCDClient/lcd/api/SlashingAPI.js @@ -29,7 +29,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); - while (_) try { + while (g && (g = 0, op[0] && (_ = 0)), _) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { diff --git a/build/Client/providers/LCDClient/lcd/api/StakingAPI.js b/build/Client/providers/LCDClient/lcd/api/StakingAPI.js index fd03ad9..5253830 100644 --- a/build/Client/providers/LCDClient/lcd/api/StakingAPI.js +++ b/build/Client/providers/LCDClient/lcd/api/StakingAPI.js @@ -40,7 +40,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); - while (_) try { + while (g && (g = 0, op[0] && (_ = 0)), _) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { diff --git a/build/Client/providers/LCDClient/lcd/api/TendermintAPI.js b/build/Client/providers/LCDClient/lcd/api/TendermintAPI.js index 88ed51a..6db2d30 100644 --- a/build/Client/providers/LCDClient/lcd/api/TendermintAPI.js +++ b/build/Client/providers/LCDClient/lcd/api/TendermintAPI.js @@ -29,7 +29,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); - while (_) try { + while (g && (g = 0, op[0] && (_ = 0)), _) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { diff --git a/build/Client/providers/LCDClient/lcd/api/TreasuryAPI.js b/build/Client/providers/LCDClient/lcd/api/TreasuryAPI.js index 60c5647..97cae8c 100644 --- a/build/Client/providers/LCDClient/lcd/api/TreasuryAPI.js +++ b/build/Client/providers/LCDClient/lcd/api/TreasuryAPI.js @@ -40,7 +40,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); - while (_) try { + while (g && (g = 0, op[0] && (_ = 0)), _) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { diff --git a/build/Client/providers/LCDClient/lcd/api/TxAPI.d.ts b/build/Client/providers/LCDClient/lcd/api/TxAPI.d.ts index 57d8583..9942be1 100644 --- a/build/Client/providers/LCDClient/lcd/api/TxAPI.d.ts +++ b/build/Client/providers/LCDClient/lcd/api/TxAPI.d.ts @@ -25,7 +25,7 @@ interface Async { height: number; txhash: string; } -export declare type TxBroadcastResult = B & C; +export type TxBroadcastResult = B & C; export interface TxSuccess { logs: TxLog[]; } @@ -33,10 +33,10 @@ export interface TxError { code: number | string; codespace?: string; } -export declare type WaitTxBroadcastResult = TxBroadcastResult; -export declare type BlockTxBroadcastResult = TxBroadcastResult; -export declare type SyncTxBroadcastResult = TxBroadcastResult; -export declare type AsyncTxBroadcastResult = TxBroadcastResult; +export type WaitTxBroadcastResult = TxBroadcastResult; +export type BlockTxBroadcastResult = TxBroadcastResult; +export type SyncTxBroadcastResult = TxBroadcastResult; +export type AsyncTxBroadcastResult = TxBroadcastResult; export declare function isTxError, B extends Wait | Block | Sync, C extends TxSuccess | TxError | {}>(x: T): x is T & TxBroadcastResult; export declare namespace BlockTxBroadcastResult { interface Data { diff --git a/build/Client/providers/LCDClient/lcd/api/TxAPI.js b/build/Client/providers/LCDClient/lcd/api/TxAPI.js index 4926092..a6a3b1d 100644 --- a/build/Client/providers/LCDClient/lcd/api/TxAPI.js +++ b/build/Client/providers/LCDClient/lcd/api/TxAPI.js @@ -29,7 +29,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); - while (_) try { + while (g && (g = 0, op[0] && (_ = 0)), _) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { diff --git a/build/Client/providers/LCDClient/lcd/api/UpgradeAPI.ts.js b/build/Client/providers/LCDClient/lcd/api/UpgradeAPI.ts.js index 33f7b39..e74406a 100644 --- a/build/Client/providers/LCDClient/lcd/api/UpgradeAPI.ts.js +++ b/build/Client/providers/LCDClient/lcd/api/UpgradeAPI.ts.js @@ -29,7 +29,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); - while (_) try { + while (g && (g = 0, op[0] && (_ = 0)), _) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { diff --git a/build/Client/providers/LCDClient/lcd/api/WasmAPI.js b/build/Client/providers/LCDClient/lcd/api/WasmAPI.js index a2577b9..4da4ab2 100644 --- a/build/Client/providers/LCDClient/lcd/api/WasmAPI.js +++ b/build/Client/providers/LCDClient/lcd/api/WasmAPI.js @@ -40,7 +40,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); - while (_) try { + while (g && (g = 0, op[0] && (_ = 0)), _) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { diff --git a/build/Client/providers/MarketplaceAPI/methods/findItem.js b/build/Client/providers/MarketplaceAPI/methods/findItem.js index 396f1f7..a4441be 100644 --- a/build/Client/providers/MarketplaceAPI/methods/findItem.js +++ b/build/Client/providers/MarketplaceAPI/methods/findItem.js @@ -14,7 +14,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); - while (_) try { + while (g && (g = 0, op[0] && (_ = 0)), _) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { diff --git a/build/Client/providers/MarketplaceAPI/methods/getAllItems.js b/build/Client/providers/MarketplaceAPI/methods/getAllItems.js index 1a5d9e8..721b8d0 100644 --- a/build/Client/providers/MarketplaceAPI/methods/getAllItems.js +++ b/build/Client/providers/MarketplaceAPI/methods/getAllItems.js @@ -14,7 +14,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); - while (_) try { + while (g && (g = 0, op[0] && (_ = 0)), _) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { diff --git a/build/Client/providers/MarketplaceAPI/methods/getAuthor.js b/build/Client/providers/MarketplaceAPI/methods/getAuthor.js index 21cfee0..c049b6b 100644 --- a/build/Client/providers/MarketplaceAPI/methods/getAuthor.js +++ b/build/Client/providers/MarketplaceAPI/methods/getAuthor.js @@ -14,7 +14,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); - while (_) try { + while (g && (g = 0, op[0] && (_ = 0)), _) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { diff --git a/build/Client/providers/MarketplaceAPI/methods/getAuthors.js b/build/Client/providers/MarketplaceAPI/methods/getAuthors.js index d5071b4..60b5dd6 100644 --- a/build/Client/providers/MarketplaceAPI/methods/getAuthors.js +++ b/build/Client/providers/MarketplaceAPI/methods/getAuthors.js @@ -14,7 +14,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); - while (_) try { + while (g && (g = 0, op[0] && (_ = 0)), _) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { diff --git a/build/Client/providers/MarketplaceAPI/methods/getFeed.js b/build/Client/providers/MarketplaceAPI/methods/getFeed.js index 9d15daf..cb7470c 100644 --- a/build/Client/providers/MarketplaceAPI/methods/getFeed.js +++ b/build/Client/providers/MarketplaceAPI/methods/getFeed.js @@ -14,7 +14,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); - while (_) try { + while (g && (g = 0, op[0] && (_ = 0)), _) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { diff --git a/build/Client/providers/MarketplaceAPI/methods/getItem.js b/build/Client/providers/MarketplaceAPI/methods/getItem.js index b8fb3e7..7b946d4 100644 --- a/build/Client/providers/MarketplaceAPI/methods/getItem.js +++ b/build/Client/providers/MarketplaceAPI/methods/getItem.js @@ -14,7 +14,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); - while (_) try { + while (g && (g = 0, op[0] && (_ = 0)), _) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { diff --git a/build/Client/providers/MarketplaceAPI/methods/mintItem.js b/build/Client/providers/MarketplaceAPI/methods/mintItem.js index 902d4ee..1bc9637 100644 --- a/build/Client/providers/MarketplaceAPI/methods/mintItem.js +++ b/build/Client/providers/MarketplaceAPI/methods/mintItem.js @@ -14,7 +14,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); - while (_) try { + while (g && (g = 0, op[0] && (_ = 0)), _) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { diff --git a/build/Client/providers/MarketplaceAPI/methods/postItemOffer.js b/build/Client/providers/MarketplaceAPI/methods/postItemOffer.js index b3b392d..0360281 100644 --- a/build/Client/providers/MarketplaceAPI/methods/postItemOffer.js +++ b/build/Client/providers/MarketplaceAPI/methods/postItemOffer.js @@ -14,7 +14,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); - while (_) try { + while (g && (g = 0, op[0] && (_ = 0)), _) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { diff --git a/build/Client/providers/MarketplaceAPI/methods/postItemVote.js b/build/Client/providers/MarketplaceAPI/methods/postItemVote.js index 9f22fca..cbeab64 100644 --- a/build/Client/providers/MarketplaceAPI/methods/postItemVote.js +++ b/build/Client/providers/MarketplaceAPI/methods/postItemVote.js @@ -14,7 +14,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); - while (_) try { + while (g && (g = 0, op[0] && (_ = 0)), _) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { diff --git a/build/primitives/Account/Account.d.ts b/build/primitives/Account/Account.d.ts index bf4e95f..138db5f 100644 --- a/build/primitives/Account/Account.d.ts +++ b/build/primitives/Account/Account.d.ts @@ -21,5 +21,6 @@ export declare class Account { recipientAddress: string; recipientAmount: number; memo?: string; - }, lcdcUrl?: string): any; + fee?: string; + }, lcdcUrl?: string, chainId?: string): any; } diff --git a/build/primitives/Account/Account.js b/build/primitives/Account/Account.js index 4a5000c..b30ce18 100644 --- a/build/primitives/Account/Account.js +++ b/build/primitives/Account/Account.js @@ -37,7 +37,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); - while (_) try { + while (g && (g = 0, op[0] && (_ = 0)), _) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { @@ -117,7 +117,7 @@ var Account = /** @class */ (function () { console.log({ URL: URL }); if (!this.lcdc) { lcdc = new LCDClient_1.LCDClient({ - chainID: 'jmes-888', + chainID: 'jmes-testet-1', // chainID: 'testing', URL: URL, isClassic: true @@ -153,7 +153,7 @@ var Account = /** @class */ (function () { }); }; // @ts-ignore - Account.prototype.sendTransaction = function (transactionOpts, lcdcUrl) { + Account.prototype.sendTransaction = function (transactionOpts, lcdcUrl, chainId) { return __awaiter(this, void 0, void 0, function () { var send, txOpts, URL, lcdc; return __generator(this, function (_a) { @@ -163,19 +163,24 @@ var Account = /** @class */ (function () { //@ts-ignore txOpts.memo = transactionOpts.memo; } - URL = lcdcUrl !== null && lcdcUrl !== void 0 ? lcdcUrl : 'http://51.38.52.37:1317'; + URL = lcdcUrl !== null && lcdcUrl !== void 0 ? lcdcUrl : 'http://64.92.191.45:1317'; lcdc = new LCDClient_1.LCDClient({ - chainID: 'jmes-888', + chainID: 'jmes-testnet-1', // chainID: 'testing', URL: URL, - isClassic: true + isClassic: true, }); + console.log("lcdurl: ", URL); + console.log("chainId: ", chainId); // @ts-ignore return [2 /*return*/, lcdc.wallet(new key_1.RawKey(this.getPrivate())) //@ts-ignore .createAndSignTx(txOpts) //@ts-ignore - .then(function (tx) { return lcdc.tx.broadcast(tx); }) + .then(function (tx) { + console.log("tx to be broadcasted: ", tx); + lcdc.tx.broadcast(tx); + }) //@ts-ignore .then(function (result) { console.log("TX hash: ".concat(result.txhash)); diff --git a/build/primitives/Account/Account.js.map b/build/primitives/Account/Account.js.map index 520941f..8db0eb7 100644 --- a/build/primitives/Account/Account.js.map +++ b/build/primitives/Account/Account.js.map @@ -1 +1 @@ -{"version":3,"file":"Account.js","sourceRoot":"","sources":["../../../src/primitives/Account/Account.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Account.js","sourceRoot":"","sources":["../../../src/primitives/Account/Account.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/primitives/Bech32/Bech32.d.ts b/build/primitives/Bech32/Bech32.d.ts index e5342f7..b61c444 100644 --- a/build/primitives/Bech32/Bech32.d.ts +++ b/build/primitives/Bech32/Bech32.d.ts @@ -1,13 +1,13 @@ /** `jmes-` prefixed account address */ -export declare type AccAddress = string; +export type AccAddress = string; /** `jmesvaloper-` prefixed validator operator address */ -export declare type ValAddress = string; +export type ValAddress = string; /** `jmesvalcons-` prefixed validator consensus address */ -export declare type ValConsAddress = string; +export type ValConsAddress = string; /** `jmespub-` prefixed account public key */ -export declare type AccPubKey = string; +export type AccPubKey = string; /** `jmesvaloperpub-` prefixed validator public key */ -export declare type ValPubKey = string; +export type ValPubKey = string; export declare namespace AccAddress { /** * Checks if a string is a valid jmes account address. diff --git a/build/primitives/Denom/Denom.d.ts b/build/primitives/Denom/Denom.d.ts index 0add631..64e70eb 100644 --- a/build/primitives/Denom/Denom.d.ts +++ b/build/primitives/Denom/Denom.d.ts @@ -1,4 +1,4 @@ -export declare type Denom = string; +export type Denom = string; export declare namespace Denom { const JMES = "ujmes"; const USD = "uusd"; diff --git a/dist/749a262fc99fcdda51f3.module.wasm b/dist/749a262fc99fcdda51f3.module.wasm deleted file mode 100644 index 503cbb2ea849ad660dc0137dbfc728e8ece9ee65..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 190035 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 K*Ge0UOa3oF)h}QG diff --git a/dist/jmes.min.js b/dist/jmes.min.js deleted file mode 100644 index 5b62524..0000000 --- a/dist/jmes.min.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! For license information please see jmes.min.js.LICENSE.txt */ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.jmes=t():e.jmes=t()}("undefined"!=typeof self?self:this,(()=>(()=>{var __webpack_modules__={51381:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.JMES_COIN_TYPE=void 0,t.JMES_COIN_TYPE=6280},70606:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Client=void 0;var o=r(6059),i=n(r(42284)),a=n(r(26681)),s=n(r(821)),u=r(31321),c=r(51381),d=function(){function e(e){var t,r,n;this.providers={marketplaceAPI:new i.default(null===(t=null==e?void 0:e.providers)||void 0===t?void 0:t.marketplaceAPI),identityAPI:new a.default(null===(r=null==e?void 0:e.providers)||void 0===r?void 0:r.identityAPI),faucetAPI:new s.default(null===(n=null==e?void 0:e.providers)||void 0===n?void 0:n.faucetAPI),LCDC:null}}return e.prototype.createLCDClient=function(e){return this.providers.LCDC=new u.LCDClient(e),this.providers.LCDC},e.prototype.createWallet=function(e,t){var r="m/44'/".concat(c.JMES_COIN_TYPE,"'");console.log("Generating a new wallet with key on BIP Path ".concat(r));var n=(e.toMasterDerivableKey?e.toMasterDerivableKey():e).derivePath(r);return new o.Wallet(n,t)},e}();t.Client=d},16354:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(70606),t)},821:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var o=n(r(80908)),i=function(e){var t,r;this.endpoint={api_url:null!==(r=null===(t=null==e?void 0:e.endpoint)||void 0===t?void 0:t.api_url)&&void 0!==r?r:"http://51.38.52.37:3002"}};t.default=i,i.prototype.requestCredit=o.default},80908:function(e,t,r){"use strict";var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(o,i){function a(e){try{u(n.next(e))}catch(e){i(e)}}function s(e){try{u(n.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,s)}u((n=n.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var r,n,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(r)throw new TypeError("Generator is already executing.");for(;a;)try{if(r=1,n&&(o=2&i[0]?n.return:i[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,i[1])).done)return o;switch(n=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,n=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},65721:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.Coin=void 0;var i=r(54396),a=r(77434),s=r(49545),u=function(e){function t(t,r){var n=e.call(this)||this;return n.denom=t,n.amount=a.Numeric.parse(r),n}return o(t,e),t.prototype.isIntCoin=function(){return this.amount instanceof a.Int},t.prototype.isDecCoin=function(){return this.amount instanceof a.Dec},t.prototype.toIntCoin=function(){return new t(this.denom,new a.Int(this.amount))},t.prototype.toIntCeilCoin=function(){return new t(this.denom,new a.Int(this.amount.ceil()))},t.prototype.toDecCoin=function(){return new t(this.denom,new a.Dec(this.amount))},t.prototype.toString=function(){var e=this.amount.toFixed();return this.isDecCoin()&&-1===e.indexOf(".")?"".concat(e,".0").concat(this.denom):"".concat(e).concat(this.denom)},t.fromString=function(e){var r=e.match(/^(-?[0-9]+(\.[0-9]+)?)([0-9a-zA-Z/]+)$/);if(null===r)throw new Error("failed to parse to Coin: ".concat(e));var n=r[1];return new t(r[3],n)},t.prototype.add=function(e){var r;if(e instanceof t){if(e.denom!==this.denom)throw new t.ArithmeticError("cannot add two Coins of different denoms: ".concat(this.denom," and ").concat(e.denom));r=e.amount}else r=e;return r=a.Numeric.parse(r),new t(this.denom,this.amount.add(r))},t.prototype.sub=function(e){var r;if(e instanceof t){if(e.denom!==this.denom)throw new t.ArithmeticError("cannot subtract two Coins of different denoms: ".concat(this.denom," and ").concat(e.denom));r=e.amount}else r=e;return r=a.Numeric.parse(r),new t(this.denom,this.amount.sub(r))},t.prototype.mul=function(e){var r=a.Numeric.parse(e);return new t(this.denom,this.amount.mul(r))},t.prototype.div=function(e){var r=a.Numeric.parse(e);return new t(this.denom,this.amount.div(r))},t.prototype.mod=function(e){var r=a.Numeric.parse(e);return new t(this.denom,this.amount.mod(r))},t.fromAmino=function(e){return new t(e.denom,e.amount)},t.prototype.toAmino=function(){return{denom:this.denom,amount:this.amount.toString()}},t.fromData=function(e){return new t(e.denom,e.amount)},t.prototype.toData=function(){return{denom:this.denom,amount:this.amount.toString()}},t.fromProto=function(e){return new t(e.denom,a.Numeric.parse(e.amount))},t.prototype.toProto=function(){return s.Coin.fromPartial({denom:this.denom,amount:this.amount.toString()})},t}(i.JSONSerializable);t.Coin=u,function(e){e.ArithmeticError=function(e){this.message=e}}(u=t.Coin||(t.Coin={})),t.Coin=u},12288:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),i=this&&this.__assign||function(){return i=Object.assign||function(e){for(var t,r=1,n=arguments.length;r{"use strict";var n=r(48764).Buffer;Object.defineProperty(t,"__esModule",{value:!0}),t.CompactBitArray=void 0;var o=r(26921),i=function(){function e(e,t){this.extra_bits_stored=e,this.elems=t}return e.fromBits=function(t){if(t<=0)throw new Error("CompactBitArray bits must be bigger than 0");var r=(t+7)/8;if(r<=0||r>Math.pow(2,32)-1)throw new Error("CompactBitArray overflow");return new e(t%8,n.alloc(r))},e.prototype.count=function(){return 0==this.extra_bits_stored?8*this.elems.length:8*(this.elems.length-1)+this.extra_bits_stored},e.prototype.getIndex=function(e){return!(e<0||e>=this.count())&&(this.elems.readUInt8(e>>3)&1<<7-e%8)>0},e.prototype.setIndex=function(e,t){return!(e<0||e>=this.count()||(t?this.elems[e>>3]|=1<<7-e%8:this.elems[e>>3]&=~(1<<7-e%8),0))},e.prototype.numTrueBitsBefore=function(e){var t=function(e){return e.toString(2).split("0").join("").length},r=0,n=this.count();e>n&&(e=n);for(var o=0;;o++){if(8*o+7>=e)return r+t(this.elems[o]>>7-e%8+1);r+=t(this.elems[o])}},e.fromData=function(t){return new e(t.extra_bits_stored,n.from(t.elems,"base64"))},e.prototype.toData=function(){return{elems:this.elems.toString("base64"),extra_bits_stored:this.extra_bits_stored}},e.fromProto=function(t){return new e(t.extraBitsStored,n.from(t.elems))},e.prototype.toProto=function(){return o.CompactBitArray.fromPartial({elems:this.elems,extraBitsStored:this.extra_bits_stored})},e}();t.CompactBitArray=i},78369:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},60589:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),i=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return a(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.Deposit=void 0;var u=r(12288),c=r(54396),d=r(34431),l=s(r(43720)),f=function(e){function t(t,r,n){var o=e.call(this)||this;return o.proposal_id=t,o.depositor=r,o.amount=new u.Coins(n),o}return o(t,e),t.fromAmino=function(e){var r=e.proposal_id,n=e.depositor,o=e.amount;return new t(Number.parseInt(r),n,u.Coins.fromAmino(o))},t.prototype.toAmino=function(){var e=this,t=e.proposal_id,r=e.depositor,n=e.amount;return{proposal_id:t.toString(),depositor:r,amount:n.toAmino()}},t.fromData=function(e){var r=e.proposal_id,n=e.depositor,o=e.amount;return new t(Number.parseInt(r),n,u.Coins.fromData(o))},t.prototype.toData=function(){var e=this,t=e.proposal_id,r=e.depositor,n=e.amount;return{proposal_id:t.toString(),depositor:r,amount:n.toData()}},t.fromProto=function(e){return new t(e.proposalId.toNumber(),e.depositor,u.Coins.fromProto(e.amount))},t.prototype.toProto=function(){var e=this,t=e.proposal_id,r=e.depositor,n=e.amount;return d.Deposit.fromPartial({proposalId:l.fromNumber(t),depositor:r,amount:n.toProto()})},t}(c.JSONSerializable);t.Deposit=f},18203:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),i=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return a(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.Fee=void 0;var u=r(54396),c=r(12288),d=r(77434),l=r(98654),f=s(r(43720)),h=function(e){function t(t,r,n,o){var i=e.call(this)||this;return i.gas_limit=t,i.payer=n,i.granter=o,i.amount=new c.Coins(r),i}return o(t,e),t.fromAmino=function(e){var r=e.gas,n=e.amount;return new t(Number.parseInt(r),c.Coins.fromAmino(n),"","")},t.prototype.toAmino=function(){return{gas:new d.Int(this.gas_limit).toString(),amount:this.amount.toAmino()}},t.fromData=function(e){return new t(Number.parseInt(e.gas_limit),c.Coins.fromData(e.amount),e.payer,e.granter)},t.prototype.toData=function(){var e=this,t=e.amount,r=e.gas_limit,n=e.payer,o=e.granter;return{amount:t.toData(),gas_limit:r.toFixed(),granter:null!=o?o:"",payer:null!=n?n:""}},t.fromProto=function(e){return new t(e.gasLimit.toNumber(),c.Coins.fromProto(e.amount),e.payer,e.granter)},t.prototype.toProto=function(){var e=this,t=e.amount,r=e.gas_limit,n=e.payer,o=e.granter;return l.Fee.fromPartial({amount:t.toProto(),gasLimit:f.fromNumber(r),granter:o,payer:n})},t.prototype.gasPrices=function(){return this.amount.toDecCoins().div(this.gas_limit)},t}(u.JSONSerializable);t.Fee=h},71284:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Msg=void 0;var n,o=r(37560),i=r(10122),a=r(90972),s=r(9003),u=r(40550),c=r(33694),d=r(77684),l=r(70194),f=r(67654),h=r(7926),p=r(86655),m=r(99409),g=r(25137),v=r(57473),b=r(21065),y=r(21901);(n=t.Msg||(t.Msg={})).fromAmino=function(e,t){switch(e.type){case"bank/MsgSend":case"cosmos-sdk/MsgSend":return o.MsgSend.fromAmino(e,t);case"bank/MsgMultiSend":case"cosmos-sdk/MsgMultiSend":return o.MsgMultiSend.fromAmino(e,t);case"distribution/MsgModifyWithdrawAddress":case"cosmos-sdk/MsgModifyWithdrawAddress":return i.MsgSetWithdrawAddress.fromAmino(e,t);case"distribution/MsgWithdrawDelegationReward":case"cosmos-sdk/MsgWithdrawDelegationReward":return i.MsgWithdrawDelegatorReward.fromAmino(e,t);case"distribution/MsgWithdrawValidatorCommission":case"cosmos-sdk/MsgWithdrawValidatorCommission":return i.MsgWithdrawValidatorCommission.fromAmino(e,t);case"distribution/MsgFundCommunityPool":case"cosmos-sdk/MsgFundCommunityPool":return i.MsgFundCommunityPool.fromAmino(e,t);case"feegrant/MsgGrantAllowance":case"cosmos-sdk/MsgGrantAllowance":return a.MsgGrantAllowance.fromAmino(e,t);case"feegrant/MsgRevokeAllowance":case"cosmos-sdk/MsgRevokeAllowance":return a.MsgRevokeAllowance.fromAmino(e,t);case"gov/MsgDeposit":case"cosmos-sdk/MsgDeposit":return s.MsgDeposit.fromAmino(e,t);case"gov/MsgSubmitProposal":case"cosmos-sdk/MsgSubmitProposal":return s.MsgSubmitProposal.fromAmino(e,t);case"gov/MsgVote":case"cosmos-sdk/MsgVote":return s.MsgVote.fromAmino(e,t);case"gov/MsgVoteWeighted":case"cosmos-sdk/MsgVoteWeighted":return s.MsgVoteWeighted.fromAmino(e,t);case"market/MsgSwap":return u.MsgSwap.fromAmino(e,t);case"market/MsgSwapSend":return u.MsgSwapSend.fromAmino(e,t);case"msgauth/MsgGrantAuthorization":case"cosmos-sdk/MsgGrant":return c.MsgGrantAuthorization.fromAmino(e,t);case"msgauth/MsgRevokeAuthorization":case"cosmos-sdk/MsgRevoke":return c.MsgRevokeAuthorization.fromAmino(e,t);case"msgauth/MsgExecAuthorized":case"cosmos-sdk/MsgExec":return c.MsgExecAuthorized.fromAmino(e,t);case"oracle/MsgDelegateFeedConsent":return d.MsgDelegateFeedConsent.fromAmino(e,t);case"oracle/MsgAggregateExchangeRatePrevote":return d.MsgAggregateExchangeRatePrevote.fromAmino(e,t);case"oracle/MsgAggregateExchangeRateVote":return d.MsgAggregateExchangeRateVote.fromAmino(e,t);case"slashing/MsgUnjail":case"cosmos-sdk/MsgUnjail":return l.MsgUnjail.fromAmino(e,t);case"staking/MsgDelegate":case"cosmos-sdk/MsgDelegate":return f.MsgDelegate.fromAmino(e,t);case"staking/MsgUndelegate":case"cosmos-sdk/MsgUndelegate":return f.MsgUndelegate.fromAmino(e,t);case"staking/MsgBeginRedelegate":case"cosmos-sdk/MsgBeginRedelegate":return f.MsgBeginRedelegate.fromAmino(e,t);case"staking/MsgCreateValidator":case"cosmos-sdk/MsgCreateValidator":return f.MsgCreateValidator.fromAmino(e,t);case"staking/MsgEditValidator":case"cosmos-sdk/MsgEditValidator":return f.MsgEditValidator.fromAmino(e,t);case"cosmos-sdk/MsgCreatePeriodicVestingAccount":return h.MsgCreatePeriodicVestingAccount.fromAmino(e,t);case"cosmos-sdk/MsgCreateVestingAccount":return h.MsgCreateVestingAccount.fromAmino(e,t);case"cosmos-sdk/MsgDonateAllVestingTokens":return h.MsgDonateAllVestingTokens.fromAmino(e,t);case"wasm/MsgStoreCode":return p.MsgStoreCode.fromAmino(e,t);case"wasm/MsgMigrateCode":return p.MsgMigrateCode.fromAmino(e,t);case"wasm/MsgInstantiateContract":return p.MsgInstantiateContract.fromAmino(e,t);case"wasm/MsgExecuteContract":return p.MsgExecuteContract.fromAmino(e,t);case"wasm/MsgMigrateContract":return p.MsgMigrateContract.fromAmino(e,t);case"wasm/MsgUpdateContractAdmin":case"wasm/MsgUpdateAdmin":return p.MsgUpdateContractAdmin.fromAmino(e,t);case"wasm/MsgClearContractAdmin":case"wasm/MsgClearAdmin":return p.MsgClearContractAdmin.fromAmino(e,t);case"cosmos-sdk/MsgTransfer":return m.MsgTransfer.fromAmino(e,t);case"crisis/MsgVerifyInvariant":case"cosmos-sdk/MsgVerifyInvariant":return y.MsgVerifyInvariant.fromAmino(e,t)}},n.fromData=function(e,t){switch(e["@type"]){case"/cosmos.bank.v1beta1.MsgSend":return o.MsgSend.fromData(e,t);case"/cosmos.bank.v1beta1.MsgMultiSend":return o.MsgMultiSend.fromData(e,t);case"/cosmos.distribution.v1beta1.MsgSetWithdrawAddress":return i.MsgSetWithdrawAddress.fromData(e,t);case"/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward":return i.MsgWithdrawDelegatorReward.fromData(e,t);case"/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission":return i.MsgWithdrawValidatorCommission.fromData(e,t);case"/cosmos.distribution.v1beta1.MsgFundCommunityPool":return i.MsgFundCommunityPool.fromData(e,t);case"/cosmos.feegrant.v1beta1.MsgGrantAllowance":return a.MsgGrantAllowance.fromData(e,t);case"/cosmos.feegrant.v1beta1.MsgRevokeAllowance":return a.MsgRevokeAllowance.fromData(e,t);case"/cosmos.gov.v1beta1.MsgDeposit":return s.MsgDeposit.fromData(e,t);case"/cosmos.gov.v1beta1.MsgSubmitProposal":return s.MsgSubmitProposal.fromData(e,t);case"/cosmos.gov.v1beta1.MsgVote":return s.MsgVote.fromData(e,t);case"/cosmos.gov.v1beta1.MsgVoteWeighted":return s.MsgVoteWeighted.fromData(e,t);case"/terra.market.v1beta1.MsgSwap":return u.MsgSwap.fromData(e,t);case"/terra.market.v1beta1.MsgSwapSend":return u.MsgSwapSend.fromData(e,t);case"/cosmos.authz.v1beta1.MsgGrant":return c.MsgGrantAuthorization.fromData(e,t);case"/cosmos.authz.v1beta1.MsgRevoke":return c.MsgRevokeAuthorization.fromData(e,t);case"/cosmos.authz.v1beta1.MsgExec":return c.MsgExecAuthorized.fromData(e,t);case"/terra.oracle.v1beta1.MsgDelegateFeedConsent":return d.MsgDelegateFeedConsent.fromData(e,t);case"/terra.oracle.v1beta1.MsgAggregateExchangeRatePrevote":return d.MsgAggregateExchangeRatePrevote.fromData(e,t);case"/terra.oracle.v1beta1.MsgAggregateExchangeRateVote":return d.MsgAggregateExchangeRateVote.fromData(e,t);case"/cosmos.slashing.v1beta1.MsgUnjail":return l.MsgUnjail.fromData(e,t);case"/cosmos.staking.v1beta1.MsgDelegate":return f.MsgDelegate.fromData(e,t);case"/cosmos.staking.v1beta1.MsgUndelegate":return f.MsgUndelegate.fromData(e,t);case"/cosmos.staking.v1beta1.MsgBeginRedelegate":return f.MsgBeginRedelegate.fromData(e,t);case"/cosmos.staking.v1beta1.MsgCreateValidator":return f.MsgCreateValidator.fromData(e,t);case"/cosmos.staking.v1beta1.MsgEditValidator":return f.MsgEditValidator.fromData(e,t);case"/cosmos.vesting.v1beta1.MsgCreatePeriodicVestingAccount":return h.MsgCreatePeriodicVestingAccount.fromData(e,t);case"/cosmos.vesting.v1beta1.MsgCreateVestingAccount":return h.MsgCreateVestingAccount.fromData(e,t);case"/cosmos.vesting.v1beta1.MsgDonateAllVestingTokens":return h.MsgDonateAllVestingTokens.fromData(e,t);case"/jmes.wasm.v1beta1.MsgStoreCode":case"/cosmwasm.wasm.v1.MsgStoreCode":return p.MsgStoreCode.fromData(e,t);case"/jmes.wasm.v1beta1.MsgMigrateCode":return p.MsgMigrateCode.fromData(e,t);case"/jmes.wasm.v1beta1.MsgInstantiateContract":case"/cosmwasm.wasm.v1.MsgInstantiateContract":return p.MsgInstantiateContract.fromData(e,t);case"/jmes.wasm.v1beta1.MsgExecuteContract":case"/cosmwasm.wasm.v1.MsgExecuteContract":return p.MsgExecuteContract.fromData(e,t);case"/jmes.wasm.v1beta1.MsgMigrateContract":case"/cosmwasm.wasm.v1.MsgMigrateContract":return p.MsgMigrateContract.fromData(e,t);case"/jmes.wasm.v1beta1.MsgUpdateContractAdmin":case"/cosmwasm.wasm.v1.MsgUpdateAdmin":return p.MsgUpdateContractAdmin.fromData(e,t);case"/jmes.wasm.v1beta1.MsgClearContractAdmin":case"/cosmwasm.wasm.v1.MsgClearAdmin":return p.MsgClearContractAdmin.fromData(e,t);case"/ibc.applications.transfer.v1.MsgTransfer":return m.MsgTransfer.fromData(e,t);case"/ibc.core.client.v1.MsgCreateClient":return g.MsgCreateClient.fromData(e,t);case"/ibc.core.client.v1.MsgUpdateClient":return g.MsgUpdateClient.fromData(e,t);case"/ibc.core.client.v1.MsgUpgradeClient":return g.MsgUpgradeClient.fromData(e,t);case"/ibc.core.client.v1.MsgSubmitMisbehaviour":return g.MsgSubmitMisbehaviour.fromData(e,t);case"/ibc.core.connection.v1.MsgConnectionOpenInit":return v.MsgConnectionOpenInit.fromData(e,t);case"/ibc.core.connection.v1.MsgConnectionOpenTry":return v.MsgConnectionOpenTry.fromData(e,t);case"/ibc.core.connection.v1.MsgConnectionOpenConfirm":return v.MsgConnectionOpenConfirm.fromData(e,t);case"/ibc.core.connection.v1.MsgConnectionOpenAck":return v.MsgConnectionOpenAck.fromData(e,t);case"/ibc.core.channel.v1.MsgChannelOpenInit":return b.MsgChannelOpenInit.fromData(e,t);case"/ibc.core.channel.v1.MsgChannelOpenTry":return b.MsgChannelOpenTry.fromData(e,t);case"/ibc.core.channel.v1.MsgChannelOpenConfirm":return b.MsgChannelOpenConfirm.fromData(e,t);case"/ibc.core.channel.v1.MsgChannelOpenAck":return b.MsgChannelOpenAck.fromData(e,t);case"/ibc.core.channel.v1.MsgChannelCloseInit":return b.MsgChannelCloseInit.fromData(e,t);case"/ibc.core.channel.v1.MsgChannelCloseConfirm":return b.MsgChannelCloseConfirm.fromData(e,t);case"/ibc.core.channel.v1.MsgRecvPacket":return b.MsgRecvPacket.fromData(e,t);case"/ibc.core.channel.v1.MsgAcknowledgement":return b.MsgAcknowledgement.fromData(e,t);case"/ibc.core.channel.v1.MsgTimeout":return b.MsgTimeout.fromData(e,t);case"/ibc.core.channel.v1.MsgTimeoutOnClose":return b.MsgTimeoutOnClose.fromData(e,t);case"/cosmos.crisis.v1beta1.MsgVerifyInvariant":return y.MsgVerifyInvariant.fromData(e,t);default:throw Error("not supported msg ".concat(e["@type"]))}},n.fromProto=function(e,t){switch(e.typeUrl){case"/cosmos.bank.v1beta1.MsgSend":return o.MsgSend.unpackAny(e,t);case"/cosmos.bank.v1beta1.MsgMultiSend":return o.MsgMultiSend.unpackAny(e,t);case"/cosmos.distribution.v1beta1.MsgSetWithdrawAddress":return i.MsgSetWithdrawAddress.unpackAny(e,t);case"/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward":return i.MsgWithdrawDelegatorReward.unpackAny(e,t);case"/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission":return i.MsgWithdrawValidatorCommission.unpackAny(e,t);case"/cosmos.distribution.v1beta1.MsgFundCommunityPool":return i.MsgFundCommunityPool.unpackAny(e,t);case"/cosmos.feegrant.v1beta1.MsgGrantAllowance":return a.MsgGrantAllowance.unpackAny(e,t);case"/cosmos.feegrant.v1beta1.MsgRevokeAllowance":return a.MsgRevokeAllowance.unpackAny(e,t);case"/cosmos.gov.v1beta1.MsgDeposit":return s.MsgDeposit.unpackAny(e,t);case"/cosmos.gov.v1beta1.MsgSubmitProposal":return s.MsgSubmitProposal.unpackAny(e,t);case"/cosmos.gov.v1beta1.MsgVote":return s.MsgVote.unpackAny(e,t);case"/terra.market.v1beta1.MsgSwap":return u.MsgSwap.unpackAny(e,t);case"/terra.market.v1beta1.MsgSwapSend":return u.MsgSwapSend.unpackAny(e,t);case"/cosmos.authz.v1beta1.MsgGrant":return c.MsgGrantAuthorization.unpackAny(e,t);case"/cosmos.authz.v1beta1.MsgRevoke":return c.MsgRevokeAuthorization.unpackAny(e,t);case"/cosmos.authz.v1beta1.MsgExec":return c.MsgExecAuthorized.unpackAny(e,t);case"/terra.oracle.v1beta1.MsgDelegateFeedConsent":return d.MsgDelegateFeedConsent.unpackAny(e,t);case"/terra.oracle.v1beta1.MsgAggregateExchangeRatePrevote":return d.MsgAggregateExchangeRatePrevote.unpackAny(e,t);case"/terra.oracle.v1beta1.MsgAggregateExchangeRateVote":return d.MsgAggregateExchangeRateVote.unpackAny(e,t);case"/cosmos.slashing.v1beta1.MsgUnjail":return l.MsgUnjail.unpackAny(e,t);case"/cosmos.staking.v1beta1.MsgDelegate":return f.MsgDelegate.unpackAny(e,t);case"/cosmos.staking.v1beta1.MsgUndelegate":return f.MsgUndelegate.unpackAny(e,t);case"/cosmos.staking.v1beta1.MsgBeginRedelegate":return f.MsgBeginRedelegate.unpackAny(e,t);case"/cosmos.staking.v1beta1.MsgCreateValidator":return f.MsgCreateValidator.unpackAny(e,t);case"/cosmos.staking.v1beta1.MsgEditValidator":return f.MsgEditValidator.unpackAny(e,t);case"/cosmos.vesting.v1beta1.MsgCreatePeriodicVestingAccount":return h.MsgCreatePeriodicVestingAccount.unpackAny(e,t);case"/cosmos.vesting.v1beta1.MsgCreateVestingAccount":return h.MsgCreateVestingAccount.unpackAny(e,t);case"/cosmos.vesting.v1beta1.MsgDonateAllVestingTokens":return h.MsgDonateAllVestingTokens.unpackAny(e,t);case"/jmes.wasm.v1beta1.MsgStoreCode":case"/cosmwasm.wasm.v1.MsgStoreCode":return p.MsgStoreCode.unpackAny(e,t);case"/jmes.wasm.v1beta1.MsgMigrateCode":return p.MsgMigrateCode.unpackAny(e,t);case"/jmes.wasm.v1beta1.MsgInstantiateContract":case"/cosmwasm.wasm.v1.MsgInstantiateContract":return p.MsgInstantiateContract.unpackAny(e,t);case"/jmes.wasm.v1beta1.MsgExecuteContract":case"/cosmwasm.wasm.v1.MsgExecuteContract":return p.MsgExecuteContract.unpackAny(e,t);case"/jmes.wasm.v1beta1.MsgMigrateContract":case"/cosmwasm.wasm.v1beta1.MsgMigrateContract":return p.MsgMigrateContract.unpackAny(e,t);case"/jmes.wasm.v1beta1.MsgUpdateContractAdmin":case"/cosmwasm.wasm.v1beta1.MsgUpdateAdmin":return p.MsgUpdateContractAdmin.unpackAny(e,t);case"/jmes.wasm.v1beta1.MsgClearContractAdmin":case"/cosmwasm.wasm.v1.MsgClearAdmin":return p.MsgClearContractAdmin.unpackAny(e,t);case"/ibc.applications.transfer.v1.MsgTransfer":return m.MsgTransfer.unpackAny(e,t);case"/ibc.core.client.v1.MsgCreateClient":return g.MsgCreateClient.unpackAny(e,t);case"/ibc.core.client.v1.MsgUpdateClient":return g.MsgUpdateClient.unpackAny(e,t);case"/ibc.core.client.v1.MsgUpgradeClient":return g.MsgUpgradeClient.unpackAny(e,t);case"/ibc.core.client.v1.MsgSubmitMisbehaviour":return g.MsgSubmitMisbehaviour.unpackAny(e,t);case"/ibc.core.connection.v1.MsgConnectionOpenInit":return v.MsgConnectionOpenInit.unpackAny(e,t);case"/ibc.core.connection.v1.MsgConnectionOpenTry":return v.MsgConnectionOpenTry.unpackAny(e,t);case"/ibc.core.connection.v1.MsgConnectionOpenConfirm":return v.MsgConnectionOpenConfirm.unpackAny(e,t);case"/ibc.core.connection.v1.MsgConnectionOpenAck":return v.MsgConnectionOpenAck.unpackAny(e,t);case"/ibc.core.channel.v1.MsgChannelOpenInit":return b.MsgChannelOpenInit.unpackAny(e,t);case"/ibc.core.channel.v1.MsgChannelOpenTry":return b.MsgChannelOpenTry.unpackAny(e,t);case"/ibc.core.channel.v1.MsgChannelOpenConfirm":return b.MsgChannelOpenConfirm.unpackAny(e,t);case"/ibc.core.channel.v1.MsgChannelOpenAck":return b.MsgChannelOpenAck.unpackAny(e,t);case"/ibc.core.channel.v1.MsgChannelCloseInit":return b.MsgChannelCloseInit.unpackAny(e,t);case"/ibc.core.channel.v1.MsgChannelCloseConfirm":return b.MsgChannelCloseConfirm.unpackAny(e,t);case"/ibc.core.channel.v1.MsgRecvPacket":return b.MsgRecvPacket.unpackAny(e,t);case"/ibc.core.channel.v1.MsgAcknowledgement":return b.MsgAcknowledgement.unpackAny(e,t);case"/ibc.core.channel.v1.MsgTimeout":return b.MsgTimeout.unpackAny(e,t);case"/ibc.core.channel.v1.MsgTimeoutOnClose":return b.MsgTimeoutOnClose.unpackAny(e,t);case"/cosmos.crisis.v1beta1.MsgVerifyInvariant":return y.MsgVerifyInvariant.unpackAny(e,t);default:throw Error("not supported msg ".concat(e.typeUrl))}}},22148:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MultiSignature=void 0;var n=r(42465),o=r(91973),i=r(87437),a=function(){function e(e){this.multisig_pubkey=e;var t=e.pubkeys.length;this.bitarray=o.CompactBitArray.fromBits(t),this.signatures=[]}return e.prototype.appendSignature=function(e,t){var r=this.bitarray.numTrueBitsBefore(t);this.bitarray.getIndex(t)?this.signatures[r]=e:(this.bitarray.setIndex(t,!0),r!=this.signatures.length?this.signatures.splice(r,0,e):this.signatures.push(e))},e.prototype.appendSignatureFromPubKey=function(e,t){var r=this.multisig_pubkey.pubkeys.findIndex((function(e){return e.key===t.key}));if(-1==r)throw new Error("provided key doesn't exist in public_keys");this.appendSignature(e,r)},e.prototype.appendSignatureV2s=function(e){for(var t=0,r=e;t127)throw new Error("Encoding numbers > 127 is not supported here. Please tell those lazy CosmJS maintainers to port the binary.PutUvarint implementation from the Go standard library and write some tests.");return[t]};(a=t.PublicKey||(t.PublicKey={})).fromAmino=function(e){switch(e.type){case"tendermint/PubKeySecp256k1":return b.fromAmino(e);case"tendermint/PubKeyMultisigThreshold":return y.fromAmino(e);case"tendermint/PubKeyEd25519":return w.fromAmino(e)}},a.fromData=function(e){switch(e["@type"]){case"/cosmos.crypto.secp256k1.PubKey":return b.fromData(e);case"/cosmos.crypto.multisig.LegacyAminoPubKey":return y.fromData(e);case"/cosmos.crypto.ed25519.PubKey":return w.fromData(e)}},a.fromProto=function(e){var t=e.typeUrl;if("/cosmos.crypto.secp256k1.PubKey"===t)return b.unpackAny(e);if("/cosmos.crypto.multisig.LegacyAminoPubKey"===t)return y.unpackAny(e);if("/cosmos.crypto.ed25519.PubKey"===t)return w.unpackAny(e);throw new Error("Pubkey type ".concat(t," not recognized"))};var b=function(e){function t(t){var r=e.call(this)||this;return r.key=t,r}return i(t,e),t.fromAmino=function(e){return new t(e.value)},t.prototype.toAmino=function(){return{type:"tendermint/PubKeySecp256k1",value:this.key}},t.fromData=function(e){return new t(e.key)},t.prototype.toData=function(){return{"@type":"/cosmos.crypto.secp256k1.PubKey",key:this.key}},t.fromProto=function(e){return new t(o.from(e.key).toString("base64"))},t.prototype.toProto=function(){return l.PubKey.fromPartial({key:o.from(this.key,"base64")})},t.prototype.packAny=function(){return d.Any.fromPartial({typeUrl:"/cosmos.crypto.secp256k1.PubKey",value:l.PubKey.encode(this.toProto()).finish()})},t.unpackAny=function(e){return t.fromProto(l.PubKey.decode(e.value))},t.prototype.encodeAminoPubkey=function(){return o.concat([p,o.from(this.key,"base64")])},t.prototype.rawAddress=function(){var e=o.from(this.key,"base64");return(0,u.ripemd160)((0,u.sha256)(e))},t.prototype.address=function(){return h.bech32.encode("jmes",h.bech32.toWords(this.rawAddress()))},t.prototype.pubkeyAddress=function(){return h.bech32.encode("jmespub",h.bech32.toWords(this.encodeAminoPubkey()))},t}(s.JSONSerializable);t.SimplePublicKey=b;var y=function(e){function t(t,r){var n=e.call(this)||this;return n.threshold=t,n.pubkeys=r,n}return i(t,e),t.prototype.encodeAminoPubkey=function(){var e=Array.from(g);e.push(8),e.push.apply(e,v(this.threshold));for(var t=0,r=this.pubkeys.map((function(e){return e.encodeAminoPubkey()}));t{"use strict";var n=r(48764).Buffer;Object.defineProperty(t,"__esModule",{value:!0}),t.SignatureV2=t.SignMode=void 0;var o=r(42465),i=r(98524),a=r(91973),s=r(17950),u=r(26921),c=r(17950);Object.defineProperty(t,"SignMode",{enumerable:!0,get:function(){return c.SignMode}});var d=function(){function e(e,t,r){this.public_key=e,this.data=t,this.sequence=r}return e.fromData=function(t){return new e(o.PublicKey.fromData(t.public_key),e.Descriptor.fromData(t.data),Number.parseInt(t.sequence))},e.prototype.toData=function(){return{public_key:this.public_key.toData(),data:this.data.toData(),sequence:this.sequence.toFixed()}},e.fromAmino=function(t){return new e(o.PublicKey.fromAmino(t.pub_key),new e.Descriptor(new e.Descriptor.Single(e.SignMode.SIGN_MODE_LEGACY_AMINO_JSON,t.signature)),0)},e}();t.SignatureV2=d,function(e){e.SignMode=s.SignMode;var t=function(){function e(t){t instanceof e.Single?this.single=t:this.multi=t}return e.fromData=function(t){if(t.single)return new e(e.Single.fromData(t.single));if(t.multi)return new e(e.Multi.fromData(t.multi));throw new Error("must be one of single or multi")},e.prototype.toData=function(){if(this.single)return{single:this.single.toData()};if(this.multi)return{multi:this.multi.toData()};throw new Error("must be one of single or multi")},e.prototype.toModeInfoAndSignature=function(){if(this.single){var e=this.single;return[new i.ModeInfo(new i.ModeInfo.Single(e.mode)),n.from(e.signature,"base64")]}if(this.multi){for(var t=[],r=[],o=0,a=(e=this.multi).signatures;o{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TxLog=t.EventsByType=t.TxInfo=void 0;var n,o=r(98524),i=r(89412),a=function(){function e(e,t,r,n,o,i,a,s,u,c){this.height=e,this.txhash=t,this.raw_log=r,this.logs=n,this.gas_wanted=o,this.gas_used=i,this.tx=a,this.timestamp=s,this.code=u,this.codespace=c}return e.fromProto=function(t){return new e(t.height.toNumber(),t.txhash,t.rawLog,t.logs.map((function(e){return s.fromProto(e)})),t.gasWanted.toNumber(),t.gasUsed.toNumber(),o.Tx.unpackAny(t.tx),t.timestamp,t.code,t.codespace)},e.fromData=function(t,r){return new e(Number.parseInt(t.height),t.txhash,t.raw_log,t.logs.map((function(e){return s.fromData(e)})),Number.parseInt(t.gas_wanted),Number.parseInt(t.gas_used),o.Tx.fromData(t.tx,r),t.timestamp,t.code,t.codespace)},e}();t.TxInfo=a,function(e){e.parse=function(e){var t={};return e.forEach((function(e){e.attributes.forEach((function(r){e.type in t||(t[e.type]={}),r.key in t[e.type]||(t[e.type][r.key]=[]),t[e.type][r.key].push(r.value)}))})),t}}(n=t.EventsByType||(t.EventsByType={}));var s=function(){function e(e,t,r){this.msg_index=e,this.log=t,this.events=r,this.eventsByType=n.parse(this.events)}return e.fromData=function(t){return new e(t.msg_index,t.log,t.events.map((function(e){return{type:e.type,attributes:e.attributes.map((function(e){return{key:e.key,value:e.value}}))}})))},e.prototype.toData=function(){var e=this;return{msg_index:e.msg_index,log:e.log,events:e.events}},e.fromProto=function(t){return new e(t.msgIndex,t.log,t.events.map((function(e){return{type:e.type,attributes:e.attributes.map((function(e){return{key:e.key,value:e.value}}))}})))},e.prototype.toProto=function(){var e=this,t=e.msg_index,r=e.log,n=e.events;return i.ABCIMessageLog.fromPartial({msgIndex:t,log:r,events:n})},e}();t.TxLog=s},13294:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},48440:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Account=void 0;var n,o=r(79209),i=r(7639),a=r(69166),s=r(75860),u=r(26154),c=r(70172);(n=t.Account||(t.Account={})).fromAmino=function(e,t){switch(e.type){case"core/Account":case"cosmos-sdk/BaseAccount":return o.BaseAccount.fromAmino(e,t);case"core/BaseVestingAccount":case"cosmos-sdk/BaseVestingAccount":return c.BaseVestingAccount.fromAmino(e,t);case"core/LazyGradedVestingAccount":return i.LazyGradedVestingAccount.fromAmino(e,t);case"cosmos-sdk/ContinuousVestingAccount":return a.ContinuousVestingAccount.fromAmino(e,t);case"cosmos-sdk/DelayedVestingAccount":return s.DelayedVestingAccount.fromAmino(e,t);case"cosmos-sdk/PeriodicVestingAccount":return u.PeriodicVestingAccount.fromAmino(e,t)}},n.fromData=function(e,t){switch(e["@type"]){case"/cosmos.auth.v1beta1.BaseAccount":return o.BaseAccount.fromData(e,t);case"/cosmos.vesting.v1beta1.BaseVestingAccount":return c.BaseVestingAccount.fromData(e,t);case"/terra.vesting.v1beta1.LazyGradedVestingAccount":return i.LazyGradedVestingAccount.fromData(e,t);case"/cosmos.vesting.v1beta1.ContinuousVestingAccount":return a.ContinuousVestingAccount.fromData(e,t);case"/cosmos.vesting.v1beta1.DelayedVestingAccount":return s.DelayedVestingAccount.fromData(e,t);case"/cosmos.vesting.v1beta1.PeriodicVestingAccount":return u.PeriodicVestingAccount.fromData(e,t)}},n.fromProto=function(e,t){var r=e.typeUrl;if("/cosmos.auth.v1beta1.BaseAccount"===r)return o.BaseAccount.unpackAny(e,t);if("/terra.vesting.v1beta1.LazyGradedVestingAccount"===r)return i.LazyGradedVestingAccount.unpackAny(e,t);if("/cosmos.vesting.v1beta1.ContinuousVestingAccount"===r)return a.ContinuousVestingAccount.unpackAny(e,t);if("/cosmos.vesting.v1beta1.DelayedVestingAccount"===r)return s.DelayedVestingAccount.unpackAny(e,t);if("/cosmos.vesting.v1beta1.PeriodicVestingAccount"===r)return u.PeriodicVestingAccount.unpackAny(e,t);throw new Error("Account type ".concat(r," not recognized"))}},79209:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),i=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return a(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.BaseAccount=void 0;var u=r(42465),c=r(54396),d=r(68818),l=r(17063),f=s(r(43720)),h=function(e){function t(t,r,n,o){var i=e.call(this)||this;return i.address=t,i.public_key=r,i.account_number=n,i.sequence=o,i}return o(t,e),t.prototype.getAccountNumber=function(){return this.account_number},t.prototype.getSequenceNumber=function(){return this.sequence},t.prototype.getPublicKey=function(){return this.public_key},t.prototype.toAmino=function(e){var t=this,r=t.address,n=t.public_key,o=t.account_number,i=t.sequence;return{type:e?"core/Account":"cosmos-sdk/BaseAccount",value:{address:r,public_key:n?n.toAmino():null,account_number:o.toFixed(),sequence:i.toFixed()}}},t.fromAmino=function(e,r){var n=e.value,o=n.address,i=n.public_key,a=n.account_number,s=n.sequence;return new t(o||"",i?u.PublicKey.fromAmino(i):null,Number.parseInt(a)||0,Number.parseInt(s)||0)},t.fromData=function(e,r){var n=e.address,o=e.pub_key,i=e.account_number,a=e.sequence;return new t(n||"",o?u.PublicKey.fromData(o):null,Number.parseInt(i)||0,Number.parseInt(a)||0)},t.prototype.toData=function(e){var t=this,r=t.address,n=t.public_key,o=t.account_number,i=t.sequence;return{"@type":"/cosmos.auth.v1beta1.BaseAccount",address:r,pub_key:n?n.toData():null,account_number:o.toFixed(),sequence:i.toFixed()}},t.prototype.toProto=function(e){var t=this,r=t.address,n=t.public_key,o=t.account_number,i=t.sequence;return d.BaseAccount.fromPartial({address:r,pubKey:null==n?void 0:n.packAny(),accountNumber:f.fromNumber(o),sequence:f.fromNumber(i)})},t.fromProto=function(e,r){var n=e.pubKey;return new t(e.address,n?u.PublicKey.fromProto(n):null,e.accountNumber.toNumber(),e.sequence.toNumber())},t.prototype.packAny=function(e){return l.Any.fromPartial({typeUrl:"/cosmos.auth.v1beta1.BaseAccount",value:d.BaseAccount.encode(this.toProto(e)).finish()})},t.unpackAny=function(e,r){return t.fromProto(d.BaseAccount.decode(e.value),r)},t}(c.JSONSerializable);t.BaseAccount=h},70172:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),i=this&&this.__assign||function(){return i=Object.assign||function(e){for(var t,r=1,n=arguments.length;r{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ValConsAddress=t.ValPubKey=t.ValAddress=t.AccPubKey=t.AccAddress=void 0;var n,o,i,a,s=r(27715);function u(e,t,r){try{return s.bech32.decode(t).prefix===e&&t.length==r}catch(e){return!1}}(a=t.AccAddress||(t.AccAddress={})).validate=function(e){return u("jmes",e,44)||u("jmes",e,64)},a.fromValAddress=function(e){var t=s.bech32.decode(e);return s.bech32.encode("jmes",t.words)},(i=t.AccPubKey||(t.AccPubKey={})).validate=function(e){return u("jmespub",e,47)},i.fromAccAddress=function(e){var t=s.bech32.decode(e);return s.bech32.encode("jmespub",t.words)},(o=t.ValAddress||(t.ValAddress={})).validate=function(e){return u("jmesvaloper",e,51)},o.fromAccAddress=function(e){var t=s.bech32.decode(e);return s.bech32.encode("jmesvaloper",t.words)},(n=t.ValPubKey||(t.ValPubKey={})).validate=function(e){return u("jmesvaloperpub",e,54)},n.fromValAddress=function(e){var t=s.bech32.decode(e);return s.bech32.encode("jmesvaloperpub",t.words)},(t.ValConsAddress||(t.ValConsAddress={})).validate=function(e){return u("jmesvalcons",e,51)}},14903:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.MsgVerifyInvariant=void 0;var i=r(54396),a=r(81596),s=r(21339),u=function(e){function t(t,r,n){var o=e.call(this)||this;return o.sender=t,o.invariantModuleName=r,o.invariantRoute=n,o}return o(t,e),t.fromAmino=function(e,r){var n=e.value;return new t(n.sender,n.invariantModuleName,n.invariantRoute)},t.prototype.toAmino=function(e){throw new Error("MsgVerifyInvarant is not allowed to send")},t.fromData=function(e,r){return new t(e.sender,e.invariantModuleName,e.invariantRoute)},t.prototype.toData=function(e){var t=this;return{"@type":"/cosmos.crisis.v1beta1.MsgVerifyInvariant",sender:t.sender,invariantModuleName:t.invariantModuleName,invariantRoute:t.invariantRoute}},t.fromProto=function(e,r){return new t(e.sender,e.invariantModuleName,e.invariantRoute)},t.prototype.toProto=function(e){throw new Error("MsgVerifyInvarant is not allowed to send")},t.prototype.packAny=function(e){return a.Any.fromPartial({typeUrl:"/cosmos.crisis.v1beta1.MsgVerifyInvariant",value:s.MsgVerifyInvariant.encode(this.toProto(e)).finish()})},t.unpackAny=function(e,r){return t.fromProto(s.MsgVerifyInvariant.decode(e.value),r)},t}(i.JSONSerializable);t.MsgVerifyInvariant=u},21901:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(14903),t)},66013:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.MsgFundCommunityPool=void 0;var i=r(54396),a=r(12288),s=r(17063),u=r(16e3),c=function(e){function t(t,r){var n=e.call(this)||this;return n.depositor=t,n.amount=new a.Coins(r),n}return o(t,e),t.fromAmino=function(e,r){var n=e.value,o=n.depositor,i=n.amount;return new t(o,a.Coins.fromAmino(i))},t.prototype.toAmino=function(e){return{type:e?"distribution/MsgFundCommunityPool":"cosmos-sdk/MsgFundCommunityPool",value:{depositor:this.depositor,amount:this.amount.toAmino()}}},t.fromData=function(e,r){var n=e.depositor,o=e.amount;return new t(n,a.Coins.fromData(o))},t.prototype.toData=function(e){return{"@type":"/cosmos.distribution.v1beta1.MsgFundCommunityPool",depositor:this.depositor,amount:this.amount.toData()}},t.fromProto=function(e,r){return new t(e.depositor,a.Coins.fromProto(e.amount))},t.prototype.toProto=function(e){var t=this.depositor,r=this.amount;return u.MsgFundCommunityPool.fromPartial({amount:r.toProto(),depositor:t})},t.prototype.packAny=function(e){return s.Any.fromPartial({typeUrl:"/cosmos.distribution.v1beta1.MsgFundCommunityPool",value:u.MsgFundCommunityPool.encode(this.toProto(e)).finish()})},t.unpackAny=function(e,r){return t.fromProto(u.MsgFundCommunityPool.decode(e.value),r)},t}(i.JSONSerializable);t.MsgFundCommunityPool=c},25919:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.MsgSetWithdrawAddress=void 0;var i=r(54396),a=r(17063),s=r(16e3),u=function(e){function t(t,r){var n=e.call(this)||this;return n.delegator_address=t,n.withdraw_address=r,n}return o(t,e),t.fromAmino=function(e,r){var n=e.value;return new t(n.delegator_address,n.withdraw_address)},t.prototype.toAmino=function(e){return{type:e?"distribution/MsgModifyWithdrawAddress":"cosmos-sdk/MsgModifyWithdrawAddress",value:{delegator_address:this.delegator_address,withdraw_address:this.withdraw_address}}},t.fromData=function(e,r){return new t(e.delegator_address,e.withdraw_address)},t.prototype.toData=function(e){return{"@type":"/cosmos.distribution.v1beta1.MsgSetWithdrawAddress",delegator_address:this.delegator_address,withdraw_address:this.withdraw_address}},t.fromProto=function(e,r){return new t(e.delegatorAddress,e.withdrawAddress)},t.prototype.toProto=function(e){var t=this.delegator_address,r=this.withdraw_address;return s.MsgSetWithdrawAddress.fromPartial({delegatorAddress:t,withdrawAddress:r})},t.prototype.packAny=function(e){return a.Any.fromPartial({typeUrl:"/cosmos.distribution.v1beta1.MsgSetWithdrawAddress",value:s.MsgSetWithdrawAddress.encode(this.toProto(e)).finish()})},t.unpackAny=function(e,r){return t.fromProto(s.MsgSetWithdrawAddress.decode(e.value),r)},t}(i.JSONSerializable);t.MsgSetWithdrawAddress=u},23892:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.MsgWithdrawDelegatorReward=void 0;var i=r(54396),a=r(17063),s=r(16e3),u=function(e){function t(t,r){var n=e.call(this)||this;return n.delegator_address=t,n.validator_address=r,n}return o(t,e),t.fromAmino=function(e,r){var n=e.value;return new t(n.delegator_address,n.validator_address)},t.prototype.toAmino=function(e){return{type:e?"distribution/MsgWithdrawDelegationReward":"cosmos-sdk/MsgWithdrawDelegationReward",value:{delegator_address:this.delegator_address,validator_address:this.validator_address}}},t.fromData=function(e,r){return new t(e.delegator_address,e.validator_address)},t.prototype.toData=function(e){return{"@type":"/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward",delegator_address:this.delegator_address,validator_address:this.validator_address}},t.fromProto=function(e,r){return new t(e.delegatorAddress,e.validatorAddress)},t.prototype.toProto=function(e){var t=this.delegator_address,r=this.validator_address;return s.MsgWithdrawDelegatorReward.fromPartial({delegatorAddress:t,validatorAddress:r})},t.prototype.packAny=function(e){return a.Any.fromPartial({typeUrl:"/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward",value:s.MsgWithdrawDelegatorReward.encode(this.toProto(e)).finish()})},t.unpackAny=function(e,r){return t.fromProto(s.MsgWithdrawDelegatorReward.decode(e.value),r)},t}(i.JSONSerializable);t.MsgWithdrawDelegatorReward=u},9556:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.MsgWithdrawValidatorCommission=void 0;var i=r(54396),a=r(17063),s=r(4194),u=function(e){function t(t){var r=e.call(this)||this;return r.validator_address=t,r}return o(t,e),t.fromAmino=function(e,r){return new t(e.value.validator_address)},t.prototype.toAmino=function(e){return{type:e?"distribution/MsgWithdrawValidatorCommission":"cosmos-sdk/MsgWithdrawValidatorCommission",value:{validator_address:this.validator_address}}},t.fromData=function(e,r){return new t(e.validator_address)},t.prototype.toData=function(e){return{"@type":"/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission",validator_address:this.validator_address}},t.fromProto=function(e,r){return new t(e.validatorAddress)},t.prototype.toProto=function(e){var t=this.validator_address;return s.MsgWithdrawValidatorCommission.fromPartial({validatorAddress:t})},t.prototype.packAny=function(e){return a.Any.fromPartial({typeUrl:"/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission",value:s.MsgWithdrawValidatorCommission.encode(this.toProto(e)).finish()})},t.unpackAny=function(e,r){return t.fromProto(s.MsgWithdrawValidatorCommission.decode(e.value),r)},t}(i.JSONSerializable);t.MsgWithdrawValidatorCommission=u},10122:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(25919),t),o(r(23892),t),o(r(9556),t),o(r(66013),t)},73778:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.CommunityPoolSpendProposal=void 0;var i=r(54396),a=r(12288),s=r(81596),u=r(15027),c=function(e){function t(t,r,n,o){var i=e.call(this)||this;return i.title=t,i.description=r,i.recipient=n,i.amount=new a.Coins(o),i}return o(t,e),t.fromAmino=function(e,r){var n=e.value,o=n.title,i=n.description,s=n.recipient,u=n.amount;return new t(o,i,s,a.Coins.fromAmino(u))},t.prototype.toAmino=function(e){var t=this;return{type:e?"distribution/CommunityPoolSpendProposal":"cosmos-sdk/CommunityPoolSpendProposal",value:{title:t.title,description:t.description,recipient:t.recipient,amount:t.amount.toAmino()}}},t.fromData=function(e,r){var n=e.title,o=e.description,i=e.recipient,s=e.amount;return new t(n,o,i,a.Coins.fromData(s))},t.prototype.toData=function(e){var t=this;return{"@type":"/cosmos.distribution.v1beta1.CommunityPoolSpendProposal",title:t.title,description:t.description,recipient:t.recipient,amount:t.amount.toData()}},t.fromProto=function(e,r){return new t(e.title,e.description,e.recipient,a.Coins.fromProto(e.amount))},t.prototype.toProto=function(e){var t=this,r=t.title,n=t.description,o=t.recipient,i=t.amount;return u.CommunityPoolSpendProposal.fromPartial({amount:i.toProto(),description:n,recipient:o,title:r})},t.prototype.packAny=function(e){return s.Any.fromPartial({typeUrl:"/cosmos.distribution.v1beta1.CommunityPoolSpendProposal",value:u.CommunityPoolSpendProposal.encode(this.toProto(e)).finish()})},t.unpackAny=function(e,r){return t.fromProto(u.CommunityPoolSpendProposal.decode(e.value),r)},t}(i.JSONSerializable);t.CommunityPoolSpendProposal=c},45434:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(73778),t)},79853:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.AllowedMsgAllowance=void 0;var i=r(54396),a=r(97175),s=r(31082),u=r(17063),c=r(20634),d=function(e){function t(t,r){var n=e.call(this)||this;return n.allowance=t,n.allowed_messages=r,n}return o(t,e),t.fromAmino=function(e,r){var n=e.value,o=n.allowance,i=n.allowed_messages;return new t("feegrant/BasicAllowance"===o.type||"cosmos-sdk/BasicAllowance"===o.type?a.BasicAllowance.fromAmino(o,r):s.PeriodicAllowance.fromAmino(o,r),i)},t.prototype.toAmino=function(e){var t=this.allowance,r=this.allowed_messages;return{type:e?"feegrant/AllowedMsgAllowance":"cosmos-sdk/AllowedMsgAllowance",value:{allowance:t.toAmino(e),allowed_messages:r}}},t.fromData=function(e,r){var n=e.allowance,o=e.allowed_messages;return new t("/cosmos.feegrant.v1beta1.BasicAllowance"===n["@type"]?a.BasicAllowance.fromData(n):s.PeriodicAllowance.fromData(n),o)},t.prototype.toData=function(e){var t=this.allowance,r=this.allowed_messages;return{"@type":"/cosmos.feegrant.v1beta1.AllowedMsgAllowance",allowance:t.toData(),allowed_messages:r}},t.fromProto=function(e,r){var n=e.allowance;return new t("/cosmos.feegrant.v1beta1.BasicAllowance"===(null==n?void 0:n.typeUrl)?a.BasicAllowance.unpackAny(n,r):s.PeriodicAllowance.unpackAny(n,r),e.allowedMessages)},t.prototype.toProto=function(e){var t=this.allowance,r=this.allowed_messages;return c.AllowedMsgAllowance.fromPartial({allowance:t.packAny(e),allowedMessages:r})},t.prototype.packAny=function(e){return u.Any.fromPartial({typeUrl:"/cosmos.feegrant.v1beta1.AllowedMsgAllowance",value:c.AllowedMsgAllowance.encode(this.toProto(e)).finish()})},t.unpackAny=function(e,r){return t.fromProto(c.AllowedMsgAllowance.decode(e.value),r)},t}(i.JSONSerializable);t.AllowedMsgAllowance=d},97175:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.BasicAllowance=void 0;var i=r(54396),a=r(12288),s=r(17063),u=r(20634),c=function(e){function t(t,r){var n=e.call(this)||this;n.expiration=r;var o=!1;if(t&&(n.spend_limit=new a.Coins(t),n.spend_limit.map((function(e){e.amount.lessThanOrEqualTo(0)&&(o=!0)}))),t&&o)throw Error("spend_limit must be positive");return n}return o(t,e),t.fromAmino=function(e,r){var n=e.value,o=n.spend_limit,i=n.expiration;return new t(o?a.Coins.fromAmino(o):void 0,i?new Date(i):void 0)},t.prototype.toAmino=function(e){var t=this.spend_limit,r=this.expiration;return{type:e?"feegrant/BasicAllowance":"cosmos-sdk/BasicAllowance",value:{spend_limit:(null==t?void 0:t.toAmino())||void 0,expiration:(null==r?void 0:r.toISOString().replace(/\.000Z$/,"Z"))||void 0}}},t.fromData=function(e,r){var n=e.spend_limit,o=e.expiration;return new t(n?a.Coins.fromData(n):void 0,o?new Date(o):void 0)},t.prototype.toData=function(e){var t=this.spend_limit,r=this.expiration;return{"@type":"/cosmos.feegrant.v1beta1.BasicAllowance",spend_limit:(null==t?void 0:t.toData())||void 0,expiration:(null==r?void 0:r.toISOString().replace(/\.000Z$/,"Z"))||void 0}},t.fromProto=function(e,r){return new t(a.Coins.fromProto(e.spendLimit),e.expiration?e.expiration:void 0)},t.prototype.toProto=function(e){var t=this.spend_limit,r=this.expiration;return u.BasicAllowance.fromPartial({expiration:r,spendLimit:(null==t?void 0:t.toProto())||void 0})},t.prototype.packAny=function(e){return s.Any.fromPartial({typeUrl:"/cosmos.feegrant.v1beta1.BasicAllowance",value:u.BasicAllowance.encode(this.toProto(e)).finish()})},t.unpackAny=function(e,r){return t.fromProto(u.BasicAllowance.decode(e.value),r)},t}(i.JSONSerializable);t.BasicAllowance=c},31082:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),i=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return a(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.PeriodicAllowance=void 0;var u=r(54396),c=r(12288),d=r(97175),l=r(17063),f=r(20634),h=s(r(43720)),p=function(e){function t(t,r,n,o,i){var a=e.call(this)||this;return a.basic=t,a.period=r,a.period_reset=i,a.period_spend_limit=new c.Coins(n),a.period_can_spend=new c.Coins(o),a}return o(t,e),t.fromAmino=function(e,r){var n=e.value,o=n.basic,i=n.period,a=n.period_spend_limit,s=n.period_can_spend,u=n.period_reset;return new t(d.BasicAllowance.fromAmino(o,r),Number.parseInt(i),c.Coins.fromAmino(a),c.Coins.fromAmino(s),new Date(u))},t.prototype.toAmino=function(e){var t=this,r=t.basic,n=t.period,o=t.period_spend_limit,i=t.period_can_spend,a=t.period_reset;return{type:e?"feegrant/PeriodicAllowance":"cosmos-sdk/PeriodicAllowance",value:{basic:r.toAmino(e),period:n.toString(),period_spend_limit:o.toAmino(),period_can_spend:i.toAmino(),period_reset:a.toISOString().replace(/\.000Z$/,"Z")}}},t.fromData=function(e,r){var n=e.basic,o=e.period,i=e.period_spend_limit,a=e.period_can_spend,s=e.period_reset;return new t(d.BasicAllowance.fromData(n),Number.parseInt(o),c.Coins.fromData(i),c.Coins.fromData(a),new Date(s))},t.prototype.toData=function(e){var t=this,r=t.basic,n=t.period,o=t.period_spend_limit,i=t.period_can_spend,a=t.period_reset;return{"@type":"/cosmos.feegrant.v1beta1.PeriodicAllowance",basic:r.toData(),period:n.toString(),period_spend_limit:o.toData(),period_can_spend:i.toData(),period_reset:a.toISOString().replace(/\.000Z$/,"Z")}},t.fromProto=function(e,r){var n;return new t(d.BasicAllowance.fromProto(e.basic),null===(n=e.period)||void 0===n?void 0:n.seconds.toNumber(),c.Coins.fromProto(e.periodSpendLimit),c.Coins.fromProto(e.periodCanSpend),e.periodReset)},t.prototype.toProto=function(e){var t=this,r=t.basic,n=t.period,o=t.period_spend_limit,i=t.period_can_spend,a=t.period_reset;return f.PeriodicAllowance.fromPartial({basic:r,period:{seconds:h.fromNumber(n)},periodCanSpend:i.toProto(),periodReset:a,periodSpendLimit:o.toProto()})},t.prototype.packAny=function(e){return l.Any.fromPartial({typeUrl:"/cosmos.feegrant.v1beta1.PeriodicAllowance",value:f.PeriodicAllowance.encode(this.toProto(e)).finish()})},t.unpackAny=function(e,r){return t.fromProto(f.PeriodicAllowance.decode(e.value),r)},t}(u.JSONSerializable);t.PeriodicAllowance=p},28354:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),t.Allowance=void 0;var i,a=r(97175),s=r(31082),u=r(79853);o(r(97175),t),o(r(31082),t),o(r(79853),t),(i=t.Allowance||(t.Allowance={})).fromAmino=function(e,t){switch(e.type){case"feegrant/BasicAllowance":case"cosmos-sdk/BasicAllowance":return a.BasicAllowance.fromAmino(e,t);case"feegrant/PeriodicAllowance":case"cosmos-sdk/PeriodicAllowance":return s.PeriodicAllowance.fromAmino(e,t);case"feegrant/AllowedMsgAllowance":case"cosmos-sdk/AllowedMsgAllowance":return u.AllowedMsgAllowance.fromAmino(e,t)}},i.fromData=function(e,t){switch(e["@type"]){case"/cosmos.feegrant.v1beta1.PeriodicAllowance":return s.PeriodicAllowance.fromData(e,t);case"/cosmos.feegrant.v1beta1.BasicAllowance":return a.BasicAllowance.fromData(e,t);case"/cosmos.feegrant.v1beta1.AllowedMsgAllowance":return u.AllowedMsgAllowance.fromData(e,t)}},i.fromProto=function(e,t){switch(e.typeUrl){case"/cosmos.feegrant.v1beta1.PeriodicAllowance":return s.PeriodicAllowance.unpackAny(e,t);case"/cosmos.feegrant.v1beta1.BasicAllowance":return a.BasicAllowance.unpackAny(e,t);case"/cosmos.feegrant.v1beta1.AllowedMsgAllowance":return u.AllowedMsgAllowance.unpackAny(e,t)}throw new Error("not supported allowance ".concat(e.typeUrl))}},60548:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.MsgGrantAllowance=void 0;var i=r(54396),a=r(28354),s=r(17063),u=r(23737),c=function(e){function t(t,r,n){var o=e.call(this)||this;return o.granter=t,o.grantee=r,o.allowance=n,o}return o(t,e),t.fromAmino=function(e,r){var n=e.value,o=n.granter,i=n.grantee,s=n.allowance;return new t(o,i,a.Allowance.fromAmino(s,r))},t.prototype.toAmino=function(e){var t=this;return{type:e?"feegrant/MsgGrantAllowance":"cosmos-sdk/MsgGrantAllowance",value:{granter:t.granter,grantee:t.grantee,allowance:t.allowance.toAmino(e)}}},t.fromData=function(e,r){var n=e.granter,o=e.grantee,i=e.allowance;return new t(n,o,a.Allowance.fromData(i,r))},t.prototype.toData=function(e){var t=this;return{"@type":"/cosmos.feegrant.v1beta1.MsgGrantAllowance",granter:t.granter,grantee:t.grantee,allowance:t.allowance.toData(e)}},t.fromProto=function(e,r){return new t(e.granter,e.grantee,a.Allowance.fromProto(e.allowance,r))},t.prototype.toProto=function(e){var t=this,r=t.granter,n=t.grantee,o=t.allowance;return u.MsgGrantAllowance.fromPartial({allowance:o.packAny(e),grantee:n,granter:r})},t.prototype.packAny=function(e){return s.Any.fromPartial({typeUrl:"/cosmos.feegrant.v1beta1.MsgGrantAllowance",value:u.MsgGrantAllowance.encode(this.toProto(e)).finish()})},t.unpackAny=function(e,r){return t.fromProto(u.MsgGrantAllowance.decode(e.value),r)},t}(i.JSONSerializable);t.MsgGrantAllowance=c},17173:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.MsgRevokeAllowance=void 0;var i=r(54396),a=r(17063),s=r(23737),u=function(e){function t(t,r){var n=e.call(this)||this;return n.granter=t,n.grantee=r,n}return o(t,e),t.fromAmino=function(e,r){var n=e.value;return new t(n.granter,n.grantee)},t.prototype.toAmino=function(e){return{type:e?"feegrant/MsgRevokeAllowance":"cosmos-sdk/MsgRevokeAllowance",value:{granter:this.granter,grantee:this.grantee}}},t.fromData=function(e,r){return new t(e.granter,e.grantee)},t.prototype.toData=function(e){return{"@type":"/cosmos.feegrant.v1beta1.MsgRevokeAllowance",granter:this.granter,grantee:this.grantee}},t.fromProto=function(e,r){return new t(e.granter,e.grantee)},t.prototype.toProto=function(e){var t=this.granter,r=this.grantee;return s.MsgRevokeAllowance.fromPartial({grantee:r,granter:t})},t.prototype.packAny=function(e){return a.Any.fromPartial({typeUrl:"/cosmos.feegrant.v1beta1.MsgRevokeAllowance",value:s.MsgRevokeAllowance.encode(this.toProto(e)).finish()})},t.unpackAny=function(e,r){return t.fromProto(s.MsgRevokeAllowance.decode(e.value),r)},t}(i.JSONSerializable);t.MsgRevokeAllowance=u},90972:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(60548),t),o(r(17173),t)},76280:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),i=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return a(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.Proposal=void 0;var u=r(12288),c=r(77434),d=r(54396),l=r(45434),f=r(5917),h=r(96560),p=r(97595),m=r(91564),g=r(91582),v=r(34431),b=s(r(43720)),y=function(e){function t(t,r,n,o,i,a,s,u,c){var d=e.call(this)||this;return d.id=t,d.content=r,d.status=n,d.final_tally_result=o,d.submit_time=i,d.deposit_end_time=a,d.total_deposit=s,d.voting_start_time=u,d.voting_end_time=c,d}return o(t,e),t.fromAmino=function(e,r){var n=e.id,o=e.content,i=e.status,a=e.final_tally_result,s=e.submit_time,d=e.deposit_end_time,l=e.total_deposit,f=e.voting_start_time,h=e.voting_end_time;return new t(Number.parseInt(n),t.Content.fromAmino(o,r),i,{yes:new c.Int(a.yes||0),no:new c.Int(a.no||0),abstain:new c.Int(a.abstain||0),no_with_veto:new c.Int(a.no_with_veto||0)},new Date(s),new Date(d),u.Coins.fromAmino(l),new Date(f),new Date(h))},t.prototype.toAmino=function(e){var t=this.status,r=this.final_tally_result;return{id:this.id.toFixed(),content:this.content.toAmino(e),status:t,final_tally_result:{yes:r.yes.toFixed(),no:r.no.toFixed(),abstain:r.abstain.toFixed(),no_with_veto:r.no_with_veto.toFixed()},submit_time:this.submit_time.toISOString(),deposit_end_time:this.deposit_end_time.toISOString(),total_deposit:this.total_deposit.toAmino(),voting_start_time:this.voting_start_time.toISOString(),voting_end_time:this.voting_end_time.toISOString()}},t.fromData=function(e,r){var n=e.proposal_id,o=e.content,i=e.status,a=e.final_tally_result,s=e.submit_time,d=e.deposit_end_time,l=e.total_deposit,f=e.voting_start_time,h=e.voting_end_time;return new t(Number.parseInt(n),t.Content.fromData(o,r),(0,v.proposalStatusFromJSON)(i),{yes:new c.Int((null==a?void 0:a.yes)||0),no:new c.Int((null==a?void 0:a.no)||0),abstain:new c.Int((null==a?void 0:a.abstain)||0),no_with_veto:new c.Int((null==a?void 0:a.no_with_veto)||0)},new Date(s),new Date(d),u.Coins.fromData(l),new Date(f),new Date(h))},t.prototype.toData=function(e){var t=this.status,r=this.final_tally_result;return{proposal_id:this.id.toFixed(),content:this.content.toData(e),status:(0,v.proposalStatusToJSON)(t),final_tally_result:{yes:r.yes.toString(),no:r.no.toString(),abstain:r.abstain.toString(),no_with_veto:r.no_with_veto.toString()},submit_time:this.submit_time.toISOString(),deposit_end_time:this.deposit_end_time.toISOString(),total_deposit:this.total_deposit.toData(),voting_start_time:this.voting_start_time.toISOString(),voting_end_time:this.voting_end_time.toISOString()}},t.fromProto=function(e,r){var n=e.proposalId,o=e.content,i=e.status,a=e.finalTallyResult,s=e.submitTime,d=e.depositEndTime,l=e.totalDeposit,f=e.votingStartTime,h=e.votingEndTime;return new t(n.toNumber(),t.Content.fromProto(o,r),i,{yes:new c.Int((null==a?void 0:a.yes)||0),no:new c.Int((null==a?void 0:a.no)||0),abstain:new c.Int((null==a?void 0:a.abstain)||0),no_with_veto:new c.Int((null==a?void 0:a.noWithVeto)||0)},s,d,u.Coins.fromProto(l),f,h)},t.prototype.toProto=function(e){var t,r=this.status,n=this.final_tally_result;return n&&(t=v.TallyResult.fromPartial({yes:n.yes.toString(),no:n.no.toString(),abstain:n.abstain.toString(),noWithVeto:n.no_with_veto.toString()})),v.Proposal.fromPartial({proposalId:b.fromNumber(this.id),content:this.content.packAny(e),status:r,finalTallyResult:t,submitTime:this.submit_time,depositEndTime:this.deposit_end_time,totalDeposit:this.total_deposit.toProto(),votingEndTime:this.voting_end_time,votingStartTime:this.voting_start_time})},t}(d.JSONSerializable);t.Proposal=y,function(e){var t;e.Status=v.ProposalStatus,(t=e.Content||(e.Content={})).fromAmino=function(e,t){switch(e.type){case"gov/TextProposal":case"cosmos-sdk/TextProposal":return p.TextProposal.fromAmino(e,t);case"distribution/CommunityPoolSpendProposal":case"cosmos-sdk/CommunityPoolSpendProposal":return l.CommunityPoolSpendProposal.fromAmino(e,t);case"params/ParameterChangeProposal":case"cosmos-sdk/ParameterChangeProposal":return f.ParameterChangeProposal.fromAmino(e,t);case"upgrade/SoftwareUpgradeProposal":case"cosmos-sdk/SoftwareUpgradeProposal":return m.SoftwareUpgradeProposal.fromAmino(e,t);case"upgrade/CancelSoftwareUpgradeProposal":case"cosmos-sdk/CancelSoftwareUpgradeProposal":return m.CancelSoftwareUpgradeProposal.fromAmino(e,t);case"ibc/ClientUpdateProposal":return h.ClientUpdateProposal.fromAmino(e,t);case"wasm/ClearAdminProposal":return g.ClearAdminProposal.fromAmino(e,t);case"wasm/ExecuteContractProposal":return g.ExecuteContractProposal.fromAmino(e,t);case"wasm/InstantiateContractProposal":return g.InstantiateContractProposal.fromAmino(e,t);case"wasm/MigrateContractProposal":return g.MigrateContractProposal.fromAmino(e,t);case"wasm/PinCodesProposal":return g.PinCodesProposal.fromAmino(e,t);case"wasm/StoreCodeProposal":return g.StoreCodeProposal.fromAmino(e,t);case"wasm/SudoContractProposal":return g.SudoContractProposal.fromAmino(e,t);case"wasm/UnpinCodesProposal":return g.UnpinCodesProposal.fromAmino(e,t);case"wasm/UpdateAdminProposal":return g.UpdateAdminProposal.fromAmino(e,t);case"wasm/UpdateInstantiateConfigProposal":return g.UpdateInstantiateConfigProposal.fromAmino(e,t)}},t.fromData=function(e,t){switch(e["@type"]){case"/cosmos.gov.v1beta1.TextProposal":return p.TextProposal.fromData(e,t);case"/cosmos.distribution.v1beta1.CommunityPoolSpendProposal":return l.CommunityPoolSpendProposal.fromData(e,t);case"/cosmos.params.v1beta1.ParameterChangeProposal":return f.ParameterChangeProposal.fromData(e,t);case"/cosmos.upgrade.v1beta1.SoftwareUpgradeProposal":return m.SoftwareUpgradeProposal.fromData(e,t);case"/cosmos.upgrade.v1beta1.CancelSoftwareUpgradeProposal":return m.CancelSoftwareUpgradeProposal.fromData(e,t);case"/ibc.core.client.v1.ClientUpdateProposal":return h.ClientUpdateProposal.fromData(e,t);case"/cosmwasm.wasm.v1.ClearAdminProposal":return g.ClearAdminProposal.fromData(e,t);case"/cosmwasm.wasm.v1.ExecuteContractProposal":return g.ExecuteContractProposal.fromData(e,t);case"/cosmwasm.wasm.v1.InstantiateContractProposal":return g.InstantiateContractProposal.fromData(e,t);case"/cosmwasm.wasm.v1.MigrateContractProposal":return g.MigrateContractProposal.fromData(e,t);case"/cosmwasm.wasm.v1.PinCodesProposal":return g.PinCodesProposal.fromData(e,t);case"/cosmwasm.wasm.v1.StoreCodeProposal":return g.StoreCodeProposal.fromData(e,t);case"/cosmwasm.wasm.v1.SudoContractProposal":return g.SudoContractProposal.fromData(e,t);case"/cosmwasm.wasm.v1.UnpinCodesProposal":return g.UnpinCodesProposal.fromData(e,t);case"/cosmwasm.wasm.v1.UpdateAdminProposal":return g.UpdateAdminProposal.fromData(e,t);case"/cosmwasm.wasm.v1.UpdateInstantiateConfigProposal":return g.UpdateInstantiateConfigProposal.fromData(e,t)}},t.fromProto=function(e,t){var r=e.typeUrl;switch(r){case"/cosmos.gov.v1beta1.TextProposal":return p.TextProposal.unpackAny(e,t);case"/cosmos.distribution.v1beta1.CommunityPoolSpendProposal":return l.CommunityPoolSpendProposal.unpackAny(e,t);case"/cosmos.params.v1beta1.ParameterChangeProposal":return f.ParameterChangeProposal.unpackAny(e,t);case"/cosmos.upgrade.v1beta1.SoftwareUpgradeProposal":return m.SoftwareUpgradeProposal.unpackAny(e,t);case"/cosmos.upgrade.v1beta1.CancelSoftwareUpgradeProposal":return m.CancelSoftwareUpgradeProposal.unpackAny(e,t);case"/ibc.core.client.v1.ClientUpdateProposal":return h.ClientUpdateProposal.unpackAny(e,t);case"/cosmwasm.wasm.v1.ClearAdminProposal":return g.ClearAdminProposal.unpackAny(e,t);case"/cosmwasm.wasm.v1.ExecuteContractProposal":return g.ExecuteContractProposal.unpackAny(e,t);case"/cosmwasm.wasm.v1.InstantiateContractProposal":return g.InstantiateContractProposal.unpackAny(e,t);case"/cosmwasm.wasm.v1.MigrateContractProposal":return g.MigrateContractProposal.unpackAny(e,t);case"/cosmwasm.wasm.v1.PinCodesProposal":return g.PinCodesProposal.unpackAny(e,t);case"/cosmwasm.wasm.v1.StoreCodeProposal":return g.StoreCodeProposal.unpackAny(e,t);case"/cosmwasm.wasm.v1.SudoContractProposal":return g.SudoContractProposal.unpackAny(e,t);case"/cosmwasm.wasm.v1.UnpinCodesProposal":return g.UnpinCodesProposal.unpackAny(e,t);case"/cosmwasm.wasm.v1.UpdateAdminProposal":return g.UpdateAdminProposal.unpackAny(e,t);case"/cosmwasm.wasm.v1.UpdateInstantiateConfigProposal":return g.UpdateInstantiateConfigProposal.unpackAny(e,t)}throw"Proposal content ".concat(r," not recognized")}}(y=t.Proposal||(t.Proposal={})),t.Proposal=y},72226:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),i=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return a(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.WeightedVoteOption=t.Vote=void 0;var u=r(54396),c=r(34431),d=r(77434),l=s(r(43720)),f=function(e){function t(t,r,n){var o=e.call(this)||this;return o.proposal_id=t,o.voter=r,o.options=n,o.Option=c.VoteOption,o}return o(t,e),t.fromAmino=function(e,r){var n=e.proposal_id,o=e.voter,i=e.options;return new t(Number.parseInt(n),o,i.map((function(e){return h.fromAmino(e)})))},t.prototype.toAmino=function(e){var t=this,r=t.proposal_id,n=t.voter,o=t.options;return{proposal_id:r.toFixed(),voter:n,options:o.map((function(e){return e.toAmino()}))}},t.fromData=function(e,r){var n=e.proposal_id,o=e.voter,i=e.options;return new t(Number.parseInt(n),o,i.map((function(e){return h.fromData(e)})))},t.prototype.toData=function(e){var t=this,r=t.proposal_id,n=t.voter,o=t.options;return{proposal_id:r.toFixed(),voter:n,options:o.map((function(e){return e.toData()}))}},t.fromProto=function(e,r){return new t(e.proposalId.toNumber(),e.voter,e.options.map((function(e){return h.fromProto(e)})))},t.prototype.toProto=function(e){var t=this,r=t.proposal_id,n=t.voter,o=t.options;return c.Vote.fromPartial({options:o.map((function(e){return e.toProto()})),proposalId:l.fromNumber(r),voter:n})},t}(u.JSONSerializable);t.Vote=f,function(e){e.Option=c.VoteOption}(f=t.Vote||(t.Vote={})),t.Vote=f;var h=function(e){function t(t,r){var n=e.call(this)||this;return n.option=t,n.weight=new d.Dec(r),n}return o(t,e),t.fromAmino=function(e,r){return new t(e.option,e.weight)},t.prototype.toAmino=function(e){return{option:this.option,weight:this.weight.toString()}},t.fromData=function(e,r){return new t(e.option,e.weight)},t.prototype.toData=function(e){return{option:this.option,weight:this.weight.toString()}},t.fromProto=function(e,r){return new t(e.option,e.weight)},t.prototype.toProto=function(e){var t=this.option,r=this.weight;return c.WeightedVoteOption.fromPartial({option:t,weight:r.toString()})},t}(u.JSONSerializable);t.WeightedVoteOption=h},64556:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),i=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return a(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.MsgDeposit=void 0;var u=r(12288),c=r(54396),d=r(17063),l=r(63496),f=s(r(43720)),h=function(e){function t(t,r,n){var o=e.call(this)||this;return o.proposal_id=t,o.depositor=r,o.amount=new u.Coins(n),o}return o(t,e),t.fromAmino=function(e,r){var n=e.value,o=n.proposal_id,i=n.depositor,a=n.amount;return new t(Number.parseInt(o),i,u.Coins.fromAmino(a))},t.prototype.toAmino=function(e){var t=this,r=t.proposal_id,n=t.depositor,o=t.amount;return{type:e?"gov/MsgDeposit":"cosmos-sdk/MsgDeposit",value:{proposal_id:r.toString(),depositor:n,amount:o.toAmino()}}},t.fromData=function(e,r){var n=e.proposal_id,o=e.depositor,i=e.amount;return new t(Number.parseInt(n),o,u.Coins.fromData(i))},t.prototype.toData=function(e){var t=this,r=t.proposal_id,n=t.depositor,o=t.amount;return{"@type":"/cosmos.gov.v1beta1.MsgDeposit",proposal_id:r.toString(),depositor:n,amount:o.toData()}},t.fromProto=function(e,r){return new t(e.proposalId.toNumber(),e.depositor,u.Coins.fromProto(e.amount))},t.prototype.toProto=function(e){var t=this,r=t.proposal_id,n=t.depositor,o=t.amount;return l.MsgDeposit.fromPartial({amount:o.toProto(),depositor:n,proposalId:f.fromNumber(r)})},t.prototype.packAny=function(e){return d.Any.fromPartial({typeUrl:"/cosmos.gov.v1beta1.MsgDeposit",value:l.MsgDeposit.encode(this.toProto(e)).finish()})},t.unpackAny=function(e,r){return t.fromProto(l.MsgDeposit.decode(e.value),r)},t}(c.JSONSerializable);t.MsgDeposit=h},5577:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.MsgSubmitProposal=void 0;var i=r(12288),a=r(76280),s=r(54396),u=r(17063),c=r(63496),d=function(e){function t(t,r,n){var o=e.call(this)||this;return o.content=t,o.proposer=n,o.initial_deposit=new i.Coins(r),o}return o(t,e),t.fromAmino=function(e,r){var n=e.value,o=n.content,s=n.initial_deposit,u=n.proposer;return new t(a.Proposal.Content.fromAmino(o,r),i.Coins.fromAmino(s),u)},t.prototype.toAmino=function(e){var t=this,r=t.content,n=t.initial_deposit,o=t.proposer;return{type:e?"gov/MsgSubmitProposal":"cosmos-sdk/MsgSubmitProposal",value:{content:r.toAmino(e),initial_deposit:n.toAmino(),proposer:o}}},t.fromData=function(e,r){var n=e.content,o=e.initial_deposit,s=e.proposer;return new t(a.Proposal.Content.fromData(n,r),i.Coins.fromData(o),s)},t.prototype.toData=function(e){var t=this,r=t.content,n=t.initial_deposit,o=t.proposer;return{"@type":"/cosmos.gov.v1beta1.MsgSubmitProposal",content:r.toData(e),initial_deposit:n.toData(),proposer:o}},t.fromProto=function(e,r){return new t(a.Proposal.Content.fromProto(e.content,r),i.Coins.fromProto(e.initialDeposit),e.proposer)},t.prototype.toProto=function(e){var t=this,r=t.content,n=t.initial_deposit,o=t.proposer;return c.MsgSubmitProposal.fromPartial({content:r.packAny(e),initialDeposit:n.toProto(),proposer:o})},t.prototype.packAny=function(e){return u.Any.fromPartial({typeUrl:"/cosmos.gov.v1beta1.MsgSubmitProposal",value:c.MsgSubmitProposal.encode(this.toProto(e)).finish()})},t.unpackAny=function(e,r){return t.fromProto(c.MsgSubmitProposal.decode(e.value),r)},t}(s.JSONSerializable);t.MsgSubmitProposal=d},25911:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),i=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return a(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.MsgVote=void 0;var u=r(54396),c=r(17063),d=r(63496),l=r(34431),f=s(r(43720)),h=function(e){function t(t,r,n){var o=e.call(this)||this;return o.proposal_id=t,o.voter=r,o.option=n,o}return o(t,e),t.fromAmino=function(e,r){var n=e.value,o=n.proposal_id,i=n.voter,a=n.option;return new t(Number.parseInt(o),i,a)},t.prototype.toAmino=function(e){var t=this,r=t.proposal_id,n=t.voter,o=t.option;return{type:e?"gov/MsgVote":"cosmos-sdk/MsgVote",value:{proposal_id:r.toFixed(),voter:n,option:o}}},t.fromData=function(e,r){var n=e.proposal_id,o=e.voter,i=e.option;return new t(Number.parseInt(n),o,i)},t.prototype.toData=function(e){var t=this,r=t.proposal_id,n=t.voter,o=t.option;return{"@type":"/cosmos.gov.v1beta1.MsgVote",proposal_id:r.toFixed(),voter:n,option:o}},t.fromProto=function(e,r){return new t(e.proposalId.toNumber(),e.voter,e.option)},t.prototype.toProto=function(e){var t=this,r=t.proposal_id,n=t.voter,o=t.option;return d.MsgVote.fromPartial({option:o,proposalId:f.fromNumber(r),voter:n})},t.prototype.packAny=function(e){return c.Any.fromPartial({typeUrl:"/cosmos.gov.v1beta1.MsgVote",value:d.MsgVote.encode(this.toProto()).finish()})},t.unpackAny=function(e,r){return t.fromProto(d.MsgVote.decode(e.value))},t}(u.JSONSerializable);t.MsgVote=h,function(e){e.Option=l.VoteOption}(h=t.MsgVote||(t.MsgVote={})),t.MsgVote=h},60954:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),i=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return a(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.MsgVoteWeighted=void 0;var u=r(54396),c=r(72226),d=r(17063),l=r(63496),f=s(r(43720)),h=function(e){function t(t,r,n){var o=e.call(this)||this;return o.proposal_id=t,o.voter=r,o.options=n,o}return o(t,e),t.fromAmino=function(e,r){var n=e.value,o=n.proposal_id,i=n.voter,a=n.options;return new t(Number.parseInt(o),i,a.map((function(e){return c.WeightedVoteOption.fromAmino(e)})))},t.prototype.toAmino=function(e){var t=this,r=t.proposal_id,n=t.voter,o=t.options;return{type:e?"gov/MsgVoteWeighted":"cosmos-sdk/MsgVoteWeighted",value:{proposal_id:r.toFixed(),voter:n,options:o.map((function(e){return e.toAmino()}))}}},t.fromData=function(e,r){var n=e.proposal_id,o=e.voter,i=e.options;return new t(Number.parseInt(n),o,i.map((function(e){return c.WeightedVoteOption.fromData(e)})))},t.prototype.toData=function(e){var t=this,r=t.proposal_id,n=t.voter,o=t.options;return{"@type":"/cosmos.gov.v1beta1.MsgVoteWeighted",proposal_id:r.toFixed(),voter:n,options:o.map((function(e){return e.toData()}))}},t.fromProto=function(e,r){return new t(e.proposalId.toNumber(),e.voter,e.options.map((function(e){return c.WeightedVoteOption.fromProto(e)})))},t.prototype.toProto=function(e){var t=this,r=t.proposal_id,n=t.voter,o=t.options;return l.MsgVoteWeighted.fromPartial({options:o.map((function(e){return e.toProto()})),proposalId:f.fromNumber(r),voter:n})},t.prototype.packAny=function(e){return d.Any.fromPartial({typeUrl:"/cosmos.gov.v1beta1.MsgVoteWeighted",value:l.MsgVoteWeighted.encode(this.toProto()).finish()})},t.unpackAny=function(e,r){return t.fromProto(l.MsgVoteWeighted.decode(e.value))},t}(u.JSONSerializable);t.MsgVoteWeighted=h},9003:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(64556),t),o(r(5577),t),o(r(25911),t),o(r(60954),t)},91821:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.TextProposal=void 0;var i=r(54396),a=r(17063),s=r(34431),u=function(e){function t(t,r){var n=e.call(this)||this;return n.title=t,n.description=r,n}return o(t,e),t.fromAmino=function(e,r){var n=e.value;return new t(n.title,n.description)},t.prototype.toAmino=function(e){return{type:e?"gov/TextProposal":"cosmos-sdk/TextProposal",value:{title:this.title,description:this.description}}},t.fromData=function(e,r){return new t(e.title,e.description)},t.prototype.toData=function(e){return{"@type":"/cosmos.gov.v1beta1.TextProposal",title:this.title,description:this.description}},t.fromProto=function(e,r){return new t(e.title,e.description)},t.prototype.toProto=function(e){var t=this.title,r=this.description;return s.TextProposal.fromPartial({description:r,title:t})},t.prototype.packAny=function(e){return a.Any.fromPartial({typeUrl:"/cosmos.gov.v1beta1.TextProposal",value:s.TextProposal.encode(this.toProto(e)).finish()})},t.unpackAny=function(e,r){return t.fromProto(s.TextProposal.decode(e.value),r)},t}(i.JSONSerializable);t.TextProposal=u},97595:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(91821),t)},59108:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.Params=void 0;var i=r(17549),a=function(e){function t(t,r){var n=e.call(this)||this;return n.host_enabled=t,n.allowed_messages=r,n}return o(t,e),t.fromAmino=function(e){return new t(e.host_enabled,e.allowed_messages)},t.prototype.toAmino=function(){return{host_enabled:this.host_enabled,allowed_messages:this.allowed_messages}},t.fromData=function(e){return new t(e.host_enabled,e.allowed_messages)},t.prototype.toData=function(){return{host_enabled:this.host_enabled,allowed_messages:this.allowed_messages}},t.fromProto=function(e){return new t(e.hostEnabled,e.allowMessages)},t.prototype.toProto=function(){var e=this.host_enabled,t=this.allowed_messages;return i.Params.fromPartial({hostEnabled:e,allowMessages:t})},t}(r(54396).JSONSerializable);t.Params=a},99409:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(55011),t),o(r(87700),t),o(r(47194),t)},47194:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.DenomTrace=void 0;var i=r(66656),a=function(e){function t(t,r){var n=e.call(this)||this;return n.path=t,n.base_denom=r,n}return o(t,e),t.fromAmino=function(e){return new t(e.path,e.base_denom)},t.prototype.toAmino=function(){return{path:this.path,base_denom:this.base_denom}},t.fromData=function(e){return new t(e.path,e.base_denom)},t.prototype.toData=function(){return{path:this.path,base_denom:this.base_denom}},t.fromProto=function(e){return new t(e.path,e.baseDenom)},t.prototype.toProto=function(){var e=this.path,t=this.base_denom;return i.DenomTrace.fromPartial({path:e,baseDenom:t})},t}(r(54396).JSONSerializable);t.DenomTrace=a},55011:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),i=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return a(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.MsgTransfer=void 0;var u=r(54396),c=r(65721),d=s(r(43720)),l=r(17063),f=r(78272),h=r(37691),p=r(77434),m=function(e){function t(t,r,n,o,i,a,s){var u=e.call(this)||this;if(!a&&!s)throw"both of timeout_height and timeout_timestamp are undefined";return u.source_port=t,u.source_channel=r,u.token=n,u.sender=o,u.receiver=i,u.timeout_height=a,u.timeout_timestamp=s?p.Numeric.parse(s):void 0,u}return o(t,e),t.fromAmino=function(e,r){var n=e.value,o=n.source_port,i=n.source_channel,a=n.token,s=n.sender,u=n.receiver,d=n.timeout_height,l=n.timeout_timestamp;if(!d&&!l)throw"both of timeout_height and timeout_timestamp are undefined";return new t(o,i,a?c.Coin.fromAmino(a):void 0,s,u,d?h.Height.fromAmino(d):void 0,l?p.Numeric.parse(l):void 0)},t.prototype.toAmino=function(e){var t=this,r=t.source_port,n=t.source_channel,o=t.token,i=t.sender,a=t.receiver,s=t.timeout_height,u=t.timeout_timestamp;return{type:"cosmos-sdk/MsgTransfer",value:{source_port:r,source_channel:n,token:o?o.toAmino():void 0,sender:i,receiver:a,timeout_height:(null==s?void 0:s.toAmino())||{},timeout_timestamp:(null==u?void 0:u.toFixed())||void 0}}},t.fromData=function(e,r){var n=e.source_port,o=e.source_channel,i=e.token,a=e.sender,s=e.receiver,u=e.timeout_timestamp,d=e.timeout_height;if(!d&&!u)throw"both of timeout_height and timeout_timestamp are undefined";return new t(n,o,i?c.Coin.fromData(i):void 0,a,s,d?h.Height.fromData(d):void 0,u?Number.parseInt(u):void 0)},t.prototype.toData=function(e){var t=this,r=t.source_port,n=t.source_channel,o=t.token,i=t.sender,a=t.receiver,s=t.timeout_height,u=t.timeout_timestamp;return{"@type":"/ibc.applications.transfer.v1.MsgTransfer",source_port:r,source_channel:n,token:o?o.toData():void 0,sender:i,receiver:a,timeout_height:s?s.toData():new h.Height(0,0).toData(),timeout_timestamp:(null==u?void 0:u.toFixed())||"0"}},t.fromProto=function(e,r){if(!e.timeoutHeight&&0==e.timeoutTimestamp.toNumber())throw"both of timeout_height and timeout_timestamp are empty";return new t(e.sourcePort,e.sourceChannel,e.token?c.Coin.fromProto(e.token):void 0,e.sender,e.receiver,e.timeoutHeight?h.Height.fromProto(e.timeoutHeight):void 0,e.timeoutTimestamp.toNumber())},t.prototype.toProto=function(e){var t=this,r=t.source_port,n=t.source_channel,o=t.token,i=t.sender,a=t.receiver,s=t.timeout_height,u=t.timeout_timestamp;return f.MsgTransfer.fromPartial({sourcePort:r,sourceChannel:n,token:o?o.toProto():void 0,sender:i,receiver:a,timeoutHeight:s?s.toProto():void 0,timeoutTimestamp:d.fromString((null==u?void 0:u.toFixed())||"0")})},t.prototype.packAny=function(e){return l.Any.fromPartial({typeUrl:"/ibc.applications.transfer.v1.MsgTransfer",value:f.MsgTransfer.encode(this.toProto(e)).finish()})},t.unpackAny=function(e,r){return t.fromProto(f.MsgTransfer.decode(e.value),r)},t}(u.JSONSerializable);t.MsgTransfer=m},87700:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.FungibleTokenPacketData=void 0;var i=r(15672),a=function(e){function t(t,r,n,o){var i=e.call(this)||this;return i.denom=t,i.amount=r,i.sender=n,i.receiver=o,i}return o(t,e),t.fromAmino=function(e){return new t(e.denom,e.amount,e.sender,e.receiver)},t.prototype.toAmino=function(){var e=this;return{denom:e.denom,amount:e.amount,sender:e.sender,receiver:e.receiver}},t.fromData=function(e){return new t(e.denom,e.amount,e.sender,e.receiver)},t.prototype.toData=function(){var e=this;return{denom:e.denom,amount:e.amount,sender:e.sender,receiver:e.receiver}},t.fromProto=function(e){return new t(e.denom,e.amount,e.sender,e.receiver)},t.prototype.toProto=function(){var e=this,t=e.denom,r=e.amount,n=e.sender,o=e.receiver;return i.FungibleTokenPacketData.fromPartial({denom:t,amount:r,sender:n,receiver:o})},t}(r(54396).JSONSerializable);t.FungibleTokenPacketData=a},66697:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.Channel=void 0;var i=r(50901),a=r(54396),s=r(23204),u=function(e){function t(t,r,n,o,i){var a=e.call(this)||this;return a.state=t,a.ordering=r,a.counterparty=n,a.connection_hops=o,a.version=i,a}return o(t,e),t.fromAmino=function(e){var r=e.state,n=e.ordering,o=e.counterparty,i=e.connection_hops,a=e.version;return new t(r,n,o?s.Counterparty.fromAmino(o):void 0,i,a)},t.prototype.toAmino=function(){var e=this,t=e.state,r=e.ordering,n=e.counterparty,o=e.connection_hops,i=e.version;return{state:t,ordering:r,counterparty:n?n.toAmino():void 0,connection_hops:o,version:i}},t.fromData=function(e){var r=e.state,n=e.ordering,o=e.counterparty,i=e.connection_hops,a=e.version;return new t(r,n,o?s.Counterparty.fromData(o):void 0,i,a)},t.prototype.toData=function(){var e=this,t=e.state,r=e.ordering,n=e.counterparty,o=e.connection_hops,i=e.version;return{state:t,ordering:r,counterparty:n?n.toData():void 0,connection_hops:o,version:i}},t.fromProto=function(e){return new t(e.state,e.ordering,e.counterparty?s.Counterparty.fromProto(e.counterparty):void 0,e.connectionHops,e.version)},t.prototype.toProto=function(){var e=this,t=e.state,r=e.ordering,n=e.counterparty,o=e.connection_hops,a=e.version;return i.Channel.fromPartial({state:t,ordering:r,counterparty:n?n.toProto():void 0,connectionHops:o,version:a})},t}(a.JSONSerializable);t.Channel=u},23204:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.Counterparty=void 0;var i=r(50901),a=function(e){function t(t,r){var n=e.call(this)||this;return n.port_id=t,n.channel_id=r,n}return o(t,e),t.fromAmino=function(e){return new t(e.port_id,e.channel_id)},t.prototype.toAmino=function(){return{port_id:this.port_id,channel_id:this.channel_id}},t.fromData=function(e){return new t(e.port_id,e.channel_id)},t.prototype.toData=function(){return{port_id:this.port_id,channel_id:this.channel_id}},t.fromProto=function(e){return new t(e.portId,e.channelId)},t.prototype.toProto=function(){var e=this.port_id,t=this.channel_id;return i.Counterparty.fromPartial({portId:e,channelId:t})},t}(r(54396).JSONSerializable);t.Counterparty=a},38209:function(e,t,r){"use strict";var n,o=r(48764).Buffer,i=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Packet=void 0;var s=r(50901),u=a(r(43720)),c=r(54396),d=r(37691),l=function(e){function t(t,r,n,o,i,a,s,u){var c=e.call(this)||this;return c.sequence=t,c.source_port=r,c.source_channel=n,c.destination_port=o,c.destination_channel=i,c.data=a,c.timeout_height=s,c.timeout_timestamp=u,c}return i(t,e),t.fromAmino=function(e){var r=e.sequence,n=e.source_port,o=e.source_channel,i=e.destination_port,a=e.destination_channel,s=e.data,u=e.timeout_height,c=e.timeout_timestamp;return new t(r,n,o,i,a,s,u?d.Height.fromAmino(u):void 0,c)},t.prototype.toAmino=function(){var e=this,t=e.sequence,r=e.source_port,n=e.source_channel,o=e.destination_port,i=e.destination_channel,a=e.data,s=e.timeout_height,u=e.timeout_timestamp;return{sequence:t,source_port:r,source_channel:n,destination_port:o,destination_channel:i,data:a,timeout_height:s?s.toAmino():void 0,timeout_timestamp:u}},t.fromData=function(e){var r=e.sequence,n=e.source_port,o=e.source_channel,i=e.destination_port,a=e.destination_channel,s=e.data,u=e.timeout_height,c=e.timeout_timestamp;return new t(r,n,o,i,a,s,u?d.Height.fromData(u):void 0,Number.parseInt(c))},t.prototype.toData=function(){var e=this,t=e.sequence,r=e.source_port,n=e.source_channel,o=e.destination_port,i=e.destination_channel,a=e.data,s=e.timeout_height,u=e.timeout_timestamp;return{sequence:t,source_port:r,source_channel:n,destination_port:o,destination_channel:i,data:a,timeout_height:s?s.toData():void 0,timeout_timestamp:u.toFixed()}},t.fromProto=function(e){return new t(e.sequence.toNumber(),e.sourcePort,e.sourceChannel,e.destinationPort,e.destinationChannel,o.from(e.data).toString("base64"),e.timeoutHeight?d.Height.fromProto(e.timeoutHeight):void 0,e.timeoutTimestamp.toNumber())},t.prototype.toProto=function(){var e=this,t=e.sequence,r=e.source_port,n=e.source_channel,i=e.destination_port,a=e.destination_channel,c=e.data,d=e.timeout_height,l=e.timeout_timestamp;return s.Packet.fromPartial({sequence:u.default.fromNumber(t),sourcePort:r,sourceChannel:n,destinationPort:i,destinationChannel:a,data:o.from(c,"base64"),timeoutHeight:d?d.toProto():void 0,timeoutTimestamp:u.default.fromNumber(l)})},t}(c.JSONSerializable);t.Packet=l},25180:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),i=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return a(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.PacketId=void 0;var u=r(50901),c=r(54396),d=s(r(43720)),l=function(e){function t(t,r,n){var o=e.call(this)||this;return o.port_id=t,o.channel_id=r,o.sequence=n,o}return o(t,e),t.fromAmino=function(e){var r=e.port_id,n=e.channel_id,o=e.sequence;return new t(r,n,Number.parseInt(o))},t.prototype.toAmino=function(){var e=this;return{port_id:e.port_id,channel_id:e.channel_id,sequence:e.sequence.toFixed()}},t.fromData=function(e){var r=e.port_id,n=e.channel_id,o=e.sequence;return new t(r,n,Number.parseInt(o))},t.prototype.toData=function(){var e=this;return{port_id:e.port_id,channel_id:e.channel_id,sequence:e.sequence.toFixed()}},t.fromProto=function(e){return new t(e.portId,e.channelId,e.sequence.toNumber())},t.prototype.toProto=function(){var e=this,t=e.port_id,r=e.channel_id,n=e.sequence;return u.PacketId.fromPartial({portId:t,channelId:r,sequence:d.fromNumber(n)})},t}(c.JSONSerializable);t.PacketId=l},92814:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(66697),t),o(r(25180),t)},37691:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),i=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return a(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.Height=void 0;var u=r(23016),c=s(r(43720)),d=function(e){function t(t,r){var n=e.call(this)||this;return n.revision_number=t,n.revision_height=r,n}return o(t,e),t.fromAmino=function(e){var r=e.revision_number,n=e.revision_height;return new t(parseInt(r||"0"),parseInt(n||"0"))},t.prototype.toAmino=function(){var e=this.revision_number,t=this.revision_height;return{revision_number:e>0?e.toFixed():void 0,revision_height:t>0?t.toFixed():void 0}},t.fromData=function(e){var r=e.revision_number,n=e.revision_height;return new t(Number.parseInt(r),Number.parseInt(n))},t.prototype.toData=function(){var e=this.revision_number,t=this.revision_height;return{revision_number:e.toFixed(),revision_height:t.toFixed()}},t.fromProto=function(e){return new t(e.revisionNumber.toNumber(),e.revisionHeight.toNumber())},t.prototype.toProto=function(){var e=this.revision_number,t=this.revision_height;return u.Height.fromPartial({revisionNumber:c.fromNumber(e),revisionHeight:c.fromNumber(t)})},t}(r(54396).JSONSerializable);t.Height=d},90654:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.IdentifiedClientState=void 0;var i=r(23016),a=function(e){function t(t,r){var n=e.call(this)||this;return n.client_id=t,n.client_state=r,n}return o(t,e),t.fromAmino=function(e){return new t(e.client_id,e.client_state)},t.prototype.toAmino=function(){return{client_id:this.client_id,client_state:this.client_state}},t.fromData=function(e){return new t(e.client_id,e.client_state)},t.prototype.toData=function(){return{client_id:this.client_id,client_state:this.client_state}},t.fromProto=function(e){return new t(e.clientId,e.clientState)},t.prototype.toProto=function(){var e=this.client_id,t=this.client_state;return i.IdentifiedClientState.fromPartial({clientId:e,clientState:t})},t}(r(54396).JSONSerializable);t.IdentifiedClientState=a},61421:function(e,t,r){"use strict";var n,o=r(48764).Buffer,i=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.MerklePrefix=void 0;var a=r(24147),s=function(e){function t(t){var r=e.call(this)||this;return r.key_prefix=t,r}return i(t,e),t.fromAmino=function(e){return new t(e.key_prefix)},t.prototype.toAmino=function(){return{key_prefix:this.key_prefix}},t.fromData=function(e){return new t(e.key_prefix)},t.prototype.toData=function(){return{key_prefix:this.key_prefix}},t.fromProto=function(e){return new t(o.from(e.keyPrefix).toString("base64"))},t.prototype.toProto=function(){var e=this.key_prefix;return a.MerklePrefix.fromPartial({keyPrefix:o.from(e,"base64")})},t}(r(54396).JSONSerializable);t.MerklePrefix=s},53815:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.Counterparty=void 0;var i=r(31631),a=r(54396),s=r(61421),u=function(e){function t(t,r,n){var o=e.call(this)||this;return o.client_id=t,o.connection_id=r,o.prefix=n,o}return o(t,e),t.fromAmino=function(e){var r=e.client_id,n=e.connection_id,o=e.prefix;return new t(r,n,o?s.MerklePrefix.fromAmino(o):void 0)},t.prototype.toAmino=function(){var e=this;return{client_id:e.client_id,connection_id:e.connection_id,prefix:e.prefix}},t.fromData=function(e){var r=e.client_id,n=e.connection_id,o=e.prefix;return new t(r,n,o?s.MerklePrefix.fromData(o):void 0)},t.prototype.toData=function(){var e=this,t=e.client_id,r=e.connection_id,n=e.prefix;return{client_id:t,connection_id:r,prefix:n?n.toData():void 0}},t.fromProto=function(e){return new t(e.clientId,e.connectionId,e.prefix?s.MerklePrefix.fromProto(e.prefix):void 0)},t.prototype.toProto=function(){var e=this,t=e.client_id,r=e.connection_id,n=e.prefix;return i.Counterparty.fromPartial({clientId:t,connectionId:r,prefix:n?n.toProto():void 0})},t}(a.JSONSerializable);t.Counterparty=u},54324:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.IdentifiedConnection=t.stateToJSON=t.stateFromJSON=t.State=void 0;var a=r(31631),s=r(54396),u=r(52249),c=r(31631);Object.defineProperty(t,"State",{enumerable:!0,get:function(){return c.State}}),Object.defineProperty(t,"stateFromJSON",{enumerable:!0,get:function(){return c.stateFromJSON}}),Object.defineProperty(t,"stateToJSON",{enumerable:!0,get:function(){return c.stateToJSON}});var d=r(53815),l=i(r(43720)),f=function(e){function t(t,r,n,o,i,a){var s=e.call(this)||this;return s.id=t,s.client_id=r,s.versions=n,s.state=o,s.counterparty=i,s.delay_period=a,s}return o(t,e),t.fromAmino=function(e){var r=e.id,n=e.client_id,o=e.versions,i=e.state,a=e.counterparty,s=e.delay_period;return new t(r,n,o.map(u.Version.fromAmino),(0,c.stateFromJSON)(i),a?d.Counterparty.fromAmino(a):void 0,Number.parseInt(s))},t.prototype.toAmino=function(){var e=this,t=e.id,r=e.client_id,n=e.versions,o=e.state,i=e.counterparty,a=e.delay_period;return{id:t,client_id:r,versions:n.map((function(e){return e.toAmino()})),state:(0,c.stateToJSON)(o),counterparty:null==i?void 0:i.toAmino(),delay_period:a.toFixed()}},t.fromData=function(e){var r=e.id,n=e.client_id,o=e.versions,i=e.state,a=e.counterparty,s=e.delay_period;return new t(r,n,o.map(u.Version.fromData),(0,c.stateFromJSON)(i),a?d.Counterparty.fromData(a):void 0,Number.parseInt(s))},t.prototype.toData=function(){var e=this,t=e.id,r=e.client_id,n=e.versions,o=e.state,i=e.counterparty,a=e.delay_period;return{id:t,client_id:r,versions:n.map((function(e){return e.toData()})),state:(0,c.stateToJSON)(o),counterparty:null==i?void 0:i.toData(),delay_period:a.toFixed()}},t.fromProto=function(e){return new t(e.id,e.clientId,e.versions.map(u.Version.fromProto),e.state,e.counterparty?d.Counterparty.fromProto(e.counterparty):void 0,e.delayPeriod.toNumber())},t.prototype.toProto=function(){var e=this,t=e.id,r=e.client_id,n=e.versions,o=e.state,i=e.counterparty,s=e.delay_period;return a.IdentifiedConnection.fromPartial({id:t,clientId:r,versions:n.map((function(e){return e.toProto()})),state:o,counterparty:null==i?void 0:i.toProto(),delayPeriod:l.default.fromNumber(s)})},t}(s.JSONSerializable);t.IdentifiedConnection=f},52249:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.Version=void 0;var i=r(31631),a=function(e){function t(t,r){var n=e.call(this)||this;return n.identifier=t,n.features=r,n}return o(t,e),t.fromAmino=function(e){return new t(e.identifier,e.features)},t.prototype.toAmino=function(){return{identifier:this.identifier,features:this.features}},t.fromData=function(e){return new t(e.identifier,e.features)},t.prototype.toData=function(){return{identifier:this.identifier,features:this.features}},t.fromProto=function(e){return new t(e.identifier,e.features)},t.prototype.toProto=function(){var e=this.identifier,t=this.features;return i.Version.fromPartial({identifier:e,features:t})},t}(r(54396).JSONSerializable);t.Version=a},30495:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(53815),t),o(r(52249),t),o(r(54324),t)},68811:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.Header=void 0;var i=r(54396),a=r(34028),s=r(37691),u=r(44681),c=r(17063),d=function(e){function t(t,r,n,o){var i=e.call(this)||this;return i.signedHeader=t,i.validatorSet=r,i.trustedHeight=n,i.trustedValidators=o,i}return o(t,e),t.fromAmino=function(e){throw new Error("Amino not supported")},t.prototype.toAmino=function(){throw new Error("Amino not supported")},t.fromData=function(e){var r=e.signed_header,n=e.validator_set,o=e.trusted_height,i=e.trusted_validators;return new t(r?u.SignedHeader.fromData(r):void 0,n?u.ValidatorSet.fromData(n):void 0,o?s.Height.fromData(o):void 0,i?u.ValidatorSet.fromData(i):void 0)},t.prototype.toData=function(){var e=this,t=e.signedHeader,r=e.validatorSet,n=e.trustedHeight,o=e.trustedValidators;return{signed_header:(null==t?void 0:t.toData())||void 0,validator_set:(null==r?void 0:r.toData())||void 0,trusted_height:(null==n?void 0:n.toData())||void 0,trusted_validators:(null==o?void 0:o.toData())||void 0}},t.fromProto=function(e){var r=e.signedHeader,n=e.validatorSet,o=e.trustedHeight,i=e.trustedValidators;return new t(r?u.SignedHeader.fromProto(r):void 0,n?u.ValidatorSet.fromProto(n):void 0,o?s.Height.fromProto(o):void 0,i?u.ValidatorSet.fromProto(i):void 0)},t.prototype.toProto=function(){var e=this,t=e.signedHeader,r=e.validatorSet,n=e.trustedHeight,o=e.trustedValidators;return a.Header.fromPartial({signedHeader:(null==t?void 0:t.toProto())||void 0,validatorSet:(null==r?void 0:r.toProto())||void 0,trustedHeight:(null==n?void 0:n.toProto())||void 0,trustedValidators:(null==o?void 0:o.toProto())||void 0})},t.prototype.packAny=function(){return c.Any.fromPartial({typeUrl:"ibc.lightclients.tendermint.v1.Header",value:a.Header.encode(this.toProto()).finish()})},t.unpackAny=function(e){return t.fromProto(a.Header.decode(e.value))},t}(i.JSONSerializable);t.Header=d},68691:function(e,t,r){"use strict";var n,o=r(48764).Buffer,i=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.MsgChannelCloseConfirm=void 0;var a=r(54396),s=r(17063),u=r(37691),c=r(33979),d=function(e){function t(t,r,n,o,i){var a=e.call(this)||this;return a.port_id=t,a.channel_id=r,a.proof_init=n,a.proof_height=o,a.signer=i,a}return i(t,e),t.fromAmino=function(e,t){throw new Error("Amino not supported")},t.prototype.toAmino=function(e){throw new Error("Amino not supported")},t.fromData=function(e,r){var n=e.port_id,o=e.channel_id,i=e.proof_init,a=e.proof_height,s=e.signer;return new t(n,o,i,a?u.Height.fromData(a):void 0,s)},t.prototype.toData=function(e){var t=this,r=t.port_id,n=t.channel_id,o=t.proof_init,i=t.proof_height,a=t.signer;return{"@type":"/ibc.core.channel.v1.MsgChannelCloseConfirm",port_id:r,channel_id:n,proof_init:o,proof_height:i?i.toData():void 0,signer:a}},t.fromProto=function(e,r){return new t(e.portId,e.channelId,o.from(e.proofInit).toString("base64"),e.proofHeight?u.Height.fromProto(e.proofHeight):void 0,e.signer)},t.prototype.toProto=function(e){var t=this,r=t.port_id,n=t.channel_id,i=t.proof_init,a=t.proof_height,s=t.signer;return c.MsgChannelCloseConfirm.fromPartial({portId:r,channelId:n,proofInit:o.from(i,"base64"),proofHeight:a?a.toProto():void 0,signer:s})},t.prototype.packAny=function(e){return s.Any.fromPartial({typeUrl:"/ibc.core.channel.v1.MsgChannelCloseConfirm",value:c.MsgChannelCloseConfirm.encode(this.toProto()).finish()})},t.unpackAny=function(e,r){return t.fromProto(c.MsgChannelCloseConfirm.decode(e.value))},t}(a.JSONSerializable);t.MsgChannelCloseConfirm=d},48372:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.MsgChannelCloseInit=void 0;var i=r(54396),a=r(17063),s=r(33979),u=function(e){function t(t,r,n){var o=e.call(this)||this;return o.port_id=t,o.channel_id=r,o.signer=n,o}return o(t,e),t.fromAmino=function(e,t){throw new Error("Amino not supported")},t.prototype.toAmino=function(e){throw new Error("Amino not supported")},t.fromData=function(e,r){return new t(e.port_id,e.channel_id,e.signer)},t.prototype.toData=function(e){var t=this;return{"@type":"/ibc.core.channel.v1.MsgChannelCloseInit",port_id:t.port_id,channel_id:t.channel_id,signer:t.signer}},t.fromProto=function(e,r){return new t(e.portId,e.channelId,e.signer)},t.prototype.toProto=function(e){var t=this,r=t.port_id,n=t.channel_id,o=t.signer;return s.MsgChannelCloseInit.fromPartial({portId:r,channelId:n,signer:o})},t.prototype.packAny=function(e){return a.Any.fromPartial({typeUrl:"/ibc.core.channel.v1.MsgChannelCloseInit",value:s.MsgChannelCloseInit.encode(this.toProto()).finish()})},t.unpackAny=function(e,r){return t.fromProto(s.MsgChannelCloseInit.decode(e.value))},t}(i.JSONSerializable);t.MsgChannelCloseInit=u},4240:function(e,t,r){"use strict";var n,o=r(48764).Buffer,i=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.MsgChannelOpenAck=void 0;var a=r(54396),s=r(17063),u=r(37691),c=r(33979),d=function(e){function t(t,r,n,o,i,a,s){var u=e.call(this)||this;return u.port_id=t,u.channel_id=r,u.counterparty_channel_id=n,u.counterparty_version=o,u.proof_try=i,u.proof_height=a,u.signer=s,u}return i(t,e),t.fromAmino=function(e,t){throw new Error("Amino not supported")},t.prototype.toAmino=function(e){throw new Error("Amino not supported")},t.fromData=function(e,r){var n=e.port_id,o=e.channel_id,i=e.counterparty_channel_id,a=e.counterparty_version,s=e.proof_try,c=e.proof_height,d=e.signer;return new t(n,o,i,a,s,c?u.Height.fromData(c):void 0,d)},t.prototype.toData=function(e){var t=this,r=t.port_id,n=t.channel_id,o=t.counterparty_channel_id,i=t.counterparty_version,a=t.proof_try,s=t.proof_height,u=t.signer;return{"@type":"/ibc.core.channel.v1.MsgChannelOpenAck",port_id:r,channel_id:n,counterparty_channel_id:o,counterparty_version:i,proof_try:a,proof_height:s?s.toData():void 0,signer:u}},t.fromProto=function(e,r){return new t(e.portId,e.channelId,e.counterpartyChannelId,e.counterpartyVersion,o.from(e.proofTry).toString("base64"),e.proofHeight?u.Height.fromProto(e.proofHeight):void 0,e.signer)},t.prototype.toProto=function(e){var t=this,r=t.port_id,n=t.channel_id,i=t.counterparty_channel_id,a=t.counterparty_version,s=t.proof_try,u=t.proof_height,d=t.signer;return c.MsgChannelOpenAck.fromPartial({portId:r,channelId:n,counterpartyChannelId:i,counterpartyVersion:a,proofTry:o.from(s,"base64"),proofHeight:u?u.toProto():void 0,signer:d})},t.prototype.packAny=function(e){return s.Any.fromPartial({typeUrl:"/ibc.core.channel.v1.MsgChannelOpenAck",value:c.MsgChannelOpenAck.encode(this.toProto()).finish()})},t.unpackAny=function(e,r){return t.fromProto(c.MsgChannelOpenAck.decode(e.value))},t}(a.JSONSerializable);t.MsgChannelOpenAck=d},74826:function(e,t,r){"use strict";var n,o=r(48764).Buffer,i=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.MsgChannelOpenConfirm=void 0;var a=r(54396),s=r(17063),u=r(37691),c=r(33979),d=function(e){function t(t,r,n,o,i){var a=e.call(this)||this;return a.port_id=t,a.channel_id=r,a.proof_ack=n,a.proof_height=o,a.signer=i,a}return i(t,e),t.fromAmino=function(e,t){throw new Error("Amino not supported")},t.prototype.toAmino=function(e){throw new Error("Amino not supported")},t.fromData=function(e,r){var n=e.port_id,o=e.channel_id,i=e.proof_ack,a=e.proof_height,s=e.signer;return new t(n,o,i,a?u.Height.fromData(a):void 0,s)},t.prototype.toData=function(e){var t=this,r=t.port_id,n=t.channel_id,o=t.proof_ack,i=t.proof_height,a=t.signer;return{"@type":"/ibc.core.channel.v1.MsgChannelOpenConfirm",port_id:r,channel_id:n,proof_ack:o,proof_height:i?i.toData():void 0,signer:a}},t.fromProto=function(e,r){return new t(e.portId,e.channelId,o.from(e.proofAck).toString("base64"),e.proofHeight?u.Height.fromProto(e.proofHeight):void 0,e.signer)},t.prototype.toProto=function(e){var t=this,r=t.port_id,n=t.channel_id,i=t.proof_ack,a=t.proof_height,s=t.signer;return c.MsgChannelOpenConfirm.fromPartial({portId:r,channelId:n,proofAck:o.from(i,"base64"),proofHeight:a?a.toProto():void 0,signer:s})},t.prototype.packAny=function(e){return s.Any.fromPartial({typeUrl:"/ibc.core.channel.v1.MsgChannelOpenConfirm",value:c.MsgChannelOpenConfirm.encode(this.toProto()).finish()})},t.unpackAny=function(e,r){return t.fromProto(c.MsgChannelOpenConfirm.decode(e.value))},t}(a.JSONSerializable);t.MsgChannelOpenConfirm=d},59518:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.MsgChannelOpenInit=void 0;var i=r(54396),a=r(17063),s=r(66697),u=r(33979),c=function(e){function t(t,r,n){var o=e.call(this)||this;return o.port_id=t,o.channel=r,o.signer=n,o}return o(t,e),t.fromAmino=function(e,t){throw new Error("Amino not supported")},t.prototype.toAmino=function(e){throw new Error("Amino not supported")},t.fromData=function(e,r){var n=e.port_id,o=e.channel,i=e.signer;return new t(n,o?s.Channel.fromData(o):void 0,i)},t.prototype.toData=function(e){var t=this,r=t.port_id,n=t.channel,o=t.signer;return{"@type":"/ibc.core.channel.v1.MsgChannelOpenInit",port_id:r,channel:n?n.toData():void 0,signer:o}},t.fromProto=function(e,r){return new t(e.portId,e.channel?s.Channel.fromProto(e.channel):void 0,e.signer)},t.prototype.toProto=function(e){var t=this,r=t.port_id,n=t.channel,o=t.signer;return u.MsgChannelOpenInit.fromPartial({portId:r,channel:n?n.toProto():void 0,signer:o})},t.prototype.packAny=function(e){return a.Any.fromPartial({typeUrl:"/ibc.core.channel.v1.MsgChannelOpenInit",value:u.MsgChannelOpenInit.encode(this.toProto()).finish()})},t.unpackAny=function(e,r){return t.fromProto(u.MsgChannelOpenInit.decode(e.value))},t}(i.JSONSerializable);t.MsgChannelOpenInit=c},59153:function(e,t,r){"use strict";var n,o=r(48764).Buffer,i=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.MsgChannelOpenTry=void 0;var a=r(54396),s=r(17063),u=r(66697),c=r(37691),d=r(33979),l=function(e){function t(t,r,n,o,i,a,s){var u=e.call(this)||this;return u.port_id=t,u.previous_channel_id=r,u.channel=n,u.counterparty_version=o,u.proof_init=i,u.proof_height=a,u.signer=s,u}return i(t,e),t.fromAmino=function(e,t){throw new Error("Amino not supported")},t.prototype.toAmino=function(e){throw new Error("Amino not supported")},t.fromData=function(e,r){var n=e.port_id,o=e.previous_channel_id,i=e.channel,a=e.counterparty_version,s=e.proof_init,d=e.proof_height,l=e.signer;return new t(n,o,i?u.Channel.fromData(i):void 0,a,s,d?c.Height.fromData(d):void 0,l)},t.prototype.toData=function(e){var t=this,r=t.port_id,n=t.previous_channel_id,o=t.channel,i=t.counterparty_version,a=t.proof_init,s=t.proof_height,u=t.signer;return{"@type":"/ibc.core.channel.v1.MsgChannelOpenTry",port_id:r,previous_channel_id:n,channel:o?o.toData():void 0,counterparty_version:i,proof_init:a,proof_height:s?s.toData():void 0,signer:u}},t.fromProto=function(e,r){return new t(e.portId,e.previousChannelId,e.channel?u.Channel.fromProto(e.channel):void 0,e.counterpartyVersion,o.from(e.proofInit).toString("base64"),e.proofHeight?c.Height.fromProto(e.proofHeight):void 0,e.signer)},t.prototype.toProto=function(e){var t=this,r=t.port_id,n=t.previous_channel_id,i=t.channel,a=t.counterparty_version,s=t.proof_init,u=t.proof_height,c=t.signer;return d.MsgChannelOpenTry.fromPartial({portId:r,previousChannelId:n,channel:i?i.toProto():void 0,counterpartyVersion:a,proofInit:o.from(s,"base64"),proofHeight:u?u.toProto():void 0,signer:c})},t.prototype.packAny=function(e){return s.Any.fromPartial({typeUrl:"/ibc.core.channel.v1.MsgChannelOpenTry",value:d.MsgChannelOpenTry.encode(this.toProto()).finish()})},t.unpackAny=function(e,r){return t.fromProto(d.MsgChannelOpenTry.decode(e.value))},t}(a.JSONSerializable);t.MsgChannelOpenTry=l},37414:function(e,t,r){"use strict";var n,o=r(48764).Buffer,i=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.MsgAcknowledgement=void 0;var a=r(54396),s=r(17063),u=r(37691),c=r(38209),d=r(33979),l=function(e){function t(t,r,n,o,i){var a=e.call(this)||this;return a.packet=t,a.acknowledgement=r,a.proof_acked=n,a.proof_height=o,a.signer=i,a}return i(t,e),t.fromAmino=function(e,t){throw new Error("Amino not supported")},t.prototype.toAmino=function(e){throw new Error("Amino not supported")},t.fromData=function(e,r){var n=e.packet,o=e.acknowledgement,i=e.proof_acked,a=e.proof_height,s=e.signer;return new t(n?c.Packet.fromData(n):void 0,i,o,a?u.Height.fromData(a):void 0,s)},t.prototype.toData=function(e){var t=this,r=t.packet,n=t.acknowledgement,o=t.proof_acked,i=t.proof_height,a=t.signer;return{"@type":"/ibc.core.channel.v1.MsgAcknowledgement",packet:r?r.toData():void 0,acknowledgement:n,proof_acked:o,proof_height:i?i.toData():void 0,signer:a}},t.fromProto=function(e,r){return new t(e.packet?c.Packet.fromProto(e.packet):void 0,o.from(e.acknowledgement).toString("base64"),o.from(e.proofAcked).toString("base64"),e.proofHeight?u.Height.fromProto(e.proofHeight):void 0,e.signer)},t.prototype.toProto=function(e){var t=this,r=t.packet,n=t.acknowledgement,i=t.proof_acked,a=t.proof_height,s=t.signer;return d.MsgAcknowledgement.fromPartial({packet:r?r.toProto():void 0,acknowledgement:o.from(n,"base64"),proofAcked:o.from(i,"base64"),proofHeight:a?a.toProto():void 0,signer:s})},t.prototype.packAny=function(e){return s.Any.fromPartial({typeUrl:"/ibc.core.channel.v1.MsgAcknowledgement",value:d.MsgAcknowledgement.encode(this.toProto()).finish()})},t.unpackAny=function(e,r){return t.fromProto(d.MsgAcknowledgement.decode(e.value))},t}(a.JSONSerializable);t.MsgAcknowledgement=l},87622:function(e,t,r){"use strict";var n,o=r(48764).Buffer,i=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.MsgRecvPacket=void 0;var a=r(54396),s=r(17063),u=r(37691),c=r(38209),d=r(33979),l=function(e){function t(t,r,n,o){var i=e.call(this)||this;return i.packet=t,i.proof_commitment=r,i.proof_height=n,i.signer=o,i}return i(t,e),t.fromAmino=function(e,t){throw new Error("Amino not supported")},t.prototype.toAmino=function(e){throw new Error("Amino not supported")},t.fromData=function(e,r){var n=e.packet,o=e.proof_commitment,i=e.proof_height,a=e.signer;return new t(n?c.Packet.fromData(n):void 0,o,i?u.Height.fromData(i):void 0,a)},t.prototype.toData=function(e){var t=this,r=t.packet,n=t.proof_commitment,o=t.proof_height,i=t.signer;return{"@type":"/ibc.core.channel.v1.MsgRecvPacket",packet:r?r.toData():void 0,proof_commitment:n,proof_height:o?o.toData():void 0,signer:i}},t.fromProto=function(e,r){return new t(e.packet?c.Packet.fromProto(e.packet):void 0,o.from(e.proofCommitment).toString("base64"),e.proofHeight?u.Height.fromProto(e.proofHeight):void 0,e.signer)},t.prototype.toProto=function(e){var t=this,r=t.packet,n=t.proof_commitment,i=t.proof_height,a=t.signer;return d.MsgRecvPacket.fromPartial({packet:r?r.toProto():void 0,proofCommitment:o.from(n,"base64"),proofHeight:i?i.toProto():void 0,signer:a})},t.prototype.packAny=function(e){return s.Any.fromPartial({typeUrl:"/ibc.core.channel.v1.MsgRecvPacket",value:d.MsgRecvPacket.encode(this.toProto()).finish()})},t.unpackAny=function(e,r){return t.fromProto(d.MsgRecvPacket.decode(e.value))},t}(a.JSONSerializable);t.MsgRecvPacket=l},19505:function(e,t,r){"use strict";var n,o=r(48764).Buffer,i=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.MsgTimeout=void 0;var s=r(54396),u=r(17063),c=r(37691),d=r(38209),l=r(33979),f=a(r(43720)),h=function(e){function t(t,r,n,o,i){var a=e.call(this)||this;return a.packet=t,a.proof_unreceived=r,a.proof_height=n,a.next_sequence_recv=o,a.signer=i,a}return i(t,e),t.fromAmino=function(e,t){throw new Error("Amino not supported")},t.prototype.toAmino=function(e){throw new Error("Amino not supported")},t.fromData=function(e,r){var n=e.packet,o=e.proof_unreceived,i=e.proof_height,a=e.next_sequence_recv,s=e.signer;return new t(n?d.Packet.fromData(n):void 0,o,i?c.Height.fromData(i):void 0,Number.parseInt(a),s)},t.prototype.toData=function(e){var t=this,r=t.packet,n=t.proof_unreceived,o=t.proof_height,i=t.next_sequence_recv,a=t.signer;return{"@type":"/ibc.core.channel.v1.MsgTimeout",packet:r?r.toData():void 0,proof_unreceived:n,proof_height:o?o.toData():void 0,next_sequence_recv:i.toFixed(),signer:a}},t.fromProto=function(e,r){return new t(e.packet?d.Packet.fromProto(e.packet):void 0,o.from(e.proofUnreceived).toString("base64"),e.proofHeight?c.Height.fromProto(e.proofHeight):void 0,e.nextSequenceRecv.toNumber(),e.signer)},t.prototype.toProto=function(e){var t=this,r=t.packet,n=t.proof_unreceived,i=t.proof_height,a=t.next_sequence_recv,s=t.signer;return l.MsgTimeout.fromPartial({packet:r?r.toProto():void 0,proofUnreceived:o.from(n,"base64"),proofHeight:i?i.toProto():void 0,nextSequenceRecv:f.default.fromNumber(a),signer:s})},t.prototype.packAny=function(e){return u.Any.fromPartial({typeUrl:"/ibc.core.channel.v1.MsgTimeout",value:l.MsgTimeout.encode(this.toProto()).finish()})},t.unpackAny=function(e,r){return t.fromProto(l.MsgTimeout.decode(e.value))},t}(s.JSONSerializable);t.MsgTimeout=h},11188:function(e,t,r){"use strict";var n,o=r(48764).Buffer,i=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.MsgTimeoutOnClose=void 0;var s=r(54396),u=r(17063),c=r(37691),d=r(38209),l=r(33979),f=a(r(43720)),h=function(e){function t(t,r,n,o,i,a){var s=e.call(this)||this;return s.packet=t,s.proof_unreceived=r,s.proof_close=n,s.proof_height=o,s.next_sequence_recv=i,s.signer=a,s}return i(t,e),t.fromAmino=function(e,t){throw new Error("Amino not supported")},t.prototype.toAmino=function(e){throw new Error("Amino not supported")},t.fromData=function(e,r){var n=e.packet,o=e.proof_unreceived,i=e.proof_close,a=e.proof_height,s=e.next_sequence_recv,u=e.signer;return new t(n?d.Packet.fromData(n):void 0,i,o,a?c.Height.fromData(a):void 0,Number.parseInt(s),u)},t.prototype.toData=function(e){var t=this,r=t.packet,n=t.proof_unreceived,o=t.proof_close,i=t.proof_height,a=t.next_sequence_recv,s=t.signer;return{"@type":"/ibc.core.channel.v1.MsgTimeoutOnClose",packet:r?r.toData():void 0,proof_unreceived:n,proof_close:o,proof_height:i?i.toData():void 0,next_sequence_recv:a.toFixed(),signer:s}},t.fromProto=function(e,r){return new t(e.packet?d.Packet.fromProto(e.packet):void 0,o.from(e.proofUnreceived).toString("base64"),o.from(e.proofClose).toString("base64"),e.proofHeight?c.Height.fromProto(e.proofHeight):void 0,e.nextSequenceRecv.toNumber(),e.signer)},t.prototype.toProto=function(e){var t=this,r=t.packet,n=t.proof_unreceived,i=t.proof_close,a=t.proof_height,s=t.next_sequence_recv,u=t.signer;return l.MsgTimeoutOnClose.fromPartial({packet:r?r.toProto():void 0,proofUnreceived:o.from(n,"base64"),proofClose:o.from(i,"base64"),proofHeight:a?a.toProto():void 0,nextSequenceRecv:f.default.fromNumber(s),signer:u})},t.prototype.packAny=function(e){return u.Any.fromPartial({typeUrl:"/ibc.core.channel.v1.MsgTimeoutOnClose",value:l.MsgTimeoutOnClose.encode(this.toProto()).finish()})},t.unpackAny=function(e,r){return t.fromProto(l.MsgTimeoutOnClose.decode(e.value))},t}(s.JSONSerializable);t.MsgTimeoutOnClose=h},21065:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(59518),t),o(r(59153),t),o(r(74826),t),o(r(4240),t),o(r(48372),t),o(r(68691),t),o(r(87622),t),o(r(37414),t),o(r(19505),t),o(r(11188),t)},32305:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.MsgCreateClient=void 0;var i=r(54396),a=r(17063),s=r(24191),u=function(e){function t(t,r,n){var o=e.call(this)||this;return o.client_state=t,o.consensus_state=r,o.signer=n,o}return o(t,e),t.fromAmino=function(e,t){throw new Error("Amino not supported")},t.prototype.toAmino=function(e){throw new Error("Amino not supported")},t.fromData=function(e,r){return new t(e.client_state,e.consensus_state,e.signer)},t.prototype.toData=function(e){var t=this;return{"@type":"/ibc.core.client.v1.MsgCreateClient",client_state:t.client_state,consensus_state:t.consensus_state,signer:t.signer}},t.fromProto=function(e,r){return new t(e.clientState,e.consensusState,e.signer)},t.prototype.toProto=function(e){var t=this,r=t.client_state,n=t.consensus_state,o=t.signer;return s.MsgCreateClient.fromPartial({clientState:r,consensusState:n,signer:o})},t.prototype.packAny=function(e){return a.Any.fromPartial({typeUrl:"/ibc.core.client.v1.MsgCreateClient",value:s.MsgCreateClient.encode(this.toProto()).finish()})},t.unpackAny=function(e,r){return t.fromProto(s.MsgCreateClient.decode(e.value))},t}(i.JSONSerializable);t.MsgCreateClient=u},62112:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.MsgSubmitMisbehaviour=void 0;var i=r(54396),a=r(17063),s=r(24191),u=function(e){function t(t,r,n){var o=e.call(this)||this;return o.client_id=t,o.misbehaviour=r,o.signer=n,o}return o(t,e),t.fromAmino=function(e,t){throw new Error("Amino not supported")},t.prototype.toAmino=function(e){throw new Error("Amino not supported")},t.fromData=function(e,r){return new t(e.client_id,e.misbehaviour,e.signer)},t.prototype.toData=function(e){var t=this;return{"@type":"/ibc.core.client.v1.MsgSubmitMisbehaviour",client_id:t.client_id,misbehaviour:t.misbehaviour,signer:t.signer}},t.fromProto=function(e,r){return new t(e.clientId,e.misbehaviour,e.signer)},t.prototype.toProto=function(e){var t=this,r=t.client_id,n=t.misbehaviour,o=t.signer;return s.MsgSubmitMisbehaviour.fromPartial({clientId:r,misbehaviour:n,signer:o})},t.prototype.packAny=function(e){return a.Any.fromPartial({typeUrl:"/ibc.core.client.v1.MsgSubmitMisbehaviour",value:s.MsgSubmitMisbehaviour.encode(this.toProto()).finish()})},t.unpackAny=function(e,r){return t.fromProto(s.MsgSubmitMisbehaviour.decode(e.value))},t}(i.JSONSerializable);t.MsgSubmitMisbehaviour=u},82041:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.MsgUpdateClient=void 0;var i=r(54396),a=r(17063),s=r(24191),u=r(68811),c=function(e){function t(t,r,n){var o=e.call(this)||this;return o.client_id=t,o.header=r,o.signer=n,o}return o(t,e),t.fromAmino=function(e,t){throw new Error("Amino not supported")},t.prototype.toAmino=function(){throw new Error("Amino not supported")},t.fromData=function(e,r){var n=e.client_id,o=e.header,i=e.signer;return new t(n,o?u.Header.fromData(o):void 0,i)},t.prototype.toData=function(e){var t=this,r=t.client_id,n=t.header,o=t.signer;return{"@type":"/ibc.core.client.v1.MsgUpdateClient",client_id:r,header:(null==n?void 0:n.toData())||void 0,signer:o}},t.fromProto=function(e,r){return new t(e.clientId,e.header?u.Header.unpackAny(e.header):void 0,e.signer)},t.prototype.toProto=function(e){var t=this,r=t.client_id,n=t.header,o=t.signer;return s.MsgUpdateClient.fromPartial({clientId:r,header:(null==n?void 0:n.packAny())||void 0,signer:o})},t.prototype.packAny=function(e){return a.Any.fromPartial({typeUrl:"/ibc.core.client.v1.MsgUpdateClient",value:s.MsgUpdateClient.encode(this.toProto()).finish()})},t.unpackAny=function(e,r){return t.fromProto(s.MsgUpdateClient.decode(e.value))},t}(i.JSONSerializable);t.MsgUpdateClient=c},69243:function(e,t,r){"use strict";var n,o=r(48764).Buffer,i=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.MsgUpgradeClient=void 0;var a=r(54396),s=r(17063),u=r(24191),c=function(e){function t(t,r,n,o,i,a){var s=e.call(this)||this;return s.client_id=t,s.client_state=r,s.consensus_state=n,s.proof_upgrade_client=o,s.proof_upgrade_consensus_state=i,s.signer=a,s}return i(t,e),t.fromAmino=function(e,t){throw new Error("Amino not supported")},t.prototype.toAmino=function(e){throw new Error("Amino not supported")},t.fromData=function(e,r){return new t(e.client_id,e.client_state,e.consensus_state,e.proof_upgrade_client,e.proof_upgrade_consensus_state,e.signer)},t.prototype.toData=function(e){var t=this;return{"@type":"/ibc.core.client.v1.MsgUpgradeClient",client_id:t.client_id,client_state:t.client_state,consensus_state:t.consensus_state,proof_upgrade_client:t.proof_upgrade_client,proof_upgrade_consensus_state:t.proof_upgrade_consensus_state,signer:t.signer}},t.fromProto=function(e,r){return new t(e.clientId,e.clientState,e.consensusState,o.from(e.proofUpgradeClient).toString("base64"),o.from(e.proofUpgradeConsensusState).toString("base64"),e.signer)},t.prototype.toProto=function(e){var t=this,r=t.client_id,n=t.client_state,i=t.consensus_state,a=t.proof_upgrade_client,s=t.proof_upgrade_consensus_state,c=t.signer;return u.MsgUpgradeClient.fromPartial({clientId:r,clientState:n,consensusState:i,proofUpgradeClient:o.from(a,"base64"),proofUpgradeConsensusState:o.from(s,"base64"),signer:c})},t.prototype.packAny=function(e){return s.Any.fromPartial({typeUrl:"/ibc.core.client.v1.MsgUpgradeClient",value:u.MsgUpgradeClient.encode(this.toProto()).finish()})},t.unpackAny=function(e,r){return t.fromProto(u.MsgUpgradeClient.decode(e.value))},t}(a.JSONSerializable);t.MsgUpgradeClient=c},25137:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(32305),t),o(r(82041),t),o(r(69243),t),o(r(62112),t)},71812:function(e,t,r){"use strict";var n,o=r(48764).Buffer,i=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),a=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),u=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&a(t,e,r);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.PublicKey=t.Proof=void 0;var c=r(88766),d=r(82107),l=u(r(43720)),f=r(54396),h=function(e){function t(t,r,n,o){var i=e.call(this)||this;return i.total=t,i.index=r,i.leafHash=n,i.aunts=o,i}return i(t,e),t.fromAmino=function(e){throw new Error("Amino not supported")},t.prototype.toAmino=function(){throw new Error("Amino not supported")},t.fromData=function(e){var r=e.total,n=e.index,o=e.leaf_hash,i=e.aunts;return new t(Number.parseInt(r),Number.parseInt(n),o,i)},t.prototype.toData=function(){var e=this,t=e.total,r=e.index,n=e.leafHash,o=e.aunts;return{total:t.toFixed(),index:r.toFixed(),leaf_hash:n,aunts:o}},t.fromProto=function(e){return new t(e.total.toNumber(),e.index.toNumber(),o.from(e.leafHash).toString("base64"),e.aunts.map((function(e){return o.from(e).toString("base64")})))},t.prototype.toProto=function(){var e=this,t=e.total,r=e.index,n=e.leafHash,i=e.aunts;return c.Proof.fromPartial({total:l.fromNumber(t),index:l.fromNumber(r),leafHash:o.from(n,"base64"),aunts:i.map((function(e){return o.from(e,"base64")}))})},t}(f.JSONSerializable);t.Proof=h;var p=function(e){function t(t,r){var n=e.call(this)||this;return n.ed25519=t,n.secp256k1=r,n}return i(t,e),t.fromAmino=function(e){throw new Error("Amino not supported")},t.prototype.toAmino=function(){throw new Error("Amino not supported")},t.fromData=function(e){return new t(e.ed25519,e.secp256k1)},t.prototype.toData=function(){return{ed25519:this.ed25519,secp256k1:this.secp256k1}},t.fromProto=function(e){var r=e.ed25519,n=e.secp256k1;return new t(r?o.from(r).toString("base64"):void 0,n?o.from(n).toString("base64"):void 0)},t.prototype.toProto=function(){var e=this.ed25519,t=this.secp256k1;return d.PublicKey.fromPartial({ed25519:e?o.from(e,"base64"):void 0,secp256k1:t?o.from(t,"base64"):void 0})},t}(f.JSONSerializable);t.PublicKey=p},44681:function(e,t,r){"use strict";var n,o=r(48764).Buffer,i=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),a=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),u=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&a(t,e,r);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.Validator=t.ValidatorSet=t.CommitSig=t.Commit=t.PartSetHeader=t.BlockID=t.SignedHeader=t.Header=void 0;var c=r(29387),d=r(694),l=u(r(43720)),f=r(54396),h=r(70632),p=r(71812),m=function(e){function t(t,r,n,o,i,a,s,u,c,d,l,f,h,p){var m=e.call(this)||this;return m.version=t,m.chainId=r,m.height=n,m.time=o,m.lastBlockId=i,m.lastCommitHash=a,m.dataHash=s,m.validatorsHash=u,m.nextValidatorsHash=c,m.consensusHash=d,m.appHash=l,m.lastResultsHash=f,m.evidenceHash=h,m.proposerAddress=p,m}return i(t,e),t.fromAmino=function(e){throw new Error("Amino not supported")},t.prototype.toAmino=function(){throw new Error("Amino not supported")},t.fromData=function(e){var r=e.version,n=e.chain_id,o=e.height,i=e.time,a=e.last_block_id,s=e.last_commit_hash,u=e.data_hash,c=e.validators_hash,d=e.next_validators_hash,l=e.consensus_hash,f=e.app_hash,p=e.last_results_hash,m=e.evidence_hash,g=e.proposer_address;return new t(r?h.Consensus.fromData(r):void 0,n,o,i?new Date(i):void 0,a?v.fromData(a):void 0,s,u,c,d,l,f,p,m,g)},t.prototype.toData=function(){var e=this,t=e.version,r=e.chainId,n=e.height,o=e.time,i=e.lastBlockId,a=e.lastCommitHash,s=e.dataHash,u=e.validatorsHash,c=e.nextValidatorsHash,d=e.consensusHash,l=e.appHash,f=e.lastResultsHash,h=e.evidenceHash,p=e.proposerAddress;return{version:null==t?void 0:t.toData(),chain_id:r,height:n,time:o?o.toISOString().replace(/\.000Z$/,"Z"):void 0,last_block_id:i?i.toData():void 0,last_commit_hash:a,data_hash:s,validators_hash:u,next_validators_hash:c,consensus_hash:d,app_hash:l,last_results_hash:f,evidence_hash:h,proposer_address:p}},t.fromProto=function(e){var r=e.version,n=e.chainId,i=e.height,a=e.time,s=e.lastBlockId,u=e.lastCommitHash,c=e.dataHash,d=e.validatorsHash,l=e.nextValidatorsHash,f=e.consensusHash,p=e.appHash,m=e.lastResultsHash,g=e.evidenceHash,b=e.proposerAddress;return new t(r?h.Consensus.fromProto(r):void 0,n,i.toString(),a,s?v.fromProto(s):void 0,o.from(u).toString("base64"),o.from(c).toString("base64"),o.from(d).toString("base64"),o.from(l).toString("base64"),o.from(f).toString("base64"),o.from(p).toString("base64"),o.from(m).toString("base64"),o.from(g).toString("base64"),b.toString())},t.prototype.toProto=function(){var e=this,t=e.version,r=e.chainId,n=e.height,i=e.time,a=e.lastBlockId,s=e.lastCommitHash,u=e.dataHash,d=e.validatorsHash,f=e.nextValidatorsHash,h=e.consensusHash,p=e.appHash,m=e.lastResultsHash,g=e.evidenceHash,v=e.proposerAddress;return c.Header.fromPartial({version:null==t?void 0:t.toProto(),chainId:r,height:l.fromString(n),time:i,lastBlockId:null==a?void 0:a.toProto(),lastCommitHash:o.from(s,"base64"),dataHash:o.from(u,"base64"),validatorsHash:o.from(d,"base64"),nextValidatorsHash:o.from(f,"base64"),consensusHash:o.from(h,"base64"),appHash:o.from(p,"base64"),lastResultsHash:o.from(m,"base64"),evidenceHash:o.from(g,"base64"),proposerAddress:o.from(v)})},t}(f.JSONSerializable);t.Header=m;var g=function(e){function t(t,r){var n=e.call(this)||this;return n.header=t,n.commit=r,n}return i(t,e),t.fromAmino=function(e){throw new Error("Amino not supported")},t.prototype.toAmino=function(){throw new Error("Amino not supported")},t.fromData=function(e){var r=e.header,n=e.commit;return new t(r?m.fromData(r):void 0,n?y.fromData(n):void 0)},t.prototype.toData=function(){var e=this.header,t=this.commit;return{header:null==e?void 0:e.toData(),commit:null==t?void 0:t.toData()}},t.fromProto=function(e){return new t(e.header?m.fromProto(e.header):void 0,e.commit?y.fromProto(e.commit):void 0)},t.prototype.toProto=function(){var e=this.header,t=this.commit;return c.SignedHeader.fromPartial({header:null==e?void 0:e.toProto(),commit:null==t?void 0:t.toProto()})},t}(f.JSONSerializable);t.SignedHeader=g;var v=function(e){function t(t,r){var n=e.call(this)||this;return n.hash=t,n.partSetHeader=r,n}return i(t,e),t.fromAmino=function(e){throw new Error("Amino not supported")},t.prototype.toAmino=function(){throw new Error("Amino not supported")},t.fromData=function(e){var r=e.hash,n=e.part_set_header;return new t(r,n?b.fromData(n):void 0)},t.prototype.toData=function(){var e=this.hash,t=this.partSetHeader;return{hash:e,part_set_header:null==t?void 0:t.toData()}},t.fromProto=function(e){return new t(o.from(e.hash).toString("base64"),e.partSetHeader?b.fromProto(e.partSetHeader):void 0)},t.prototype.toProto=function(){var e=this.hash,t=this.partSetHeader;return c.BlockID.fromPartial({hash:o.from(e,"base64"),partSetHeader:t?t.toProto():void 0})},t}(f.JSONSerializable);t.BlockID=v;var b=function(e){function t(t,r){var n=e.call(this)||this;return n.total=t,n.hash=r,n}return i(t,e),t.fromAmino=function(e){throw new Error("Amino not supported")},t.prototype.toAmino=function(){throw new Error("Amino not supported")},t.fromData=function(e){var r=e.total,n=e.hash;return new t(parseInt(r),n)},t.prototype.toData=function(){var e=this.total,t=this.hash;return{total:e.toFixed(),hash:t}},t.fromProto=function(e){return new t(e.total,o.from(e.hash).toString("base64"))},t.prototype.toProto=function(){var e=this.total,t=this.hash;return c.PartSetHeader.fromPartial({total:e,hash:o.from(t,"base64")})},t}(f.JSONSerializable);t.PartSetHeader=b;var y=function(e){function t(t,r,n,o){var i=e.call(this)||this;return i.height=t,i.round=r,i.blockId=n,i.signatures=o,i}return i(t,e),t.fromAmino=function(e){throw new Error("Amino not supported")},t.prototype.toAmino=function(){throw new Error("Amino not supported")},t.fromData=function(e){var r=e.height,n=e.round,o=e.block_id,i=e.signatures;return new t(l.fromString(r),Number.parseInt(n),o?v.fromData(o):void 0,i.map((function(e){return w.fromData(e)})))},t.prototype.toData=function(){var e=this,t=e.height,r=e.round,n=e.blockId,o=e.signatures;return{height:t.toString(),round:r.toFixed(),block_id:null==n?void 0:n.toData(),signatures:o.map((function(e){return e.toData()}))}},t.fromProto=function(e){var r=e.height,n=e.round,o=e.blockId,i=e.signatures;return new t(r,n,o?v.fromProto(o):void 0,i.map((function(e){return w.fromProto(e)})))},t.prototype.toProto=function(){var e=this,t=e.height,r=e.round,n=e.blockId,o=e.signatures;return c.Commit.fromPartial({height:t,round:r,blockId:null==n?void 0:n.toProto(),signatures:o.map((function(e){return e.toProto()}))})},t}(f.JSONSerializable);t.Commit=y;var w=function(e){function t(t,r,n,o){var i=e.call(this)||this;return i.blockIdFlag=t,i.validatorAddress=r,i.timestamp=n,i.signature=o,i}return i(t,e),t.fromAmino=function(e){throw new Error("Amino not supported")},t.prototype.toAmino=function(){throw new Error("Amino not supported")},t.fromData=function(e){var r=e.block_id_flag,n=e.validator_address,o=e.timestamp,i=e.signature;return new t((0,c.blockIDFlagFromJSON)(r),n,o?new Date(o):void 0,i)},t.prototype.toData=function(){var e=this,t=e.blockIdFlag,r=e.validatorAddress,n=e.timestamp,o=e.signature;return{block_id_flag:(0,c.blockIDFlagToJSON)(t),validator_address:r||"",timestamp:n?n.toISOString().replace(/\.000Z$/,"Z"):void 0,signature:o||""}},t.fromProto=function(e){var r=e.blockIdFlag,n=e.validatorAddress,i=e.timestamp,a=e.signature;return new t(r,o.from(n).toString("base64"),i,o.from(a).toString("base64"))},t.prototype.toProto=function(){var e=this,t=e.blockIdFlag,r=e.validatorAddress,n=e.timestamp,i=e.signature;return c.CommitSig.fromPartial({blockIdFlag:t,validatorAddress:r?o.from(r,"base64"):void 0,timestamp:n,signature:i?o.from(i,"base64"):void 0})},t}(f.JSONSerializable);t.CommitSig=w;var _=function(e){function t(t,r,n){var o=e.call(this)||this;return o.validators=t,o.proposer=r,o.totalVotingPower=n,o}return i(t,e),t.fromAmino=function(e){throw new Error("Amino not supported")},t.prototype.toAmino=function(){throw new Error("Amino not supported")},t.fromData=function(e){var r=e.validators,n=e.proposer,o=e.total_voting_power;return new t(r.map((function(e){return S.fromData(e)})),n?S.fromData(n):void 0,l.fromString(o))},t.prototype.toData=function(){var e=this,t=e.validators,r=e.proposer,n=e.totalVotingPower;return{validators:t.map((function(e){return e.toData()})),proposer:null==r?void 0:r.toData(),total_voting_power:n.toString()}},t.fromProto=function(e){var r=e.validators,n=e.proposer,o=e.totalVotingPower;return new t(r.map((function(e){return S.fromProto(e)})),n?S.fromProto(n):void 0,o)},t.prototype.toProto=function(){var e=this,t=e.validators,r=e.proposer,n=e.totalVotingPower;return d.ValidatorSet.fromPartial({validators:t.map((function(e){return e.toProto()})),proposer:(null==r?void 0:r.toProto())||void 0,totalVotingPower:n})},t}(f.JSONSerializable);t.ValidatorSet=_;var S=function(e){function t(t,r,n,o){var i=e.call(this)||this;return i.address=t,i.pubKey=r,i.votingPower=n,i.proposerPriority=o,i}return i(t,e),t.fromAmino=function(e){throw new Error("Amino not supported")},t.prototype.toAmino=function(){throw new Error("Amino not supported")},t.fromData=function(e){var r=e.address,n=e.pub_key,o=e.voting_power,i=e.proposer_priority;return new t(r,n?p.PublicKey.fromData(n):void 0,l.fromString(o),l.fromString(i))},t.prototype.toData=function(){var e=this,t=e.address,r=e.pubKey,n=e.votingPower,o=e.proposerPriority;return{address:t,pub_key:null==r?void 0:r.toData(),voting_power:n.toString(),proposer_priority:o.toString()}},t.fromProto=function(e){var r=e.address,n=e.pubKey,i=e.votingPower,a=e.proposerPriority;return new t(o.from(r).toString("base64"),n?p.PublicKey.fromProto(n):void 0,i,a)},t.prototype.toProto=function(){var e=this,t=e.address,r=e.pubKey,n=e.votingPower,i=e.proposerPriority;return d.Validator.fromPartial({address:o.from(t,"base64"),pubKey:(null==r?void 0:r.toProto())||void 0,votingPower:n,proposerPriority:i})},t}(f.JSONSerializable);t.Validator=S},70632:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),i=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return a(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.App=t.Consensus=void 0;var u=r(69924),c=r(69924),d=s(r(43720)),l=r(54396),f=function(e){function t(t,r){var n=e.call(this)||this;return n.block=t,n.app=r,n}return o(t,e),t.fromAmino=function(e){throw new Error("Amino not supported")},t.prototype.toAmino=function(){throw new Error("Amino not supported")},t.fromData=function(e){var r=e.block,n=e.app;return new t(Number.parseInt(r),Number.parseInt(n))},t.prototype.toData=function(){var e=this.block,t=this.app;return{block:e.toFixed(),app:t.toFixed()}},t.fromProto=function(e){return new t(e.block.toNumber(),e.app.toNumber())},t.prototype.toProto=function(){var e=this.block,t=this.app;return u.Consensus.fromPartial({block:d.fromNumber(e),app:d.fromNumber(t)})},t}(l.JSONSerializable);t.Consensus=f;var h=function(e){function t(t,r){var n=e.call(this)||this;return n.protocol=t,n.software=r,n}return o(t,e),t.fromAmino=function(e){throw new Error("Amino not supported")},t.prototype.toAmino=function(){throw new Error("Amino not supported")},t.fromData=function(e){var r=e.protocol,n=e.software;return new t(Number.parseInt(r),n)},t.prototype.toData=function(){var e=this.protocol,t=this.software;return{protocol:e.toFixed(),software:t}},t.fromProto=function(e){return new t(e.protocol.toNumber(),e.software)},t.prototype.toProto=function(){var e=this.protocol,t=this.software;return c.App.fromPartial({protocol:d.fromNumber(e),software:t})},t}(l.JSONSerializable);t.App=h},17254:function(e,t,r){"use strict";var n,o=r(48764).Buffer,i=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.MsgConnectionOpenAck=void 0;var a=r(54396),s=r(17063),u=r(52249),c=r(20118),d=r(37691),l=function(e){function t(t,r,n,o,i,a,s,u,c,d){var l=e.call(this)||this;return l.connection_id=t,l.counterparty_connection_id=r,l.version=n,l.client_state=o,l.proof_height=i,l.proof_try=a,l.proof_client=s,l.proof_consensus=u,l.consensus_height=c,l.signer=d,l}return i(t,e),t.fromAmino=function(e,t){throw new Error("Amino not supported")},t.prototype.toAmino=function(e){throw new Error("Amino not supported")},t.fromData=function(e,r){var n=e.connection_id,o=e.counterparty_connection_id,i=e.version,a=e.client_state,s=e.proof_height,c=e.proof_try,l=e.proof_client,f=e.proof_consensus,h=e.consensus_height,p=e.signer;return new t(n,o,i?u.Version.fromData(i):void 0,a,s?d.Height.fromData(s):void 0,c,l,f,h?d.Height.fromData(h):void 0,p)},t.prototype.toData=function(e){var t=this,r=t.connection_id,n=t.counterparty_connection_id,o=t.version,i=t.client_state,a=t.proof_height,s=t.proof_try,u=t.proof_client,c=t.proof_consensus,d=t.consensus_height,l=t.signer;return{"@type":"/ibc.core.connection.v1.MsgConnectionOpenAck",connection_id:r,counterparty_connection_id:n,version:o?o.toData():void 0,client_state:i,proof_height:a?a.toData():void 0,proof_try:s,proof_client:u,proof_consensus:c,consensus_height:d?d.toData():void 0,signer:l}},t.fromProto=function(e,r){return new t(e.connectionId,e.counterpartyConnectionId,e.version?u.Version.fromProto(e.version):void 0,e.clientState,e.proofHeight?d.Height.fromProto(e.proofHeight):void 0,o.from(e.proofTry).toString("base64"),o.from(e.proofClient).toString("base64"),o.from(e.proofConsensus).toString("base64"),e.consensusHeight?d.Height.fromProto(e.consensusHeight):void 0,e.signer)},t.prototype.toProto=function(e){var t=this,r=t.connection_id,n=t.counterparty_connection_id,i=t.version,a=t.client_state,s=t.proof_height,u=t.proof_try,d=t.proof_client,l=t.proof_consensus,f=t.consensus_height,h=t.signer;return c.MsgConnectionOpenAck.fromPartial({connectionId:r,counterpartyConnectionId:n,version:i?i.toProto():void 0,clientState:a,proofHeight:s?s.toProto():void 0,proofTry:o.from(u,"base64"),proofClient:o.from(d,"base64"),proofConsensus:o.from(l,"base64"),consensusHeight:f?f.toProto():void 0,signer:h})},t.prototype.packAny=function(e){return s.Any.fromPartial({typeUrl:"/ibc.core.connection.v1.MsgConnectionOpenAck",value:c.MsgConnectionOpenAck.encode(this.toProto()).finish()})},t.unpackAny=function(e,r){return t.fromProto(c.MsgConnectionOpenAck.decode(e.value))},t}(a.JSONSerializable);t.MsgConnectionOpenAck=l},92030:function(e,t,r){"use strict";var n,o=r(48764).Buffer,i=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.MsgConnectionOpenConfirm=void 0;var a=r(54396),s=r(17063),u=r(20118),c=r(37691),d=function(e){function t(t,r,n,o){var i=e.call(this)||this;return i.connection_id=t,i.proof_ack=r,i.proof_height=n,i.signer=o,i}return i(t,e),t.fromAmino=function(e,t){throw new Error("Amino not supported")},t.prototype.toAmino=function(e){throw new Error("Amino not supported")},t.fromData=function(e,r){var n=e.connection_id,o=e.proof_ack,i=e.proof_height,a=e.signer;return new t(n,o,i?c.Height.fromData(i):void 0,a)},t.prototype.toData=function(e){var t=this,r=t.connection_id,n=t.proof_ack,o=t.proof_height,i=t.signer;return{"@type":"/ibc.core.connection.v1.MsgConnectionOpenConfirm",connection_id:r,proof_ack:n,proof_height:o?o.toData():void 0,signer:i}},t.fromProto=function(e,r){return new t(e.connectionId,o.from(e.proofAck).toString("base64"),e.proofHeight?c.Height.fromProto(e.proofHeight):void 0,e.signer)},t.prototype.toProto=function(e){var t=this,r=t.connection_id,n=t.proof_ack,i=t.proof_height,a=t.signer;return u.MsgConnectionOpenConfirm.fromPartial({connectionId:r,proofAck:o.from(n,"base64"),proofHeight:i?i.toProto():void 0,signer:a})},t.prototype.packAny=function(e){return s.Any.fromPartial({typeUrl:"/ibc.core.connection.v1.MsgConnectionOpenConfirm",value:u.MsgConnectionOpenConfirm.encode(this.toProto()).finish()})},t.unpackAny=function(e,r){return t.fromProto(u.MsgConnectionOpenConfirm.decode(e.value))},t}(a.JSONSerializable);t.MsgConnectionOpenConfirm=d},40534:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.MsgConnectionOpenInit=void 0;var a=r(54396),s=r(17063),u=r(53815),c=r(52249),d=r(20118),l=i(r(43720)),f=function(e){function t(t,r,n,o,i){var a=e.call(this)||this;return a.client_id=t,a.delay_period=r,a.signer=n,a.counterparty=o,a.version=i,a}return o(t,e),t.fromAmino=function(e,t){throw new Error("Amino not supported")},t.prototype.toAmino=function(e){throw new Error("Amino not supported")},t.fromData=function(e,r){var n=e.client_id,o=e.counterparty,i=e.version,a=e.delay_period,s=e.signer;return new t(n,Number.parseInt(a),s,o?u.Counterparty.fromData(o):void 0,i?c.Version.fromData(i):void 0)},t.prototype.toData=function(e){var t=this,r=t.client_id,n=t.counterparty,o=t.version,i=t.delay_period,a=t.signer;return{"@type":"/ibc.core.connection.v1.MsgConnectionOpenInit",client_id:r,delay_period:i.toFixed(),signer:a,counterparty:n?n.toData():void 0,version:o?o.toData():void 0}},t.fromProto=function(e,r){return new t(e.clientId,e.delayPeriod.toNumber(),e.signer,e.counterparty?u.Counterparty.fromProto(e.counterparty):void 0,e.version?c.Version.fromProto(e.version):void 0)},t.prototype.toProto=function(e){var t=this,r=t.client_id,n=t.counterparty,o=t.version,i=t.delay_period,a=t.signer;return d.MsgConnectionOpenInit.fromPartial({clientId:r,delayPeriod:l.default.fromNumber(i),signer:a,counterparty:n?n.toProto():void 0,version:o?o.toProto():void 0})},t.prototype.packAny=function(e){return s.Any.fromPartial({typeUrl:"/ibc.core.connection.v1.MsgConnectionOpenInit",value:d.MsgConnectionOpenInit.encode(this.toProto()).finish()})},t.unpackAny=function(e,r){return t.fromProto(d.MsgConnectionOpenInit.decode(e.value))},t}(a.JSONSerializable);t.MsgConnectionOpenInit=f},25024:function(e,t,r){"use strict";var n,o=r(48764).Buffer,i=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.MsgConnectionOpenTry=void 0;var s=r(54396),u=r(17063),c=r(53815),d=r(52249),l=r(20118),f=a(r(43720)),h=r(37691),p=function(e){function t(t,r,n,o,i,a,s,u,c,d,l,f){var h=e.call(this)||this;return h.client_id=t,h.previous_connection_id=r,h.client_state=n,h.counterparty=o,h.delay_period=i,h.counterparty_versions=a,h.proof_height=s,h.proof_init=u,h.proof_client=c,h.proof_consensus=d,h.consensus_height=l,h.signer=f,h}return i(t,e),t.fromAmino=function(e,t){throw new Error("Amino not supported")},t.prototype.toAmino=function(e){throw new Error("Amino not supported")},t.fromData=function(e,r){var n=e.client_id,i=e.previous_connection_id,a=e.client_state,s=e.counterparty,u=e.delay_period,l=e.counterparty_versions,f=e.proof_height,p=e.proof_init,m=e.proof_client,g=e.proof_consensus,v=e.consensus_height,b=e.signer;return new t(n,i,a,s?c.Counterparty.fromData(s):void 0,Number.parseInt(u),l.length>0?l.map((function(e){return d.Version.fromData(e)})):[],f?h.Height.fromData(f):void 0,o.from(p).toString("base64"),o.from(m).toString("base64"),o.from(g).toString("base64"),v?h.Height.fromData(v):void 0,b)},t.prototype.toData=function(e){var t=this,r=t.client_id,n=t.previous_connection_id,o=t.client_state,i=t.counterparty,a=t.delay_period,s=t.counterparty_versions,u=t.proof_height,c=t.proof_init,d=t.proof_client,l=t.proof_consensus,f=t.consensus_height,h=t.signer;return{"@type":"/ibc.core.connection.v1.MsgConnectionOpenTry",client_id:r,previous_connection_id:n,client_state:o,counterparty:i?i.toData():void 0,delay_period:a.toFixed(),counterparty_versions:s.length>0?s.map((function(e){return e.toData()})):[],proof_height:u?u.toData():void 0,proof_init:c,proof_client:d,proof_consensus:l,consensus_height:f?f.toData():void 0,signer:h}},t.fromProto=function(e,r){return new t(e.clientId,e.previousConnectionId,e.clientState,e.counterparty?c.Counterparty.fromProto(e.counterparty):void 0,e.delayPeriod.toNumber(),e.counterpartyVersions.length>0?e.counterpartyVersions.map((function(e){return d.Version.fromProto(e)})):[],e.proofHeight?h.Height.fromProto(e.proofHeight):void 0,o.from(e.proofInit).toString("base64"),o.from(e.proofClient).toString("base64"),o.from(e.proofConsensus).toString("base64"),e.consensusHeight?h.Height.fromProto(e.consensusHeight):void 0,e.signer)},t.prototype.toProto=function(e){var t=this,r=t.client_id,n=t.previous_connection_id,i=t.client_state,a=t.counterparty,s=t.delay_period,u=t.counterparty_versions,c=t.proof_height,d=t.proof_init,h=t.proof_client,p=t.proof_consensus,m=t.consensus_height,g=t.signer;return l.MsgConnectionOpenTry.fromPartial({clientId:r,previousConnectionId:n,clientState:i.toProto(),counterparty:a?a.toProto():void 0,delayPeriod:f.default.fromNumber(s),counterpartyVersions:u.length>0?u.map((function(e){return e.toProto()})):[],proofHeight:c?c.toProto():void 0,proofInit:o.from(d,"base64"),proofClient:o.from(h,"base64"),proofConsensus:o.from(p,"base64"),consensusHeight:m?m.toProto():void 0,signer:g})},t.prototype.packAny=function(e){return u.Any.fromPartial({typeUrl:"/ibc.core.connection.v1.MsgConnectionOpenTry",value:l.MsgConnectionOpenTry.encode(this.toProto()).finish()})},t.unpackAny=function(e,r){return t.fromProto(l.MsgConnectionOpenTry.decode(e.value))},t}(s.JSONSerializable);t.MsgConnectionOpenTry=p},57473:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(40534),t),o(r(25024),t),o(r(92030),t),o(r(17254),t)},7054:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.ClientUpdateProposal=void 0;var i=r(54396),a=r(17063),s=r(23016),u=function(e){function t(t,r,n,o){var i=e.call(this)||this;return i.title=t,i.description=r,i.subjectClientId=n,i.substituteClientId=o,i}return o(t,e),t.fromAmino=function(e,r){var n=e.value;return new t(n.title,n.description,n.subjectClientId,n.substituteClientId)},t.prototype.toAmino=function(e){var t=this;return{type:"ibc/ClientUpdateProposal",value:{title:t.title,description:t.description,subjectClientId:t.subjectClientId,substituteClientId:t.substituteClientId}}},t.fromData=function(e,r){return new t(e.title,e.description,e.subject_client_id,e.substitute_client_id)},t.prototype.toData=function(e){var t=this;return{"@type":"/ibc.core.client.v1.ClientUpdateProposal",title:t.title,description:t.description,subject_client_id:t.subjectClientId,substitute_client_id:t.substituteClientId}},t.fromProto=function(e,r){return new t(e.title,e.description,e.subjectClientId,e.substituteClientId)},t.prototype.toProto=function(e){var t=this,r=t.title,n=t.description,o=t.subjectClientId,i=t.substituteClientId;return s.ClientUpdateProposal.fromPartial({subjectClientId:o,substituteClientId:i,description:n,title:r})},t.prototype.packAny=function(e){return a.Any.fromPartial({typeUrl:"/ibc.core.client.v1.ClientUpdateProposal",value:s.ClientUpdateProposal.encode(this.toProto()).finish()})},t.unpackAny=function(e,r){return t.fromProto(s.ClientUpdateProposal.decode(e.value))},t}(i.JSONSerializable);t.ClientUpdateProposal=u},96560:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(7054),t)},73121:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(81356),t),o(r(65721),t),o(r(12288),t),o(r(78369),t),o(r(71284),t),o(r(77434),t),o(r(42465),t),o(r(18203),t),o(r(10163),t),o(r(98524),t),o(r(3922),t),o(r(13294),t),o(r(60589),t),o(r(87437),t),o(r(22148),t),o(r(48440),t),o(r(79209),t),o(r(70172),t),o(r(7639),t),o(r(75860),t),o(r(69166),t),o(r(26154),t),o(r(37560),t),o(r(10122),t),o(r(45434),t),o(r(90972),t),o(r(28354),t),o(r(9003),t),o(r(97595),t),o(r(76280),t),o(r(72226),t),o(r(40550),t),o(r(33694),t),o(r(28768),t),o(r(77684),t),o(r(48479),t),o(r(52128),t),o(r(5917),t),o(r(13994),t),o(r(70194),t),o(r(67654),t),o(r(46321),t),o(r(3448),t),o(r(18657),t),o(r(75970),t),o(r(96181),t),o(r(2241),t),o(r(76790),t),o(r(79344),t),o(r(86655),t),o(r(91582),t),o(r(21065),t),o(r(25137),t),o(r(57473),t),o(r(99409),t),o(r(2011),t)},38528:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.MsgSwap=void 0;var i=r(54396),a=r(65721),s=r(34730),u=r(81596),c=function(e){function t(t,r,n){var o=e.call(this)||this;return o.trader=t,o.offer_coin=r,o.ask_denom=n,o}return o(t,e),t.fromAmino=function(e,r){if(!r)throw new Error("Not supported for the network");var n=e.value,o=n.trader,i=n.offer_coin,s=n.ask_denom;return new t(o,a.Coin.fromAmino(i),s)},t.prototype.toAmino=function(e){if(!e)throw new Error("Not supported for the network");var t=this,r=t.trader,n=t.offer_coin,o=t.ask_denom;return{type:"market/MsgSwap",value:{trader:r,offer_coin:n.toAmino(),ask_denom:o}}},t.fromProto=function(e,r){if(!r)throw new Error("Not supported for the network");return new t(e.trader,a.Coin.fromProto(e.offerCoin),e.askDenom)},t.prototype.toProto=function(e){if(!e)throw new Error("Not supported for the network");var t=this,r=t.trader,n=t.offer_coin,o=t.ask_denom;return s.MsgSwap.fromPartial({askDenom:o,offerCoin:n.toProto(),trader:r})},t.prototype.packAny=function(e){if(!e)throw new Error("Not supported for the network");return u.Any.fromPartial({typeUrl:"/terra.market.v1beta1.MsgSwap",value:s.MsgSwap.encode(this.toProto(e)).finish()})},t.unpackAny=function(e,r){if(!r)throw new Error("Not supported for the network");return t.fromProto(s.MsgSwap.decode(e.value),r)},t.fromData=function(e,r){if(!r)throw new Error("Not supported for the network");var n=e.trader,o=e.offer_coin,i=e.ask_denom;return new t(n,a.Coin.fromData(o),i)},t.prototype.toData=function(e){if(!e)throw new Error("Not supported for the network");var t=this,r=t.trader,n=t.offer_coin,o=t.ask_denom;return{"@type":"/terra.market.v1beta1.MsgSwap",trader:r,offer_coin:n.toData(),ask_denom:o}},t}(i.JSONSerializable);t.MsgSwap=c},77239:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.MsgSwapSend=void 0;var i=r(54396),a=r(65721),s=r(81596),u=r(34730),c=function(e){function t(t,r,n,o){var i=e.call(this)||this;return i.from_address=t,i.to_address=r,i.offer_coin=n,i.ask_denom=o,i}return o(t,e),t.fromAmino=function(e,r){if(!r)throw new Error("Not supported for the network");var n=e.value,o=n.from_address,i=n.to_address,s=n.offer_coin,u=n.ask_denom;return new t(o,i,a.Coin.fromAmino(s),u)},t.prototype.toAmino=function(e){if(!e)throw new Error("Not supported for the network");var t=this,r=t.from_address,n=t.to_address,o=t.offer_coin,i=t.ask_denom;return{type:"market/MsgSwapSend",value:{from_address:r,to_address:n,offer_coin:o.toAmino(),ask_denom:i}}},t.fromProto=function(e,r){if(!r)throw new Error("Not supported for the network");return new t(e.fromAddress,e.toAddress,a.Coin.fromProto(e.offerCoin),e.askDenom)},t.prototype.toProto=function(e){if(!e)throw new Error("Not supported for the network");var t=this,r=t.from_address,n=t.to_address,o=t.offer_coin,i=t.ask_denom;return u.MsgSwapSend.fromPartial({askDenom:i,fromAddress:r,offerCoin:o.toProto(),toAddress:n})},t.prototype.packAny=function(e){if(!e)throw new Error("Not supported for the network");return s.Any.fromPartial({typeUrl:"/terra.market.v1beta1.MsgSwapSend",value:u.MsgSwapSend.encode(this.toProto(e)).finish()})},t.unpackAny=function(e,r){if(!r)throw new Error("Not supported for the network");return t.fromProto(u.MsgSwapSend.decode(e.value),r)},t.fromData=function(e,r){if(!r)throw new Error("Not supported for the network");var n=e.from_address,o=e.to_address,i=e.offer_coin,s=e.ask_denom;return new t(n,o,a.Coin.fromData(i),s)},t.prototype.toData=function(e){if(!e)throw new Error("Not supported for the network");var t=this,r=t.from_address,n=t.to_address,o=t.offer_coin,i=t.ask_denom;return{"@type":"/terra.market.v1beta1.MsgSwapSend",from_address:r,to_address:n,offer_coin:o.toData(),ask_denom:i}},t}(i.JSONSerializable);t.MsgSwapSend=c},40550:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(38528),t),o(r(77239),t)},77434:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.int=t.dec=t.Int=t.Dec=t.Numeric=t.DEC_PRECISION=void 0;var a,s=i(r(93776));t.DEC_PRECISION=18,function(e){e.parse=function(e){if(e instanceof u)return e;if("string"==typeof e)return e.includes(".")?new u(e):new c(e);var t=new s.default(e);return t.isInteger()?new c(t):new u(t.toString())}}(a=t.Numeric||(t.Numeric={}));var u=function(e){function r(t){return e.call(this,(null!=t?t:0).toString())||this}return o(r,e),r.prototype.toString=function(){return this.toFixed(t.DEC_PRECISION)},r.withPrec=function(e,t){return new r(new r(e).div(Math.pow(10,t)))},r.prototype.toInt=function(){return new c(this)},r.prototype.add=function(t){var n=new r(a.parse(t));return new r(e.prototype.add.call(this,n))},r.prototype.sub=function(t){var n=new r(a.parse(t));return new r(e.prototype.sub.call(this,n))},r.prototype.mul=function(t){var n=new r(a.parse(t));return new r(e.prototype.mul.call(this,n))},r.prototype.div=function(t){var n=new r(a.parse(t));return new r(e.prototype.div.call(this,n))},r.prototype.mod=function(t){var n=new r(a.parse(t));return new r(e.prototype.mod.call(this,n))},r}(s.default);t.Dec=u;var c=function(e){function t(t){var r=new s.default((null!=t?t:0).toString());return e.call(this,r.divToInt(1))||this}return o(t,e),t.prototype.toString=function(){return this.toFixed()},t.prototype.toDec=function(){return new u(this)},t.prototype.add=function(e){var r=a.parse(e);return r instanceof u?new u(this).add(r):new t(this.plus(r))},t.prototype.sub=function(e){var r=a.parse(e);return r instanceof u?new u(this).sub(r):new t(this.minus(r))},t.prototype.mul=function(e){var r=a.parse(e);return r instanceof u?new u(this).mul(r):new t(this.times(r))},t.prototype.div=function(r){var n=a.parse(r);return n instanceof u?new u(this).div(n):new t(e.prototype.div.call(this,n))},t.prototype.mod=function(r){var n=a.parse(r);return n instanceof u?new u(this).mod(n):new t(e.prototype.mod.call(this,n))},t}(s.default.clone());t.Int=c,t.dec=function(e){return new u(e[0])},t.int=function(e){return new c(e[0])}},48479:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),i=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return a(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.AggregateExchangeRatePrevote=void 0;var u=r(54396),c=r(74143),d=s(r(43720)),l=function(e){function t(t,r,n){var o=e.call(this)||this;return o.hash=t,o.voter=r,o.submit_block=n,o}return o(t,e),t.fromAmino=function(e){var r=e.hash,n=e.voter,o=e.submit_block;return new t(r,n,Number.parseInt(o))},t.prototype.toAmino=function(){var e=this;return{hash:e.hash,voter:e.voter,submit_block:e.submit_block.toFixed()}},t.fromData=function(e){var r=e.hash,n=e.voter,o=e.submit_block;return new t(r,n,Number.parseInt(o))},t.prototype.toData=function(){var e=this;return{hash:e.hash,voter:e.voter,submit_block:e.submit_block.toFixed()}},t.fromProto=function(e){return new t(e.hash,e.voter,e.submitBlock.toNumber())},t.prototype.toProto=function(){var e=this,t=e.hash,r=e.voter,n=e.submit_block;return c.AggregateExchangeRatePrevote.fromPartial({hash:t,submitBlock:d.fromNumber(n),voter:r})},t}(u.JSONSerializable);t.AggregateExchangeRatePrevote=l},52128:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.ExchangeRateTuple=t.AggregateExchangeRateVote=void 0;var i=r(54396),a=r(74143),s=r(77434),u=function(e){function t(t,r){var n=e.call(this)||this;return n.exchange_rate_tuples=t,n.voter=r,n}return o(t,e),t.fromAmino=function(e){var r=e.exchange_rate_tuples,n=e.voter;return new t(r.map((function(e){return c.fromAmino(e)})),n)},t.prototype.toAmino=function(){var e=this.exchange_rate_tuples,t=this.voter;return{exchange_rate_tuples:e.map((function(e){return e.toAmino()})),voter:t}},t.fromData=function(e){var r=e.exchange_rate_tuples,n=e.voter;return new t(r.map((function(e){return c.fromData(e)})),n)},t.prototype.toData=function(){var e=this.exchange_rate_tuples,t=this.voter;return{exchange_rate_tuples:e.map((function(e){return e.toData()})),voter:t}},t.fromProto=function(e){return new t(e.exchangeRateTuples.map((function(e){return c.fromProto(e)})),e.voter)},t.prototype.toProto=function(){var e=this.exchange_rate_tuples,t=this.voter;return a.AggregateExchangeRateVote.fromPartial({exchangeRateTuples:e.map((function(e){return e.toProto()})),voter:t})},t}(i.JSONSerializable);t.AggregateExchangeRateVote=u;var c=function(e){function t(t,r){var n=e.call(this)||this;return n.denom=t,n.exchange_rate=new s.Dec(r),n}return o(t,e),t.fromAmino=function(e){return new t(e.denom,e.exchange_rate)},t.prototype.toAmino=function(){return{denom:this.denom,exchange_rate:this.exchange_rate.toString()}},t.fromData=function(e){return new t(e.denom,e.exchange_rate)},t.prototype.toData=function(){return{denom:this.denom,exchange_rate:this.exchange_rate.toString()}},t.fromProto=function(e){return new t(e.denom,e.exchangeRate)},t.prototype.toProto=function(){var e=this.denom,t=this.exchange_rate;return a.ExchangeRateTuple.fromPartial({denom:e,exchangeRate:t.toString()})},t}(i.JSONSerializable);t.ExchangeRateTuple=c},40720:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.MsgAggregateExchangeRatePrevote=void 0;var i=r(54396),a=r(81596),s=r(28766),u=function(e){function t(t,r,n){var o=e.call(this)||this;return o.hash=t,o.feeder=r,o.validator=n,o}return o(t,e),t.fromAmino=function(e,r){if(!r)throw new Error("Not supported for the network");var n=e.value;return new t(n.hash,n.feeder,n.validator)},t.prototype.toAmino=function(e){if(!e)throw new Error("Not supported for the network");var t=this;return{type:"oracle/MsgAggregateExchangeRatePrevote",value:{hash:t.hash,feeder:t.feeder,validator:t.validator}}},t.fromData=function(e,r){if(!r)throw new Error("Not supported for the network");return new t(e.hash,e.feeder,e.validator)},t.prototype.toData=function(e){if(!e)throw new Error("Not supported for the network");var t=this;return{"@type":"/terra.oracle.v1beta1.MsgAggregateExchangeRatePrevote",hash:t.hash,feeder:t.feeder,validator:t.validator}},t.fromProto=function(e,r){if(!r)throw new Error("Not supported for the network");return new t(e.hash,e.feeder,e.validator)},t.prototype.toProto=function(e){if(!e)throw new Error("Not supported for the network");var t=this,r=t.hash,n=t.feeder,o=t.validator;return s.MsgAggregateExchangeRatePrevote.fromPartial({hash:r,feeder:n,validator:o})},t.prototype.packAny=function(e){if(!e)throw new Error("Not supported for the network");return a.Any.fromPartial({typeUrl:"/terra.oracle.v1beta1.MsgAggregateExchangeRatePrevote",value:s.MsgAggregateExchangeRatePrevote.encode(this.toProto(e)).finish()})},t.unpackAny=function(e,r){if(!r)throw new Error("Not supported for the network");return t.fromProto(s.MsgAggregateExchangeRatePrevote.decode(e.value),r)},t}(i.JSONSerializable);t.MsgAggregateExchangeRatePrevote=u},57439:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.MsgAggregateExchangeRateVote=t.aggregateVoteHash=void 0;var i=r(63915),a=r(54396),s=r(40720),u=r(12288),c=r(81596),d=r(28766);function l(e,t,r){var n="".concat(t,":").concat(e.toDecCoins().toString(),":").concat(r);return i.SHA256.hash(n).toString().substring(0,40)}t.aggregateVoteHash=l;var f=function(e){function t(t,r,n,o){var i=e.call(this)||this;return i.salt=r,i.feeder=n,i.validator=o,i.exchange_rates=new u.Coins(t).toDecCoins(),i}return o(t,e),t.fromAmino=function(e,r){if(!r)throw new Error("Not supported for the network");var n=e.value,o=n.exchange_rates,i=n.salt,a=n.feeder,s=n.validator;return new t(u.Coins.fromString(o),i,a,s)},t.prototype.toAmino=function(e){if(!e)throw new Error("Not supported for the network");var t=this,r=t.exchange_rates,n=t.salt,o=t.feeder,i=t.validator;return{type:"oracle/MsgAggregateExchangeRateVote",value:{exchange_rates:r.toDecCoins().toString(),salt:n,feeder:o,validator:i}}},t.fromData=function(e,r){if(!r)throw new Error("Not supported for the network");var n=e.exchange_rates,o=e.salt,i=e.feeder,a=e.validator;return new t(u.Coins.fromString(n),o,i,a)},t.prototype.toData=function(e){if(!e)throw new Error("Not supported for the network");var t=this,r=t.exchange_rates,n=t.salt,o=t.feeder,i=t.validator;return{"@type":"/terra.oracle.v1beta1.MsgAggregateExchangeRateVote",exchange_rates:r.toDecCoins().toString(),salt:n,feeder:o,validator:i}},t.fromProto=function(e,r){if(!r)throw new Error("Not supported for the network");return new t(u.Coins.fromString(e.exchangeRates),e.salt,e.feeder,e.validator)},t.prototype.toProto=function(e){if(!e)throw new Error("Not supported for the network");var t=this,r=t.exchange_rates,n=t.salt,o=t.feeder,i=t.validator;return d.MsgAggregateExchangeRateVote.fromPartial({exchangeRates:r.toString(),feeder:o,salt:n,validator:i})},t.prototype.getAggregateVoteHash=function(){return l(this.exchange_rates,this.salt,this.validator)},t.prototype.getPrevote=function(){return new s.MsgAggregateExchangeRatePrevote(this.getAggregateVoteHash(),this.feeder,this.validator)},t.prototype.packAny=function(e){if(!e)throw new Error("Not supported for the network");return c.Any.fromPartial({typeUrl:"/terra.oracle.v1beta1.MsgAggregateExchangeRateVote",value:d.MsgAggregateExchangeRateVote.encode(this.toProto(e)).finish()})},t.unpackAny=function(e,r){if(!r)throw new Error("Not supported for the network");return t.fromProto(d.MsgAggregateExchangeRateVote.decode(e.value),r)},t}(a.JSONSerializable);t.MsgAggregateExchangeRateVote=f},36167:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.MsgDelegateFeedConsent=void 0;var i=r(54396),a=r(17063),s=r(28766),u=function(e){function t(t,r){var n=e.call(this)||this;return n.operator=t,n.delegate=r,n}return o(t,e),t.fromAmino=function(e,r){if(!r)throw new Error("Not supported for the network");var n=e.value;return new t(n.operator,n.delegate)},t.prototype.toAmino=function(e){if(!e)throw new Error("Not supported for the network");return{type:"oracle/MsgDelegateFeedConsent",value:{operator:this.operator,delegate:this.delegate}}},t.fromData=function(e,r){if(!r)throw new Error("Not supported for the network");return new t(e.operator,e.delegate)},t.prototype.toData=function(e){if(!e)throw new Error("Not supported for the network");return{"@type":"/terra.oracle.v1beta1.MsgDelegateFeedConsent",operator:this.operator,delegate:this.delegate}},t.fromProto=function(e,r){if(!r)throw new Error("Not supported for the network");return new t(e.operator,e.delegate)},t.prototype.toProto=function(e){if(!e)throw new Error("Not supported for the network");var t=this.operator,r=this.delegate;return s.MsgDelegateFeedConsent.fromPartial({delegate:r,operator:t})},t.prototype.packAny=function(e){if(!e)throw new Error("Not supported for the network");return a.Any.fromPartial({typeUrl:"/terra.oracle.v1beta1.MsgDelegateFeedConsent",value:s.MsgDelegateFeedConsent.encode(this.toProto(e)).finish()})},t.unpackAny=function(e,r){if(!r)throw new Error("Not supported for the network");return t.fromProto(s.MsgDelegateFeedConsent.decode(e.value),r)},t}(i.JSONSerializable);t.MsgDelegateFeedConsent=u},77684:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(36167),t),o(r(57439),t),o(r(40720),t)},13994:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.ParamChange=t.ParamChanges=void 0;var i=r(54396),a=r(56172),s=function(e){function t(t){var r=e.call(this)||this;return r.paramChanges=t,r}return o(t,e),t.fromAmino=function(e){return new t((null!=e?e:[]).map(u.fromAmino))},t.prototype.toAmino=function(){return this.paramChanges.map((function(e){return e.toAmino()}))},t.fromData=function(e){return new t((null!=e?e:[]).map(u.fromData))},t.prototype.toData=function(){return this.paramChanges.map((function(e){return e.toData()}))},t.fromProto=function(e){return new t((null!=e?e:[]).map(u.fromProto))},t.prototype.toProto=function(){return this.paramChanges.map((function(e){return e.toProto()}))},t}(i.JSONSerializable);t.ParamChanges=s;var u=function(e){function t(t,r,n){var o=e.call(this)||this;return o.subspace=t,o.key=r,o.value=n,o}return o(t,e),t.fromAmino=function(e){return new t(e.subspace,e.key,e.value)},t.prototype.toAmino=function(){var e=this;return{subspace:e.subspace,key:e.key,value:e.value}},t.fromData=function(e){return new t(e.subspace,e.key,e.value)},t.prototype.toData=function(){var e=this;return{subspace:e.subspace,key:e.key,value:e.value}},t.fromProto=function(e){return new t(e.subspace,e.key,e.value)},t.prototype.toProto=function(){var e=this,t=e.subspace,r=e.key,n=e.value;return a.ParamChange.fromPartial({key:r,subspace:t,value:n})},t}(i.JSONSerializable);t.ParamChange=u},25756:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.ParameterChangeProposal=void 0;var i=r(54396),a=r(13994),s=r(17063),u=r(91128),c=function(e){function t(t,r,n){var o=e.call(this)||this;return o.title=t,o.description=r,Array.isArray(n)?o.changes=a.ParamChanges.fromData(n):o.changes=n,o}return o(t,e),t.fromAmino=function(e,r){var n=e.value,o=n.title,i=n.description,s=n.changes;return new t(o,i,a.ParamChanges.fromAmino(s))},t.prototype.toAmino=function(e){var t=this;return{type:e?"params/ParameterChangeProposal":"cosmos-sdk/ParameterChangeProposal",value:{title:t.title,description:t.description,changes:t.changes.toAmino()}}},t.fromData=function(e,r){var n=e.title,o=e.description,i=e.changes;return new t(n,o,a.ParamChanges.fromData(i))},t.prototype.toData=function(e){var t=this;return{"@type":"/cosmos.params.v1beta1.ParameterChangeProposal",title:t.title,description:t.description,changes:t.changes.toData()}},t.fromProto=function(e,r){return new t(e.title,e.description,a.ParamChanges.fromProto(e.changes))},t.prototype.toProto=function(e){var t=this,r=t.title,n=t.description,o=t.changes;return u.ParameterChangeProposal.fromPartial({changes:o.toProto(),description:n,title:r})},t.prototype.packAny=function(e){return s.Any.fromPartial({typeUrl:"/cosmos.params.v1beta1.ParameterChangeProposal",value:u.ParameterChangeProposal.encode(this.toProto(e)).finish()})},t.unpackAny=function(e,r){return t.fromProto(u.ParameterChangeProposal.decode(e.value),r)},t}(i.JSONSerializable);t.ParameterChangeProposal=c},5917:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(25756),t)},1798:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.MsgUnjail=void 0;var i=r(54396),a=r(17063),s=r(64753),u=function(e){function t(t){var r=e.call(this)||this;return r.address=t,r}return o(t,e),t.fromAmino=function(e,r){return new t(e.value.address)},t.prototype.toAmino=function(e){return{type:e?"slashing/MsgUnjail":"cosmos-sdk/MsgUnjail",value:{address:this.address}}},t.fromData=function(e,r){return new t(e.address)},t.prototype.toData=function(e){return{"@type":"/cosmos.slashing.v1beta1.MsgUnjail",address:this.address}},t.fromProto=function(e,r){return new t(e.validatorAddr)},t.prototype.toProto=function(e){var t=this.address;return s.MsgUnjail.fromPartial({validatorAddr:t})},t.prototype.packAny=function(e){return a.Any.fromPartial({typeUrl:"/cosmos.slashing.v1beta1.MsgUnjail",value:s.MsgUnjail.encode(this.toProto(e)).finish()})},t.unpackAny=function(e,r){return t.fromProto(s.MsgUnjail.decode(e.value),r)},t}(i.JSONSerializable);t.MsgUnjail=u},70194:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(1798),t)},46321:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.Delegation=void 0;var i=r(54396),a=r(77434),s=r(65721),u=r(41724),c=function(e){function t(t,r,n,o){var i=e.call(this)||this;return i.delegator_address=t,i.validator_address=r,i.shares=n,i.balance=o,i}return o(t,e),t.fromAmino=function(e){var r=e.delegation,n=r.delegator_address,o=r.validator_address,i=r.shares,u=e.balance;return new t(n,o,new a.Dec(i),s.Coin.fromAmino(u))},t.prototype.toAmino=function(){var e=this,t=e.delegator_address,r=e.validator_address,n=e.shares,o=e.balance;return{delegation:{delegator_address:t,validator_address:r,shares:n.toString()},balance:o.toAmino()}},t.fromData=function(e){var r=e.delegation,n=r.delegator_address,o=r.validator_address,i=r.shares,u=e.balance;return new t(n,o,new a.Dec(i),s.Coin.fromData(u))},t.prototype.toData=function(){var e=this,t=e.delegator_address,r=e.validator_address,n=e.shares,o=e.balance;return{delegation:{delegator_address:t,validator_address:r,shares:n.toString()},balance:o.toData()}},t.fromProto=function(e){var r=e.delegation;return new t(r.delegatorAddress,r.validatorAddress,new a.Dec(r.shares),s.Coin.fromProto(e.balance))},t.prototype.toProto=function(){var e=this,t=e.delegator_address,r=e.validator_address,n=e.shares,o=e.balance;return u.DelegationResponse.fromPartial({delegation:u.Delegation.fromPartial({delegatorAddress:t,shares:n.toString(),validatorAddress:r}),balance:o.toProto()})},t}(i.JSONSerializable);t.Delegation=c},3448:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),i=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return a(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.Redelegation=void 0;var u=r(54396),c=r(77434),d=r(41724),l=s(r(43720)),f=function(e){function t(t,r,n,o){var i=e.call(this)||this;return i.delegator_address=t,i.validator_src_address=r,i.validator_dst_address=n,i.entries=o,i}return o(t,e),t.fromAmino=function(e){var r=e.redelegation;return new t(r.delegator_address,r.validator_src_address,r.validator_dst_address,e.entries.map((function(e){return t.Entry.fromAmino(e)})))},t.prototype.toAmino=function(){var e=this;return{redelegation:{delegator_address:e.delegator_address,validator_src_address:e.validator_src_address,validator_dst_address:e.validator_dst_address},entries:e.entries.map((function(e){return e.toAmino()}))}},t.fromData=function(e){var r=e.redelegation;return new t(r.delegator_address,r.validator_src_address,r.validator_dst_address,e.entries.map((function(e){return t.Entry.fromData(e)})))},t.prototype.toData=function(){var e=this;return{redelegation:{delegator_address:e.delegator_address,validator_src_address:e.validator_src_address,validator_dst_address:e.validator_dst_address},entries:e.entries.map((function(e){return e.toData()}))}},t.fromProto=function(e){var r=e.redelegation;return new t(r.delegatorAddress,r.validatorDstAddress,r.validatorDstAddress,e.entries.map((function(e){return t.Entry.fromProto(e)})))},t.prototype.toProto=function(){var e=this,t=e.delegator_address,r=e.validator_src_address,n=e.validator_dst_address,o=e.entries;return d.RedelegationResponse.fromPartial({entries:o.map((function(e){return e.toProto()})),redelegation:d.Redelegation.fromPartial({delegatorAddress:t,entries:o.map((function(e){return e.toProto().redelegationEntry})),validatorDstAddress:n,validatorSrcAddress:r})})},t}(u.JSONSerializable);t.Redelegation=f,function(e){var t=function(e){function t(t,r,n,o,i){var a=e.call(this)||this;return a.initial_balance=t,a.balance=r,a.shares_dst=n,a.creation_height=o,a.completion_time=i,a}return o(t,e),t.prototype.toAmino=function(){return{redelegation_entry:{initial_balance:this.initial_balance.toString(),shares_dst:this.shares_dst.toString(),creation_height:this.creation_height,completion_time:this.completion_time.toISOString()},balance:this.balance.toString()}},t.fromAmino=function(e){var r=e.redelegation_entry,n=r.initial_balance,o=r.shares_dst,i=r.creation_height,a=r.completion_time,s=e.balance;return new t(new c.Int(n),new c.Int(s),new c.Dec(o),i,new Date(a))},t.prototype.toData=function(){return{redelegation_entry:{initial_balance:this.initial_balance.toString(),shares_dst:this.shares_dst.toString(),creation_height:this.creation_height,completion_time:this.completion_time.toISOString()},balance:this.balance.toString()}},t.fromData=function(e){var r=e.redelegation_entry,n=r.initial_balance,o=r.shares_dst,i=r.creation_height,a=r.completion_time,s=e.balance;return new t(new c.Int(n),new c.Int(s),new c.Dec(o),i,new Date(a))},t.prototype.toProto=function(){var e=this,t=e.initial_balance,r=e.balance,n=e.shares_dst,o=e.creation_height,i=e.completion_time;return d.RedelegationEntryResponse.fromPartial({balance:r.toString(),redelegationEntry:d.RedelegationEntry.fromPartial({completionTime:i,creationHeight:l.fromNumber(o),initialBalance:t.toString(),sharesDst:n.toString()})})},t.fromProto=function(e){var r=e.redelegationEntry;return new t(new c.Int(r.initialBalance),new c.Int(e.balance),new c.Dec(r.sharesDst),r.creationHeight.toNumber(),r.completionTime)},t}(u.JSONSerializable);e.Entry=t}(f=t.Redelegation||(t.Redelegation={})),t.Redelegation=f},18657:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),i=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return a(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.UnbondingDelegation=void 0;var u=r(54396),c=r(77434),d=r(41724),l=s(r(43720)),f=function(e){function t(t,r,n){var o=e.call(this)||this;return o.delegator_address=t,o.validator_address=r,o.entries=n,o}return o(t,e),t.fromAmino=function(e){return new t(e.delegator_address,e.validator_address,e.entries.map((function(e){return t.Entry.fromAmino(e)})))},t.prototype.toAmino=function(){var e=this;return{delegator_address:e.delegator_address,validator_address:e.validator_address,entries:e.entries.map((function(e){return e.toAmino()}))}},t.fromData=function(e){return new t(e.delegator_address,e.validator_address,e.entries.map((function(e){return t.Entry.fromData(e)})))},t.prototype.toData=function(){var e=this;return{delegator_address:e.delegator_address,validator_address:e.validator_address,entries:e.entries.map((function(e){return e.toData()}))}},t.prototype.toProto=function(){var e=this,t=e.delegator_address,r=e.validator_address,n=e.entries;return d.UnbondingDelegation.fromPartial({delegatorAddress:t,entries:n.map((function(e){return e.toProto()})),validatorAddress:r})},t.fromProto=function(e){return new t(e.delegatorAddress,e.validatorAddress,e.entries.map((function(e){return t.Entry.fromProto(e)})))},t}(u.JSONSerializable);t.UnbondingDelegation=f,function(e){var t=function(e){function t(t,r,n,o){var i=e.call(this)||this;return i.initial_balance=t,i.balance=r,i.creation_height=n,i.completion_time=o,i}return o(t,e),t.prototype.toAmino=function(){return{initial_balance:this.initial_balance.toString(),balance:this.balance.toString(),creation_height:this.creation_height.toFixed(),completion_time:this.completion_time.toISOString()}},t.fromAmino=function(e){var r=e.initial_balance,n=e.balance,o=e.creation_height,i=e.completion_time;return new t(new c.Int(r),new c.Int(n),Number.parseInt(o),new Date(i))},t.prototype.toData=function(){return{initial_balance:this.initial_balance.toString(),balance:this.balance.toString(),creation_height:this.creation_height.toFixed(),completion_time:this.completion_time.toISOString()}},t.fromData=function(e){var r=e.initial_balance,n=e.balance,o=e.creation_height,i=e.completion_time;return new t(new c.Int(r),new c.Int(n),Number.parseInt(o),new Date(i))},t.prototype.toProto=function(){var e=this,t=e.initial_balance,r=e.balance,n=e.creation_height,o=e.completion_time;return d.UnbondingDelegationEntry.fromPartial({balance:r.toString(),completionTime:o,creationHeight:l.fromNumber(n),initialBalance:t.toString()})},t.fromProto=function(e){return new t(new c.Int(e.initialBalance),new c.Int(e.balance),e.creationHeight.toNumber(),e.completionTime)},t}(u.JSONSerializable);e.Entry=t}(f=t.UnbondingDelegation||(t.UnbondingDelegation={})),t.UnbondingDelegation=f},75970:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),i=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return a(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.Validator=void 0;var u=r(54396),c=r(77434),d=r(42465),l=r(41724),f=s(r(43720)),h=function(e){function t(t,r,n,o,i,a,s,u,c,d,l){var f=e.call(this)||this;return f.operator_address=t,f.consensus_pubkey=r,f.jailed=n,f.status=o,f.tokens=i,f.delegator_shares=a,f.description=s,f.unbonding_height=u,f.unbonding_time=c,f.commission=d,f.min_self_delegation=l,f}return o(t,e),t.prototype.toAmino=function(){return{operator_address:this.operator_address,consensus_pubkey:this.consensus_pubkey.toAmino(),jailed:this.jailed,status:this.status,tokens:this.tokens.toString(),delegator_shares:this.delegator_shares.toString(),description:this.description,unbonding_height:this.unbonding_height.toFixed(),unbonding_time:this.unbonding_time.toISOString(),commission:this.commission.toAmino(),min_self_delegation:this.min_self_delegation.toString()}},t.fromAmino=function(e){return new t(e.operator_address,d.ValConsPublicKey.fromAmino(e.consensus_pubkey),e.jailed||!1,e.status||0,new c.Int(e.tokens),new c.Dec(e.delegator_shares),t.Description.fromAmino(e.description),Number.parseInt(e.unbonding_height),new Date(e.unbonding_time),t.Commission.fromAmino(e.commission),new c.Int(e.min_self_delegation))},t.prototype.toData=function(){return{operator_address:this.operator_address,consensus_pubkey:this.consensus_pubkey.toData(),jailed:this.jailed,status:this.status,tokens:this.tokens.toString(),delegator_shares:this.delegator_shares.toString(),description:this.description,unbonding_height:this.unbonding_height.toFixed(),unbonding_time:this.unbonding_time.toISOString(),commission:this.commission.toData(),min_self_delegation:this.min_self_delegation.toString()}},t.fromData=function(e){return new t(e.operator_address,d.ValConsPublicKey.fromData(e.consensus_pubkey),e.jailed||!1,e.status||0,new c.Int(e.tokens),new c.Dec(e.delegator_shares),t.Description.fromData(e.description),Number.parseInt(e.unbonding_height),new Date(e.unbonding_time),t.Commission.fromData(e.commission),new c.Int(e.min_self_delegation))},t.prototype.toProto=function(){var e=this,t=e.operator_address,r=e.consensus_pubkey,n=e.jailed,o=e.status,i=e.tokens,a=e.delegator_shares,s=e.description,u=e.unbonding_height,c=e.unbonding_time,d=e.commission,h=e.min_self_delegation;return l.Validator.fromPartial({commission:d.toProto(),consensusPubkey:r.packAny(),delegatorShares:a.toString(),description:s.toProto(),jailed:n,minSelfDelegation:h.toString(),operatorAddress:t,status:o,tokens:i.toString(),unbondingHeight:f.fromNumber(u),unbondingTime:c})},t.fromProto=function(e){return new t(e.operatorAddress,d.ValConsPublicKey.unpackAny(e.consensusPubkey),e.jailed,e.status,new c.Int(e.tokens),new c.Dec(e.delegatorShares),t.Description.fromProto(e.description),e.unbondingHeight.toNumber(),e.unbondingTime,t.Commission.fromProto(e.commission),new c.Int(e.minSelfDelegation))},t}(u.JSONSerializable);t.Validator=h,function(e){e.Status=l.BondStatus;var t=function(e){function t(t,r,n,o,i){var a=e.call(this)||this;return a.moniker=t,a.identity=r,a.website=n,a.details=o,a.security_contact=i,a}return o(t,e),t.prototype.toAmino=function(){return{moniker:this.moniker,identity:this.identity,website:this.website,details:this.details,security_contact:this.security_contact}},t.fromAmino=function(e){return new t(e.moniker,e.identity||"",e.website||"",e.details||"",e.security_contact||"")},t.prototype.toData=function(){return{moniker:this.moniker,identity:this.identity,website:this.website,details:this.details,security_contact:this.security_contact}},t.fromData=function(e){return new t(e.moniker,e.identity||"",e.website||"",e.details||"",e.security_contact||"")},t.prototype.toProto=function(){var e=this,t=e.moniker,r=e.identity,n=e.website,o=e.details,i=e.security_contact;return l.Description.fromPartial({details:o,identity:r,moniker:t,securityContact:i,website:n})},t.fromProto=function(e){return new t(e.moniker,e.identity,e.website,e.details,e.securityContact)},t}(u.JSONSerializable);e.Description=t;var r=function(e){function t(t,r,n){var o=e.call(this)||this;return o.rate=t,o.max_rate=r,o.max_change_rate=n,o}return o(t,e),t.fromAmino=function(e){var r=e.rate,n=e.max_rate,o=e.max_change_rate;return new t(new c.Dec(r),new c.Dec(n),new c.Dec(o))},t.prototype.toAmino=function(){var e=this,t=e.rate,r=e.max_rate,n=e.max_change_rate;return{rate:t.toString(),max_rate:r.toString(),max_change_rate:n.toString()}},t.fromData=function(e){var r=e.rate,n=e.max_rate,o=e.max_change_rate;return new t(new c.Dec(r),new c.Dec(n),new c.Dec(o))},t.prototype.toData=function(){var e=this,t=e.rate,r=e.max_rate,n=e.max_change_rate;return{rate:t.toString(),max_rate:r.toString(),max_change_rate:n.toString()}},t.fromProto=function(e){return new t(new c.Dec(e.rate),new c.Dec(e.maxRate),new c.Dec(e.maxChangeRate))},t.prototype.toProto=function(){var e=this,t=e.rate,r=e.max_rate,n=e.max_change_rate;return l.CommissionRates.fromPartial({maxChangeRate:n.toString(),maxRate:r.toString(),rate:t.toString()})},t}(u.JSONSerializable);e.CommissionRates=r;var n=function(e){function t(t,r){var n=e.call(this)||this;return n.commission_rates=t,n.update_time=r,n}return o(t,e),t.prototype.toAmino=function(){return{commission_rates:this.commission_rates.toAmino(),update_time:this.update_time.toISOString()}},t.fromAmino=function(e){return new t(r.fromAmino(e.commission_rates),new Date(e.update_time))},t.prototype.toData=function(){return{commission_rates:this.commission_rates.toData(),update_time:this.update_time.toISOString()}},t.fromData=function(e){return new t(r.fromData(e.commission_rates),new Date(e.update_time))},t.prototype.toProto=function(){var e=this.commission_rates,t=this.update_time;return l.Commission.fromPartial({commissionRates:e.toProto(),updateTime:t})},t.fromProto=function(e){return new t(r.fromProto(e.commissionRates),e.updateTime)},t}(u.JSONSerializable);e.Commission=n}(h=t.Validator||(t.Validator={})),t.Validator=h},42431:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.MsgBeginRedelegate=void 0;var i=r(54396),a=r(65721),s=r(17063),u=r(83204),c=function(e){function t(t,r,n,o){var i=e.call(this)||this;return i.delegator_address=t,i.validator_src_address=r,i.validator_dst_address=n,i.amount=o,i}return o(t,e),t.fromAmino=function(e,r){var n=e.value,o=n.delegator_address,i=n.validator_src_address,s=n.validator_dst_address,u=n.amount;return new t(o,i,s,a.Coin.fromAmino(u))},t.prototype.toAmino=function(e){var t=this;return{type:e?"staking/MsgBeginRedelegate":"cosmos-sdk/MsgBeginRedelegate",value:{delegator_address:t.delegator_address,validator_src_address:t.validator_src_address,validator_dst_address:t.validator_dst_address,amount:t.amount.toAmino()}}},t.fromData=function(e,r){var n=e.delegator_address,o=e.validator_src_address,i=e.validator_dst_address,s=e.amount;return new t(n,o,i,a.Coin.fromData(s))},t.prototype.toData=function(e){var t=this;return{"@type":"/cosmos.staking.v1beta1.MsgBeginRedelegate",delegator_address:t.delegator_address,validator_src_address:t.validator_src_address,validator_dst_address:t.validator_dst_address,amount:t.amount.toData()}},t.fromProto=function(e,r){return new t(e.delegatorAddress,e.validatorSrcAddress,e.validatorDstAddress,a.Coin.fromProto(e.amount))},t.prototype.toProto=function(e){var t=this,r=t.delegator_address,n=t.validator_src_address,o=t.validator_dst_address,i=t.amount;return u.MsgBeginRedelegate.fromPartial({amount:i.toProto(),delegatorAddress:r,validatorDstAddress:o,validatorSrcAddress:n})},t.prototype.packAny=function(e){return s.Any.fromPartial({typeUrl:"/cosmos.staking.v1beta1.MsgBeginRedelegate",value:u.MsgBeginRedelegate.encode(this.toProto(e)).finish()})},t.unpackAny=function(e,r){return t.fromProto(u.MsgBeginRedelegate.decode(e.value),r)},t}(i.JSONSerializable);t.MsgBeginRedelegate=c},30894:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.MsgCreateValidator=void 0;var i=r(54396),a=r(65721),s=r(77434),u=r(75970),c=r(17063),d=r(83204),l=r(42465),f=function(e){function t(t,r,n,o,i,a,s){var u=e.call(this)||this;return u.description=t,u.commission=r,u.min_self_delegation=n,u.delegator_address=o,u.validator_address=i,u.pubkey=a,u.value=s,u}return o(t,e),t.fromAmino=function(e,r){var n=e.value,o=n.description,i=n.commission,c=n.min_self_delegation,d=n.delegator_address,f=n.validator_address,h=n.pubkey,p=n.value;return new t(o,u.Validator.CommissionRates.fromAmino(i),new s.Int(c),d,f,l.ValConsPublicKey.fromAmino(h),a.Coin.fromAmino(p))},t.prototype.toAmino=function(e){var t=this,r=t.description,n=t.commission,o=t.min_self_delegation,i=t.delegator_address,a=t.validator_address,s=t.pubkey,u=t.value;return{type:e?"staking/MsgCreateValidator":"cosmos-sdk/MsgCreateValidator",value:{description:r,commission:n.toAmino(),min_self_delegation:o.toString(),delegator_address:i,validator_address:a,pubkey:s.toAmino(),value:u.toAmino()}}},t.fromData=function(e,r){var n=e.description,o=e.commission,i=e.min_self_delegation,c=e.delegator_address,d=e.validator_address,f=e.pubkey,h=e.value;return new t(n,u.Validator.CommissionRates.fromData(o),new s.Int(i),c,d,l.ValConsPublicKey.fromData(f),a.Coin.fromData(h))},t.prototype.toData=function(e){var t=this,r=t.description,n=t.commission,o=t.min_self_delegation,i=t.delegator_address,a=t.validator_address,s=t.pubkey,u=t.value;return{"@type":"/cosmos.staking.v1beta1.MsgCreateValidator",description:r,commission:n.toData(),min_self_delegation:o.toString(),delegator_address:i,validator_address:a,pubkey:s.toData(),value:u.toData()}},t.fromProto=function(e,r){return new t(u.Validator.Description.fromProto(e.description),u.Validator.CommissionRates.fromProto(e.commission),new s.Int(e.minSelfDelegation),e.delegatorAddress,e.validatorAddress,l.PublicKey.fromProto(e.pubkey),a.Coin.fromProto(e.value))},t.prototype.toProto=function(e){var t=this,r=t.description,n=t.commission,o=t.min_self_delegation,i=t.delegator_address,a=t.validator_address,s=t.pubkey,u=t.value;return d.MsgCreateValidator.fromPartial({commission:n.toProto(),delegatorAddress:i,description:r.toProto(),minSelfDelegation:o.toString(),pubkey:s.packAny(),validatorAddress:a,value:u.toProto()})},t.prototype.packAny=function(e){return c.Any.fromPartial({typeUrl:"/cosmos.staking.v1beta1.MsgCreateValidator",value:d.MsgCreateValidator.encode(this.toProto(e)).finish()})},t.unpackAny=function(e,r){return t.fromProto(d.MsgCreateValidator.decode(e.value),r)},t}(i.JSONSerializable);t.MsgCreateValidator=f},33240:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.MsgDelegate=void 0;var i=r(65721),a=r(54396),s=r(17063),u=r(83204),c=function(e){function t(t,r,n){var o=e.call(this)||this;return o.delegator_address=t,o.validator_address=r,o.amount=n,o}return o(t,e),t.fromAmino=function(e,r){var n=e.value,o=n.delegator_address,a=n.validator_address,s=n.amount;return new t(o,a,i.Coin.fromAmino(s))},t.prototype.toAmino=function(e){var t=this;return{type:e?"staking/MsgDelegate":"cosmos-sdk/MsgDelegate",value:{delegator_address:t.delegator_address,validator_address:t.validator_address,amount:t.amount.toAmino()}}},t.fromProto=function(e,r){return new t(e.delegatorAddress,e.validatorAddress,i.Coin.fromProto(e.amount))},t.prototype.toProto=function(e){var t=this,r=t.delegator_address,n=t.validator_address,o=t.amount;return u.MsgDelegate.fromPartial({amount:o.toProto(),delegatorAddress:r,validatorAddress:n})},t.prototype.packAny=function(e){return s.Any.fromPartial({typeUrl:"/cosmos.staking.v1beta1.MsgDelegate",value:u.MsgDelegate.encode(this.toProto(e)).finish()})},t.unpackAny=function(e,r){return t.fromProto(u.MsgDelegate.decode(e.value),r)},t.fromData=function(e,r){var n=e.delegator_address,o=e.validator_address,a=e.amount;return new t(n,o,i.Coin.fromData(a))},t.prototype.toData=function(e){var t=this;return{"@type":"/cosmos.staking.v1beta1.MsgDelegate",delegator_address:t.delegator_address,validator_address:t.validator_address,amount:t.amount.toData()}},t}(a.JSONSerializable);t.MsgDelegate=c},65044:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.MsgEditValidator=void 0;var i=r(54396),a=r(77434),s=r(75970),u=r(17063),c=r(83204),d=function(e){function t(t,r,n,o){var i=e.call(this)||this;return i.description=t,i.validator_address=r,i.commission_rate=n,i.min_self_delegation=o,i}return o(t,e),t.fromAmino=function(e,r){var n=e.value,o=n.description,i=n.validator_address,u=n.commission_rate,c=n.min_self_delegation;return new t(s.Validator.Description.fromAmino(o),i,u?new a.Dec(u):void 0,c?new a.Int(c):void 0)},t.prototype.toAmino=function(e){var t=this,r=t.description,n=t.validator_address,o=t.commission_rate,i=t.min_self_delegation;return{type:e?"staking/MsgEditValidator":"cosmos-sdk/MsgEditValidator",value:{description:r,validator_address:n,commission_rate:o?o.toString():void 0,min_self_delegation:i?i.toString():void 0}}},t.fromProto=function(e,r){return new t(s.Validator.Description.fromProto(e.description),e.validatorAddress,""!==e.commissionRate?new a.Dec(e.commissionRate):void 0,""!==e.minSelfDelegation?new a.Int(e.minSelfDelegation):void 0)},t.prototype.toProto=function(e){var t=this,r=t.description,n=t.validator_address,o=t.commission_rate,i=t.min_self_delegation;return c.MsgEditValidator.fromPartial({description:r.toProto(),commissionRate:(null==o?void 0:o.toString())||"",minSelfDelegation:(null==i?void 0:i.toString())||"",validatorAddress:n})},t.prototype.packAny=function(e){return u.Any.fromPartial({typeUrl:"/cosmos.staking.v1beta1.MsgEditValidator",value:c.MsgEditValidator.encode(this.toProto(e)).finish()})},t.unpackAny=function(e,r){return t.fromProto(c.MsgEditValidator.decode(e.value),r)},t.fromData=function(e,r){var n=e.description,o=e.validator_address,i=e.commission_rate,u=e.min_self_delegation;return new t(s.Validator.Description.fromData(n),o,i?new a.Dec(i):void 0,u?new a.Int(u):void 0)},t.prototype.toData=function(e){var t=this,r=t.description,n=t.validator_address,o=t.commission_rate,i=t.min_self_delegation;return{"@type":"/cosmos.staking.v1beta1.MsgEditValidator",description:r,validator_address:n,commission_rate:o?o.toString():void 0,min_self_delegation:i?i.toString():void 0}},t}(i.JSONSerializable);t.MsgEditValidator=d,function(e){e.DESC_DO_NOT_MODIFY={moniker:"[do-not-modify]",website:"[do-not-modify]",identity:"[do-not-modify]",details:"[do-not-modify]",security_contact:"[do-not-modify]"}}(d=t.MsgEditValidator||(t.MsgEditValidator={})),t.MsgEditValidator=d},86467:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.MsgUndelegate=void 0;var i=r(65721),a=r(54396),s=r(17063),u=r(83204),c=function(e){function t(t,r,n){var o=e.call(this)||this;return o.delegator_address=t,o.validator_address=r,o.amount=n,o}return o(t,e),t.fromAmino=function(e,r){var n=e.value,o=n.delegator_address,a=n.validator_address,s=n.amount;return new t(o,a,i.Coin.fromAmino(s))},t.prototype.toAmino=function(e){var t=this;return{type:e?"staking/MsgUndelegate":"cosmos-sdk/MsgUndelegate",value:{delegator_address:t.delegator_address,validator_address:t.validator_address,amount:t.amount.toAmino()}}},t.fromProto=function(e,r){return new t(e.delegatorAddress,e.validatorAddress,i.Coin.fromProto(e.amount))},t.prototype.toProto=function(e){var t=this,r=t.delegator_address,n=t.validator_address,o=t.amount;return u.MsgUndelegate.fromPartial({amount:o.toProto(),delegatorAddress:r,validatorAddress:n})},t.prototype.packAny=function(e){return s.Any.fromPartial({typeUrl:"/cosmos.staking.v1beta1.MsgUndelegate",value:u.MsgUndelegate.encode(this.toProto(e)).finish()})},t.unpackAny=function(e,r){return t.fromProto(u.MsgUndelegate.decode(e.value),r)},t.fromData=function(e,r){var n=e.delegator_address,o=e.validator_address,a=e.amount;return new t(n,o,i.Coin.fromData(a))},t.prototype.toData=function(e){var t=this;return{"@type":"/cosmos.staking.v1beta1.MsgUndelegate",delegator_address:t.delegator_address,validator_address:t.validator_address,amount:t.amount.toData()}},t}(a.JSONSerializable);t.MsgUndelegate=c},67654:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(33240),t),o(r(86467),t),o(r(42431),t),o(r(30894),t),o(r(65044),t)},96181:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.PolicyConstraints=void 0;var i=r(54396),a=r(65721),s=r(77434),u=r(50885),c=function(e){function t(t,r,n,o){var i=e.call(this)||this;return i.cap=n,i.rate_min=new s.Dec(t),i.rate_max=new s.Dec(r),i.change_rate_max=new s.Dec(o),i}return o(t,e),t.fromAmino=function(e){var r=e.rate_min,n=e.rate_max,o=e.cap,i=e.change_rate_max;return new t(r,n,a.Coin.fromAmino(o),i)},t.prototype.toAmino=function(){var e=this,t=e.rate_min,r=e.rate_max,n=e.cap,o=e.change_rate_max;return{rate_min:t.toString(),rate_max:r.toString(),cap:n.toAmino(),change_rate_max:o.toString()}},t.fromData=function(e){var r=e.rate_min,n=e.rate_max,o=e.cap,i=e.change_rate_max;return new t(r,n,a.Coin.fromData(o),i)},t.prototype.toData=function(){var e=this,t=e.rate_min,r=e.rate_max,n=e.cap,o=e.change_rate_max;return{rate_min:t.toString(),rate_max:r.toString(),cap:n.toData(),change_rate_max:o.toString()}},t.fromProto=function(e){return new t(e.rateMax,e.rateMin,a.Coin.fromProto(e.cap),e.changeRateMax)},t.prototype.toProto=function(){var e=this,t=e.rate_min,r=e.rate_max,n=e.cap,o=e.change_rate_max;return u.PolicyConstraints.fromPartial({cap:n.toProto(),changeRateMax:o.toString(),rateMax:r.toString(),rateMin:t.toString()})},t.prototype.clamp=function(e,t){var r=new s.Dec(e),n=new s.Dec(t);n.lt(this.rate_min)?n=this.rate_min:n.gt(this.rate_max)&&(n=this.rate_max);var o=n.sub(r);return n.gt(r)?o.gt(this.change_rate_max)&&(n=r.add(this.change_rate_max)):o.abs().gt(this.change_rate_max)&&(n=r.sub(this.change_rate_max)),n},t}(i.JSONSerializable);t.PolicyConstraints=c},92338:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Plan=void 0;var a=r(54396),s=r(49920),u=i(r(43720)),c=function(e){function t(t,r,n,o,i){var a=e.call(this)||this;return a.name=t,a.time=r,a.height=n,a.info=o,a.upgraded_client_state=i,a}return o(t,e),t.fromAmino=function(e){var r=e.name,n=e.time,o=e.height,i=e.info,a=e.upgraded_client_state;return new t(r,n?new Date(n):void 0,o,i,a)},t.prototype.toAmino=function(){var e=this,t=e.name,r=e.time,n=e.height,o=e.info,i=e.upgraded_client_state;return{name:t,time:r?r.toISOString().replace(/\.000Z$/,"Z"):void 0,height:n,info:o,upgraded_client_state:i}},t.fromData=function(e){var r=e.name,n=e.time,o=e.height,i=e.info,a=e.upgraded_client_state;return new t(r,n?new Date(n):void 0,o,i,a)},t.prototype.toData=function(){var e=this,t=e.name,r=e.time,n=e.height,o=e.info,i=e.upgraded_client_state;return{name:t,time:r?r.toISOString().replace(/\.000Z$/,"Z"):void 0,height:n,info:o,upgraded_client_state:i}},t.fromProto=function(e){return new t(e.name,e.time,e.height.toString(),e.info,e.upgradedClientState)},t.prototype.toProto=function(){var e=this,t=e.name,r=e.time,n=e.height,o=e.info,i=e.upgraded_client_state;return s.Plan.fromPartial({name:t,time:r,height:u.default.fromString(n),info:o,upgradedClientState:i})},t}(a.JSONSerializable);t.Plan=c},76790:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(92338),t),o(r(91564),t)},51640:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.CancelSoftwareUpgradeProposal=void 0;var i=r(54396),a=r(81596),s=r(15056),u=function(e){function t(t,r){var n=e.call(this)||this;return n.title=t,n.description=r,n}return o(t,e),t.fromAmino=function(e,r){var n=e.value;return new t(n.title,n.description)},t.prototype.toAmino=function(e){return{type:e?"upgrade/CancelSoftwareUpgradeProposal":"cosmos-sdk/CancelSoftwareUpgradeProposal",value:{title:this.title,description:this.description}}},t.fromData=function(e,r){return new t(e.title,e.description)},t.prototype.toData=function(e){return{"@type":"/cosmos.upgrade.v1beta1.CancelSoftwareUpgradeProposal",title:this.title,description:this.description}},t.fromProto=function(e,r){return new t(e.title,e.description)},t.prototype.toProto=function(e){var t=this.title,r=this.description;return s.CancelSoftwareUpgradeProposal.fromPartial({title:t,description:r})},t.prototype.packAny=function(e){return a.Any.fromPartial({typeUrl:"/cosmos.upgrade.v1beta1.CancelSoftwareUpgradeProposal",value:s.CancelSoftwareUpgradeProposal.encode(this.toProto(e)).finish()})},t.unpackAny=function(e,r){return t.fromProto(s.CancelSoftwareUpgradeProposal.decode(e.value),r)},t}(i.JSONSerializable);t.CancelSoftwareUpgradeProposal=u},69052:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.SoftwareUpgradeProposal=void 0;var i=r(54396),a=r(81596),s=r(15056),u=r(92338),c=function(e){function t(t,r,n){var o=e.call(this)||this;return o.title=t,o.description=r,o.plan=n,o}return o(t,e),t.fromAmino=function(e,r){var n=e.value,o=n.title,i=n.description,a=n.plan;return new t(o,i,a?u.Plan.fromAmino(a):void 0)},t.prototype.toAmino=function(e){var t=this,r=t.title,n=t.description,o=t.plan;return{type:e?"upgrade/SoftwareUpgradeProposal":"cosmos-sdk/SoftwareUpgradeProposal",value:{title:r,description:n,plan:o?o.toAmino():void 0}}},t.fromData=function(e,r){var n=e.title,o=e.description,i=e.plan;return new t(n,o,i?u.Plan.fromData(i):void 0)},t.prototype.toData=function(e){var t=this,r=t.title,n=t.description,o=t.plan;return{"@type":"/cosmos.upgrade.v1beta1.SoftwareUpgradeProposal",title:r,description:n,plan:o?o.toData():void 0}},t.fromProto=function(e,r){return new t(e.title,e.description,e.plan?u.Plan.fromProto(e.plan):void 0)},t.prototype.toProto=function(e){var t=this,r=t.title,n=t.description,o=t.plan;return s.SoftwareUpgradeProposal.fromPartial({title:r,description:n,plan:o?o.toProto():void 0})},t.prototype.packAny=function(e){return a.Any.fromPartial({typeUrl:"/cosmos.upgrade.v1beta1.SoftwareUpgradeProposal",value:s.SoftwareUpgradeProposal.encode(this.toProto(e)).finish()})},t.unpackAny=function(e,r){return t.fromProto(s.SoftwareUpgradeProposal.decode(e.value),r)},t}(i.JSONSerializable);t.SoftwareUpgradeProposal=c},91564:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(69052),t),o(r(51640),t)},98142:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),i=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return a(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.Period=void 0;var u=r(12288),c=r(90735),d=r(54396),l=s(r(43720)),f=function(e){function t(t,r){var n=e.call(this)||this;return n.length=t,n.amount=new u.Coins(r),n}return o(t,e),t.fromAmino=function(e,r){var n=e.length,o=e.amount;return new t(Number.parseInt(n),u.Coins.fromAmino(o))},t.prototype.toAmino=function(e){var t=this.length,r=this.amount;return{length:t.toFixed(),amount:r.toAmino()}},t.fromData=function(e,r){var n=e.length,o=e.amount;return new t(Number.parseInt(n),u.Coins.fromData(o))},t.prototype.toData=function(e){var t=this.length,r=this.amount;return{length:t.toFixed(),amount:r.toData()}},t.fromProto=function(e,r){return new t(e.length.toNumber(),u.Coins.fromProto(e.amount))},t.prototype.toProto=function(e){var t=this.length,r=this.amount;return c.Period.fromPartial({length:l.fromNumber(t),amount:r.toProto()})},t}(d.JSONSerializable);t.Period=f},2241:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(98142),t),o(r(7926),t)},77364:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.MsgCreatePeriodicVestingAccount=void 0;var a=r(98142),s=r(54396),u=r(17063),c=r(62477),d=i(r(43720)),l=function(e){function t(t,r,n,o){var i=e.call(this)||this;return i.from_address=t,i.to_address=r,i.start_time=n,i.vesting_periods=o,i}return o(t,e),t.fromAmino=function(e,r){if(r)throw new Error("Not supported for the network");var n=e.value,o=n.from_address,i=n.to_address,s=n.start_time,u=n.vesting_periods;return new t(o,i,Number.parseInt(s),u.map((function(e){return a.Period.fromAmino(e,r)})))},t.prototype.toAmino=function(e){if(e)throw new Error("Not supported for the network");var t=this,r=t.from_address,n=t.to_address,o=t.start_time,i=t.vesting_periods;return{type:"cosmos-sdk/MsgCreatePeriodicVestingAccount",value:{from_address:r,to_address:n,start_time:o.toFixed(),vesting_periods:i.map((function(t){return t.toAmino(e)}))}}},t.fromData=function(e,r){if(r)throw new Error("Not supported for the network");var n=e.from_address,o=e.to_address,i=e.start_time,s=e.vesting_periods;return new t(n,o,Number.parseInt(i),s.map((function(e){return a.Period.fromData(e,r)})))},t.prototype.toData=function(e){if(e)throw new Error("Not supported for the network");var t=this,r=t.from_address,n=t.to_address,o=t.start_time,i=t.vesting_periods;return{"@type":"/cosmos.vesting.v1beta1.MsgCreatePeriodicVestingAccount",from_address:r,to_address:n,start_time:o.toFixed(),vesting_periods:i.map((function(t){return t.toData(e)}))}},t.fromProto=function(e,r){if(r)throw new Error("Not supported for the network");return new t(e.fromAddress,e.toAddress,e.startTime.toNumber(),e.vestingPeriods.map((function(e){return a.Period.fromProto(e,r)})))},t.prototype.toProto=function(e){if(e)throw new Error("Not supported for the network");var t=this,r=t.from_address,n=t.to_address,o=t.start_time,i=t.vesting_periods;return c.MsgCreatePeriodicVestingAccount.fromPartial({fromAddress:r,toAddress:n,startTime:d.default.fromNumber(o),vestingPeriods:i.map((function(t){return t.toProto(e)}))})},t.prototype.packAny=function(e){if(e)throw new Error("Not supported for the network");return u.Any.fromPartial({typeUrl:"/cosmos.vesting.v1beta1.MsgCreatePeriodicVestingAccount",value:c.MsgCreatePeriodicVestingAccount.encode(this.toProto(e)).finish()})},t.unpackAny=function(e,r){if(r)throw new Error("Not supported for the network");return t.fromProto(c.MsgCreatePeriodicVestingAccount.decode(e.value),r)},t}(s.JSONSerializable);t.MsgCreatePeriodicVestingAccount=l},81243:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.MsgCreateVestingAccount=void 0;var a=r(12288),s=r(54396),u=r(17063),c=r(62477),d=i(r(43720)),l=function(e){function t(t,r,n,o,i){var s=e.call(this)||this;return s.from_address=t,s.to_address=r,s.end_time=o,s.delayed=i,s.amount=new a.Coins(n),s}return o(t,e),t.fromAmino=function(e,r){if(r)throw new Error("Not supported for the network");var n=e.value,o=n.from_address,i=n.to_address,s=n.amount,u=n.end_time,c=n.delayed;return new t(o,i,a.Coins.fromAmino(s),Number.parseInt(u),c)},t.prototype.toAmino=function(e){if(e)throw new Error("Not supported for the network");var t=this,r=t.from_address,n=t.to_address,o=t.amount,i=t.end_time,a=t.delayed;return{type:"cosmos-sdk/MsgCreateVestingAccount",value:{from_address:r,to_address:n,amount:o.toAmino(),end_time:i.toFixed(),delayed:a}}},t.fromData=function(e,r){if(r)throw new Error("Not supported for the network");var n=e.from_address,o=e.to_address,i=e.amount,s=e.end_time,u=e.delayed;return new t(n,o,a.Coins.fromData(i),Number.parseInt(s),u)},t.prototype.toData=function(e){if(e)throw new Error("Not supported for the network");var t=this,r=t.from_address,n=t.to_address,o=t.amount,i=t.end_time,a=t.delayed;return{"@type":"/cosmos.vesting.v1beta1.MsgCreateVestingAccount",from_address:r,to_address:n,amount:o.toData(),end_time:i.toFixed(),delayed:a}},t.fromProto=function(e,r){if(r)throw new Error("Not supported for the network");return new t(e.fromAddress,e.toAddress,a.Coins.fromProto(e.amount),e.endTime.toNumber(),e.delayed)},t.prototype.toProto=function(e){if(e)throw new Error("Not supported for the network");var t=this,r=t.from_address,n=t.to_address,o=t.amount,i=t.end_time,a=t.delayed;return c.MsgCreateVestingAccount.fromPartial({fromAddress:r,toAddress:n,amount:o.toProto(),endTime:d.default.fromNumber(i),delayed:a})},t.prototype.packAny=function(e){if(e)throw new Error("Not supported for the network");return u.Any.fromPartial({typeUrl:"/cosmos.vesting.v1beta1.MsgCreateVestingAccount",value:c.MsgCreateVestingAccount.encode(this.toProto(e)).finish()})},t.unpackAny=function(e,r){if(r)throw new Error("Not supported for the network");return t.fromProto(c.MsgCreateVestingAccount.decode(e.value),r)},t}(s.JSONSerializable);t.MsgCreateVestingAccount=l},30625:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.MsgDonateAllVestingTokens=void 0;var i=r(54396),a=r(17063),s=r(62477),u=function(e){function t(t){var r=e.call(this)||this;return r.from_address=t,r}return o(t,e),t.fromAmino=function(e,r){if(r)throw new Error("Not supported for the network");return new t(e.value.from_address)},t.prototype.toAmino=function(e){if(e)throw new Error("Not supported for the network");return{type:"cosmos-sdk/MsgDonateAllVestingTokens",value:{from_address:this.from_address}}},t.fromData=function(e,r){if(r)throw new Error("Not supported for the network");return new t(e.from_address)},t.prototype.toData=function(e){if(e)throw new Error("Not supported for the network");return{"@type":"/cosmos.vesting.v1beta1.MsgDonateAllVestingTokens",from_address:this.from_address}},t.fromProto=function(e,r){if(r)throw new Error("Not supported for the network");return new t(e.fromAddress)},t.prototype.toProto=function(e){if(e)throw new Error("Not supported for the network");return s.MsgDonateAllVestingTokens.fromPartial({fromAddress:this.from_address})},t.prototype.packAny=function(e){if(e)throw new Error("Not supported for the network");return a.Any.fromPartial({typeUrl:"/cosmos.vesting.v1beta1.MsgDonateAllVestingTokens",value:s.MsgDonateAllVestingTokens.encode(this.toProto(e)).finish()})},t.unpackAny=function(e,r){if(r)throw new Error("Not supported for the network");return t.fromProto(s.MsgDonateAllVestingTokens.decode(e.value),r)},t}(i.JSONSerializable);t.MsgDonateAllVestingTokens=u},7926:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(77364),t),o(r(81243),t),o(r(30625),t)},49557:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),i=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return a(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.AbsoluteTxPosition=void 0;var u=r(34383),c=r(54396),d=s(r(43720)),l=function(e){function t(t,r){var n=e.call(this)||this;return n.block_height=t,n.tx_index=r,n}return o(t,e),t.fromAmino=function(e){return new t(Number.parseInt(e.block_height),Number.parseInt(e.tx_index))},t.prototype.toAmino=function(){return{block_height:this.block_height.toFixed(),tx_index:this.tx_index.toFixed()}},t.fromData=function(e){return new t(Number.parseInt(e.block_height),Number.parseInt(e.tx_index))},t.prototype.toData=function(){return{block_height:this.block_height.toFixed(),tx_index:this.tx_index.toFixed()}},t.fromProto=function(e){return new t(e.blockHeight.toNumber(),e.txIndex.toNumber())},t.prototype.toProto=function(){return u.AbsoluteTxPosition.fromPartial({blockHeight:d.fromNumber(this.block_height),txIndex:d.fromNumber(this.tx_index)})},t}(c.JSONSerializable);t.AbsoluteTxPosition=l},27848:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.AccessConfig=t.AccessType=void 0;var i=r(34383);Object.defineProperty(t,"AccessType",{enumerable:!0,get:function(){return i.AccessType}});var a=r(54396),s=r(83113),u=function(e){function t(t,r){var n=e.call(this)||this;return n.permission=t,n.address=r,n}return o(t,e),t.fromAmino=function(e){return new t((0,s.convertAccessTypeFromJSON)(e.permission),e.address)},t.prototype.toAmino=function(){return{permission:(0,i.accessTypeToJSON)(this.permission),address:this.address}},t.fromData=function(e){return new t((0,s.convertAccessTypeFromJSON)(e.permission),e.address)},t.prototype.toData=function(){return{permission:(0,i.accessTypeToJSON)(this.permission),address:this.address}},t.fromProto=function(e){return new t(e.permission,e.address)},t.prototype.toProto=function(){return i.AccessConfig.fromPartial({permission:this.permission,address:this.address})},t}(a.JSONSerializable);t.AccessConfig=u},90613:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),i=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return a(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.AccessConfigUpdate=void 0;var u=r(26265),c=r(54396),d=r(27848),l=s(r(43720)),f=function(e){function t(t,r){var n=e.call(this)||this;return n.code_id=t,n.instantiate_permission=r,n}return o(t,e),t.fromAmino=function(e){return new t(Number.parseInt(e.code_id),e.instantiate_permission?d.AccessConfig.fromAmino(e.instantiate_permission):void 0)},t.prototype.toAmino=function(){var e;return{code_id:this.code_id.toFixed(),instantiate_permission:null===(e=this.instantiate_permission)||void 0===e?void 0:e.toAmino()}},t.fromData=function(e){return new t(Number.parseInt(e.code_id),e.instantiate_permission?d.AccessConfig.fromData(e.instantiate_permission):void 0)},t.prototype.toData=function(){var e;return{code_id:this.code_id.toFixed(),instantiate_permission:null===(e=this.instantiate_permission)||void 0===e?void 0:e.toData()}},t.fromProto=function(e){return new t(e.codeId.toNumber(),e.instantiatePermission?d.AccessConfig.fromProto(e.instantiatePermission):void 0)},t.prototype.toProto=function(){var e;return u.AccessConfigUpdate.fromPartial({codeId:l.fromNumber(this.code_id),instantiatePermission:null===(e=this.instantiate_permission)||void 0===e?void 0:e.toProto()})},t}(c.JSONSerializable);t.AccessConfigUpdate=f},18700:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.AccessTypeParam=t.AccessType=void 0;var i=r(34383);Object.defineProperty(t,"AccessType",{enumerable:!0,get:function(){return i.AccessType}});var a=r(54396),s=r(83113),u=function(e){function t(t){var r=e.call(this)||this;return r.value=t,r}return o(t,e),t.fromAmino=function(e){return new t((0,s.convertAccessTypeFromJSON)(e.value))},t.prototype.toAmino=function(){return{value:(0,i.accessTypeToJSON)(this.value)}},t.fromData=function(e){return new t((0,s.convertAccessTypeFromJSON)(e.value))},t.prototype.toData=function(){return{value:(0,i.accessTypeToJSON)(this.value)}},t.fromProto=function(e){return new t(e.value)},t.prototype.toProto=function(){return i.AccessTypeParam.fromPartial({value:this.value})},t}(a.JSONSerializable);t.AccessTypeParam=u},54255:function(e,t,r){"use strict";var n,o=r(48764).Buffer,i=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),a=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),u=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&a(t,e,r);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.HistoryEntry=void 0;var c=r(34383),d=r(54396),l=u(r(43720)),f=r(49557),h=function(e){function t(t,r,n,o){var i=e.call(this)||this;return i.operation=t,i.code_id=r,i.updated=n,i.msg=o,i}return i(t,e),t.fromAmino=function(e){return new t((0,c.contractCodeHistoryOperationTypeFromJSON)(e.operation),Number.parseInt(e.code_id),e.updated?f.AbsoluteTxPosition.fromAmino(e.updated):void 0,e.msg)},t.prototype.toAmino=function(){var e;return{operation:(0,c.contractCodeHistoryOperationTypeToJSON)(this.operation),code_id:this.code_id.toFixed(),updated:null===(e=this.updated)||void 0===e?void 0:e.toAmino(),msg:this.msg}},t.fromData=function(e){return new t((0,c.contractCodeHistoryOperationTypeFromJSON)(e.operation),Number.parseInt(e.code_id),e.updated?f.AbsoluteTxPosition.fromData(e.updated):void 0,e.msg)},t.prototype.toData=function(){var e;return{operation:(0,c.contractCodeHistoryOperationTypeToJSON)(this.operation),code_id:this.code_id.toFixed(),updated:null===(e=this.updated)||void 0===e?void 0:e.toData(),msg:this.msg}},t.fromProto=function(e){return new t(e.operation,e.codeId.toNumber(),e.updated?f.AbsoluteTxPosition.fromProto(e.updated):void 0,JSON.parse(o.from(e.msg).toString("utf-8")))},t.prototype.toProto=function(){var e;return c.ContractCodeHistoryEntry.fromPartial({operation:this.operation,codeId:l.fromNumber(this.code_id),updated:null===(e=this.updated)||void 0===e?void 0:e.toProto(),msg:o.from(JSON.stringify((0,d.removeNull)(this.msg)),"utf-8")})},t}(d.JSONSerializable);t.HistoryEntry=h},79344:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(18700),t),o(r(27848),t)},90049:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.MsgClearContractAdmin=void 0;var i=r(54396),a=r(17063),s=r(5652),u=r(53200),c=function(e){function t(t,r){var n=e.call(this)||this;return n.admin=t,n.contract=r,n}return o(t,e),t.fromAmino=function(e,r){if(r){var n=e.value;return new t(n.admin,n.contract)}var o=e.value;return new t(o.sender,o.contract)},t.prototype.toAmino=function(e){var t=this.admin,r=this.contract;return e?{type:"wasm/MsgClearContractAdmin",value:{admin:t,contract:r}}:{type:"wasm/MsgClearAdmin",value:{sender:t,contract:r}}},t.fromProto=function(e,r){if(r){var n=e;return new t(n.admin,n.contract)}var o=e;return new t(o.sender,o.contract)},t.prototype.toProto=function(e){return e?s.MsgClearContractAdmin.fromPartial({admin:this.admin,contract:this.contract}):u.MsgClearAdmin.fromPartial({sender:this.admin,contract:this.contract})},t.prototype.packAny=function(e){return e?a.Any.fromPartial({typeUrl:"/jmes.wasm.v1beta1.MsgClearContractAdmin",value:s.MsgClearContractAdmin.encode(this.toProto(e)).finish()}):a.Any.fromPartial({typeUrl:"/cosmwasm.wasm.v1.MsgClearAdmin",value:u.MsgClearAdmin.encode(this.toProto(e)).finish()})},t.unpackAny=function(e,r){return r?t.fromProto(s.MsgClearContractAdmin.decode(e.value),r):t.fromProto(u.MsgClearAdmin.decode(e.value),r)},t.fromData=function(e,r){if(r){var n=e;return new t(n.admin,n.contract)}var o=e;return new t(o.sender,o.contract)},t.prototype.toData=function(e){return e?{"@type":"/jmes.wasm.v1beta1.MsgClearContractAdmin",admin:this.admin,contract:this.contract}:{"@type":"/cosmwasm.wasm.v1.MsgClearAdmin",sender:this.admin,contract:this.contract}},t}(i.JSONSerializable);t.MsgClearContractAdmin=c},56833:function(e,t,r){"use strict";var n,o=r(48764).Buffer,i=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.MsgExecuteContract=void 0;var a=r(54396),s=r(12288),u=r(17063),c=r(5652),d=r(53200),l=function(e){function t(t,r,n,o){void 0===o&&(o={});var i=e.call(this)||this;return i.sender=t,i.contract=r,i.execute_msg=n,i.coins=new s.Coins(o),i}return i(t,e),t.fromAmino=function(e,r){if(r){var n=e.value,o=n.sender,i=n.contract,a=n.execute_msg,u=n.coins;return new t(o,i,a,s.Coins.fromAmino(u))}var c=e.value,d=(o=c.sender,i=c.contract,c.msg),l=c.funds;return new t(o,i,d,s.Coins.fromAmino(l))},t.prototype.toAmino=function(e){var t=this,r=t.sender,n=t.contract,o=t.execute_msg,i=t.coins;return e?{type:"wasm/MsgExecuteContract",value:{sender:r,contract:n,execute_msg:(0,a.removeNull)(o),coins:i.toAmino()}}:{type:"wasm/MsgExecuteContract",value:{sender:r,contract:n,msg:(0,a.removeNull)(o),funds:i.toAmino()}}},t.fromProto=function(e,r){var n;return r?new t((n=e).sender,n.contract,JSON.parse(o.from(n.executeMsg).toString("utf-8")),s.Coins.fromProto(n.coins)):new t((n=e).sender,n.contract,JSON.parse(o.from(n.msg).toString("utf-8")),s.Coins.fromProto(n.funds))},t.prototype.toProto=function(e){var t=this,r=t.sender,n=t.contract,i=t.execute_msg,s=t.coins;return e?c.MsgExecuteContract.fromPartial({coins:s.toProto(),contract:n,sender:r,executeMsg:o.from(JSON.stringify((0,a.removeNull)(i)),"utf-8")}):d.MsgExecuteContract.fromPartial({funds:s.toProto(),contract:n,sender:r,msg:o.from(JSON.stringify((0,a.removeNull)(i)),"utf-8")})},t.prototype.packAny=function(e){return e?u.Any.fromPartial({typeUrl:"/jmes.wasm.v1beta1.MsgExecuteContract",value:c.MsgExecuteContract.encode(this.toProto(e)).finish()}):u.Any.fromPartial({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:d.MsgExecuteContract.encode(this.toProto(e)).finish()})},t.unpackAny=function(e,r){return t.fromProto(r?c.MsgExecuteContract.decode(e.value):d.MsgExecuteContract.decode(e.value),r)},t.fromData=function(e,r){if(r){var n=e,o=n.sender,i=n.contract,a=n.execute_msg,u=n.coins;return new t(o,i,a,s.Coins.fromData(u))}var c=e,d=(o=c.sender,i=c.contract,c.msg),l=c.funds;return new t(o,i,d,s.Coins.fromData(l))},t.prototype.toData=function(e){var t=this,r=t.sender,n=t.contract,o=t.execute_msg,i=t.coins;return e?{"@type":"/jmes.wasm.v1beta1.MsgExecuteContract",sender:r,contract:n,execute_msg:o,coins:i.toData()}:{"@type":"/cosmwasm.wasm.v1.MsgExecuteContract",sender:r,contract:n,msg:o,funds:i.toData()}},t}(a.JSONSerializable);t.MsgExecuteContract=l},89641:function(e,t,r){"use strict";var n,o=r(48764).Buffer,i=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),a=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),u=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&a(t,e,r);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.MsgInstantiateContract=void 0;var c=r(54396),d=r(12288),l=r(17063),f=r(5652),h=r(53200),p=u(r(43720)),m=function(e){function t(t,r,n,o,i,a){void 0===i&&(i={});var s=e.call(this)||this;return s.sender=t,s.admin=r,s.code_id=n,s.init_msg=o,s.label=a,s.init_coins=new d.Coins(i),s}return i(t,e),t.fromAmino=function(e,r){if(r){var n=e.value,o=n.sender,i=n.admin,a=n.code_id,s=n.init_msg,u=n.init_coins;return new t(o,i,Number.parseInt(a),s,d.Coins.fromAmino(u))}var c=e.value,l=(o=c.sender,i=c.admin,a=c.code_id,c.msg),f=c.funds,h=c.label;return new t(o,i,Number.parseInt(a),l,d.Coins.fromAmino(f),h)},t.prototype.toAmino=function(e){var t=this,r=t.sender,n=t.admin,o=t.code_id,i=t.init_msg,a=t.init_coins,s=t.label;return e?{type:"wasm/MsgInstantiateContract",value:{sender:r,admin:n,code_id:o.toFixed(),init_msg:(0,c.removeNull)(i),init_coins:a.toAmino()}}:{type:"wasm/MsgInstantiateContract",value:{sender:r,admin:n,code_id:o.toFixed(),label:s,msg:(0,c.removeNull)(i),funds:a.toAmino()}}},t.fromProto=function(e,r){var n;return r?new t((n=e).sender,""!==n.admin?n.admin:void 0,n.codeId.toNumber(),JSON.parse(o.from(n.initMsg).toString("utf-8")),d.Coins.fromProto(n.initCoins)):new t((n=e).sender,""!==n.admin?n.admin:void 0,n.codeId.toNumber(),JSON.parse(o.from(n.msg).toString("utf-8")),d.Coins.fromProto(n.funds),""!==n.label?n.label:void 0)},t.prototype.toProto=function(e){var t=this,r=t.sender,n=t.admin,i=t.code_id,a=t.init_msg,s=t.init_coins,u=t.label;return e?f.MsgInstantiateContract.fromPartial({admin:n,codeId:p.fromNumber(i),initCoins:s.toProto(),initMsg:o.from(JSON.stringify(a),"utf-8"),sender:r}):h.MsgInstantiateContract.fromPartial({admin:n,codeId:p.fromNumber(i),funds:s.toProto(),msg:o.from(JSON.stringify(a),"utf-8"),sender:r,label:u})},t.prototype.packAny=function(e){return e?l.Any.fromPartial({typeUrl:"/jmes.wasm.v1beta1.MsgInstantiateContract",value:f.MsgInstantiateContract.encode(this.toProto(e)).finish()}):l.Any.fromPartial({typeUrl:"/cosmwasm.wasm.v1.MsgInstantiateContract",value:h.MsgInstantiateContract.encode(this.toProto(e)).finish()})},t.unpackAny=function(e,r){return r?t.fromProto(f.MsgInstantiateContract.decode(e.value),r):t.fromProto(h.MsgInstantiateContract.decode(e.value),r)},t.fromData=function(e,r){if(r){var n=e,o=n.sender,i=n.admin,a=n.code_id,s=n.init_msg,u=n.init_coins;return new t(o,""!==i?i:void 0,Number.parseInt(a),s,d.Coins.fromData(u))}var c=e,l=(o=c.sender,i=c.admin,a=c.code_id,c.label),f=c.msg,h=c.funds;return new t(o,""!==i?i:void 0,Number.parseInt(a),f,d.Coins.fromData(h),l)},t.prototype.toData=function(e){var t=this,r=t.sender,n=t.admin,o=t.code_id,i=t.label,a=t.init_msg,s=t.init_coins;return e?{"@type":"/jmes.wasm.v1beta1.MsgInstantiateContract",sender:r,admin:n||"",code_id:o.toFixed(),init_msg:(0,c.removeNull)(a),init_coins:s.toData()}:{"@type":"/cosmwasm.wasm.v1.MsgInstantiateContract",sender:r,admin:n||"",code_id:o.toFixed(),label:i,msg:(0,c.removeNull)(a),funds:s.toData()}},t}(c.JSONSerializable);t.MsgInstantiateContract=m},72327:function(e,t,r){"use strict";var n,o=r(48764).Buffer,i=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),a=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),u=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&a(t,e,r);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.MsgMigrateCode=void 0;var c=r(54396),d=r(17063),l=r(5652),f=u(r(43720)),h=function(e){function t(t,r,n){var o=e.call(this)||this;return o.sender=t,o.code_id=r,o.wasm_byte_code=n,o}return i(t,e),t.fromAmino=function(e,r){if(!r)throw new Error("Not supported for the network");var n=e.value,o=n.sender,i=n.code_id,a=n.wasm_byte_code;return new t(o,Number.parseInt(i),a)},t.prototype.toAmino=function(e){if(!e)throw new Error("Not supported for the network");var t=this,r=t.sender,n=t.code_id,o=t.wasm_byte_code;return{type:"wasm/MsgMigrateCode",value:{sender:r,code_id:n.toFixed(),wasm_byte_code:o}}},t.fromProto=function(e,r){if(!r)throw new Error("Not supported for the network");return new t(e.sender,e.codeId.toNumber(),o.from(e.wasmByteCode).toString("base64"))},t.prototype.toProto=function(e){if(!e)throw new Error("Not supported for the network");var t=this,r=t.sender,n=t.code_id,i=t.wasm_byte_code;return l.MsgMigrateCode.fromPartial({codeId:f.fromNumber(n),sender:r,wasmByteCode:o.from(i,"base64")})},t.prototype.packAny=function(e){if(!e)throw new Error("Not supported for the network");return d.Any.fromPartial({typeUrl:"/jmes.wasm.v1beta1.MsgMigrateCode",value:l.MsgMigrateCode.encode(this.toProto(e)).finish()})},t.unpackAny=function(e,r){if(!r)throw new Error("Not supported for the network");return t.fromProto(l.MsgMigrateCode.decode(e.value),r)},t.fromData=function(e,r){if(!r)throw new Error("Not supported for the network");var n=e.sender,o=e.code_id,i=e.wasm_byte_code;return new t(n,Number.parseInt(o),i)},t.prototype.toData=function(e){if(!e)throw new Error("Not supported for the network");var t=this,r=t.sender,n=t.code_id,o=t.wasm_byte_code;return{"@type":"/jmes.wasm.v1beta1.MsgMigrateCode",sender:r,code_id:n.toFixed(),wasm_byte_code:o}},t}(c.JSONSerializable);t.MsgMigrateCode=h},53819:function(e,t,r){"use strict";var n,o=r(48764).Buffer,i=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),a=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),u=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&a(t,e,r);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.MsgMigrateContract=void 0;var c=r(54396),d=r(17063),l=r(5652),f=r(53200),h=u(r(43720)),p=function(e){function t(t,r,n,o){var i=e.call(this)||this;return i.admin=t,i.contract=r,i.new_code_id=n,i.migrate_msg=o,i}return i(t,e),t.fromAmino=function(e,r){if(r){var n=e.value,o=n.admin,i=n.contract,a=n.new_code_id,s=n.migrate_msg;return new t(o,i,Number.parseInt(a),s)}var u=e.value,c=u.sender,d=(i=u.contract,u.code_id),l=u.msg;return new t(c,i,Number.parseInt(d),l)},t.prototype.toAmino=function(e){if(e){var t=this,r=t.admin,n=t.contract,o=t.new_code_id,i=t.migrate_msg;return{type:"wasm/MsgMigrateContract",value:{admin:r,contract:n,new_code_id:o.toFixed(),migrate_msg:(0,c.removeNull)(i)}}}var a=this;return r=a.admin,n=a.contract,o=a.new_code_id,i=a.migrate_msg,{type:"wasm/MsgMigrateContract",value:{sender:r,contract:n,code_id:o.toFixed(),msg:(0,c.removeNull)(i)}}},t.fromProto=function(e,r){var n;return r?new t((n=e).admin,n.contract,n.newCodeId.toNumber(),JSON.parse(o.from(n.migrateMsg).toString("utf-8"))):new t((n=e).sender,n.contract,n.codeId.toNumber(),JSON.parse(o.from(n.msg).toString("utf-8")))},t.prototype.toProto=function(e){var t=this,r=t.admin,n=t.contract,i=t.new_code_id,a=t.migrate_msg;return e?l.MsgMigrateContract.fromPartial({admin:r,contract:n,newCodeId:h.fromNumber(i),migrateMsg:o.from(JSON.stringify(a),"utf-8")}):f.MsgMigrateContract.fromPartial({sender:r,contract:n,codeId:h.fromNumber(i),msg:o.from(JSON.stringify(a),"utf-8")})},t.prototype.packAny=function(e){return e?d.Any.fromPartial({typeUrl:"/jmes.wasm.v1beta1.MsgMigrateContract",value:l.MsgMigrateContract.encode(this.toProto(e)).finish()}):d.Any.fromPartial({typeUrl:"/cosmwasm.wasm.v1.MsgMigrateContract",value:f.MsgMigrateContract.encode(this.toProto(e)).finish()})},t.unpackAny=function(e,r){return t.fromProto(r?l.MsgMigrateContract.decode(e.value):f.MsgMigrateContract.decode(e.value),r)},t.fromData=function(e,r){if(r){var n=e,o=n.admin,i=n.contract,a=n.new_code_id,s=n.migrate_msg;return new t(o,i,Number.parseInt(a),s)}var u=e,c=u.sender,d=(i=u.contract,u.code_id),l=u.msg;return new t(c,i,Number.parseInt(d),l)},t.prototype.toData=function(e){var t=this,r=t.admin,n=t.contract,o=t.new_code_id,i=t.migrate_msg;return e?{"@type":"/jmes.wasm.v1beta1.MsgMigrateContract",admin:r,contract:n,new_code_id:o.toFixed(),migrate_msg:(0,c.removeNull)(i)}:{"@type":"/cosmwasm.wasm.v1.MsgMigrateContract",sender:r,contract:n,code_id:o.toFixed(),msg:(0,c.removeNull)(i)}},t}(c.JSONSerializable);t.MsgMigrateContract=p},47710:function(e,t,r){"use strict";var n,o=r(48764).Buffer,i=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.MsgStoreCode=void 0;var a=r(54396),s=r(17063),u=r(5652),c=r(53200),d=r(27848),l=function(e){function t(t,r,n){var o=e.call(this)||this;return o.sender=t,o.wasm_byte_code=r,o.instantiate_permission=n,o}return i(t,e),t.fromAmino=function(e,r){if(r){var n=e.value;return new t(i=n.sender,a=n.wasm_byte_code)}var o=e.value,i=o.sender,a=o.wasm_byte_code,s=o.instantiate_permission;return new t(i,a,s?d.AccessConfig.fromAmino(s):void 0)},t.prototype.toAmino=function(e){var t=this,r=t.sender,n=t.wasm_byte_code,o=t.instantiate_permission;return e?{type:"wasm/MsgStoreCode",value:{sender:r,wasm_byte_code:n}}:{type:"wasm/MsgStoreCode",value:{sender:r,wasm_byte_code:n,instantiate_permission:null==o?void 0:o.toAmino()}}},t.fromProto=function(e,r){if(r)return new t(e.sender,o.from(e.wasmByteCode).toString("base64"));var n=e;return new t(n.sender,o.from(n.wasmByteCode).toString("base64"),n.instantiatePermission?d.AccessConfig.fromProto(n.instantiatePermission):void 0)},t.prototype.toProto=function(e){var t=this,r=t.sender,n=t.wasm_byte_code,i=t.instantiate_permission;return e?u.MsgStoreCode.fromPartial({sender:r,wasmByteCode:o.from(n,"base64")}):c.MsgStoreCode.fromPartial({sender:r,wasmByteCode:o.from(n,"base64"),instantiatePermission:null==i?void 0:i.toProto()})},t.prototype.packAny=function(e){var t;return t=e?"/jmes.wasm.v1beta1.MsgStoreCode":"/cosmwasm.wasm.v1.MsgStoreCode",s.Any.fromPartial({typeUrl:t,value:e?u.MsgStoreCode.encode(this.toProto(e)).finish():c.MsgStoreCode.encode(this.toProto(e)).finish()})},t.unpackAny=function(e,r){return r?t.fromProto(u.MsgStoreCode.decode(e.value),r):t.fromProto(c.MsgStoreCode.decode(e.value),r)},t.fromData=function(e,r){if(r){var n=e;return new t(i=n.sender,a=n.wasm_byte_code)}var o=e,i=o.sender,a=o.wasm_byte_code,s=o.instantiate_permission;return new t(i,a,s?d.AccessConfig.fromData(s):void 0)},t.prototype.toData=function(e){var t=this,r=t.sender,n=t.wasm_byte_code,o=t.instantiate_permission;return e?{"@type":"/jmes.wasm.v1beta1.MsgStoreCode",sender:r,wasm_byte_code:n}:{"@type":"/cosmwasm.wasm.v1.MsgStoreCode",sender:r,wasm_byte_code:n,instantiate_permission:null==o?void 0:o.toData()}},t}(a.JSONSerializable);t.MsgStoreCode=l},99372:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.MsgUpdateContractAdmin=void 0;var i=r(54396),a=r(17063),s=r(5652),u=r(53200),c=function(e){function t(t,r,n){var o=e.call(this)||this;return o.admin=t,o.new_admin=r,o.contract=n,o}return o(t,e),t.fromAmino=function(e,r){if(r){var n=e.value;return new t(n.admin,n.new_admin,n.contract)}var o=e.value;return new t(o.sender,o.new_admin,o.contract)},t.prototype.toAmino=function(e){var t=this,r=t.admin,n=t.new_admin,o=t.contract;return e?{type:"wasm/MsgUpdateContractAdmin",value:{admin:r,new_admin:n,contract:o}}:{type:"wasm/MsgUpdateAdmin",value:{sender:r,new_admin:n,contract:o}}},t.fromProto=function(e,r){var n;return new t(r?(n=e).admin:(n=e).sender,n.newAdmin,n.contract)},t.prototype.toProto=function(e){var t=this,r=t.admin,n=t.new_admin,o=t.contract;return e?s.MsgUpdateContractAdmin.fromPartial({admin:r,contract:o,newAdmin:n}):u.MsgUpdateAdmin.fromPartial({sender:r,contract:o,newAdmin:n})},t.prototype.packAny=function(e){return e?a.Any.fromPartial({typeUrl:"/jmes.wasm.v1beta1.MsgUpdateContractAdmin",value:s.MsgUpdateContractAdmin.encode(this.toProto(e)).finish()}):a.Any.fromPartial({typeUrl:"/cosmwasm.wasm.v1.MsgUpdateAdmin",value:u.MsgUpdateAdmin.encode(this.toProto(e)).finish()})},t.unpackAny=function(e,r){return r?t.fromProto(s.MsgUpdateContractAdmin.decode(e.value),r):t.fromProto(u.MsgUpdateAdmin.decode(e.value),r)},t.fromData=function(e,r){if(r){var n=e;return new t(n.admin,n.new_admin,n.contract)}var o=e;return new t(o.sender,o.new_admin,o.contract)},t.prototype.toData=function(e){var t=this,r=t.admin,n=t.new_admin,o=t.contract;return e?{"@type":"/jmes.wasm.v1beta1.MsgUpdateContractAdmin",admin:r,new_admin:n,contract:o}:{"@type":"/cosmwasm.wasm.v1.MsgUpdateAdmin",sender:r,new_admin:n,contract:o}},t}(i.JSONSerializable);t.MsgUpdateContractAdmin=c},86655:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(47710),t),o(r(72327),t),o(r(89641),t),o(r(56833),t),o(r(53819),t),o(r(99372),t),o(r(90049),t)},95121:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.ClearAdminProposal=void 0;var i=r(54396),a=r(17063),s=r(26265),u=function(e){function t(t,r,n){var o=e.call(this)||this;return o.title=t,o.description=r,o.contract=n,o}return o(t,e),t.fromAmino=function(e,r){if(r)throw new Error("Not supported for the network");var n=e.value;return new t(n.title,n.description,n.contract)},t.prototype.toAmino=function(e){if(e)throw new Error("Not supported for the network");var t=this;return{type:"wasm/ClearAdminProposal",value:{title:t.title,description:t.description,contract:t.contract}}},t.fromProto=function(e,r){if(r)throw new Error("Not supported for the network");return new t(e.title,e.description,e.contract)},t.prototype.toProto=function(e){if(e)throw new Error("Not supported for the network");var t=this,r=t.title,n=t.description,o=t.contract;return s.ClearAdminProposal.fromPartial({title:r,description:n,contract:o})},t.prototype.packAny=function(e){if(e)throw new Error("Not supported for the network");return a.Any.fromPartial({typeUrl:"/cosmwasm.wasm.v1.ClearAdminProposal",value:s.ClearAdminProposal.encode(this.toProto(e)).finish()})},t.unpackAny=function(e,r){if(r)throw new Error("Not supported for the network");return t.fromProto(s.ClearAdminProposal.decode(e.value),r)},t.fromData=function(e,r){if(r)throw new Error("Not supported for the network");var n=e;return new t(n.title,n.description,n.contract)},t.prototype.toData=function(e){if(e)throw new Error("Not supported for the network");var t=this;return{"@type":"/cosmwasm.wasm.v1.ClearAdminProposal",title:t.title,description:t.description,contract:t.contract}},t}(i.JSONSerializable);t.ClearAdminProposal=u},32244:function(e,t,r){"use strict";var n,o=r(48764).Buffer,i=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.ExecuteContractProposal=void 0;var a=r(54396),s=r(12288),u=r(17063),c=r(26265),d=function(e){function t(t,r,n,o,i,a){void 0===a&&(a={});var u=e.call(this)||this;return u.title=t,u.description=r,u.run_as=n,u.contract=o,u.execute_msg=i,u.coins=new s.Coins(a),u}return i(t,e),t.fromAmino=function(e,r){if(r)throw new Error("Not supported for the network");var n=e.value,o=n.title,i=n.description,a=n.run_as,u=n.contract,c=n.msg,d=n.funds;return new t(o,i,a,u,c,s.Coins.fromAmino(d))},t.prototype.toAmino=function(e){var t=this,r=t.title,n=t.description,o=t.run_as,i=t.contract,s=t.execute_msg,u=t.coins;if(e)throw new Error("Not supported for the network");return{type:"wasm/ExecuteContractProposal",value:{title:r,description:n,run_as:o,contract:i,msg:(0,a.removeNull)(s),funds:u.toAmino()}}},t.fromProto=function(e,r){if(r)throw new Error("Not supported for the network");return new t(e.title,e.description,e.runAs,e.contract,JSON.parse(o.from(e.msg).toString("utf-8")),s.Coins.fromProto(e.funds))},t.prototype.toProto=function(e){var t=this,r=t.title,n=t.description,i=t.run_as,s=t.contract,u=t.execute_msg,d=t.coins;if(e)throw new Error("Not supported for the network");return c.ExecuteContractProposal.fromPartial({title:r,description:n,funds:d.toProto(),contract:s,runAs:i,msg:o.from(JSON.stringify((0,a.removeNull)(u)),"utf-8")})},t.prototype.packAny=function(e){if(e)throw new Error("Not supported for the network");return u.Any.fromPartial({typeUrl:"/cosmwasm.wasm.v1.ExecuteContractProposal",value:c.ExecuteContractProposal.encode(this.toProto(e)).finish()})},t.unpackAny=function(e,r){return t.fromProto(c.ExecuteContractProposal.decode(e.value),r)},t.fromData=function(e,r){if(r)throw new Error("Not supported for the network");var n=e,o=n.title,i=n.description,a=n.run_as,u=n.contract,c=n.msg,d=n.funds;return new t(o,i,a,u,c,s.Coins.fromData(d))},t.prototype.toData=function(e){var t=this,r=t.title,n=t.description,o=t.run_as,i=t.contract,a=t.execute_msg,s=t.coins;if(e)throw new Error("Not supported for the network");return{"@type":"/cosmwasm.wasm.v1.ExecuteContractProposal",title:r,description:n,run_as:o,contract:i,msg:a,funds:s.toData()}},t}(a.JSONSerializable);t.ExecuteContractProposal=d},97167:function(e,t,r){"use strict";var n,o=r(48764).Buffer,i=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),a=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),u=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&a(t,e,r);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.InstantiateContractProposal=void 0;var c=r(54396),d=r(12288),l=r(17063),f=r(26265),h=u(r(43720)),p=function(e){function t(t,r,n,o,i,a,s,u){void 0===s&&(s={});var c=e.call(this)||this;return c.title=t,c.description=r,c.run_as=n,c.admin=o,c.code_id=i,c.init_msg=a,c.label=u,c.init_coins=new d.Coins(s),c}return i(t,e),t.fromAmino=function(e,r){if(r)throw new Error("Not supported for the network");var n=e.value,o=n.title,i=n.description,a=n.run_as,s=n.admin,u=n.code_id,c=n.msg,l=n.funds,f=n.label;return new t(o,i,a,s,Number.parseInt(u),c,d.Coins.fromAmino(l),f)},t.prototype.toAmino=function(e){var t=this,r=t.title,n=t.description,o=t.run_as,i=t.admin,a=t.code_id,s=t.init_msg,u=t.init_coins,d=t.label;if(e)throw new Error("Not supported for the network");return{type:"wasm/InstantiateContractProposal",value:{title:r,description:n,run_as:o,admin:i,code_id:a.toFixed(),label:d,msg:(0,c.removeNull)(s),funds:u.toAmino()}}},t.fromProto=function(e,r){if(r)throw new Error("Not supported for the network");return new t(e.title,e.description,e.runAs,""!==e.admin?e.admin:void 0,e.codeId.toNumber(),JSON.parse(o.from(e.msg).toString("utf-8")),d.Coins.fromProto(e.funds),e.label)},t.prototype.toProto=function(e){var t=this,r=t.title,n=t.description,i=t.run_as,a=t.admin,s=t.code_id,u=t.init_msg,c=t.init_coins,d=t.label;if(e)throw new Error("Not supported for the network");return f.InstantiateContractProposal.fromPartial({title:r,description:n,runAs:i,admin:a,codeId:h.fromNumber(s),funds:c.toProto(),msg:o.from(JSON.stringify(u),"utf-8"),label:d})},t.prototype.packAny=function(e){if(e)throw new Error("Not supported for the network");return l.Any.fromPartial({typeUrl:"/cosmwasm.wasm.v1.InstantiateContractProposal",value:f.InstantiateContractProposal.encode(this.toProto(e)).finish()})},t.unpackAny=function(e,r){if(r)throw new Error("Not supported for the network");return t.fromProto(f.InstantiateContractProposal.decode(e.value),r)},t.fromData=function(e,r){if(r)throw new Error("Not supported for the network");var n=e,o=n.title,i=n.description,a=n.run_as,s=n.admin,u=n.code_id,c=n.label,l=n.msg,f=n.funds;return new t(o,i,a,""!==s?s:void 0,Number.parseInt(u),l,d.Coins.fromData(f),c)},t.prototype.toData=function(e){var t=this,r=t.title,n=t.description,o=t.run_as,i=t.admin,a=t.code_id,s=t.label,u=t.init_msg,d=t.init_coins;if(e)throw new Error("Not supported for the network");return{"@type":"/cosmwasm.wasm.v1.InstantiateContractProposal",title:r,description:n,run_as:o,admin:i||"",code_id:a.toFixed(),label:s,msg:(0,c.removeNull)(u),funds:d.toData()}},t}(c.JSONSerializable);t.InstantiateContractProposal=p},83230:function(e,t,r){"use strict";var n,o=r(48764).Buffer,i=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),a=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),u=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&a(t,e,r);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.MigrateContractProposal=void 0;var c=r(54396),d=r(17063),l=r(26265),f=u(r(43720)),h=function(e){function t(t,r,n,o,i){var a=e.call(this)||this;return a.title=t,a.description=r,a.contract=n,a.new_code_id=o,a.migrate_msg=i,a}return i(t,e),t.fromAmino=function(e,r){if(r)throw new Error("Not supported for the network");var n=e.value,o=n.title,i=n.description,a=n.contract,s=n.code_id,u=n.msg;return new t(o,i,a,Number.parseInt(s),u)},t.prototype.toAmino=function(e){if(e)throw new Error("Not supported for the network");var t=this,r=t.title,n=t.description,o=t.contract,i=t.new_code_id,a=t.migrate_msg;return{type:"wasm/MigrateContractProposal",value:{title:r,description:n,contract:o,code_id:i.toFixed(),msg:(0,c.removeNull)(a)}}},t.fromProto=function(e,r){if(r)throw new Error("Not supported for the network");return new t(e.title,e.description,e.contract,e.codeId.toNumber(),JSON.parse(o.from(e.msg).toString("utf-8")))},t.prototype.toProto=function(e){if(e)throw new Error("Not supported for the network");var t=this,r=t.title,n=t.description,i=t.contract,a=t.new_code_id,s=t.migrate_msg;return l.MigrateContractProposal.fromPartial({title:r,description:n,contract:i,codeId:f.fromNumber(a),msg:o.from(JSON.stringify(s),"utf-8")})},t.prototype.packAny=function(e){if(e)throw new Error("Not supported for the network");return d.Any.fromPartial({typeUrl:"/cosmwasm.wasm.v1.MigrateContractProposal",value:l.MigrateContractProposal.encode(this.toProto(e)).finish()})},t.unpackAny=function(e,r){if(r)throw new Error("Not supported for the network");return t.fromProto(l.MigrateContractProposal.decode(e.value),r)},t.fromData=function(e,r){if(r)throw new Error("Not supported for the network");var n=e,o=n.title,i=n.description,a=n.contract,s=n.code_id,u=n.msg;return new t(o,i,a,Number.parseInt(s),u)},t.prototype.toData=function(e){if(e)throw new Error("Not supported for the network");var t=this,r=t.title,n=t.description,o=t.contract,i=t.new_code_id,a=t.migrate_msg;return{"@type":"/cosmwasm.wasm.v1.MigrateContractProposal",title:r,description:n,contract:o,code_id:i.toFixed(),msg:(0,c.removeNull)(a)}},t}(c.JSONSerializable);t.MigrateContractProposal=h},50743:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),i=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return a(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.PinCodesProposal=void 0;var u=r(54396),c=r(17063),d=r(26265),l=s(r(43720)),f=function(e){function t(t,r,n){var o=e.call(this)||this;return o.title=t,o.description=r,o.code_ids=n,o}return o(t,e),t.fromAmino=function(e,r){if(r)throw new Error("Not supported for the network");var n=e.value;return new t(n.title,n.description,n.code_ids.map((function(e){return Number.parseInt(e)})))},t.prototype.toAmino=function(e){if(e)throw new Error("Not supported for the network");var t=this;return{type:"wasm/PinCodesProposal",value:{title:t.title,description:t.description,code_ids:t.code_ids.map((function(e){return e.toFixed()}))}}},t.fromProto=function(e,r){if(r)throw new Error("Not supported for the network");return new t(e.title,e.description,e.codeIds.map((function(e){return e.toNumber()})))},t.prototype.toProto=function(e){if(e)throw new Error("Not supported for the network");var t=this,r=t.title,n=t.description,o=t.code_ids;return d.PinCodesProposal.fromPartial({title:r,description:n,codeIds:o.map((function(e){return l.fromNumber(e)}))})},t.prototype.packAny=function(e){if(e)throw new Error("Not supported for the network");return c.Any.fromPartial({typeUrl:"/cosmwasm.wasm.v1.PinCodesProposal",value:d.PinCodesProposal.encode(this.toProto(e)).finish()})},t.unpackAny=function(e,r){if(r)throw new Error("Not supported for the network");return t.fromProto(d.PinCodesProposal.decode(e.value),r)},t.fromData=function(e,r){if(r)throw new Error("Not supported for the network");var n=e;return new t(n.title,n.description,n.code_ids.map((function(e){return Number.parseInt(e)})))},t.prototype.toData=function(e){if(e)throw new Error("Not supported for the network");var t=this;return{"@type":"/cosmwasm.wasm.v1.PinCodesProposal",title:t.title,description:t.description,code_ids:t.code_ids.map((function(e){return e.toFixed()}))}},t}(u.JSONSerializable);t.PinCodesProposal=f},96604:function(e,t,r){"use strict";var n,o=r(48764).Buffer,i=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.StoreCodeProposal=void 0;var a=r(54396),s=r(81596),u=r(26265),c=r(27848),d=function(e){function t(t,r,n,o,i){var a=e.call(this)||this;return a.title=t,a.description=r,a.run_as=n,a.wasm_byte_code=o,a.instantiate_permission=i,a}return i(t,e),t.fromAmino=function(e,r){if(r)throw new Error("Not supported for the network");var n=e.value,o=n.title,i=n.description,a=n.run_as,s=n.wasm_byte_code,u=n.instantiate_permission;return new t(o,i,a,s,u?c.AccessConfig.fromAmino(u):void 0)},t.prototype.toAmino=function(e){if(e)throw new Error("Not supported for the network");var t=this,r=t.title,n=t.description,o=t.run_as,i=t.wasm_byte_code,a=t.instantiate_permission;return{type:"wasm/StoreCodeProposal",value:{title:r,description:n,run_as:o,wasm_byte_code:i,instantiate_permission:null==a?void 0:a.toAmino()}}},t.fromData=function(e,r){if(r)throw new Error("Not supported for the network");var n=e.title,o=e.description,i=e.run_as,a=e.wasm_byte_code,s=e.instantiate_permission;return new t(n,o,i,a,s?c.AccessConfig.fromData(s):void 0)},t.prototype.toData=function(e){if(e)throw new Error("Not supported for the network");var t=this,r=t.title,n=t.description,o=t.run_as,i=t.wasm_byte_code,a=t.instantiate_permission;return{"@type":"/cosmwasm.wasm.v1.StoreCodeProposal",title:r,description:n,run_as:o,wasm_byte_code:i,instantiate_permission:null==a?void 0:a.toData()}},t.fromProto=function(e,r){if(r)throw new Error("Not supported for the network");return new t(e.title,e.description,e.runAs,o.from(e.wasmByteCode).toString("base64"),e.instantiatePermission?c.AccessConfig.fromProto(e.instantiatePermission):void 0)},t.prototype.toProto=function(e){if(e)throw new Error("Not supported for the network");var t=this,r=t.title,n=t.description,i=t.run_as,a=t.wasm_byte_code,s=t.instantiate_permission;return u.StoreCodeProposal.fromPartial({title:r,description:n,runAs:i,wasmByteCode:o.from(a,"base64"),instantiatePermission:null==s?void 0:s.toProto()})},t.prototype.packAny=function(e){if(e)throw new Error("Not supported for the network");return s.Any.fromPartial({typeUrl:"/cosmwasm.wasm.v1.StoreCodeProposal",value:u.StoreCodeProposal.encode(this.toProto(e)).finish()})},t.unpackAny=function(e,r){if(r)throw new Error("Not supported for the network");return t.fromProto(u.StoreCodeProposal.decode(e.value),r)},t}(a.JSONSerializable);t.StoreCodeProposal=d},48076:function(e,t,r){"use strict";var n,o=r(48764).Buffer,i=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.SudoContractProposal=void 0;var a=r(54396),s=r(17063),u=r(26265),c=function(e){function t(t,r,n,o){var i=e.call(this)||this;return i.title=t,i.description=r,i.contract=n,i.msg=o,i}return i(t,e),t.fromAmino=function(e,r){if(r)throw new Error("Not supported for the network");var n=e.value;return new t(n.title,n.description,n.contract,n.msg)},t.prototype.toAmino=function(e){if(e)throw new Error("Not supported for the network");var t=this,r=t.title,n=t.description,o=t.contract,i=t.msg;return{type:"wasm/SudoContractProposal",value:{title:r,description:n,contract:o,msg:(0,a.removeNull)(i)}}},t.fromProto=function(e,r){if(r)throw new Error("Not supported for the network");return new t(e.title,e.description,e.contract,JSON.parse(o.from(e.msg).toString("utf-8")))},t.prototype.toProto=function(e){if(e)throw new Error("Not supported for the network");var t=this,r=t.title,n=t.description,i=t.contract,a=t.msg;return u.SudoContractProposal.fromPartial({title:r,description:n,contract:i,msg:o.from(JSON.stringify(a),"utf-8")})},t.prototype.packAny=function(e){if(e)throw new Error("Not supported for the network");return s.Any.fromPartial({typeUrl:"/cosmwasm.wasm.v1.SudoContractProposal",value:u.SudoContractProposal.encode(this.toProto(e)).finish()})},t.unpackAny=function(e,r){if(r)throw new Error("Not supported for the network");return t.fromProto(u.SudoContractProposal.decode(e.value),r)},t.fromData=function(e,r){if(r)throw new Error("Not supported for the network");var n=e;return new t(n.title,n.description,n.contract,n.msg)},t.prototype.toData=function(e){if(e)throw new Error("Not supported for the network");var t=this,r=t.title,n=t.description,o=t.contract,i=t.msg;return{"@type":"/cosmwasm.wasm.v1.SudoContractProposal",title:r,description:n,contract:o,msg:(0,a.removeNull)(i)}},t}(a.JSONSerializable);t.SudoContractProposal=c},3930:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),i=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return a(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.UnpinCodesProposal=void 0;var u=r(54396),c=r(17063),d=r(26265),l=s(r(43720)),f=function(e){function t(t,r,n){var o=e.call(this)||this;return o.title=t,o.description=r,o.code_ids=n,o}return o(t,e),t.fromAmino=function(e,r){if(r)throw new Error("Not supported for the network");var n=e.value;return new t(n.title,n.description,n.code_ids.map((function(e){return Number.parseInt(e)})))},t.prototype.toAmino=function(e){if(e)throw new Error("Not supported for the network");var t=this;return{type:"wasm/UnpinCodesProposal",value:{title:t.title,description:t.description,code_ids:t.code_ids.map((function(e){return e.toFixed()}))}}},t.fromProto=function(e,r){if(r)throw new Error("Not supported for the network");return new t(e.title,e.description,e.codeIds.map((function(e){return e.toNumber()})))},t.prototype.toProto=function(e){if(e)throw new Error("Not supported for the network");var t=this,r=t.title,n=t.description,o=t.code_ids;return d.UnpinCodesProposal.fromPartial({title:r,description:n,codeIds:o.map((function(e){return l.fromNumber(e)}))})},t.prototype.packAny=function(e){if(e)throw new Error("Not supported for the network");return c.Any.fromPartial({typeUrl:"/cosmwasm.wasm.v1.UnpinCodesProposal",value:d.UnpinCodesProposal.encode(this.toProto(e)).finish()})},t.unpackAny=function(e,r){if(r)throw new Error("Not supported for the network");return t.fromProto(d.UnpinCodesProposal.decode(e.value),r)},t.fromData=function(e,r){if(r)throw new Error("Not supported for the network");var n=e;return new t(n.title,n.description,n.code_ids.map((function(e){return Number.parseInt(e)})))},t.prototype.toData=function(e){if(e)throw new Error("Not supported for the network");var t=this;return{"@type":"/cosmwasm.wasm.v1.UnpinCodesProposal",title:t.title,description:t.description,code_ids:t.code_ids.map((function(e){return e.toFixed()}))}},t}(u.JSONSerializable);t.UnpinCodesProposal=f},69309:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.UpdateAdminProposal=void 0;var i=r(54396),a=r(17063),s=r(26265),u=function(e){function t(t,r,n,o){var i=e.call(this)||this;return i.title=t,i.description=r,i.contract=n,i.new_admin=o,i}return o(t,e),t.fromAmino=function(e,r){if(r)throw new Error("Not supported for the network");var n=e.value;return new t(n.title,n.description,n.contract,n.new_admin)},t.prototype.toAmino=function(e){if(e)throw new Error("Not supported for the network");var t=this;return{type:"wasm/UpdateAdminProposal",value:{title:t.title,description:t.description,contract:t.contract,new_admin:t.new_admin}}},t.fromProto=function(e,r){if(r)throw new Error("Not supported for the network");return new t(e.title,e.description,e.contract,e.newAdmin)},t.prototype.toProto=function(e){if(e)throw new Error("Not supported for the network");var t=this,r=t.title,n=t.description,o=t.contract,i=t.new_admin;return s.UpdateAdminProposal.fromPartial({title:r,description:n,contract:o,newAdmin:i})},t.prototype.packAny=function(e){if(e)throw new Error("Not supported for the network");return a.Any.fromPartial({typeUrl:"/cosmwasm.wasm.v1.UpdateAdminProposal",value:s.UpdateAdminProposal.encode(this.toProto(e)).finish()})},t.unpackAny=function(e,r){if(r)throw new Error("Not supported for the network");return t.fromProto(s.UpdateAdminProposal.decode(e.value),r)},t.fromData=function(e,r){if(r)throw new Error("Not supported for the network");var n=e;return new t(n.title,n.description,n.contract,n.new_admin)},t.prototype.toData=function(e){if(e)throw new Error("Not supported for the network");var t=this;return{"@type":"/cosmwasm.wasm.v1.UpdateAdminProposal",title:t.title,description:t.description,contract:t.contract,new_admin:t.new_admin}},t}(i.JSONSerializable);t.UpdateAdminProposal=u},38929:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.UpdateInstantiateConfigProposal=void 0;var i=r(54396),a=r(17063),s=r(26265),u=r(90613),c=function(e){function t(t,r,n){var o=e.call(this)||this;return o.title=t,o.description=r,o.access_config_updates=n,o}return o(t,e),t.fromAmino=function(e,r){if(r)throw new Error("Not supported for the network");var n=e.value;return new t(n.title,n.description,n.access_config_updates.map((function(e){return u.AccessConfigUpdate.fromAmino(e)})))},t.prototype.toAmino=function(e){if(e)throw new Error("Not supported for the network");var t=this;return{type:"wasm/UpdateInstantiateConfigProposal",value:{title:t.title,description:t.description,access_config_updates:t.access_config_updates.map((function(e){return e.toAmino()}))}}},t.fromProto=function(e,r){if(r)throw new Error("Not supported for the network");return new t(e.title,e.description,e.accessConfigUpdates.map((function(e){return u.AccessConfigUpdate.fromProto(e)})))},t.prototype.toProto=function(e){if(e)throw new Error("Not supported for the network");var t=this,r=t.title,n=t.description,o=t.access_config_updates;return s.UpdateInstantiateConfigProposal.fromPartial({title:r,description:n,accessConfigUpdates:o.map((function(e){return e.toProto()}))})},t.prototype.packAny=function(e){if(e)throw new Error("Not supported for the network");return a.Any.fromPartial({typeUrl:"/cosmwasm.wasm.v1.UpdateInstantiateConfigProposal",value:s.UpdateInstantiateConfigProposal.encode(this.toProto(e)).finish()})},t.unpackAny=function(e,r){if(r)throw new Error("Not supported for the network");return t.fromProto(s.UpdateInstantiateConfigProposal.decode(e.value),r)},t.fromData=function(e,r){if(r)throw new Error("Not supported for the network");var n=e;return new t(n.title,n.description,n.access_config_updates.map((function(e){return u.AccessConfigUpdate.fromData(e)})))},t.prototype.toData=function(e){if(e)throw new Error("Not supported for the network");var t=this;return{"@type":"/cosmwasm.wasm.v1.UpdateInstantiateConfigProposal",title:t.title,description:t.description,access_config_updates:t.access_config_updates.map((function(e){return e.toData()}))}},t}(i.JSONSerializable);t.UpdateInstantiateConfigProposal=c},91582:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(95121),t),o(r(32244),t),o(r(97167),t),o(r(83230),t),o(r(50743),t),o(r(96604),t),o(r(48076),t),o(r(3930),t),o(r(69309),t),o(r(38929),t)},83113:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.convertAccessTypeFromJSON=void 0;var n=r(34383);t.convertAccessTypeFromJSON=function(e){var t=e;switch(e){case"Everybody":t="ACCESS_TYPE_EVERYBODY";break;case"Nobody":t="ACCESS_TYPE_NOBODY";break;case"OnlyAddress":t="ACCESS_TYPE_ONLY_ADDRESS";break;case"Unspecified":t="ACCESS_TYPE_UNSPECIFIED"}return(0,n.accessTypeFromJSON)(t)}},65207:function(e,t,r){"use strict";var n=r(48764).Buffer,o=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(o,i){function a(e){try{u(n.next(e))}catch(e){i(e)}}function s(e){try{u(n.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,s)}u((n=n.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var r,n,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(r)throw new TypeError("Generator is already executing.");for(;a;)try{if(r=1,n&&(o=2&i[0]?n.return:i[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,i[1])).done)return o;switch(n=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,n=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BaseAPI=void 0;t.BaseAPI=function(e){this.c=e}},2193:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),i=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(o,i){function a(e){try{u(n.next(e))}catch(e){i(e)}}function s(e){try{u(n.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,s)}u((n=n.apply(e,t||[])).next())}))},a=this&&this.__generator||function(e,t){var r,n,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(r)throw new TypeError("Generator is already executing.");for(;a;)try{if(r=1,n&&(o=2&i[0]?n.return:i[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,i[1])).done)return o;switch(n=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,n=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&(a=u)),d=new c.TxBody(t.msgs,t.memo||""),l=new c.AuthInfo([],new c.Fee(0,new c.Coins)),(f=new c.Tx(d,l,[])).appendEmptySignatures(e),i&&"auto"!==i&&"0"!==i?[3,2]:[4,this.estimateGas(f,{gasAdjustment:n})];case 1:i=s.sent().toString(),s.label=2;case 2:return h=a?a.mul(i).toIntCeilCoins():(this.lcd.config.isClassic,"0ujmes"),[2,new c.Fee(Number.parseInt(i),h,"","")]}}))}))},t.prototype.estimateGas=function(e,t){return a(this,void 0,void 0,(function(){var r,n,o,i;return s(this,(function(a){switch(a.label){case 0:if(r=(null==t?void 0:t.gasAdjustment)||this.lcd.config.gasAdjustment,n=e,e.signatures.length<=0){if(!(t&&t.signers&&t.signers.length>0))throw Error("cannot append signature");o=new c.AuthInfo([],new c.Fee(0,new c.Coins)),(n=new c.Tx(e.body,o,[])).appendEmptySignatures(t.signers)}return[4,this.c.post("/cosmos/tx/v1beta1/simulate",{tx_bytes:this.encode(n)}).then((function(e){return f.fromData(e)}))];case 1:return i=a.sent(),[2,new c.Dec(r).mul(i.gas_info.gas_used).toNumber()]}}))}))},t.prototype.computeTax=function(){return a(this,void 0,void 0,(function(){return s(this,(function(e){throw new Error("Tax was removed from network")}))}))},t.prototype.encode=function(e){return o.from(e.toBytes(this.lcd.config.isClassic)).toString("base64")},t.prototype.decode=function(e){return c.Tx.fromBuffer(o.from(e,"base64"),this.lcd.config.isClassic)},t.prototype.hash=function(e){return a(this,void 0,void 0,(function(){var t;return s(this,(function(r){switch(r.label){case 0:return[4,this.encode(e)];case 1:return t=r.sent(),[2,(0,d.hashToHex)(t)]}}))}))},t.prototype._broadcast=function(e,t){return a(this,void 0,void 0,(function(){return s(this,(function(r){switch(r.label){case 0:return console.log(JSON.stringify({tx:e,mode:t})),[4,this.c.post("/cosmos/tx/v1beta1/txs",{tx_bytes:this.encode(e),mode:t})];case 1:return[2,r.sent()]}}))}))},t.prototype.broadcast=function(e,t){return void 0===t&&(t=3e4),a(this,void 0,void 0,(function(){var r,n,o,i;return s(this,(function(a){switch(a.label){case 0:return r=500,[4,this._broadcast(e,"BROADCAST_MODE_SYNC")];case 1:if(null!=(n=a.sent().tx_response).code&&0!=n.code)return[2,{height:Number.parseInt(n.height),txhash:n.txhash,raw_log:n.raw_log,code:n.code,codespace:n.codespace,gas_used:0,gas_wanted:0,timestamp:"",logs:[]}];i=0,a.label=2;case 2:if(!(i<=t/r))return[3,9];a.label=3;case 3:return a.trys.push([3,5,,6]),[4,this.txInfo(n.txhash)];case 4:return o=a.sent(),[3,6];case 5:return a.sent(),[3,6];case 6:return o?[3,9]:[4,new Promise((function(e){return setTimeout(e,r)}))];case 7:a.sent(),a.label=8;case 8:return i++,[3,2];case 9:if(!o)throw new Error("Transaction was not included in a block before timeout of ".concat(t,"ms"));return[2,{txhash:o.txhash,raw_log:o.raw_log,gas_wanted:o.gas_wanted,gas_used:o.gas_used,height:+o.height,logs:(o.logs||[]).map((function(e){return l.TxLog.fromData(e)})),code:o.code,codespace:o.codespace,timestamp:o.timestamp}]}}))}))},t.prototype.broadcastBlock=function(e){return a(this,void 0,void 0,(function(){return s(this,(function(t){return[2,this._broadcast(e,"BROADCAST_MODE_BLOCK").then((function(e){var t=e.tx_response;return{txhash:t.txhash,raw_log:t.raw_log,gas_wanted:Number.parseInt(t.gas_wanted),gas_used:Number.parseInt(t.gas_used),height:+t.height,logs:t.logs.map((function(e){return l.TxLog.fromData(e)})),code:t.code,codespace:t.codespace,data:t.data,info:t.info,timestamp:t.timestamp}}))]}))}))},t.prototype.broadcastSync=function(e){return a(this,void 0,void 0,(function(){return s(this,(function(t){return[2,this._broadcast(e,"BROADCAST_MODE_SYNC").then((function(e){var t=e.tx_response,r={height:+t.height,txhash:t.txhash,raw_log:t.raw_log};return t.code&&(r.code=t.code),t.codespace&&(r.codespace=t.codespace),r}))]}))}))},t.prototype.broadcastAsync=function(e){return a(this,void 0,void 0,(function(){return s(this,(function(t){return[2,this._broadcast(e,"BROADCAST_MODE_ASYNC").then((function(e){var t=e.tx_response;return{height:+t.height,txhash:t.txhash}}))]}))}))},t.prototype.search=function(e){var t;return a(this,void 0,void 0,(function(){var r,n=this;return s(this,(function(o){return r=new URLSearchParams,null===(t=e.events)||void 0===t||t.forEach((function(e){return r.append("events","tx.height"===e.key?"".concat(e.key,"=").concat(e.value):"".concat(e.key,"='").concat(e.value,"'"))})),delete e.events,Object.entries(e).forEach((function(e){r.append(e[0],e[1])})),[2,this.c.getRaw("/cosmos/tx/v1beta1/txs",r).then((function(e){return{txs:e.tx_responses.map((function(e){return c.TxInfo.fromData(e,n.lcd.config.isClassic)})),pagination:e.pagination}}))]}))}))},t}(u.BaseAPI);t.TxAPI=h},29793:function(e,t,r){"use strict";var n,o=r(48764).Buffer,i=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),a=this&&this.__assign||function(){return a=Object.assign||function(e){for(var t,r=1,n=arguments.length;r0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ripemd160=t.sha256=t.hashToHex=void 0;var n=r(63915),o=r(17057),i=r(6459),a=r(91941);t.hashToHex=function(e){return n.SHA256.hash(i.Base64.parse(e)).toString().toUpperCase()},t.sha256=function(e){return n.SHA256.hash(new a.Word32Array(e)).toUint8Array()},t.ripemd160=function(e){return o.RIPEMD160.hash(new a.Word32Array(e)).toUint8Array()}},54396:function(e,t){"use strict";var r=this&&this.__assign||function(){return r=Object.assign||function(e){for(var t,r=1,n=arguments.length;r0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Wallet=void 0;var n=r(64921),o=function(){function e(e,t){this.chainDerivedKey=e,this.lcdcUrl=null!=t?t:null}return e.prototype.getAccount=function(e){return void 0===e&&(e=0),new n.Account(this.chainDerivedKey,e,this.lcdcUrl)},e.prototype.signMessage=function(e){console.log({message:e})},e.prototype.broadcastSignedMessage=function(e){console.log({signedMessage:e})},e}();t.Wallet=o},6059:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(57091),t)},14352:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(64921),t),o(r(17473),t),o(r(73451),t),o(r(6059),t)},85751:e=>{"use strict";for(var t="qpzry9x8gf2tvdw0s3jn54khce6mua7l",r={},n=0;n>25;return(33554431&e)<<5^996825010&-(t>>0&1)^642813549&-(t>>1&1)^513874426&-(t>>2&1)^1027748829&-(t>>3&1)^705979059&-(t>>4&1)}function a(e){for(var t=1,r=0;r126)return"Invalid prefix ("+e+")";t=i(t)^n>>5}for(t=i(t),r=0;rt)return"Exceeds length limit";var n=e.toLowerCase(),o=e.toUpperCase();if(e!==n&&e!==o)return"Mixed-case string "+e;var s=(e=n).lastIndexOf("1");if(-1===s)return"No separator character for "+e;if(0===s)return"Missing prefix for "+e;var u=e.slice(0,s),c=e.slice(s+1);if(c.length<6)return"Data too short";var d=a(u);if("string"==typeof d)return d;for(var l=[],f=0;f=c.length||l.push(p)}return 1!==d?"Invalid checksum for "+e:{prefix:u,words:l}}function u(e,t,r,n){for(var o=0,i=0,a=(1<=r;)i-=r,s.push(o>>i&a);if(n)i>0&&s.push(o<=t)return"Excess padding";if(o<n)throw new TypeError("Exceeds length limit");var o=a(e=e.toLowerCase());if("string"==typeof o)throw new Error(o);for(var s=e+"1",u=0;u>5!=0)throw new Error("Non 5-bit word");o=i(o)^c,s+=t.charAt(c)}for(u=0;u<6;++u)o=i(o);for(o^=1,u=0;u<6;++u)s+=t.charAt(o>>5*(5-u)&31);return s},toWordsUnsafe:function(e){var t=u(e,8,5,!0);if(Array.isArray(t))return t},toWords:function(e){var t=u(e,8,5,!0);if(Array.isArray(t))return t;throw new Error(t)},fromWordsUnsafe:function(e){var t=u(e,5,8,!1);if(Array.isArray(t))return t},fromWords:function(e){var t=u(e,5,8,!1);if(Array.isArray(t))return t;throw new Error(t)}}},27320:(e,t)=>{"use strict";function r(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`Wrong positive integer: ${e}`)}function n(e){if("boolean"!=typeof e)throw new Error(`Expected boolean, not ${e}`)}function o(e,...t){if(!(e instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(t.length>0&&!t.includes(e.length))throw new TypeError(`Expected Uint8Array of length ${t}, not of length=${e.length}`)}function i(e){if("function"!=typeof e||"function"!=typeof e.create)throw new Error("Hash should be wrapped by utils.wrapConstructor");r(e.outputLen),r(e.blockLen)}function a(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function s(e,t){o(e);const r=t.outputLen;if(e.length{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SHA2=void 0;const n=r(27320),o=r(98089);class i extends o.Hash{constructor(e,t,r,n){super(),this.blockLen=e,this.outputLen=t,this.padOffset=r,this.isLE=n,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=(0,o.createView)(this.buffer)}update(e){n.default.exists(this);const{view:t,buffer:r,blockLen:i}=this,a=(e=(0,o.toBytes)(e)).length;for(let n=0;ni-s&&(this.process(r,0),s=0);for(let e=s;e>o&i),s=Number(r&i),u=n?4:0,c=n?0:4;e.setUint32(t+u,a,n),e.setUint32(t+c,s,n)}(r,i-8,BigInt(8*this.length),a),this.process(r,0);const u=(0,o.createView)(e);this.get().forEach(((e,t)=>u.setUint32(4*t,e,a)))}digest(){const{buffer:e,outputLen:t}=this;this.digestInto(e);const r=e.slice(0,t);return this.destroy(),r}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());const{blockLen:t,buffer:r,length:n,finished:o,destroyed:i,pos:a}=this;return e.length=n,e.pos=a,e.finished=o,e.destroyed=i,n%t&&e.buffer.set(r),e}}t.SHA2=i},6873:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.add=t.toBig=t.split=t.fromBig=void 0;const r=BigInt(2**32-1),n=BigInt(32);function o(e,t=!1){return t?{h:Number(e&r),l:Number(e>>n&r)}:{h:0|Number(e>>n&r),l:0|Number(e&r)}}function i(e,t=!1){let r=new Uint32Array(e.length),n=new Uint32Array(e.length);for(let i=0;i>>0)+(n>>>0);return{h:e+r+(o/2**32|0)|0,l:0|o}}t.fromBig=o,t.split=i,t.toBig=(e,t)=>BigInt(e>>>0)<>>0),t.add=a;const s={fromBig:o,split:i,toBig:t.toBig,shrSH:(e,t,r)=>e>>>r,shrSL:(e,t,r)=>e<<32-r|t>>>r,rotrSH:(e,t,r)=>e>>>r|t<<32-r,rotrSL:(e,t,r)=>e<<32-r|t>>>r,rotrBH:(e,t,r)=>e<<64-r|t>>>r-32,rotrBL:(e,t,r)=>e>>>r-32|t<<64-r,rotr32H:(e,t)=>t,rotr32L:(e,t)=>e,rotlSH:(e,t,r)=>e<>>32-r,rotlSL:(e,t,r)=>t<>>32-r,rotlBH:(e,t,r)=>t<>>64-r,rotlBL:(e,t,r)=>e<>>64-r,add:a,add3L:(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),add3H:(e,t,r,n)=>t+r+n+(e/2**32|0)|0,add4L:(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),add4H:(e,t,r,n,o)=>t+r+n+o+(e/2**32|0)|0,add5H:(e,t,r,n,o,i)=>t+r+n+o+i+(e/2**32|0)|0,add5L:(e,t,r,n,o)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(o>>>0)};t.default=s},64421:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.crypto=void 0,t.crypto={node:void 0,web:"object"==typeof self&&"crypto"in self?self.crypto:void 0}},79569:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.hmac=void 0;const n=r(27320),o=r(98089);class i extends o.Hash{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,n.default.hash(e);const r=(0,o.toBytes)(t);if(this.iHash=e.create(),"function"!=typeof this.iHash.update)throw new TypeError("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const i=this.blockLen,a=new Uint8Array(i);a.set(r.length>i?e.create().update(r).digest():r);for(let e=0;enew i(e,t).update(r).digest(),t.hmac.create=(e,t)=>new i(e,t)},70830:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ripemd160=t.RIPEMD160=void 0;const n=r(27505),o=r(98089),i=new Uint8Array([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),a=Uint8Array.from({length:16},((e,t)=>t)),s=a.map((e=>(9*e+5)%16));let u=[a],c=[s];for(let e=0;e<4;e++)for(let t of[u,c])t.push(t[e].map((e=>i[e])));const d=[[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8],[12,13,11,15,6,9,9,7,12,15,11,13,7,8,7,7],[13,15,14,11,7,7,6,8,13,14,13,12,5,5,6,9],[14,11,12,14,8,6,5,5,15,12,15,14,9,9,8,6],[15,12,13,13,9,5,8,6,14,11,12,11,8,6,5,5]].map((e=>new Uint8Array(e))),l=u.map(((e,t)=>e.map((e=>d[t][e])))),f=c.map(((e,t)=>e.map((e=>d[t][e])))),h=new Uint32Array([0,1518500249,1859775393,2400959708,2840853838]),p=new Uint32Array([1352829926,1548603684,1836072691,2053994217,0]),m=(e,t)=>e<>>32-t;function g(e,t,r,n){return 0===e?t^r^n:1===e?t&r|~t&n:2===e?(t|~r)^n:3===e?t&n|r&~n:t^(r|~n)}const v=new Uint32Array(16);class b extends n.SHA2{constructor(){super(64,20,8,!0),this.h0=1732584193,this.h1=-271733879,this.h2=-1732584194,this.h3=271733878,this.h4=-1009589776}get(){const{h0:e,h1:t,h2:r,h3:n,h4:o}=this;return[e,t,r,n,o]}set(e,t,r,n,o){this.h0=0|e,this.h1=0|t,this.h2=0|r,this.h3=0|n,this.h4=0|o}process(e,t){for(let r=0;r<16;r++,t+=4)v[r]=e.getUint32(t,!0);let r=0|this.h0,n=r,o=0|this.h1,i=o,a=0|this.h2,s=a,d=0|this.h3,b=d,y=0|this.h4,w=y;for(let e=0;e<5;e++){const t=4-e,_=h[e],S=p[e],O=u[e],k=c[e],A=l[e],P=f[e];for(let t=0;t<16;t++){const n=m(r+g(e,o,a,d)+v[O[t]]+_,A[t])+y|0;r=y,y=d,d=0|m(a,10),a=o,o=n}for(let e=0;e<16;e++){const r=m(n+g(t,i,s,b)+v[k[e]]+S,P[e])+w|0;n=w,w=b,b=0|m(s,10),s=i,i=r}}this.set(this.h1+a+b|0,this.h2+d+w|0,this.h3+y+n|0,this.h4+r+i|0,this.h0+o+s|0)}roundClean(){v.fill(0)}destroy(){this.destroyed=!0,this.buffer.fill(0),this.set(0,0,0,0,0)}}t.RIPEMD160=b,t.ripemd160=(0,o.wrapConstructor)((()=>new b))},23061:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.sha256=void 0;const n=r(27505),o=r(98089),i=(e,t,r)=>e&t^e&r^t&r,a=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),s=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),u=new Uint32Array(64);class c extends n.SHA2{constructor(){super(64,32,8,!1),this.A=0|s[0],this.B=0|s[1],this.C=0|s[2],this.D=0|s[3],this.E=0|s[4],this.F=0|s[5],this.G=0|s[6],this.H=0|s[7]}get(){const{A:e,B:t,C:r,D:n,E:o,F:i,G:a,H:s}=this;return[e,t,r,n,o,i,a,s]}set(e,t,r,n,o,i,a,s){this.A=0|e,this.B=0|t,this.C=0|r,this.D=0|n,this.E=0|o,this.F=0|i,this.G=0|a,this.H=0|s}process(e,t){for(let r=0;r<16;r++,t+=4)u[r]=e.getUint32(t,!1);for(let e=16;e<64;e++){const t=u[e-15],r=u[e-2],n=(0,o.rotr)(t,7)^(0,o.rotr)(t,18)^t>>>3,i=(0,o.rotr)(r,17)^(0,o.rotr)(r,19)^r>>>10;u[e]=i+u[e-7]+n+u[e-16]|0}let{A:r,B:n,C:s,D:c,E:d,F:l,G:f,H:h}=this;for(let e=0;e<64;e++){const t=h+((0,o.rotr)(d,6)^(0,o.rotr)(d,11)^(0,o.rotr)(d,25))+((p=d)&l^~p&f)+a[e]+u[e]|0,m=((0,o.rotr)(r,2)^(0,o.rotr)(r,13)^(0,o.rotr)(r,22))+i(r,n,s)|0;h=f,f=l,l=d,d=c+t|0,c=s,s=n,n=r,r=t+m|0}var p;r=r+this.A|0,n=n+this.B|0,s=s+this.C|0,c=c+this.D|0,d=d+this.E|0,l=l+this.F|0,f=f+this.G|0,h=h+this.H|0,this.set(r,n,s,c,d,l,f,h)}roundClean(){u.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}t.sha256=(0,o.wrapConstructor)((()=>new c))},86262:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.sha384=t.sha512_256=t.sha512=t.SHA512=void 0;const n=r(27505),o=r(6873),i=r(98089),[a,s]=o.default.split(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map((e=>BigInt(e)))),u=new Uint32Array(80),c=new Uint32Array(80);class d extends n.SHA2{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209}get(){const{Ah:e,Al:t,Bh:r,Bl:n,Ch:o,Cl:i,Dh:a,Dl:s,Eh:u,El:c,Fh:d,Fl:l,Gh:f,Gl:h,Hh:p,Hl:m}=this;return[e,t,r,n,o,i,a,s,u,c,d,l,f,h,p,m]}set(e,t,r,n,o,i,a,s,u,c,d,l,f,h,p,m){this.Ah=0|e,this.Al=0|t,this.Bh=0|r,this.Bl=0|n,this.Ch=0|o,this.Cl=0|i,this.Dh=0|a,this.Dl=0|s,this.Eh=0|u,this.El=0|c,this.Fh=0|d,this.Fl=0|l,this.Gh=0|f,this.Gl=0|h,this.Hh=0|p,this.Hl=0|m}process(e,t){for(let r=0;r<16;r++,t+=4)u[r]=e.getUint32(t),c[r]=e.getUint32(t+=4);for(let e=16;e<80;e++){const t=0|u[e-15],r=0|c[e-15],n=o.default.rotrSH(t,r,1)^o.default.rotrSH(t,r,8)^o.default.shrSH(t,r,7),i=o.default.rotrSL(t,r,1)^o.default.rotrSL(t,r,8)^o.default.shrSL(t,r,7),a=0|u[e-2],s=0|c[e-2],d=o.default.rotrSH(a,s,19)^o.default.rotrBH(a,s,61)^o.default.shrSH(a,s,6),l=o.default.rotrSL(a,s,19)^o.default.rotrBL(a,s,61)^o.default.shrSL(a,s,6),f=o.default.add4L(i,l,c[e-7],c[e-16]),h=o.default.add4H(f,n,d,u[e-7],u[e-16]);u[e]=0|h,c[e]=0|f}let{Ah:r,Al:n,Bh:i,Bl:d,Ch:l,Cl:f,Dh:h,Dl:p,Eh:m,El:g,Fh:v,Fl:b,Gh:y,Gl:w,Hh:_,Hl:S}=this;for(let e=0;e<80;e++){const t=o.default.rotrSH(m,g,14)^o.default.rotrSH(m,g,18)^o.default.rotrBH(m,g,41),O=o.default.rotrSL(m,g,14)^o.default.rotrSL(m,g,18)^o.default.rotrBL(m,g,41),k=m&v^~m&y,A=g&b^~g&w,P=o.default.add5L(S,O,A,s[e],c[e]),M=o.default.add5H(P,_,t,k,a[e],u[e]),E=0|P,C=o.default.rotrSH(r,n,28)^o.default.rotrBH(r,n,34)^o.default.rotrBH(r,n,39),N=o.default.rotrSL(r,n,28)^o.default.rotrBL(r,n,34)^o.default.rotrBL(r,n,39),x=r&i^r&l^i&l,R=n&d^n&f^d&f;_=0|y,S=0|w,y=0|v,w=0|b,v=0|m,b=0|g,({h:m,l:g}=o.default.add(0|h,0|p,0|M,0|E)),h=0|l,p=0|f,l=0|i,f=0|d,i=0|r,d=0|n;const I=o.default.add3L(E,N,R);r=o.default.add3H(I,M,C,x),n=0|I}({h:r,l:n}=o.default.add(0|this.Ah,0|this.Al,0|r,0|n)),({h:i,l:d}=o.default.add(0|this.Bh,0|this.Bl,0|i,0|d)),({h:l,l:f}=o.default.add(0|this.Ch,0|this.Cl,0|l,0|f)),({h,l:p}=o.default.add(0|this.Dh,0|this.Dl,0|h,0|p)),({h:m,l:g}=o.default.add(0|this.Eh,0|this.El,0|m,0|g)),({h:v,l:b}=o.default.add(0|this.Fh,0|this.Fl,0|v,0|b)),({h:y,l:w}=o.default.add(0|this.Gh,0|this.Gl,0|y,0|w)),({h:_,l:S}=o.default.add(0|this.Hh,0|this.Hl,0|_,0|S)),this.set(r,n,i,d,l,f,h,p,m,g,v,b,y,w,_,S)}roundClean(){u.fill(0),c.fill(0)}destroy(){this.buffer.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}t.SHA512=d;class l extends d{constructor(){super(),this.Ah=573645204,this.Al=-64227540,this.Bh=-1621794909,this.Bl=-934517566,this.Ch=596883563,this.Cl=1867755857,this.Dh=-1774684391,this.Dl=1497426621,this.Eh=-1775747358,this.El=-1467023389,this.Fh=-1101128155,this.Fl=1401305490,this.Gh=721525244,this.Gl=746961066,this.Hh=246885852,this.Hl=-2117784414,this.outputLen=32}}class f extends d{constructor(){super(),this.Ah=-876896931,this.Al=-1056596264,this.Bh=1654270250,this.Bl=914150663,this.Ch=-1856437926,this.Cl=812702999,this.Dh=355462360,this.Dl=-150054599,this.Eh=1731405415,this.El=-4191439,this.Fh=-1900787065,this.Fl=1750603025,this.Gh=-619958771,this.Gl=1694076839,this.Hh=1203062813,this.Hl=-1090891868,this.outputLen=48}}t.sha512=(0,i.wrapConstructor)((()=>new d)),t.sha512_256=(0,i.wrapConstructor)((()=>new l)),t.sha384=(0,i.wrapConstructor)((()=>new f))},98089:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.randomBytes=t.wrapConstructorWithOpts=t.wrapConstructor=t.checkOpts=t.Hash=t.concatBytes=t.toBytes=t.utf8ToBytes=t.asyncLoop=t.nextTick=t.hexToBytes=t.bytesToHex=t.isLE=t.rotr=t.createView=t.u32=t.u8=void 0;const n=r(64421);if(t.u8=e=>new Uint8Array(e.buffer,e.byteOffset,e.byteLength),t.u32=e=>new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4)),t.createView=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),t.rotr=(e,t)=>e<<32-t|e>>>t,t.isLE=68===new Uint8Array(new Uint32Array([287454020]).buffer)[0],!t.isLE)throw new Error("Non little-endian hardware is not supported");const o=Array.from({length:256},((e,t)=>t.toString(16).padStart(2,"0")));function i(e){if("string"!=typeof e)throw new TypeError("utf8ToBytes expected string, got "+typeof e);return(new TextEncoder).encode(e)}function a(e){if("string"==typeof e&&(e=i(e)),!(e instanceof Uint8Array))throw new TypeError(`Expected input type is Uint8Array (got ${typeof e})`);return e}t.bytesToHex=function(e){if(!(e instanceof Uint8Array))throw new Error("Uint8Array expected");let t="";for(let r=0;r{},t.asyncLoop=async function(e,r,n){let o=Date.now();for(let i=0;i=0&&ee instanceof Uint8Array)))throw new Error("Uint8Array list expected");if(1===e.length)return e[0];const t=e.reduce(((e,t)=>e+t.length),0),r=new Uint8Array(t);for(let t=0,n=0;te().update(a(t)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t},t.wrapConstructorWithOpts=function(e){const t=(t,r)=>e(r).update(a(t)).digest(),r=e({});return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=t=>e(t),t},t.randomBytes=function(e=32){if(n.crypto.web)return n.crypto.web.getRandomValues(new Uint8Array(e));if(n.crypto.node)return new Uint8Array(n.crypto.node.randomBytes(e).buffer);throw new Error("The environment doesn't have randomBytes function")}},79656:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.utils=t.schnorr=t.verify=t.signSync=t.sign=t.getSharedSecret=t.recoverPublicKey=t.getPublicKey=t.Signature=t.Point=t.CURVE=void 0;const n=r(69159),o=BigInt(0),i=BigInt(1),a=BigInt(2),s=BigInt(3),u=BigInt(8),c=Object.freeze({a:o,b:BigInt(7),P:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:i,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee")});function d(e){const{a:t,b:r}=c,n=x(e*e),o=x(n*e);return x(o+t*e+r)}t.CURVE=c;const l=c.a===o;class f extends Error{constructor(e){super(e)}}class h{constructor(e,t,r){this.x=e,this.y=t,this.z=r}static fromAffine(e){if(!(e instanceof m))throw new TypeError("JacobianPoint#fromAffine: expected Point");return new h(e.x,e.y,i)}static toAffineBatch(e){const t=function(e,t=c.P){const r=new Array(e.length),n=I(e.reduce(((e,n,i)=>n===o?e:(r[i]=e,x(e*n,t))),i),t);return e.reduceRight(((e,n,i)=>n===o?e:(r[i]=x(e*r[i],t),x(e*n,t))),n),r}(e.map((e=>e.z)));return e.map(((e,r)=>e.toAffine(t[r])))}static normalizeZ(e){return h.toAffineBatch(e).map(h.fromAffine)}equals(e){if(!(e instanceof h))throw new TypeError("JacobianPoint expected");const{x:t,y:r,z:n}=this,{x:o,y:i,z:a}=e,s=x(n*n),u=x(a*a),c=x(t*u),d=x(o*s),l=x(x(r*a)*u),f=x(x(i*n)*s);return c===d&&l===f}negate(){return new h(this.x,x(-this.y),this.z)}double(){const{x:e,y:t,z:r}=this,n=x(e*e),o=x(t*t),i=x(o*o),c=e+o,d=x(a*(x(c*c)-n-i)),l=x(s*n),f=x(l*l),p=x(f-a*d),m=x(l*(d-p)-u*i),g=x(a*t*r);return new h(p,m,g)}add(e){if(!(e instanceof h))throw new TypeError("JacobianPoint expected");const{x:t,y:r,z:n}=this,{x:i,y:s,z:u}=e;if(i===o||s===o)return this;if(t===o||r===o)return e;const c=x(n*n),d=x(u*u),l=x(t*d),f=x(i*c),p=x(x(r*u)*d),m=x(x(s*n)*c),g=x(f-l),v=x(m-p);if(g===o)return v===o?this.double():h.ZERO;const b=x(g*g),y=x(g*b),w=x(l*b),_=x(v*v-y-a*w),S=x(v*(w-_)-p*y),O=x(n*u*g);return new h(_,S,O)}subtract(e){return this.add(e.negate())}multiplyUnsafe(e){const t=h.ZERO;if("bigint"==typeof e&&e===o)return t;let r=N(e);if(r===i)return this;if(!l){let e=t,n=this;for(;r>o;)r&i&&(e=e.add(n)),n=n.double(),r>>=i;return e}let{k1neg:n,k1:a,k2neg:s,k2:u}=D(r),d=t,f=t,p=this;for(;a>o||u>o;)a&i&&(d=d.add(p)),u&i&&(f=f.add(p)),p=p.double(),a>>=i,u>>=i;return n&&(d=d.negate()),s&&(f=f.negate()),f=new h(x(f.x*c.beta),f.y,f.z),d.add(f)}precomputeWindow(e){const t=l?128/e+1:256/e+1,r=[];let n=this,o=n;for(let i=0;i>=f,s>u&&(s-=d,e+=i),0===s){let e=n[r];t%2&&(e=e.negate()),a=a.add(e)}else{let e=n[r+Math.abs(s)-1];s<0&&(e=e.negate()),o=o.add(e)}}return{p:o,f:a}}multiply(e,t){let r,n,o=N(e);if(l){const{k1neg:e,k1:i,k2neg:a,k2:s}=D(o);let{p:u,f:d}=this.wNAF(i,t),{p:l,f}=this.wNAF(s,t);e&&(u=u.negate()),a&&(l=l.negate()),l=new h(x(l.x*c.beta),l.y,l.z),r=u.add(l),n=d.add(f)}else{const{p:e,f:i}=this.wNAF(o,t);r=e,n=i}return h.normalizeZ([r,n])[0]}toAffine(e=I(this.z)){const{x:t,y:r,z:n}=this,o=e,a=x(o*o),s=x(a*o),u=x(t*a),c=x(r*s);if(x(n*o)!==i)throw new Error("invZ was invalid");return new m(u,c)}}h.BASE=new h(c.Gx,c.Gy,i),h.ZERO=new h(o,i,o);const p=new WeakMap;class m{constructor(e,t){this.x=e,this.y=t}_setWindowSize(e){this._WINDOW_SIZE=e,p.delete(this)}hasEvenY(){return this.y%a===o}static fromCompressedHex(e){const t=32===e.length,r=E(t?e:e.subarray(1));if(!z(r))throw new Error("Point is not on curve");let n=function(e){const{P:t}=c,r=BigInt(6),n=BigInt(11),o=BigInt(22),i=BigInt(23),u=BigInt(44),d=BigInt(88),l=e*e*e%t,f=l*l*e%t,h=R(f,s)*f%t,p=R(h,s)*f%t,m=R(p,a)*l%t,g=R(m,n)*m%t,v=R(g,o)*g%t,b=R(v,u)*v%t,y=R(b,d)*b%t,w=R(y,u)*v%t,_=R(w,s)*f%t,S=R(_,i)*g%t,O=R(S,r)*l%t;return R(O,a)}(d(r));const o=(n&i)===i;t?o&&(n=x(-n)):1==(1&e[0])!==o&&(n=x(-n));const u=new m(r,n);return u.assertValidity(),u}static fromUncompressedHex(e){const t=E(e.subarray(1,33)),r=E(e.subarray(33,65)),n=new m(t,r);return n.assertValidity(),n}static fromHex(e){const t=C(e),r=t.length,n=t[0];if(32===r||33===r&&(2===n||3===n))return this.fromCompressedHex(t);if(65===r&&4===n)return this.fromUncompressedHex(t);throw new Error(`Point.fromHex: received invalid point. Expected 32-33 compressed bytes or 65 uncompressed bytes, not ${r}`)}static fromPrivateKey(e){return m.BASE.multiply(q(e))}static fromSignature(e,t,r){const n=B(e=C(e)),{r:o,s:i}=Z(t);if(0!==r&&1!==r)throw new Error("Cannot recover signature: invalid recovery bit");const a=1&r?"03":"02",s=m.fromHex(a+O(o)),{n:u}=c,d=I(o,u),l=x(-n*d,u),f=x(i*d,u),h=m.BASE.multiplyAndAddUnsafe(s,l,f);if(!h)throw new Error("Cannot recover signature: point at infinify");return h.assertValidity(),h}toRawBytes(e=!1){return M(this.toHex(e))}toHex(e=!1){const t=O(this.x);return e?`${this.hasEvenY()?"02":"03"}${t}`:`04${t}${O(this.y)}`}toHexX(){return this.toHex(!0).slice(2)}toRawX(){return this.toRawBytes(!0).slice(1)}assertValidity(){const e="Point is not on elliptic curve",{x:t,y:r}=this;if(!z(t)||!z(r))throw new Error(e);const n=x(r*r);if(x(n-d(t))!==o)throw new Error(e)}equals(e){return this.x===e.x&&this.y===e.y}negate(){return new m(this.x,x(-this.y))}double(){return h.fromAffine(this).double().toAffine()}add(e){return h.fromAffine(this).add(h.fromAffine(e)).toAffine()}subtract(e){return this.add(e.negate())}multiply(e){return h.fromAffine(this).multiply(e,this).toAffine()}multiplyAndAddUnsafe(e,t,r){const n=h.fromAffine(this),a=t===o||t===i||this!==m.BASE?n.multiplyUnsafe(t):n.multiply(t),s=h.fromAffine(e).multiplyUnsafe(r),u=a.add(s);return u.equals(h.ZERO)?void 0:u.toAffine()}}function g(e){return Number.parseInt(e[0],16)>=8?"00"+e:e}function v(e){if(e.length<2||2!==e[0])throw new Error(`Invalid signature integer tag: ${_(e)}`);const t=e[1],r=e.subarray(2,t+2);if(!t||r.length!==t)throw new Error("Invalid signature integer: wrong length");if(0===r[0]&&r[1]<=127)throw new Error("Invalid signature integer: trailing length");return{data:E(r),left:e.subarray(t+2)}}t.Point=m,m.BASE=new m(c.Gx,c.Gy),m.ZERO=new m(o,o);class b{constructor(e,t){this.r=e,this.s=t,this.assertValidity()}static fromCompact(e){const t=e instanceof Uint8Array,r="Signature.fromCompact";if("string"!=typeof e&&!t)throw new TypeError(`${r}: Expected string or Uint8Array`);const n=t?_(e):e;if(128!==n.length)throw new Error(`${r}: Expected 64-byte hex`);return new b(P(n.slice(0,64)),P(n.slice(64,128)))}static fromDER(e){const t=e instanceof Uint8Array;if("string"!=typeof e&&!t)throw new TypeError("Signature.fromDER: Expected string or Uint8Array");const{r,s:n}=function(e){if(e.length<2||48!=e[0])throw new Error(`Invalid signature tag: ${_(e)}`);if(e[1]!==e.length-2)throw new Error("Invalid signature: incorrect length");const{data:t,left:r}=v(e.subarray(2)),{data:n,left:o}=v(r);if(o.length)throw new Error(`Invalid signature: left bytes after parsing: ${_(o)}`);return{r:t,s:n}}(t?e:M(e));return new b(r,n)}static fromHex(e){return this.fromDER(e)}assertValidity(){const{r:e,s:t}=this;if(!L(e))throw new Error("Invalid Signature: r must be 0 < r < n");if(!L(t))throw new Error("Invalid Signature: s must be 0 < s < n")}hasHighS(){const e=c.n>>i;return this.s>e}normalizeS(){return this.hasHighS()?new b(this.r,c.n-this.s):this}toDERRawBytes(e=!1){return M(this.toDERHex(e))}toDERHex(e=!1){const t=g(A(this.s));if(e)return t;const r=g(A(this.r)),n=A(r.length/2),o=A(t.length/2);return`30${A(r.length/2+t.length/2+4)}02${n}${r}02${o}${t}`}toRawBytes(){return this.toDERRawBytes()}toHex(){return this.toDERHex()}toCompactRawBytes(){return M(this.toCompactHex())}toCompactHex(){return O(this.r)+O(this.s)}}function y(...e){if(!e.every((e=>e instanceof Uint8Array)))throw new Error("Uint8Array list expected");if(1===e.length)return e[0];const t=e.reduce(((e,t)=>e+t.length),0),r=new Uint8Array(t);for(let t=0,n=0;tt.toString(16).padStart(2,"0")));function _(e){if(!(e instanceof Uint8Array))throw new Error("Expected Uint8Array");let t="";for(let r=0;r0)return BigInt(e);if("bigint"==typeof e&&L(e))return e;throw new TypeError("Expected valid private scalar: 0 < scalar < curve.n")}function x(e,t=c.P){const r=e%t;return r>=o?r:t+r}function R(e,t){const{P:r}=c;let n=e;for(;t-- >o;)n*=n,n%=r;return n}function I(e,t=c.P){if(e===o||t<=o)throw new Error(`invert: expected positive integers, got n=${e} mod=${t}`);let r=x(e,t),n=t,a=o,s=i,u=i,d=o;for(;r!==o;){const e=n/r,t=n%r,o=a-u*e,i=s-d*e;n=r,r=t,a=u,s=d,u=o,d=i}if(n!==i)throw new Error("invert: does not exist");return x(a,t)}const T=(e,t)=>(e+t/a)/t,j={a1:BigInt("0x3086d221a7d46bcde86c90e49284eb15"),b1:-i*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),a2:BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),b2:BigInt("0x3086d221a7d46bcde86c90e49284eb15"),POW_2_128:BigInt("0x100000000000000000000000000000000")};function D(e){const{n:t}=c,{a1:r,b1:n,a2:o,b2:i,POW_2_128:a}=j,s=T(i*e,t),u=T(-n*e,t);let d=x(e-s*r-u*o,t),l=x(-s*n-u*i,t);const f=d>a,h=l>a;if(f&&(d=t-d),h&&(l=t-l),d>a||l>a)throw new Error("splitScalarEndo: Endomorphism failed, k="+e);return{k1neg:f,k1:d,k2neg:h,k2:l}}function B(e){const{n:t}=c,r=8*e.length-256;let n=E(e);return r>0&&(n>>=BigInt(r)),n>=t&&(n-=t),n}let U,J;class H{constructor(){this.v=new Uint8Array(32).fill(1),this.k=new Uint8Array(32).fill(0),this.counter=0}hmac(...e){return t.utils.hmacSha256(this.k,...e)}hmacSync(...e){return J(this.k,...e)}checkSync(){if("function"!=typeof J)throw new f("hmacSha256Sync needs to be set")}incr(){if(this.counter>=1e3)throw new Error("Tried 1,000 k values for sign(), all were invalid");this.counter+=1}async reseed(e=new Uint8Array){this.k=await this.hmac(this.v,Uint8Array.from([0]),e),this.v=await this.hmac(this.v),0!==e.length&&(this.k=await this.hmac(this.v,Uint8Array.from([1]),e),this.v=await this.hmac(this.v))}reseedSync(e=new Uint8Array){this.checkSync(),this.k=this.hmacSync(this.v,Uint8Array.from([0]),e),this.v=this.hmacSync(this.v),0!==e.length&&(this.k=this.hmacSync(this.v,Uint8Array.from([1]),e),this.v=this.hmacSync(this.v))}async generate(){return this.incr(),this.v=await this.hmac(this.v),this.v}generateSync(){return this.checkSync(),this.incr(),this.v=this.hmacSync(this.v),this.v}}function L(e){return o0)t=BigInt(e);else if("string"==typeof e){if(64!==e.length)throw new Error("Expected 32 bytes of private key");t=P(e)}else{if(!(e instanceof Uint8Array))throw new TypeError("Expected valid private key");if(32!==e.length)throw new Error("Expected 32 bytes of private key");t=E(e)}if(!L(t))throw new Error("Expected private key: 0 < key < n");return t}function F(e){return e instanceof m?(e.assertValidity(),e):m.fromHex(e)}function Z(e){if(e instanceof b)return e.assertValidity(),e;try{return b.fromDER(e)}catch(t){return b.fromCompact(e)}}function W(e){const t=e instanceof Uint8Array,r="string"==typeof e,n=(t||r)&&e.length;return t?33===n||65===n:r?66===n||130===n:e instanceof m}function K(e){return E(e.length>32?e.slice(0,32):e)}function G(e){const t=K(e),r=x(t,c.n);return Y(r{if((e=C(e)).length<40||e.length>1024)throw new Error("Expected 40-1024 bytes of private key as per FIPS 186");return k(x(E(e),c.n-i)+i)},randomBytes:(e=32)=>{if(se.web)return se.web.getRandomValues(new Uint8Array(e));if(se.node){const{randomBytes:t}=se.node;return Uint8Array.from(t(e))}throw new Error("The environment doesn't have randomBytes function")},randomPrivateKey:()=>t.utils.hashToPrivateKey(t.utils.randomBytes(40)),sha256:async(...e)=>{if(se.web){const t=await se.web.subtle.digest("SHA-256",y(...e));return new Uint8Array(t)}if(se.node){const{createHash:t}=se.node,r=t("sha256");return e.forEach((e=>r.update(e))),Uint8Array.from(r.digest())}throw new Error("The environment doesn't have sha256 function")},hmacSha256:async(e,...t)=>{if(se.web){const r=await se.web.subtle.importKey("raw",e,{name:"HMAC",hash:{name:"SHA-256"}},!1,["sign"]),n=y(...t),o=await se.web.subtle.sign("HMAC",r,n);return new Uint8Array(o)}if(se.node){const{createHmac:r}=se.node,n=r("sha256",e);return t.forEach((e=>n.update(e))),Uint8Array.from(n.digest())}throw new Error("The environment doesn't have hmac-sha256 function")},sha256Sync:void 0,hmacSha256Sync:void 0,taggedHash:async(e,...r)=>{let n=ce[e];if(void 0===n){const r=await t.utils.sha256(Uint8Array.from(e,(e=>e.charCodeAt(0))));n=y(r,r),ce[e]=n}return t.utils.sha256(n,...r)},taggedHashSync:(e,...t)=>{if("function"!=typeof U)throw new f("sha256Sync is undefined, you need to set it");let r=ce[e];if(void 0===r){const t=U(Uint8Array.from(e,(e=>e.charCodeAt(0))));r=y(t,t),ce[e]=r}return U(r,...t)},precompute(e=8,t=m.BASE){const r=t===m.BASE?t:new m(t.x,t.y);return r._setWindowSize(e),r.multiply(s),r}},Object.defineProperties(t.utils,{sha256Sync:{configurable:!1,get:()=>U,set(e){U||(U=e)}},hmacSha256Sync:{configurable:!1,get:()=>J,set(e){J||(J=e)}}})},34537:e=>{"use strict";e.exports=function(e,t){for(var r=new Array(arguments.length-1),n=0,o=2,i=!0;o{"use strict";var r=t;r.length=function(e){var t=e.length;if(!t)return 0;for(var r=0;--t%4>1&&"="===e.charAt(t);)++r;return Math.ceil(3*e.length)/4-r};for(var n=new Array(64),o=new Array(123),i=0;i<64;)o[n[i]=i<26?i+65:i<52?i+71:i<62?i-4:i-59|43]=i++;r.encode=function(e,t,r){for(var o,i=null,a=[],s=0,u=0;t>2],o=(3&c)<<4,u=1;break;case 1:a[s++]=n[o|c>>4],o=(15&c)<<2,u=2;break;case 2:a[s++]=n[o|c>>6],a[s++]=n[63&c],u=0}s>8191&&((i||(i=[])).push(String.fromCharCode.apply(String,a)),s=0)}return u&&(a[s++]=n[o],a[s++]=61,1===u&&(a[s++]=61)),i?(s&&i.push(String.fromCharCode.apply(String,a.slice(0,s))),i.join("")):String.fromCharCode.apply(String,a.slice(0,s))};var a="invalid encoding";r.decode=function(e,t,r){for(var n,i=r,s=0,u=0;u1)break;if(void 0===(c=o[c]))throw Error(a);switch(s){case 0:n=c,s=1;break;case 1:t[r++]=n<<2|(48&c)>>4,n=c,s=2;break;case 2:t[r++]=(15&n)<<4|(60&c)>>2,n=c,s=3;break;case 3:t[r++]=(3&n)<<6|c,s=0}}if(1===s)throw Error(a);return r-i},r.test=function(e){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(e)}},19211:e=>{"use strict";function t(){this._listeners={}}e.exports=t,t.prototype.on=function(e,t,r){return(this._listeners[e]||(this._listeners[e]=[])).push({fn:t,ctx:r||this}),this},t.prototype.off=function(e,t){if(void 0===e)this._listeners={};else if(void 0===t)this._listeners[e]=[];else for(var r=this._listeners[e],n=0;n{"use strict";function t(e){return"undefined"!=typeof Float32Array?function(){var t=new Float32Array([-0]),r=new Uint8Array(t.buffer),n=128===r[3];function o(e,n,o){t[0]=e,n[o]=r[0],n[o+1]=r[1],n[o+2]=r[2],n[o+3]=r[3]}function i(e,n,o){t[0]=e,n[o]=r[3],n[o+1]=r[2],n[o+2]=r[1],n[o+3]=r[0]}function a(e,n){return r[0]=e[n],r[1]=e[n+1],r[2]=e[n+2],r[3]=e[n+3],t[0]}function s(e,n){return r[3]=e[n],r[2]=e[n+1],r[1]=e[n+2],r[0]=e[n+3],t[0]}e.writeFloatLE=n?o:i,e.writeFloatBE=n?i:o,e.readFloatLE=n?a:s,e.readFloatBE=n?s:a}():function(){function t(e,t,r,n){var o=t<0?1:0;if(o&&(t=-t),0===t)e(1/t>0?0:2147483648,r,n);else if(isNaN(t))e(2143289344,r,n);else if(t>34028234663852886e22)e((o<<31|2139095040)>>>0,r,n);else if(t<11754943508222875e-54)e((o<<31|Math.round(t/1401298464324817e-60))>>>0,r,n);else{var i=Math.floor(Math.log(t)/Math.LN2);e((o<<31|i+127<<23|8388607&Math.round(t*Math.pow(2,-i)*8388608))>>>0,r,n)}}function a(e,t,r){var n=e(t,r),o=2*(n>>31)+1,i=n>>>23&255,a=8388607&n;return 255===i?a?NaN:o*(1/0):0===i?1401298464324817e-60*o*a:o*Math.pow(2,i-150)*(a+8388608)}e.writeFloatLE=t.bind(null,r),e.writeFloatBE=t.bind(null,n),e.readFloatLE=a.bind(null,o),e.readFloatBE=a.bind(null,i)}(),"undefined"!=typeof Float64Array?function(){var t=new Float64Array([-0]),r=new Uint8Array(t.buffer),n=128===r[7];function o(e,n,o){t[0]=e,n[o]=r[0],n[o+1]=r[1],n[o+2]=r[2],n[o+3]=r[3],n[o+4]=r[4],n[o+5]=r[5],n[o+6]=r[6],n[o+7]=r[7]}function i(e,n,o){t[0]=e,n[o]=r[7],n[o+1]=r[6],n[o+2]=r[5],n[o+3]=r[4],n[o+4]=r[3],n[o+5]=r[2],n[o+6]=r[1],n[o+7]=r[0]}function a(e,n){return r[0]=e[n],r[1]=e[n+1],r[2]=e[n+2],r[3]=e[n+3],r[4]=e[n+4],r[5]=e[n+5],r[6]=e[n+6],r[7]=e[n+7],t[0]}function s(e,n){return r[7]=e[n],r[6]=e[n+1],r[5]=e[n+2],r[4]=e[n+3],r[3]=e[n+4],r[2]=e[n+5],r[1]=e[n+6],r[0]=e[n+7],t[0]}e.writeDoubleLE=n?o:i,e.writeDoubleBE=n?i:o,e.readDoubleLE=n?a:s,e.readDoubleBE=n?s:a}():function(){function t(e,t,r,n,o,i){var a=n<0?1:0;if(a&&(n=-n),0===n)e(0,o,i+t),e(1/n>0?0:2147483648,o,i+r);else if(isNaN(n))e(0,o,i+t),e(2146959360,o,i+r);else if(n>17976931348623157e292)e(0,o,i+t),e((a<<31|2146435072)>>>0,o,i+r);else{var s;if(n<22250738585072014e-324)e((s=n/5e-324)>>>0,o,i+t),e((a<<31|s/4294967296)>>>0,o,i+r);else{var u=Math.floor(Math.log(n)/Math.LN2);1024===u&&(u=1023),e(4503599627370496*(s=n*Math.pow(2,-u))>>>0,o,i+t),e((a<<31|u+1023<<20|1048576*s&1048575)>>>0,o,i+r)}}}function a(e,t,r,n,o){var i=e(n,o+t),a=e(n,o+r),s=2*(a>>31)+1,u=a>>>20&2047,c=4294967296*(1048575&a)+i;return 2047===u?c?NaN:s*(1/0):0===u?5e-324*s*c:s*Math.pow(2,u-1075)*(c+4503599627370496)}e.writeDoubleLE=t.bind(null,r,0,4),e.writeDoubleBE=t.bind(null,n,4,0),e.readDoubleLE=a.bind(null,o,0,4),e.readDoubleBE=a.bind(null,i,4,0)}(),e}function r(e,t,r){t[r]=255&e,t[r+1]=e>>>8&255,t[r+2]=e>>>16&255,t[r+3]=e>>>24}function n(e,t,r){t[r]=e>>>24,t[r+1]=e>>>16&255,t[r+2]=e>>>8&255,t[r+3]=255&e}function o(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24)>>>0}function i(e,t){return(e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3])>>>0}e.exports=t(t)},67199:module=>{"use strict";function inquire(moduleName){try{var mod=eval("quire".replace(/^/,"re"))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch(e){}return null}module.exports=inquire},76662:e=>{"use strict";e.exports=function(e,t,r){var n=r||8192,o=n>>>1,i=null,a=n;return function(r){if(r<1||r>o)return e(r);a+r>n&&(i=e(n),a=0);var s=t.call(i,a,a+=r);return 7&a&&(a=1+(7|a)),s}}},94997:(e,t)=>{"use strict";var r=t;r.length=function(e){for(var t=0,r=0,n=0;n191&&n<224?i[a++]=(31&n)<<6|63&e[t++]:n>239&&n<365?(n=((7&n)<<18|(63&e[t++])<<12|(63&e[t++])<<6|63&e[t++])-65536,i[a++]=55296+(n>>10),i[a++]=56320+(1023&n)):i[a++]=(15&n)<<12|(63&e[t++])<<6|63&e[t++],a>8191&&((o||(o=[])).push(String.fromCharCode.apply(String,i)),a=0);return o?(a&&o.push(String.fromCharCode.apply(String,i.slice(0,a))),o.join("")):String.fromCharCode.apply(String,i.slice(0,a))},r.write=function(e,t,r){for(var n,o,i=r,a=0;a>6|192,t[r++]=63&n|128):55296==(64512&n)&&56320==(64512&(o=e.charCodeAt(a+1)))?(n=65536+((1023&n)<<10)+(1023&o),++a,t[r++]=n>>18|240,t[r++]=n>>12&63|128,t[r++]=n>>6&63|128,t[r++]=63&n|128):(t[r++]=n>>12|224,t[r++]=n>>6&63|128,t[r++]=63&n|128);return r-i}},39187:(e,t)=>{"use strict";function r(e){if(!Number.isSafeInteger(e))throw new Error(`Wrong integer: ${e}`)}function n(...e){const t=(e,t)=>r=>e(t(r));return{encode:Array.from(e).reverse().reduce(((e,r)=>e?t(e,r.encode):r.encode),void 0),decode:e.reduce(((e,r)=>e?t(e,r.decode):r.decode),void 0)}}function o(e){return{encode:t=>{if(!Array.isArray(t)||t.length&&"number"!=typeof t[0])throw new Error("alphabet.encode input should be an array of numbers");return t.map((t=>{if(r(t),t<0||t>=e.length)throw new Error(`Digit index outside alphabet: ${t} (alphabet: ${e.length})`);return e[t]}))},decode:t=>{if(!Array.isArray(t)||t.length&&"string"!=typeof t[0])throw new Error("alphabet.decode input should be array of strings");return t.map((t=>{if("string"!=typeof t)throw new Error(`alphabet.decode: not string element=${t}`);const r=e.indexOf(t);if(-1===r)throw new Error(`Unknown letter: "${t}". Allowed: ${e}`);return r}))}}}function i(e=""){if("string"!=typeof e)throw new Error("join separator should be string");return{encode:t=>{if(!Array.isArray(t)||t.length&&"string"!=typeof t[0])throw new Error("join.encode input should be array of strings");for(let e of t)if("string"!=typeof e)throw new Error(`join.encode: non-string input=${e}`);return t.join(e)},decode:t=>{if("string"!=typeof t)throw new Error("join.decode input should be string");return t.split(e)}}}function a(e,t="="){if(r(e),"string"!=typeof t)throw new Error("padding chr should be string");return{encode(r){if(!Array.isArray(r)||r.length&&"string"!=typeof r[0])throw new Error("padding.encode input should be array of strings");for(let e of r)if("string"!=typeof e)throw new Error(`padding.encode: non-string input=${e}`);for(;r.length*e%8;)r.push(t);return r},decode(r){if(!Array.isArray(r)||r.length&&"string"!=typeof r[0])throw new Error("padding.encode input should be array of strings");for(let e of r)if("string"!=typeof e)throw new Error(`padding.decode: non-string input=${e}`);let n=r.length;if(n*e%8)throw new Error("Invalid padding: string should have whole number of bytes");for(;n>0&&r[n-1]===t;n--)if(!((n-1)*e%8))throw new Error("Invalid padding: string has too much padding");return r.slice(0,n)}}}function s(e){if("function"!=typeof e)throw new Error("normalize fn should be function");return{encode:e=>e,decode:t=>e(t)}}function u(e,t,n){if(t<2)throw new Error(`convertRadix: wrong from=${t}, base cannot be less than 2`);if(n<2)throw new Error(`convertRadix: wrong to=${n}, base cannot be less than 2`);if(!Array.isArray(e))throw new Error("convertRadix: data should be array");if(!e.length)return[];let o=0;const i=[],a=Array.from(e);for(a.forEach((e=>{if(r(e),e<0||e>=t)throw new Error(`Wrong integer: ${e}`)}));;){let e=0,r=!0;for(let i=o;it?c(t,e%t):e,d=(e,t)=>e+(t-c(e,t));function l(e,t,n,o){if(!Array.isArray(e))throw new Error("convertRadix2: data should be array");if(t<=0||t>32)throw new Error(`convertRadix2: wrong from=${t}`);if(n<=0||n>32)throw new Error(`convertRadix2: wrong to=${n}`);if(d(t,n)>32)throw new Error(`convertRadix2: carry overflow from=${t} to=${n} carryBits=${d(t,n)}`);let i=0,a=0;const s=2**n-1,u=[];for(const o of e){if(r(o),o>=2**t)throw new Error(`convertRadix2: invalid data word=${o} from=${t}`);if(i=i<32)throw new Error(`convertRadix2: carry overflow pos=${a} from=${t}`);for(a+=t;a>=n;a-=n)u.push((i>>a-n&s)>>>0);i&=2**a-1}if(i=i<=t)throw new Error("Excess padding");if(!o&&i)throw new Error(`Non-zero padding: ${i}`);return o&&a>0&&u.push(i>>>0),u}function f(e){return r(e),{encode:t=>{if(!(t instanceof Uint8Array))throw new Error("radix.encode input should be Uint8Array");return u(Array.from(t),256,e)},decode:t=>{if(!Array.isArray(t)||t.length&&"number"!=typeof t[0])throw new Error("radix.decode input should be array of strings");return Uint8Array.from(u(t,e,256))}}}function h(e,t=!1){if(r(e),e<=0||e>32)throw new Error("radix2: bits should be in (0..32]");if(d(8,e)>32||d(e,8)>32)throw new Error("radix2: carry overflow");return{encode:r=>{if(!(r instanceof Uint8Array))throw new Error("radix2.encode input should be Uint8Array");return l(Array.from(r),8,e,!t)},decode:r=>{if(!Array.isArray(r)||r.length&&"number"!=typeof r[0])throw new Error("radix2.decode input should be array of strings");return Uint8Array.from(l(r,e,8,t))}}}function p(e){if("function"!=typeof e)throw new Error("unsafeWrapper fn should be function");return function(...t){try{return e.apply(null,t)}catch(e){}}}function m(e,t){if(r(e),"function"!=typeof t)throw new Error("checksum fn should be function");return{encode(r){if(!(r instanceof Uint8Array))throw new Error("checksum.encode: input should be Uint8Array");const n=t(r).slice(0,e),o=new Uint8Array(r.length+e);return o.set(r),o.set(n,r.length),o},decode(r){if(!(r instanceof Uint8Array))throw new Error("checksum.decode: input should be Uint8Array");const n=r.slice(0,-e),o=t(n).slice(0,e),i=r.slice(-e);for(let t=0;te.toUpperCase().replace(/O/g,"0").replace(/[IL]/g,"1")))),t.base64=n(h(6),o("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),a(6),i("")),t.base64url=n(h(6),o("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"),a(6),i(""));const g=e=>n(f(58),o(e),i(""));t.base58=g("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"),t.base58flickr=g("123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"),t.base58xrp=g("rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz");const v=[0,2,3,5,6,7,9,10,11];t.base58xmr={encode(e){let r="";for(let n=0;nn(m(4,(t=>e(e(t)))),t.base58);const b=n(o("qpzry9x8gf2tvdw0s3jn54khce6mua7l"),i("")),y=[996825010,642813549,513874426,1027748829,705979059];function w(e){const t=e>>25;let r=(33554431&e)<<5;for(let e=0;e>e&1)&&(r^=y[e]);return r}function _(e,t,r=1){const n=e.length;let o=1;for(let t=0;t126)throw new Error(`Invalid prefix (${e})`);o=w(o)^r>>5}o=w(o);for(let t=0;tr)throw new TypeError(`Wrong string length: ${e.length} (${e}). Expected (8..${r})`);const n=e.toLowerCase();if(e!==n&&e!==e.toUpperCase())throw new Error("String must be lowercase or uppercase");const o=(e=n).lastIndexOf("1");if(0===o||-1===o)throw new Error('Letter "1" must be present between prefix and data only');const i=e.slice(0,o),a=e.slice(o+1);if(a.length<6)throw new Error("Data must be at least 6 characters long");const s=b.decode(a).slice(0,-6),u=_(i,s,t);if(!a.endsWith(u))throw new Error(`Invalid checksum in ${e}: expected "${u}"`);return{prefix:i,words:s}}return{encode:function(e,r,n=90){if("string"!=typeof e)throw new Error("bech32.encode prefix should be string, not "+typeof e);if(!Array.isArray(r)||r.length&&"number"!=typeof r[0])throw new Error("bech32.encode words should be array of numbers, not "+typeof r);const o=e.length+7+r.length;if(!1!==n&&o>n)throw new TypeError(`Length ${o} exceeds limit ${n}`);return`${e=e.toLowerCase()}1${b.encode(r)}${_(e,r,t)}`},decode:a,decodeToBytes:function(e){const{prefix:t,words:r}=a(e,!1);return{prefix:t,words:r,bytes:n(r)}},decodeUnsafe:p(a),fromWords:n,fromWordsUnsafe:i,toWords:o}}t.bech32=S("bech32"),t.bech32m=S("bech32m"),t.utf8={encode:e=>(new TextDecoder).decode(e),decode:e=>(new TextEncoder).encode(e)},t.hex=n(h(4),o("0123456789abcdef"),i(""),s((e=>{if("string"!=typeof e||e.length%2)throw new TypeError(`hex.decode: expected string, got ${typeof e} with length ${e.length}`);return e.toLowerCase()})));const O={utf8:t.utf8,hex:t.hex,base16:t.base16,base32:t.base32,base64:t.base64,base64url:t.base64url,base58:t.base58,base58xmr:t.base58xmr},k=`Invalid encoding type. Available types: ${Object.keys(O).join(", ")}`;t.bytesToString=(e,t)=>{if("string"!=typeof e||!O.hasOwnProperty(e))throw new TypeError(k);if(!(t instanceof Uint8Array))throw new TypeError("bytesToString() expects Uint8Array");return O[e].encode(t)},t.str=t.bytesToString,t.stringToBytes=(e,t)=>{if(!O.hasOwnProperty(e))throw new TypeError(k);if("string"!=typeof t)throw new TypeError("stringToBytes() expects string");return O[e].decode(t)},t.bytes=t.stringToBytes},81869:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HDKey=t.HARDENED_OFFSET=void 0;const n=r(79569),o=r(70830),i=r(23061),a=r(86262),s=r(27320),u=r(98089),c=r(79656),d=r(39187);c.utils.hmacSha256Sync=(e,...t)=>(0,n.hmac)(i.sha256,e,c.utils.concatBytes(...t));const l=(0,d.base58check)(i.sha256);function f(e){return BigInt(`0x${(0,u.bytesToHex)(e)}`)}const h=(0,u.utf8ToBytes)("Bitcoin seed"),p={private:76066276,public:76067358};t.HARDENED_OFFSET=2147483648;const m=e=>{if(!Number.isSafeInteger(e)||e<0||e>2**32-1)throw new Error(`Invalid number=${e}. Should be from 0 to 2 ** 32 - 1`);const t=new Uint8Array(4);return(0,u.createView)(t).setUint32(0,e,!1),t};class g{constructor(e){if(this.depth=0,this.index=0,this.chainCode=null,this.parentFingerprint=0,!e||"object"!=typeof e)throw new Error("HDKey.constructor must not be called directly");if(this.versions=e.versions||p,this.depth=e.depth||0,this.chainCode=e.chainCode,this.index=e.index||0,this.parentFingerprint=e.parentFingerprint||0,!this.depth&&(this.parentFingerprint||this.index))throw new Error("HDKey: zero depth with non-zero index/parent fingerprint");if(e.publicKey&&e.privateKey)throw new Error("HDKey: publicKey and privateKey at same time.");if(e.privateKey){if(!c.utils.isValidPrivateKey(e.privateKey))throw new Error("Invalid private key");this.privKey="bigint"==typeof e.privateKey?e.privateKey:f(e.privateKey),this.privKeyBytes=(t=this.privKey,(0,u.hexToBytes)(t.toString(16).padStart(64,"0"))),this.pubKey=c.getPublicKey(e.privateKey,!0)}else{if(!e.publicKey)throw new Error("HDKey: no public or private key provided");this.pubKey=c.Point.fromHex(e.publicKey).toRawBytes(!0)}var t,r;this.pubHash=(r=this.pubKey,(0,o.ripemd160)((0,i.sha256)(r)))}get fingerprint(){if(!this.pubHash)throw new Error("No publicKey set!");return e=this.pubHash,(0,u.createView)(e).getUint32(0,!1);var e}get identifier(){return this.pubHash}get pubKeyHash(){return this.pubHash}get privateKey(){return this.privKeyBytes||null}get publicKey(){return this.pubKey||null}get privateExtendedKey(){const e=this.privateKey;if(!e)throw new Error("No private key");return l.encode(this.serialize(this.versions.private,(0,u.concatBytes)(new Uint8Array([0]),e)))}get publicExtendedKey(){if(!this.pubKey)throw new Error("No public key");return l.encode(this.serialize(this.versions.public,this.pubKey))}static fromMasterSeed(e,t=p){if((0,s.bytes)(e),8*e.length<128||8*e.length>512)throw new Error(`HDKey: wrong seed length=${e.length}. Should be between 128 and 512 bits; 256 bits is advised)`);const r=(0,n.hmac)(a.sha512,h,e);return new g({versions:t,chainCode:r.slice(32),privateKey:r.slice(0,32)})}static fromExtendedKey(e,t=p){const r=l.decode(e),n=(0,u.createView)(r),o=n.getUint32(0,!1),i={versions:t,depth:r[4],parentFingerprint:n.getUint32(5,!1),index:n.getUint32(9,!1),chainCode:r.slice(13,45)},a=r.slice(45),s=0===a[0];if(o!==t[s?"private":"public"])throw new Error("Version mismatch");return new g(s?{...i,privateKey:a.slice(1)}:{...i,publicKey:a})}static fromJSON(e){return g.fromExtendedKey(e.xpriv)}derive(e){if(!/^[mM]'?/.test(e))throw new Error('Path must start with "m" or "M"');if(/^[mM]'?$/.test(e))return this;const r=e.replace(/^[mM]'?\//,"").split("/");let n=this;for(const e of r){const r=/^(\d+)('?)$/.exec(e);if(!r||3!==r.length)throw new Error(`Invalid child index: ${e}`);let o=+r[1];if(!Number.isSafeInteger(o)||o>=t.HARDENED_OFFSET)throw new Error("Invalid index");"'"===r[2]&&(o+=t.HARDENED_OFFSET),n=n.deriveChild(o)}return n}deriveChild(e){if(!this.pubKey||!this.chainCode)throw new Error("No publicKey or chainCode set");let r=m(e);if(e>=t.HARDENED_OFFSET){const e=this.privateKey;if(!e)throw new Error("Could not derive hardened child key");r=(0,u.concatBytes)(new Uint8Array([0]),e,r)}else r=(0,u.concatBytes)(this.pubKey,r);const o=(0,n.hmac)(a.sha512,this.chainCode,r),i=f(o.slice(0,32)),s=o.slice(32);if(!c.utils.isValidPrivateKey(i))throw new Error("Tweak bigger than curve order");const d={versions:this.versions,chainCode:s,depth:this.depth+1,parentFingerprint:this.fingerprint,index:e};try{if(this.privateKey){const e=c.utils.mod(this.privKey+i,c.CURVE.n);if(!c.utils.isValidPrivateKey(e))throw new Error("The tweak was out of range or the resulted private key is invalid");d.privateKey=e}else d.publicKey=c.Point.fromHex(this.pubKey).add(c.Point.fromPrivateKey(i)).toRawBytes(!0);return new g(d)}catch(t){return this.deriveChild(e+1)}}sign(e){if(!this.privateKey)throw new Error("No privateKey set!");return(0,s.bytes)(e,32),c.signSync(e,this.privKey,{canonical:!0,der:!1})}verify(e,t){if((0,s.bytes)(e,32),(0,s.bytes)(t,64),!this.publicKey)throw new Error("No publicKey set!");let r;try{r=c.Signature.fromCompact(t)}catch(e){return!1}return c.verify(r,e,this.publicKey)}wipePrivateData(){return this.privKey=void 0,this.privKeyBytes&&(this.privKeyBytes.fill(0),this.privKeyBytes=void 0),this}toJSON(){return{xpriv:this.privateExtendedKey,xpub:this.publicExtendedKey}}serialize(e,t){if(!this.chainCode)throw new Error("No chainCode set");return(0,s.bytes)(t,33),(0,u.concatBytes)(m(e),new Uint8Array([this.depth]),m(this.parentFingerprint),m(this.index),this.chainCode,t)}}t.HDKey=g},23375:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Params=t.ModuleAccount=t.BaseAccount=t.protobufPackage=void 0;const o=n(r(43720)),i=n(r(62100)),a=r(81596);t.protobufPackage="cosmos.auth.v1beta1";const s={address:"",accountNumber:o.default.UZERO,sequence:o.default.UZERO};t.BaseAccount={encode:(e,t=i.default.Writer.create())=>(""!==e.address&&t.uint32(10).string(e.address),void 0!==e.pubKey&&a.Any.encode(e.pubKey,t.uint32(18).fork()).ldelim(),e.accountNumber.isZero()||t.uint32(24).uint64(e.accountNumber),e.sequence.isZero()||t.uint32(32).uint64(e.sequence),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},s);for(;r.pos>>3){case 1:o.address=r.string();break;case 2:o.pubKey=a.Any.decode(r,r.uint32());break;case 3:o.accountNumber=r.uint64();break;case 4:o.sequence=r.uint64();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},s);return void 0!==e.address&&null!==e.address?t.address=String(e.address):t.address="",void 0!==e.pubKey&&null!==e.pubKey?t.pubKey=a.Any.fromJSON(e.pubKey):t.pubKey=void 0,void 0!==e.accountNumber&&null!==e.accountNumber?t.accountNumber=o.default.fromString(e.accountNumber):t.accountNumber=o.default.UZERO,void 0!==e.sequence&&null!==e.sequence?t.sequence=o.default.fromString(e.sequence):t.sequence=o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.address&&(t.address=e.address),void 0!==e.pubKey&&(t.pubKey=e.pubKey?a.Any.toJSON(e.pubKey):void 0),void 0!==e.accountNumber&&(t.accountNumber=(e.accountNumber||o.default.UZERO).toString()),void 0!==e.sequence&&(t.sequence=(e.sequence||o.default.UZERO).toString()),t},fromPartial(e){const t=Object.assign({},s);return void 0!==e.address&&null!==e.address?t.address=e.address:t.address="",void 0!==e.pubKey&&null!==e.pubKey?t.pubKey=a.Any.fromPartial(e.pubKey):t.pubKey=void 0,void 0!==e.accountNumber&&null!==e.accountNumber?t.accountNumber=e.accountNumber:t.accountNumber=o.default.UZERO,void 0!==e.sequence&&null!==e.sequence?t.sequence=e.sequence:t.sequence=o.default.UZERO,t}};const u={name:"",permissions:""};t.ModuleAccount={encode(e,r=i.default.Writer.create()){void 0!==e.baseAccount&&t.BaseAccount.encode(e.baseAccount,r.uint32(10).fork()).ldelim(),""!==e.name&&r.uint32(18).string(e.name);for(const t of e.permissions)r.uint32(26).string(t);return r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},u);for(a.permissions=[];n.pos>>3){case 1:a.baseAccount=t.BaseAccount.decode(n,n.uint32());break;case 2:a.name=n.string();break;case 3:a.permissions.push(n.string());break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},u);if(r.permissions=[],void 0!==e.baseAccount&&null!==e.baseAccount?r.baseAccount=t.BaseAccount.fromJSON(e.baseAccount):r.baseAccount=void 0,void 0!==e.name&&null!==e.name?r.name=String(e.name):r.name="",void 0!==e.permissions&&null!==e.permissions)for(const t of e.permissions)r.permissions.push(String(t));return r},toJSON(e){const r={};return void 0!==e.baseAccount&&(r.baseAccount=e.baseAccount?t.BaseAccount.toJSON(e.baseAccount):void 0),void 0!==e.name&&(r.name=e.name),e.permissions?r.permissions=e.permissions.map((e=>e)):r.permissions=[],r},fromPartial(e){const r=Object.assign({},u);if(r.permissions=[],void 0!==e.baseAccount&&null!==e.baseAccount?r.baseAccount=t.BaseAccount.fromPartial(e.baseAccount):r.baseAccount=void 0,void 0!==e.name&&null!==e.name?r.name=e.name:r.name="",void 0!==e.permissions&&null!==e.permissions)for(const t of e.permissions)r.permissions.push(t);return r}};const c={maxMemoCharacters:o.default.UZERO,txSigLimit:o.default.UZERO,txSizeCostPerByte:o.default.UZERO,sigVerifyCostEd25519:o.default.UZERO,sigVerifyCostSecp256k1:o.default.UZERO};t.Params={encode:(e,t=i.default.Writer.create())=>(e.maxMemoCharacters.isZero()||t.uint32(8).uint64(e.maxMemoCharacters),e.txSigLimit.isZero()||t.uint32(16).uint64(e.txSigLimit),e.txSizeCostPerByte.isZero()||t.uint32(24).uint64(e.txSizeCostPerByte),e.sigVerifyCostEd25519.isZero()||t.uint32(32).uint64(e.sigVerifyCostEd25519),e.sigVerifyCostSecp256k1.isZero()||t.uint32(40).uint64(e.sigVerifyCostSecp256k1),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},c);for(;r.pos>>3){case 1:o.maxMemoCharacters=r.uint64();break;case 2:o.txSigLimit=r.uint64();break;case 3:o.txSizeCostPerByte=r.uint64();break;case 4:o.sigVerifyCostEd25519=r.uint64();break;case 5:o.sigVerifyCostSecp256k1=r.uint64();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},c);return void 0!==e.maxMemoCharacters&&null!==e.maxMemoCharacters?t.maxMemoCharacters=o.default.fromString(e.maxMemoCharacters):t.maxMemoCharacters=o.default.UZERO,void 0!==e.txSigLimit&&null!==e.txSigLimit?t.txSigLimit=o.default.fromString(e.txSigLimit):t.txSigLimit=o.default.UZERO,void 0!==e.txSizeCostPerByte&&null!==e.txSizeCostPerByte?t.txSizeCostPerByte=o.default.fromString(e.txSizeCostPerByte):t.txSizeCostPerByte=o.default.UZERO,void 0!==e.sigVerifyCostEd25519&&null!==e.sigVerifyCostEd25519?t.sigVerifyCostEd25519=o.default.fromString(e.sigVerifyCostEd25519):t.sigVerifyCostEd25519=o.default.UZERO,void 0!==e.sigVerifyCostSecp256k1&&null!==e.sigVerifyCostSecp256k1?t.sigVerifyCostSecp256k1=o.default.fromString(e.sigVerifyCostSecp256k1):t.sigVerifyCostSecp256k1=o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.maxMemoCharacters&&(t.maxMemoCharacters=(e.maxMemoCharacters||o.default.UZERO).toString()),void 0!==e.txSigLimit&&(t.txSigLimit=(e.txSigLimit||o.default.UZERO).toString()),void 0!==e.txSizeCostPerByte&&(t.txSizeCostPerByte=(e.txSizeCostPerByte||o.default.UZERO).toString()),void 0!==e.sigVerifyCostEd25519&&(t.sigVerifyCostEd25519=(e.sigVerifyCostEd25519||o.default.UZERO).toString()),void 0!==e.sigVerifyCostSecp256k1&&(t.sigVerifyCostSecp256k1=(e.sigVerifyCostSecp256k1||o.default.UZERO).toString()),t},fromPartial(e){const t=Object.assign({},c);return void 0!==e.maxMemoCharacters&&null!==e.maxMemoCharacters?t.maxMemoCharacters=e.maxMemoCharacters:t.maxMemoCharacters=o.default.UZERO,void 0!==e.txSigLimit&&null!==e.txSigLimit?t.txSigLimit=e.txSigLimit:t.txSigLimit=o.default.UZERO,void 0!==e.txSizeCostPerByte&&null!==e.txSizeCostPerByte?t.txSizeCostPerByte=e.txSizeCostPerByte:t.txSizeCostPerByte=o.default.UZERO,void 0!==e.sigVerifyCostEd25519&&null!==e.sigVerifyCostEd25519?t.sigVerifyCostEd25519=e.sigVerifyCostEd25519:t.sigVerifyCostEd25519=o.default.UZERO,void 0!==e.sigVerifyCostSecp256k1&&null!==e.sigVerifyCostSecp256k1?t.sigVerifyCostSecp256k1=e.sigVerifyCostSecp256k1:t.sigVerifyCostSecp256k1=o.default.UZERO,t}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},34471:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.SearchTxsResult=t.TxMsgData=t.MsgData=t.SimulationResponse=t.Result=t.GasInfo=t.Attribute=t.StringEvent=t.ABCIMessageLog=t.TxResponse=t.protobufPackage=void 0;const o=n(r(43720)),i=n(r(62100)),a=r(81596),s=r(34779);t.protobufPackage="cosmos.base.abci.v1beta1";const u={height:o.default.ZERO,txhash:"",codespace:"",code:0,data:"",rawLog:"",info:"",gasWanted:o.default.ZERO,gasUsed:o.default.ZERO,timestamp:""};t.TxResponse={encode(e,r=i.default.Writer.create()){e.height.isZero()||r.uint32(8).int64(e.height),""!==e.txhash&&r.uint32(18).string(e.txhash),""!==e.codespace&&r.uint32(26).string(e.codespace),0!==e.code&&r.uint32(32).uint32(e.code),""!==e.data&&r.uint32(42).string(e.data),""!==e.rawLog&&r.uint32(50).string(e.rawLog);for(const n of e.logs)t.ABCIMessageLog.encode(n,r.uint32(58).fork()).ldelim();return""!==e.info&&r.uint32(66).string(e.info),e.gasWanted.isZero()||r.uint32(72).int64(e.gasWanted),e.gasUsed.isZero()||r.uint32(80).int64(e.gasUsed),void 0!==e.tx&&a.Any.encode(e.tx,r.uint32(90).fork()).ldelim(),""!==e.timestamp&&r.uint32(98).string(e.timestamp),r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const s=Object.assign({},u);for(s.logs=[];n.pos>>3){case 1:s.height=n.int64();break;case 2:s.txhash=n.string();break;case 3:s.codespace=n.string();break;case 4:s.code=n.uint32();break;case 5:s.data=n.string();break;case 6:s.rawLog=n.string();break;case 7:s.logs.push(t.ABCIMessageLog.decode(n,n.uint32()));break;case 8:s.info=n.string();break;case 9:s.gasWanted=n.int64();break;case 10:s.gasUsed=n.int64();break;case 11:s.tx=a.Any.decode(n,n.uint32());break;case 12:s.timestamp=n.string();break;default:n.skipType(7&e)}}return s},fromJSON(e){const r=Object.assign({},u);if(r.logs=[],void 0!==e.height&&null!==e.height?r.height=o.default.fromString(e.height):r.height=o.default.ZERO,void 0!==e.txhash&&null!==e.txhash?r.txhash=String(e.txhash):r.txhash="",void 0!==e.codespace&&null!==e.codespace?r.codespace=String(e.codespace):r.codespace="",void 0!==e.code&&null!==e.code?r.code=Number(e.code):r.code=0,void 0!==e.data&&null!==e.data?r.data=String(e.data):r.data="",void 0!==e.rawLog&&null!==e.rawLog?r.rawLog=String(e.rawLog):r.rawLog="",void 0!==e.logs&&null!==e.logs)for(const n of e.logs)r.logs.push(t.ABCIMessageLog.fromJSON(n));return void 0!==e.info&&null!==e.info?r.info=String(e.info):r.info="",void 0!==e.gasWanted&&null!==e.gasWanted?r.gasWanted=o.default.fromString(e.gasWanted):r.gasWanted=o.default.ZERO,void 0!==e.gasUsed&&null!==e.gasUsed?r.gasUsed=o.default.fromString(e.gasUsed):r.gasUsed=o.default.ZERO,void 0!==e.tx&&null!==e.tx?r.tx=a.Any.fromJSON(e.tx):r.tx=void 0,void 0!==e.timestamp&&null!==e.timestamp?r.timestamp=String(e.timestamp):r.timestamp="",r},toJSON(e){const r={};return void 0!==e.height&&(r.height=(e.height||o.default.ZERO).toString()),void 0!==e.txhash&&(r.txhash=e.txhash),void 0!==e.codespace&&(r.codespace=e.codespace),void 0!==e.code&&(r.code=e.code),void 0!==e.data&&(r.data=e.data),void 0!==e.rawLog&&(r.rawLog=e.rawLog),e.logs?r.logs=e.logs.map((e=>e?t.ABCIMessageLog.toJSON(e):void 0)):r.logs=[],void 0!==e.info&&(r.info=e.info),void 0!==e.gasWanted&&(r.gasWanted=(e.gasWanted||o.default.ZERO).toString()),void 0!==e.gasUsed&&(r.gasUsed=(e.gasUsed||o.default.ZERO).toString()),void 0!==e.tx&&(r.tx=e.tx?a.Any.toJSON(e.tx):void 0),void 0!==e.timestamp&&(r.timestamp=e.timestamp),r},fromPartial(e){const r=Object.assign({},u);if(r.logs=[],void 0!==e.height&&null!==e.height?r.height=e.height:r.height=o.default.ZERO,void 0!==e.txhash&&null!==e.txhash?r.txhash=e.txhash:r.txhash="",void 0!==e.codespace&&null!==e.codespace?r.codespace=e.codespace:r.codespace="",void 0!==e.code&&null!==e.code?r.code=e.code:r.code=0,void 0!==e.data&&null!==e.data?r.data=e.data:r.data="",void 0!==e.rawLog&&null!==e.rawLog?r.rawLog=e.rawLog:r.rawLog="",void 0!==e.logs&&null!==e.logs)for(const n of e.logs)r.logs.push(t.ABCIMessageLog.fromPartial(n));return void 0!==e.info&&null!==e.info?r.info=e.info:r.info="",void 0!==e.gasWanted&&null!==e.gasWanted?r.gasWanted=e.gasWanted:r.gasWanted=o.default.ZERO,void 0!==e.gasUsed&&null!==e.gasUsed?r.gasUsed=e.gasUsed:r.gasUsed=o.default.ZERO,void 0!==e.tx&&null!==e.tx?r.tx=a.Any.fromPartial(e.tx):r.tx=void 0,void 0!==e.timestamp&&null!==e.timestamp?r.timestamp=e.timestamp:r.timestamp="",r}};const c={msgIndex:0,log:""};t.ABCIMessageLog={encode(e,r=i.default.Writer.create()){0!==e.msgIndex&&r.uint32(8).uint32(e.msgIndex),""!==e.log&&r.uint32(18).string(e.log);for(const n of e.events)t.StringEvent.encode(n,r.uint32(26).fork()).ldelim();return r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},c);for(a.events=[];n.pos>>3){case 1:a.msgIndex=n.uint32();break;case 2:a.log=n.string();break;case 3:a.events.push(t.StringEvent.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},c);if(r.events=[],void 0!==e.msgIndex&&null!==e.msgIndex?r.msgIndex=Number(e.msgIndex):r.msgIndex=0,void 0!==e.log&&null!==e.log?r.log=String(e.log):r.log="",void 0!==e.events&&null!==e.events)for(const n of e.events)r.events.push(t.StringEvent.fromJSON(n));return r},toJSON(e){const r={};return void 0!==e.msgIndex&&(r.msgIndex=e.msgIndex),void 0!==e.log&&(r.log=e.log),e.events?r.events=e.events.map((e=>e?t.StringEvent.toJSON(e):void 0)):r.events=[],r},fromPartial(e){const r=Object.assign({},c);if(r.events=[],void 0!==e.msgIndex&&null!==e.msgIndex?r.msgIndex=e.msgIndex:r.msgIndex=0,void 0!==e.log&&null!==e.log?r.log=e.log:r.log="",void 0!==e.events&&null!==e.events)for(const n of e.events)r.events.push(t.StringEvent.fromPartial(n));return r}};const d={type:""};t.StringEvent={encode(e,r=i.default.Writer.create()){""!==e.type&&r.uint32(10).string(e.type);for(const n of e.attributes)t.Attribute.encode(n,r.uint32(18).fork()).ldelim();return r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},d);for(a.attributes=[];n.pos>>3){case 1:a.type=n.string();break;case 2:a.attributes.push(t.Attribute.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},d);if(r.attributes=[],void 0!==e.type&&null!==e.type?r.type=String(e.type):r.type="",void 0!==e.attributes&&null!==e.attributes)for(const n of e.attributes)r.attributes.push(t.Attribute.fromJSON(n));return r},toJSON(e){const r={};return void 0!==e.type&&(r.type=e.type),e.attributes?r.attributes=e.attributes.map((e=>e?t.Attribute.toJSON(e):void 0)):r.attributes=[],r},fromPartial(e){const r=Object.assign({},d);if(r.attributes=[],void 0!==e.type&&null!==e.type?r.type=e.type:r.type="",void 0!==e.attributes&&null!==e.attributes)for(const n of e.attributes)r.attributes.push(t.Attribute.fromPartial(n));return r}};const l={key:"",value:""};t.Attribute={encode:(e,t=i.default.Writer.create())=>(""!==e.key&&t.uint32(10).string(e.key),""!==e.value&&t.uint32(18).string(e.value),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},l);for(;r.pos>>3){case 1:o.key=r.string();break;case 2:o.value=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},l);return void 0!==e.key&&null!==e.key?t.key=String(e.key):t.key="",void 0!==e.value&&null!==e.value?t.value=String(e.value):t.value="",t},toJSON(e){const t={};return void 0!==e.key&&(t.key=e.key),void 0!==e.value&&(t.value=e.value),t},fromPartial(e){const t=Object.assign({},l);return void 0!==e.key&&null!==e.key?t.key=e.key:t.key="",void 0!==e.value&&null!==e.value?t.value=e.value:t.value="",t}};const f={gasWanted:o.default.UZERO,gasUsed:o.default.UZERO};t.GasInfo={encode:(e,t=i.default.Writer.create())=>(e.gasWanted.isZero()||t.uint32(8).uint64(e.gasWanted),e.gasUsed.isZero()||t.uint32(16).uint64(e.gasUsed),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},f);for(;r.pos>>3){case 1:o.gasWanted=r.uint64();break;case 2:o.gasUsed=r.uint64();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},f);return void 0!==e.gasWanted&&null!==e.gasWanted?t.gasWanted=o.default.fromString(e.gasWanted):t.gasWanted=o.default.UZERO,void 0!==e.gasUsed&&null!==e.gasUsed?t.gasUsed=o.default.fromString(e.gasUsed):t.gasUsed=o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.gasWanted&&(t.gasWanted=(e.gasWanted||o.default.UZERO).toString()),void 0!==e.gasUsed&&(t.gasUsed=(e.gasUsed||o.default.UZERO).toString()),t},fromPartial(e){const t=Object.assign({},f);return void 0!==e.gasWanted&&null!==e.gasWanted?t.gasWanted=e.gasWanted:t.gasWanted=o.default.UZERO,void 0!==e.gasUsed&&null!==e.gasUsed?t.gasUsed=e.gasUsed:t.gasUsed=o.default.UZERO,t}};const h={log:""};t.Result={encode(e,t=i.default.Writer.create()){0!==e.data.length&&t.uint32(10).bytes(e.data),""!==e.log&&t.uint32(18).string(e.log);for(const r of e.events)s.Event.encode(r,t.uint32(26).fork()).ldelim();return t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},h);for(o.events=[],o.data=new Uint8Array;r.pos>>3){case 1:o.data=r.bytes();break;case 2:o.log=r.string();break;case 3:o.events.push(s.Event.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},h);if(t.events=[],t.data=new Uint8Array,void 0!==e.data&&null!==e.data&&(t.data=w(e.data)),void 0!==e.log&&null!==e.log?t.log=String(e.log):t.log="",void 0!==e.events&&null!==e.events)for(const r of e.events)t.events.push(s.Event.fromJSON(r));return t},toJSON(e){const t={};return void 0!==e.data&&(t.data=S(void 0!==e.data?e.data:new Uint8Array)),void 0!==e.log&&(t.log=e.log),e.events?t.events=e.events.map((e=>e?s.Event.toJSON(e):void 0)):t.events=[],t},fromPartial(e){const t=Object.assign({},h);if(t.events=[],void 0!==e.data&&null!==e.data?t.data=e.data:t.data=new Uint8Array,void 0!==e.log&&null!==e.log?t.log=e.log:t.log="",void 0!==e.events&&null!==e.events)for(const r of e.events)t.events.push(s.Event.fromPartial(r));return t}};const p={};t.SimulationResponse={encode:(e,r=i.default.Writer.create())=>(void 0!==e.gasInfo&&t.GasInfo.encode(e.gasInfo,r.uint32(10).fork()).ldelim(),void 0!==e.result&&t.Result.encode(e.result,r.uint32(18).fork()).ldelim(),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},p);for(;n.pos>>3){case 1:a.gasInfo=t.GasInfo.decode(n,n.uint32());break;case 2:a.result=t.Result.decode(n,n.uint32());break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},p);return void 0!==e.gasInfo&&null!==e.gasInfo?r.gasInfo=t.GasInfo.fromJSON(e.gasInfo):r.gasInfo=void 0,void 0!==e.result&&null!==e.result?r.result=t.Result.fromJSON(e.result):r.result=void 0,r},toJSON(e){const r={};return void 0!==e.gasInfo&&(r.gasInfo=e.gasInfo?t.GasInfo.toJSON(e.gasInfo):void 0),void 0!==e.result&&(r.result=e.result?t.Result.toJSON(e.result):void 0),r},fromPartial(e){const r=Object.assign({},p);return void 0!==e.gasInfo&&null!==e.gasInfo?r.gasInfo=t.GasInfo.fromPartial(e.gasInfo):r.gasInfo=void 0,void 0!==e.result&&null!==e.result?r.result=t.Result.fromPartial(e.result):r.result=void 0,r}};const m={msgType:""};t.MsgData={encode:(e,t=i.default.Writer.create())=>(""!==e.msgType&&t.uint32(10).string(e.msgType),0!==e.data.length&&t.uint32(18).bytes(e.data),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},m);for(o.data=new Uint8Array;r.pos>>3){case 1:o.msgType=r.string();break;case 2:o.data=r.bytes();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},m);return t.data=new Uint8Array,void 0!==e.msgType&&null!==e.msgType?t.msgType=String(e.msgType):t.msgType="",void 0!==e.data&&null!==e.data&&(t.data=w(e.data)),t},toJSON(e){const t={};return void 0!==e.msgType&&(t.msgType=e.msgType),void 0!==e.data&&(t.data=S(void 0!==e.data?e.data:new Uint8Array)),t},fromPartial(e){const t=Object.assign({},m);return void 0!==e.msgType&&null!==e.msgType?t.msgType=e.msgType:t.msgType="",void 0!==e.data&&null!==e.data?t.data=e.data:t.data=new Uint8Array,t}};const g={};t.TxMsgData={encode(e,r=i.default.Writer.create()){for(const n of e.data)t.MsgData.encode(n,r.uint32(10).fork()).ldelim();return r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},g);for(a.data=[];n.pos>>3==1?a.data.push(t.MsgData.decode(n,n.uint32())):n.skipType(7&e)}return a},fromJSON(e){const r=Object.assign({},g);if(r.data=[],void 0!==e.data&&null!==e.data)for(const n of e.data)r.data.push(t.MsgData.fromJSON(n));return r},toJSON(e){const r={};return e.data?r.data=e.data.map((e=>e?t.MsgData.toJSON(e):void 0)):r.data=[],r},fromPartial(e){const r=Object.assign({},g);if(r.data=[],void 0!==e.data&&null!==e.data)for(const n of e.data)r.data.push(t.MsgData.fromPartial(n));return r}};const v={totalCount:o.default.UZERO,count:o.default.UZERO,pageNumber:o.default.UZERO,pageTotal:o.default.UZERO,limit:o.default.UZERO};t.SearchTxsResult={encode(e,r=i.default.Writer.create()){e.totalCount.isZero()||r.uint32(8).uint64(e.totalCount),e.count.isZero()||r.uint32(16).uint64(e.count),e.pageNumber.isZero()||r.uint32(24).uint64(e.pageNumber),e.pageTotal.isZero()||r.uint32(32).uint64(e.pageTotal),e.limit.isZero()||r.uint32(40).uint64(e.limit);for(const n of e.txs)t.TxResponse.encode(n,r.uint32(50).fork()).ldelim();return r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},v);for(a.txs=[];n.pos>>3){case 1:a.totalCount=n.uint64();break;case 2:a.count=n.uint64();break;case 3:a.pageNumber=n.uint64();break;case 4:a.pageTotal=n.uint64();break;case 5:a.limit=n.uint64();break;case 6:a.txs.push(t.TxResponse.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},v);if(r.txs=[],void 0!==e.totalCount&&null!==e.totalCount?r.totalCount=o.default.fromString(e.totalCount):r.totalCount=o.default.UZERO,void 0!==e.count&&null!==e.count?r.count=o.default.fromString(e.count):r.count=o.default.UZERO,void 0!==e.pageNumber&&null!==e.pageNumber?r.pageNumber=o.default.fromString(e.pageNumber):r.pageNumber=o.default.UZERO,void 0!==e.pageTotal&&null!==e.pageTotal?r.pageTotal=o.default.fromString(e.pageTotal):r.pageTotal=o.default.UZERO,void 0!==e.limit&&null!==e.limit?r.limit=o.default.fromString(e.limit):r.limit=o.default.UZERO,void 0!==e.txs&&null!==e.txs)for(const n of e.txs)r.txs.push(t.TxResponse.fromJSON(n));return r},toJSON(e){const r={};return void 0!==e.totalCount&&(r.totalCount=(e.totalCount||o.default.UZERO).toString()),void 0!==e.count&&(r.count=(e.count||o.default.UZERO).toString()),void 0!==e.pageNumber&&(r.pageNumber=(e.pageNumber||o.default.UZERO).toString()),void 0!==e.pageTotal&&(r.pageTotal=(e.pageTotal||o.default.UZERO).toString()),void 0!==e.limit&&(r.limit=(e.limit||o.default.UZERO).toString()),e.txs?r.txs=e.txs.map((e=>e?t.TxResponse.toJSON(e):void 0)):r.txs=[],r},fromPartial(e){const r=Object.assign({},v);if(r.txs=[],void 0!==e.totalCount&&null!==e.totalCount?r.totalCount=e.totalCount:r.totalCount=o.default.UZERO,void 0!==e.count&&null!==e.count?r.count=e.count:r.count=o.default.UZERO,void 0!==e.pageNumber&&null!==e.pageNumber?r.pageNumber=e.pageNumber:r.pageNumber=o.default.UZERO,void 0!==e.pageTotal&&null!==e.pageTotal?r.pageTotal=e.pageTotal:r.pageTotal=o.default.UZERO,void 0!==e.limit&&null!==e.limit?r.limit=e.limit:r.limit=o.default.UZERO,void 0!==e.txs&&null!==e.txs)for(const n of e.txs)r.txs.push(t.TxResponse.fromPartial(n));return r}};var b=(()=>{if(void 0!==b)return b;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==r.g)return r.g;throw"Unable to locate global object"})();const y=b.atob||(e=>b.Buffer.from(e,"base64").toString("binary"));function w(e){const t=y(e),r=new Uint8Array(t.length);for(let e=0;eb.Buffer.from(e,"binary").toString("base64"));function S(e){const t=[];for(const r of e)t.push(String.fromCharCode(r));return _(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},75008:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.PageResponse=t.PageRequest=t.protobufPackage=void 0;const o=n(r(43720)),i=n(r(62100));t.protobufPackage="cosmos.base.query.v1beta1";const a={offset:o.default.UZERO,limit:o.default.UZERO,countTotal:!1,reverse:!1};t.PageRequest={encode:(e,t=i.default.Writer.create())=>(0!==e.key.length&&t.uint32(10).bytes(e.key),e.offset.isZero()||t.uint32(16).uint64(e.offset),e.limit.isZero()||t.uint32(24).uint64(e.limit),!0===e.countTotal&&t.uint32(32).bool(e.countTotal),!0===e.reverse&&t.uint32(40).bool(e.reverse),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},a);for(o.key=new Uint8Array;r.pos>>3){case 1:o.key=r.bytes();break;case 2:o.offset=r.uint64();break;case 3:o.limit=r.uint64();break;case 4:o.countTotal=r.bool();break;case 5:o.reverse=r.bool();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},a);return t.key=new Uint8Array,void 0!==e.key&&null!==e.key&&(t.key=d(e.key)),void 0!==e.offset&&null!==e.offset?t.offset=o.default.fromString(e.offset):t.offset=o.default.UZERO,void 0!==e.limit&&null!==e.limit?t.limit=o.default.fromString(e.limit):t.limit=o.default.UZERO,void 0!==e.countTotal&&null!==e.countTotal?t.countTotal=Boolean(e.countTotal):t.countTotal=!1,void 0!==e.reverse&&null!==e.reverse?t.reverse=Boolean(e.reverse):t.reverse=!1,t},toJSON(e){const t={};return void 0!==e.key&&(t.key=f(void 0!==e.key?e.key:new Uint8Array)),void 0!==e.offset&&(t.offset=(e.offset||o.default.UZERO).toString()),void 0!==e.limit&&(t.limit=(e.limit||o.default.UZERO).toString()),void 0!==e.countTotal&&(t.countTotal=e.countTotal),void 0!==e.reverse&&(t.reverse=e.reverse),t},fromPartial(e){const t=Object.assign({},a);return void 0!==e.key&&null!==e.key?t.key=e.key:t.key=new Uint8Array,void 0!==e.offset&&null!==e.offset?t.offset=e.offset:t.offset=o.default.UZERO,void 0!==e.limit&&null!==e.limit?t.limit=e.limit:t.limit=o.default.UZERO,void 0!==e.countTotal&&null!==e.countTotal?t.countTotal=e.countTotal:t.countTotal=!1,void 0!==e.reverse&&null!==e.reverse?t.reverse=e.reverse:t.reverse=!1,t}};const s={total:o.default.UZERO};t.PageResponse={encode:(e,t=i.default.Writer.create())=>(0!==e.nextKey.length&&t.uint32(10).bytes(e.nextKey),e.total.isZero()||t.uint32(16).uint64(e.total),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},s);for(o.nextKey=new Uint8Array;r.pos>>3){case 1:o.nextKey=r.bytes();break;case 2:o.total=r.uint64();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},s);return t.nextKey=new Uint8Array,void 0!==e.nextKey&&null!==e.nextKey&&(t.nextKey=d(e.nextKey)),void 0!==e.total&&null!==e.total?t.total=o.default.fromString(e.total):t.total=o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.nextKey&&(t.nextKey=f(void 0!==e.nextKey?e.nextKey:new Uint8Array)),void 0!==e.total&&(t.total=(e.total||o.default.UZERO).toString()),t},fromPartial(e){const t=Object.assign({},s);return void 0!==e.nextKey&&null!==e.nextKey?t.nextKey=e.nextKey:t.nextKey=new Uint8Array,void 0!==e.total&&null!==e.total?t.total=e.total:t.total=o.default.UZERO,t}};var u=(()=>{if(void 0!==u)return u;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==r.g)return r.g;throw"Unable to locate global object"})();const c=u.atob||(e=>u.Buffer.from(e,"base64").toString("binary"));function d(e){const t=c(e),r=new Uint8Array(t.length);for(let e=0;eu.Buffer.from(e,"binary").toString("base64"));function f(e){const t=[];for(const r of e)t.push(String.fromCharCode(r));return l(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},90557:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.DecProto=t.IntProto=t.DecCoin=t.Coin=t.protobufPackage=void 0;const o=n(r(43720)),i=n(r(62100));t.protobufPackage="cosmos.base.v1beta1";const a={denom:"",amount:""};t.Coin={encode:(e,t=i.default.Writer.create())=>(""!==e.denom&&t.uint32(10).string(e.denom),""!==e.amount&&t.uint32(18).string(e.amount),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},a);for(;r.pos>>3){case 1:o.denom=r.string();break;case 2:o.amount=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},a);return void 0!==e.denom&&null!==e.denom?t.denom=String(e.denom):t.denom="",void 0!==e.amount&&null!==e.amount?t.amount=String(e.amount):t.amount="",t},toJSON(e){const t={};return void 0!==e.denom&&(t.denom=e.denom),void 0!==e.amount&&(t.amount=e.amount),t},fromPartial(e){const t=Object.assign({},a);return void 0!==e.denom&&null!==e.denom?t.denom=e.denom:t.denom="",void 0!==e.amount&&null!==e.amount?t.amount=e.amount:t.amount="",t}};const s={denom:"",amount:""};t.DecCoin={encode:(e,t=i.default.Writer.create())=>(""!==e.denom&&t.uint32(10).string(e.denom),""!==e.amount&&t.uint32(18).string(e.amount),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},s);for(;r.pos>>3){case 1:o.denom=r.string();break;case 2:o.amount=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},s);return void 0!==e.denom&&null!==e.denom?t.denom=String(e.denom):t.denom="",void 0!==e.amount&&null!==e.amount?t.amount=String(e.amount):t.amount="",t},toJSON(e){const t={};return void 0!==e.denom&&(t.denom=e.denom),void 0!==e.amount&&(t.amount=e.amount),t},fromPartial(e){const t=Object.assign({},s);return void 0!==e.denom&&null!==e.denom?t.denom=e.denom:t.denom="",void 0!==e.amount&&null!==e.amount?t.amount=e.amount:t.amount="",t}};const u={int:""};t.IntProto={encode:(e,t=i.default.Writer.create())=>(""!==e.int&&t.uint32(10).string(e.int),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},u);for(;r.pos>>3==1?o.int=r.string():r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},u);return void 0!==e.int&&null!==e.int?t.int=String(e.int):t.int="",t},toJSON(e){const t={};return void 0!==e.int&&(t.int=e.int),t},fromPartial(e){const t=Object.assign({},u);return void 0!==e.int&&null!==e.int?t.int=e.int:t.int="",t}};const c={dec:""};t.DecProto={encode:(e,t=i.default.Writer.create())=>(""!==e.dec&&t.uint32(10).string(e.dec),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},c);for(;r.pos>>3==1?o.dec=r.string():r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},c);return void 0!==e.dec&&null!==e.dec?t.dec=String(e.dec):t.dec="",t},toJSON(e){const t={};return void 0!==e.dec&&(t.dec=e.dec),t},fromPartial(e){const t=Object.assign({},c);return void 0!==e.dec&&null!==e.dec?t.dec=e.dec:t.dec="",t}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},95511:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.CompactBitArray=t.MultiSignature=t.protobufPackage=void 0;const o=n(r(43720)),i=n(r(62100));t.protobufPackage="cosmos.crypto.multisig.v1beta1";const a={};t.MultiSignature={encode(e,t=i.default.Writer.create()){for(const r of e.signatures)t.uint32(10).bytes(r);return t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},a);for(o.signatures=[];r.pos>>3==1?o.signatures.push(r.bytes()):r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},a);if(t.signatures=[],void 0!==e.signatures&&null!==e.signatures)for(const r of e.signatures)t.signatures.push(d(r));return t},toJSON(e){const t={};return e.signatures?t.signatures=e.signatures.map((e=>f(void 0!==e?e:new Uint8Array))):t.signatures=[],t},fromPartial(e){const t=Object.assign({},a);if(t.signatures=[],void 0!==e.signatures&&null!==e.signatures)for(const r of e.signatures)t.signatures.push(r);return t}};const s={extraBitsStored:0};t.CompactBitArray={encode:(e,t=i.default.Writer.create())=>(0!==e.extraBitsStored&&t.uint32(8).uint32(e.extraBitsStored),0!==e.elems.length&&t.uint32(18).bytes(e.elems),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},s);for(o.elems=new Uint8Array;r.pos>>3){case 1:o.extraBitsStored=r.uint32();break;case 2:o.elems=r.bytes();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},s);return t.elems=new Uint8Array,void 0!==e.extraBitsStored&&null!==e.extraBitsStored?t.extraBitsStored=Number(e.extraBitsStored):t.extraBitsStored=0,void 0!==e.elems&&null!==e.elems&&(t.elems=d(e.elems)),t},toJSON(e){const t={};return void 0!==e.extraBitsStored&&(t.extraBitsStored=e.extraBitsStored),void 0!==e.elems&&(t.elems=f(void 0!==e.elems?e.elems:new Uint8Array)),t},fromPartial(e){const t=Object.assign({},s);return void 0!==e.extraBitsStored&&null!==e.extraBitsStored?t.extraBitsStored=e.extraBitsStored:t.extraBitsStored=0,void 0!==e.elems&&null!==e.elems?t.elems=e.elems:t.elems=new Uint8Array,t}};var u=(()=>{if(void 0!==u)return u;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==r.g)return r.g;throw"Unable to locate global object"})();const c=u.atob||(e=>u.Buffer.from(e,"base64").toString("binary"));function d(e){const t=c(e),r=new Uint8Array(t.length);for(let e=0;eu.Buffer.from(e,"binary").toString("base64"));function f(e){const t=[];for(const r of e)t.push(String.fromCharCode(r));return l(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},4194:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.MsgClientImpl=t.MsgFundCommunityPoolResponse=t.MsgFundCommunityPool=t.MsgWithdrawValidatorCommissionResponse=t.MsgWithdrawValidatorCommission=t.MsgWithdrawDelegatorRewardResponse=t.MsgWithdrawDelegatorReward=t.MsgSetWithdrawAddressResponse=t.MsgSetWithdrawAddress=t.protobufPackage=void 0;const o=n(r(43720)),i=n(r(62100)),a=r(90557);t.protobufPackage="cosmos.distribution.v1beta1";const s={delegatorAddress:"",withdrawAddress:""};t.MsgSetWithdrawAddress={encode:(e,t=i.default.Writer.create())=>(""!==e.delegatorAddress&&t.uint32(10).string(e.delegatorAddress),""!==e.withdrawAddress&&t.uint32(18).string(e.withdrawAddress),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},s);for(;r.pos>>3){case 1:o.delegatorAddress=r.string();break;case 2:o.withdrawAddress=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},s);return void 0!==e.delegatorAddress&&null!==e.delegatorAddress?t.delegatorAddress=String(e.delegatorAddress):t.delegatorAddress="",void 0!==e.withdrawAddress&&null!==e.withdrawAddress?t.withdrawAddress=String(e.withdrawAddress):t.withdrawAddress="",t},toJSON(e){const t={};return void 0!==e.delegatorAddress&&(t.delegatorAddress=e.delegatorAddress),void 0!==e.withdrawAddress&&(t.withdrawAddress=e.withdrawAddress),t},fromPartial(e){const t=Object.assign({},s);return void 0!==e.delegatorAddress&&null!==e.delegatorAddress?t.delegatorAddress=e.delegatorAddress:t.delegatorAddress="",void 0!==e.withdrawAddress&&null!==e.withdrawAddress?t.withdrawAddress=e.withdrawAddress:t.withdrawAddress="",t}};const u={};t.MsgSetWithdrawAddressResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},u);for(;r.posObject.assign({},u),toJSON:e=>({}),fromPartial:e=>Object.assign({},u)};const c={delegatorAddress:"",validatorAddress:""};t.MsgWithdrawDelegatorReward={encode:(e,t=i.default.Writer.create())=>(""!==e.delegatorAddress&&t.uint32(10).string(e.delegatorAddress),""!==e.validatorAddress&&t.uint32(18).string(e.validatorAddress),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},c);for(;r.pos>>3){case 1:o.delegatorAddress=r.string();break;case 2:o.validatorAddress=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},c);return void 0!==e.delegatorAddress&&null!==e.delegatorAddress?t.delegatorAddress=String(e.delegatorAddress):t.delegatorAddress="",void 0!==e.validatorAddress&&null!==e.validatorAddress?t.validatorAddress=String(e.validatorAddress):t.validatorAddress="",t},toJSON(e){const t={};return void 0!==e.delegatorAddress&&(t.delegatorAddress=e.delegatorAddress),void 0!==e.validatorAddress&&(t.validatorAddress=e.validatorAddress),t},fromPartial(e){const t=Object.assign({},c);return void 0!==e.delegatorAddress&&null!==e.delegatorAddress?t.delegatorAddress=e.delegatorAddress:t.delegatorAddress="",void 0!==e.validatorAddress&&null!==e.validatorAddress?t.validatorAddress=e.validatorAddress:t.validatorAddress="",t}};const d={};t.MsgWithdrawDelegatorRewardResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},d);for(;r.posObject.assign({},d),toJSON:e=>({}),fromPartial:e=>Object.assign({},d)};const l={validatorAddress:""};t.MsgWithdrawValidatorCommission={encode:(e,t=i.default.Writer.create())=>(""!==e.validatorAddress&&t.uint32(10).string(e.validatorAddress),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},l);for(;r.pos>>3==1?o.validatorAddress=r.string():r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},l);return void 0!==e.validatorAddress&&null!==e.validatorAddress?t.validatorAddress=String(e.validatorAddress):t.validatorAddress="",t},toJSON(e){const t={};return void 0!==e.validatorAddress&&(t.validatorAddress=e.validatorAddress),t},fromPartial(e){const t=Object.assign({},l);return void 0!==e.validatorAddress&&null!==e.validatorAddress?t.validatorAddress=e.validatorAddress:t.validatorAddress="",t}};const f={};t.MsgWithdrawValidatorCommissionResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},f);for(;r.posObject.assign({},f),toJSON:e=>({}),fromPartial:e=>Object.assign({},f)};const h={depositor:""};t.MsgFundCommunityPool={encode(e,t=i.default.Writer.create()){for(const r of e.amount)a.Coin.encode(r,t.uint32(10).fork()).ldelim();return""!==e.depositor&&t.uint32(18).string(e.depositor),t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},h);for(o.amount=[];r.pos>>3){case 1:o.amount.push(a.Coin.decode(r,r.uint32()));break;case 2:o.depositor=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},h);if(t.amount=[],void 0!==e.amount&&null!==e.amount)for(const r of e.amount)t.amount.push(a.Coin.fromJSON(r));return void 0!==e.depositor&&null!==e.depositor?t.depositor=String(e.depositor):t.depositor="",t},toJSON(e){const t={};return e.amount?t.amount=e.amount.map((e=>e?a.Coin.toJSON(e):void 0)):t.amount=[],void 0!==e.depositor&&(t.depositor=e.depositor),t},fromPartial(e){const t=Object.assign({},h);if(t.amount=[],void 0!==e.amount&&null!==e.amount)for(const r of e.amount)t.amount.push(a.Coin.fromPartial(r));return void 0!==e.depositor&&null!==e.depositor?t.depositor=e.depositor:t.depositor="",t}};const p={};t.MsgFundCommunityPoolResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},p);for(;r.posObject.assign({},p),toJSON:e=>({}),fromPartial:e=>Object.assign({},p)},t.MsgClientImpl=class{constructor(e){this.rpc=e,this.SetWithdrawAddress=this.SetWithdrawAddress.bind(this),this.WithdrawDelegatorReward=this.WithdrawDelegatorReward.bind(this),this.WithdrawValidatorCommission=this.WithdrawValidatorCommission.bind(this),this.FundCommunityPool=this.FundCommunityPool.bind(this)}SetWithdrawAddress(e){const r=t.MsgSetWithdrawAddress.encode(e).finish();return this.rpc.request("cosmos.distribution.v1beta1.Msg","SetWithdrawAddress",r).then((e=>t.MsgSetWithdrawAddressResponse.decode(new i.default.Reader(e))))}WithdrawDelegatorReward(e){const r=t.MsgWithdrawDelegatorReward.encode(e).finish();return this.rpc.request("cosmos.distribution.v1beta1.Msg","WithdrawDelegatorReward",r).then((e=>t.MsgWithdrawDelegatorRewardResponse.decode(new i.default.Reader(e))))}WithdrawValidatorCommission(e){const r=t.MsgWithdrawValidatorCommission.encode(e).finish();return this.rpc.request("cosmos.distribution.v1beta1.Msg","WithdrawValidatorCommission",r).then((e=>t.MsgWithdrawValidatorCommissionResponse.decode(new i.default.Reader(e))))}FundCommunityPool(e){const r=t.MsgFundCommunityPool.encode(e).finish();return this.rpc.request("cosmos.distribution.v1beta1.Msg","FundCommunityPool",r).then((e=>t.MsgFundCommunityPoolResponse.decode(new i.default.Reader(e))))}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},95644:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.TallyParams=t.VotingParams=t.DepositParams=t.Vote=t.TallyResult=t.Proposal=t.Deposit=t.TextProposal=t.WeightedVoteOption=t.proposalStatusToJSON=t.proposalStatusFromJSON=t.ProposalStatus=t.voteOptionToJSON=t.voteOptionFromJSON=t.VoteOption=t.protobufPackage=void 0;const o=n(r(43720)),i=n(r(62100)),a=r(81596),s=r(69130),u=r(88652),c=r(90557);var d,l;function f(e){switch(e){case 0:case"VOTE_OPTION_UNSPECIFIED":return d.VOTE_OPTION_UNSPECIFIED;case 1:case"VOTE_OPTION_YES":return d.VOTE_OPTION_YES;case 2:case"VOTE_OPTION_ABSTAIN":return d.VOTE_OPTION_ABSTAIN;case 3:case"VOTE_OPTION_NO":return d.VOTE_OPTION_NO;case 4:case"VOTE_OPTION_NO_WITH_VETO":return d.VOTE_OPTION_NO_WITH_VETO;default:return d.UNRECOGNIZED}}function h(e){switch(e){case d.VOTE_OPTION_UNSPECIFIED:return"VOTE_OPTION_UNSPECIFIED";case d.VOTE_OPTION_YES:return"VOTE_OPTION_YES";case d.VOTE_OPTION_ABSTAIN:return"VOTE_OPTION_ABSTAIN";case d.VOTE_OPTION_NO:return"VOTE_OPTION_NO";case d.VOTE_OPTION_NO_WITH_VETO:return"VOTE_OPTION_NO_WITH_VETO";default:return"UNKNOWN"}}function p(e){switch(e){case 0:case"PROPOSAL_STATUS_UNSPECIFIED":return l.PROPOSAL_STATUS_UNSPECIFIED;case 1:case"PROPOSAL_STATUS_DEPOSIT_PERIOD":return l.PROPOSAL_STATUS_DEPOSIT_PERIOD;case 2:case"PROPOSAL_STATUS_VOTING_PERIOD":return l.PROPOSAL_STATUS_VOTING_PERIOD;case 3:case"PROPOSAL_STATUS_PASSED":return l.PROPOSAL_STATUS_PASSED;case 4:case"PROPOSAL_STATUS_REJECTED":return l.PROPOSAL_STATUS_REJECTED;case 5:case"PROPOSAL_STATUS_FAILED":return l.PROPOSAL_STATUS_FAILED;default:return l.UNRECOGNIZED}}function m(e){switch(e){case l.PROPOSAL_STATUS_UNSPECIFIED:return"PROPOSAL_STATUS_UNSPECIFIED";case l.PROPOSAL_STATUS_DEPOSIT_PERIOD:return"PROPOSAL_STATUS_DEPOSIT_PERIOD";case l.PROPOSAL_STATUS_VOTING_PERIOD:return"PROPOSAL_STATUS_VOTING_PERIOD";case l.PROPOSAL_STATUS_PASSED:return"PROPOSAL_STATUS_PASSED";case l.PROPOSAL_STATUS_REJECTED:return"PROPOSAL_STATUS_REJECTED";case l.PROPOSAL_STATUS_FAILED:return"PROPOSAL_STATUS_FAILED";default:return"UNKNOWN"}}t.protobufPackage="cosmos.gov.v1beta1",function(e){e[e.VOTE_OPTION_UNSPECIFIED=0]="VOTE_OPTION_UNSPECIFIED",e[e.VOTE_OPTION_YES=1]="VOTE_OPTION_YES",e[e.VOTE_OPTION_ABSTAIN=2]="VOTE_OPTION_ABSTAIN",e[e.VOTE_OPTION_NO=3]="VOTE_OPTION_NO",e[e.VOTE_OPTION_NO_WITH_VETO=4]="VOTE_OPTION_NO_WITH_VETO",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(d=t.VoteOption||(t.VoteOption={})),t.voteOptionFromJSON=f,t.voteOptionToJSON=h,function(e){e[e.PROPOSAL_STATUS_UNSPECIFIED=0]="PROPOSAL_STATUS_UNSPECIFIED",e[e.PROPOSAL_STATUS_DEPOSIT_PERIOD=1]="PROPOSAL_STATUS_DEPOSIT_PERIOD",e[e.PROPOSAL_STATUS_VOTING_PERIOD=2]="PROPOSAL_STATUS_VOTING_PERIOD",e[e.PROPOSAL_STATUS_PASSED=3]="PROPOSAL_STATUS_PASSED",e[e.PROPOSAL_STATUS_REJECTED=4]="PROPOSAL_STATUS_REJECTED",e[e.PROPOSAL_STATUS_FAILED=5]="PROPOSAL_STATUS_FAILED",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(l=t.ProposalStatus||(t.ProposalStatus={})),t.proposalStatusFromJSON=p,t.proposalStatusToJSON=m;const g={option:0,weight:""};t.WeightedVoteOption={encode:(e,t=i.default.Writer.create())=>(0!==e.option&&t.uint32(8).int32(e.option),""!==e.weight&&t.uint32(18).string(e.weight),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},g);for(;r.pos>>3){case 1:o.option=r.int32();break;case 2:o.weight=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},g);return void 0!==e.option&&null!==e.option?t.option=f(e.option):t.option=0,void 0!==e.weight&&null!==e.weight?t.weight=String(e.weight):t.weight="",t},toJSON(e){const t={};return void 0!==e.option&&(t.option=h(e.option)),void 0!==e.weight&&(t.weight=e.weight),t},fromPartial(e){const t=Object.assign({},g);return void 0!==e.option&&null!==e.option?t.option=e.option:t.option=0,void 0!==e.weight&&null!==e.weight?t.weight=e.weight:t.weight="",t}};const v={title:"",description:""};t.TextProposal={encode:(e,t=i.default.Writer.create())=>(""!==e.title&&t.uint32(10).string(e.title),""!==e.description&&t.uint32(18).string(e.description),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},v);for(;r.pos>>3){case 1:o.title=r.string();break;case 2:o.description=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},v);return void 0!==e.title&&null!==e.title?t.title=String(e.title):t.title="",void 0!==e.description&&null!==e.description?t.description=String(e.description):t.description="",t},toJSON(e){const t={};return void 0!==e.title&&(t.title=e.title),void 0!==e.description&&(t.description=e.description),t},fromPartial(e){const t=Object.assign({},v);return void 0!==e.title&&null!==e.title?t.title=e.title:t.title="",void 0!==e.description&&null!==e.description?t.description=e.description:t.description="",t}};const b={proposalId:o.default.UZERO,depositor:""};t.Deposit={encode(e,t=i.default.Writer.create()){e.proposalId.isZero()||t.uint32(8).uint64(e.proposalId),""!==e.depositor&&t.uint32(18).string(e.depositor);for(const r of e.amount)c.Coin.encode(r,t.uint32(26).fork()).ldelim();return t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},b);for(o.amount=[];r.pos>>3){case 1:o.proposalId=r.uint64();break;case 2:o.depositor=r.string();break;case 3:o.amount.push(c.Coin.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},b);if(t.amount=[],void 0!==e.proposalId&&null!==e.proposalId?t.proposalId=o.default.fromString(e.proposalId):t.proposalId=o.default.UZERO,void 0!==e.depositor&&null!==e.depositor?t.depositor=String(e.depositor):t.depositor="",void 0!==e.amount&&null!==e.amount)for(const r of e.amount)t.amount.push(c.Coin.fromJSON(r));return t},toJSON(e){const t={};return void 0!==e.proposalId&&(t.proposalId=(e.proposalId||o.default.UZERO).toString()),void 0!==e.depositor&&(t.depositor=e.depositor),e.amount?t.amount=e.amount.map((e=>e?c.Coin.toJSON(e):void 0)):t.amount=[],t},fromPartial(e){const t=Object.assign({},b);if(t.amount=[],void 0!==e.proposalId&&null!==e.proposalId?t.proposalId=e.proposalId:t.proposalId=o.default.UZERO,void 0!==e.depositor&&null!==e.depositor?t.depositor=e.depositor:t.depositor="",void 0!==e.amount&&null!==e.amount)for(const r of e.amount)t.amount.push(c.Coin.fromPartial(r));return t}};const y={proposalId:o.default.UZERO,status:0};t.Proposal={encode(e,r=i.default.Writer.create()){e.proposalId.isZero()||r.uint32(8).uint64(e.proposalId),void 0!==e.content&&a.Any.encode(e.content,r.uint32(18).fork()).ldelim(),0!==e.status&&r.uint32(24).int32(e.status),void 0!==e.finalTallyResult&&t.TallyResult.encode(e.finalTallyResult,r.uint32(34).fork()).ldelim(),void 0!==e.submitTime&&u.Timestamp.encode(N(e.submitTime),r.uint32(42).fork()).ldelim(),void 0!==e.depositEndTime&&u.Timestamp.encode(N(e.depositEndTime),r.uint32(50).fork()).ldelim();for(const t of e.totalDeposit)c.Coin.encode(t,r.uint32(58).fork()).ldelim();return void 0!==e.votingStartTime&&u.Timestamp.encode(N(e.votingStartTime),r.uint32(66).fork()).ldelim(),void 0!==e.votingEndTime&&u.Timestamp.encode(N(e.votingEndTime),r.uint32(74).fork()).ldelim(),r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const s=Object.assign({},y);for(s.totalDeposit=[];n.pos>>3){case 1:s.proposalId=n.uint64();break;case 2:s.content=a.Any.decode(n,n.uint32());break;case 3:s.status=n.int32();break;case 4:s.finalTallyResult=t.TallyResult.decode(n,n.uint32());break;case 5:s.submitTime=x(u.Timestamp.decode(n,n.uint32()));break;case 6:s.depositEndTime=x(u.Timestamp.decode(n,n.uint32()));break;case 7:s.totalDeposit.push(c.Coin.decode(n,n.uint32()));break;case 8:s.votingStartTime=x(u.Timestamp.decode(n,n.uint32()));break;case 9:s.votingEndTime=x(u.Timestamp.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return s},fromJSON(e){const r=Object.assign({},y);if(r.totalDeposit=[],void 0!==e.proposalId&&null!==e.proposalId?r.proposalId=o.default.fromString(e.proposalId):r.proposalId=o.default.UZERO,void 0!==e.content&&null!==e.content?r.content=a.Any.fromJSON(e.content):r.content=void 0,void 0!==e.status&&null!==e.status?r.status=p(e.status):r.status=0,void 0!==e.finalTallyResult&&null!==e.finalTallyResult?r.finalTallyResult=t.TallyResult.fromJSON(e.finalTallyResult):r.finalTallyResult=void 0,void 0!==e.submitTime&&null!==e.submitTime?r.submitTime=R(e.submitTime):r.submitTime=void 0,void 0!==e.depositEndTime&&null!==e.depositEndTime?r.depositEndTime=R(e.depositEndTime):r.depositEndTime=void 0,void 0!==e.totalDeposit&&null!==e.totalDeposit)for(const t of e.totalDeposit)r.totalDeposit.push(c.Coin.fromJSON(t));return void 0!==e.votingStartTime&&null!==e.votingStartTime?r.votingStartTime=R(e.votingStartTime):r.votingStartTime=void 0,void 0!==e.votingEndTime&&null!==e.votingEndTime?r.votingEndTime=R(e.votingEndTime):r.votingEndTime=void 0,r},toJSON(e){const r={};return void 0!==e.proposalId&&(r.proposalId=(e.proposalId||o.default.UZERO).toString()),void 0!==e.content&&(r.content=e.content?a.Any.toJSON(e.content):void 0),void 0!==e.status&&(r.status=m(e.status)),void 0!==e.finalTallyResult&&(r.finalTallyResult=e.finalTallyResult?t.TallyResult.toJSON(e.finalTallyResult):void 0),void 0!==e.submitTime&&(r.submitTime=e.submitTime.toISOString()),void 0!==e.depositEndTime&&(r.depositEndTime=e.depositEndTime.toISOString()),e.totalDeposit?r.totalDeposit=e.totalDeposit.map((e=>e?c.Coin.toJSON(e):void 0)):r.totalDeposit=[],void 0!==e.votingStartTime&&(r.votingStartTime=e.votingStartTime.toISOString()),void 0!==e.votingEndTime&&(r.votingEndTime=e.votingEndTime.toISOString()),r},fromPartial(e){const r=Object.assign({},y);if(r.totalDeposit=[],void 0!==e.proposalId&&null!==e.proposalId?r.proposalId=e.proposalId:r.proposalId=o.default.UZERO,void 0!==e.content&&null!==e.content?r.content=a.Any.fromPartial(e.content):r.content=void 0,void 0!==e.status&&null!==e.status?r.status=e.status:r.status=0,void 0!==e.finalTallyResult&&null!==e.finalTallyResult?r.finalTallyResult=t.TallyResult.fromPartial(e.finalTallyResult):r.finalTallyResult=void 0,void 0!==e.submitTime&&null!==e.submitTime?r.submitTime=e.submitTime:r.submitTime=void 0,void 0!==e.depositEndTime&&null!==e.depositEndTime?r.depositEndTime=e.depositEndTime:r.depositEndTime=void 0,void 0!==e.totalDeposit&&null!==e.totalDeposit)for(const t of e.totalDeposit)r.totalDeposit.push(c.Coin.fromPartial(t));return void 0!==e.votingStartTime&&null!==e.votingStartTime?r.votingStartTime=e.votingStartTime:r.votingStartTime=void 0,void 0!==e.votingEndTime&&null!==e.votingEndTime?r.votingEndTime=e.votingEndTime:r.votingEndTime=void 0,r}};const w={yes:"",abstain:"",no:"",noWithVeto:""};t.TallyResult={encode:(e,t=i.default.Writer.create())=>(""!==e.yes&&t.uint32(10).string(e.yes),""!==e.abstain&&t.uint32(18).string(e.abstain),""!==e.no&&t.uint32(26).string(e.no),""!==e.noWithVeto&&t.uint32(34).string(e.noWithVeto),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},w);for(;r.pos>>3){case 1:o.yes=r.string();break;case 2:o.abstain=r.string();break;case 3:o.no=r.string();break;case 4:o.noWithVeto=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},w);return void 0!==e.yes&&null!==e.yes?t.yes=String(e.yes):t.yes="",void 0!==e.abstain&&null!==e.abstain?t.abstain=String(e.abstain):t.abstain="",void 0!==e.no&&null!==e.no?t.no=String(e.no):t.no="",void 0!==e.noWithVeto&&null!==e.noWithVeto?t.noWithVeto=String(e.noWithVeto):t.noWithVeto="",t},toJSON(e){const t={};return void 0!==e.yes&&(t.yes=e.yes),void 0!==e.abstain&&(t.abstain=e.abstain),void 0!==e.no&&(t.no=e.no),void 0!==e.noWithVeto&&(t.noWithVeto=e.noWithVeto),t},fromPartial(e){const t=Object.assign({},w);return void 0!==e.yes&&null!==e.yes?t.yes=e.yes:t.yes="",void 0!==e.abstain&&null!==e.abstain?t.abstain=e.abstain:t.abstain="",void 0!==e.no&&null!==e.no?t.no=e.no:t.no="",void 0!==e.noWithVeto&&null!==e.noWithVeto?t.noWithVeto=e.noWithVeto:t.noWithVeto="",t}};const _={proposalId:o.default.UZERO,voter:"",option:0};t.Vote={encode(e,r=i.default.Writer.create()){e.proposalId.isZero()||r.uint32(8).uint64(e.proposalId),""!==e.voter&&r.uint32(18).string(e.voter),0!==e.option&&r.uint32(24).int32(e.option);for(const n of e.options)t.WeightedVoteOption.encode(n,r.uint32(34).fork()).ldelim();return r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},_);for(a.options=[];n.pos>>3){case 1:a.proposalId=n.uint64();break;case 2:a.voter=n.string();break;case 3:a.option=n.int32();break;case 4:a.options.push(t.WeightedVoteOption.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},_);if(r.options=[],void 0!==e.proposalId&&null!==e.proposalId?r.proposalId=o.default.fromString(e.proposalId):r.proposalId=o.default.UZERO,void 0!==e.voter&&null!==e.voter?r.voter=String(e.voter):r.voter="",void 0!==e.option&&null!==e.option?r.option=f(e.option):r.option=0,void 0!==e.options&&null!==e.options)for(const n of e.options)r.options.push(t.WeightedVoteOption.fromJSON(n));return r},toJSON(e){const r={};return void 0!==e.proposalId&&(r.proposalId=(e.proposalId||o.default.UZERO).toString()),void 0!==e.voter&&(r.voter=e.voter),void 0!==e.option&&(r.option=h(e.option)),e.options?r.options=e.options.map((e=>e?t.WeightedVoteOption.toJSON(e):void 0)):r.options=[],r},fromPartial(e){const r=Object.assign({},_);if(r.options=[],void 0!==e.proposalId&&null!==e.proposalId?r.proposalId=e.proposalId:r.proposalId=o.default.UZERO,void 0!==e.voter&&null!==e.voter?r.voter=e.voter:r.voter="",void 0!==e.option&&null!==e.option?r.option=e.option:r.option=0,void 0!==e.options&&null!==e.options)for(const n of e.options)r.options.push(t.WeightedVoteOption.fromPartial(n));return r}};const S={};t.DepositParams={encode(e,t=i.default.Writer.create()){for(const r of e.minDeposit)c.Coin.encode(r,t.uint32(10).fork()).ldelim();return void 0!==e.maxDepositPeriod&&s.Duration.encode(e.maxDepositPeriod,t.uint32(18).fork()).ldelim(),t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},S);for(o.minDeposit=[];r.pos>>3){case 1:o.minDeposit.push(c.Coin.decode(r,r.uint32()));break;case 2:o.maxDepositPeriod=s.Duration.decode(r,r.uint32());break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},S);if(t.minDeposit=[],void 0!==e.minDeposit&&null!==e.minDeposit)for(const r of e.minDeposit)t.minDeposit.push(c.Coin.fromJSON(r));return void 0!==e.maxDepositPeriod&&null!==e.maxDepositPeriod?t.maxDepositPeriod=s.Duration.fromJSON(e.maxDepositPeriod):t.maxDepositPeriod=void 0,t},toJSON(e){const t={};return e.minDeposit?t.minDeposit=e.minDeposit.map((e=>e?c.Coin.toJSON(e):void 0)):t.minDeposit=[],void 0!==e.maxDepositPeriod&&(t.maxDepositPeriod=e.maxDepositPeriod?s.Duration.toJSON(e.maxDepositPeriod):void 0),t},fromPartial(e){const t=Object.assign({},S);if(t.minDeposit=[],void 0!==e.minDeposit&&null!==e.minDeposit)for(const r of e.minDeposit)t.minDeposit.push(c.Coin.fromPartial(r));return void 0!==e.maxDepositPeriod&&null!==e.maxDepositPeriod?t.maxDepositPeriod=s.Duration.fromPartial(e.maxDepositPeriod):t.maxDepositPeriod=void 0,t}};const O={};t.VotingParams={encode:(e,t=i.default.Writer.create())=>(void 0!==e.votingPeriod&&s.Duration.encode(e.votingPeriod,t.uint32(10).fork()).ldelim(),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},O);for(;r.pos>>3==1?o.votingPeriod=s.Duration.decode(r,r.uint32()):r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},O);return void 0!==e.votingPeriod&&null!==e.votingPeriod?t.votingPeriod=s.Duration.fromJSON(e.votingPeriod):t.votingPeriod=void 0,t},toJSON(e){const t={};return void 0!==e.votingPeriod&&(t.votingPeriod=e.votingPeriod?s.Duration.toJSON(e.votingPeriod):void 0),t},fromPartial(e){const t=Object.assign({},O);return void 0!==e.votingPeriod&&null!==e.votingPeriod?t.votingPeriod=s.Duration.fromPartial(e.votingPeriod):t.votingPeriod=void 0,t}};const k={};t.TallyParams={encode:(e,t=i.default.Writer.create())=>(0!==e.quorum.length&&t.uint32(10).bytes(e.quorum),0!==e.threshold.length&&t.uint32(18).bytes(e.threshold),0!==e.vetoThreshold.length&&t.uint32(26).bytes(e.vetoThreshold),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},k);for(o.quorum=new Uint8Array,o.threshold=new Uint8Array,o.vetoThreshold=new Uint8Array;r.pos>>3){case 1:o.quorum=r.bytes();break;case 2:o.threshold=r.bytes();break;case 3:o.vetoThreshold=r.bytes();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},k);return t.quorum=new Uint8Array,t.threshold=new Uint8Array,t.vetoThreshold=new Uint8Array,void 0!==e.quorum&&null!==e.quorum&&(t.quorum=M(e.quorum)),void 0!==e.threshold&&null!==e.threshold&&(t.threshold=M(e.threshold)),void 0!==e.vetoThreshold&&null!==e.vetoThreshold&&(t.vetoThreshold=M(e.vetoThreshold)),t},toJSON(e){const t={};return void 0!==e.quorum&&(t.quorum=C(void 0!==e.quorum?e.quorum:new Uint8Array)),void 0!==e.threshold&&(t.threshold=C(void 0!==e.threshold?e.threshold:new Uint8Array)),void 0!==e.vetoThreshold&&(t.vetoThreshold=C(void 0!==e.vetoThreshold?e.vetoThreshold:new Uint8Array)),t},fromPartial(e){const t=Object.assign({},k);return void 0!==e.quorum&&null!==e.quorum?t.quorum=e.quorum:t.quorum=new Uint8Array,void 0!==e.threshold&&null!==e.threshold?t.threshold=e.threshold:t.threshold=new Uint8Array,void 0!==e.vetoThreshold&&null!==e.vetoThreshold?t.vetoThreshold=e.vetoThreshold:t.vetoThreshold=new Uint8Array,t}};var A=(()=>{if(void 0!==A)return A;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==r.g)return r.g;throw"Unable to locate global object"})();const P=A.atob||(e=>A.Buffer.from(e,"base64").toString("binary"));function M(e){const t=P(e),r=new Uint8Array(t.length);for(let e=0;eA.Buffer.from(e,"binary").toString("base64"));function C(e){const t=[];for(const r of e)t.push(String.fromCharCode(r));return E(t.join(""))}function N(e){var t;return{seconds:(t=e.getTime()/1e3,o.default.fromNumber(t)),nanos:e.getTime()%1e3*1e6}}function x(e){let t=1e3*e.seconds.toNumber();return t+=e.nanos/1e6,new Date(t)}function R(e){return e instanceof Date?e:"string"==typeof e?new Date(e):x(u.Timestamp.fromJSON(e))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},56172:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ParamChange=t.ParameterChangeProposal=t.protobufPackage=void 0;const o=n(r(43720)),i=n(r(62100));t.protobufPackage="cosmos.params.v1beta1";const a={title:"",description:""};t.ParameterChangeProposal={encode(e,r=i.default.Writer.create()){""!==e.title&&r.uint32(10).string(e.title),""!==e.description&&r.uint32(18).string(e.description);for(const n of e.changes)t.ParamChange.encode(n,r.uint32(26).fork()).ldelim();return r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const s=Object.assign({},a);for(s.changes=[];n.pos>>3){case 1:s.title=n.string();break;case 2:s.description=n.string();break;case 3:s.changes.push(t.ParamChange.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return s},fromJSON(e){const r=Object.assign({},a);if(r.changes=[],void 0!==e.title&&null!==e.title?r.title=String(e.title):r.title="",void 0!==e.description&&null!==e.description?r.description=String(e.description):r.description="",void 0!==e.changes&&null!==e.changes)for(const n of e.changes)r.changes.push(t.ParamChange.fromJSON(n));return r},toJSON(e){const r={};return void 0!==e.title&&(r.title=e.title),void 0!==e.description&&(r.description=e.description),e.changes?r.changes=e.changes.map((e=>e?t.ParamChange.toJSON(e):void 0)):r.changes=[],r},fromPartial(e){const r=Object.assign({},a);if(r.changes=[],void 0!==e.title&&null!==e.title?r.title=e.title:r.title="",void 0!==e.description&&null!==e.description?r.description=e.description:r.description="",void 0!==e.changes&&null!==e.changes)for(const n of e.changes)r.changes.push(t.ParamChange.fromPartial(n));return r}};const s={subspace:"",key:"",value:""};t.ParamChange={encode:(e,t=i.default.Writer.create())=>(""!==e.subspace&&t.uint32(10).string(e.subspace),""!==e.key&&t.uint32(18).string(e.key),""!==e.value&&t.uint32(26).string(e.value),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},s);for(;r.pos>>3){case 1:o.subspace=r.string();break;case 2:o.key=r.string();break;case 3:o.value=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},s);return void 0!==e.subspace&&null!==e.subspace?t.subspace=String(e.subspace):t.subspace="",void 0!==e.key&&null!==e.key?t.key=String(e.key):t.key="",void 0!==e.value&&null!==e.value?t.value=String(e.value):t.value="",t},toJSON(e){const t={};return void 0!==e.subspace&&(t.subspace=e.subspace),void 0!==e.key&&(t.key=e.key),void 0!==e.value&&(t.value=e.value),t},fromPartial(e){const t=Object.assign({},s);return void 0!==e.subspace&&null!==e.subspace?t.subspace=e.subspace:t.subspace="",void 0!==e.key&&null!==e.key?t.key=e.key:t.key="",void 0!==e.value&&null!==e.value?t.value=e.value:t.value="",t}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},3102:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.SignatureDescriptor_Data_Multi=t.SignatureDescriptor_Data_Single=t.SignatureDescriptor_Data=t.SignatureDescriptor=t.SignatureDescriptors=t.signModeToJSON=t.signModeFromJSON=t.SignMode=t.protobufPackage=void 0;const o=n(r(43720)),i=n(r(62100)),a=r(81596),s=r(95511);var u;function c(e){switch(e){case 0:case"SIGN_MODE_UNSPECIFIED":return u.SIGN_MODE_UNSPECIFIED;case 1:case"SIGN_MODE_DIRECT":return u.SIGN_MODE_DIRECT;case 2:case"SIGN_MODE_TEXTUAL":return u.SIGN_MODE_TEXTUAL;case 127:case"SIGN_MODE_LEGACY_AMINO_JSON":return u.SIGN_MODE_LEGACY_AMINO_JSON;default:return u.UNRECOGNIZED}}function d(e){switch(e){case u.SIGN_MODE_UNSPECIFIED:return"SIGN_MODE_UNSPECIFIED";case u.SIGN_MODE_DIRECT:return"SIGN_MODE_DIRECT";case u.SIGN_MODE_TEXTUAL:return"SIGN_MODE_TEXTUAL";case u.SIGN_MODE_LEGACY_AMINO_JSON:return"SIGN_MODE_LEGACY_AMINO_JSON";default:return"UNKNOWN"}}t.protobufPackage="cosmos.tx.signing.v1beta1",function(e){e[e.SIGN_MODE_UNSPECIFIED=0]="SIGN_MODE_UNSPECIFIED",e[e.SIGN_MODE_DIRECT=1]="SIGN_MODE_DIRECT",e[e.SIGN_MODE_TEXTUAL=2]="SIGN_MODE_TEXTUAL",e[e.SIGN_MODE_LEGACY_AMINO_JSON=127]="SIGN_MODE_LEGACY_AMINO_JSON",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(u=t.SignMode||(t.SignMode={})),t.signModeFromJSON=c,t.signModeToJSON=d;const l={};t.SignatureDescriptors={encode(e,r=i.default.Writer.create()){for(const n of e.signatures)t.SignatureDescriptor.encode(n,r.uint32(10).fork()).ldelim();return r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},l);for(a.signatures=[];n.pos>>3==1?a.signatures.push(t.SignatureDescriptor.decode(n,n.uint32())):n.skipType(7&e)}return a},fromJSON(e){const r=Object.assign({},l);if(r.signatures=[],void 0!==e.signatures&&null!==e.signatures)for(const n of e.signatures)r.signatures.push(t.SignatureDescriptor.fromJSON(n));return r},toJSON(e){const r={};return e.signatures?r.signatures=e.signatures.map((e=>e?t.SignatureDescriptor.toJSON(e):void 0)):r.signatures=[],r},fromPartial(e){const r=Object.assign({},l);if(r.signatures=[],void 0!==e.signatures&&null!==e.signatures)for(const n of e.signatures)r.signatures.push(t.SignatureDescriptor.fromPartial(n));return r}};const f={sequence:o.default.UZERO};t.SignatureDescriptor={encode:(e,r=i.default.Writer.create())=>(void 0!==e.publicKey&&a.Any.encode(e.publicKey,r.uint32(10).fork()).ldelim(),void 0!==e.data&&t.SignatureDescriptor_Data.encode(e.data,r.uint32(18).fork()).ldelim(),e.sequence.isZero()||r.uint32(24).uint64(e.sequence),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const s=Object.assign({},f);for(;n.pos>>3){case 1:s.publicKey=a.Any.decode(n,n.uint32());break;case 2:s.data=t.SignatureDescriptor_Data.decode(n,n.uint32());break;case 3:s.sequence=n.uint64();break;default:n.skipType(7&e)}}return s},fromJSON(e){const r=Object.assign({},f);return void 0!==e.publicKey&&null!==e.publicKey?r.publicKey=a.Any.fromJSON(e.publicKey):r.publicKey=void 0,void 0!==e.data&&null!==e.data?r.data=t.SignatureDescriptor_Data.fromJSON(e.data):r.data=void 0,void 0!==e.sequence&&null!==e.sequence?r.sequence=o.default.fromString(e.sequence):r.sequence=o.default.UZERO,r},toJSON(e){const r={};return void 0!==e.publicKey&&(r.publicKey=e.publicKey?a.Any.toJSON(e.publicKey):void 0),void 0!==e.data&&(r.data=e.data?t.SignatureDescriptor_Data.toJSON(e.data):void 0),void 0!==e.sequence&&(r.sequence=(e.sequence||o.default.UZERO).toString()),r},fromPartial(e){const r=Object.assign({},f);return void 0!==e.publicKey&&null!==e.publicKey?r.publicKey=a.Any.fromPartial(e.publicKey):r.publicKey=void 0,void 0!==e.data&&null!==e.data?r.data=t.SignatureDescriptor_Data.fromPartial(e.data):r.data=void 0,void 0!==e.sequence&&null!==e.sequence?r.sequence=e.sequence:r.sequence=o.default.UZERO,r}};const h={};t.SignatureDescriptor_Data={encode:(e,r=i.default.Writer.create())=>(void 0!==e.single&&t.SignatureDescriptor_Data_Single.encode(e.single,r.uint32(10).fork()).ldelim(),void 0!==e.multi&&t.SignatureDescriptor_Data_Multi.encode(e.multi,r.uint32(18).fork()).ldelim(),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},h);for(;n.pos>>3){case 1:a.single=t.SignatureDescriptor_Data_Single.decode(n,n.uint32());break;case 2:a.multi=t.SignatureDescriptor_Data_Multi.decode(n,n.uint32());break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},h);return void 0!==e.single&&null!==e.single?r.single=t.SignatureDescriptor_Data_Single.fromJSON(e.single):r.single=void 0,void 0!==e.multi&&null!==e.multi?r.multi=t.SignatureDescriptor_Data_Multi.fromJSON(e.multi):r.multi=void 0,r},toJSON(e){const r={};return void 0!==e.single&&(r.single=e.single?t.SignatureDescriptor_Data_Single.toJSON(e.single):void 0),void 0!==e.multi&&(r.multi=e.multi?t.SignatureDescriptor_Data_Multi.toJSON(e.multi):void 0),r},fromPartial(e){const r=Object.assign({},h);return void 0!==e.single&&null!==e.single?r.single=t.SignatureDescriptor_Data_Single.fromPartial(e.single):r.single=void 0,void 0!==e.multi&&null!==e.multi?r.multi=t.SignatureDescriptor_Data_Multi.fromPartial(e.multi):r.multi=void 0,r}};const p={mode:0};t.SignatureDescriptor_Data_Single={encode:(e,t=i.default.Writer.create())=>(0!==e.mode&&t.uint32(8).int32(e.mode),0!==e.signature.length&&t.uint32(18).bytes(e.signature),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},p);for(o.signature=new Uint8Array;r.pos>>3){case 1:o.mode=r.int32();break;case 2:o.signature=r.bytes();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},p);return t.signature=new Uint8Array,void 0!==e.mode&&null!==e.mode?t.mode=c(e.mode):t.mode=0,void 0!==e.signature&&null!==e.signature&&(t.signature=function(e){const t=v(e),r=new Uint8Array(t.length);for(let e=0;e>>3){case 1:a.bitarray=s.CompactBitArray.decode(n,n.uint32());break;case 2:a.signatures.push(t.SignatureDescriptor_Data.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},m);if(r.signatures=[],void 0!==e.bitarray&&null!==e.bitarray?r.bitarray=s.CompactBitArray.fromJSON(e.bitarray):r.bitarray=void 0,void 0!==e.signatures&&null!==e.signatures)for(const n of e.signatures)r.signatures.push(t.SignatureDescriptor_Data.fromJSON(n));return r},toJSON(e){const r={};return void 0!==e.bitarray&&(r.bitarray=e.bitarray?s.CompactBitArray.toJSON(e.bitarray):void 0),e.signatures?r.signatures=e.signatures.map((e=>e?t.SignatureDescriptor_Data.toJSON(e):void 0)):r.signatures=[],r},fromPartial(e){const r=Object.assign({},m);if(r.signatures=[],void 0!==e.bitarray&&null!==e.bitarray?r.bitarray=s.CompactBitArray.fromPartial(e.bitarray):r.bitarray=void 0,void 0!==e.signatures&&null!==e.signatures)for(const n of e.signatures)r.signatures.push(t.SignatureDescriptor_Data.fromPartial(n));return r}};var g=(()=>{if(void 0!==g)return g;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==r.g)return r.g;throw"Unable to locate global object"})();const v=g.atob||(e=>g.Buffer.from(e,"base64").toString("binary")),b=g.btoa||(e=>g.Buffer.from(e,"binary").toString("base64"));i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},95864:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ServiceClientImpl=t.GetTxResponse=t.GetTxRequest=t.SimulateResponse=t.SimulateRequest=t.BroadcastTxResponse=t.BroadcastTxRequest=t.GetTxsEventResponse=t.GetTxsEventRequest=t.broadcastModeToJSON=t.broadcastModeFromJSON=t.BroadcastMode=t.orderByToJSON=t.orderByFromJSON=t.OrderBy=t.protobufPackage=void 0;const o=n(r(43720)),i=n(r(62100)),a=r(75008),s=r(34471),u=r(70547);var c,d;function l(e){switch(e){case 0:case"ORDER_BY_UNSPECIFIED":return c.ORDER_BY_UNSPECIFIED;case 1:case"ORDER_BY_ASC":return c.ORDER_BY_ASC;case 2:case"ORDER_BY_DESC":return c.ORDER_BY_DESC;default:return c.UNRECOGNIZED}}function f(e){switch(e){case c.ORDER_BY_UNSPECIFIED:return"ORDER_BY_UNSPECIFIED";case c.ORDER_BY_ASC:return"ORDER_BY_ASC";case c.ORDER_BY_DESC:return"ORDER_BY_DESC";default:return"UNKNOWN"}}function h(e){switch(e){case 0:case"BROADCAST_MODE_UNSPECIFIED":return d.BROADCAST_MODE_UNSPECIFIED;case 1:case"BROADCAST_MODE_BLOCK":return d.BROADCAST_MODE_BLOCK;case 2:case"BROADCAST_MODE_SYNC":return d.BROADCAST_MODE_SYNC;case 3:case"BROADCAST_MODE_ASYNC":return d.BROADCAST_MODE_ASYNC;default:return d.UNRECOGNIZED}}function p(e){switch(e){case d.BROADCAST_MODE_UNSPECIFIED:return"BROADCAST_MODE_UNSPECIFIED";case d.BROADCAST_MODE_BLOCK:return"BROADCAST_MODE_BLOCK";case d.BROADCAST_MODE_SYNC:return"BROADCAST_MODE_SYNC";case d.BROADCAST_MODE_ASYNC:return"BROADCAST_MODE_ASYNC";default:return"UNKNOWN"}}t.protobufPackage="cosmos.tx.v1beta1",function(e){e[e.ORDER_BY_UNSPECIFIED=0]="ORDER_BY_UNSPECIFIED",e[e.ORDER_BY_ASC=1]="ORDER_BY_ASC",e[e.ORDER_BY_DESC=2]="ORDER_BY_DESC",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(c=t.OrderBy||(t.OrderBy={})),t.orderByFromJSON=l,t.orderByToJSON=f,function(e){e[e.BROADCAST_MODE_UNSPECIFIED=0]="BROADCAST_MODE_UNSPECIFIED",e[e.BROADCAST_MODE_BLOCK=1]="BROADCAST_MODE_BLOCK",e[e.BROADCAST_MODE_SYNC=2]="BROADCAST_MODE_SYNC",e[e.BROADCAST_MODE_ASYNC=3]="BROADCAST_MODE_ASYNC",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(d=t.BroadcastMode||(t.BroadcastMode={})),t.broadcastModeFromJSON=h,t.broadcastModeToJSON=p;const m={events:"",orderBy:0};t.GetTxsEventRequest={encode(e,t=i.default.Writer.create()){for(const r of e.events)t.uint32(10).string(r);return void 0!==e.pagination&&a.PageRequest.encode(e.pagination,t.uint32(18).fork()).ldelim(),0!==e.orderBy&&t.uint32(24).int32(e.orderBy),t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},m);for(o.events=[];r.pos>>3){case 1:o.events.push(r.string());break;case 2:o.pagination=a.PageRequest.decode(r,r.uint32());break;case 3:o.orderBy=r.int32();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},m);if(t.events=[],void 0!==e.events&&null!==e.events)for(const r of e.events)t.events.push(String(r));return void 0!==e.pagination&&null!==e.pagination?t.pagination=a.PageRequest.fromJSON(e.pagination):t.pagination=void 0,void 0!==e.orderBy&&null!==e.orderBy?t.orderBy=l(e.orderBy):t.orderBy=0,t},toJSON(e){const t={};return e.events?t.events=e.events.map((e=>e)):t.events=[],void 0!==e.pagination&&(t.pagination=e.pagination?a.PageRequest.toJSON(e.pagination):void 0),void 0!==e.orderBy&&(t.orderBy=f(e.orderBy)),t},fromPartial(e){const t=Object.assign({},m);if(t.events=[],void 0!==e.events&&null!==e.events)for(const r of e.events)t.events.push(r);return void 0!==e.pagination&&null!==e.pagination?t.pagination=a.PageRequest.fromPartial(e.pagination):t.pagination=void 0,void 0!==e.orderBy&&null!==e.orderBy?t.orderBy=e.orderBy:t.orderBy=0,t}};const g={};t.GetTxsEventResponse={encode(e,t=i.default.Writer.create()){for(const r of e.txs)u.Tx.encode(r,t.uint32(10).fork()).ldelim();for(const r of e.txResponses)s.TxResponse.encode(r,t.uint32(18).fork()).ldelim();return void 0!==e.pagination&&a.PageResponse.encode(e.pagination,t.uint32(26).fork()).ldelim(),t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},g);for(o.txs=[],o.txResponses=[];r.pos>>3){case 1:o.txs.push(u.Tx.decode(r,r.uint32()));break;case 2:o.txResponses.push(s.TxResponse.decode(r,r.uint32()));break;case 3:o.pagination=a.PageResponse.decode(r,r.uint32());break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},g);if(t.txs=[],t.txResponses=[],void 0!==e.txs&&null!==e.txs)for(const r of e.txs)t.txs.push(u.Tx.fromJSON(r));if(void 0!==e.txResponses&&null!==e.txResponses)for(const r of e.txResponses)t.txResponses.push(s.TxResponse.fromJSON(r));return void 0!==e.pagination&&null!==e.pagination?t.pagination=a.PageResponse.fromJSON(e.pagination):t.pagination=void 0,t},toJSON(e){const t={};return e.txs?t.txs=e.txs.map((e=>e?u.Tx.toJSON(e):void 0)):t.txs=[],e.txResponses?t.txResponses=e.txResponses.map((e=>e?s.TxResponse.toJSON(e):void 0)):t.txResponses=[],void 0!==e.pagination&&(t.pagination=e.pagination?a.PageResponse.toJSON(e.pagination):void 0),t},fromPartial(e){const t=Object.assign({},g);if(t.txs=[],t.txResponses=[],void 0!==e.txs&&null!==e.txs)for(const r of e.txs)t.txs.push(u.Tx.fromPartial(r));if(void 0!==e.txResponses&&null!==e.txResponses)for(const r of e.txResponses)t.txResponses.push(s.TxResponse.fromPartial(r));return void 0!==e.pagination&&null!==e.pagination?t.pagination=a.PageResponse.fromPartial(e.pagination):t.pagination=void 0,t}};const v={mode:0};t.BroadcastTxRequest={encode:(e,t=i.default.Writer.create())=>(0!==e.txBytes.length&&t.uint32(10).bytes(e.txBytes),0!==e.mode&&t.uint32(16).int32(e.mode),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},v);for(o.txBytes=new Uint8Array;r.pos>>3){case 1:o.txBytes=r.bytes();break;case 2:o.mode=r.int32();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},v);return t.txBytes=new Uint8Array,void 0!==e.txBytes&&null!==e.txBytes&&(t.txBytes=A(e.txBytes)),void 0!==e.mode&&null!==e.mode?t.mode=h(e.mode):t.mode=0,t},toJSON(e){const t={};return void 0!==e.txBytes&&(t.txBytes=M(void 0!==e.txBytes?e.txBytes:new Uint8Array)),void 0!==e.mode&&(t.mode=p(e.mode)),t},fromPartial(e){const t=Object.assign({},v);return void 0!==e.txBytes&&null!==e.txBytes?t.txBytes=e.txBytes:t.txBytes=new Uint8Array,void 0!==e.mode&&null!==e.mode?t.mode=e.mode:t.mode=0,t}};const b={};t.BroadcastTxResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.txResponse&&s.TxResponse.encode(e.txResponse,t.uint32(10).fork()).ldelim(),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},b);for(;r.pos>>3==1?o.txResponse=s.TxResponse.decode(r,r.uint32()):r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},b);return void 0!==e.txResponse&&null!==e.txResponse?t.txResponse=s.TxResponse.fromJSON(e.txResponse):t.txResponse=void 0,t},toJSON(e){const t={};return void 0!==e.txResponse&&(t.txResponse=e.txResponse?s.TxResponse.toJSON(e.txResponse):void 0),t},fromPartial(e){const t=Object.assign({},b);return void 0!==e.txResponse&&null!==e.txResponse?t.txResponse=s.TxResponse.fromPartial(e.txResponse):t.txResponse=void 0,t}};const y={};t.SimulateRequest={encode:(e,t=i.default.Writer.create())=>(void 0!==e.tx&&u.Tx.encode(e.tx,t.uint32(10).fork()).ldelim(),0!==e.txBytes.length&&t.uint32(18).bytes(e.txBytes),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},y);for(o.txBytes=new Uint8Array;r.pos>>3){case 1:o.tx=u.Tx.decode(r,r.uint32());break;case 2:o.txBytes=r.bytes();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},y);return t.txBytes=new Uint8Array,void 0!==e.tx&&null!==e.tx?t.tx=u.Tx.fromJSON(e.tx):t.tx=void 0,void 0!==e.txBytes&&null!==e.txBytes&&(t.txBytes=A(e.txBytes)),t},toJSON(e){const t={};return void 0!==e.tx&&(t.tx=e.tx?u.Tx.toJSON(e.tx):void 0),void 0!==e.txBytes&&(t.txBytes=M(void 0!==e.txBytes?e.txBytes:new Uint8Array)),t},fromPartial(e){const t=Object.assign({},y);return void 0!==e.tx&&null!==e.tx?t.tx=u.Tx.fromPartial(e.tx):t.tx=void 0,void 0!==e.txBytes&&null!==e.txBytes?t.txBytes=e.txBytes:t.txBytes=new Uint8Array,t}};const w={};t.SimulateResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.gasInfo&&s.GasInfo.encode(e.gasInfo,t.uint32(10).fork()).ldelim(),void 0!==e.result&&s.Result.encode(e.result,t.uint32(18).fork()).ldelim(),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},w);for(;r.pos>>3){case 1:o.gasInfo=s.GasInfo.decode(r,r.uint32());break;case 2:o.result=s.Result.decode(r,r.uint32());break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},w);return void 0!==e.gasInfo&&null!==e.gasInfo?t.gasInfo=s.GasInfo.fromJSON(e.gasInfo):t.gasInfo=void 0,void 0!==e.result&&null!==e.result?t.result=s.Result.fromJSON(e.result):t.result=void 0,t},toJSON(e){const t={};return void 0!==e.gasInfo&&(t.gasInfo=e.gasInfo?s.GasInfo.toJSON(e.gasInfo):void 0),void 0!==e.result&&(t.result=e.result?s.Result.toJSON(e.result):void 0),t},fromPartial(e){const t=Object.assign({},w);return void 0!==e.gasInfo&&null!==e.gasInfo?t.gasInfo=s.GasInfo.fromPartial(e.gasInfo):t.gasInfo=void 0,void 0!==e.result&&null!==e.result?t.result=s.Result.fromPartial(e.result):t.result=void 0,t}};const _={hash:""};t.GetTxRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.hash&&t.uint32(10).string(e.hash),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},_);for(;r.pos>>3==1?o.hash=r.string():r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},_);return void 0!==e.hash&&null!==e.hash?t.hash=String(e.hash):t.hash="",t},toJSON(e){const t={};return void 0!==e.hash&&(t.hash=e.hash),t},fromPartial(e){const t=Object.assign({},_);return void 0!==e.hash&&null!==e.hash?t.hash=e.hash:t.hash="",t}};const S={};t.GetTxResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.tx&&u.Tx.encode(e.tx,t.uint32(10).fork()).ldelim(),void 0!==e.txResponse&&s.TxResponse.encode(e.txResponse,t.uint32(18).fork()).ldelim(),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},S);for(;r.pos>>3){case 1:o.tx=u.Tx.decode(r,r.uint32());break;case 2:o.txResponse=s.TxResponse.decode(r,r.uint32());break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},S);return void 0!==e.tx&&null!==e.tx?t.tx=u.Tx.fromJSON(e.tx):t.tx=void 0,void 0!==e.txResponse&&null!==e.txResponse?t.txResponse=s.TxResponse.fromJSON(e.txResponse):t.txResponse=void 0,t},toJSON(e){const t={};return void 0!==e.tx&&(t.tx=e.tx?u.Tx.toJSON(e.tx):void 0),void 0!==e.txResponse&&(t.txResponse=e.txResponse?s.TxResponse.toJSON(e.txResponse):void 0),t},fromPartial(e){const t=Object.assign({},S);return void 0!==e.tx&&null!==e.tx?t.tx=u.Tx.fromPartial(e.tx):t.tx=void 0,void 0!==e.txResponse&&null!==e.txResponse?t.txResponse=s.TxResponse.fromPartial(e.txResponse):t.txResponse=void 0,t}},t.ServiceClientImpl=class{constructor(e){this.rpc=e,this.Simulate=this.Simulate.bind(this),this.GetTx=this.GetTx.bind(this),this.BroadcastTx=this.BroadcastTx.bind(this),this.GetTxsEvent=this.GetTxsEvent.bind(this)}Simulate(e){const r=t.SimulateRequest.encode(e).finish();return this.rpc.request("cosmos.tx.v1beta1.Service","Simulate",r).then((e=>t.SimulateResponse.decode(new i.default.Reader(e))))}GetTx(e){const r=t.GetTxRequest.encode(e).finish();return this.rpc.request("cosmos.tx.v1beta1.Service","GetTx",r).then((e=>t.GetTxResponse.decode(new i.default.Reader(e))))}BroadcastTx(e){const r=t.BroadcastTxRequest.encode(e).finish();return this.rpc.request("cosmos.tx.v1beta1.Service","BroadcastTx",r).then((e=>t.BroadcastTxResponse.decode(new i.default.Reader(e))))}GetTxsEvent(e){const r=t.GetTxsEventRequest.encode(e).finish();return this.rpc.request("cosmos.tx.v1beta1.Service","GetTxsEvent",r).then((e=>t.GetTxsEventResponse.decode(new i.default.Reader(e))))}};var O=(()=>{if(void 0!==O)return O;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==r.g)return r.g;throw"Unable to locate global object"})();const k=O.atob||(e=>O.Buffer.from(e,"base64").toString("binary"));function A(e){const t=k(e),r=new Uint8Array(t.length);for(let e=0;eO.Buffer.from(e,"binary").toString("base64"));function M(e){const t=[];for(const r of e)t.push(String.fromCharCode(r));return P(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},70547:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Fee=t.ModeInfo_Multi=t.ModeInfo_Single=t.ModeInfo=t.SignerInfo=t.AuthInfo=t.TxBody=t.SignDoc=t.TxRaw=t.Tx=t.protobufPackage=void 0;const o=n(r(43720)),i=n(r(62100)),a=r(81596),s=r(3102),u=r(95511),c=r(90557);t.protobufPackage="cosmos.tx.v1beta1";const d={};t.Tx={encode(e,r=i.default.Writer.create()){void 0!==e.body&&t.TxBody.encode(e.body,r.uint32(10).fork()).ldelim(),void 0!==e.authInfo&&t.AuthInfo.encode(e.authInfo,r.uint32(18).fork()).ldelim();for(const t of e.signatures)r.uint32(26).bytes(t);return r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},d);for(a.signatures=[];n.pos>>3){case 1:a.body=t.TxBody.decode(n,n.uint32());break;case 2:a.authInfo=t.AuthInfo.decode(n,n.uint32());break;case 3:a.signatures.push(n.bytes());break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},d);if(r.signatures=[],void 0!==e.body&&null!==e.body?r.body=t.TxBody.fromJSON(e.body):r.body=void 0,void 0!==e.authInfo&&null!==e.authInfo?r.authInfo=t.AuthInfo.fromJSON(e.authInfo):r.authInfo=void 0,void 0!==e.signatures&&null!==e.signatures)for(const t of e.signatures)r.signatures.push(S(t));return r},toJSON(e){const r={};return void 0!==e.body&&(r.body=e.body?t.TxBody.toJSON(e.body):void 0),void 0!==e.authInfo&&(r.authInfo=e.authInfo?t.AuthInfo.toJSON(e.authInfo):void 0),e.signatures?r.signatures=e.signatures.map((e=>k(void 0!==e?e:new Uint8Array))):r.signatures=[],r},fromPartial(e){const r=Object.assign({},d);if(r.signatures=[],void 0!==e.body&&null!==e.body?r.body=t.TxBody.fromPartial(e.body):r.body=void 0,void 0!==e.authInfo&&null!==e.authInfo?r.authInfo=t.AuthInfo.fromPartial(e.authInfo):r.authInfo=void 0,void 0!==e.signatures&&null!==e.signatures)for(const t of e.signatures)r.signatures.push(t);return r}};const l={};t.TxRaw={encode(e,t=i.default.Writer.create()){0!==e.bodyBytes.length&&t.uint32(10).bytes(e.bodyBytes),0!==e.authInfoBytes.length&&t.uint32(18).bytes(e.authInfoBytes);for(const r of e.signatures)t.uint32(26).bytes(r);return t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},l);for(o.signatures=[],o.bodyBytes=new Uint8Array,o.authInfoBytes=new Uint8Array;r.pos>>3){case 1:o.bodyBytes=r.bytes();break;case 2:o.authInfoBytes=r.bytes();break;case 3:o.signatures.push(r.bytes());break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},l);if(t.signatures=[],t.bodyBytes=new Uint8Array,t.authInfoBytes=new Uint8Array,void 0!==e.bodyBytes&&null!==e.bodyBytes&&(t.bodyBytes=S(e.bodyBytes)),void 0!==e.authInfoBytes&&null!==e.authInfoBytes&&(t.authInfoBytes=S(e.authInfoBytes)),void 0!==e.signatures&&null!==e.signatures)for(const r of e.signatures)t.signatures.push(S(r));return t},toJSON(e){const t={};return void 0!==e.bodyBytes&&(t.bodyBytes=k(void 0!==e.bodyBytes?e.bodyBytes:new Uint8Array)),void 0!==e.authInfoBytes&&(t.authInfoBytes=k(void 0!==e.authInfoBytes?e.authInfoBytes:new Uint8Array)),e.signatures?t.signatures=e.signatures.map((e=>k(void 0!==e?e:new Uint8Array))):t.signatures=[],t},fromPartial(e){const t=Object.assign({},l);if(t.signatures=[],void 0!==e.bodyBytes&&null!==e.bodyBytes?t.bodyBytes=e.bodyBytes:t.bodyBytes=new Uint8Array,void 0!==e.authInfoBytes&&null!==e.authInfoBytes?t.authInfoBytes=e.authInfoBytes:t.authInfoBytes=new Uint8Array,void 0!==e.signatures&&null!==e.signatures)for(const r of e.signatures)t.signatures.push(r);return t}};const f={chainId:"",accountNumber:o.default.UZERO};t.SignDoc={encode:(e,t=i.default.Writer.create())=>(0!==e.bodyBytes.length&&t.uint32(10).bytes(e.bodyBytes),0!==e.authInfoBytes.length&&t.uint32(18).bytes(e.authInfoBytes),""!==e.chainId&&t.uint32(26).string(e.chainId),e.accountNumber.isZero()||t.uint32(32).uint64(e.accountNumber),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},f);for(o.bodyBytes=new Uint8Array,o.authInfoBytes=new Uint8Array;r.pos>>3){case 1:o.bodyBytes=r.bytes();break;case 2:o.authInfoBytes=r.bytes();break;case 3:o.chainId=r.string();break;case 4:o.accountNumber=r.uint64();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},f);return t.bodyBytes=new Uint8Array,t.authInfoBytes=new Uint8Array,void 0!==e.bodyBytes&&null!==e.bodyBytes&&(t.bodyBytes=S(e.bodyBytes)),void 0!==e.authInfoBytes&&null!==e.authInfoBytes&&(t.authInfoBytes=S(e.authInfoBytes)),void 0!==e.chainId&&null!==e.chainId?t.chainId=String(e.chainId):t.chainId="",void 0!==e.accountNumber&&null!==e.accountNumber?t.accountNumber=o.default.fromString(e.accountNumber):t.accountNumber=o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.bodyBytes&&(t.bodyBytes=k(void 0!==e.bodyBytes?e.bodyBytes:new Uint8Array)),void 0!==e.authInfoBytes&&(t.authInfoBytes=k(void 0!==e.authInfoBytes?e.authInfoBytes:new Uint8Array)),void 0!==e.chainId&&(t.chainId=e.chainId),void 0!==e.accountNumber&&(t.accountNumber=(e.accountNumber||o.default.UZERO).toString()),t},fromPartial(e){const t=Object.assign({},f);return void 0!==e.bodyBytes&&null!==e.bodyBytes?t.bodyBytes=e.bodyBytes:t.bodyBytes=new Uint8Array,void 0!==e.authInfoBytes&&null!==e.authInfoBytes?t.authInfoBytes=e.authInfoBytes:t.authInfoBytes=new Uint8Array,void 0!==e.chainId&&null!==e.chainId?t.chainId=e.chainId:t.chainId="",void 0!==e.accountNumber&&null!==e.accountNumber?t.accountNumber=e.accountNumber:t.accountNumber=o.default.UZERO,t}};const h={memo:"",timeoutHeight:o.default.UZERO};t.TxBody={encode(e,t=i.default.Writer.create()){for(const r of e.messages)a.Any.encode(r,t.uint32(10).fork()).ldelim();""!==e.memo&&t.uint32(18).string(e.memo),e.timeoutHeight.isZero()||t.uint32(24).uint64(e.timeoutHeight);for(const r of e.extensionOptions)a.Any.encode(r,t.uint32(8186).fork()).ldelim();for(const r of e.nonCriticalExtensionOptions)a.Any.encode(r,t.uint32(16378).fork()).ldelim();return t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},h);for(o.messages=[],o.extensionOptions=[],o.nonCriticalExtensionOptions=[];r.pos>>3){case 1:o.messages.push(a.Any.decode(r,r.uint32()));break;case 2:o.memo=r.string();break;case 3:o.timeoutHeight=r.uint64();break;case 1023:o.extensionOptions.push(a.Any.decode(r,r.uint32()));break;case 2047:o.nonCriticalExtensionOptions.push(a.Any.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},h);if(t.messages=[],t.extensionOptions=[],t.nonCriticalExtensionOptions=[],void 0!==e.messages&&null!==e.messages)for(const r of e.messages)t.messages.push(a.Any.fromJSON(r));if(void 0!==e.memo&&null!==e.memo?t.memo=String(e.memo):t.memo="",void 0!==e.timeoutHeight&&null!==e.timeoutHeight?t.timeoutHeight=o.default.fromString(e.timeoutHeight):t.timeoutHeight=o.default.UZERO,void 0!==e.extensionOptions&&null!==e.extensionOptions)for(const r of e.extensionOptions)t.extensionOptions.push(a.Any.fromJSON(r));if(void 0!==e.nonCriticalExtensionOptions&&null!==e.nonCriticalExtensionOptions)for(const r of e.nonCriticalExtensionOptions)t.nonCriticalExtensionOptions.push(a.Any.fromJSON(r));return t},toJSON(e){const t={};return e.messages?t.messages=e.messages.map((e=>e?a.Any.toJSON(e):void 0)):t.messages=[],void 0!==e.memo&&(t.memo=e.memo),void 0!==e.timeoutHeight&&(t.timeoutHeight=(e.timeoutHeight||o.default.UZERO).toString()),e.extensionOptions?t.extensionOptions=e.extensionOptions.map((e=>e?a.Any.toJSON(e):void 0)):t.extensionOptions=[],e.nonCriticalExtensionOptions?t.nonCriticalExtensionOptions=e.nonCriticalExtensionOptions.map((e=>e?a.Any.toJSON(e):void 0)):t.nonCriticalExtensionOptions=[],t},fromPartial(e){const t=Object.assign({},h);if(t.messages=[],t.extensionOptions=[],t.nonCriticalExtensionOptions=[],void 0!==e.messages&&null!==e.messages)for(const r of e.messages)t.messages.push(a.Any.fromPartial(r));if(void 0!==e.memo&&null!==e.memo?t.memo=e.memo:t.memo="",void 0!==e.timeoutHeight&&null!==e.timeoutHeight?t.timeoutHeight=e.timeoutHeight:t.timeoutHeight=o.default.UZERO,void 0!==e.extensionOptions&&null!==e.extensionOptions)for(const r of e.extensionOptions)t.extensionOptions.push(a.Any.fromPartial(r));if(void 0!==e.nonCriticalExtensionOptions&&null!==e.nonCriticalExtensionOptions)for(const r of e.nonCriticalExtensionOptions)t.nonCriticalExtensionOptions.push(a.Any.fromPartial(r));return t}};const p={};t.AuthInfo={encode(e,r=i.default.Writer.create()){for(const n of e.signerInfos)t.SignerInfo.encode(n,r.uint32(10).fork()).ldelim();return void 0!==e.fee&&t.Fee.encode(e.fee,r.uint32(18).fork()).ldelim(),r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},p);for(a.signerInfos=[];n.pos>>3){case 1:a.signerInfos.push(t.SignerInfo.decode(n,n.uint32()));break;case 2:a.fee=t.Fee.decode(n,n.uint32());break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},p);if(r.signerInfos=[],void 0!==e.signerInfos&&null!==e.signerInfos)for(const n of e.signerInfos)r.signerInfos.push(t.SignerInfo.fromJSON(n));return void 0!==e.fee&&null!==e.fee?r.fee=t.Fee.fromJSON(e.fee):r.fee=void 0,r},toJSON(e){const r={};return e.signerInfos?r.signerInfos=e.signerInfos.map((e=>e?t.SignerInfo.toJSON(e):void 0)):r.signerInfos=[],void 0!==e.fee&&(r.fee=e.fee?t.Fee.toJSON(e.fee):void 0),r},fromPartial(e){const r=Object.assign({},p);if(r.signerInfos=[],void 0!==e.signerInfos&&null!==e.signerInfos)for(const n of e.signerInfos)r.signerInfos.push(t.SignerInfo.fromPartial(n));return void 0!==e.fee&&null!==e.fee?r.fee=t.Fee.fromPartial(e.fee):r.fee=void 0,r}};const m={sequence:o.default.UZERO};t.SignerInfo={encode:(e,r=i.default.Writer.create())=>(void 0!==e.publicKey&&a.Any.encode(e.publicKey,r.uint32(10).fork()).ldelim(),void 0!==e.modeInfo&&t.ModeInfo.encode(e.modeInfo,r.uint32(18).fork()).ldelim(),e.sequence.isZero()||r.uint32(24).uint64(e.sequence),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const s=Object.assign({},m);for(;n.pos>>3){case 1:s.publicKey=a.Any.decode(n,n.uint32());break;case 2:s.modeInfo=t.ModeInfo.decode(n,n.uint32());break;case 3:s.sequence=n.uint64();break;default:n.skipType(7&e)}}return s},fromJSON(e){const r=Object.assign({},m);return void 0!==e.publicKey&&null!==e.publicKey?r.publicKey=a.Any.fromJSON(e.publicKey):r.publicKey=void 0,void 0!==e.modeInfo&&null!==e.modeInfo?r.modeInfo=t.ModeInfo.fromJSON(e.modeInfo):r.modeInfo=void 0,void 0!==e.sequence&&null!==e.sequence?r.sequence=o.default.fromString(e.sequence):r.sequence=o.default.UZERO,r},toJSON(e){const r={};return void 0!==e.publicKey&&(r.publicKey=e.publicKey?a.Any.toJSON(e.publicKey):void 0),void 0!==e.modeInfo&&(r.modeInfo=e.modeInfo?t.ModeInfo.toJSON(e.modeInfo):void 0),void 0!==e.sequence&&(r.sequence=(e.sequence||o.default.UZERO).toString()),r},fromPartial(e){const r=Object.assign({},m);return void 0!==e.publicKey&&null!==e.publicKey?r.publicKey=a.Any.fromPartial(e.publicKey):r.publicKey=void 0,void 0!==e.modeInfo&&null!==e.modeInfo?r.modeInfo=t.ModeInfo.fromPartial(e.modeInfo):r.modeInfo=void 0,void 0!==e.sequence&&null!==e.sequence?r.sequence=e.sequence:r.sequence=o.default.UZERO,r}};const g={};t.ModeInfo={encode:(e,r=i.default.Writer.create())=>(void 0!==e.single&&t.ModeInfo_Single.encode(e.single,r.uint32(10).fork()).ldelim(),void 0!==e.multi&&t.ModeInfo_Multi.encode(e.multi,r.uint32(18).fork()).ldelim(),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},g);for(;n.pos>>3){case 1:a.single=t.ModeInfo_Single.decode(n,n.uint32());break;case 2:a.multi=t.ModeInfo_Multi.decode(n,n.uint32());break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},g);return void 0!==e.single&&null!==e.single?r.single=t.ModeInfo_Single.fromJSON(e.single):r.single=void 0,void 0!==e.multi&&null!==e.multi?r.multi=t.ModeInfo_Multi.fromJSON(e.multi):r.multi=void 0,r},toJSON(e){const r={};return void 0!==e.single&&(r.single=e.single?t.ModeInfo_Single.toJSON(e.single):void 0),void 0!==e.multi&&(r.multi=e.multi?t.ModeInfo_Multi.toJSON(e.multi):void 0),r},fromPartial(e){const r=Object.assign({},g);return void 0!==e.single&&null!==e.single?r.single=t.ModeInfo_Single.fromPartial(e.single):r.single=void 0,void 0!==e.multi&&null!==e.multi?r.multi=t.ModeInfo_Multi.fromPartial(e.multi):r.multi=void 0,r}};const v={mode:0};t.ModeInfo_Single={encode:(e,t=i.default.Writer.create())=>(0!==e.mode&&t.uint32(8).int32(e.mode),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},v);for(;r.pos>>3==1?o.mode=r.int32():r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},v);return void 0!==e.mode&&null!==e.mode?t.mode=s.signModeFromJSON(e.mode):t.mode=0,t},toJSON(e){const t={};return void 0!==e.mode&&(t.mode=s.signModeToJSON(e.mode)),t},fromPartial(e){const t=Object.assign({},v);return void 0!==e.mode&&null!==e.mode?t.mode=e.mode:t.mode=0,t}};const b={};t.ModeInfo_Multi={encode(e,r=i.default.Writer.create()){void 0!==e.bitarray&&u.CompactBitArray.encode(e.bitarray,r.uint32(10).fork()).ldelim();for(const n of e.modeInfos)t.ModeInfo.encode(n,r.uint32(18).fork()).ldelim();return r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},b);for(a.modeInfos=[];n.pos>>3){case 1:a.bitarray=u.CompactBitArray.decode(n,n.uint32());break;case 2:a.modeInfos.push(t.ModeInfo.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},b);if(r.modeInfos=[],void 0!==e.bitarray&&null!==e.bitarray?r.bitarray=u.CompactBitArray.fromJSON(e.bitarray):r.bitarray=void 0,void 0!==e.modeInfos&&null!==e.modeInfos)for(const n of e.modeInfos)r.modeInfos.push(t.ModeInfo.fromJSON(n));return r},toJSON(e){const r={};return void 0!==e.bitarray&&(r.bitarray=e.bitarray?u.CompactBitArray.toJSON(e.bitarray):void 0),e.modeInfos?r.modeInfos=e.modeInfos.map((e=>e?t.ModeInfo.toJSON(e):void 0)):r.modeInfos=[],r},fromPartial(e){const r=Object.assign({},b);if(r.modeInfos=[],void 0!==e.bitarray&&null!==e.bitarray?r.bitarray=u.CompactBitArray.fromPartial(e.bitarray):r.bitarray=void 0,void 0!==e.modeInfos&&null!==e.modeInfos)for(const n of e.modeInfos)r.modeInfos.push(t.ModeInfo.fromPartial(n));return r}};const y={gasLimit:o.default.UZERO,payer:"",granter:""};t.Fee={encode(e,t=i.default.Writer.create()){for(const r of e.amount)c.Coin.encode(r,t.uint32(10).fork()).ldelim();return e.gasLimit.isZero()||t.uint32(16).uint64(e.gasLimit),""!==e.payer&&t.uint32(26).string(e.payer),""!==e.granter&&t.uint32(34).string(e.granter),t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},y);for(o.amount=[];r.pos>>3){case 1:o.amount.push(c.Coin.decode(r,r.uint32()));break;case 2:o.gasLimit=r.uint64();break;case 3:o.payer=r.string();break;case 4:o.granter=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},y);if(t.amount=[],void 0!==e.amount&&null!==e.amount)for(const r of e.amount)t.amount.push(c.Coin.fromJSON(r));return void 0!==e.gasLimit&&null!==e.gasLimit?t.gasLimit=o.default.fromString(e.gasLimit):t.gasLimit=o.default.UZERO,void 0!==e.payer&&null!==e.payer?t.payer=String(e.payer):t.payer="",void 0!==e.granter&&null!==e.granter?t.granter=String(e.granter):t.granter="",t},toJSON(e){const t={};return e.amount?t.amount=e.amount.map((e=>e?c.Coin.toJSON(e):void 0)):t.amount=[],void 0!==e.gasLimit&&(t.gasLimit=(e.gasLimit||o.default.UZERO).toString()),void 0!==e.payer&&(t.payer=e.payer),void 0!==e.granter&&(t.granter=e.granter),t},fromPartial(e){const t=Object.assign({},y);if(t.amount=[],void 0!==e.amount&&null!==e.amount)for(const r of e.amount)t.amount.push(c.Coin.fromPartial(r));return void 0!==e.gasLimit&&null!==e.gasLimit?t.gasLimit=e.gasLimit:t.gasLimit=o.default.UZERO,void 0!==e.payer&&null!==e.payer?t.payer=e.payer:t.payer="",void 0!==e.granter&&null!==e.granter?t.granter=e.granter:t.granter="",t}};var w=(()=>{if(void 0!==w)return w;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==r.g)return r.g;throw"Unable to locate global object"})();const _=w.atob||(e=>w.Buffer.from(e,"base64").toString("binary"));function S(e){const t=_(e),r=new Uint8Array(t.length);for(let e=0;ew.Buffer.from(e,"binary").toString("base64"));function k(e){const t=[];for(const r of e)t.push(String.fromCharCode(r));return O(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},15056:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ModuleVersion=t.CancelSoftwareUpgradeProposal=t.SoftwareUpgradeProposal=t.Plan=t.protobufPackage=void 0;const o=n(r(43720)),i=n(r(62100)),a=r(81596),s=r(88652);t.protobufPackage="cosmos.upgrade.v1beta1";const u={name:"",height:o.default.ZERO,info:""};t.Plan={encode:(e,t=i.default.Writer.create())=>{return""!==e.name&&t.uint32(10).string(e.name),void 0!==e.time&&s.Timestamp.encode((r=e.time,{seconds:(n=r.getTime()/1e3,o.default.fromNumber(n)),nanos:r.getTime()%1e3*1e6}),t.uint32(18).fork()).ldelim(),e.height.isZero()||t.uint32(24).int64(e.height),""!==e.info&&t.uint32(34).string(e.info),void 0!==e.upgradedClientState&&a.Any.encode(e.upgradedClientState,t.uint32(42).fork()).ldelim(),t;var r,n},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},u);for(;r.pos>>3){case 1:o.name=r.string();break;case 2:o.time=f(s.Timestamp.decode(r,r.uint32()));break;case 3:o.height=r.int64();break;case 4:o.info=r.string();break;case 5:o.upgradedClientState=a.Any.decode(r,r.uint32());break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},u);var r;return void 0!==e.name&&null!==e.name?t.name=String(e.name):t.name="",void 0!==e.time&&null!==e.time?t.time=(r=e.time)instanceof Date?r:"string"==typeof r?new Date(r):f(s.Timestamp.fromJSON(r)):t.time=void 0,void 0!==e.height&&null!==e.height?t.height=o.default.fromString(e.height):t.height=o.default.ZERO,void 0!==e.info&&null!==e.info?t.info=String(e.info):t.info="",void 0!==e.upgradedClientState&&null!==e.upgradedClientState?t.upgradedClientState=a.Any.fromJSON(e.upgradedClientState):t.upgradedClientState=void 0,t},toJSON(e){const t={};return void 0!==e.name&&(t.name=e.name),void 0!==e.time&&(t.time=e.time.toISOString()),void 0!==e.height&&(t.height=(e.height||o.default.ZERO).toString()),void 0!==e.info&&(t.info=e.info),void 0!==e.upgradedClientState&&(t.upgradedClientState=e.upgradedClientState?a.Any.toJSON(e.upgradedClientState):void 0),t},fromPartial(e){const t=Object.assign({},u);return void 0!==e.name&&null!==e.name?t.name=e.name:t.name="",void 0!==e.time&&null!==e.time?t.time=e.time:t.time=void 0,void 0!==e.height&&null!==e.height?t.height=e.height:t.height=o.default.ZERO,void 0!==e.info&&null!==e.info?t.info=e.info:t.info="",void 0!==e.upgradedClientState&&null!==e.upgradedClientState?t.upgradedClientState=a.Any.fromPartial(e.upgradedClientState):t.upgradedClientState=void 0,t}};const c={title:"",description:""};t.SoftwareUpgradeProposal={encode:(e,r=i.default.Writer.create())=>(""!==e.title&&r.uint32(10).string(e.title),""!==e.description&&r.uint32(18).string(e.description),void 0!==e.plan&&t.Plan.encode(e.plan,r.uint32(26).fork()).ldelim(),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},c);for(;n.pos>>3){case 1:a.title=n.string();break;case 2:a.description=n.string();break;case 3:a.plan=t.Plan.decode(n,n.uint32());break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},c);return void 0!==e.title&&null!==e.title?r.title=String(e.title):r.title="",void 0!==e.description&&null!==e.description?r.description=String(e.description):r.description="",void 0!==e.plan&&null!==e.plan?r.plan=t.Plan.fromJSON(e.plan):r.plan=void 0,r},toJSON(e){const r={};return void 0!==e.title&&(r.title=e.title),void 0!==e.description&&(r.description=e.description),void 0!==e.plan&&(r.plan=e.plan?t.Plan.toJSON(e.plan):void 0),r},fromPartial(e){const r=Object.assign({},c);return void 0!==e.title&&null!==e.title?r.title=e.title:r.title="",void 0!==e.description&&null!==e.description?r.description=e.description:r.description="",void 0!==e.plan&&null!==e.plan?r.plan=t.Plan.fromPartial(e.plan):r.plan=void 0,r}};const d={title:"",description:""};t.CancelSoftwareUpgradeProposal={encode:(e,t=i.default.Writer.create())=>(""!==e.title&&t.uint32(10).string(e.title),""!==e.description&&t.uint32(18).string(e.description),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},d);for(;r.pos>>3){case 1:o.title=r.string();break;case 2:o.description=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},d);return void 0!==e.title&&null!==e.title?t.title=String(e.title):t.title="",void 0!==e.description&&null!==e.description?t.description=String(e.description):t.description="",t},toJSON(e){const t={};return void 0!==e.title&&(t.title=e.title),void 0!==e.description&&(t.description=e.description),t},fromPartial(e){const t=Object.assign({},d);return void 0!==e.title&&null!==e.title?t.title=e.title:t.title="",void 0!==e.description&&null!==e.description?t.description=e.description:t.description="",t}};const l={name:"",version:o.default.UZERO};function f(e){let t=1e3*e.seconds.toNumber();return t+=e.nanos/1e6,new Date(t)}t.ModuleVersion={encode:(e,t=i.default.Writer.create())=>(""!==e.name&&t.uint32(10).string(e.name),e.version.isZero()||t.uint32(16).uint64(e.version),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},l);for(;r.pos>>3){case 1:o.name=r.string();break;case 2:o.version=r.uint64();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},l);return void 0!==e.name&&null!==e.name?t.name=String(e.name):t.name="",void 0!==e.version&&null!==e.version?t.version=o.default.fromString(e.version):t.version=o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.name&&(t.name=e.name),void 0!==e.version&&(t.version=(e.version||o.default.UZERO).toString()),t},fromPartial(e){const t=Object.assign({},l);return void 0!==e.name&&null!==e.name?t.name=e.name:t.name="",void 0!==e.version&&null!==e.version?t.version=e.version:t.version=o.default.UZERO,t}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},12628:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.BaseVestingAccount=t.protobufPackage=void 0;const o=n(r(43720)),i=n(r(62100)),a=r(23375),s=r(90557);t.protobufPackage="cosmos.vesting.v1beta1";const u={endTime:o.default.ZERO};t.BaseVestingAccount={encode(e,t=i.default.Writer.create()){void 0!==e.baseAccount&&a.BaseAccount.encode(e.baseAccount,t.uint32(10).fork()).ldelim();for(const r of e.originalVesting)s.Coin.encode(r,t.uint32(18).fork()).ldelim();for(const r of e.delegatedFree)s.Coin.encode(r,t.uint32(26).fork()).ldelim();for(const r of e.delegatedVesting)s.Coin.encode(r,t.uint32(34).fork()).ldelim();return e.endTime.isZero()||t.uint32(40).int64(e.endTime),t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},u);for(o.originalVesting=[],o.delegatedFree=[],o.delegatedVesting=[];r.pos>>3){case 1:o.baseAccount=a.BaseAccount.decode(r,r.uint32());break;case 2:o.originalVesting.push(s.Coin.decode(r,r.uint32()));break;case 3:o.delegatedFree.push(s.Coin.decode(r,r.uint32()));break;case 4:o.delegatedVesting.push(s.Coin.decode(r,r.uint32()));break;case 5:o.endTime=r.int64();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},u);if(t.originalVesting=[],t.delegatedFree=[],t.delegatedVesting=[],void 0!==e.baseAccount&&null!==e.baseAccount?t.baseAccount=a.BaseAccount.fromJSON(e.baseAccount):t.baseAccount=void 0,void 0!==e.originalVesting&&null!==e.originalVesting)for(const r of e.originalVesting)t.originalVesting.push(s.Coin.fromJSON(r));if(void 0!==e.delegatedFree&&null!==e.delegatedFree)for(const r of e.delegatedFree)t.delegatedFree.push(s.Coin.fromJSON(r));if(void 0!==e.delegatedVesting&&null!==e.delegatedVesting)for(const r of e.delegatedVesting)t.delegatedVesting.push(s.Coin.fromJSON(r));return void 0!==e.endTime&&null!==e.endTime?t.endTime=o.default.fromString(e.endTime):t.endTime=o.default.ZERO,t},toJSON(e){const t={};return void 0!==e.baseAccount&&(t.baseAccount=e.baseAccount?a.BaseAccount.toJSON(e.baseAccount):void 0),e.originalVesting?t.originalVesting=e.originalVesting.map((e=>e?s.Coin.toJSON(e):void 0)):t.originalVesting=[],e.delegatedFree?t.delegatedFree=e.delegatedFree.map((e=>e?s.Coin.toJSON(e):void 0)):t.delegatedFree=[],e.delegatedVesting?t.delegatedVesting=e.delegatedVesting.map((e=>e?s.Coin.toJSON(e):void 0)):t.delegatedVesting=[],void 0!==e.endTime&&(t.endTime=(e.endTime||o.default.ZERO).toString()),t},fromPartial(e){const t=Object.assign({},u);if(t.originalVesting=[],t.delegatedFree=[],t.delegatedVesting=[],void 0!==e.baseAccount&&null!==e.baseAccount?t.baseAccount=a.BaseAccount.fromPartial(e.baseAccount):t.baseAccount=void 0,void 0!==e.originalVesting&&null!==e.originalVesting)for(const r of e.originalVesting)t.originalVesting.push(s.Coin.fromPartial(r));if(void 0!==e.delegatedFree&&null!==e.delegatedFree)for(const r of e.delegatedFree)t.delegatedFree.push(s.Coin.fromPartial(r));if(void 0!==e.delegatedVesting&&null!==e.delegatedVesting)for(const r of e.delegatedVesting)t.delegatedVesting.push(s.Coin.fromPartial(r));return void 0!==e.endTime&&null!==e.endTime?t.endTime=e.endTime:t.endTime=o.default.ZERO,t}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},81596:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Any=t.protobufPackage=void 0;const o=n(r(43720)),i=n(r(62100));t.protobufPackage="google.protobuf";const a={typeUrl:""};t.Any={encode:(e,t=i.default.Writer.create())=>(""!==e.typeUrl&&t.uint32(10).string(e.typeUrl),0!==e.value.length&&t.uint32(18).bytes(e.value),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},a);for(o.value=new Uint8Array;r.pos>>3){case 1:o.typeUrl=r.string();break;case 2:o.value=r.bytes();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},a);return t.value=new Uint8Array,void 0!==e.typeUrl&&null!==e.typeUrl?t.typeUrl=String(e.typeUrl):t.typeUrl="",void 0!==e.value&&null!==e.value&&(t.value=function(e){const t=u(e),r=new Uint8Array(t.length);for(let e=0;e{if(void 0!==s)return s;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==r.g)return r.g;throw"Unable to locate global object"})();const u=s.atob||(e=>s.Buffer.from(e,"base64").toString("binary")),c=s.btoa||(e=>s.Buffer.from(e,"binary").toString("base64"));i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},69130:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Duration=t.protobufPackage=void 0;const o=n(r(43720)),i=n(r(62100));t.protobufPackage="google.protobuf";const a={seconds:o.default.ZERO,nanos:0};t.Duration={encode:(e,t=i.default.Writer.create())=>(e.seconds.isZero()||t.uint32(8).int64(e.seconds),0!==e.nanos&&t.uint32(16).int32(e.nanos),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},a);for(;r.pos>>3){case 1:o.seconds=r.int64();break;case 2:o.nanos=r.int32();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},a);return void 0!==e.seconds&&null!==e.seconds?t.seconds=o.default.fromString(e.seconds):t.seconds=o.default.ZERO,void 0!==e.nanos&&null!==e.nanos?t.nanos=Number(e.nanos):t.nanos=0,t},toJSON(e){const t={};return void 0!==e.seconds&&(t.seconds=(e.seconds||o.default.ZERO).toString()),void 0!==e.nanos&&(t.nanos=e.nanos),t},fromPartial(e){const t=Object.assign({},a);return void 0!==e.seconds&&null!==e.seconds?t.seconds=e.seconds:t.seconds=o.default.ZERO,void 0!==e.nanos&&null!==e.nanos?t.nanos=e.nanos:t.nanos=0,t}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},88652:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Timestamp=t.protobufPackage=void 0;const o=n(r(43720)),i=n(r(62100));t.protobufPackage="google.protobuf";const a={seconds:o.default.ZERO,nanos:0};t.Timestamp={encode:(e,t=i.default.Writer.create())=>(e.seconds.isZero()||t.uint32(8).int64(e.seconds),0!==e.nanos&&t.uint32(16).int32(e.nanos),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},a);for(;r.pos>>3){case 1:o.seconds=r.int64();break;case 2:o.nanos=r.int32();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},a);return void 0!==e.seconds&&null!==e.seconds?t.seconds=o.default.fromString(e.seconds):t.seconds=o.default.ZERO,void 0!==e.nanos&&null!==e.nanos?t.nanos=Number(e.nanos):t.nanos=0,t},toJSON(e){const t={};return void 0!==e.seconds&&(t.seconds=(e.seconds||o.default.ZERO).toString()),void 0!==e.nanos&&(t.nanos=e.nanos),t},fromPartial(e){const t=Object.assign({},a);return void 0!==e.seconds&&null!==e.seconds?t.seconds=e.seconds:t.seconds=o.default.ZERO,void 0!==e.nanos&&null!==e.nanos?t.nanos=e.nanos:t.nanos=0,t}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},66656:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Params=t.DenomTrace=t.FungibleTokenPacketData=t.protobufPackage=void 0;const o=n(r(43720)),i=n(r(62100));t.protobufPackage="ibc.applications.transfer.v1";const a={denom:"",amount:o.default.UZERO,sender:"",receiver:""};t.FungibleTokenPacketData={encode:(e,t=i.default.Writer.create())=>(""!==e.denom&&t.uint32(10).string(e.denom),e.amount.isZero()||t.uint32(16).uint64(e.amount),""!==e.sender&&t.uint32(26).string(e.sender),""!==e.receiver&&t.uint32(34).string(e.receiver),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},a);for(;r.pos>>3){case 1:o.denom=r.string();break;case 2:o.amount=r.uint64();break;case 3:o.sender=r.string();break;case 4:o.receiver=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},a);return void 0!==e.denom&&null!==e.denom?t.denom=String(e.denom):t.denom="",void 0!==e.amount&&null!==e.amount?t.amount=o.default.fromString(e.amount):t.amount=o.default.UZERO,void 0!==e.sender&&null!==e.sender?t.sender=String(e.sender):t.sender="",void 0!==e.receiver&&null!==e.receiver?t.receiver=String(e.receiver):t.receiver="",t},toJSON(e){const t={};return void 0!==e.denom&&(t.denom=e.denom),void 0!==e.amount&&(t.amount=(e.amount||o.default.UZERO).toString()),void 0!==e.sender&&(t.sender=e.sender),void 0!==e.receiver&&(t.receiver=e.receiver),t},fromPartial(e){const t=Object.assign({},a);return void 0!==e.denom&&null!==e.denom?t.denom=e.denom:t.denom="",void 0!==e.amount&&null!==e.amount?t.amount=e.amount:t.amount=o.default.UZERO,void 0!==e.sender&&null!==e.sender?t.sender=e.sender:t.sender="",void 0!==e.receiver&&null!==e.receiver?t.receiver=e.receiver:t.receiver="",t}};const s={path:"",baseDenom:""};t.DenomTrace={encode:(e,t=i.default.Writer.create())=>(""!==e.path&&t.uint32(10).string(e.path),""!==e.baseDenom&&t.uint32(18).string(e.baseDenom),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},s);for(;r.pos>>3){case 1:o.path=r.string();break;case 2:o.baseDenom=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},s);return void 0!==e.path&&null!==e.path?t.path=String(e.path):t.path="",void 0!==e.baseDenom&&null!==e.baseDenom?t.baseDenom=String(e.baseDenom):t.baseDenom="",t},toJSON(e){const t={};return void 0!==e.path&&(t.path=e.path),void 0!==e.baseDenom&&(t.baseDenom=e.baseDenom),t},fromPartial(e){const t=Object.assign({},s);return void 0!==e.path&&null!==e.path?t.path=e.path:t.path="",void 0!==e.baseDenom&&null!==e.baseDenom?t.baseDenom=e.baseDenom:t.baseDenom="",t}};const u={sendEnabled:!1,receiveEnabled:!1};t.Params={encode:(e,t=i.default.Writer.create())=>(!0===e.sendEnabled&&t.uint32(8).bool(e.sendEnabled),!0===e.receiveEnabled&&t.uint32(16).bool(e.receiveEnabled),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},u);for(;r.pos>>3){case 1:o.sendEnabled=r.bool();break;case 2:o.receiveEnabled=r.bool();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},u);return void 0!==e.sendEnabled&&null!==e.sendEnabled?t.sendEnabled=Boolean(e.sendEnabled):t.sendEnabled=!1,void 0!==e.receiveEnabled&&null!==e.receiveEnabled?t.receiveEnabled=Boolean(e.receiveEnabled):t.receiveEnabled=!1,t},toJSON(e){const t={};return void 0!==e.sendEnabled&&(t.sendEnabled=e.sendEnabled),void 0!==e.receiveEnabled&&(t.receiveEnabled=e.receiveEnabled),t},fromPartial(e){const t=Object.assign({},u);return void 0!==e.sendEnabled&&null!==e.sendEnabled?t.sendEnabled=e.sendEnabled:t.sendEnabled=!1,void 0!==e.receiveEnabled&&null!==e.receiveEnabled?t.receiveEnabled=e.receiveEnabled:t.receiveEnabled=!1,t}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},34779:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ABCIApplicationClientImpl=t.Snapshot=t.Evidence=t.VoteInfo=t.ValidatorUpdate=t.Validator=t.TxResult=t.EventAttribute=t.Event=t.LastCommitInfo=t.BlockParams=t.ConsensusParams=t.ResponseApplySnapshotChunk=t.ResponseLoadSnapshotChunk=t.ResponseOfferSnapshot=t.ResponseListSnapshots=t.ResponseCommit=t.ResponseEndBlock=t.ResponseDeliverTx=t.ResponseCheckTx=t.ResponseBeginBlock=t.ResponseQuery=t.ResponseInitChain=t.ResponseSetOption=t.ResponseInfo=t.ResponseFlush=t.ResponseEcho=t.ResponseException=t.Response=t.RequestApplySnapshotChunk=t.RequestLoadSnapshotChunk=t.RequestOfferSnapshot=t.RequestListSnapshots=t.RequestCommit=t.RequestEndBlock=t.RequestDeliverTx=t.RequestCheckTx=t.RequestBeginBlock=t.RequestQuery=t.RequestInitChain=t.RequestSetOption=t.RequestInfo=t.RequestFlush=t.RequestEcho=t.Request=t.responseApplySnapshotChunk_ResultToJSON=t.responseApplySnapshotChunk_ResultFromJSON=t.ResponseApplySnapshotChunk_Result=t.responseOfferSnapshot_ResultToJSON=t.responseOfferSnapshot_ResultFromJSON=t.ResponseOfferSnapshot_Result=t.evidenceTypeToJSON=t.evidenceTypeFromJSON=t.EvidenceType=t.checkTxTypeToJSON=t.checkTxTypeFromJSON=t.CheckTxType=t.protobufPackage=void 0;const o=n(r(43720)),i=n(r(62100)),a=r(1183),s=r(99502),u=r(98747),c=r(6920),d=r(88652);var l,f,h,p;function m(e){switch(e){case 0:case"NEW":return l.NEW;case 1:case"RECHECK":return l.RECHECK;default:return l.UNRECOGNIZED}}function g(e){switch(e){case l.NEW:return"NEW";case l.RECHECK:return"RECHECK";default:return"UNKNOWN"}}function v(e){switch(e){case 0:case"UNKNOWN":return f.UNKNOWN;case 1:case"DUPLICATE_VOTE":return f.DUPLICATE_VOTE;case 2:case"LIGHT_CLIENT_ATTACK":return f.LIGHT_CLIENT_ATTACK;default:return f.UNRECOGNIZED}}function b(e){switch(e){case f.UNKNOWN:return"UNKNOWN";case f.DUPLICATE_VOTE:return"DUPLICATE_VOTE";case f.LIGHT_CLIENT_ATTACK:return"LIGHT_CLIENT_ATTACK";default:return"UNKNOWN"}}function y(e){switch(e){case 0:case"UNKNOWN":return h.UNKNOWN;case 1:case"ACCEPT":return h.ACCEPT;case 2:case"ABORT":return h.ABORT;case 3:case"REJECT":return h.REJECT;case 4:case"REJECT_FORMAT":return h.REJECT_FORMAT;case 5:case"REJECT_SENDER":return h.REJECT_SENDER;default:return h.UNRECOGNIZED}}function w(e){switch(e){case h.UNKNOWN:return"UNKNOWN";case h.ACCEPT:return"ACCEPT";case h.ABORT:return"ABORT";case h.REJECT:return"REJECT";case h.REJECT_FORMAT:return"REJECT_FORMAT";case h.REJECT_SENDER:return"REJECT_SENDER";default:return"UNKNOWN"}}function _(e){switch(e){case 0:case"UNKNOWN":return p.UNKNOWN;case 1:case"ACCEPT":return p.ACCEPT;case 2:case"ABORT":return p.ABORT;case 3:case"RETRY":return p.RETRY;case 4:case"RETRY_SNAPSHOT":return p.RETRY_SNAPSHOT;case 5:case"REJECT_SNAPSHOT":return p.REJECT_SNAPSHOT;default:return p.UNRECOGNIZED}}function S(e){switch(e){case p.UNKNOWN:return"UNKNOWN";case p.ACCEPT:return"ACCEPT";case p.ABORT:return"ABORT";case p.RETRY:return"RETRY";case p.RETRY_SNAPSHOT:return"RETRY_SNAPSHOT";case p.REJECT_SNAPSHOT:return"REJECT_SNAPSHOT";default:return"UNKNOWN"}}t.protobufPackage="tendermint.abci",function(e){e[e.NEW=0]="NEW",e[e.RECHECK=1]="RECHECK",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(l=t.CheckTxType||(t.CheckTxType={})),t.checkTxTypeFromJSON=m,t.checkTxTypeToJSON=g,function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.DUPLICATE_VOTE=1]="DUPLICATE_VOTE",e[e.LIGHT_CLIENT_ATTACK=2]="LIGHT_CLIENT_ATTACK",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(f=t.EvidenceType||(t.EvidenceType={})),t.evidenceTypeFromJSON=v,t.evidenceTypeToJSON=b,function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.ACCEPT=1]="ACCEPT",e[e.ABORT=2]="ABORT",e[e.REJECT=3]="REJECT",e[e.REJECT_FORMAT=4]="REJECT_FORMAT",e[e.REJECT_SENDER=5]="REJECT_SENDER",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(h=t.ResponseOfferSnapshot_Result||(t.ResponseOfferSnapshot_Result={})),t.responseOfferSnapshot_ResultFromJSON=y,t.responseOfferSnapshot_ResultToJSON=w,function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.ACCEPT=1]="ACCEPT",e[e.ABORT=2]="ABORT",e[e.RETRY=3]="RETRY",e[e.RETRY_SNAPSHOT=4]="RETRY_SNAPSHOT",e[e.REJECT_SNAPSHOT=5]="REJECT_SNAPSHOT",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(p=t.ResponseApplySnapshotChunk_Result||(t.ResponseApplySnapshotChunk_Result={})),t.responseApplySnapshotChunk_ResultFromJSON=_,t.responseApplySnapshotChunk_ResultToJSON=S;const O={};t.Request={encode:(e,r=i.default.Writer.create())=>(void 0!==e.echo&&t.RequestEcho.encode(e.echo,r.uint32(10).fork()).ldelim(),void 0!==e.flush&&t.RequestFlush.encode(e.flush,r.uint32(18).fork()).ldelim(),void 0!==e.info&&t.RequestInfo.encode(e.info,r.uint32(26).fork()).ldelim(),void 0!==e.setOption&&t.RequestSetOption.encode(e.setOption,r.uint32(34).fork()).ldelim(),void 0!==e.initChain&&t.RequestInitChain.encode(e.initChain,r.uint32(42).fork()).ldelim(),void 0!==e.query&&t.RequestQuery.encode(e.query,r.uint32(50).fork()).ldelim(),void 0!==e.beginBlock&&t.RequestBeginBlock.encode(e.beginBlock,r.uint32(58).fork()).ldelim(),void 0!==e.checkTx&&t.RequestCheckTx.encode(e.checkTx,r.uint32(66).fork()).ldelim(),void 0!==e.deliverTx&&t.RequestDeliverTx.encode(e.deliverTx,r.uint32(74).fork()).ldelim(),void 0!==e.endBlock&&t.RequestEndBlock.encode(e.endBlock,r.uint32(82).fork()).ldelim(),void 0!==e.commit&&t.RequestCommit.encode(e.commit,r.uint32(90).fork()).ldelim(),void 0!==e.listSnapshots&&t.RequestListSnapshots.encode(e.listSnapshots,r.uint32(98).fork()).ldelim(),void 0!==e.offerSnapshot&&t.RequestOfferSnapshot.encode(e.offerSnapshot,r.uint32(106).fork()).ldelim(),void 0!==e.loadSnapshotChunk&&t.RequestLoadSnapshotChunk.encode(e.loadSnapshotChunk,r.uint32(114).fork()).ldelim(),void 0!==e.applySnapshotChunk&&t.RequestApplySnapshotChunk.encode(e.applySnapshotChunk,r.uint32(122).fork()).ldelim(),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},O);for(;n.pos>>3){case 1:a.echo=t.RequestEcho.decode(n,n.uint32());break;case 2:a.flush=t.RequestFlush.decode(n,n.uint32());break;case 3:a.info=t.RequestInfo.decode(n,n.uint32());break;case 4:a.setOption=t.RequestSetOption.decode(n,n.uint32());break;case 5:a.initChain=t.RequestInitChain.decode(n,n.uint32());break;case 6:a.query=t.RequestQuery.decode(n,n.uint32());break;case 7:a.beginBlock=t.RequestBeginBlock.decode(n,n.uint32());break;case 8:a.checkTx=t.RequestCheckTx.decode(n,n.uint32());break;case 9:a.deliverTx=t.RequestDeliverTx.decode(n,n.uint32());break;case 10:a.endBlock=t.RequestEndBlock.decode(n,n.uint32());break;case 11:a.commit=t.RequestCommit.decode(n,n.uint32());break;case 12:a.listSnapshots=t.RequestListSnapshots.decode(n,n.uint32());break;case 13:a.offerSnapshot=t.RequestOfferSnapshot.decode(n,n.uint32());break;case 14:a.loadSnapshotChunk=t.RequestLoadSnapshotChunk.decode(n,n.uint32());break;case 15:a.applySnapshotChunk=t.RequestApplySnapshotChunk.decode(n,n.uint32());break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},O);return void 0!==e.echo&&null!==e.echo?r.echo=t.RequestEcho.fromJSON(e.echo):r.echo=void 0,void 0!==e.flush&&null!==e.flush?r.flush=t.RequestFlush.fromJSON(e.flush):r.flush=void 0,void 0!==e.info&&null!==e.info?r.info=t.RequestInfo.fromJSON(e.info):r.info=void 0,void 0!==e.setOption&&null!==e.setOption?r.setOption=t.RequestSetOption.fromJSON(e.setOption):r.setOption=void 0,void 0!==e.initChain&&null!==e.initChain?r.initChain=t.RequestInitChain.fromJSON(e.initChain):r.initChain=void 0,void 0!==e.query&&null!==e.query?r.query=t.RequestQuery.fromJSON(e.query):r.query=void 0,void 0!==e.beginBlock&&null!==e.beginBlock?r.beginBlock=t.RequestBeginBlock.fromJSON(e.beginBlock):r.beginBlock=void 0,void 0!==e.checkTx&&null!==e.checkTx?r.checkTx=t.RequestCheckTx.fromJSON(e.checkTx):r.checkTx=void 0,void 0!==e.deliverTx&&null!==e.deliverTx?r.deliverTx=t.RequestDeliverTx.fromJSON(e.deliverTx):r.deliverTx=void 0,void 0!==e.endBlock&&null!==e.endBlock?r.endBlock=t.RequestEndBlock.fromJSON(e.endBlock):r.endBlock=void 0,void 0!==e.commit&&null!==e.commit?r.commit=t.RequestCommit.fromJSON(e.commit):r.commit=void 0,void 0!==e.listSnapshots&&null!==e.listSnapshots?r.listSnapshots=t.RequestListSnapshots.fromJSON(e.listSnapshots):r.listSnapshots=void 0,void 0!==e.offerSnapshot&&null!==e.offerSnapshot?r.offerSnapshot=t.RequestOfferSnapshot.fromJSON(e.offerSnapshot):r.offerSnapshot=void 0,void 0!==e.loadSnapshotChunk&&null!==e.loadSnapshotChunk?r.loadSnapshotChunk=t.RequestLoadSnapshotChunk.fromJSON(e.loadSnapshotChunk):r.loadSnapshotChunk=void 0,void 0!==e.applySnapshotChunk&&null!==e.applySnapshotChunk?r.applySnapshotChunk=t.RequestApplySnapshotChunk.fromJSON(e.applySnapshotChunk):r.applySnapshotChunk=void 0,r},toJSON(e){const r={};return void 0!==e.echo&&(r.echo=e.echo?t.RequestEcho.toJSON(e.echo):void 0),void 0!==e.flush&&(r.flush=e.flush?t.RequestFlush.toJSON(e.flush):void 0),void 0!==e.info&&(r.info=e.info?t.RequestInfo.toJSON(e.info):void 0),void 0!==e.setOption&&(r.setOption=e.setOption?t.RequestSetOption.toJSON(e.setOption):void 0),void 0!==e.initChain&&(r.initChain=e.initChain?t.RequestInitChain.toJSON(e.initChain):void 0),void 0!==e.query&&(r.query=e.query?t.RequestQuery.toJSON(e.query):void 0),void 0!==e.beginBlock&&(r.beginBlock=e.beginBlock?t.RequestBeginBlock.toJSON(e.beginBlock):void 0),void 0!==e.checkTx&&(r.checkTx=e.checkTx?t.RequestCheckTx.toJSON(e.checkTx):void 0),void 0!==e.deliverTx&&(r.deliverTx=e.deliverTx?t.RequestDeliverTx.toJSON(e.deliverTx):void 0),void 0!==e.endBlock&&(r.endBlock=e.endBlock?t.RequestEndBlock.toJSON(e.endBlock):void 0),void 0!==e.commit&&(r.commit=e.commit?t.RequestCommit.toJSON(e.commit):void 0),void 0!==e.listSnapshots&&(r.listSnapshots=e.listSnapshots?t.RequestListSnapshots.toJSON(e.listSnapshots):void 0),void 0!==e.offerSnapshot&&(r.offerSnapshot=e.offerSnapshot?t.RequestOfferSnapshot.toJSON(e.offerSnapshot):void 0),void 0!==e.loadSnapshotChunk&&(r.loadSnapshotChunk=e.loadSnapshotChunk?t.RequestLoadSnapshotChunk.toJSON(e.loadSnapshotChunk):void 0),void 0!==e.applySnapshotChunk&&(r.applySnapshotChunk=e.applySnapshotChunk?t.RequestApplySnapshotChunk.toJSON(e.applySnapshotChunk):void 0),r},fromPartial(e){const r=Object.assign({},O);return void 0!==e.echo&&null!==e.echo?r.echo=t.RequestEcho.fromPartial(e.echo):r.echo=void 0,void 0!==e.flush&&null!==e.flush?r.flush=t.RequestFlush.fromPartial(e.flush):r.flush=void 0,void 0!==e.info&&null!==e.info?r.info=t.RequestInfo.fromPartial(e.info):r.info=void 0,void 0!==e.setOption&&null!==e.setOption?r.setOption=t.RequestSetOption.fromPartial(e.setOption):r.setOption=void 0,void 0!==e.initChain&&null!==e.initChain?r.initChain=t.RequestInitChain.fromPartial(e.initChain):r.initChain=void 0,void 0!==e.query&&null!==e.query?r.query=t.RequestQuery.fromPartial(e.query):r.query=void 0,void 0!==e.beginBlock&&null!==e.beginBlock?r.beginBlock=t.RequestBeginBlock.fromPartial(e.beginBlock):r.beginBlock=void 0,void 0!==e.checkTx&&null!==e.checkTx?r.checkTx=t.RequestCheckTx.fromPartial(e.checkTx):r.checkTx=void 0,void 0!==e.deliverTx&&null!==e.deliverTx?r.deliverTx=t.RequestDeliverTx.fromPartial(e.deliverTx):r.deliverTx=void 0,void 0!==e.endBlock&&null!==e.endBlock?r.endBlock=t.RequestEndBlock.fromPartial(e.endBlock):r.endBlock=void 0,void 0!==e.commit&&null!==e.commit?r.commit=t.RequestCommit.fromPartial(e.commit):r.commit=void 0,void 0!==e.listSnapshots&&null!==e.listSnapshots?r.listSnapshots=t.RequestListSnapshots.fromPartial(e.listSnapshots):r.listSnapshots=void 0,void 0!==e.offerSnapshot&&null!==e.offerSnapshot?r.offerSnapshot=t.RequestOfferSnapshot.fromPartial(e.offerSnapshot):r.offerSnapshot=void 0,void 0!==e.loadSnapshotChunk&&null!==e.loadSnapshotChunk?r.loadSnapshotChunk=t.RequestLoadSnapshotChunk.fromPartial(e.loadSnapshotChunk):r.loadSnapshotChunk=void 0,void 0!==e.applySnapshotChunk&&null!==e.applySnapshotChunk?r.applySnapshotChunk=t.RequestApplySnapshotChunk.fromPartial(e.applySnapshotChunk):r.applySnapshotChunk=void 0,r}};const k={message:""};t.RequestEcho={encode:(e,t=i.default.Writer.create())=>(""!==e.message&&t.uint32(10).string(e.message),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},k);for(;r.pos>>3==1?o.message=r.string():r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},k);return void 0!==e.message&&null!==e.message?t.message=String(e.message):t.message="",t},toJSON(e){const t={};return void 0!==e.message&&(t.message=e.message),t},fromPartial(e){const t=Object.assign({},k);return void 0!==e.message&&null!==e.message?t.message=e.message:t.message="",t}};const A={};t.RequestFlush={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},A);for(;r.posObject.assign({},A),toJSON:e=>({}),fromPartial:e=>Object.assign({},A)};const P={version:"",blockVersion:o.default.UZERO,p2pVersion:o.default.UZERO};t.RequestInfo={encode:(e,t=i.default.Writer.create())=>(""!==e.version&&t.uint32(10).string(e.version),e.blockVersion.isZero()||t.uint32(16).uint64(e.blockVersion),e.p2pVersion.isZero()||t.uint32(24).uint64(e.p2pVersion),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},P);for(;r.pos>>3){case 1:o.version=r.string();break;case 2:o.blockVersion=r.uint64();break;case 3:o.p2pVersion=r.uint64();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},P);return void 0!==e.version&&null!==e.version?t.version=String(e.version):t.version="",void 0!==e.blockVersion&&null!==e.blockVersion?t.blockVersion=o.default.fromString(e.blockVersion):t.blockVersion=o.default.UZERO,void 0!==e.p2pVersion&&null!==e.p2pVersion?t.p2pVersion=o.default.fromString(e.p2pVersion):t.p2pVersion=o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.version&&(t.version=e.version),void 0!==e.blockVersion&&(t.blockVersion=(e.blockVersion||o.default.UZERO).toString()),void 0!==e.p2pVersion&&(t.p2pVersion=(e.p2pVersion||o.default.UZERO).toString()),t},fromPartial(e){const t=Object.assign({},P);return void 0!==e.version&&null!==e.version?t.version=e.version:t.version="",void 0!==e.blockVersion&&null!==e.blockVersion?t.blockVersion=e.blockVersion:t.blockVersion=o.default.UZERO,void 0!==e.p2pVersion&&null!==e.p2pVersion?t.p2pVersion=e.p2pVersion:t.p2pVersion=o.default.UZERO,t}};const M={key:"",value:""};t.RequestSetOption={encode:(e,t=i.default.Writer.create())=>(""!==e.key&&t.uint32(10).string(e.key),""!==e.value&&t.uint32(18).string(e.value),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},M);for(;r.pos>>3){case 1:o.key=r.string();break;case 2:o.value=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},M);return void 0!==e.key&&null!==e.key?t.key=String(e.key):t.key="",void 0!==e.value&&null!==e.value?t.value=String(e.value):t.value="",t},toJSON(e){const t={};return void 0!==e.key&&(t.key=e.key),void 0!==e.value&&(t.value=e.value),t},fromPartial(e){const t=Object.assign({},M);return void 0!==e.key&&null!==e.key?t.key=e.key:t.key="",void 0!==e.value&&null!==e.value?t.value=e.value:t.value="",t}};const E={chainId:"",initialHeight:o.default.ZERO};t.RequestInitChain={encode(e,r=i.default.Writer.create()){void 0!==e.time&&d.Timestamp.encode(be(e.time),r.uint32(10).fork()).ldelim(),""!==e.chainId&&r.uint32(18).string(e.chainId),void 0!==e.consensusParams&&t.ConsensusParams.encode(e.consensusParams,r.uint32(26).fork()).ldelim();for(const n of e.validators)t.ValidatorUpdate.encode(n,r.uint32(34).fork()).ldelim();return 0!==e.appStateBytes.length&&r.uint32(42).bytes(e.appStateBytes),e.initialHeight.isZero()||r.uint32(48).int64(e.initialHeight),r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},E);for(a.validators=[],a.appStateBytes=new Uint8Array;n.pos>>3){case 1:a.time=ye(d.Timestamp.decode(n,n.uint32()));break;case 2:a.chainId=n.string();break;case 3:a.consensusParams=t.ConsensusParams.decode(n,n.uint32());break;case 4:a.validators.push(t.ValidatorUpdate.decode(n,n.uint32()));break;case 5:a.appStateBytes=n.bytes();break;case 6:a.initialHeight=n.int64();break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},E);if(r.validators=[],r.appStateBytes=new Uint8Array,void 0!==e.time&&null!==e.time?r.time=we(e.time):r.time=void 0,void 0!==e.chainId&&null!==e.chainId?r.chainId=String(e.chainId):r.chainId="",void 0!==e.consensusParams&&null!==e.consensusParams?r.consensusParams=t.ConsensusParams.fromJSON(e.consensusParams):r.consensusParams=void 0,void 0!==e.validators&&null!==e.validators)for(const n of e.validators)r.validators.push(t.ValidatorUpdate.fromJSON(n));return void 0!==e.appStateBytes&&null!==e.appStateBytes&&(r.appStateBytes=me(e.appStateBytes)),void 0!==e.initialHeight&&null!==e.initialHeight?r.initialHeight=o.default.fromString(e.initialHeight):r.initialHeight=o.default.ZERO,r},toJSON(e){const r={};return void 0!==e.time&&(r.time=e.time.toISOString()),void 0!==e.chainId&&(r.chainId=e.chainId),void 0!==e.consensusParams&&(r.consensusParams=e.consensusParams?t.ConsensusParams.toJSON(e.consensusParams):void 0),e.validators?r.validators=e.validators.map((e=>e?t.ValidatorUpdate.toJSON(e):void 0)):r.validators=[],void 0!==e.appStateBytes&&(r.appStateBytes=ve(void 0!==e.appStateBytes?e.appStateBytes:new Uint8Array)),void 0!==e.initialHeight&&(r.initialHeight=(e.initialHeight||o.default.ZERO).toString()),r},fromPartial(e){const r=Object.assign({},E);if(r.validators=[],void 0!==e.time&&null!==e.time?r.time=e.time:r.time=void 0,void 0!==e.chainId&&null!==e.chainId?r.chainId=e.chainId:r.chainId="",void 0!==e.consensusParams&&null!==e.consensusParams?r.consensusParams=t.ConsensusParams.fromPartial(e.consensusParams):r.consensusParams=void 0,void 0!==e.validators&&null!==e.validators)for(const n of e.validators)r.validators.push(t.ValidatorUpdate.fromPartial(n));return void 0!==e.appStateBytes&&null!==e.appStateBytes?r.appStateBytes=e.appStateBytes:r.appStateBytes=new Uint8Array,void 0!==e.initialHeight&&null!==e.initialHeight?r.initialHeight=e.initialHeight:r.initialHeight=o.default.ZERO,r}};const C={path:"",height:o.default.ZERO,prove:!1};t.RequestQuery={encode:(e,t=i.default.Writer.create())=>(0!==e.data.length&&t.uint32(10).bytes(e.data),""!==e.path&&t.uint32(18).string(e.path),e.height.isZero()||t.uint32(24).int64(e.height),!0===e.prove&&t.uint32(32).bool(e.prove),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},C);for(o.data=new Uint8Array;r.pos>>3){case 1:o.data=r.bytes();break;case 2:o.path=r.string();break;case 3:o.height=r.int64();break;case 4:o.prove=r.bool();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},C);return t.data=new Uint8Array,void 0!==e.data&&null!==e.data&&(t.data=me(e.data)),void 0!==e.path&&null!==e.path?t.path=String(e.path):t.path="",void 0!==e.height&&null!==e.height?t.height=o.default.fromString(e.height):t.height=o.default.ZERO,void 0!==e.prove&&null!==e.prove?t.prove=Boolean(e.prove):t.prove=!1,t},toJSON(e){const t={};return void 0!==e.data&&(t.data=ve(void 0!==e.data?e.data:new Uint8Array)),void 0!==e.path&&(t.path=e.path),void 0!==e.height&&(t.height=(e.height||o.default.ZERO).toString()),void 0!==e.prove&&(t.prove=e.prove),t},fromPartial(e){const t=Object.assign({},C);return void 0!==e.data&&null!==e.data?t.data=e.data:t.data=new Uint8Array,void 0!==e.path&&null!==e.path?t.path=e.path:t.path="",void 0!==e.height&&null!==e.height?t.height=e.height:t.height=o.default.ZERO,void 0!==e.prove&&null!==e.prove?t.prove=e.prove:t.prove=!1,t}};const N={};t.RequestBeginBlock={encode(e,r=i.default.Writer.create()){0!==e.hash.length&&r.uint32(10).bytes(e.hash),void 0!==e.header&&a.Header.encode(e.header,r.uint32(18).fork()).ldelim(),void 0!==e.lastCommitInfo&&t.LastCommitInfo.encode(e.lastCommitInfo,r.uint32(26).fork()).ldelim();for(const n of e.byzantineValidators)t.Evidence.encode(n,r.uint32(34).fork()).ldelim();return r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const s=Object.assign({},N);for(s.byzantineValidators=[],s.hash=new Uint8Array;n.pos>>3){case 1:s.hash=n.bytes();break;case 2:s.header=a.Header.decode(n,n.uint32());break;case 3:s.lastCommitInfo=t.LastCommitInfo.decode(n,n.uint32());break;case 4:s.byzantineValidators.push(t.Evidence.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return s},fromJSON(e){const r=Object.assign({},N);if(r.byzantineValidators=[],r.hash=new Uint8Array,void 0!==e.hash&&null!==e.hash&&(r.hash=me(e.hash)),void 0!==e.header&&null!==e.header?r.header=a.Header.fromJSON(e.header):r.header=void 0,void 0!==e.lastCommitInfo&&null!==e.lastCommitInfo?r.lastCommitInfo=t.LastCommitInfo.fromJSON(e.lastCommitInfo):r.lastCommitInfo=void 0,void 0!==e.byzantineValidators&&null!==e.byzantineValidators)for(const n of e.byzantineValidators)r.byzantineValidators.push(t.Evidence.fromJSON(n));return r},toJSON(e){const r={};return void 0!==e.hash&&(r.hash=ve(void 0!==e.hash?e.hash:new Uint8Array)),void 0!==e.header&&(r.header=e.header?a.Header.toJSON(e.header):void 0),void 0!==e.lastCommitInfo&&(r.lastCommitInfo=e.lastCommitInfo?t.LastCommitInfo.toJSON(e.lastCommitInfo):void 0),e.byzantineValidators?r.byzantineValidators=e.byzantineValidators.map((e=>e?t.Evidence.toJSON(e):void 0)):r.byzantineValidators=[],r},fromPartial(e){const r=Object.assign({},N);if(r.byzantineValidators=[],void 0!==e.hash&&null!==e.hash?r.hash=e.hash:r.hash=new Uint8Array,void 0!==e.header&&null!==e.header?r.header=a.Header.fromPartial(e.header):r.header=void 0,void 0!==e.lastCommitInfo&&null!==e.lastCommitInfo?r.lastCommitInfo=t.LastCommitInfo.fromPartial(e.lastCommitInfo):r.lastCommitInfo=void 0,void 0!==e.byzantineValidators&&null!==e.byzantineValidators)for(const n of e.byzantineValidators)r.byzantineValidators.push(t.Evidence.fromPartial(n));return r}};const x={type:0};t.RequestCheckTx={encode:(e,t=i.default.Writer.create())=>(0!==e.tx.length&&t.uint32(10).bytes(e.tx),0!==e.type&&t.uint32(16).int32(e.type),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},x);for(o.tx=new Uint8Array;r.pos>>3){case 1:o.tx=r.bytes();break;case 2:o.type=r.int32();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},x);return t.tx=new Uint8Array,void 0!==e.tx&&null!==e.tx&&(t.tx=me(e.tx)),void 0!==e.type&&null!==e.type?t.type=m(e.type):t.type=0,t},toJSON(e){const t={};return void 0!==e.tx&&(t.tx=ve(void 0!==e.tx?e.tx:new Uint8Array)),void 0!==e.type&&(t.type=g(e.type)),t},fromPartial(e){const t=Object.assign({},x);return void 0!==e.tx&&null!==e.tx?t.tx=e.tx:t.tx=new Uint8Array,void 0!==e.type&&null!==e.type?t.type=e.type:t.type=0,t}};const R={};t.RequestDeliverTx={encode:(e,t=i.default.Writer.create())=>(0!==e.tx.length&&t.uint32(10).bytes(e.tx),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},R);for(o.tx=new Uint8Array;r.pos>>3==1?o.tx=r.bytes():r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},R);return t.tx=new Uint8Array,void 0!==e.tx&&null!==e.tx&&(t.tx=me(e.tx)),t},toJSON(e){const t={};return void 0!==e.tx&&(t.tx=ve(void 0!==e.tx?e.tx:new Uint8Array)),t},fromPartial(e){const t=Object.assign({},R);return void 0!==e.tx&&null!==e.tx?t.tx=e.tx:t.tx=new Uint8Array,t}};const I={height:o.default.ZERO};t.RequestEndBlock={encode:(e,t=i.default.Writer.create())=>(e.height.isZero()||t.uint32(8).int64(e.height),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},I);for(;r.pos>>3==1?o.height=r.int64():r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},I);return void 0!==e.height&&null!==e.height?t.height=o.default.fromString(e.height):t.height=o.default.ZERO,t},toJSON(e){const t={};return void 0!==e.height&&(t.height=(e.height||o.default.ZERO).toString()),t},fromPartial(e){const t=Object.assign({},I);return void 0!==e.height&&null!==e.height?t.height=e.height:t.height=o.default.ZERO,t}};const T={};t.RequestCommit={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},T);for(;r.posObject.assign({},T),toJSON:e=>({}),fromPartial:e=>Object.assign({},T)};const j={};t.RequestListSnapshots={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},j);for(;r.posObject.assign({},j),toJSON:e=>({}),fromPartial:e=>Object.assign({},j)};const D={};t.RequestOfferSnapshot={encode:(e,r=i.default.Writer.create())=>(void 0!==e.snapshot&&t.Snapshot.encode(e.snapshot,r.uint32(10).fork()).ldelim(),0!==e.appHash.length&&r.uint32(18).bytes(e.appHash),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},D);for(a.appHash=new Uint8Array;n.pos>>3){case 1:a.snapshot=t.Snapshot.decode(n,n.uint32());break;case 2:a.appHash=n.bytes();break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},D);return r.appHash=new Uint8Array,void 0!==e.snapshot&&null!==e.snapshot?r.snapshot=t.Snapshot.fromJSON(e.snapshot):r.snapshot=void 0,void 0!==e.appHash&&null!==e.appHash&&(r.appHash=me(e.appHash)),r},toJSON(e){const r={};return void 0!==e.snapshot&&(r.snapshot=e.snapshot?t.Snapshot.toJSON(e.snapshot):void 0),void 0!==e.appHash&&(r.appHash=ve(void 0!==e.appHash?e.appHash:new Uint8Array)),r},fromPartial(e){const r=Object.assign({},D);return void 0!==e.snapshot&&null!==e.snapshot?r.snapshot=t.Snapshot.fromPartial(e.snapshot):r.snapshot=void 0,void 0!==e.appHash&&null!==e.appHash?r.appHash=e.appHash:r.appHash=new Uint8Array,r}};const B={height:o.default.UZERO,format:0,chunk:0};t.RequestLoadSnapshotChunk={encode:(e,t=i.default.Writer.create())=>(e.height.isZero()||t.uint32(8).uint64(e.height),0!==e.format&&t.uint32(16).uint32(e.format),0!==e.chunk&&t.uint32(24).uint32(e.chunk),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},B);for(;r.pos>>3){case 1:o.height=r.uint64();break;case 2:o.format=r.uint32();break;case 3:o.chunk=r.uint32();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},B);return void 0!==e.height&&null!==e.height?t.height=o.default.fromString(e.height):t.height=o.default.UZERO,void 0!==e.format&&null!==e.format?t.format=Number(e.format):t.format=0,void 0!==e.chunk&&null!==e.chunk?t.chunk=Number(e.chunk):t.chunk=0,t},toJSON(e){const t={};return void 0!==e.height&&(t.height=(e.height||o.default.UZERO).toString()),void 0!==e.format&&(t.format=e.format),void 0!==e.chunk&&(t.chunk=e.chunk),t},fromPartial(e){const t=Object.assign({},B);return void 0!==e.height&&null!==e.height?t.height=e.height:t.height=o.default.UZERO,void 0!==e.format&&null!==e.format?t.format=e.format:t.format=0,void 0!==e.chunk&&null!==e.chunk?t.chunk=e.chunk:t.chunk=0,t}};const U={index:0,sender:""};t.RequestApplySnapshotChunk={encode:(e,t=i.default.Writer.create())=>(0!==e.index&&t.uint32(8).uint32(e.index),0!==e.chunk.length&&t.uint32(18).bytes(e.chunk),""!==e.sender&&t.uint32(26).string(e.sender),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},U);for(o.chunk=new Uint8Array;r.pos>>3){case 1:o.index=r.uint32();break;case 2:o.chunk=r.bytes();break;case 3:o.sender=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},U);return t.chunk=new Uint8Array,void 0!==e.index&&null!==e.index?t.index=Number(e.index):t.index=0,void 0!==e.chunk&&null!==e.chunk&&(t.chunk=me(e.chunk)),void 0!==e.sender&&null!==e.sender?t.sender=String(e.sender):t.sender="",t},toJSON(e){const t={};return void 0!==e.index&&(t.index=e.index),void 0!==e.chunk&&(t.chunk=ve(void 0!==e.chunk?e.chunk:new Uint8Array)),void 0!==e.sender&&(t.sender=e.sender),t},fromPartial(e){const t=Object.assign({},U);return void 0!==e.index&&null!==e.index?t.index=e.index:t.index=0,void 0!==e.chunk&&null!==e.chunk?t.chunk=e.chunk:t.chunk=new Uint8Array,void 0!==e.sender&&null!==e.sender?t.sender=e.sender:t.sender="",t}};const J={};t.Response={encode:(e,r=i.default.Writer.create())=>(void 0!==e.exception&&t.ResponseException.encode(e.exception,r.uint32(10).fork()).ldelim(),void 0!==e.echo&&t.ResponseEcho.encode(e.echo,r.uint32(18).fork()).ldelim(),void 0!==e.flush&&t.ResponseFlush.encode(e.flush,r.uint32(26).fork()).ldelim(),void 0!==e.info&&t.ResponseInfo.encode(e.info,r.uint32(34).fork()).ldelim(),void 0!==e.setOption&&t.ResponseSetOption.encode(e.setOption,r.uint32(42).fork()).ldelim(),void 0!==e.initChain&&t.ResponseInitChain.encode(e.initChain,r.uint32(50).fork()).ldelim(),void 0!==e.query&&t.ResponseQuery.encode(e.query,r.uint32(58).fork()).ldelim(),void 0!==e.beginBlock&&t.ResponseBeginBlock.encode(e.beginBlock,r.uint32(66).fork()).ldelim(),void 0!==e.checkTx&&t.ResponseCheckTx.encode(e.checkTx,r.uint32(74).fork()).ldelim(),void 0!==e.deliverTx&&t.ResponseDeliverTx.encode(e.deliverTx,r.uint32(82).fork()).ldelim(),void 0!==e.endBlock&&t.ResponseEndBlock.encode(e.endBlock,r.uint32(90).fork()).ldelim(),void 0!==e.commit&&t.ResponseCommit.encode(e.commit,r.uint32(98).fork()).ldelim(),void 0!==e.listSnapshots&&t.ResponseListSnapshots.encode(e.listSnapshots,r.uint32(106).fork()).ldelim(),void 0!==e.offerSnapshot&&t.ResponseOfferSnapshot.encode(e.offerSnapshot,r.uint32(114).fork()).ldelim(),void 0!==e.loadSnapshotChunk&&t.ResponseLoadSnapshotChunk.encode(e.loadSnapshotChunk,r.uint32(122).fork()).ldelim(),void 0!==e.applySnapshotChunk&&t.ResponseApplySnapshotChunk.encode(e.applySnapshotChunk,r.uint32(130).fork()).ldelim(),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},J);for(;n.pos>>3){case 1:a.exception=t.ResponseException.decode(n,n.uint32());break;case 2:a.echo=t.ResponseEcho.decode(n,n.uint32());break;case 3:a.flush=t.ResponseFlush.decode(n,n.uint32());break;case 4:a.info=t.ResponseInfo.decode(n,n.uint32());break;case 5:a.setOption=t.ResponseSetOption.decode(n,n.uint32());break;case 6:a.initChain=t.ResponseInitChain.decode(n,n.uint32());break;case 7:a.query=t.ResponseQuery.decode(n,n.uint32());break;case 8:a.beginBlock=t.ResponseBeginBlock.decode(n,n.uint32());break;case 9:a.checkTx=t.ResponseCheckTx.decode(n,n.uint32());break;case 10:a.deliverTx=t.ResponseDeliverTx.decode(n,n.uint32());break;case 11:a.endBlock=t.ResponseEndBlock.decode(n,n.uint32());break;case 12:a.commit=t.ResponseCommit.decode(n,n.uint32());break;case 13:a.listSnapshots=t.ResponseListSnapshots.decode(n,n.uint32());break;case 14:a.offerSnapshot=t.ResponseOfferSnapshot.decode(n,n.uint32());break;case 15:a.loadSnapshotChunk=t.ResponseLoadSnapshotChunk.decode(n,n.uint32());break;case 16:a.applySnapshotChunk=t.ResponseApplySnapshotChunk.decode(n,n.uint32());break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},J);return void 0!==e.exception&&null!==e.exception?r.exception=t.ResponseException.fromJSON(e.exception):r.exception=void 0,void 0!==e.echo&&null!==e.echo?r.echo=t.ResponseEcho.fromJSON(e.echo):r.echo=void 0,void 0!==e.flush&&null!==e.flush?r.flush=t.ResponseFlush.fromJSON(e.flush):r.flush=void 0,void 0!==e.info&&null!==e.info?r.info=t.ResponseInfo.fromJSON(e.info):r.info=void 0,void 0!==e.setOption&&null!==e.setOption?r.setOption=t.ResponseSetOption.fromJSON(e.setOption):r.setOption=void 0,void 0!==e.initChain&&null!==e.initChain?r.initChain=t.ResponseInitChain.fromJSON(e.initChain):r.initChain=void 0,void 0!==e.query&&null!==e.query?r.query=t.ResponseQuery.fromJSON(e.query):r.query=void 0,void 0!==e.beginBlock&&null!==e.beginBlock?r.beginBlock=t.ResponseBeginBlock.fromJSON(e.beginBlock):r.beginBlock=void 0,void 0!==e.checkTx&&null!==e.checkTx?r.checkTx=t.ResponseCheckTx.fromJSON(e.checkTx):r.checkTx=void 0,void 0!==e.deliverTx&&null!==e.deliverTx?r.deliverTx=t.ResponseDeliverTx.fromJSON(e.deliverTx):r.deliverTx=void 0,void 0!==e.endBlock&&null!==e.endBlock?r.endBlock=t.ResponseEndBlock.fromJSON(e.endBlock):r.endBlock=void 0,void 0!==e.commit&&null!==e.commit?r.commit=t.ResponseCommit.fromJSON(e.commit):r.commit=void 0,void 0!==e.listSnapshots&&null!==e.listSnapshots?r.listSnapshots=t.ResponseListSnapshots.fromJSON(e.listSnapshots):r.listSnapshots=void 0,void 0!==e.offerSnapshot&&null!==e.offerSnapshot?r.offerSnapshot=t.ResponseOfferSnapshot.fromJSON(e.offerSnapshot):r.offerSnapshot=void 0,void 0!==e.loadSnapshotChunk&&null!==e.loadSnapshotChunk?r.loadSnapshotChunk=t.ResponseLoadSnapshotChunk.fromJSON(e.loadSnapshotChunk):r.loadSnapshotChunk=void 0,void 0!==e.applySnapshotChunk&&null!==e.applySnapshotChunk?r.applySnapshotChunk=t.ResponseApplySnapshotChunk.fromJSON(e.applySnapshotChunk):r.applySnapshotChunk=void 0,r},toJSON(e){const r={};return void 0!==e.exception&&(r.exception=e.exception?t.ResponseException.toJSON(e.exception):void 0),void 0!==e.echo&&(r.echo=e.echo?t.ResponseEcho.toJSON(e.echo):void 0),void 0!==e.flush&&(r.flush=e.flush?t.ResponseFlush.toJSON(e.flush):void 0),void 0!==e.info&&(r.info=e.info?t.ResponseInfo.toJSON(e.info):void 0),void 0!==e.setOption&&(r.setOption=e.setOption?t.ResponseSetOption.toJSON(e.setOption):void 0),void 0!==e.initChain&&(r.initChain=e.initChain?t.ResponseInitChain.toJSON(e.initChain):void 0),void 0!==e.query&&(r.query=e.query?t.ResponseQuery.toJSON(e.query):void 0),void 0!==e.beginBlock&&(r.beginBlock=e.beginBlock?t.ResponseBeginBlock.toJSON(e.beginBlock):void 0),void 0!==e.checkTx&&(r.checkTx=e.checkTx?t.ResponseCheckTx.toJSON(e.checkTx):void 0),void 0!==e.deliverTx&&(r.deliverTx=e.deliverTx?t.ResponseDeliverTx.toJSON(e.deliverTx):void 0),void 0!==e.endBlock&&(r.endBlock=e.endBlock?t.ResponseEndBlock.toJSON(e.endBlock):void 0),void 0!==e.commit&&(r.commit=e.commit?t.ResponseCommit.toJSON(e.commit):void 0),void 0!==e.listSnapshots&&(r.listSnapshots=e.listSnapshots?t.ResponseListSnapshots.toJSON(e.listSnapshots):void 0),void 0!==e.offerSnapshot&&(r.offerSnapshot=e.offerSnapshot?t.ResponseOfferSnapshot.toJSON(e.offerSnapshot):void 0),void 0!==e.loadSnapshotChunk&&(r.loadSnapshotChunk=e.loadSnapshotChunk?t.ResponseLoadSnapshotChunk.toJSON(e.loadSnapshotChunk):void 0),void 0!==e.applySnapshotChunk&&(r.applySnapshotChunk=e.applySnapshotChunk?t.ResponseApplySnapshotChunk.toJSON(e.applySnapshotChunk):void 0),r},fromPartial(e){const r=Object.assign({},J);return void 0!==e.exception&&null!==e.exception?r.exception=t.ResponseException.fromPartial(e.exception):r.exception=void 0,void 0!==e.echo&&null!==e.echo?r.echo=t.ResponseEcho.fromPartial(e.echo):r.echo=void 0,void 0!==e.flush&&null!==e.flush?r.flush=t.ResponseFlush.fromPartial(e.flush):r.flush=void 0,void 0!==e.info&&null!==e.info?r.info=t.ResponseInfo.fromPartial(e.info):r.info=void 0,void 0!==e.setOption&&null!==e.setOption?r.setOption=t.ResponseSetOption.fromPartial(e.setOption):r.setOption=void 0,void 0!==e.initChain&&null!==e.initChain?r.initChain=t.ResponseInitChain.fromPartial(e.initChain):r.initChain=void 0,void 0!==e.query&&null!==e.query?r.query=t.ResponseQuery.fromPartial(e.query):r.query=void 0,void 0!==e.beginBlock&&null!==e.beginBlock?r.beginBlock=t.ResponseBeginBlock.fromPartial(e.beginBlock):r.beginBlock=void 0,void 0!==e.checkTx&&null!==e.checkTx?r.checkTx=t.ResponseCheckTx.fromPartial(e.checkTx):r.checkTx=void 0,void 0!==e.deliverTx&&null!==e.deliverTx?r.deliverTx=t.ResponseDeliverTx.fromPartial(e.deliverTx):r.deliverTx=void 0,void 0!==e.endBlock&&null!==e.endBlock?r.endBlock=t.ResponseEndBlock.fromPartial(e.endBlock):r.endBlock=void 0,void 0!==e.commit&&null!==e.commit?r.commit=t.ResponseCommit.fromPartial(e.commit):r.commit=void 0,void 0!==e.listSnapshots&&null!==e.listSnapshots?r.listSnapshots=t.ResponseListSnapshots.fromPartial(e.listSnapshots):r.listSnapshots=void 0,void 0!==e.offerSnapshot&&null!==e.offerSnapshot?r.offerSnapshot=t.ResponseOfferSnapshot.fromPartial(e.offerSnapshot):r.offerSnapshot=void 0,void 0!==e.loadSnapshotChunk&&null!==e.loadSnapshotChunk?r.loadSnapshotChunk=t.ResponseLoadSnapshotChunk.fromPartial(e.loadSnapshotChunk):r.loadSnapshotChunk=void 0,void 0!==e.applySnapshotChunk&&null!==e.applySnapshotChunk?r.applySnapshotChunk=t.ResponseApplySnapshotChunk.fromPartial(e.applySnapshotChunk):r.applySnapshotChunk=void 0,r}};const H={error:""};t.ResponseException={encode:(e,t=i.default.Writer.create())=>(""!==e.error&&t.uint32(10).string(e.error),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},H);for(;r.pos>>3==1?o.error=r.string():r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},H);return void 0!==e.error&&null!==e.error?t.error=String(e.error):t.error="",t},toJSON(e){const t={};return void 0!==e.error&&(t.error=e.error),t},fromPartial(e){const t=Object.assign({},H);return void 0!==e.error&&null!==e.error?t.error=e.error:t.error="",t}};const L={message:""};t.ResponseEcho={encode:(e,t=i.default.Writer.create())=>(""!==e.message&&t.uint32(10).string(e.message),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},L);for(;r.pos>>3==1?o.message=r.string():r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},L);return void 0!==e.message&&null!==e.message?t.message=String(e.message):t.message="",t},toJSON(e){const t={};return void 0!==e.message&&(t.message=e.message),t},fromPartial(e){const t=Object.assign({},L);return void 0!==e.message&&null!==e.message?t.message=e.message:t.message="",t}};const z={};t.ResponseFlush={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},z);for(;r.posObject.assign({},z),toJSON:e=>({}),fromPartial:e=>Object.assign({},z)};const V={data:"",version:"",appVersion:o.default.UZERO,lastBlockHeight:o.default.ZERO};t.ResponseInfo={encode:(e,t=i.default.Writer.create())=>(""!==e.data&&t.uint32(10).string(e.data),""!==e.version&&t.uint32(18).string(e.version),e.appVersion.isZero()||t.uint32(24).uint64(e.appVersion),e.lastBlockHeight.isZero()||t.uint32(32).int64(e.lastBlockHeight),0!==e.lastBlockAppHash.length&&t.uint32(42).bytes(e.lastBlockAppHash),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},V);for(o.lastBlockAppHash=new Uint8Array;r.pos>>3){case 1:o.data=r.string();break;case 2:o.version=r.string();break;case 3:o.appVersion=r.uint64();break;case 4:o.lastBlockHeight=r.int64();break;case 5:o.lastBlockAppHash=r.bytes();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},V);return t.lastBlockAppHash=new Uint8Array,void 0!==e.data&&null!==e.data?t.data=String(e.data):t.data="",void 0!==e.version&&null!==e.version?t.version=String(e.version):t.version="",void 0!==e.appVersion&&null!==e.appVersion?t.appVersion=o.default.fromString(e.appVersion):t.appVersion=o.default.UZERO,void 0!==e.lastBlockHeight&&null!==e.lastBlockHeight?t.lastBlockHeight=o.default.fromString(e.lastBlockHeight):t.lastBlockHeight=o.default.ZERO,void 0!==e.lastBlockAppHash&&null!==e.lastBlockAppHash&&(t.lastBlockAppHash=me(e.lastBlockAppHash)),t},toJSON(e){const t={};return void 0!==e.data&&(t.data=e.data),void 0!==e.version&&(t.version=e.version),void 0!==e.appVersion&&(t.appVersion=(e.appVersion||o.default.UZERO).toString()),void 0!==e.lastBlockHeight&&(t.lastBlockHeight=(e.lastBlockHeight||o.default.ZERO).toString()),void 0!==e.lastBlockAppHash&&(t.lastBlockAppHash=ve(void 0!==e.lastBlockAppHash?e.lastBlockAppHash:new Uint8Array)),t},fromPartial(e){const t=Object.assign({},V);return void 0!==e.data&&null!==e.data?t.data=e.data:t.data="",void 0!==e.version&&null!==e.version?t.version=e.version:t.version="",void 0!==e.appVersion&&null!==e.appVersion?t.appVersion=e.appVersion:t.appVersion=o.default.UZERO,void 0!==e.lastBlockHeight&&null!==e.lastBlockHeight?t.lastBlockHeight=e.lastBlockHeight:t.lastBlockHeight=o.default.ZERO,void 0!==e.lastBlockAppHash&&null!==e.lastBlockAppHash?t.lastBlockAppHash=e.lastBlockAppHash:t.lastBlockAppHash=new Uint8Array,t}};const q={code:0,log:"",info:""};t.ResponseSetOption={encode:(e,t=i.default.Writer.create())=>(0!==e.code&&t.uint32(8).uint32(e.code),""!==e.log&&t.uint32(26).string(e.log),""!==e.info&&t.uint32(34).string(e.info),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},q);for(;r.pos>>3){case 1:o.code=r.uint32();break;case 3:o.log=r.string();break;case 4:o.info=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},q);return void 0!==e.code&&null!==e.code?t.code=Number(e.code):t.code=0,void 0!==e.log&&null!==e.log?t.log=String(e.log):t.log="",void 0!==e.info&&null!==e.info?t.info=String(e.info):t.info="",t},toJSON(e){const t={};return void 0!==e.code&&(t.code=e.code),void 0!==e.log&&(t.log=e.log),void 0!==e.info&&(t.info=e.info),t},fromPartial(e){const t=Object.assign({},q);return void 0!==e.code&&null!==e.code?t.code=e.code:t.code=0,void 0!==e.log&&null!==e.log?t.log=e.log:t.log="",void 0!==e.info&&null!==e.info?t.info=e.info:t.info="",t}};const F={};t.ResponseInitChain={encode(e,r=i.default.Writer.create()){void 0!==e.consensusParams&&t.ConsensusParams.encode(e.consensusParams,r.uint32(10).fork()).ldelim();for(const n of e.validators)t.ValidatorUpdate.encode(n,r.uint32(18).fork()).ldelim();return 0!==e.appHash.length&&r.uint32(26).bytes(e.appHash),r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},F);for(a.validators=[],a.appHash=new Uint8Array;n.pos>>3){case 1:a.consensusParams=t.ConsensusParams.decode(n,n.uint32());break;case 2:a.validators.push(t.ValidatorUpdate.decode(n,n.uint32()));break;case 3:a.appHash=n.bytes();break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},F);if(r.validators=[],r.appHash=new Uint8Array,void 0!==e.consensusParams&&null!==e.consensusParams?r.consensusParams=t.ConsensusParams.fromJSON(e.consensusParams):r.consensusParams=void 0,void 0!==e.validators&&null!==e.validators)for(const n of e.validators)r.validators.push(t.ValidatorUpdate.fromJSON(n));return void 0!==e.appHash&&null!==e.appHash&&(r.appHash=me(e.appHash)),r},toJSON(e){const r={};return void 0!==e.consensusParams&&(r.consensusParams=e.consensusParams?t.ConsensusParams.toJSON(e.consensusParams):void 0),e.validators?r.validators=e.validators.map((e=>e?t.ValidatorUpdate.toJSON(e):void 0)):r.validators=[],void 0!==e.appHash&&(r.appHash=ve(void 0!==e.appHash?e.appHash:new Uint8Array)),r},fromPartial(e){const r=Object.assign({},F);if(r.validators=[],void 0!==e.consensusParams&&null!==e.consensusParams?r.consensusParams=t.ConsensusParams.fromPartial(e.consensusParams):r.consensusParams=void 0,void 0!==e.validators&&null!==e.validators)for(const n of e.validators)r.validators.push(t.ValidatorUpdate.fromPartial(n));return void 0!==e.appHash&&null!==e.appHash?r.appHash=e.appHash:r.appHash=new Uint8Array,r}};const Z={code:0,log:"",info:"",index:o.default.ZERO,height:o.default.ZERO,codespace:""};t.ResponseQuery={encode:(e,t=i.default.Writer.create())=>(0!==e.code&&t.uint32(8).uint32(e.code),""!==e.log&&t.uint32(26).string(e.log),""!==e.info&&t.uint32(34).string(e.info),e.index.isZero()||t.uint32(40).int64(e.index),0!==e.key.length&&t.uint32(50).bytes(e.key),0!==e.value.length&&t.uint32(58).bytes(e.value),void 0!==e.proofOps&&s.ProofOps.encode(e.proofOps,t.uint32(66).fork()).ldelim(),e.height.isZero()||t.uint32(72).int64(e.height),""!==e.codespace&&t.uint32(82).string(e.codespace),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},Z);for(o.key=new Uint8Array,o.value=new Uint8Array;r.pos>>3){case 1:o.code=r.uint32();break;case 3:o.log=r.string();break;case 4:o.info=r.string();break;case 5:o.index=r.int64();break;case 6:o.key=r.bytes();break;case 7:o.value=r.bytes();break;case 8:o.proofOps=s.ProofOps.decode(r,r.uint32());break;case 9:o.height=r.int64();break;case 10:o.codespace=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},Z);return t.key=new Uint8Array,t.value=new Uint8Array,void 0!==e.code&&null!==e.code?t.code=Number(e.code):t.code=0,void 0!==e.log&&null!==e.log?t.log=String(e.log):t.log="",void 0!==e.info&&null!==e.info?t.info=String(e.info):t.info="",void 0!==e.index&&null!==e.index?t.index=o.default.fromString(e.index):t.index=o.default.ZERO,void 0!==e.key&&null!==e.key&&(t.key=me(e.key)),void 0!==e.value&&null!==e.value&&(t.value=me(e.value)),void 0!==e.proofOps&&null!==e.proofOps?t.proofOps=s.ProofOps.fromJSON(e.proofOps):t.proofOps=void 0,void 0!==e.height&&null!==e.height?t.height=o.default.fromString(e.height):t.height=o.default.ZERO,void 0!==e.codespace&&null!==e.codespace?t.codespace=String(e.codespace):t.codespace="",t},toJSON(e){const t={};return void 0!==e.code&&(t.code=e.code),void 0!==e.log&&(t.log=e.log),void 0!==e.info&&(t.info=e.info),void 0!==e.index&&(t.index=(e.index||o.default.ZERO).toString()),void 0!==e.key&&(t.key=ve(void 0!==e.key?e.key:new Uint8Array)),void 0!==e.value&&(t.value=ve(void 0!==e.value?e.value:new Uint8Array)),void 0!==e.proofOps&&(t.proofOps=e.proofOps?s.ProofOps.toJSON(e.proofOps):void 0),void 0!==e.height&&(t.height=(e.height||o.default.ZERO).toString()),void 0!==e.codespace&&(t.codespace=e.codespace),t},fromPartial(e){const t=Object.assign({},Z);return void 0!==e.code&&null!==e.code?t.code=e.code:t.code=0,void 0!==e.log&&null!==e.log?t.log=e.log:t.log="",void 0!==e.info&&null!==e.info?t.info=e.info:t.info="",void 0!==e.index&&null!==e.index?t.index=e.index:t.index=o.default.ZERO,void 0!==e.key&&null!==e.key?t.key=e.key:t.key=new Uint8Array,void 0!==e.value&&null!==e.value?t.value=e.value:t.value=new Uint8Array,void 0!==e.proofOps&&null!==e.proofOps?t.proofOps=s.ProofOps.fromPartial(e.proofOps):t.proofOps=void 0,void 0!==e.height&&null!==e.height?t.height=e.height:t.height=o.default.ZERO,void 0!==e.codespace&&null!==e.codespace?t.codespace=e.codespace:t.codespace="",t}};const W={};t.ResponseBeginBlock={encode(e,r=i.default.Writer.create()){for(const n of e.events)t.Event.encode(n,r.uint32(10).fork()).ldelim();return r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},W);for(a.events=[];n.pos>>3==1?a.events.push(t.Event.decode(n,n.uint32())):n.skipType(7&e)}return a},fromJSON(e){const r=Object.assign({},W);if(r.events=[],void 0!==e.events&&null!==e.events)for(const n of e.events)r.events.push(t.Event.fromJSON(n));return r},toJSON(e){const r={};return e.events?r.events=e.events.map((e=>e?t.Event.toJSON(e):void 0)):r.events=[],r},fromPartial(e){const r=Object.assign({},W);if(r.events=[],void 0!==e.events&&null!==e.events)for(const n of e.events)r.events.push(t.Event.fromPartial(n));return r}};const K={code:0,log:"",info:"",gasWanted:o.default.ZERO,gasUsed:o.default.ZERO,codespace:""};t.ResponseCheckTx={encode(e,r=i.default.Writer.create()){0!==e.code&&r.uint32(8).uint32(e.code),0!==e.data.length&&r.uint32(18).bytes(e.data),""!==e.log&&r.uint32(26).string(e.log),""!==e.info&&r.uint32(34).string(e.info),e.gasWanted.isZero()||r.uint32(40).int64(e.gasWanted),e.gasUsed.isZero()||r.uint32(48).int64(e.gasUsed);for(const n of e.events)t.Event.encode(n,r.uint32(58).fork()).ldelim();return""!==e.codespace&&r.uint32(66).string(e.codespace),r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},K);for(a.events=[],a.data=new Uint8Array;n.pos>>3){case 1:a.code=n.uint32();break;case 2:a.data=n.bytes();break;case 3:a.log=n.string();break;case 4:a.info=n.string();break;case 5:a.gasWanted=n.int64();break;case 6:a.gasUsed=n.int64();break;case 7:a.events.push(t.Event.decode(n,n.uint32()));break;case 8:a.codespace=n.string();break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},K);if(r.events=[],r.data=new Uint8Array,void 0!==e.code&&null!==e.code?r.code=Number(e.code):r.code=0,void 0!==e.data&&null!==e.data&&(r.data=me(e.data)),void 0!==e.log&&null!==e.log?r.log=String(e.log):r.log="",void 0!==e.info&&null!==e.info?r.info=String(e.info):r.info="",void 0!==e.gasWanted&&null!==e.gasWanted?r.gasWanted=o.default.fromString(e.gasWanted):r.gasWanted=o.default.ZERO,void 0!==e.gasUsed&&null!==e.gasUsed?r.gasUsed=o.default.fromString(e.gasUsed):r.gasUsed=o.default.ZERO,void 0!==e.events&&null!==e.events)for(const n of e.events)r.events.push(t.Event.fromJSON(n));return void 0!==e.codespace&&null!==e.codespace?r.codespace=String(e.codespace):r.codespace="",r},toJSON(e){const r={};return void 0!==e.code&&(r.code=e.code),void 0!==e.data&&(r.data=ve(void 0!==e.data?e.data:new Uint8Array)),void 0!==e.log&&(r.log=e.log),void 0!==e.info&&(r.info=e.info),void 0!==e.gasWanted&&(r.gasWanted=(e.gasWanted||o.default.ZERO).toString()),void 0!==e.gasUsed&&(r.gasUsed=(e.gasUsed||o.default.ZERO).toString()),e.events?r.events=e.events.map((e=>e?t.Event.toJSON(e):void 0)):r.events=[],void 0!==e.codespace&&(r.codespace=e.codespace),r},fromPartial(e){const r=Object.assign({},K);if(r.events=[],void 0!==e.code&&null!==e.code?r.code=e.code:r.code=0,void 0!==e.data&&null!==e.data?r.data=e.data:r.data=new Uint8Array,void 0!==e.log&&null!==e.log?r.log=e.log:r.log="",void 0!==e.info&&null!==e.info?r.info=e.info:r.info="",void 0!==e.gasWanted&&null!==e.gasWanted?r.gasWanted=e.gasWanted:r.gasWanted=o.default.ZERO,void 0!==e.gasUsed&&null!==e.gasUsed?r.gasUsed=e.gasUsed:r.gasUsed=o.default.ZERO,void 0!==e.events&&null!==e.events)for(const n of e.events)r.events.push(t.Event.fromPartial(n));return void 0!==e.codespace&&null!==e.codespace?r.codespace=e.codespace:r.codespace="",r}};const G={code:0,log:"",info:"",gasWanted:o.default.ZERO,gasUsed:o.default.ZERO,codespace:""};t.ResponseDeliverTx={encode(e,r=i.default.Writer.create()){0!==e.code&&r.uint32(8).uint32(e.code),0!==e.data.length&&r.uint32(18).bytes(e.data),""!==e.log&&r.uint32(26).string(e.log),""!==e.info&&r.uint32(34).string(e.info),e.gasWanted.isZero()||r.uint32(40).int64(e.gasWanted),e.gasUsed.isZero()||r.uint32(48).int64(e.gasUsed);for(const n of e.events)t.Event.encode(n,r.uint32(58).fork()).ldelim();return""!==e.codespace&&r.uint32(66).string(e.codespace),r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},G);for(a.events=[],a.data=new Uint8Array;n.pos>>3){case 1:a.code=n.uint32();break;case 2:a.data=n.bytes();break;case 3:a.log=n.string();break;case 4:a.info=n.string();break;case 5:a.gasWanted=n.int64();break;case 6:a.gasUsed=n.int64();break;case 7:a.events.push(t.Event.decode(n,n.uint32()));break;case 8:a.codespace=n.string();break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},G);if(r.events=[],r.data=new Uint8Array,void 0!==e.code&&null!==e.code?r.code=Number(e.code):r.code=0,void 0!==e.data&&null!==e.data&&(r.data=me(e.data)),void 0!==e.log&&null!==e.log?r.log=String(e.log):r.log="",void 0!==e.info&&null!==e.info?r.info=String(e.info):r.info="",void 0!==e.gasWanted&&null!==e.gasWanted?r.gasWanted=o.default.fromString(e.gasWanted):r.gasWanted=o.default.ZERO,void 0!==e.gasUsed&&null!==e.gasUsed?r.gasUsed=o.default.fromString(e.gasUsed):r.gasUsed=o.default.ZERO,void 0!==e.events&&null!==e.events)for(const n of e.events)r.events.push(t.Event.fromJSON(n));return void 0!==e.codespace&&null!==e.codespace?r.codespace=String(e.codespace):r.codespace="",r},toJSON(e){const r={};return void 0!==e.code&&(r.code=e.code),void 0!==e.data&&(r.data=ve(void 0!==e.data?e.data:new Uint8Array)),void 0!==e.log&&(r.log=e.log),void 0!==e.info&&(r.info=e.info),void 0!==e.gasWanted&&(r.gasWanted=(e.gasWanted||o.default.ZERO).toString()),void 0!==e.gasUsed&&(r.gasUsed=(e.gasUsed||o.default.ZERO).toString()),e.events?r.events=e.events.map((e=>e?t.Event.toJSON(e):void 0)):r.events=[],void 0!==e.codespace&&(r.codespace=e.codespace),r},fromPartial(e){const r=Object.assign({},G);if(r.events=[],void 0!==e.code&&null!==e.code?r.code=e.code:r.code=0,void 0!==e.data&&null!==e.data?r.data=e.data:r.data=new Uint8Array,void 0!==e.log&&null!==e.log?r.log=e.log:r.log="",void 0!==e.info&&null!==e.info?r.info=e.info:r.info="",void 0!==e.gasWanted&&null!==e.gasWanted?r.gasWanted=e.gasWanted:r.gasWanted=o.default.ZERO,void 0!==e.gasUsed&&null!==e.gasUsed?r.gasUsed=e.gasUsed:r.gasUsed=o.default.ZERO,void 0!==e.events&&null!==e.events)for(const n of e.events)r.events.push(t.Event.fromPartial(n));return void 0!==e.codespace&&null!==e.codespace?r.codespace=e.codespace:r.codespace="",r}};const Y={};t.ResponseEndBlock={encode(e,r=i.default.Writer.create()){for(const n of e.validatorUpdates)t.ValidatorUpdate.encode(n,r.uint32(10).fork()).ldelim();void 0!==e.consensusParamUpdates&&t.ConsensusParams.encode(e.consensusParamUpdates,r.uint32(18).fork()).ldelim();for(const n of e.events)t.Event.encode(n,r.uint32(26).fork()).ldelim();return r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},Y);for(a.validatorUpdates=[],a.events=[];n.pos>>3){case 1:a.validatorUpdates.push(t.ValidatorUpdate.decode(n,n.uint32()));break;case 2:a.consensusParamUpdates=t.ConsensusParams.decode(n,n.uint32());break;case 3:a.events.push(t.Event.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},Y);if(r.validatorUpdates=[],r.events=[],void 0!==e.validatorUpdates&&null!==e.validatorUpdates)for(const n of e.validatorUpdates)r.validatorUpdates.push(t.ValidatorUpdate.fromJSON(n));if(void 0!==e.consensusParamUpdates&&null!==e.consensusParamUpdates?r.consensusParamUpdates=t.ConsensusParams.fromJSON(e.consensusParamUpdates):r.consensusParamUpdates=void 0,void 0!==e.events&&null!==e.events)for(const n of e.events)r.events.push(t.Event.fromJSON(n));return r},toJSON(e){const r={};return e.validatorUpdates?r.validatorUpdates=e.validatorUpdates.map((e=>e?t.ValidatorUpdate.toJSON(e):void 0)):r.validatorUpdates=[],void 0!==e.consensusParamUpdates&&(r.consensusParamUpdates=e.consensusParamUpdates?t.ConsensusParams.toJSON(e.consensusParamUpdates):void 0),e.events?r.events=e.events.map((e=>e?t.Event.toJSON(e):void 0)):r.events=[],r},fromPartial(e){const r=Object.assign({},Y);if(r.validatorUpdates=[],r.events=[],void 0!==e.validatorUpdates&&null!==e.validatorUpdates)for(const n of e.validatorUpdates)r.validatorUpdates.push(t.ValidatorUpdate.fromPartial(n));if(void 0!==e.consensusParamUpdates&&null!==e.consensusParamUpdates?r.consensusParamUpdates=t.ConsensusParams.fromPartial(e.consensusParamUpdates):r.consensusParamUpdates=void 0,void 0!==e.events&&null!==e.events)for(const n of e.events)r.events.push(t.Event.fromPartial(n));return r}};const $={retainHeight:o.default.ZERO};t.ResponseCommit={encode:(e,t=i.default.Writer.create())=>(0!==e.data.length&&t.uint32(18).bytes(e.data),e.retainHeight.isZero()||t.uint32(24).int64(e.retainHeight),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},$);for(o.data=new Uint8Array;r.pos>>3){case 2:o.data=r.bytes();break;case 3:o.retainHeight=r.int64();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},$);return t.data=new Uint8Array,void 0!==e.data&&null!==e.data&&(t.data=me(e.data)),void 0!==e.retainHeight&&null!==e.retainHeight?t.retainHeight=o.default.fromString(e.retainHeight):t.retainHeight=o.default.ZERO,t},toJSON(e){const t={};return void 0!==e.data&&(t.data=ve(void 0!==e.data?e.data:new Uint8Array)),void 0!==e.retainHeight&&(t.retainHeight=(e.retainHeight||o.default.ZERO).toString()),t},fromPartial(e){const t=Object.assign({},$);return void 0!==e.data&&null!==e.data?t.data=e.data:t.data=new Uint8Array,void 0!==e.retainHeight&&null!==e.retainHeight?t.retainHeight=e.retainHeight:t.retainHeight=o.default.ZERO,t}};const X={};t.ResponseListSnapshots={encode(e,r=i.default.Writer.create()){for(const n of e.snapshots)t.Snapshot.encode(n,r.uint32(10).fork()).ldelim();return r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},X);for(a.snapshots=[];n.pos>>3==1?a.snapshots.push(t.Snapshot.decode(n,n.uint32())):n.skipType(7&e)}return a},fromJSON(e){const r=Object.assign({},X);if(r.snapshots=[],void 0!==e.snapshots&&null!==e.snapshots)for(const n of e.snapshots)r.snapshots.push(t.Snapshot.fromJSON(n));return r},toJSON(e){const r={};return e.snapshots?r.snapshots=e.snapshots.map((e=>e?t.Snapshot.toJSON(e):void 0)):r.snapshots=[],r},fromPartial(e){const r=Object.assign({},X);if(r.snapshots=[],void 0!==e.snapshots&&null!==e.snapshots)for(const n of e.snapshots)r.snapshots.push(t.Snapshot.fromPartial(n));return r}};const Q={result:0};t.ResponseOfferSnapshot={encode:(e,t=i.default.Writer.create())=>(0!==e.result&&t.uint32(8).int32(e.result),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},Q);for(;r.pos>>3==1?o.result=r.int32():r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},Q);return void 0!==e.result&&null!==e.result?t.result=y(e.result):t.result=0,t},toJSON(e){const t={};return void 0!==e.result&&(t.result=w(e.result)),t},fromPartial(e){const t=Object.assign({},Q);return void 0!==e.result&&null!==e.result?t.result=e.result:t.result=0,t}};const ee={};t.ResponseLoadSnapshotChunk={encode:(e,t=i.default.Writer.create())=>(0!==e.chunk.length&&t.uint32(10).bytes(e.chunk),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},ee);for(o.chunk=new Uint8Array;r.pos>>3==1?o.chunk=r.bytes():r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},ee);return t.chunk=new Uint8Array,void 0!==e.chunk&&null!==e.chunk&&(t.chunk=me(e.chunk)),t},toJSON(e){const t={};return void 0!==e.chunk&&(t.chunk=ve(void 0!==e.chunk?e.chunk:new Uint8Array)),t},fromPartial(e){const t=Object.assign({},ee);return void 0!==e.chunk&&null!==e.chunk?t.chunk=e.chunk:t.chunk=new Uint8Array,t}};const te={result:0,refetchChunks:0,rejectSenders:""};t.ResponseApplySnapshotChunk={encode(e,t=i.default.Writer.create()){0!==e.result&&t.uint32(8).int32(e.result),t.uint32(18).fork();for(const r of e.refetchChunks)t.uint32(r);t.ldelim();for(const r of e.rejectSenders)t.uint32(26).string(r);return t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},te);for(o.refetchChunks=[],o.rejectSenders=[];r.pos>>3){case 1:o.result=r.int32();break;case 2:if(2==(7&e)){const e=r.uint32()+r.pos;for(;r.pose)):t.refetchChunks=[],e.rejectSenders?t.rejectSenders=e.rejectSenders.map((e=>e)):t.rejectSenders=[],t},fromPartial(e){const t=Object.assign({},te);if(t.refetchChunks=[],t.rejectSenders=[],void 0!==e.result&&null!==e.result?t.result=e.result:t.result=0,void 0!==e.refetchChunks&&null!==e.refetchChunks)for(const r of e.refetchChunks)t.refetchChunks.push(r);if(void 0!==e.rejectSenders&&null!==e.rejectSenders)for(const r of e.rejectSenders)t.rejectSenders.push(r);return t}};const re={};t.ConsensusParams={encode:(e,r=i.default.Writer.create())=>(void 0!==e.block&&t.BlockParams.encode(e.block,r.uint32(10).fork()).ldelim(),void 0!==e.evidence&&u.EvidenceParams.encode(e.evidence,r.uint32(18).fork()).ldelim(),void 0!==e.validator&&u.ValidatorParams.encode(e.validator,r.uint32(26).fork()).ldelim(),void 0!==e.version&&u.VersionParams.encode(e.version,r.uint32(34).fork()).ldelim(),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},re);for(;n.pos>>3){case 1:a.block=t.BlockParams.decode(n,n.uint32());break;case 2:a.evidence=u.EvidenceParams.decode(n,n.uint32());break;case 3:a.validator=u.ValidatorParams.decode(n,n.uint32());break;case 4:a.version=u.VersionParams.decode(n,n.uint32());break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},re);return void 0!==e.block&&null!==e.block?r.block=t.BlockParams.fromJSON(e.block):r.block=void 0,void 0!==e.evidence&&null!==e.evidence?r.evidence=u.EvidenceParams.fromJSON(e.evidence):r.evidence=void 0,void 0!==e.validator&&null!==e.validator?r.validator=u.ValidatorParams.fromJSON(e.validator):r.validator=void 0,void 0!==e.version&&null!==e.version?r.version=u.VersionParams.fromJSON(e.version):r.version=void 0,r},toJSON(e){const r={};return void 0!==e.block&&(r.block=e.block?t.BlockParams.toJSON(e.block):void 0),void 0!==e.evidence&&(r.evidence=e.evidence?u.EvidenceParams.toJSON(e.evidence):void 0),void 0!==e.validator&&(r.validator=e.validator?u.ValidatorParams.toJSON(e.validator):void 0),void 0!==e.version&&(r.version=e.version?u.VersionParams.toJSON(e.version):void 0),r},fromPartial(e){const r=Object.assign({},re);return void 0!==e.block&&null!==e.block?r.block=t.BlockParams.fromPartial(e.block):r.block=void 0,void 0!==e.evidence&&null!==e.evidence?r.evidence=u.EvidenceParams.fromPartial(e.evidence):r.evidence=void 0,void 0!==e.validator&&null!==e.validator?r.validator=u.ValidatorParams.fromPartial(e.validator):r.validator=void 0,void 0!==e.version&&null!==e.version?r.version=u.VersionParams.fromPartial(e.version):r.version=void 0,r}};const ne={maxBytes:o.default.ZERO,maxGas:o.default.ZERO};t.BlockParams={encode:(e,t=i.default.Writer.create())=>(e.maxBytes.isZero()||t.uint32(8).int64(e.maxBytes),e.maxGas.isZero()||t.uint32(16).int64(e.maxGas),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},ne);for(;r.pos>>3){case 1:o.maxBytes=r.int64();break;case 2:o.maxGas=r.int64();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},ne);return void 0!==e.maxBytes&&null!==e.maxBytes?t.maxBytes=o.default.fromString(e.maxBytes):t.maxBytes=o.default.ZERO,void 0!==e.maxGas&&null!==e.maxGas?t.maxGas=o.default.fromString(e.maxGas):t.maxGas=o.default.ZERO,t},toJSON(e){const t={};return void 0!==e.maxBytes&&(t.maxBytes=(e.maxBytes||o.default.ZERO).toString()),void 0!==e.maxGas&&(t.maxGas=(e.maxGas||o.default.ZERO).toString()),t},fromPartial(e){const t=Object.assign({},ne);return void 0!==e.maxBytes&&null!==e.maxBytes?t.maxBytes=e.maxBytes:t.maxBytes=o.default.ZERO,void 0!==e.maxGas&&null!==e.maxGas?t.maxGas=e.maxGas:t.maxGas=o.default.ZERO,t}};const oe={round:0};t.LastCommitInfo={encode(e,r=i.default.Writer.create()){0!==e.round&&r.uint32(8).int32(e.round);for(const n of e.votes)t.VoteInfo.encode(n,r.uint32(18).fork()).ldelim();return r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},oe);for(a.votes=[];n.pos>>3){case 1:a.round=n.int32();break;case 2:a.votes.push(t.VoteInfo.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},oe);if(r.votes=[],void 0!==e.round&&null!==e.round?r.round=Number(e.round):r.round=0,void 0!==e.votes&&null!==e.votes)for(const n of e.votes)r.votes.push(t.VoteInfo.fromJSON(n));return r},toJSON(e){const r={};return void 0!==e.round&&(r.round=e.round),e.votes?r.votes=e.votes.map((e=>e?t.VoteInfo.toJSON(e):void 0)):r.votes=[],r},fromPartial(e){const r=Object.assign({},oe);if(r.votes=[],void 0!==e.round&&null!==e.round?r.round=e.round:r.round=0,void 0!==e.votes&&null!==e.votes)for(const n of e.votes)r.votes.push(t.VoteInfo.fromPartial(n));return r}};const ie={type:""};t.Event={encode(e,r=i.default.Writer.create()){""!==e.type&&r.uint32(10).string(e.type);for(const n of e.attributes)t.EventAttribute.encode(n,r.uint32(18).fork()).ldelim();return r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},ie);for(a.attributes=[];n.pos>>3){case 1:a.type=n.string();break;case 2:a.attributes.push(t.EventAttribute.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},ie);if(r.attributes=[],void 0!==e.type&&null!==e.type?r.type=String(e.type):r.type="",void 0!==e.attributes&&null!==e.attributes)for(const n of e.attributes)r.attributes.push(t.EventAttribute.fromJSON(n));return r},toJSON(e){const r={};return void 0!==e.type&&(r.type=e.type),e.attributes?r.attributes=e.attributes.map((e=>e?t.EventAttribute.toJSON(e):void 0)):r.attributes=[],r},fromPartial(e){const r=Object.assign({},ie);if(r.attributes=[],void 0!==e.type&&null!==e.type?r.type=e.type:r.type="",void 0!==e.attributes&&null!==e.attributes)for(const n of e.attributes)r.attributes.push(t.EventAttribute.fromPartial(n));return r}};const ae={index:!1};t.EventAttribute={encode:(e,t=i.default.Writer.create())=>(0!==e.key.length&&t.uint32(10).bytes(e.key),0!==e.value.length&&t.uint32(18).bytes(e.value),!0===e.index&&t.uint32(24).bool(e.index),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},ae);for(o.key=new Uint8Array,o.value=new Uint8Array;r.pos>>3){case 1:o.key=r.bytes();break;case 2:o.value=r.bytes();break;case 3:o.index=r.bool();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},ae);return t.key=new Uint8Array,t.value=new Uint8Array,void 0!==e.key&&null!==e.key&&(t.key=me(e.key)),void 0!==e.value&&null!==e.value&&(t.value=me(e.value)),void 0!==e.index&&null!==e.index?t.index=Boolean(e.index):t.index=!1,t},toJSON(e){const t={};return void 0!==e.key&&(t.key=ve(void 0!==e.key?e.key:new Uint8Array)),void 0!==e.value&&(t.value=ve(void 0!==e.value?e.value:new Uint8Array)),void 0!==e.index&&(t.index=e.index),t},fromPartial(e){const t=Object.assign({},ae);return void 0!==e.key&&null!==e.key?t.key=e.key:t.key=new Uint8Array,void 0!==e.value&&null!==e.value?t.value=e.value:t.value=new Uint8Array,void 0!==e.index&&null!==e.index?t.index=e.index:t.index=!1,t}};const se={height:o.default.ZERO,index:0};t.TxResult={encode:(e,r=i.default.Writer.create())=>(e.height.isZero()||r.uint32(8).int64(e.height),0!==e.index&&r.uint32(16).uint32(e.index),0!==e.tx.length&&r.uint32(26).bytes(e.tx),void 0!==e.result&&t.ResponseDeliverTx.encode(e.result,r.uint32(34).fork()).ldelim(),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},se);for(a.tx=new Uint8Array;n.pos>>3){case 1:a.height=n.int64();break;case 2:a.index=n.uint32();break;case 3:a.tx=n.bytes();break;case 4:a.result=t.ResponseDeliverTx.decode(n,n.uint32());break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},se);return r.tx=new Uint8Array,void 0!==e.height&&null!==e.height?r.height=o.default.fromString(e.height):r.height=o.default.ZERO,void 0!==e.index&&null!==e.index?r.index=Number(e.index):r.index=0,void 0!==e.tx&&null!==e.tx&&(r.tx=me(e.tx)),void 0!==e.result&&null!==e.result?r.result=t.ResponseDeliverTx.fromJSON(e.result):r.result=void 0,r},toJSON(e){const r={};return void 0!==e.height&&(r.height=(e.height||o.default.ZERO).toString()),void 0!==e.index&&(r.index=e.index),void 0!==e.tx&&(r.tx=ve(void 0!==e.tx?e.tx:new Uint8Array)),void 0!==e.result&&(r.result=e.result?t.ResponseDeliverTx.toJSON(e.result):void 0),r},fromPartial(e){const r=Object.assign({},se);return void 0!==e.height&&null!==e.height?r.height=e.height:r.height=o.default.ZERO,void 0!==e.index&&null!==e.index?r.index=e.index:r.index=0,void 0!==e.tx&&null!==e.tx?r.tx=e.tx:r.tx=new Uint8Array,void 0!==e.result&&null!==e.result?r.result=t.ResponseDeliverTx.fromPartial(e.result):r.result=void 0,r}};const ue={power:o.default.ZERO};t.Validator={encode:(e,t=i.default.Writer.create())=>(0!==e.address.length&&t.uint32(10).bytes(e.address),e.power.isZero()||t.uint32(24).int64(e.power),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},ue);for(o.address=new Uint8Array;r.pos>>3){case 1:o.address=r.bytes();break;case 3:o.power=r.int64();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},ue);return t.address=new Uint8Array,void 0!==e.address&&null!==e.address&&(t.address=me(e.address)),void 0!==e.power&&null!==e.power?t.power=o.default.fromString(e.power):t.power=o.default.ZERO,t},toJSON(e){const t={};return void 0!==e.address&&(t.address=ve(void 0!==e.address?e.address:new Uint8Array)),void 0!==e.power&&(t.power=(e.power||o.default.ZERO).toString()),t},fromPartial(e){const t=Object.assign({},ue);return void 0!==e.address&&null!==e.address?t.address=e.address:t.address=new Uint8Array,void 0!==e.power&&null!==e.power?t.power=e.power:t.power=o.default.ZERO,t}};const ce={power:o.default.ZERO};t.ValidatorUpdate={encode:(e,t=i.default.Writer.create())=>(void 0!==e.pubKey&&c.PublicKey.encode(e.pubKey,t.uint32(10).fork()).ldelim(),e.power.isZero()||t.uint32(16).int64(e.power),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},ce);for(;r.pos>>3){case 1:o.pubKey=c.PublicKey.decode(r,r.uint32());break;case 2:o.power=r.int64();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},ce);return void 0!==e.pubKey&&null!==e.pubKey?t.pubKey=c.PublicKey.fromJSON(e.pubKey):t.pubKey=void 0,void 0!==e.power&&null!==e.power?t.power=o.default.fromString(e.power):t.power=o.default.ZERO,t},toJSON(e){const t={};return void 0!==e.pubKey&&(t.pubKey=e.pubKey?c.PublicKey.toJSON(e.pubKey):void 0),void 0!==e.power&&(t.power=(e.power||o.default.ZERO).toString()),t},fromPartial(e){const t=Object.assign({},ce);return void 0!==e.pubKey&&null!==e.pubKey?t.pubKey=c.PublicKey.fromPartial(e.pubKey):t.pubKey=void 0,void 0!==e.power&&null!==e.power?t.power=e.power:t.power=o.default.ZERO,t}};const de={signedLastBlock:!1};t.VoteInfo={encode:(e,r=i.default.Writer.create())=>(void 0!==e.validator&&t.Validator.encode(e.validator,r.uint32(10).fork()).ldelim(),!0===e.signedLastBlock&&r.uint32(16).bool(e.signedLastBlock),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},de);for(;n.pos>>3){case 1:a.validator=t.Validator.decode(n,n.uint32());break;case 2:a.signedLastBlock=n.bool();break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},de);return void 0!==e.validator&&null!==e.validator?r.validator=t.Validator.fromJSON(e.validator):r.validator=void 0,void 0!==e.signedLastBlock&&null!==e.signedLastBlock?r.signedLastBlock=Boolean(e.signedLastBlock):r.signedLastBlock=!1,r},toJSON(e){const r={};return void 0!==e.validator&&(r.validator=e.validator?t.Validator.toJSON(e.validator):void 0),void 0!==e.signedLastBlock&&(r.signedLastBlock=e.signedLastBlock),r},fromPartial(e){const r=Object.assign({},de);return void 0!==e.validator&&null!==e.validator?r.validator=t.Validator.fromPartial(e.validator):r.validator=void 0,void 0!==e.signedLastBlock&&null!==e.signedLastBlock?r.signedLastBlock=e.signedLastBlock:r.signedLastBlock=!1,r}};const le={type:0,height:o.default.ZERO,totalVotingPower:o.default.ZERO};t.Evidence={encode:(e,r=i.default.Writer.create())=>(0!==e.type&&r.uint32(8).int32(e.type),void 0!==e.validator&&t.Validator.encode(e.validator,r.uint32(18).fork()).ldelim(),e.height.isZero()||r.uint32(24).int64(e.height),void 0!==e.time&&d.Timestamp.encode(be(e.time),r.uint32(34).fork()).ldelim(),e.totalVotingPower.isZero()||r.uint32(40).int64(e.totalVotingPower),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},le);for(;n.pos>>3){case 1:a.type=n.int32();break;case 2:a.validator=t.Validator.decode(n,n.uint32());break;case 3:a.height=n.int64();break;case 4:a.time=ye(d.Timestamp.decode(n,n.uint32()));break;case 5:a.totalVotingPower=n.int64();break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},le);return void 0!==e.type&&null!==e.type?r.type=v(e.type):r.type=0,void 0!==e.validator&&null!==e.validator?r.validator=t.Validator.fromJSON(e.validator):r.validator=void 0,void 0!==e.height&&null!==e.height?r.height=o.default.fromString(e.height):r.height=o.default.ZERO,void 0!==e.time&&null!==e.time?r.time=we(e.time):r.time=void 0,void 0!==e.totalVotingPower&&null!==e.totalVotingPower?r.totalVotingPower=o.default.fromString(e.totalVotingPower):r.totalVotingPower=o.default.ZERO,r},toJSON(e){const r={};return void 0!==e.type&&(r.type=b(e.type)),void 0!==e.validator&&(r.validator=e.validator?t.Validator.toJSON(e.validator):void 0),void 0!==e.height&&(r.height=(e.height||o.default.ZERO).toString()),void 0!==e.time&&(r.time=e.time.toISOString()),void 0!==e.totalVotingPower&&(r.totalVotingPower=(e.totalVotingPower||o.default.ZERO).toString()),r},fromPartial(e){const r=Object.assign({},le);return void 0!==e.type&&null!==e.type?r.type=e.type:r.type=0,void 0!==e.validator&&null!==e.validator?r.validator=t.Validator.fromPartial(e.validator):r.validator=void 0,void 0!==e.height&&null!==e.height?r.height=e.height:r.height=o.default.ZERO,void 0!==e.time&&null!==e.time?r.time=e.time:r.time=void 0,void 0!==e.totalVotingPower&&null!==e.totalVotingPower?r.totalVotingPower=e.totalVotingPower:r.totalVotingPower=o.default.ZERO,r}};const fe={height:o.default.UZERO,format:0,chunks:0};t.Snapshot={encode:(e,t=i.default.Writer.create())=>(e.height.isZero()||t.uint32(8).uint64(e.height),0!==e.format&&t.uint32(16).uint32(e.format),0!==e.chunks&&t.uint32(24).uint32(e.chunks),0!==e.hash.length&&t.uint32(34).bytes(e.hash),0!==e.metadata.length&&t.uint32(42).bytes(e.metadata),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},fe);for(o.hash=new Uint8Array,o.metadata=new Uint8Array;r.pos>>3){case 1:o.height=r.uint64();break;case 2:o.format=r.uint32();break;case 3:o.chunks=r.uint32();break;case 4:o.hash=r.bytes();break;case 5:o.metadata=r.bytes();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},fe);return t.hash=new Uint8Array,t.metadata=new Uint8Array,void 0!==e.height&&null!==e.height?t.height=o.default.fromString(e.height):t.height=o.default.UZERO,void 0!==e.format&&null!==e.format?t.format=Number(e.format):t.format=0,void 0!==e.chunks&&null!==e.chunks?t.chunks=Number(e.chunks):t.chunks=0,void 0!==e.hash&&null!==e.hash&&(t.hash=me(e.hash)),void 0!==e.metadata&&null!==e.metadata&&(t.metadata=me(e.metadata)),t},toJSON(e){const t={};return void 0!==e.height&&(t.height=(e.height||o.default.UZERO).toString()),void 0!==e.format&&(t.format=e.format),void 0!==e.chunks&&(t.chunks=e.chunks),void 0!==e.hash&&(t.hash=ve(void 0!==e.hash?e.hash:new Uint8Array)),void 0!==e.metadata&&(t.metadata=ve(void 0!==e.metadata?e.metadata:new Uint8Array)),t},fromPartial(e){const t=Object.assign({},fe);return void 0!==e.height&&null!==e.height?t.height=e.height:t.height=o.default.UZERO,void 0!==e.format&&null!==e.format?t.format=e.format:t.format=0,void 0!==e.chunks&&null!==e.chunks?t.chunks=e.chunks:t.chunks=0,void 0!==e.hash&&null!==e.hash?t.hash=e.hash:t.hash=new Uint8Array,void 0!==e.metadata&&null!==e.metadata?t.metadata=e.metadata:t.metadata=new Uint8Array,t}},t.ABCIApplicationClientImpl=class{constructor(e){this.rpc=e,this.Echo=this.Echo.bind(this),this.Flush=this.Flush.bind(this),this.Info=this.Info.bind(this),this.SetOption=this.SetOption.bind(this),this.DeliverTx=this.DeliverTx.bind(this),this.CheckTx=this.CheckTx.bind(this),this.Query=this.Query.bind(this),this.Commit=this.Commit.bind(this),this.InitChain=this.InitChain.bind(this),this.BeginBlock=this.BeginBlock.bind(this),this.EndBlock=this.EndBlock.bind(this),this.ListSnapshots=this.ListSnapshots.bind(this),this.OfferSnapshot=this.OfferSnapshot.bind(this),this.LoadSnapshotChunk=this.LoadSnapshotChunk.bind(this),this.ApplySnapshotChunk=this.ApplySnapshotChunk.bind(this)}Echo(e){const r=t.RequestEcho.encode(e).finish();return this.rpc.request("tendermint.abci.ABCIApplication","Echo",r).then((e=>t.ResponseEcho.decode(new i.default.Reader(e))))}Flush(e){const r=t.RequestFlush.encode(e).finish();return this.rpc.request("tendermint.abci.ABCIApplication","Flush",r).then((e=>t.ResponseFlush.decode(new i.default.Reader(e))))}Info(e){const r=t.RequestInfo.encode(e).finish();return this.rpc.request("tendermint.abci.ABCIApplication","Info",r).then((e=>t.ResponseInfo.decode(new i.default.Reader(e))))}SetOption(e){const r=t.RequestSetOption.encode(e).finish();return this.rpc.request("tendermint.abci.ABCIApplication","SetOption",r).then((e=>t.ResponseSetOption.decode(new i.default.Reader(e))))}DeliverTx(e){const r=t.RequestDeliverTx.encode(e).finish();return this.rpc.request("tendermint.abci.ABCIApplication","DeliverTx",r).then((e=>t.ResponseDeliverTx.decode(new i.default.Reader(e))))}CheckTx(e){const r=t.RequestCheckTx.encode(e).finish();return this.rpc.request("tendermint.abci.ABCIApplication","CheckTx",r).then((e=>t.ResponseCheckTx.decode(new i.default.Reader(e))))}Query(e){const r=t.RequestQuery.encode(e).finish();return this.rpc.request("tendermint.abci.ABCIApplication","Query",r).then((e=>t.ResponseQuery.decode(new i.default.Reader(e))))}Commit(e){const r=t.RequestCommit.encode(e).finish();return this.rpc.request("tendermint.abci.ABCIApplication","Commit",r).then((e=>t.ResponseCommit.decode(new i.default.Reader(e))))}InitChain(e){const r=t.RequestInitChain.encode(e).finish();return this.rpc.request("tendermint.abci.ABCIApplication","InitChain",r).then((e=>t.ResponseInitChain.decode(new i.default.Reader(e))))}BeginBlock(e){const r=t.RequestBeginBlock.encode(e).finish();return this.rpc.request("tendermint.abci.ABCIApplication","BeginBlock",r).then((e=>t.ResponseBeginBlock.decode(new i.default.Reader(e))))}EndBlock(e){const r=t.RequestEndBlock.encode(e).finish();return this.rpc.request("tendermint.abci.ABCIApplication","EndBlock",r).then((e=>t.ResponseEndBlock.decode(new i.default.Reader(e))))}ListSnapshots(e){const r=t.RequestListSnapshots.encode(e).finish();return this.rpc.request("tendermint.abci.ABCIApplication","ListSnapshots",r).then((e=>t.ResponseListSnapshots.decode(new i.default.Reader(e))))}OfferSnapshot(e){const r=t.RequestOfferSnapshot.encode(e).finish();return this.rpc.request("tendermint.abci.ABCIApplication","OfferSnapshot",r).then((e=>t.ResponseOfferSnapshot.decode(new i.default.Reader(e))))}LoadSnapshotChunk(e){const r=t.RequestLoadSnapshotChunk.encode(e).finish();return this.rpc.request("tendermint.abci.ABCIApplication","LoadSnapshotChunk",r).then((e=>t.ResponseLoadSnapshotChunk.decode(new i.default.Reader(e))))}ApplySnapshotChunk(e){const r=t.RequestApplySnapshotChunk.encode(e).finish();return this.rpc.request("tendermint.abci.ABCIApplication","ApplySnapshotChunk",r).then((e=>t.ResponseApplySnapshotChunk.decode(new i.default.Reader(e))))}};var he=(()=>{if(void 0!==he)return he;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==r.g)return r.g;throw"Unable to locate global object"})();const pe=he.atob||(e=>he.Buffer.from(e,"base64").toString("binary"));function me(e){const t=pe(e),r=new Uint8Array(t.length);for(let e=0;ehe.Buffer.from(e,"binary").toString("base64"));function ve(e){const t=[];for(const r of e)t.push(String.fromCharCode(r));return ge(t.join(""))}function be(e){var t;return{seconds:(t=e.getTime()/1e3,o.default.fromNumber(t)),nanos:e.getTime()%1e3*1e6}}function ye(e){let t=1e3*e.seconds.toNumber();return t+=e.nanos/1e6,new Date(t)}function we(e){return e instanceof Date?e:"string"==typeof e?new Date(e):ye(d.Timestamp.fromJSON(e))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},6920:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.PublicKey=t.protobufPackage=void 0;const o=n(r(43720)),i=n(r(62100));t.protobufPackage="tendermint.crypto";const a={};t.PublicKey={encode:(e,t=i.default.Writer.create())=>(void 0!==e.ed25519&&t.uint32(10).bytes(e.ed25519),void 0!==e.secp256k1&&t.uint32(18).bytes(e.secp256k1),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},a);for(;r.pos>>3){case 1:o.ed25519=r.bytes();break;case 2:o.secp256k1=r.bytes();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},a);return void 0!==e.ed25519&&null!==e.ed25519&&(t.ed25519=c(e.ed25519)),void 0!==e.secp256k1&&null!==e.secp256k1&&(t.secp256k1=c(e.secp256k1)),t},toJSON(e){const t={};return void 0!==e.ed25519&&(t.ed25519=void 0!==e.ed25519?l(e.ed25519):void 0),void 0!==e.secp256k1&&(t.secp256k1=void 0!==e.secp256k1?l(e.secp256k1):void 0),t},fromPartial(e){const t=Object.assign({},a);return void 0!==e.ed25519&&null!==e.ed25519?t.ed25519=e.ed25519:t.ed25519=void 0,void 0!==e.secp256k1&&null!==e.secp256k1?t.secp256k1=e.secp256k1:t.secp256k1=void 0,t}};var s=(()=>{if(void 0!==s)return s;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==r.g)return r.g;throw"Unable to locate global object"})();const u=s.atob||(e=>s.Buffer.from(e,"base64").toString("binary"));function c(e){const t=u(e),r=new Uint8Array(t.length);for(let e=0;es.Buffer.from(e,"binary").toString("base64"));function l(e){const t=[];for(const r of e)t.push(String.fromCharCode(r));return d(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},99502:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ProofOps=t.ProofOp=t.DominoOp=t.ValueOp=t.Proof=t.protobufPackage=void 0;const o=n(r(43720)),i=n(r(62100));t.protobufPackage="tendermint.crypto";const a={total:o.default.ZERO,index:o.default.ZERO};t.Proof={encode(e,t=i.default.Writer.create()){e.total.isZero()||t.uint32(8).int64(e.total),e.index.isZero()||t.uint32(16).int64(e.index),0!==e.leafHash.length&&t.uint32(26).bytes(e.leafHash);for(const r of e.aunts)t.uint32(34).bytes(r);return t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},a);for(o.aunts=[],o.leafHash=new Uint8Array;r.pos>>3){case 1:o.total=r.int64();break;case 2:o.index=r.int64();break;case 3:o.leafHash=r.bytes();break;case 4:o.aunts.push(r.bytes());break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},a);if(t.aunts=[],t.leafHash=new Uint8Array,void 0!==e.total&&null!==e.total?t.total=o.default.fromString(e.total):t.total=o.default.ZERO,void 0!==e.index&&null!==e.index?t.index=o.default.fromString(e.index):t.index=o.default.ZERO,void 0!==e.leafHash&&null!==e.leafHash&&(t.leafHash=h(e.leafHash)),void 0!==e.aunts&&null!==e.aunts)for(const r of e.aunts)t.aunts.push(h(r));return t},toJSON(e){const t={};return void 0!==e.total&&(t.total=(e.total||o.default.ZERO).toString()),void 0!==e.index&&(t.index=(e.index||o.default.ZERO).toString()),void 0!==e.leafHash&&(t.leafHash=m(void 0!==e.leafHash?e.leafHash:new Uint8Array)),e.aunts?t.aunts=e.aunts.map((e=>m(void 0!==e?e:new Uint8Array))):t.aunts=[],t},fromPartial(e){const t=Object.assign({},a);if(t.aunts=[],void 0!==e.total&&null!==e.total?t.total=e.total:t.total=o.default.ZERO,void 0!==e.index&&null!==e.index?t.index=e.index:t.index=o.default.ZERO,void 0!==e.leafHash&&null!==e.leafHash?t.leafHash=e.leafHash:t.leafHash=new Uint8Array,void 0!==e.aunts&&null!==e.aunts)for(const r of e.aunts)t.aunts.push(r);return t}};const s={};t.ValueOp={encode:(e,r=i.default.Writer.create())=>(0!==e.key.length&&r.uint32(10).bytes(e.key),void 0!==e.proof&&t.Proof.encode(e.proof,r.uint32(18).fork()).ldelim(),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},s);for(a.key=new Uint8Array;n.pos>>3){case 1:a.key=n.bytes();break;case 2:a.proof=t.Proof.decode(n,n.uint32());break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},s);return r.key=new Uint8Array,void 0!==e.key&&null!==e.key&&(r.key=h(e.key)),void 0!==e.proof&&null!==e.proof?r.proof=t.Proof.fromJSON(e.proof):r.proof=void 0,r},toJSON(e){const r={};return void 0!==e.key&&(r.key=m(void 0!==e.key?e.key:new Uint8Array)),void 0!==e.proof&&(r.proof=e.proof?t.Proof.toJSON(e.proof):void 0),r},fromPartial(e){const r=Object.assign({},s);return void 0!==e.key&&null!==e.key?r.key=e.key:r.key=new Uint8Array,void 0!==e.proof&&null!==e.proof?r.proof=t.Proof.fromPartial(e.proof):r.proof=void 0,r}};const u={key:"",input:"",output:""};t.DominoOp={encode:(e,t=i.default.Writer.create())=>(""!==e.key&&t.uint32(10).string(e.key),""!==e.input&&t.uint32(18).string(e.input),""!==e.output&&t.uint32(26).string(e.output),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},u);for(;r.pos>>3){case 1:o.key=r.string();break;case 2:o.input=r.string();break;case 3:o.output=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},u);return void 0!==e.key&&null!==e.key?t.key=String(e.key):t.key="",void 0!==e.input&&null!==e.input?t.input=String(e.input):t.input="",void 0!==e.output&&null!==e.output?t.output=String(e.output):t.output="",t},toJSON(e){const t={};return void 0!==e.key&&(t.key=e.key),void 0!==e.input&&(t.input=e.input),void 0!==e.output&&(t.output=e.output),t},fromPartial(e){const t=Object.assign({},u);return void 0!==e.key&&null!==e.key?t.key=e.key:t.key="",void 0!==e.input&&null!==e.input?t.input=e.input:t.input="",void 0!==e.output&&null!==e.output?t.output=e.output:t.output="",t}};const c={type:""};t.ProofOp={encode:(e,t=i.default.Writer.create())=>(""!==e.type&&t.uint32(10).string(e.type),0!==e.key.length&&t.uint32(18).bytes(e.key),0!==e.data.length&&t.uint32(26).bytes(e.data),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},c);for(o.key=new Uint8Array,o.data=new Uint8Array;r.pos>>3){case 1:o.type=r.string();break;case 2:o.key=r.bytes();break;case 3:o.data=r.bytes();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},c);return t.key=new Uint8Array,t.data=new Uint8Array,void 0!==e.type&&null!==e.type?t.type=String(e.type):t.type="",void 0!==e.key&&null!==e.key&&(t.key=h(e.key)),void 0!==e.data&&null!==e.data&&(t.data=h(e.data)),t},toJSON(e){const t={};return void 0!==e.type&&(t.type=e.type),void 0!==e.key&&(t.key=m(void 0!==e.key?e.key:new Uint8Array)),void 0!==e.data&&(t.data=m(void 0!==e.data?e.data:new Uint8Array)),t},fromPartial(e){const t=Object.assign({},c);return void 0!==e.type&&null!==e.type?t.type=e.type:t.type="",void 0!==e.key&&null!==e.key?t.key=e.key:t.key=new Uint8Array,void 0!==e.data&&null!==e.data?t.data=e.data:t.data=new Uint8Array,t}};const d={};t.ProofOps={encode(e,r=i.default.Writer.create()){for(const n of e.ops)t.ProofOp.encode(n,r.uint32(10).fork()).ldelim();return r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},d);for(a.ops=[];n.pos>>3==1?a.ops.push(t.ProofOp.decode(n,n.uint32())):n.skipType(7&e)}return a},fromJSON(e){const r=Object.assign({},d);if(r.ops=[],void 0!==e.ops&&null!==e.ops)for(const n of e.ops)r.ops.push(t.ProofOp.fromJSON(n));return r},toJSON(e){const r={};return e.ops?r.ops=e.ops.map((e=>e?t.ProofOp.toJSON(e):void 0)):r.ops=[],r},fromPartial(e){const r=Object.assign({},d);if(r.ops=[],void 0!==e.ops&&null!==e.ops)for(const n of e.ops)r.ops.push(t.ProofOp.fromPartial(n));return r}};var l=(()=>{if(void 0!==l)return l;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==r.g)return r.g;throw"Unable to locate global object"})();const f=l.atob||(e=>l.Buffer.from(e,"base64").toString("binary"));function h(e){const t=f(e),r=new Uint8Array(t.length);for(let e=0;el.Buffer.from(e,"binary").toString("base64"));function m(e){const t=[];for(const r of e)t.push(String.fromCharCode(r));return p(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},98747:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.HashedParams=t.VersionParams=t.ValidatorParams=t.EvidenceParams=t.BlockParams=t.ConsensusParams=t.protobufPackage=void 0;const o=n(r(43720)),i=n(r(62100)),a=r(69130);t.protobufPackage="tendermint.types";const s={};t.ConsensusParams={encode:(e,r=i.default.Writer.create())=>(void 0!==e.block&&t.BlockParams.encode(e.block,r.uint32(10).fork()).ldelim(),void 0!==e.evidence&&t.EvidenceParams.encode(e.evidence,r.uint32(18).fork()).ldelim(),void 0!==e.validator&&t.ValidatorParams.encode(e.validator,r.uint32(26).fork()).ldelim(),void 0!==e.version&&t.VersionParams.encode(e.version,r.uint32(34).fork()).ldelim(),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},s);for(;n.pos>>3){case 1:a.block=t.BlockParams.decode(n,n.uint32());break;case 2:a.evidence=t.EvidenceParams.decode(n,n.uint32());break;case 3:a.validator=t.ValidatorParams.decode(n,n.uint32());break;case 4:a.version=t.VersionParams.decode(n,n.uint32());break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},s);return void 0!==e.block&&null!==e.block?r.block=t.BlockParams.fromJSON(e.block):r.block=void 0,void 0!==e.evidence&&null!==e.evidence?r.evidence=t.EvidenceParams.fromJSON(e.evidence):r.evidence=void 0,void 0!==e.validator&&null!==e.validator?r.validator=t.ValidatorParams.fromJSON(e.validator):r.validator=void 0,void 0!==e.version&&null!==e.version?r.version=t.VersionParams.fromJSON(e.version):r.version=void 0,r},toJSON(e){const r={};return void 0!==e.block&&(r.block=e.block?t.BlockParams.toJSON(e.block):void 0),void 0!==e.evidence&&(r.evidence=e.evidence?t.EvidenceParams.toJSON(e.evidence):void 0),void 0!==e.validator&&(r.validator=e.validator?t.ValidatorParams.toJSON(e.validator):void 0),void 0!==e.version&&(r.version=e.version?t.VersionParams.toJSON(e.version):void 0),r},fromPartial(e){const r=Object.assign({},s);return void 0!==e.block&&null!==e.block?r.block=t.BlockParams.fromPartial(e.block):r.block=void 0,void 0!==e.evidence&&null!==e.evidence?r.evidence=t.EvidenceParams.fromPartial(e.evidence):r.evidence=void 0,void 0!==e.validator&&null!==e.validator?r.validator=t.ValidatorParams.fromPartial(e.validator):r.validator=void 0,void 0!==e.version&&null!==e.version?r.version=t.VersionParams.fromPartial(e.version):r.version=void 0,r}};const u={maxBytes:o.default.ZERO,maxGas:o.default.ZERO,timeIotaMs:o.default.ZERO};t.BlockParams={encode:(e,t=i.default.Writer.create())=>(e.maxBytes.isZero()||t.uint32(8).int64(e.maxBytes),e.maxGas.isZero()||t.uint32(16).int64(e.maxGas),e.timeIotaMs.isZero()||t.uint32(24).int64(e.timeIotaMs),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},u);for(;r.pos>>3){case 1:o.maxBytes=r.int64();break;case 2:o.maxGas=r.int64();break;case 3:o.timeIotaMs=r.int64();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},u);return void 0!==e.maxBytes&&null!==e.maxBytes?t.maxBytes=o.default.fromString(e.maxBytes):t.maxBytes=o.default.ZERO,void 0!==e.maxGas&&null!==e.maxGas?t.maxGas=o.default.fromString(e.maxGas):t.maxGas=o.default.ZERO,void 0!==e.timeIotaMs&&null!==e.timeIotaMs?t.timeIotaMs=o.default.fromString(e.timeIotaMs):t.timeIotaMs=o.default.ZERO,t},toJSON(e){const t={};return void 0!==e.maxBytes&&(t.maxBytes=(e.maxBytes||o.default.ZERO).toString()),void 0!==e.maxGas&&(t.maxGas=(e.maxGas||o.default.ZERO).toString()),void 0!==e.timeIotaMs&&(t.timeIotaMs=(e.timeIotaMs||o.default.ZERO).toString()),t},fromPartial(e){const t=Object.assign({},u);return void 0!==e.maxBytes&&null!==e.maxBytes?t.maxBytes=e.maxBytes:t.maxBytes=o.default.ZERO,void 0!==e.maxGas&&null!==e.maxGas?t.maxGas=e.maxGas:t.maxGas=o.default.ZERO,void 0!==e.timeIotaMs&&null!==e.timeIotaMs?t.timeIotaMs=e.timeIotaMs:t.timeIotaMs=o.default.ZERO,t}};const c={maxAgeNumBlocks:o.default.ZERO,maxBytes:o.default.ZERO};t.EvidenceParams={encode:(e,t=i.default.Writer.create())=>(e.maxAgeNumBlocks.isZero()||t.uint32(8).int64(e.maxAgeNumBlocks),void 0!==e.maxAgeDuration&&a.Duration.encode(e.maxAgeDuration,t.uint32(18).fork()).ldelim(),e.maxBytes.isZero()||t.uint32(24).int64(e.maxBytes),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},c);for(;r.pos>>3){case 1:o.maxAgeNumBlocks=r.int64();break;case 2:o.maxAgeDuration=a.Duration.decode(r,r.uint32());break;case 3:o.maxBytes=r.int64();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},c);return void 0!==e.maxAgeNumBlocks&&null!==e.maxAgeNumBlocks?t.maxAgeNumBlocks=o.default.fromString(e.maxAgeNumBlocks):t.maxAgeNumBlocks=o.default.ZERO,void 0!==e.maxAgeDuration&&null!==e.maxAgeDuration?t.maxAgeDuration=a.Duration.fromJSON(e.maxAgeDuration):t.maxAgeDuration=void 0,void 0!==e.maxBytes&&null!==e.maxBytes?t.maxBytes=o.default.fromString(e.maxBytes):t.maxBytes=o.default.ZERO,t},toJSON(e){const t={};return void 0!==e.maxAgeNumBlocks&&(t.maxAgeNumBlocks=(e.maxAgeNumBlocks||o.default.ZERO).toString()),void 0!==e.maxAgeDuration&&(t.maxAgeDuration=e.maxAgeDuration?a.Duration.toJSON(e.maxAgeDuration):void 0),void 0!==e.maxBytes&&(t.maxBytes=(e.maxBytes||o.default.ZERO).toString()),t},fromPartial(e){const t=Object.assign({},c);return void 0!==e.maxAgeNumBlocks&&null!==e.maxAgeNumBlocks?t.maxAgeNumBlocks=e.maxAgeNumBlocks:t.maxAgeNumBlocks=o.default.ZERO,void 0!==e.maxAgeDuration&&null!==e.maxAgeDuration?t.maxAgeDuration=a.Duration.fromPartial(e.maxAgeDuration):t.maxAgeDuration=void 0,void 0!==e.maxBytes&&null!==e.maxBytes?t.maxBytes=e.maxBytes:t.maxBytes=o.default.ZERO,t}};const d={pubKeyTypes:""};t.ValidatorParams={encode(e,t=i.default.Writer.create()){for(const r of e.pubKeyTypes)t.uint32(10).string(r);return t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},d);for(o.pubKeyTypes=[];r.pos>>3==1?o.pubKeyTypes.push(r.string()):r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},d);if(t.pubKeyTypes=[],void 0!==e.pubKeyTypes&&null!==e.pubKeyTypes)for(const r of e.pubKeyTypes)t.pubKeyTypes.push(String(r));return t},toJSON(e){const t={};return e.pubKeyTypes?t.pubKeyTypes=e.pubKeyTypes.map((e=>e)):t.pubKeyTypes=[],t},fromPartial(e){const t=Object.assign({},d);if(t.pubKeyTypes=[],void 0!==e.pubKeyTypes&&null!==e.pubKeyTypes)for(const r of e.pubKeyTypes)t.pubKeyTypes.push(r);return t}};const l={appVersion:o.default.UZERO};t.VersionParams={encode:(e,t=i.default.Writer.create())=>(e.appVersion.isZero()||t.uint32(8).uint64(e.appVersion),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},l);for(;r.pos>>3==1?o.appVersion=r.uint64():r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},l);return void 0!==e.appVersion&&null!==e.appVersion?t.appVersion=o.default.fromString(e.appVersion):t.appVersion=o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.appVersion&&(t.appVersion=(e.appVersion||o.default.UZERO).toString()),t},fromPartial(e){const t=Object.assign({},l);return void 0!==e.appVersion&&null!==e.appVersion?t.appVersion=e.appVersion:t.appVersion=o.default.UZERO,t}};const f={blockMaxBytes:o.default.ZERO,blockMaxGas:o.default.ZERO};t.HashedParams={encode:(e,t=i.default.Writer.create())=>(e.blockMaxBytes.isZero()||t.uint32(8).int64(e.blockMaxBytes),e.blockMaxGas.isZero()||t.uint32(16).int64(e.blockMaxGas),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},f);for(;r.pos>>3){case 1:o.blockMaxBytes=r.int64();break;case 2:o.blockMaxGas=r.int64();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},f);return void 0!==e.blockMaxBytes&&null!==e.blockMaxBytes?t.blockMaxBytes=o.default.fromString(e.blockMaxBytes):t.blockMaxBytes=o.default.ZERO,void 0!==e.blockMaxGas&&null!==e.blockMaxGas?t.blockMaxGas=o.default.fromString(e.blockMaxGas):t.blockMaxGas=o.default.ZERO,t},toJSON(e){const t={};return void 0!==e.blockMaxBytes&&(t.blockMaxBytes=(e.blockMaxBytes||o.default.ZERO).toString()),void 0!==e.blockMaxGas&&(t.blockMaxGas=(e.blockMaxGas||o.default.ZERO).toString()),t},fromPartial(e){const t=Object.assign({},f);return void 0!==e.blockMaxBytes&&null!==e.blockMaxBytes?t.blockMaxBytes=e.blockMaxBytes:t.blockMaxBytes=o.default.ZERO,void 0!==e.blockMaxGas&&null!==e.blockMaxGas?t.blockMaxGas=e.blockMaxGas:t.blockMaxGas=o.default.ZERO,t}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},1183:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.TxProof=t.BlockMeta=t.LightBlock=t.SignedHeader=t.Proposal=t.CommitSig=t.Commit=t.Vote=t.Data=t.Header=t.BlockID=t.Part=t.PartSetHeader=t.signedMsgTypeToJSON=t.signedMsgTypeFromJSON=t.SignedMsgType=t.blockIDFlagToJSON=t.blockIDFlagFromJSON=t.BlockIDFlag=t.protobufPackage=void 0;const o=n(r(43720)),i=n(r(62100)),a=r(99502),s=r(23517),u=r(32841),c=r(88652);var d,l;function f(e){switch(e){case 0:case"BLOCK_ID_FLAG_UNKNOWN":return d.BLOCK_ID_FLAG_UNKNOWN;case 1:case"BLOCK_ID_FLAG_ABSENT":return d.BLOCK_ID_FLAG_ABSENT;case 2:case"BLOCK_ID_FLAG_COMMIT":return d.BLOCK_ID_FLAG_COMMIT;case 3:case"BLOCK_ID_FLAG_NIL":return d.BLOCK_ID_FLAG_NIL;default:return d.UNRECOGNIZED}}function h(e){switch(e){case d.BLOCK_ID_FLAG_UNKNOWN:return"BLOCK_ID_FLAG_UNKNOWN";case d.BLOCK_ID_FLAG_ABSENT:return"BLOCK_ID_FLAG_ABSENT";case d.BLOCK_ID_FLAG_COMMIT:return"BLOCK_ID_FLAG_COMMIT";case d.BLOCK_ID_FLAG_NIL:return"BLOCK_ID_FLAG_NIL";default:return"UNKNOWN"}}function p(e){switch(e){case 0:case"SIGNED_MSG_TYPE_UNKNOWN":return l.SIGNED_MSG_TYPE_UNKNOWN;case 1:case"SIGNED_MSG_TYPE_PREVOTE":return l.SIGNED_MSG_TYPE_PREVOTE;case 2:case"SIGNED_MSG_TYPE_PRECOMMIT":return l.SIGNED_MSG_TYPE_PRECOMMIT;case 32:case"SIGNED_MSG_TYPE_PROPOSAL":return l.SIGNED_MSG_TYPE_PROPOSAL;default:return l.UNRECOGNIZED}}function m(e){switch(e){case l.SIGNED_MSG_TYPE_UNKNOWN:return"SIGNED_MSG_TYPE_UNKNOWN";case l.SIGNED_MSG_TYPE_PREVOTE:return"SIGNED_MSG_TYPE_PREVOTE";case l.SIGNED_MSG_TYPE_PRECOMMIT:return"SIGNED_MSG_TYPE_PRECOMMIT";case l.SIGNED_MSG_TYPE_PROPOSAL:return"SIGNED_MSG_TYPE_PROPOSAL";default:return"UNKNOWN"}}t.protobufPackage="tendermint.types",function(e){e[e.BLOCK_ID_FLAG_UNKNOWN=0]="BLOCK_ID_FLAG_UNKNOWN",e[e.BLOCK_ID_FLAG_ABSENT=1]="BLOCK_ID_FLAG_ABSENT",e[e.BLOCK_ID_FLAG_COMMIT=2]="BLOCK_ID_FLAG_COMMIT",e[e.BLOCK_ID_FLAG_NIL=3]="BLOCK_ID_FLAG_NIL",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(d=t.BlockIDFlag||(t.BlockIDFlag={})),t.blockIDFlagFromJSON=f,t.blockIDFlagToJSON=h,function(e){e[e.SIGNED_MSG_TYPE_UNKNOWN=0]="SIGNED_MSG_TYPE_UNKNOWN",e[e.SIGNED_MSG_TYPE_PREVOTE=1]="SIGNED_MSG_TYPE_PREVOTE",e[e.SIGNED_MSG_TYPE_PRECOMMIT=2]="SIGNED_MSG_TYPE_PRECOMMIT",e[e.SIGNED_MSG_TYPE_PROPOSAL=32]="SIGNED_MSG_TYPE_PROPOSAL",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(l=t.SignedMsgType||(t.SignedMsgType={})),t.signedMsgTypeFromJSON=p,t.signedMsgTypeToJSON=m;const g={total:0};t.PartSetHeader={encode:(e,t=i.default.Writer.create())=>(0!==e.total&&t.uint32(8).uint32(e.total),0!==e.hash.length&&t.uint32(18).bytes(e.hash),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},g);for(o.hash=new Uint8Array;r.pos>>3){case 1:o.total=r.uint32();break;case 2:o.hash=r.bytes();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},g);return t.hash=new Uint8Array,void 0!==e.total&&null!==e.total?t.total=Number(e.total):t.total=0,void 0!==e.hash&&null!==e.hash&&(t.hash=x(e.hash)),t},toJSON(e){const t={};return void 0!==e.total&&(t.total=e.total),void 0!==e.hash&&(t.hash=I(void 0!==e.hash?e.hash:new Uint8Array)),t},fromPartial(e){const t=Object.assign({},g);return void 0!==e.total&&null!==e.total?t.total=e.total:t.total=0,void 0!==e.hash&&null!==e.hash?t.hash=e.hash:t.hash=new Uint8Array,t}};const v={index:0};t.Part={encode:(e,t=i.default.Writer.create())=>(0!==e.index&&t.uint32(8).uint32(e.index),0!==e.bytes.length&&t.uint32(18).bytes(e.bytes),void 0!==e.proof&&a.Proof.encode(e.proof,t.uint32(26).fork()).ldelim(),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},v);for(o.bytes=new Uint8Array;r.pos>>3){case 1:o.index=r.uint32();break;case 2:o.bytes=r.bytes();break;case 3:o.proof=a.Proof.decode(r,r.uint32());break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},v);return t.bytes=new Uint8Array,void 0!==e.index&&null!==e.index?t.index=Number(e.index):t.index=0,void 0!==e.bytes&&null!==e.bytes&&(t.bytes=x(e.bytes)),void 0!==e.proof&&null!==e.proof?t.proof=a.Proof.fromJSON(e.proof):t.proof=void 0,t},toJSON(e){const t={};return void 0!==e.index&&(t.index=e.index),void 0!==e.bytes&&(t.bytes=I(void 0!==e.bytes?e.bytes:new Uint8Array)),void 0!==e.proof&&(t.proof=e.proof?a.Proof.toJSON(e.proof):void 0),t},fromPartial(e){const t=Object.assign({},v);return void 0!==e.index&&null!==e.index?t.index=e.index:t.index=0,void 0!==e.bytes&&null!==e.bytes?t.bytes=e.bytes:t.bytes=new Uint8Array,void 0!==e.proof&&null!==e.proof?t.proof=a.Proof.fromPartial(e.proof):t.proof=void 0,t}};const b={};t.BlockID={encode:(e,r=i.default.Writer.create())=>(0!==e.hash.length&&r.uint32(10).bytes(e.hash),void 0!==e.partSetHeader&&t.PartSetHeader.encode(e.partSetHeader,r.uint32(18).fork()).ldelim(),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},b);for(a.hash=new Uint8Array;n.pos>>3){case 1:a.hash=n.bytes();break;case 2:a.partSetHeader=t.PartSetHeader.decode(n,n.uint32());break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},b);return r.hash=new Uint8Array,void 0!==e.hash&&null!==e.hash&&(r.hash=x(e.hash)),void 0!==e.partSetHeader&&null!==e.partSetHeader?r.partSetHeader=t.PartSetHeader.fromJSON(e.partSetHeader):r.partSetHeader=void 0,r},toJSON(e){const r={};return void 0!==e.hash&&(r.hash=I(void 0!==e.hash?e.hash:new Uint8Array)),void 0!==e.partSetHeader&&(r.partSetHeader=e.partSetHeader?t.PartSetHeader.toJSON(e.partSetHeader):void 0),r},fromPartial(e){const r=Object.assign({},b);return void 0!==e.hash&&null!==e.hash?r.hash=e.hash:r.hash=new Uint8Array,void 0!==e.partSetHeader&&null!==e.partSetHeader?r.partSetHeader=t.PartSetHeader.fromPartial(e.partSetHeader):r.partSetHeader=void 0,r}};const y={chainId:"",height:o.default.ZERO};t.Header={encode:(e,r=i.default.Writer.create())=>(void 0!==e.version&&s.Consensus.encode(e.version,r.uint32(10).fork()).ldelim(),""!==e.chainId&&r.uint32(18).string(e.chainId),e.height.isZero()||r.uint32(24).int64(e.height),void 0!==e.time&&c.Timestamp.encode(T(e.time),r.uint32(34).fork()).ldelim(),void 0!==e.lastBlockId&&t.BlockID.encode(e.lastBlockId,r.uint32(42).fork()).ldelim(),0!==e.lastCommitHash.length&&r.uint32(50).bytes(e.lastCommitHash),0!==e.dataHash.length&&r.uint32(58).bytes(e.dataHash),0!==e.validatorsHash.length&&r.uint32(66).bytes(e.validatorsHash),0!==e.nextValidatorsHash.length&&r.uint32(74).bytes(e.nextValidatorsHash),0!==e.consensusHash.length&&r.uint32(82).bytes(e.consensusHash),0!==e.appHash.length&&r.uint32(90).bytes(e.appHash),0!==e.lastResultsHash.length&&r.uint32(98).bytes(e.lastResultsHash),0!==e.evidenceHash.length&&r.uint32(106).bytes(e.evidenceHash),0!==e.proposerAddress.length&&r.uint32(114).bytes(e.proposerAddress),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},y);for(a.lastCommitHash=new Uint8Array,a.dataHash=new Uint8Array,a.validatorsHash=new Uint8Array,a.nextValidatorsHash=new Uint8Array,a.consensusHash=new Uint8Array,a.appHash=new Uint8Array,a.lastResultsHash=new Uint8Array,a.evidenceHash=new Uint8Array,a.proposerAddress=new Uint8Array;n.pos>>3){case 1:a.version=s.Consensus.decode(n,n.uint32());break;case 2:a.chainId=n.string();break;case 3:a.height=n.int64();break;case 4:a.time=j(c.Timestamp.decode(n,n.uint32()));break;case 5:a.lastBlockId=t.BlockID.decode(n,n.uint32());break;case 6:a.lastCommitHash=n.bytes();break;case 7:a.dataHash=n.bytes();break;case 8:a.validatorsHash=n.bytes();break;case 9:a.nextValidatorsHash=n.bytes();break;case 10:a.consensusHash=n.bytes();break;case 11:a.appHash=n.bytes();break;case 12:a.lastResultsHash=n.bytes();break;case 13:a.evidenceHash=n.bytes();break;case 14:a.proposerAddress=n.bytes();break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},y);return r.lastCommitHash=new Uint8Array,r.dataHash=new Uint8Array,r.validatorsHash=new Uint8Array,r.nextValidatorsHash=new Uint8Array,r.consensusHash=new Uint8Array,r.appHash=new Uint8Array,r.lastResultsHash=new Uint8Array,r.evidenceHash=new Uint8Array,r.proposerAddress=new Uint8Array,void 0!==e.version&&null!==e.version?r.version=s.Consensus.fromJSON(e.version):r.version=void 0,void 0!==e.chainId&&null!==e.chainId?r.chainId=String(e.chainId):r.chainId="",void 0!==e.height&&null!==e.height?r.height=o.default.fromString(e.height):r.height=o.default.ZERO,void 0!==e.time&&null!==e.time?r.time=D(e.time):r.time=void 0,void 0!==e.lastBlockId&&null!==e.lastBlockId?r.lastBlockId=t.BlockID.fromJSON(e.lastBlockId):r.lastBlockId=void 0,void 0!==e.lastCommitHash&&null!==e.lastCommitHash&&(r.lastCommitHash=x(e.lastCommitHash)),void 0!==e.dataHash&&null!==e.dataHash&&(r.dataHash=x(e.dataHash)),void 0!==e.validatorsHash&&null!==e.validatorsHash&&(r.validatorsHash=x(e.validatorsHash)),void 0!==e.nextValidatorsHash&&null!==e.nextValidatorsHash&&(r.nextValidatorsHash=x(e.nextValidatorsHash)),void 0!==e.consensusHash&&null!==e.consensusHash&&(r.consensusHash=x(e.consensusHash)),void 0!==e.appHash&&null!==e.appHash&&(r.appHash=x(e.appHash)),void 0!==e.lastResultsHash&&null!==e.lastResultsHash&&(r.lastResultsHash=x(e.lastResultsHash)),void 0!==e.evidenceHash&&null!==e.evidenceHash&&(r.evidenceHash=x(e.evidenceHash)),void 0!==e.proposerAddress&&null!==e.proposerAddress&&(r.proposerAddress=x(e.proposerAddress)),r},toJSON(e){const r={};return void 0!==e.version&&(r.version=e.version?s.Consensus.toJSON(e.version):void 0),void 0!==e.chainId&&(r.chainId=e.chainId),void 0!==e.height&&(r.height=(e.height||o.default.ZERO).toString()),void 0!==e.time&&(r.time=e.time.toISOString()),void 0!==e.lastBlockId&&(r.lastBlockId=e.lastBlockId?t.BlockID.toJSON(e.lastBlockId):void 0),void 0!==e.lastCommitHash&&(r.lastCommitHash=I(void 0!==e.lastCommitHash?e.lastCommitHash:new Uint8Array)),void 0!==e.dataHash&&(r.dataHash=I(void 0!==e.dataHash?e.dataHash:new Uint8Array)),void 0!==e.validatorsHash&&(r.validatorsHash=I(void 0!==e.validatorsHash?e.validatorsHash:new Uint8Array)),void 0!==e.nextValidatorsHash&&(r.nextValidatorsHash=I(void 0!==e.nextValidatorsHash?e.nextValidatorsHash:new Uint8Array)),void 0!==e.consensusHash&&(r.consensusHash=I(void 0!==e.consensusHash?e.consensusHash:new Uint8Array)),void 0!==e.appHash&&(r.appHash=I(void 0!==e.appHash?e.appHash:new Uint8Array)),void 0!==e.lastResultsHash&&(r.lastResultsHash=I(void 0!==e.lastResultsHash?e.lastResultsHash:new Uint8Array)),void 0!==e.evidenceHash&&(r.evidenceHash=I(void 0!==e.evidenceHash?e.evidenceHash:new Uint8Array)),void 0!==e.proposerAddress&&(r.proposerAddress=I(void 0!==e.proposerAddress?e.proposerAddress:new Uint8Array)),r},fromPartial(e){const r=Object.assign({},y);return void 0!==e.version&&null!==e.version?r.version=s.Consensus.fromPartial(e.version):r.version=void 0,void 0!==e.chainId&&null!==e.chainId?r.chainId=e.chainId:r.chainId="",void 0!==e.height&&null!==e.height?r.height=e.height:r.height=o.default.ZERO,void 0!==e.time&&null!==e.time?r.time=e.time:r.time=void 0,void 0!==e.lastBlockId&&null!==e.lastBlockId?r.lastBlockId=t.BlockID.fromPartial(e.lastBlockId):r.lastBlockId=void 0,void 0!==e.lastCommitHash&&null!==e.lastCommitHash?r.lastCommitHash=e.lastCommitHash:r.lastCommitHash=new Uint8Array,void 0!==e.dataHash&&null!==e.dataHash?r.dataHash=e.dataHash:r.dataHash=new Uint8Array,void 0!==e.validatorsHash&&null!==e.validatorsHash?r.validatorsHash=e.validatorsHash:r.validatorsHash=new Uint8Array,void 0!==e.nextValidatorsHash&&null!==e.nextValidatorsHash?r.nextValidatorsHash=e.nextValidatorsHash:r.nextValidatorsHash=new Uint8Array,void 0!==e.consensusHash&&null!==e.consensusHash?r.consensusHash=e.consensusHash:r.consensusHash=new Uint8Array,void 0!==e.appHash&&null!==e.appHash?r.appHash=e.appHash:r.appHash=new Uint8Array,void 0!==e.lastResultsHash&&null!==e.lastResultsHash?r.lastResultsHash=e.lastResultsHash:r.lastResultsHash=new Uint8Array,void 0!==e.evidenceHash&&null!==e.evidenceHash?r.evidenceHash=e.evidenceHash:r.evidenceHash=new Uint8Array,void 0!==e.proposerAddress&&null!==e.proposerAddress?r.proposerAddress=e.proposerAddress:r.proposerAddress=new Uint8Array,r}};const w={};t.Data={encode(e,t=i.default.Writer.create()){for(const r of e.txs)t.uint32(10).bytes(r);return t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},w);for(o.txs=[];r.pos>>3==1?o.txs.push(r.bytes()):r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},w);if(t.txs=[],void 0!==e.txs&&null!==e.txs)for(const r of e.txs)t.txs.push(x(r));return t},toJSON(e){const t={};return e.txs?t.txs=e.txs.map((e=>I(void 0!==e?e:new Uint8Array))):t.txs=[],t},fromPartial(e){const t=Object.assign({},w);if(t.txs=[],void 0!==e.txs&&null!==e.txs)for(const r of e.txs)t.txs.push(r);return t}};const _={type:0,height:o.default.ZERO,round:0,validatorIndex:0};t.Vote={encode:(e,r=i.default.Writer.create())=>(0!==e.type&&r.uint32(8).int32(e.type),e.height.isZero()||r.uint32(16).int64(e.height),0!==e.round&&r.uint32(24).int32(e.round),void 0!==e.blockId&&t.BlockID.encode(e.blockId,r.uint32(34).fork()).ldelim(),void 0!==e.timestamp&&c.Timestamp.encode(T(e.timestamp),r.uint32(42).fork()).ldelim(),0!==e.validatorAddress.length&&r.uint32(50).bytes(e.validatorAddress),0!==e.validatorIndex&&r.uint32(56).int32(e.validatorIndex),0!==e.signature.length&&r.uint32(66).bytes(e.signature),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},_);for(a.validatorAddress=new Uint8Array,a.signature=new Uint8Array;n.pos>>3){case 1:a.type=n.int32();break;case 2:a.height=n.int64();break;case 3:a.round=n.int32();break;case 4:a.blockId=t.BlockID.decode(n,n.uint32());break;case 5:a.timestamp=j(c.Timestamp.decode(n,n.uint32()));break;case 6:a.validatorAddress=n.bytes();break;case 7:a.validatorIndex=n.int32();break;case 8:a.signature=n.bytes();break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},_);return r.validatorAddress=new Uint8Array,r.signature=new Uint8Array,void 0!==e.type&&null!==e.type?r.type=p(e.type):r.type=0,void 0!==e.height&&null!==e.height?r.height=o.default.fromString(e.height):r.height=o.default.ZERO,void 0!==e.round&&null!==e.round?r.round=Number(e.round):r.round=0,void 0!==e.blockId&&null!==e.blockId?r.blockId=t.BlockID.fromJSON(e.blockId):r.blockId=void 0,void 0!==e.timestamp&&null!==e.timestamp?r.timestamp=D(e.timestamp):r.timestamp=void 0,void 0!==e.validatorAddress&&null!==e.validatorAddress&&(r.validatorAddress=x(e.validatorAddress)),void 0!==e.validatorIndex&&null!==e.validatorIndex?r.validatorIndex=Number(e.validatorIndex):r.validatorIndex=0,void 0!==e.signature&&null!==e.signature&&(r.signature=x(e.signature)),r},toJSON(e){const r={};return void 0!==e.type&&(r.type=m(e.type)),void 0!==e.height&&(r.height=(e.height||o.default.ZERO).toString()),void 0!==e.round&&(r.round=e.round),void 0!==e.blockId&&(r.blockId=e.blockId?t.BlockID.toJSON(e.blockId):void 0),void 0!==e.timestamp&&(r.timestamp=e.timestamp.toISOString()),void 0!==e.validatorAddress&&(r.validatorAddress=I(void 0!==e.validatorAddress?e.validatorAddress:new Uint8Array)),void 0!==e.validatorIndex&&(r.validatorIndex=e.validatorIndex),void 0!==e.signature&&(r.signature=I(void 0!==e.signature?e.signature:new Uint8Array)),r},fromPartial(e){const r=Object.assign({},_);return void 0!==e.type&&null!==e.type?r.type=e.type:r.type=0,void 0!==e.height&&null!==e.height?r.height=e.height:r.height=o.default.ZERO,void 0!==e.round&&null!==e.round?r.round=e.round:r.round=0,void 0!==e.blockId&&null!==e.blockId?r.blockId=t.BlockID.fromPartial(e.blockId):r.blockId=void 0,void 0!==e.timestamp&&null!==e.timestamp?r.timestamp=e.timestamp:r.timestamp=void 0,void 0!==e.validatorAddress&&null!==e.validatorAddress?r.validatorAddress=e.validatorAddress:r.validatorAddress=new Uint8Array,void 0!==e.validatorIndex&&null!==e.validatorIndex?r.validatorIndex=e.validatorIndex:r.validatorIndex=0,void 0!==e.signature&&null!==e.signature?r.signature=e.signature:r.signature=new Uint8Array,r}};const S={height:o.default.ZERO,round:0};t.Commit={encode(e,r=i.default.Writer.create()){e.height.isZero()||r.uint32(8).int64(e.height),0!==e.round&&r.uint32(16).int32(e.round),void 0!==e.blockId&&t.BlockID.encode(e.blockId,r.uint32(26).fork()).ldelim();for(const n of e.signatures)t.CommitSig.encode(n,r.uint32(34).fork()).ldelim();return r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},S);for(a.signatures=[];n.pos>>3){case 1:a.height=n.int64();break;case 2:a.round=n.int32();break;case 3:a.blockId=t.BlockID.decode(n,n.uint32());break;case 4:a.signatures.push(t.CommitSig.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},S);if(r.signatures=[],void 0!==e.height&&null!==e.height?r.height=o.default.fromString(e.height):r.height=o.default.ZERO,void 0!==e.round&&null!==e.round?r.round=Number(e.round):r.round=0,void 0!==e.blockId&&null!==e.blockId?r.blockId=t.BlockID.fromJSON(e.blockId):r.blockId=void 0,void 0!==e.signatures&&null!==e.signatures)for(const n of e.signatures)r.signatures.push(t.CommitSig.fromJSON(n));return r},toJSON(e){const r={};return void 0!==e.height&&(r.height=(e.height||o.default.ZERO).toString()),void 0!==e.round&&(r.round=e.round),void 0!==e.blockId&&(r.blockId=e.blockId?t.BlockID.toJSON(e.blockId):void 0),e.signatures?r.signatures=e.signatures.map((e=>e?t.CommitSig.toJSON(e):void 0)):r.signatures=[],r},fromPartial(e){const r=Object.assign({},S);if(r.signatures=[],void 0!==e.height&&null!==e.height?r.height=e.height:r.height=o.default.ZERO,void 0!==e.round&&null!==e.round?r.round=e.round:r.round=0,void 0!==e.blockId&&null!==e.blockId?r.blockId=t.BlockID.fromPartial(e.blockId):r.blockId=void 0,void 0!==e.signatures&&null!==e.signatures)for(const n of e.signatures)r.signatures.push(t.CommitSig.fromPartial(n));return r}};const O={blockIdFlag:0};t.CommitSig={encode:(e,t=i.default.Writer.create())=>(0!==e.blockIdFlag&&t.uint32(8).int32(e.blockIdFlag),0!==e.validatorAddress.length&&t.uint32(18).bytes(e.validatorAddress),void 0!==e.timestamp&&c.Timestamp.encode(T(e.timestamp),t.uint32(26).fork()).ldelim(),0!==e.signature.length&&t.uint32(34).bytes(e.signature),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},O);for(o.validatorAddress=new Uint8Array,o.signature=new Uint8Array;r.pos>>3){case 1:o.blockIdFlag=r.int32();break;case 2:o.validatorAddress=r.bytes();break;case 3:o.timestamp=j(c.Timestamp.decode(r,r.uint32()));break;case 4:o.signature=r.bytes();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},O);return t.validatorAddress=new Uint8Array,t.signature=new Uint8Array,void 0!==e.blockIdFlag&&null!==e.blockIdFlag?t.blockIdFlag=f(e.blockIdFlag):t.blockIdFlag=0,void 0!==e.validatorAddress&&null!==e.validatorAddress&&(t.validatorAddress=x(e.validatorAddress)),void 0!==e.timestamp&&null!==e.timestamp?t.timestamp=D(e.timestamp):t.timestamp=void 0,void 0!==e.signature&&null!==e.signature&&(t.signature=x(e.signature)),t},toJSON(e){const t={};return void 0!==e.blockIdFlag&&(t.blockIdFlag=h(e.blockIdFlag)),void 0!==e.validatorAddress&&(t.validatorAddress=I(void 0!==e.validatorAddress?e.validatorAddress:new Uint8Array)),void 0!==e.timestamp&&(t.timestamp=e.timestamp.toISOString()),void 0!==e.signature&&(t.signature=I(void 0!==e.signature?e.signature:new Uint8Array)),t},fromPartial(e){const t=Object.assign({},O);return void 0!==e.blockIdFlag&&null!==e.blockIdFlag?t.blockIdFlag=e.blockIdFlag:t.blockIdFlag=0,void 0!==e.validatorAddress&&null!==e.validatorAddress?t.validatorAddress=e.validatorAddress:t.validatorAddress=new Uint8Array,void 0!==e.timestamp&&null!==e.timestamp?t.timestamp=e.timestamp:t.timestamp=void 0,void 0!==e.signature&&null!==e.signature?t.signature=e.signature:t.signature=new Uint8Array,t}};const k={type:0,height:o.default.ZERO,round:0,polRound:0};t.Proposal={encode:(e,r=i.default.Writer.create())=>(0!==e.type&&r.uint32(8).int32(e.type),e.height.isZero()||r.uint32(16).int64(e.height),0!==e.round&&r.uint32(24).int32(e.round),0!==e.polRound&&r.uint32(32).int32(e.polRound),void 0!==e.blockId&&t.BlockID.encode(e.blockId,r.uint32(42).fork()).ldelim(),void 0!==e.timestamp&&c.Timestamp.encode(T(e.timestamp),r.uint32(50).fork()).ldelim(),0!==e.signature.length&&r.uint32(58).bytes(e.signature),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},k);for(a.signature=new Uint8Array;n.pos>>3){case 1:a.type=n.int32();break;case 2:a.height=n.int64();break;case 3:a.round=n.int32();break;case 4:a.polRound=n.int32();break;case 5:a.blockId=t.BlockID.decode(n,n.uint32());break;case 6:a.timestamp=j(c.Timestamp.decode(n,n.uint32()));break;case 7:a.signature=n.bytes();break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},k);return r.signature=new Uint8Array,void 0!==e.type&&null!==e.type?r.type=p(e.type):r.type=0,void 0!==e.height&&null!==e.height?r.height=o.default.fromString(e.height):r.height=o.default.ZERO,void 0!==e.round&&null!==e.round?r.round=Number(e.round):r.round=0,void 0!==e.polRound&&null!==e.polRound?r.polRound=Number(e.polRound):r.polRound=0,void 0!==e.blockId&&null!==e.blockId?r.blockId=t.BlockID.fromJSON(e.blockId):r.blockId=void 0,void 0!==e.timestamp&&null!==e.timestamp?r.timestamp=D(e.timestamp):r.timestamp=void 0,void 0!==e.signature&&null!==e.signature&&(r.signature=x(e.signature)),r},toJSON(e){const r={};return void 0!==e.type&&(r.type=m(e.type)),void 0!==e.height&&(r.height=(e.height||o.default.ZERO).toString()),void 0!==e.round&&(r.round=e.round),void 0!==e.polRound&&(r.polRound=e.polRound),void 0!==e.blockId&&(r.blockId=e.blockId?t.BlockID.toJSON(e.blockId):void 0),void 0!==e.timestamp&&(r.timestamp=e.timestamp.toISOString()),void 0!==e.signature&&(r.signature=I(void 0!==e.signature?e.signature:new Uint8Array)),r},fromPartial(e){const r=Object.assign({},k);return void 0!==e.type&&null!==e.type?r.type=e.type:r.type=0,void 0!==e.height&&null!==e.height?r.height=e.height:r.height=o.default.ZERO,void 0!==e.round&&null!==e.round?r.round=e.round:r.round=0,void 0!==e.polRound&&null!==e.polRound?r.polRound=e.polRound:r.polRound=0,void 0!==e.blockId&&null!==e.blockId?r.blockId=t.BlockID.fromPartial(e.blockId):r.blockId=void 0,void 0!==e.timestamp&&null!==e.timestamp?r.timestamp=e.timestamp:r.timestamp=void 0,void 0!==e.signature&&null!==e.signature?r.signature=e.signature:r.signature=new Uint8Array,r}};const A={};t.SignedHeader={encode:(e,r=i.default.Writer.create())=>(void 0!==e.header&&t.Header.encode(e.header,r.uint32(10).fork()).ldelim(),void 0!==e.commit&&t.Commit.encode(e.commit,r.uint32(18).fork()).ldelim(),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},A);for(;n.pos>>3){case 1:a.header=t.Header.decode(n,n.uint32());break;case 2:a.commit=t.Commit.decode(n,n.uint32());break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},A);return void 0!==e.header&&null!==e.header?r.header=t.Header.fromJSON(e.header):r.header=void 0,void 0!==e.commit&&null!==e.commit?r.commit=t.Commit.fromJSON(e.commit):r.commit=void 0,r},toJSON(e){const r={};return void 0!==e.header&&(r.header=e.header?t.Header.toJSON(e.header):void 0),void 0!==e.commit&&(r.commit=e.commit?t.Commit.toJSON(e.commit):void 0),r},fromPartial(e){const r=Object.assign({},A);return void 0!==e.header&&null!==e.header?r.header=t.Header.fromPartial(e.header):r.header=void 0,void 0!==e.commit&&null!==e.commit?r.commit=t.Commit.fromPartial(e.commit):r.commit=void 0,r}};const P={};t.LightBlock={encode:(e,r=i.default.Writer.create())=>(void 0!==e.signedHeader&&t.SignedHeader.encode(e.signedHeader,r.uint32(10).fork()).ldelim(),void 0!==e.validatorSet&&u.ValidatorSet.encode(e.validatorSet,r.uint32(18).fork()).ldelim(),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},P);for(;n.pos>>3){case 1:a.signedHeader=t.SignedHeader.decode(n,n.uint32());break;case 2:a.validatorSet=u.ValidatorSet.decode(n,n.uint32());break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},P);return void 0!==e.signedHeader&&null!==e.signedHeader?r.signedHeader=t.SignedHeader.fromJSON(e.signedHeader):r.signedHeader=void 0,void 0!==e.validatorSet&&null!==e.validatorSet?r.validatorSet=u.ValidatorSet.fromJSON(e.validatorSet):r.validatorSet=void 0,r},toJSON(e){const r={};return void 0!==e.signedHeader&&(r.signedHeader=e.signedHeader?t.SignedHeader.toJSON(e.signedHeader):void 0),void 0!==e.validatorSet&&(r.validatorSet=e.validatorSet?u.ValidatorSet.toJSON(e.validatorSet):void 0),r},fromPartial(e){const r=Object.assign({},P);return void 0!==e.signedHeader&&null!==e.signedHeader?r.signedHeader=t.SignedHeader.fromPartial(e.signedHeader):r.signedHeader=void 0,void 0!==e.validatorSet&&null!==e.validatorSet?r.validatorSet=u.ValidatorSet.fromPartial(e.validatorSet):r.validatorSet=void 0,r}};const M={blockSize:o.default.ZERO,numTxs:o.default.ZERO};t.BlockMeta={encode:(e,r=i.default.Writer.create())=>(void 0!==e.blockId&&t.BlockID.encode(e.blockId,r.uint32(10).fork()).ldelim(),e.blockSize.isZero()||r.uint32(16).int64(e.blockSize),void 0!==e.header&&t.Header.encode(e.header,r.uint32(26).fork()).ldelim(),e.numTxs.isZero()||r.uint32(32).int64(e.numTxs),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},M);for(;n.pos>>3){case 1:a.blockId=t.BlockID.decode(n,n.uint32());break;case 2:a.blockSize=n.int64();break;case 3:a.header=t.Header.decode(n,n.uint32());break;case 4:a.numTxs=n.int64();break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},M);return void 0!==e.blockId&&null!==e.blockId?r.blockId=t.BlockID.fromJSON(e.blockId):r.blockId=void 0,void 0!==e.blockSize&&null!==e.blockSize?r.blockSize=o.default.fromString(e.blockSize):r.blockSize=o.default.ZERO,void 0!==e.header&&null!==e.header?r.header=t.Header.fromJSON(e.header):r.header=void 0,void 0!==e.numTxs&&null!==e.numTxs?r.numTxs=o.default.fromString(e.numTxs):r.numTxs=o.default.ZERO,r},toJSON(e){const r={};return void 0!==e.blockId&&(r.blockId=e.blockId?t.BlockID.toJSON(e.blockId):void 0),void 0!==e.blockSize&&(r.blockSize=(e.blockSize||o.default.ZERO).toString()),void 0!==e.header&&(r.header=e.header?t.Header.toJSON(e.header):void 0),void 0!==e.numTxs&&(r.numTxs=(e.numTxs||o.default.ZERO).toString()),r},fromPartial(e){const r=Object.assign({},M);return void 0!==e.blockId&&null!==e.blockId?r.blockId=t.BlockID.fromPartial(e.blockId):r.blockId=void 0,void 0!==e.blockSize&&null!==e.blockSize?r.blockSize=e.blockSize:r.blockSize=o.default.ZERO,void 0!==e.header&&null!==e.header?r.header=t.Header.fromPartial(e.header):r.header=void 0,void 0!==e.numTxs&&null!==e.numTxs?r.numTxs=e.numTxs:r.numTxs=o.default.ZERO,r}};const E={};t.TxProof={encode:(e,t=i.default.Writer.create())=>(0!==e.rootHash.length&&t.uint32(10).bytes(e.rootHash),0!==e.data.length&&t.uint32(18).bytes(e.data),void 0!==e.proof&&a.Proof.encode(e.proof,t.uint32(26).fork()).ldelim(),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},E);for(o.rootHash=new Uint8Array,o.data=new Uint8Array;r.pos>>3){case 1:o.rootHash=r.bytes();break;case 2:o.data=r.bytes();break;case 3:o.proof=a.Proof.decode(r,r.uint32());break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},E);return t.rootHash=new Uint8Array,t.data=new Uint8Array,void 0!==e.rootHash&&null!==e.rootHash&&(t.rootHash=x(e.rootHash)),void 0!==e.data&&null!==e.data&&(t.data=x(e.data)),void 0!==e.proof&&null!==e.proof?t.proof=a.Proof.fromJSON(e.proof):t.proof=void 0,t},toJSON(e){const t={};return void 0!==e.rootHash&&(t.rootHash=I(void 0!==e.rootHash?e.rootHash:new Uint8Array)),void 0!==e.data&&(t.data=I(void 0!==e.data?e.data:new Uint8Array)),void 0!==e.proof&&(t.proof=e.proof?a.Proof.toJSON(e.proof):void 0),t},fromPartial(e){const t=Object.assign({},E);return void 0!==e.rootHash&&null!==e.rootHash?t.rootHash=e.rootHash:t.rootHash=new Uint8Array,void 0!==e.data&&null!==e.data?t.data=e.data:t.data=new Uint8Array,void 0!==e.proof&&null!==e.proof?t.proof=a.Proof.fromPartial(e.proof):t.proof=void 0,t}};var C=(()=>{if(void 0!==C)return C;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==r.g)return r.g;throw"Unable to locate global object"})();const N=C.atob||(e=>C.Buffer.from(e,"base64").toString("binary"));function x(e){const t=N(e),r=new Uint8Array(t.length);for(let e=0;eC.Buffer.from(e,"binary").toString("base64"));function I(e){const t=[];for(const r of e)t.push(String.fromCharCode(r));return R(t.join(""))}function T(e){var t;return{seconds:(t=e.getTime()/1e3,o.default.fromNumber(t)),nanos:e.getTime()%1e3*1e6}}function j(e){let t=1e3*e.seconds.toNumber();return t+=e.nanos/1e6,new Date(t)}function D(e){return e instanceof Date?e:"string"==typeof e?new Date(e):j(c.Timestamp.fromJSON(e))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},32841:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.SimpleValidator=t.Validator=t.ValidatorSet=t.protobufPackage=void 0;const o=n(r(43720)),i=n(r(62100)),a=r(6920);t.protobufPackage="tendermint.types";const s={totalVotingPower:o.default.ZERO};t.ValidatorSet={encode(e,r=i.default.Writer.create()){for(const n of e.validators)t.Validator.encode(n,r.uint32(10).fork()).ldelim();return void 0!==e.proposer&&t.Validator.encode(e.proposer,r.uint32(18).fork()).ldelim(),e.totalVotingPower.isZero()||r.uint32(24).int64(e.totalVotingPower),r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},s);for(a.validators=[];n.pos>>3){case 1:a.validators.push(t.Validator.decode(n,n.uint32()));break;case 2:a.proposer=t.Validator.decode(n,n.uint32());break;case 3:a.totalVotingPower=n.int64();break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},s);if(r.validators=[],void 0!==e.validators&&null!==e.validators)for(const n of e.validators)r.validators.push(t.Validator.fromJSON(n));return void 0!==e.proposer&&null!==e.proposer?r.proposer=t.Validator.fromJSON(e.proposer):r.proposer=void 0,void 0!==e.totalVotingPower&&null!==e.totalVotingPower?r.totalVotingPower=o.default.fromString(e.totalVotingPower):r.totalVotingPower=o.default.ZERO,r},toJSON(e){const r={};return e.validators?r.validators=e.validators.map((e=>e?t.Validator.toJSON(e):void 0)):r.validators=[],void 0!==e.proposer&&(r.proposer=e.proposer?t.Validator.toJSON(e.proposer):void 0),void 0!==e.totalVotingPower&&(r.totalVotingPower=(e.totalVotingPower||o.default.ZERO).toString()),r},fromPartial(e){const r=Object.assign({},s);if(r.validators=[],void 0!==e.validators&&null!==e.validators)for(const n of e.validators)r.validators.push(t.Validator.fromPartial(n));return void 0!==e.proposer&&null!==e.proposer?r.proposer=t.Validator.fromPartial(e.proposer):r.proposer=void 0,void 0!==e.totalVotingPower&&null!==e.totalVotingPower?r.totalVotingPower=e.totalVotingPower:r.totalVotingPower=o.default.ZERO,r}};const u={votingPower:o.default.ZERO,proposerPriority:o.default.ZERO};t.Validator={encode:(e,t=i.default.Writer.create())=>(0!==e.address.length&&t.uint32(10).bytes(e.address),void 0!==e.pubKey&&a.PublicKey.encode(e.pubKey,t.uint32(18).fork()).ldelim(),e.votingPower.isZero()||t.uint32(24).int64(e.votingPower),e.proposerPriority.isZero()||t.uint32(32).int64(e.proposerPriority),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},u);for(o.address=new Uint8Array;r.pos>>3){case 1:o.address=r.bytes();break;case 2:o.pubKey=a.PublicKey.decode(r,r.uint32());break;case 3:o.votingPower=r.int64();break;case 4:o.proposerPriority=r.int64();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},u);return t.address=new Uint8Array,void 0!==e.address&&null!==e.address&&(t.address=function(e){const t=l(e),r=new Uint8Array(t.length);for(let e=0;e(void 0!==e.pubKey&&a.PublicKey.encode(e.pubKey,t.uint32(10).fork()).ldelim(),e.votingPower.isZero()||t.uint32(16).int64(e.votingPower),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},c);for(;r.pos>>3){case 1:o.pubKey=a.PublicKey.decode(r,r.uint32());break;case 2:o.votingPower=r.int64();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},c);return void 0!==e.pubKey&&null!==e.pubKey?t.pubKey=a.PublicKey.fromJSON(e.pubKey):t.pubKey=void 0,void 0!==e.votingPower&&null!==e.votingPower?t.votingPower=o.default.fromString(e.votingPower):t.votingPower=o.default.ZERO,t},toJSON(e){const t={};return void 0!==e.pubKey&&(t.pubKey=e.pubKey?a.PublicKey.toJSON(e.pubKey):void 0),void 0!==e.votingPower&&(t.votingPower=(e.votingPower||o.default.ZERO).toString()),t},fromPartial(e){const t=Object.assign({},c);return void 0!==e.pubKey&&null!==e.pubKey?t.pubKey=a.PublicKey.fromPartial(e.pubKey):t.pubKey=void 0,void 0!==e.votingPower&&null!==e.votingPower?t.votingPower=e.votingPower:t.votingPower=o.default.ZERO,t}};var d=(()=>{if(void 0!==d)return d;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==r.g)return r.g;throw"Unable to locate global object"})();const l=d.atob||(e=>d.Buffer.from(e,"base64").toString("binary")),f=d.btoa||(e=>d.Buffer.from(e,"binary").toString("base64"));i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},23517:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Consensus=t.App=t.protobufPackage=void 0;const o=n(r(43720)),i=n(r(62100));t.protobufPackage="tendermint.version";const a={protocol:o.default.UZERO,software:""};t.App={encode:(e,t=i.default.Writer.create())=>(e.protocol.isZero()||t.uint32(8).uint64(e.protocol),""!==e.software&&t.uint32(18).string(e.software),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},a);for(;r.pos>>3){case 1:o.protocol=r.uint64();break;case 2:o.software=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},a);return void 0!==e.protocol&&null!==e.protocol?t.protocol=o.default.fromString(e.protocol):t.protocol=o.default.UZERO,void 0!==e.software&&null!==e.software?t.software=String(e.software):t.software="",t},toJSON(e){const t={};return void 0!==e.protocol&&(t.protocol=(e.protocol||o.default.UZERO).toString()),void 0!==e.software&&(t.software=e.software),t},fromPartial(e){const t=Object.assign({},a);return void 0!==e.protocol&&null!==e.protocol?t.protocol=e.protocol:t.protocol=o.default.UZERO,void 0!==e.software&&null!==e.software?t.software=e.software:t.software="",t}};const s={block:o.default.UZERO,app:o.default.UZERO};t.Consensus={encode:(e,t=i.default.Writer.create())=>(e.block.isZero()||t.uint32(8).uint64(e.block),e.app.isZero()||t.uint32(16).uint64(e.app),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},s);for(;r.pos>>3){case 1:o.block=r.uint64();break;case 2:o.app=r.uint64();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},s);return void 0!==e.block&&null!==e.block?t.block=o.default.fromString(e.block):t.block=o.default.UZERO,void 0!==e.app&&null!==e.app?t.app=o.default.fromString(e.app):t.app=o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.block&&(t.block=(e.block||o.default.UZERO).toString()),void 0!==e.app&&(t.app=(e.app||o.default.UZERO).toString()),t},fromPartial(e){const t=Object.assign({},s);return void 0!==e.block&&null!==e.block?t.block=e.block:t.block=o.default.UZERO,void 0!==e.app&&null!==e.app?t.app=e.app:t.app=o.default.UZERO,t}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},34730:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.MsgClientImpl=t.MsgSwapSendResponse=t.MsgSwapSend=t.MsgSwapResponse=t.MsgSwap=t.protobufPackage=void 0;const o=n(r(43720)),i=n(r(62100)),a=r(90557);t.protobufPackage="terra.market.v1beta1";const s={trader:"",askDenom:""};t.MsgSwap={encode:(e,t=i.default.Writer.create())=>(""!==e.trader&&t.uint32(10).string(e.trader),void 0!==e.offerCoin&&a.Coin.encode(e.offerCoin,t.uint32(18).fork()).ldelim(),""!==e.askDenom&&t.uint32(26).string(e.askDenom),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},s);for(;r.pos>>3){case 1:o.trader=r.string();break;case 2:o.offerCoin=a.Coin.decode(r,r.uint32());break;case 3:o.askDenom=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},s);return void 0!==e.trader&&null!==e.trader?t.trader=String(e.trader):t.trader="",void 0!==e.offerCoin&&null!==e.offerCoin?t.offerCoin=a.Coin.fromJSON(e.offerCoin):t.offerCoin=void 0,void 0!==e.askDenom&&null!==e.askDenom?t.askDenom=String(e.askDenom):t.askDenom="",t},toJSON(e){const t={};return void 0!==e.trader&&(t.trader=e.trader),void 0!==e.offerCoin&&(t.offerCoin=e.offerCoin?a.Coin.toJSON(e.offerCoin):void 0),void 0!==e.askDenom&&(t.askDenom=e.askDenom),t},fromPartial(e){const t=Object.assign({},s);return void 0!==e.trader&&null!==e.trader?t.trader=e.trader:t.trader="",void 0!==e.offerCoin&&null!==e.offerCoin?t.offerCoin=a.Coin.fromPartial(e.offerCoin):t.offerCoin=void 0,void 0!==e.askDenom&&null!==e.askDenom?t.askDenom=e.askDenom:t.askDenom="",t}};const u={};t.MsgSwapResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.swapCoin&&a.Coin.encode(e.swapCoin,t.uint32(10).fork()).ldelim(),void 0!==e.swapFee&&a.Coin.encode(e.swapFee,t.uint32(18).fork()).ldelim(),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},u);for(;r.pos>>3){case 1:o.swapCoin=a.Coin.decode(r,r.uint32());break;case 2:o.swapFee=a.Coin.decode(r,r.uint32());break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},u);return void 0!==e.swapCoin&&null!==e.swapCoin?t.swapCoin=a.Coin.fromJSON(e.swapCoin):t.swapCoin=void 0,void 0!==e.swapFee&&null!==e.swapFee?t.swapFee=a.Coin.fromJSON(e.swapFee):t.swapFee=void 0,t},toJSON(e){const t={};return void 0!==e.swapCoin&&(t.swapCoin=e.swapCoin?a.Coin.toJSON(e.swapCoin):void 0),void 0!==e.swapFee&&(t.swapFee=e.swapFee?a.Coin.toJSON(e.swapFee):void 0),t},fromPartial(e){const t=Object.assign({},u);return void 0!==e.swapCoin&&null!==e.swapCoin?t.swapCoin=a.Coin.fromPartial(e.swapCoin):t.swapCoin=void 0,void 0!==e.swapFee&&null!==e.swapFee?t.swapFee=a.Coin.fromPartial(e.swapFee):t.swapFee=void 0,t}};const c={fromAddress:"",toAddress:"",askDenom:""};t.MsgSwapSend={encode:(e,t=i.default.Writer.create())=>(""!==e.fromAddress&&t.uint32(10).string(e.fromAddress),""!==e.toAddress&&t.uint32(18).string(e.toAddress),void 0!==e.offerCoin&&a.Coin.encode(e.offerCoin,t.uint32(26).fork()).ldelim(),""!==e.askDenom&&t.uint32(34).string(e.askDenom),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},c);for(;r.pos>>3){case 1:o.fromAddress=r.string();break;case 2:o.toAddress=r.string();break;case 3:o.offerCoin=a.Coin.decode(r,r.uint32());break;case 4:o.askDenom=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},c);return void 0!==e.fromAddress&&null!==e.fromAddress?t.fromAddress=String(e.fromAddress):t.fromAddress="",void 0!==e.toAddress&&null!==e.toAddress?t.toAddress=String(e.toAddress):t.toAddress="",void 0!==e.offerCoin&&null!==e.offerCoin?t.offerCoin=a.Coin.fromJSON(e.offerCoin):t.offerCoin=void 0,void 0!==e.askDenom&&null!==e.askDenom?t.askDenom=String(e.askDenom):t.askDenom="",t},toJSON(e){const t={};return void 0!==e.fromAddress&&(t.fromAddress=e.fromAddress),void 0!==e.toAddress&&(t.toAddress=e.toAddress),void 0!==e.offerCoin&&(t.offerCoin=e.offerCoin?a.Coin.toJSON(e.offerCoin):void 0),void 0!==e.askDenom&&(t.askDenom=e.askDenom),t},fromPartial(e){const t=Object.assign({},c);return void 0!==e.fromAddress&&null!==e.fromAddress?t.fromAddress=e.fromAddress:t.fromAddress="",void 0!==e.toAddress&&null!==e.toAddress?t.toAddress=e.toAddress:t.toAddress="",void 0!==e.offerCoin&&null!==e.offerCoin?t.offerCoin=a.Coin.fromPartial(e.offerCoin):t.offerCoin=void 0,void 0!==e.askDenom&&null!==e.askDenom?t.askDenom=e.askDenom:t.askDenom="",t}};const d={};t.MsgSwapSendResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.swapCoin&&a.Coin.encode(e.swapCoin,t.uint32(10).fork()).ldelim(),void 0!==e.swapFee&&a.Coin.encode(e.swapFee,t.uint32(18).fork()).ldelim(),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},d);for(;r.pos>>3){case 1:o.swapCoin=a.Coin.decode(r,r.uint32());break;case 2:o.swapFee=a.Coin.decode(r,r.uint32());break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},d);return void 0!==e.swapCoin&&null!==e.swapCoin?t.swapCoin=a.Coin.fromJSON(e.swapCoin):t.swapCoin=void 0,void 0!==e.swapFee&&null!==e.swapFee?t.swapFee=a.Coin.fromJSON(e.swapFee):t.swapFee=void 0,t},toJSON(e){const t={};return void 0!==e.swapCoin&&(t.swapCoin=e.swapCoin?a.Coin.toJSON(e.swapCoin):void 0),void 0!==e.swapFee&&(t.swapFee=e.swapFee?a.Coin.toJSON(e.swapFee):void 0),t},fromPartial(e){const t=Object.assign({},d);return void 0!==e.swapCoin&&null!==e.swapCoin?t.swapCoin=a.Coin.fromPartial(e.swapCoin):t.swapCoin=void 0,void 0!==e.swapFee&&null!==e.swapFee?t.swapFee=a.Coin.fromPartial(e.swapFee):t.swapFee=void 0,t}},t.MsgClientImpl=class{constructor(e){this.rpc=e,this.Swap=this.Swap.bind(this),this.SwapSend=this.SwapSend.bind(this)}Swap(e){const r=t.MsgSwap.encode(e).finish();return this.rpc.request("terra.market.v1beta1.Msg","Swap",r).then((e=>t.MsgSwapResponse.decode(new i.default.Reader(e))))}SwapSend(e){const r=t.MsgSwapSend.encode(e).finish();return this.rpc.request("terra.market.v1beta1.Msg","SwapSend",r).then((e=>t.MsgSwapSendResponse.decode(new i.default.Reader(e))))}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},74143:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ExchangeRateTuple=t.AggregateExchangeRateVote=t.AggregateExchangeRatePrevote=t.Denom=t.Params=t.protobufPackage=void 0;const o=n(r(43720)),i=n(r(62100));t.protobufPackage="terra.oracle.v1beta1";const a={votePeriod:o.default.UZERO,voteThreshold:"",rewardBand:"",rewardDistributionWindow:o.default.UZERO,slashFraction:"",slashWindow:o.default.UZERO,minValidPerWindow:""};t.Params={encode(e,r=i.default.Writer.create()){e.votePeriod.isZero()||r.uint32(8).uint64(e.votePeriod),""!==e.voteThreshold&&r.uint32(18).string(e.voteThreshold),""!==e.rewardBand&&r.uint32(26).string(e.rewardBand),e.rewardDistributionWindow.isZero()||r.uint32(32).uint64(e.rewardDistributionWindow);for(const n of e.whitelist)t.Denom.encode(n,r.uint32(42).fork()).ldelim();return""!==e.slashFraction&&r.uint32(50).string(e.slashFraction),e.slashWindow.isZero()||r.uint32(56).uint64(e.slashWindow),""!==e.minValidPerWindow&&r.uint32(66).string(e.minValidPerWindow),r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const s=Object.assign({},a);for(s.whitelist=[];n.pos>>3){case 1:s.votePeriod=n.uint64();break;case 2:s.voteThreshold=n.string();break;case 3:s.rewardBand=n.string();break;case 4:s.rewardDistributionWindow=n.uint64();break;case 5:s.whitelist.push(t.Denom.decode(n,n.uint32()));break;case 6:s.slashFraction=n.string();break;case 7:s.slashWindow=n.uint64();break;case 8:s.minValidPerWindow=n.string();break;default:n.skipType(7&e)}}return s},fromJSON(e){const r=Object.assign({},a);if(r.whitelist=[],void 0!==e.votePeriod&&null!==e.votePeriod?r.votePeriod=o.default.fromString(e.votePeriod):r.votePeriod=o.default.UZERO,void 0!==e.voteThreshold&&null!==e.voteThreshold?r.voteThreshold=String(e.voteThreshold):r.voteThreshold="",void 0!==e.rewardBand&&null!==e.rewardBand?r.rewardBand=String(e.rewardBand):r.rewardBand="",void 0!==e.rewardDistributionWindow&&null!==e.rewardDistributionWindow?r.rewardDistributionWindow=o.default.fromString(e.rewardDistributionWindow):r.rewardDistributionWindow=o.default.UZERO,void 0!==e.whitelist&&null!==e.whitelist)for(const n of e.whitelist)r.whitelist.push(t.Denom.fromJSON(n));return void 0!==e.slashFraction&&null!==e.slashFraction?r.slashFraction=String(e.slashFraction):r.slashFraction="",void 0!==e.slashWindow&&null!==e.slashWindow?r.slashWindow=o.default.fromString(e.slashWindow):r.slashWindow=o.default.UZERO,void 0!==e.minValidPerWindow&&null!==e.minValidPerWindow?r.minValidPerWindow=String(e.minValidPerWindow):r.minValidPerWindow="",r},toJSON(e){const r={};return void 0!==e.votePeriod&&(r.votePeriod=(e.votePeriod||o.default.UZERO).toString()),void 0!==e.voteThreshold&&(r.voteThreshold=e.voteThreshold),void 0!==e.rewardBand&&(r.rewardBand=e.rewardBand),void 0!==e.rewardDistributionWindow&&(r.rewardDistributionWindow=(e.rewardDistributionWindow||o.default.UZERO).toString()),e.whitelist?r.whitelist=e.whitelist.map((e=>e?t.Denom.toJSON(e):void 0)):r.whitelist=[],void 0!==e.slashFraction&&(r.slashFraction=e.slashFraction),void 0!==e.slashWindow&&(r.slashWindow=(e.slashWindow||o.default.UZERO).toString()),void 0!==e.minValidPerWindow&&(r.minValidPerWindow=e.minValidPerWindow),r},fromPartial(e){const r=Object.assign({},a);if(r.whitelist=[],void 0!==e.votePeriod&&null!==e.votePeriod?r.votePeriod=e.votePeriod:r.votePeriod=o.default.UZERO,void 0!==e.voteThreshold&&null!==e.voteThreshold?r.voteThreshold=e.voteThreshold:r.voteThreshold="",void 0!==e.rewardBand&&null!==e.rewardBand?r.rewardBand=e.rewardBand:r.rewardBand="",void 0!==e.rewardDistributionWindow&&null!==e.rewardDistributionWindow?r.rewardDistributionWindow=e.rewardDistributionWindow:r.rewardDistributionWindow=o.default.UZERO,void 0!==e.whitelist&&null!==e.whitelist)for(const n of e.whitelist)r.whitelist.push(t.Denom.fromPartial(n));return void 0!==e.slashFraction&&null!==e.slashFraction?r.slashFraction=e.slashFraction:r.slashFraction="",void 0!==e.slashWindow&&null!==e.slashWindow?r.slashWindow=e.slashWindow:r.slashWindow=o.default.UZERO,void 0!==e.minValidPerWindow&&null!==e.minValidPerWindow?r.minValidPerWindow=e.minValidPerWindow:r.minValidPerWindow="",r}};const s={name:"",tobinTax:""};t.Denom={encode:(e,t=i.default.Writer.create())=>(""!==e.name&&t.uint32(10).string(e.name),""!==e.tobinTax&&t.uint32(18).string(e.tobinTax),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},s);for(;r.pos>>3){case 1:o.name=r.string();break;case 2:o.tobinTax=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},s);return void 0!==e.name&&null!==e.name?t.name=String(e.name):t.name="",void 0!==e.tobinTax&&null!==e.tobinTax?t.tobinTax=String(e.tobinTax):t.tobinTax="",t},toJSON(e){const t={};return void 0!==e.name&&(t.name=e.name),void 0!==e.tobinTax&&(t.tobinTax=e.tobinTax),t},fromPartial(e){const t=Object.assign({},s);return void 0!==e.name&&null!==e.name?t.name=e.name:t.name="",void 0!==e.tobinTax&&null!==e.tobinTax?t.tobinTax=e.tobinTax:t.tobinTax="",t}};const u={hash:"",voter:"",submitBlock:o.default.UZERO};t.AggregateExchangeRatePrevote={encode:(e,t=i.default.Writer.create())=>(""!==e.hash&&t.uint32(10).string(e.hash),""!==e.voter&&t.uint32(18).string(e.voter),e.submitBlock.isZero()||t.uint32(24).uint64(e.submitBlock),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},u);for(;r.pos>>3){case 1:o.hash=r.string();break;case 2:o.voter=r.string();break;case 3:o.submitBlock=r.uint64();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},u);return void 0!==e.hash&&null!==e.hash?t.hash=String(e.hash):t.hash="",void 0!==e.voter&&null!==e.voter?t.voter=String(e.voter):t.voter="",void 0!==e.submitBlock&&null!==e.submitBlock?t.submitBlock=o.default.fromString(e.submitBlock):t.submitBlock=o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.hash&&(t.hash=e.hash),void 0!==e.voter&&(t.voter=e.voter),void 0!==e.submitBlock&&(t.submitBlock=(e.submitBlock||o.default.UZERO).toString()),t},fromPartial(e){const t=Object.assign({},u);return void 0!==e.hash&&null!==e.hash?t.hash=e.hash:t.hash="",void 0!==e.voter&&null!==e.voter?t.voter=e.voter:t.voter="",void 0!==e.submitBlock&&null!==e.submitBlock?t.submitBlock=e.submitBlock:t.submitBlock=o.default.UZERO,t}};const c={voter:""};t.AggregateExchangeRateVote={encode(e,r=i.default.Writer.create()){for(const n of e.exchangeRateTuples)t.ExchangeRateTuple.encode(n,r.uint32(10).fork()).ldelim();return""!==e.voter&&r.uint32(18).string(e.voter),r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},c);for(a.exchangeRateTuples=[];n.pos>>3){case 1:a.exchangeRateTuples.push(t.ExchangeRateTuple.decode(n,n.uint32()));break;case 2:a.voter=n.string();break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},c);if(r.exchangeRateTuples=[],void 0!==e.exchangeRateTuples&&null!==e.exchangeRateTuples)for(const n of e.exchangeRateTuples)r.exchangeRateTuples.push(t.ExchangeRateTuple.fromJSON(n));return void 0!==e.voter&&null!==e.voter?r.voter=String(e.voter):r.voter="",r},toJSON(e){const r={};return e.exchangeRateTuples?r.exchangeRateTuples=e.exchangeRateTuples.map((e=>e?t.ExchangeRateTuple.toJSON(e):void 0)):r.exchangeRateTuples=[],void 0!==e.voter&&(r.voter=e.voter),r},fromPartial(e){const r=Object.assign({},c);if(r.exchangeRateTuples=[],void 0!==e.exchangeRateTuples&&null!==e.exchangeRateTuples)for(const n of e.exchangeRateTuples)r.exchangeRateTuples.push(t.ExchangeRateTuple.fromPartial(n));return void 0!==e.voter&&null!==e.voter?r.voter=e.voter:r.voter="",r}};const d={denom:"",exchangeRate:""};t.ExchangeRateTuple={encode:(e,t=i.default.Writer.create())=>(""!==e.denom&&t.uint32(10).string(e.denom),""!==e.exchangeRate&&t.uint32(18).string(e.exchangeRate),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},d);for(;r.pos>>3){case 1:o.denom=r.string();break;case 2:o.exchangeRate=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},d);return void 0!==e.denom&&null!==e.denom?t.denom=String(e.denom):t.denom="",void 0!==e.exchangeRate&&null!==e.exchangeRate?t.exchangeRate=String(e.exchangeRate):t.exchangeRate="",t},toJSON(e){const t={};return void 0!==e.denom&&(t.denom=e.denom),void 0!==e.exchangeRate&&(t.exchangeRate=e.exchangeRate),t},fromPartial(e){const t=Object.assign({},d);return void 0!==e.denom&&null!==e.denom?t.denom=e.denom:t.denom="",void 0!==e.exchangeRate&&null!==e.exchangeRate?t.exchangeRate=e.exchangeRate:t.exchangeRate="",t}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},28766:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.MsgClientImpl=t.MsgDelegateFeedConsentResponse=t.MsgDelegateFeedConsent=t.MsgAggregateExchangeRateVoteResponse=t.MsgAggregateExchangeRateVote=t.MsgAggregateExchangeRatePrevoteResponse=t.MsgAggregateExchangeRatePrevote=t.protobufPackage=void 0;const o=n(r(43720)),i=n(r(62100));t.protobufPackage="terra.oracle.v1beta1";const a={hash:"",feeder:"",validator:""};t.MsgAggregateExchangeRatePrevote={encode:(e,t=i.default.Writer.create())=>(""!==e.hash&&t.uint32(10).string(e.hash),""!==e.feeder&&t.uint32(18).string(e.feeder),""!==e.validator&&t.uint32(26).string(e.validator),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},a);for(;r.pos>>3){case 1:o.hash=r.string();break;case 2:o.feeder=r.string();break;case 3:o.validator=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},a);return void 0!==e.hash&&null!==e.hash?t.hash=String(e.hash):t.hash="",void 0!==e.feeder&&null!==e.feeder?t.feeder=String(e.feeder):t.feeder="",void 0!==e.validator&&null!==e.validator?t.validator=String(e.validator):t.validator="",t},toJSON(e){const t={};return void 0!==e.hash&&(t.hash=e.hash),void 0!==e.feeder&&(t.feeder=e.feeder),void 0!==e.validator&&(t.validator=e.validator),t},fromPartial(e){const t=Object.assign({},a);return void 0!==e.hash&&null!==e.hash?t.hash=e.hash:t.hash="",void 0!==e.feeder&&null!==e.feeder?t.feeder=e.feeder:t.feeder="",void 0!==e.validator&&null!==e.validator?t.validator=e.validator:t.validator="",t}};const s={};t.MsgAggregateExchangeRatePrevoteResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},s);for(;r.posObject.assign({},s),toJSON:e=>({}),fromPartial:e=>Object.assign({},s)};const u={salt:"",exchangeRates:"",feeder:"",validator:""};t.MsgAggregateExchangeRateVote={encode:(e,t=i.default.Writer.create())=>(""!==e.salt&&t.uint32(10).string(e.salt),""!==e.exchangeRates&&t.uint32(18).string(e.exchangeRates),""!==e.feeder&&t.uint32(26).string(e.feeder),""!==e.validator&&t.uint32(34).string(e.validator),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},u);for(;r.pos>>3){case 1:o.salt=r.string();break;case 2:o.exchangeRates=r.string();break;case 3:o.feeder=r.string();break;case 4:o.validator=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},u);return void 0!==e.salt&&null!==e.salt?t.salt=String(e.salt):t.salt="",void 0!==e.exchangeRates&&null!==e.exchangeRates?t.exchangeRates=String(e.exchangeRates):t.exchangeRates="",void 0!==e.feeder&&null!==e.feeder?t.feeder=String(e.feeder):t.feeder="",void 0!==e.validator&&null!==e.validator?t.validator=String(e.validator):t.validator="",t},toJSON(e){const t={};return void 0!==e.salt&&(t.salt=e.salt),void 0!==e.exchangeRates&&(t.exchangeRates=e.exchangeRates),void 0!==e.feeder&&(t.feeder=e.feeder),void 0!==e.validator&&(t.validator=e.validator),t},fromPartial(e){const t=Object.assign({},u);return void 0!==e.salt&&null!==e.salt?t.salt=e.salt:t.salt="",void 0!==e.exchangeRates&&null!==e.exchangeRates?t.exchangeRates=e.exchangeRates:t.exchangeRates="",void 0!==e.feeder&&null!==e.feeder?t.feeder=e.feeder:t.feeder="",void 0!==e.validator&&null!==e.validator?t.validator=e.validator:t.validator="",t}};const c={};t.MsgAggregateExchangeRateVoteResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},c);for(;r.posObject.assign({},c),toJSON:e=>({}),fromPartial:e=>Object.assign({},c)};const d={operator:"",delegate:""};t.MsgDelegateFeedConsent={encode:(e,t=i.default.Writer.create())=>(""!==e.operator&&t.uint32(10).string(e.operator),""!==e.delegate&&t.uint32(18).string(e.delegate),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},d);for(;r.pos>>3){case 1:o.operator=r.string();break;case 2:o.delegate=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},d);return void 0!==e.operator&&null!==e.operator?t.operator=String(e.operator):t.operator="",void 0!==e.delegate&&null!==e.delegate?t.delegate=String(e.delegate):t.delegate="",t},toJSON(e){const t={};return void 0!==e.operator&&(t.operator=e.operator),void 0!==e.delegate&&(t.delegate=e.delegate),t},fromPartial(e){const t=Object.assign({},d);return void 0!==e.operator&&null!==e.operator?t.operator=e.operator:t.operator="",void 0!==e.delegate&&null!==e.delegate?t.delegate=e.delegate:t.delegate="",t}};const l={};t.MsgDelegateFeedConsentResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},l);for(;r.posObject.assign({},l),toJSON:e=>({}),fromPartial:e=>Object.assign({},l)},t.MsgClientImpl=class{constructor(e){this.rpc=e,this.AggregateExchangeRatePrevote=this.AggregateExchangeRatePrevote.bind(this),this.AggregateExchangeRateVote=this.AggregateExchangeRateVote.bind(this),this.DelegateFeedConsent=this.DelegateFeedConsent.bind(this)}AggregateExchangeRatePrevote(e){const r=t.MsgAggregateExchangeRatePrevote.encode(e).finish();return this.rpc.request("terra.oracle.v1beta1.Msg","AggregateExchangeRatePrevote",r).then((e=>t.MsgAggregateExchangeRatePrevoteResponse.decode(new i.default.Reader(e))))}AggregateExchangeRateVote(e){const r=t.MsgAggregateExchangeRateVote.encode(e).finish();return this.rpc.request("terra.oracle.v1beta1.Msg","AggregateExchangeRateVote",r).then((e=>t.MsgAggregateExchangeRateVoteResponse.decode(new i.default.Reader(e))))}DelegateFeedConsent(e){const r=t.MsgDelegateFeedConsent.encode(e).finish();return this.rpc.request("terra.oracle.v1beta1.Msg","DelegateFeedConsent",r).then((e=>t.MsgDelegateFeedConsentResponse.decode(new i.default.Reader(e))))}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},50885:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.EpochInitialIssuance=t.EpochTaxProceeds=t.PolicyConstraints=t.Params=t.protobufPackage=void 0;const o=n(r(43720)),i=n(r(62100)),a=r(90557);t.protobufPackage="terra.treasury.v1beta1";const s={seigniorageBurdenTarget:"",miningIncrement:"",windowShort:o.default.UZERO,windowLong:o.default.UZERO,windowProbation:o.default.UZERO};t.Params={encode:(e,r=i.default.Writer.create())=>(void 0!==e.taxPolicy&&t.PolicyConstraints.encode(e.taxPolicy,r.uint32(10).fork()).ldelim(),void 0!==e.rewardPolicy&&t.PolicyConstraints.encode(e.rewardPolicy,r.uint32(18).fork()).ldelim(),""!==e.seigniorageBurdenTarget&&r.uint32(26).string(e.seigniorageBurdenTarget),""!==e.miningIncrement&&r.uint32(34).string(e.miningIncrement),e.windowShort.isZero()||r.uint32(40).uint64(e.windowShort),e.windowLong.isZero()||r.uint32(48).uint64(e.windowLong),e.windowProbation.isZero()||r.uint32(56).uint64(e.windowProbation),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},s);for(;n.pos>>3){case 1:a.taxPolicy=t.PolicyConstraints.decode(n,n.uint32());break;case 2:a.rewardPolicy=t.PolicyConstraints.decode(n,n.uint32());break;case 3:a.seigniorageBurdenTarget=n.string();break;case 4:a.miningIncrement=n.string();break;case 5:a.windowShort=n.uint64();break;case 6:a.windowLong=n.uint64();break;case 7:a.windowProbation=n.uint64();break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},s);return void 0!==e.taxPolicy&&null!==e.taxPolicy?r.taxPolicy=t.PolicyConstraints.fromJSON(e.taxPolicy):r.taxPolicy=void 0,void 0!==e.rewardPolicy&&null!==e.rewardPolicy?r.rewardPolicy=t.PolicyConstraints.fromJSON(e.rewardPolicy):r.rewardPolicy=void 0,void 0!==e.seigniorageBurdenTarget&&null!==e.seigniorageBurdenTarget?r.seigniorageBurdenTarget=String(e.seigniorageBurdenTarget):r.seigniorageBurdenTarget="",void 0!==e.miningIncrement&&null!==e.miningIncrement?r.miningIncrement=String(e.miningIncrement):r.miningIncrement="",void 0!==e.windowShort&&null!==e.windowShort?r.windowShort=o.default.fromString(e.windowShort):r.windowShort=o.default.UZERO,void 0!==e.windowLong&&null!==e.windowLong?r.windowLong=o.default.fromString(e.windowLong):r.windowLong=o.default.UZERO,void 0!==e.windowProbation&&null!==e.windowProbation?r.windowProbation=o.default.fromString(e.windowProbation):r.windowProbation=o.default.UZERO,r},toJSON(e){const r={};return void 0!==e.taxPolicy&&(r.taxPolicy=e.taxPolicy?t.PolicyConstraints.toJSON(e.taxPolicy):void 0),void 0!==e.rewardPolicy&&(r.rewardPolicy=e.rewardPolicy?t.PolicyConstraints.toJSON(e.rewardPolicy):void 0),void 0!==e.seigniorageBurdenTarget&&(r.seigniorageBurdenTarget=e.seigniorageBurdenTarget),void 0!==e.miningIncrement&&(r.miningIncrement=e.miningIncrement),void 0!==e.windowShort&&(r.windowShort=(e.windowShort||o.default.UZERO).toString()),void 0!==e.windowLong&&(r.windowLong=(e.windowLong||o.default.UZERO).toString()),void 0!==e.windowProbation&&(r.windowProbation=(e.windowProbation||o.default.UZERO).toString()),r},fromPartial(e){const r=Object.assign({},s);return void 0!==e.taxPolicy&&null!==e.taxPolicy?r.taxPolicy=t.PolicyConstraints.fromPartial(e.taxPolicy):r.taxPolicy=void 0,void 0!==e.rewardPolicy&&null!==e.rewardPolicy?r.rewardPolicy=t.PolicyConstraints.fromPartial(e.rewardPolicy):r.rewardPolicy=void 0,void 0!==e.seigniorageBurdenTarget&&null!==e.seigniorageBurdenTarget?r.seigniorageBurdenTarget=e.seigniorageBurdenTarget:r.seigniorageBurdenTarget="",void 0!==e.miningIncrement&&null!==e.miningIncrement?r.miningIncrement=e.miningIncrement:r.miningIncrement="",void 0!==e.windowShort&&null!==e.windowShort?r.windowShort=e.windowShort:r.windowShort=o.default.UZERO,void 0!==e.windowLong&&null!==e.windowLong?r.windowLong=e.windowLong:r.windowLong=o.default.UZERO,void 0!==e.windowProbation&&null!==e.windowProbation?r.windowProbation=e.windowProbation:r.windowProbation=o.default.UZERO,r}};const u={rateMin:"",rateMax:"",changeRateMax:""};t.PolicyConstraints={encode:(e,t=i.default.Writer.create())=>(""!==e.rateMin&&t.uint32(10).string(e.rateMin),""!==e.rateMax&&t.uint32(18).string(e.rateMax),void 0!==e.cap&&a.Coin.encode(e.cap,t.uint32(26).fork()).ldelim(),""!==e.changeRateMax&&t.uint32(34).string(e.changeRateMax),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},u);for(;r.pos>>3){case 1:o.rateMin=r.string();break;case 2:o.rateMax=r.string();break;case 3:o.cap=a.Coin.decode(r,r.uint32());break;case 4:o.changeRateMax=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},u);return void 0!==e.rateMin&&null!==e.rateMin?t.rateMin=String(e.rateMin):t.rateMin="",void 0!==e.rateMax&&null!==e.rateMax?t.rateMax=String(e.rateMax):t.rateMax="",void 0!==e.cap&&null!==e.cap?t.cap=a.Coin.fromJSON(e.cap):t.cap=void 0,void 0!==e.changeRateMax&&null!==e.changeRateMax?t.changeRateMax=String(e.changeRateMax):t.changeRateMax="",t},toJSON(e){const t={};return void 0!==e.rateMin&&(t.rateMin=e.rateMin),void 0!==e.rateMax&&(t.rateMax=e.rateMax),void 0!==e.cap&&(t.cap=e.cap?a.Coin.toJSON(e.cap):void 0),void 0!==e.changeRateMax&&(t.changeRateMax=e.changeRateMax),t},fromPartial(e){const t=Object.assign({},u);return void 0!==e.rateMin&&null!==e.rateMin?t.rateMin=e.rateMin:t.rateMin="",void 0!==e.rateMax&&null!==e.rateMax?t.rateMax=e.rateMax:t.rateMax="",void 0!==e.cap&&null!==e.cap?t.cap=a.Coin.fromPartial(e.cap):t.cap=void 0,void 0!==e.changeRateMax&&null!==e.changeRateMax?t.changeRateMax=e.changeRateMax:t.changeRateMax="",t}};const c={};t.EpochTaxProceeds={encode(e,t=i.default.Writer.create()){for(const r of e.taxProceeds)a.Coin.encode(r,t.uint32(10).fork()).ldelim();return t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},c);for(o.taxProceeds=[];r.pos>>3==1?o.taxProceeds.push(a.Coin.decode(r,r.uint32())):r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},c);if(t.taxProceeds=[],void 0!==e.taxProceeds&&null!==e.taxProceeds)for(const r of e.taxProceeds)t.taxProceeds.push(a.Coin.fromJSON(r));return t},toJSON(e){const t={};return e.taxProceeds?t.taxProceeds=e.taxProceeds.map((e=>e?a.Coin.toJSON(e):void 0)):t.taxProceeds=[],t},fromPartial(e){const t=Object.assign({},c);if(t.taxProceeds=[],void 0!==e.taxProceeds&&null!==e.taxProceeds)for(const r of e.taxProceeds)t.taxProceeds.push(a.Coin.fromPartial(r));return t}};const d={};t.EpochInitialIssuance={encode(e,t=i.default.Writer.create()){for(const r of e.issuance)a.Coin.encode(r,t.uint32(10).fork()).ldelim();return t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},d);for(o.issuance=[];r.pos>>3==1?o.issuance.push(a.Coin.decode(r,r.uint32())):r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},d);if(t.issuance=[],void 0!==e.issuance&&null!==e.issuance)for(const r of e.issuance)t.issuance.push(a.Coin.fromJSON(r));return t},toJSON(e){const t={};return e.issuance?t.issuance=e.issuance.map((e=>e?a.Coin.toJSON(e):void 0)):t.issuance=[],t},fromPartial(e){const t=Object.assign({},d);if(t.issuance=[],void 0!==e.issuance&&null!==e.issuance)for(const r of e.issuance)t.issuance.push(a.Coin.fromPartial(r));return t}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},4026:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.VestingSchedule=t.Schedule=t.LazyGradedVestingAccount=t.protobufPackage=void 0;const o=n(r(43720)),i=n(r(62100)),a=r(12628);t.protobufPackage="terra.vesting.v1beta1";const s={};t.LazyGradedVestingAccount={encode(e,r=i.default.Writer.create()){void 0!==e.baseVestingAccount&&a.BaseVestingAccount.encode(e.baseVestingAccount,r.uint32(10).fork()).ldelim();for(const n of e.vestingSchedules)t.VestingSchedule.encode(n,r.uint32(18).fork()).ldelim();return r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const u=Object.assign({},s);for(u.vestingSchedules=[];n.pos>>3){case 1:u.baseVestingAccount=a.BaseVestingAccount.decode(n,n.uint32());break;case 2:u.vestingSchedules.push(t.VestingSchedule.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return u},fromJSON(e){const r=Object.assign({},s);if(r.vestingSchedules=[],void 0!==e.baseVestingAccount&&null!==e.baseVestingAccount?r.baseVestingAccount=a.BaseVestingAccount.fromJSON(e.baseVestingAccount):r.baseVestingAccount=void 0,void 0!==e.vestingSchedules&&null!==e.vestingSchedules)for(const n of e.vestingSchedules)r.vestingSchedules.push(t.VestingSchedule.fromJSON(n));return r},toJSON(e){const r={};return void 0!==e.baseVestingAccount&&(r.baseVestingAccount=e.baseVestingAccount?a.BaseVestingAccount.toJSON(e.baseVestingAccount):void 0),e.vestingSchedules?r.vestingSchedules=e.vestingSchedules.map((e=>e?t.VestingSchedule.toJSON(e):void 0)):r.vestingSchedules=[],r},fromPartial(e){const r=Object.assign({},s);if(r.vestingSchedules=[],void 0!==e.baseVestingAccount&&null!==e.baseVestingAccount?r.baseVestingAccount=a.BaseVestingAccount.fromPartial(e.baseVestingAccount):r.baseVestingAccount=void 0,void 0!==e.vestingSchedules&&null!==e.vestingSchedules)for(const n of e.vestingSchedules)r.vestingSchedules.push(t.VestingSchedule.fromPartial(n));return r}};const u={startTime:o.default.ZERO,endTime:o.default.ZERO,ratio:""};t.Schedule={encode:(e,t=i.default.Writer.create())=>(e.startTime.isZero()||t.uint32(8).int64(e.startTime),e.endTime.isZero()||t.uint32(16).int64(e.endTime),""!==e.ratio&&t.uint32(26).string(e.ratio),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},u);for(;r.pos>>3){case 1:o.startTime=r.int64();break;case 2:o.endTime=r.int64();break;case 3:o.ratio=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},u);return void 0!==e.startTime&&null!==e.startTime?t.startTime=o.default.fromString(e.startTime):t.startTime=o.default.ZERO,void 0!==e.endTime&&null!==e.endTime?t.endTime=o.default.fromString(e.endTime):t.endTime=o.default.ZERO,void 0!==e.ratio&&null!==e.ratio?t.ratio=String(e.ratio):t.ratio="",t},toJSON(e){const t={};return void 0!==e.startTime&&(t.startTime=(e.startTime||o.default.ZERO).toString()),void 0!==e.endTime&&(t.endTime=(e.endTime||o.default.ZERO).toString()),void 0!==e.ratio&&(t.ratio=e.ratio),t},fromPartial(e){const t=Object.assign({},u);return void 0!==e.startTime&&null!==e.startTime?t.startTime=e.startTime:t.startTime=o.default.ZERO,void 0!==e.endTime&&null!==e.endTime?t.endTime=e.endTime:t.endTime=o.default.ZERO,void 0!==e.ratio&&null!==e.ratio?t.ratio=e.ratio:t.ratio="",t}};const c={denom:""};t.VestingSchedule={encode(e,r=i.default.Writer.create()){""!==e.denom&&r.uint32(10).string(e.denom);for(const n of e.schedules)t.Schedule.encode(n,r.uint32(18).fork()).ldelim();return r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},c);for(a.schedules=[];n.pos>>3){case 1:a.denom=n.string();break;case 2:a.schedules.push(t.Schedule.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},c);if(r.schedules=[],void 0!==e.denom&&null!==e.denom?r.denom=String(e.denom):r.denom="",void 0!==e.schedules&&null!==e.schedules)for(const n of e.schedules)r.schedules.push(t.Schedule.fromJSON(n));return r},toJSON(e){const r={};return void 0!==e.denom&&(r.denom=e.denom),e.schedules?r.schedules=e.schedules.map((e=>e?t.Schedule.toJSON(e):void 0)):r.schedules=[],r},fromPartial(e){const r=Object.assign({},c);if(r.schedules=[],void 0!==e.denom&&null!==e.denom?r.denom=e.denom:r.denom="",void 0!==e.schedules&&null!==e.schedules)for(const n of e.schedules)r.schedules.push(t.Schedule.fromPartial(n));return r}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},5652:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.MsgClientImpl=t.MsgClearContractAdminResponse=t.MsgClearContractAdmin=t.MsgUpdateContractAdminResponse=t.MsgUpdateContractAdmin=t.MsgMigrateContractResponse=t.MsgMigrateContract=t.MsgExecuteContractResponse=t.MsgExecuteContract=t.MsgInstantiateContractResponse=t.MsgInstantiateContract=t.MsgMigrateCodeResponse=t.MsgMigrateCode=t.MsgStoreCodeResponse=t.MsgStoreCode=t.protobufPackage=void 0;const o=n(r(43720)),i=n(r(62100)),a=r(90557);t.protobufPackage="terra.wasm.v1beta1";const s={sender:""};t.MsgStoreCode={encode:(e,t=i.default.Writer.create())=>(""!==e.sender&&t.uint32(10).string(e.sender),0!==e.wasmByteCode.length&&t.uint32(18).bytes(e.wasmByteCode),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},s);for(o.wasmByteCode=new Uint8Array;r.pos>>3){case 1:o.sender=r.string();break;case 2:o.wasmByteCode=r.bytes();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},s);return t.wasmByteCode=new Uint8Array,void 0!==e.sender&&null!==e.sender?t.sender=String(e.sender):t.sender="",void 0!==e.wasmByteCode&&null!==e.wasmByteCode&&(t.wasmByteCode=O(e.wasmByteCode)),t},toJSON(e){const t={};return void 0!==e.sender&&(t.sender=e.sender),void 0!==e.wasmByteCode&&(t.wasmByteCode=A(void 0!==e.wasmByteCode?e.wasmByteCode:new Uint8Array)),t},fromPartial(e){const t=Object.assign({},s);return void 0!==e.sender&&null!==e.sender?t.sender=e.sender:t.sender="",void 0!==e.wasmByteCode&&null!==e.wasmByteCode?t.wasmByteCode=e.wasmByteCode:t.wasmByteCode=new Uint8Array,t}};const u={codeId:o.default.UZERO};t.MsgStoreCodeResponse={encode:(e,t=i.default.Writer.create())=>(e.codeId.isZero()||t.uint32(8).uint64(e.codeId),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},u);for(;r.pos>>3==1?o.codeId=r.uint64():r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},u);return void 0!==e.codeId&&null!==e.codeId?t.codeId=o.default.fromString(e.codeId):t.codeId=o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.codeId&&(t.codeId=(e.codeId||o.default.UZERO).toString()),t},fromPartial(e){const t=Object.assign({},u);return void 0!==e.codeId&&null!==e.codeId?t.codeId=e.codeId:t.codeId=o.default.UZERO,t}};const c={codeId:o.default.UZERO,sender:""};t.MsgMigrateCode={encode:(e,t=i.default.Writer.create())=>(e.codeId.isZero()||t.uint32(8).uint64(e.codeId),""!==e.sender&&t.uint32(18).string(e.sender),0!==e.wasmByteCode.length&&t.uint32(26).bytes(e.wasmByteCode),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},c);for(o.wasmByteCode=new Uint8Array;r.pos>>3){case 1:o.codeId=r.uint64();break;case 2:o.sender=r.string();break;case 3:o.wasmByteCode=r.bytes();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},c);return t.wasmByteCode=new Uint8Array,void 0!==e.codeId&&null!==e.codeId?t.codeId=o.default.fromString(e.codeId):t.codeId=o.default.UZERO,void 0!==e.sender&&null!==e.sender?t.sender=String(e.sender):t.sender="",void 0!==e.wasmByteCode&&null!==e.wasmByteCode&&(t.wasmByteCode=O(e.wasmByteCode)),t},toJSON(e){const t={};return void 0!==e.codeId&&(t.codeId=(e.codeId||o.default.UZERO).toString()),void 0!==e.sender&&(t.sender=e.sender),void 0!==e.wasmByteCode&&(t.wasmByteCode=A(void 0!==e.wasmByteCode?e.wasmByteCode:new Uint8Array)),t},fromPartial(e){const t=Object.assign({},c);return void 0!==e.codeId&&null!==e.codeId?t.codeId=e.codeId:t.codeId=o.default.UZERO,void 0!==e.sender&&null!==e.sender?t.sender=e.sender:t.sender="",void 0!==e.wasmByteCode&&null!==e.wasmByteCode?t.wasmByteCode=e.wasmByteCode:t.wasmByteCode=new Uint8Array,t}};const d={};t.MsgMigrateCodeResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},d);for(;r.posObject.assign({},d),toJSON:e=>({}),fromPartial:e=>Object.assign({},d)};const l={sender:"",admin:"",codeId:o.default.UZERO};t.MsgInstantiateContract={encode(e,t=i.default.Writer.create()){""!==e.sender&&t.uint32(10).string(e.sender),""!==e.admin&&t.uint32(18).string(e.admin),e.codeId.isZero()||t.uint32(24).uint64(e.codeId),0!==e.initMsg.length&&t.uint32(34).bytes(e.initMsg);for(const r of e.initCoins)a.Coin.encode(r,t.uint32(42).fork()).ldelim();return t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},l);for(o.initCoins=[],o.initMsg=new Uint8Array;r.pos>>3){case 1:o.sender=r.string();break;case 2:o.admin=r.string();break;case 3:o.codeId=r.uint64();break;case 4:o.initMsg=r.bytes();break;case 5:o.initCoins.push(a.Coin.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},l);if(t.initCoins=[],t.initMsg=new Uint8Array,void 0!==e.sender&&null!==e.sender?t.sender=String(e.sender):t.sender="",void 0!==e.admin&&null!==e.admin?t.admin=String(e.admin):t.admin="",void 0!==e.codeId&&null!==e.codeId?t.codeId=o.default.fromString(e.codeId):t.codeId=o.default.UZERO,void 0!==e.initMsg&&null!==e.initMsg&&(t.initMsg=O(e.initMsg)),void 0!==e.initCoins&&null!==e.initCoins)for(const r of e.initCoins)t.initCoins.push(a.Coin.fromJSON(r));return t},toJSON(e){const t={};return void 0!==e.sender&&(t.sender=e.sender),void 0!==e.admin&&(t.admin=e.admin),void 0!==e.codeId&&(t.codeId=(e.codeId||o.default.UZERO).toString()),void 0!==e.initMsg&&(t.initMsg=A(void 0!==e.initMsg?e.initMsg:new Uint8Array)),e.initCoins?t.initCoins=e.initCoins.map((e=>e?a.Coin.toJSON(e):void 0)):t.initCoins=[],t},fromPartial(e){const t=Object.assign({},l);if(t.initCoins=[],void 0!==e.sender&&null!==e.sender?t.sender=e.sender:t.sender="",void 0!==e.admin&&null!==e.admin?t.admin=e.admin:t.admin="",void 0!==e.codeId&&null!==e.codeId?t.codeId=e.codeId:t.codeId=o.default.UZERO,void 0!==e.initMsg&&null!==e.initMsg?t.initMsg=e.initMsg:t.initMsg=new Uint8Array,void 0!==e.initCoins&&null!==e.initCoins)for(const r of e.initCoins)t.initCoins.push(a.Coin.fromPartial(r));return t}};const f={contractAddress:""};t.MsgInstantiateContractResponse={encode:(e,t=i.default.Writer.create())=>(""!==e.contractAddress&&t.uint32(10).string(e.contractAddress),0!==e.data.length&&t.uint32(18).bytes(e.data),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},f);for(o.data=new Uint8Array;r.pos>>3){case 1:o.contractAddress=r.string();break;case 2:o.data=r.bytes();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},f);return t.data=new Uint8Array,void 0!==e.contractAddress&&null!==e.contractAddress?t.contractAddress=String(e.contractAddress):t.contractAddress="",void 0!==e.data&&null!==e.data&&(t.data=O(e.data)),t},toJSON(e){const t={};return void 0!==e.contractAddress&&(t.contractAddress=e.contractAddress),void 0!==e.data&&(t.data=A(void 0!==e.data?e.data:new Uint8Array)),t},fromPartial(e){const t=Object.assign({},f);return void 0!==e.contractAddress&&null!==e.contractAddress?t.contractAddress=e.contractAddress:t.contractAddress="",void 0!==e.data&&null!==e.data?t.data=e.data:t.data=new Uint8Array,t}};const h={sender:"",contract:""};t.MsgExecuteContract={encode(e,t=i.default.Writer.create()){""!==e.sender&&t.uint32(10).string(e.sender),""!==e.contract&&t.uint32(18).string(e.contract),0!==e.executeMsg.length&&t.uint32(26).bytes(e.executeMsg);for(const r of e.coins)a.Coin.encode(r,t.uint32(42).fork()).ldelim();return t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},h);for(o.coins=[],o.executeMsg=new Uint8Array;r.pos>>3){case 1:o.sender=r.string();break;case 2:o.contract=r.string();break;case 3:o.executeMsg=r.bytes();break;case 5:o.coins.push(a.Coin.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},h);if(t.coins=[],t.executeMsg=new Uint8Array,void 0!==e.sender&&null!==e.sender?t.sender=String(e.sender):t.sender="",void 0!==e.contract&&null!==e.contract?t.contract=String(e.contract):t.contract="",void 0!==e.executeMsg&&null!==e.executeMsg&&(t.executeMsg=O(e.executeMsg)),void 0!==e.coins&&null!==e.coins)for(const r of e.coins)t.coins.push(a.Coin.fromJSON(r));return t},toJSON(e){const t={};return void 0!==e.sender&&(t.sender=e.sender),void 0!==e.contract&&(t.contract=e.contract),void 0!==e.executeMsg&&(t.executeMsg=A(void 0!==e.executeMsg?e.executeMsg:new Uint8Array)),e.coins?t.coins=e.coins.map((e=>e?a.Coin.toJSON(e):void 0)):t.coins=[],t},fromPartial(e){const t=Object.assign({},h);if(t.coins=[],void 0!==e.sender&&null!==e.sender?t.sender=e.sender:t.sender="",void 0!==e.contract&&null!==e.contract?t.contract=e.contract:t.contract="",void 0!==e.executeMsg&&null!==e.executeMsg?t.executeMsg=e.executeMsg:t.executeMsg=new Uint8Array,void 0!==e.coins&&null!==e.coins)for(const r of e.coins)t.coins.push(a.Coin.fromPartial(r));return t}};const p={};t.MsgExecuteContractResponse={encode:(e,t=i.default.Writer.create())=>(0!==e.data.length&&t.uint32(10).bytes(e.data),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},p);for(o.data=new Uint8Array;r.pos>>3==1?o.data=r.bytes():r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},p);return t.data=new Uint8Array,void 0!==e.data&&null!==e.data&&(t.data=O(e.data)),t},toJSON(e){const t={};return void 0!==e.data&&(t.data=A(void 0!==e.data?e.data:new Uint8Array)),t},fromPartial(e){const t=Object.assign({},p);return void 0!==e.data&&null!==e.data?t.data=e.data:t.data=new Uint8Array,t}};const m={admin:"",contract:"",newCodeId:o.default.UZERO};t.MsgMigrateContract={encode:(e,t=i.default.Writer.create())=>(""!==e.admin&&t.uint32(10).string(e.admin),""!==e.contract&&t.uint32(18).string(e.contract),e.newCodeId.isZero()||t.uint32(24).uint64(e.newCodeId),0!==e.migrateMsg.length&&t.uint32(34).bytes(e.migrateMsg),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},m);for(o.migrateMsg=new Uint8Array;r.pos>>3){case 1:o.admin=r.string();break;case 2:o.contract=r.string();break;case 3:o.newCodeId=r.uint64();break;case 4:o.migrateMsg=r.bytes();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},m);return t.migrateMsg=new Uint8Array,void 0!==e.admin&&null!==e.admin?t.admin=String(e.admin):t.admin="",void 0!==e.contract&&null!==e.contract?t.contract=String(e.contract):t.contract="",void 0!==e.newCodeId&&null!==e.newCodeId?t.newCodeId=o.default.fromString(e.newCodeId):t.newCodeId=o.default.UZERO,void 0!==e.migrateMsg&&null!==e.migrateMsg&&(t.migrateMsg=O(e.migrateMsg)),t},toJSON(e){const t={};return void 0!==e.admin&&(t.admin=e.admin),void 0!==e.contract&&(t.contract=e.contract),void 0!==e.newCodeId&&(t.newCodeId=(e.newCodeId||o.default.UZERO).toString()),void 0!==e.migrateMsg&&(t.migrateMsg=A(void 0!==e.migrateMsg?e.migrateMsg:new Uint8Array)),t},fromPartial(e){const t=Object.assign({},m);return void 0!==e.admin&&null!==e.admin?t.admin=e.admin:t.admin="",void 0!==e.contract&&null!==e.contract?t.contract=e.contract:t.contract="",void 0!==e.newCodeId&&null!==e.newCodeId?t.newCodeId=e.newCodeId:t.newCodeId=o.default.UZERO,void 0!==e.migrateMsg&&null!==e.migrateMsg?t.migrateMsg=e.migrateMsg:t.migrateMsg=new Uint8Array,t}};const g={};t.MsgMigrateContractResponse={encode:(e,t=i.default.Writer.create())=>(0!==e.data.length&&t.uint32(10).bytes(e.data),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},g);for(o.data=new Uint8Array;r.pos>>3==1?o.data=r.bytes():r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},g);return t.data=new Uint8Array,void 0!==e.data&&null!==e.data&&(t.data=O(e.data)),t},toJSON(e){const t={};return void 0!==e.data&&(t.data=A(void 0!==e.data?e.data:new Uint8Array)),t},fromPartial(e){const t=Object.assign({},g);return void 0!==e.data&&null!==e.data?t.data=e.data:t.data=new Uint8Array,t}};const v={admin:"",newAdmin:"",contract:""};t.MsgUpdateContractAdmin={encode:(e,t=i.default.Writer.create())=>(""!==e.admin&&t.uint32(10).string(e.admin),""!==e.newAdmin&&t.uint32(18).string(e.newAdmin),""!==e.contract&&t.uint32(26).string(e.contract),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},v);for(;r.pos>>3){case 1:o.admin=r.string();break;case 2:o.newAdmin=r.string();break;case 3:o.contract=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},v);return void 0!==e.admin&&null!==e.admin?t.admin=String(e.admin):t.admin="",void 0!==e.newAdmin&&null!==e.newAdmin?t.newAdmin=String(e.newAdmin):t.newAdmin="",void 0!==e.contract&&null!==e.contract?t.contract=String(e.contract):t.contract="",t},toJSON(e){const t={};return void 0!==e.admin&&(t.admin=e.admin),void 0!==e.newAdmin&&(t.newAdmin=e.newAdmin),void 0!==e.contract&&(t.contract=e.contract),t},fromPartial(e){const t=Object.assign({},v);return void 0!==e.admin&&null!==e.admin?t.admin=e.admin:t.admin="",void 0!==e.newAdmin&&null!==e.newAdmin?t.newAdmin=e.newAdmin:t.newAdmin="",void 0!==e.contract&&null!==e.contract?t.contract=e.contract:t.contract="",t}};const b={};t.MsgUpdateContractAdminResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},b);for(;r.posObject.assign({},b),toJSON:e=>({}),fromPartial:e=>Object.assign({},b)};const y={admin:"",contract:""};t.MsgClearContractAdmin={encode:(e,t=i.default.Writer.create())=>(""!==e.admin&&t.uint32(10).string(e.admin),""!==e.contract&&t.uint32(18).string(e.contract),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},y);for(;r.pos>>3){case 1:o.admin=r.string();break;case 2:o.contract=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},y);return void 0!==e.admin&&null!==e.admin?t.admin=String(e.admin):t.admin="",void 0!==e.contract&&null!==e.contract?t.contract=String(e.contract):t.contract="",t},toJSON(e){const t={};return void 0!==e.admin&&(t.admin=e.admin),void 0!==e.contract&&(t.contract=e.contract),t},fromPartial(e){const t=Object.assign({},y);return void 0!==e.admin&&null!==e.admin?t.admin=e.admin:t.admin="",void 0!==e.contract&&null!==e.contract?t.contract=e.contract:t.contract="",t}};const w={};t.MsgClearContractAdminResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},w);for(;r.posObject.assign({},w),toJSON:e=>({}),fromPartial:e=>Object.assign({},w)},t.MsgClientImpl=class{constructor(e){this.rpc=e,this.StoreCode=this.StoreCode.bind(this),this.MigrateCode=this.MigrateCode.bind(this),this.InstantiateContract=this.InstantiateContract.bind(this),this.ExecuteContract=this.ExecuteContract.bind(this),this.MigrateContract=this.MigrateContract.bind(this),this.UpdateContractAdmin=this.UpdateContractAdmin.bind(this),this.ClearContractAdmin=this.ClearContractAdmin.bind(this)}StoreCode(e){const r=t.MsgStoreCode.encode(e).finish();return this.rpc.request("terra.wasm.v1beta1.Msg","StoreCode",r).then((e=>t.MsgStoreCodeResponse.decode(new i.default.Reader(e))))}MigrateCode(e){const r=t.MsgMigrateCode.encode(e).finish();return this.rpc.request("terra.wasm.v1beta1.Msg","MigrateCode",r).then((e=>t.MsgMigrateCodeResponse.decode(new i.default.Reader(e))))}InstantiateContract(e){const r=t.MsgInstantiateContract.encode(e).finish();return this.rpc.request("terra.wasm.v1beta1.Msg","InstantiateContract",r).then((e=>t.MsgInstantiateContractResponse.decode(new i.default.Reader(e))))}ExecuteContract(e){const r=t.MsgExecuteContract.encode(e).finish();return this.rpc.request("terra.wasm.v1beta1.Msg","ExecuteContract",r).then((e=>t.MsgExecuteContractResponse.decode(new i.default.Reader(e))))}MigrateContract(e){const r=t.MsgMigrateContract.encode(e).finish();return this.rpc.request("terra.wasm.v1beta1.Msg","MigrateContract",r).then((e=>t.MsgMigrateContractResponse.decode(new i.default.Reader(e))))}UpdateContractAdmin(e){const r=t.MsgUpdateContractAdmin.encode(e).finish();return this.rpc.request("terra.wasm.v1beta1.Msg","UpdateContractAdmin",r).then((e=>t.MsgUpdateContractAdminResponse.decode(new i.default.Reader(e))))}ClearContractAdmin(e){const r=t.MsgClearContractAdmin.encode(e).finish();return this.rpc.request("terra.wasm.v1beta1.Msg","ClearContractAdmin",r).then((e=>t.MsgClearContractAdminResponse.decode(new i.default.Reader(e))))}};var _=(()=>{if(void 0!==_)return _;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==r.g)return r.g;throw"Unable to locate global object"})();const S=_.atob||(e=>_.Buffer.from(e,"base64").toString("binary"));function O(e){const t=S(e),r=new Uint8Array(t.length);for(let e=0;e_.Buffer.from(e,"binary").toString("base64"));function A(e){const t=[];for(const r of e)t.push(String.fromCharCode(r));return k(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},78826:function(e){"use strict";!function(t){function r(e){return parseInt(e)===e}function n(e){if(!r(e.length))return!1;for(var t=0;t255)return!1;return!0}function o(e,t){if(e.buffer&&ArrayBuffer.isView(e)&&"Uint8Array"===e.name)return t&&(e=e.slice?e.slice():Array.prototype.slice.call(e)),e;if(Array.isArray(e)){if(!n(e))throw new Error("Array contains invalid value: "+e);return new Uint8Array(e)}if(r(e.length)&&n(e))return new Uint8Array(e);throw new Error("unsupported array-like object")}function i(e){return new Uint8Array(e)}function a(e,t,r,n,o){null==n&&null==o||(e=e.slice?e.slice(n,o):Array.prototype.slice.call(e,n,o)),t.set(e,r)}var s,u={toBytes:function(e){var t=[],r=0;for(e=encodeURI(e);r191&&n<224?(t.push(String.fromCharCode((31&n)<<6|63&e[r+1])),r+=2):(t.push(String.fromCharCode((15&n)<<12|(63&e[r+1])<<6|63&e[r+2])),r+=3)}return t.join("")}},c=(s="0123456789abcdef",{toBytes:function(e){for(var t=[],r=0;r>4]+s[15&n])}return t.join("")}}),d={16:10,24:12,32:14},l=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145],f=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],h=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125],p=[3328402341,4168907908,4000806809,4135287693,4294111757,3597364157,3731845041,2445657428,1613770832,33620227,3462883241,1445669757,3892248089,3050821474,1303096294,3967186586,2412431941,528646813,2311702848,4202528135,4026202645,2992200171,2387036105,4226871307,1101901292,3017069671,1604494077,1169141738,597466303,1403299063,3832705686,2613100635,1974974402,3791519004,1033081774,1277568618,1815492186,2118074177,4126668546,2211236943,1748251740,1369810420,3521504564,4193382664,3799085459,2883115123,1647391059,706024767,134480908,2512897874,1176707941,2646852446,806885416,932615841,168101135,798661301,235341577,605164086,461406363,3756188221,3454790438,1311188841,2142417613,3933566367,302582043,495158174,1479289972,874125870,907746093,3698224818,3025820398,1537253627,2756858614,1983593293,3084310113,2108928974,1378429307,3722699582,1580150641,327451799,2790478837,3117535592,0,3253595436,1075847264,3825007647,2041688520,3059440621,3563743934,2378943302,1740553945,1916352843,2487896798,2555137236,2958579944,2244988746,3151024235,3320835882,1336584933,3992714006,2252555205,2588757463,1714631509,293963156,2319795663,3925473552,67240454,4269768577,2689618160,2017213508,631218106,1269344483,2723238387,1571005438,2151694528,93294474,1066570413,563977660,1882732616,4059428100,1673313503,2008463041,2950355573,1109467491,537923632,3858759450,4260623118,3218264685,2177748300,403442708,638784309,3287084079,3193921505,899127202,2286175436,773265209,2479146071,1437050866,4236148354,2050833735,3362022572,3126681063,840505643,3866325909,3227541664,427917720,2655997905,2749160575,1143087718,1412049534,999329963,193497219,2353415882,3354324521,1807268051,672404540,2816401017,3160301282,369822493,2916866934,3688947771,1681011286,1949973070,336202270,2454276571,201721354,1210328172,3093060836,2680341085,3184776046,1135389935,3294782118,965841320,831886756,3554993207,4068047243,3588745010,2345191491,1849112409,3664604599,26054028,2983581028,2622377682,1235855840,3630984372,2891339514,4092916743,3488279077,3395642799,4101667470,1202630377,268961816,1874508501,4034427016,1243948399,1546530418,941366308,1470539505,1941222599,2546386513,3421038627,2715671932,3899946140,1042226977,2521517021,1639824860,227249030,260737669,3765465232,2084453954,1907733956,3429263018,2420656344,100860677,4160157185,470683154,3261161891,1781871967,2924959737,1773779408,394692241,2579611992,974986535,664706745,3655459128,3958962195,731420851,571543859,3530123707,2849626480,126783113,865375399,765172662,1008606754,361203602,3387549984,2278477385,2857719295,1344809080,2782912378,59542671,1503764984,160008576,437062935,1707065306,3622233649,2218934982,3496503480,2185314755,697932208,1512910199,504303377,2075177163,2824099068,1841019862,739644986],m=[2781242211,2230877308,2582542199,2381740923,234877682,3184946027,2984144751,1418839493,1348481072,50462977,2848876391,2102799147,434634494,1656084439,3863849899,2599188086,1167051466,2636087938,1082771913,2281340285,368048890,3954334041,3381544775,201060592,3963727277,1739838676,4250903202,3930435503,3206782108,4149453988,2531553906,1536934080,3262494647,484572669,2923271059,1783375398,1517041206,1098792767,49674231,1334037708,1550332980,4098991525,886171109,150598129,2481090929,1940642008,1398944049,1059722517,201851908,1385547719,1699095331,1587397571,674240536,2704774806,252314885,3039795866,151914247,908333586,2602270848,1038082786,651029483,1766729511,3447698098,2682942837,454166793,2652734339,1951935532,775166490,758520603,3000790638,4004797018,4217086112,4137964114,1299594043,1639438038,3464344499,2068982057,1054729187,1901997871,2534638724,4121318227,1757008337,0,750906861,1614815264,535035132,3363418545,3988151131,3201591914,1183697867,3647454910,1265776953,3734260298,3566750796,3903871064,1250283471,1807470800,717615087,3847203498,384695291,3313910595,3617213773,1432761139,2484176261,3481945413,283769337,100925954,2180939647,4037038160,1148730428,3123027871,3813386408,4087501137,4267549603,3229630528,2315620239,2906624658,3156319645,1215313976,82966005,3747855548,3245848246,1974459098,1665278241,807407632,451280895,251524083,1841287890,1283575245,337120268,891687699,801369324,3787349855,2721421207,3431482436,959321879,1469301956,4065699751,2197585534,1199193405,2898814052,3887750493,724703513,2514908019,2696962144,2551808385,3516813135,2141445340,1715741218,2119445034,2872807568,2198571144,3398190662,700968686,3547052216,1009259540,2041044702,3803995742,487983883,1991105499,1004265696,1449407026,1316239930,504629770,3683797321,168560134,1816667172,3837287516,1570751170,1857934291,4014189740,2797888098,2822345105,2754712981,936633572,2347923833,852879335,1133234376,1500395319,3084545389,2348912013,1689376213,3533459022,3762923945,3034082412,4205598294,133428468,634383082,2949277029,2398386810,3913789102,403703816,3580869306,2297460856,1867130149,1918643758,607656988,4049053350,3346248884,1368901318,600565992,2090982877,2632479860,557719327,3717614411,3697393085,2249034635,2232388234,2430627952,1115438654,3295786421,2865522278,3633334344,84280067,33027830,303828494,2747425121,1600795957,4188952407,3496589753,2434238086,1486471617,658119965,3106381470,953803233,334231800,3005978776,857870609,3151128937,1890179545,2298973838,2805175444,3056442267,574365214,2450884487,550103529,1233637070,4289353045,2018519080,2057691103,2399374476,4166623649,2148108681,387583245,3664101311,836232934,3330556482,3100665960,3280093505,2955516313,2002398509,287182607,3413881008,4238890068,3597515707,975967766],g=[1671808611,2089089148,2006576759,2072901243,4061003762,1807603307,1873927791,3310653893,810573872,16974337,1739181671,729634347,4263110654,3613570519,2883997099,1989864566,3393556426,2191335298,3376449993,2106063485,4195741690,1508618841,1204391495,4027317232,2917941677,3563566036,2734514082,2951366063,2629772188,2767672228,1922491506,3227229120,3082974647,4246528509,2477669779,644500518,911895606,1061256767,4144166391,3427763148,878471220,2784252325,3845444069,4043897329,1905517169,3631459288,827548209,356461077,67897348,3344078279,593839651,3277757891,405286936,2527147926,84871685,2595565466,118033927,305538066,2157648768,3795705826,3945188843,661212711,2999812018,1973414517,152769033,2208177539,745822252,439235610,455947803,1857215598,1525593178,2700827552,1391895634,994932283,3596728278,3016654259,695947817,3812548067,795958831,2224493444,1408607827,3513301457,0,3979133421,543178784,4229948412,2982705585,1542305371,1790891114,3410398667,3201918910,961245753,1256100938,1289001036,1491644504,3477767631,3496721360,4012557807,2867154858,4212583931,1137018435,1305975373,861234739,2241073541,1171229253,4178635257,33948674,2139225727,1357946960,1011120188,2679776671,2833468328,1374921297,2751356323,1086357568,2408187279,2460827538,2646352285,944271416,4110742005,3168756668,3066132406,3665145818,560153121,271589392,4279952895,4077846003,3530407890,3444343245,202643468,322250259,3962553324,1608629855,2543990167,1154254916,389623319,3294073796,2817676711,2122513534,1028094525,1689045092,1575467613,422261273,1939203699,1621147744,2174228865,1339137615,3699352540,577127458,712922154,2427141008,2290289544,1187679302,3995715566,3100863416,339486740,3732514782,1591917662,186455563,3681988059,3762019296,844522546,978220090,169743370,1239126601,101321734,611076132,1558493276,3260915650,3547250131,2901361580,1655096418,2443721105,2510565781,3828863972,2039214713,3878868455,3359869896,928607799,1840765549,2374762893,3580146133,1322425422,2850048425,1823791212,1459268694,4094161908,3928346602,1706019429,2056189050,2934523822,135794696,3134549946,2022240376,628050469,779246638,472135708,2800834470,3032970164,3327236038,3894660072,3715932637,1956440180,522272287,1272813131,3185336765,2340818315,2323976074,1888542832,1044544574,3049550261,1722469478,1222152264,50660867,4127324150,236067854,1638122081,895445557,1475980887,3117443513,2257655686,3243809217,489110045,2662934430,3778599393,4162055160,2561878936,288563729,1773916777,3648039385,2391345038,2493985684,2612407707,505560094,2274497927,3911240169,3460925390,1442818645,678973480,3749357023,2358182796,2717407649,2306869641,219617805,3218761151,3862026214,1120306242,1756942440,1103331905,2578459033,762796589,252780047,2966125488,1425844308,3151392187,372911126],v=[1667474886,2088535288,2004326894,2071694838,4075949567,1802223062,1869591006,3318043793,808472672,16843522,1734846926,724270422,4278065639,3621216949,2880169549,1987484396,3402253711,2189597983,3385409673,2105378810,4210693615,1499065266,1195886990,4042263547,2913856577,3570689971,2728590687,2947541573,2627518243,2762274643,1920112356,3233831835,3082273397,4261223649,2475929149,640051788,909531756,1061110142,4160160501,3435941763,875846760,2779116625,3857003729,4059105529,1903268834,3638064043,825316194,353713962,67374088,3351728789,589522246,3284360861,404236336,2526454071,84217610,2593830191,117901582,303183396,2155911963,3806477791,3958056653,656894286,2998062463,1970642922,151591698,2206440989,741110872,437923380,454765878,1852748508,1515908788,2694904667,1381168804,993742198,3604373943,3014905469,690584402,3823320797,791638366,2223281939,1398011302,3520161977,0,3991743681,538992704,4244381667,2981218425,1532751286,1785380564,3419096717,3200178535,960056178,1246420628,1280103576,1482221744,3486468741,3503319995,4025428677,2863326543,4227536621,1128514950,1296947098,859002214,2240123921,1162203018,4193849577,33687044,2139062782,1347481760,1010582648,2678045221,2829640523,1364325282,2745433693,1077985408,2408548869,2459086143,2644360225,943212656,4126475505,3166494563,3065430391,3671750063,555836226,269496352,4294908645,4092792573,3537006015,3452783745,202118168,320025894,3974901699,1600119230,2543297077,1145359496,387397934,3301201811,2812801621,2122220284,1027426170,1684319432,1566435258,421079858,1936954854,1616945344,2172753945,1330631070,3705438115,572679748,707427924,2425400123,2290647819,1179044492,4008585671,3099120491,336870440,3739122087,1583276732,185277718,3688593069,3772791771,842159716,976899700,168435220,1229577106,101059084,606366792,1549591736,3267517855,3553849021,2897014595,1650632388,2442242105,2509612081,3840161747,2038008818,3890688725,3368567691,926374254,1835907034,2374863873,3587531953,1313788572,2846482505,1819063512,1448540844,4109633523,3941213647,1701162954,2054852340,2930698567,134748176,3132806511,2021165296,623210314,774795868,471606328,2795958615,3031746419,3334885783,3907527627,3722280097,1953799400,522133822,1263263126,3183336545,2341176845,2324333839,1886425312,1044267644,3048588401,1718004428,1212733584,50529542,4143317495,235803164,1633788866,892690282,1465383342,3115962473,2256965911,3250673817,488449850,2661202215,3789633753,4177007595,2560144171,286339874,1768537042,3654906025,2391705863,2492770099,2610673197,505291324,2273808917,3924369609,3469625735,1431699370,673740880,3755965093,2358021891,2711746649,2307489801,218961690,3217021541,3873845719,1111672452,1751693520,1094828930,2576986153,757954394,252645662,2964376443,1414855848,3149649517,370555436],b=[1374988112,2118214995,437757123,975658646,1001089995,530400753,2902087851,1273168787,540080725,2910219766,2295101073,4110568485,1340463100,3307916247,641025152,3043140495,3736164937,632953703,1172967064,1576976609,3274667266,2169303058,2370213795,1809054150,59727847,361929877,3211623147,2505202138,3569255213,1484005843,1239443753,2395588676,1975683434,4102977912,2572697195,666464733,3202437046,4035489047,3374361702,2110667444,1675577880,3843699074,2538681184,1649639237,2976151520,3144396420,4269907996,4178062228,1883793496,2403728665,2497604743,1383856311,2876494627,1917518562,3810496343,1716890410,3001755655,800440835,2261089178,3543599269,807962610,599762354,33778362,3977675356,2328828971,2809771154,4077384432,1315562145,1708848333,101039829,3509871135,3299278474,875451293,2733856160,92987698,2767645557,193195065,1080094634,1584504582,3178106961,1042385657,2531067453,3711829422,1306967366,2438237621,1908694277,67556463,1615861247,429456164,3602770327,2302690252,1742315127,2968011453,126454664,3877198648,2043211483,2709260871,2084704233,4169408201,0,159417987,841739592,504459436,1817866830,4245618683,260388950,1034867998,908933415,168810852,1750902305,2606453969,607530554,202008497,2472011535,3035535058,463180190,2160117071,1641816226,1517767529,470948374,3801332234,3231722213,1008918595,303765277,235474187,4069246893,766945465,337553864,1475418501,2943682380,4003061179,2743034109,4144047775,1551037884,1147550661,1543208500,2336434550,3408119516,3069049960,3102011747,3610369226,1113818384,328671808,2227573024,2236228733,3535486456,2935566865,3341394285,496906059,3702665459,226906860,2009195472,733156972,2842737049,294930682,1206477858,2835123396,2700099354,1451044056,573804783,2269728455,3644379585,2362090238,2564033334,2801107407,2776292904,3669462566,1068351396,742039012,1350078989,1784663195,1417561698,4136440770,2430122216,775550814,2193862645,2673705150,1775276924,1876241833,3475313331,3366754619,270040487,3902563182,3678124923,3441850377,1851332852,3969562369,2203032232,3868552805,2868897406,566021896,4011190502,3135740889,1248802510,3936291284,699432150,832877231,708780849,3332740144,899835584,1951317047,4236429990,3767586992,866637845,4043610186,1106041591,2144161806,395441711,1984812685,1139781709,3433712980,3835036895,2664543715,1282050075,3240894392,1181045119,2640243204,25965917,4203181171,4211818798,3009879386,2463879762,3910161971,1842759443,2597806476,933301370,1509430414,3943906441,3467192302,3076639029,3776767469,2051518780,2631065433,1441952575,404016761,1942435775,1408749034,1610459739,3745345300,2017778566,3400528769,3110650942,941896748,3265478751,371049330,3168937228,675039627,4279080257,967311729,135050206,3635733660,1683407248,2076935265,3576870512,1215061108,3501741890],y=[1347548327,1400783205,3273267108,2520393566,3409685355,4045380933,2880240216,2471224067,1428173050,4138563181,2441661558,636813900,4233094615,3620022987,2149987652,2411029155,1239331162,1730525723,2554718734,3781033664,46346101,310463728,2743944855,3328955385,3875770207,2501218972,3955191162,3667219033,768917123,3545789473,692707433,1150208456,1786102409,2029293177,1805211710,3710368113,3065962831,401639597,1724457132,3028143674,409198410,2196052529,1620529459,1164071807,3769721975,2226875310,486441376,2499348523,1483753576,428819965,2274680428,3075636216,598438867,3799141122,1474502543,711349675,129166120,53458370,2592523643,2782082824,4063242375,2988687269,3120694122,1559041666,730517276,2460449204,4042459122,2706270690,3446004468,3573941694,533804130,2328143614,2637442643,2695033685,839224033,1973745387,957055980,2856345839,106852767,1371368976,4181598602,1033297158,2933734917,1179510461,3046200461,91341917,1862534868,4284502037,605657339,2547432937,3431546947,2003294622,3182487618,2282195339,954669403,3682191598,1201765386,3917234703,3388507166,0,2198438022,1211247597,2887651696,1315723890,4227665663,1443857720,507358933,657861945,1678381017,560487590,3516619604,975451694,2970356327,261314535,3535072918,2652609425,1333838021,2724322336,1767536459,370938394,182621114,3854606378,1128014560,487725847,185469197,2918353863,3106780840,3356761769,2237133081,1286567175,3152976349,4255350624,2683765030,3160175349,3309594171,878443390,1988838185,3704300486,1756818940,1673061617,3403100636,272786309,1075025698,545572369,2105887268,4174560061,296679730,1841768865,1260232239,4091327024,3960309330,3497509347,1814803222,2578018489,4195456072,575138148,3299409036,446754879,3629546796,4011996048,3347532110,3252238545,4270639778,915985419,3483825537,681933534,651868046,2755636671,3828103837,223377554,2607439820,1649704518,3270937875,3901806776,1580087799,4118987695,3198115200,2087309459,2842678573,3016697106,1003007129,2802849917,1860738147,2077965243,164439672,4100872472,32283319,2827177882,1709610350,2125135846,136428751,3874428392,3652904859,3460984630,3572145929,3593056380,2939266226,824852259,818324884,3224740454,930369212,2801566410,2967507152,355706840,1257309336,4148292826,243256656,790073846,2373340630,1296297904,1422699085,3756299780,3818836405,457992840,3099667487,2135319889,77422314,1560382517,1945798516,788204353,1521706781,1385356242,870912086,325965383,2358957921,2050466060,2388260884,2313884476,4006521127,901210569,3990953189,1014646705,1503449823,1062597235,2031621326,3212035895,3931371469,1533017514,350174575,2256028891,2177544179,1052338372,741876788,1606591296,1914052035,213705253,2334669897,1107234197,1899603969,3725069491,2631447780,2422494913,1635502980,1893020342,1950903388,1120974935],w=[2807058932,1699970625,2764249623,1586903591,1808481195,1173430173,1487645946,59984867,4199882800,1844882806,1989249228,1277555970,3623636965,3419915562,1149249077,2744104290,1514790577,459744698,244860394,3235995134,1963115311,4027744588,2544078150,4190530515,1608975247,2627016082,2062270317,1507497298,2200818878,567498868,1764313568,3359936201,2305455554,2037970062,1047239e3,1910319033,1337376481,2904027272,2892417312,984907214,1243112415,830661914,861968209,2135253587,2011214180,2927934315,2686254721,731183368,1750626376,4246310725,1820824798,4172763771,3542330227,48394827,2404901663,2871682645,671593195,3254988725,2073724613,145085239,2280796200,2779915199,1790575107,2187128086,472615631,3029510009,4075877127,3802222185,4107101658,3201631749,1646252340,4270507174,1402811438,1436590835,3778151818,3950355702,3963161475,4020912224,2667994737,273792366,2331590177,104699613,95345982,3175501286,2377486676,1560637892,3564045318,369057872,4213447064,3919042237,1137477952,2658625497,1119727848,2340947849,1530455833,4007360968,172466556,266959938,516552836,0,2256734592,3980931627,1890328081,1917742170,4294704398,945164165,3575528878,958871085,3647212047,2787207260,1423022939,775562294,1739656202,3876557655,2530391278,2443058075,3310321856,547512796,1265195639,437656594,3121275539,719700128,3762502690,387781147,218828297,3350065803,2830708150,2848461854,428169201,122466165,3720081049,1627235199,648017665,4122762354,1002783846,2117360635,695634755,3336358691,4234721005,4049844452,3704280881,2232435299,574624663,287343814,612205898,1039717051,840019705,2708326185,793451934,821288114,1391201670,3822090177,376187827,3113855344,1224348052,1679968233,2361698556,1058709744,752375421,2431590963,1321699145,3519142200,2734591178,188127444,2177869557,3727205754,2384911031,3215212461,2648976442,2450346104,3432737375,1180849278,331544205,3102249176,4150144569,2952102595,2159976285,2474404304,766078933,313773861,2570832044,2108100632,1668212892,3145456443,2013908262,418672217,3070356634,2594734927,1852171925,3867060991,3473416636,3907448597,2614737639,919489135,164948639,2094410160,2997825956,590424639,2486224549,1723872674,3157750862,3399941250,3501252752,3625268135,2555048196,3673637356,1343127501,4130281361,3599595085,2957853679,1297403050,81781910,3051593425,2283490410,532201772,1367295589,3926170974,895287692,1953757831,1093597963,492483431,3528626907,1446242576,1192455638,1636604631,209336225,344873464,1015671571,669961897,3375740769,3857572124,2973530695,3747192018,1933530610,3464042516,935293895,3454686199,2858115069,1863638845,3683022916,4085369519,3292445032,875313188,1080017571,3279033885,621591778,1233856572,2504130317,24197544,3017672716,3835484340,3247465558,2220981195,3060847922,1551124588,1463996600],_=[4104605777,1097159550,396673818,660510266,2875968315,2638606623,4200115116,3808662347,821712160,1986918061,3430322568,38544885,3856137295,718002117,893681702,1654886325,2975484382,3122358053,3926825029,4274053469,796197571,1290801793,1184342925,3556361835,2405426947,2459735317,1836772287,1381620373,3196267988,1948373848,3764988233,3385345166,3263785589,2390325492,1480485785,3111247143,3780097726,2293045232,548169417,3459953789,3746175075,439452389,1362321559,1400849762,1685577905,1806599355,2174754046,137073913,1214797936,1174215055,3731654548,2079897426,1943217067,1258480242,529487843,1437280870,3945269170,3049390895,3313212038,923313619,679998e3,3215307299,57326082,377642221,3474729866,2041877159,133361907,1776460110,3673476453,96392454,878845905,2801699524,777231668,4082475170,2330014213,4142626212,2213296395,1626319424,1906247262,1846563261,562755902,3708173718,1040559837,3871163981,1418573201,3294430577,114585348,1343618912,2566595609,3186202582,1078185097,3651041127,3896688048,2307622919,425408743,3371096953,2081048481,1108339068,2216610296,0,2156299017,736970802,292596766,1517440620,251657213,2235061775,2933202493,758720310,265905162,1554391400,1532285339,908999204,174567692,1474760595,4002861748,2610011675,3234156416,3693126241,2001430874,303699484,2478443234,2687165888,585122620,454499602,151849742,2345119218,3064510765,514443284,4044981591,1963412655,2581445614,2137062819,19308535,1928707164,1715193156,4219352155,1126790795,600235211,3992742070,3841024952,836553431,1669664834,2535604243,3323011204,1243905413,3141400786,4180808110,698445255,2653899549,2989552604,2253581325,3252932727,3004591147,1891211689,2487810577,3915653703,4237083816,4030667424,2100090966,865136418,1229899655,953270745,3399679628,3557504664,4118925222,2061379749,3079546586,2915017791,983426092,2022837584,1607244650,2118541908,2366882550,3635996816,972512814,3283088770,1568718495,3499326569,3576539503,621982671,2895723464,410887952,2623762152,1002142683,645401037,1494807662,2595684844,1335535747,2507040230,4293295786,3167684641,367585007,3885750714,1865862730,2668221674,2960971305,2763173681,1059270954,2777952454,2724642869,1320957812,2194319100,2429595872,2815956275,77089521,3973773121,3444575871,2448830231,1305906550,4021308739,2857194700,2516901860,3518358430,1787304780,740276417,1699839814,1592394909,2352307457,2272556026,188821243,1729977011,3687994002,274084841,3594982253,3613494426,2701949495,4162096729,322734571,2837966542,1640576439,484830689,1202797690,3537852828,4067639125,349075736,3342319475,4157467219,4255800159,1030690015,1155237496,2951971274,1757691577,607398968,2738905026,499347990,3794078908,1011452712,227885567,2818666809,213114376,3034881240,1455525988,3414450555,850817237,1817998408,3092726480],S=[0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795],O=[0,185469197,370938394,487725847,741876788,657861945,975451694,824852259,1483753576,1400783205,1315723890,1164071807,1950903388,2135319889,1649704518,1767536459,2967507152,3152976349,2801566410,2918353863,2631447780,2547432937,2328143614,2177544179,3901806776,3818836405,4270639778,4118987695,3299409036,3483825537,3535072918,3652904859,2077965243,1893020342,1841768865,1724457132,1474502543,1559041666,1107234197,1257309336,598438867,681933534,901210569,1052338372,261314535,77422314,428819965,310463728,3409685355,3224740454,3710368113,3593056380,3875770207,3960309330,4045380933,4195456072,2471224067,2554718734,2237133081,2388260884,3212035895,3028143674,2842678573,2724322336,4138563181,4255350624,3769721975,3955191162,3667219033,3516619604,3431546947,3347532110,2933734917,2782082824,3099667487,3016697106,2196052529,2313884476,2499348523,2683765030,1179510461,1296297904,1347548327,1533017514,1786102409,1635502980,2087309459,2003294622,507358933,355706840,136428751,53458370,839224033,957055980,605657339,790073846,2373340630,2256028891,2607439820,2422494913,2706270690,2856345839,3075636216,3160175349,3573941694,3725069491,3273267108,3356761769,4181598602,4063242375,4011996048,3828103837,1033297158,915985419,730517276,545572369,296679730,446754879,129166120,213705253,1709610350,1860738147,1945798516,2029293177,1239331162,1120974935,1606591296,1422699085,4148292826,4233094615,3781033664,3931371469,3682191598,3497509347,3446004468,3328955385,2939266226,2755636671,3106780840,2988687269,2198438022,2282195339,2501218972,2652609425,1201765386,1286567175,1371368976,1521706781,1805211710,1620529459,2105887268,1988838185,533804130,350174575,164439672,46346101,870912086,954669403,636813900,788204353,2358957921,2274680428,2592523643,2441661558,2695033685,2880240216,3065962831,3182487618,3572145929,3756299780,3270937875,3388507166,4174560061,4091327024,4006521127,3854606378,1014646705,930369212,711349675,560487590,272786309,457992840,106852767,223377554,1678381017,1862534868,1914052035,2031621326,1211247597,1128014560,1580087799,1428173050,32283319,182621114,401639597,486441376,768917123,651868046,1003007129,818324884,1503449823,1385356242,1333838021,1150208456,1973745387,2125135846,1673061617,1756818940,2970356327,3120694122,2802849917,2887651696,2637442643,2520393566,2334669897,2149987652,3917234703,3799141122,4284502037,4100872472,3309594171,3460984630,3545789473,3629546796,2050466060,1899603969,1814803222,1730525723,1443857720,1560382517,1075025698,1260232239,575138148,692707433,878443390,1062597235,243256656,91341917,409198410,325965383,3403100636,3252238545,3704300486,3620022987,3874428392,3990953189,4042459122,4227665663,2460449204,2578018489,2226875310,2411029155,3198115200,3046200461,2827177882,2743944855],k=[0,218828297,437656594,387781147,875313188,958871085,775562294,590424639,1750626376,1699970625,1917742170,2135253587,1551124588,1367295589,1180849278,1265195639,3501252752,3720081049,3399941250,3350065803,3835484340,3919042237,4270507174,4085369519,3102249176,3051593425,2734591178,2952102595,2361698556,2177869557,2530391278,2614737639,3145456443,3060847922,2708326185,2892417312,2404901663,2187128086,2504130317,2555048196,3542330227,3727205754,3375740769,3292445032,3876557655,3926170974,4246310725,4027744588,1808481195,1723872674,1910319033,2094410160,1608975247,1391201670,1173430173,1224348052,59984867,244860394,428169201,344873464,935293895,984907214,766078933,547512796,1844882806,1627235199,2011214180,2062270317,1507497298,1423022939,1137477952,1321699145,95345982,145085239,532201772,313773861,830661914,1015671571,731183368,648017665,3175501286,2957853679,2807058932,2858115069,2305455554,2220981195,2474404304,2658625497,3575528878,3625268135,3473416636,3254988725,3778151818,3963161475,4213447064,4130281361,3599595085,3683022916,3432737375,3247465558,3802222185,4020912224,4172763771,4122762354,3201631749,3017672716,2764249623,2848461854,2331590177,2280796200,2431590963,2648976442,104699613,188127444,472615631,287343814,840019705,1058709744,671593195,621591778,1852171925,1668212892,1953757831,2037970062,1514790577,1463996600,1080017571,1297403050,3673637356,3623636965,3235995134,3454686199,4007360968,3822090177,4107101658,4190530515,2997825956,3215212461,2830708150,2779915199,2256734592,2340947849,2627016082,2443058075,172466556,122466165,273792366,492483431,1047239e3,861968209,612205898,695634755,1646252340,1863638845,2013908262,1963115311,1446242576,1530455833,1277555970,1093597963,1636604631,1820824798,2073724613,1989249228,1436590835,1487645946,1337376481,1119727848,164948639,81781910,331544205,516552836,1039717051,821288114,669961897,719700128,2973530695,3157750862,2871682645,2787207260,2232435299,2283490410,2667994737,2450346104,3647212047,3564045318,3279033885,3464042516,3980931627,3762502690,4150144569,4199882800,3070356634,3121275539,2904027272,2686254721,2200818878,2384911031,2570832044,2486224549,3747192018,3528626907,3310321856,3359936201,3950355702,3867060991,4049844452,4234721005,1739656202,1790575107,2108100632,1890328081,1402811438,1586903591,1233856572,1149249077,266959938,48394827,369057872,418672217,1002783846,919489135,567498868,752375421,209336225,24197544,376187827,459744698,945164165,895287692,574624663,793451934,1679968233,1764313568,2117360635,1933530610,1343127501,1560637892,1243112415,1192455638,3704280881,3519142200,3336358691,3419915562,3907448597,3857572124,4075877127,4294704398,3029510009,3113855344,2927934315,2744104290,2159976285,2377486676,2594734927,2544078150],A=[0,151849742,303699484,454499602,607398968,758720310,908999204,1059270954,1214797936,1097159550,1517440620,1400849762,1817998408,1699839814,2118541908,2001430874,2429595872,2581445614,2194319100,2345119218,3034881240,3186202582,2801699524,2951971274,3635996816,3518358430,3399679628,3283088770,4237083816,4118925222,4002861748,3885750714,1002142683,850817237,698445255,548169417,529487843,377642221,227885567,77089521,1943217067,2061379749,1640576439,1757691577,1474760595,1592394909,1174215055,1290801793,2875968315,2724642869,3111247143,2960971305,2405426947,2253581325,2638606623,2487810577,3808662347,3926825029,4044981591,4162096729,3342319475,3459953789,3576539503,3693126241,1986918061,2137062819,1685577905,1836772287,1381620373,1532285339,1078185097,1229899655,1040559837,923313619,740276417,621982671,439452389,322734571,137073913,19308535,3871163981,4021308739,4104605777,4255800159,3263785589,3414450555,3499326569,3651041127,2933202493,2815956275,3167684641,3049390895,2330014213,2213296395,2566595609,2448830231,1305906550,1155237496,1607244650,1455525988,1776460110,1626319424,2079897426,1928707164,96392454,213114376,396673818,514443284,562755902,679998e3,865136418,983426092,3708173718,3557504664,3474729866,3323011204,4180808110,4030667424,3945269170,3794078908,2507040230,2623762152,2272556026,2390325492,2975484382,3092726480,2738905026,2857194700,3973773121,3856137295,4274053469,4157467219,3371096953,3252932727,3673476453,3556361835,2763173681,2915017791,3064510765,3215307299,2156299017,2307622919,2459735317,2610011675,2081048481,1963412655,1846563261,1729977011,1480485785,1362321559,1243905413,1126790795,878845905,1030690015,645401037,796197571,274084841,425408743,38544885,188821243,3613494426,3731654548,3313212038,3430322568,4082475170,4200115116,3780097726,3896688048,2668221674,2516901860,2366882550,2216610296,3141400786,2989552604,2837966542,2687165888,1202797690,1320957812,1437280870,1554391400,1669664834,1787304780,1906247262,2022837584,265905162,114585348,499347990,349075736,736970802,585122620,972512814,821712160,2595684844,2478443234,2293045232,2174754046,3196267988,3079546586,2895723464,2777952454,3537852828,3687994002,3234156416,3385345166,4142626212,4293295786,3841024952,3992742070,174567692,57326082,410887952,292596766,777231668,660510266,1011452712,893681702,1108339068,1258480242,1343618912,1494807662,1715193156,1865862730,1948373848,2100090966,2701949495,2818666809,3004591147,3122358053,2235061775,2352307457,2535604243,2653899549,3915653703,3764988233,4219352155,4067639125,3444575871,3294430577,3746175075,3594982253,836553431,953270745,600235211,718002117,367585007,484830689,133361907,251657213,2041877159,1891211689,1806599355,1654886325,1568718495,1418573201,1335535747,1184342925];function P(e){for(var t=[],r=0;r>2,this._Ke[r][t%4]=i[t],this._Kd[e-r][t%4]=i[t];for(var a,s=0,u=o;u>16&255]<<24^f[a>>8&255]<<16^f[255&a]<<8^f[a>>24&255]^l[s]<<24,s+=1,8!=o)for(t=1;t>8&255]<<8^f[a>>16&255]<<16^f[a>>24&255]<<24,t=o/2+1;t>2,h=u%4,this._Ke[c][h]=i[t],this._Kd[e-c][h]=i[t++],u++}for(var c=1;c>24&255]^O[a>>16&255]^k[a>>8&255]^A[255&a]},M.prototype.encrypt=function(e){if(16!=e.length)throw new Error("invalid plaintext size (must be 16 bytes)");for(var t=this._Ke.length-1,r=[0,0,0,0],n=P(e),o=0;o<4;o++)n[o]^=this._Ke[0][o];for(var a=1;a>24&255]^m[n[(o+1)%4]>>16&255]^g[n[(o+2)%4]>>8&255]^v[255&n[(o+3)%4]]^this._Ke[a][o];n=r.slice()}var s,u=i(16);for(o=0;o<4;o++)s=this._Ke[t][o],u[4*o]=255&(f[n[o]>>24&255]^s>>24),u[4*o+1]=255&(f[n[(o+1)%4]>>16&255]^s>>16),u[4*o+2]=255&(f[n[(o+2)%4]>>8&255]^s>>8),u[4*o+3]=255&(f[255&n[(o+3)%4]]^s);return u},M.prototype.decrypt=function(e){if(16!=e.length)throw new Error("invalid ciphertext size (must be 16 bytes)");for(var t=this._Kd.length-1,r=[0,0,0,0],n=P(e),o=0;o<4;o++)n[o]^=this._Kd[0][o];for(var a=1;a>24&255]^y[n[(o+3)%4]>>16&255]^w[n[(o+2)%4]>>8&255]^_[255&n[(o+1)%4]]^this._Kd[a][o];n=r.slice()}var s,u=i(16);for(o=0;o<4;o++)s=this._Kd[t][o],u[4*o]=255&(h[n[o]>>24&255]^s>>24),u[4*o+1]=255&(h[n[(o+3)%4]>>16&255]^s>>16),u[4*o+2]=255&(h[n[(o+2)%4]>>8&255]^s>>8),u[4*o+3]=255&(h[255&n[(o+1)%4]]^s);return u};var E=function(e){if(!(this instanceof E))throw Error("AES must be instanitated with `new`");this.description="Electronic Code Block",this.name="ecb",this._aes=new M(e)};E.prototype.encrypt=function(e){if((e=o(e)).length%16!=0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var t=i(e.length),r=i(16),n=0;n=0;--t)this._counter[t]=e%256,e>>=8},R.prototype.setBytes=function(e){if(16!=(e=o(e,!0)).length)throw new Error("invalid counter bytes size (must be 16 bytes)");this._counter=e},R.prototype.increment=function(){for(var e=15;e>=0;e--){if(255!==this._counter[e]){this._counter[e]++;break}this._counter[e]=0}};var I=function(e,t){if(!(this instanceof I))throw Error("AES must be instanitated with `new`");this.description="Counter",this.name="ctr",t instanceof R||(t=new R(t)),this._counter=t,this._remainingCounter=null,this._remainingCounterIndex=16,this._aes=new M(e)};I.prototype.encrypt=function(e){for(var t=o(e,!0),r=0;r16)throw new Error("PKCS#7 padding byte out of range");for(var r=e.length-t,n=0;n{"use strict";const n=t;n.bignum=r(4590),n.define=r(22500).define,n.base=r(71979),n.constants=r(36826),n.decoders=r(78307),n.encoders=r(56579)},22500:(e,t,r)=>{"use strict";const n=r(56579),o=r(78307),i=r(35717);function a(e,t){this.name=e,this.body=t,this.decoders={},this.encoders={}}t.define=function(e,t){return new a(e,t)},a.prototype._createNamed=function(e){const t=this.name;function r(e){this._initNamed(e,t)}return i(r,e),r.prototype._initNamed=function(t,r){e.call(this,t,r)},new r(this)},a.prototype._getDecoder=function(e){return e=e||"der",this.decoders.hasOwnProperty(e)||(this.decoders[e]=this._createNamed(o[e])),this.decoders[e]},a.prototype.decode=function(e,t,r){return this._getDecoder(t).decode(e,r)},a.prototype._getEncoder=function(e){return e=e||"der",this.encoders.hasOwnProperty(e)||(this.encoders[e]=this._createNamed(n[e])),this.encoders[e]},a.prototype.encode=function(e,t,r){return this._getEncoder(t).encode(e,r)}},36625:(e,t,r)=>{"use strict";const n=r(35717),o=r(98465).b,i=r(2399).Buffer;function a(e,t){o.call(this,t),i.isBuffer(e)?(this.base=e,this.offset=0,this.length=e.length):this.error("Input not Buffer")}function s(e,t){if(Array.isArray(e))this.length=0,this.value=e.map((function(e){return s.isEncoderBuffer(e)||(e=new s(e,t)),this.length+=e.length,e}),this);else if("number"==typeof e){if(!(0<=e&&e<=255))return t.error("non-byte EncoderBuffer value");this.value=e,this.length=1}else if("string"==typeof e)this.value=e,this.length=i.byteLength(e);else{if(!i.isBuffer(e))return t.error("Unsupported type: "+typeof e);this.value=e,this.length=e.length}}n(a,o),t.C=a,a.isDecoderBuffer=function(e){return e instanceof a||"object"==typeof e&&i.isBuffer(e.base)&&"DecoderBuffer"===e.constructor.name&&"number"==typeof e.offset&&"number"==typeof e.length&&"function"==typeof e.save&&"function"==typeof e.restore&&"function"==typeof e.isEmpty&&"function"==typeof e.readUInt8&&"function"==typeof e.skip&&"function"==typeof e.raw},a.prototype.save=function(){return{offset:this.offset,reporter:o.prototype.save.call(this)}},a.prototype.restore=function(e){const t=new a(this.base);return t.offset=e.offset,t.length=this.offset,this.offset=e.offset,o.prototype.restore.call(this,e.reporter),t},a.prototype.isEmpty=function(){return this.offset===this.length},a.prototype.readUInt8=function(e){return this.offset+1<=this.length?this.base.readUInt8(this.offset++,!0):this.error(e||"DecoderBuffer overrun")},a.prototype.skip=function(e,t){if(!(this.offset+e<=this.length))return this.error(t||"DecoderBuffer overrun");const r=new a(this.base);return r._reporterState=this._reporterState,r.offset=this.offset,r.length=this.offset+e,this.offset+=e,r},a.prototype.raw=function(e){return this.base.slice(e?e.offset:this.offset,this.length)},t.R=s,s.isEncoderBuffer=function(e){return e instanceof s||"object"==typeof e&&"EncoderBuffer"===e.constructor.name&&"number"==typeof e.length&&"function"==typeof e.join},s.prototype.join=function(e,t){return e||(e=i.alloc(this.length)),t||(t=0),0===this.length||(Array.isArray(this.value)?this.value.forEach((function(r){r.join(e,t),t+=r.length})):("number"==typeof this.value?e[t]=this.value:"string"==typeof this.value?e.write(this.value,t):i.isBuffer(this.value)&&this.value.copy(e,t),t+=this.length)),e}},71979:(e,t,r)=>{"use strict";const n=t;n.Reporter=r(98465).b,n.DecoderBuffer=r(36625).C,n.EncoderBuffer=r(36625).R,n.Node=r(41949)},41949:(e,t,r)=>{"use strict";const n=r(98465).b,o=r(36625).R,i=r(36625).C,a=r(79746),s=["seq","seqof","set","setof","objid","bool","gentime","utctime","null_","enum","int","objDesc","bitstr","bmpstr","charstr","genstr","graphstr","ia5str","iso646str","numstr","octstr","printstr","t61str","unistr","utf8str","videostr"],u=["key","obj","use","optional","explicit","implicit","def","choice","any","contains"].concat(s);function c(e,t,r){const n={};this._baseState=n,n.name=r,n.enc=e,n.parent=t||null,n.children=null,n.tag=null,n.args=null,n.reverseArgs=null,n.choice=null,n.optional=!1,n.any=!1,n.obj=!1,n.use=null,n.useDecoder=null,n.key=null,n.default=null,n.explicit=null,n.implicit=null,n.contains=null,n.parent||(n.children=[],this._wrap())}e.exports=c;const d=["enc","parent","children","tag","args","reverseArgs","choice","optional","any","obj","use","alteredUse","key","default","explicit","implicit","contains"];c.prototype.clone=function(){const e=this._baseState,t={};d.forEach((function(r){t[r]=e[r]}));const r=new this.constructor(t.parent);return r._baseState=t,r},c.prototype._wrap=function(){const e=this._baseState;u.forEach((function(t){this[t]=function(){const r=new this.constructor(this);return e.children.push(r),r[t].apply(r,arguments)}}),this)},c.prototype._init=function(e){const t=this._baseState;a(null===t.parent),e.call(this),t.children=t.children.filter((function(e){return e._baseState.parent===this}),this),a.equal(t.children.length,1,"Root node can have only one child")},c.prototype._useArgs=function(e){const t=this._baseState,r=e.filter((function(e){return e instanceof this.constructor}),this);e=e.filter((function(e){return!(e instanceof this.constructor)}),this),0!==r.length&&(a(null===t.children),t.children=r,r.forEach((function(e){e._baseState.parent=this}),this)),0!==e.length&&(a(null===t.args),t.args=e,t.reverseArgs=e.map((function(e){if("object"!=typeof e||e.constructor!==Object)return e;const t={};return Object.keys(e).forEach((function(r){r==(0|r)&&(r|=0);const n=e[r];t[n]=r})),t})))},["_peekTag","_decodeTag","_use","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeInt","_decodeBool","_decodeList","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool"].forEach((function(e){c.prototype[e]=function(){const t=this._baseState;throw new Error(e+" not implemented for encoding: "+t.enc)}})),s.forEach((function(e){c.prototype[e]=function(){const t=this._baseState,r=Array.prototype.slice.call(arguments);return a(null===t.tag),t.tag=e,this._useArgs(r),this}})),c.prototype.use=function(e){a(e);const t=this._baseState;return a(null===t.use),t.use=e,this},c.prototype.optional=function(){return this._baseState.optional=!0,this},c.prototype.def=function(e){const t=this._baseState;return a(null===t.default),t.default=e,t.optional=!0,this},c.prototype.explicit=function(e){const t=this._baseState;return a(null===t.explicit&&null===t.implicit),t.explicit=e,this},c.prototype.implicit=function(e){const t=this._baseState;return a(null===t.explicit&&null===t.implicit),t.implicit=e,this},c.prototype.obj=function(){const e=this._baseState,t=Array.prototype.slice.call(arguments);return e.obj=!0,0!==t.length&&this._useArgs(t),this},c.prototype.key=function(e){const t=this._baseState;return a(null===t.key),t.key=e,this},c.prototype.any=function(){return this._baseState.any=!0,this},c.prototype.choice=function(e){const t=this._baseState;return a(null===t.choice),t.choice=e,this._useArgs(Object.keys(e).map((function(t){return e[t]}))),this},c.prototype.contains=function(e){const t=this._baseState;return a(null===t.use),t.contains=e,this},c.prototype._decode=function(e,t){const r=this._baseState;if(null===r.parent)return e.wrapResult(r.children[0]._decode(e,t));let n,o=r.default,a=!0,s=null;if(null!==r.key&&(s=e.enterKey(r.key)),r.optional){let n=null;if(null!==r.explicit?n=r.explicit:null!==r.implicit?n=r.implicit:null!==r.tag&&(n=r.tag),null!==n||r.any){if(a=this._peekTag(e,n,r.any),e.isError(a))return a}else{const n=e.save();try{null===r.choice?this._decodeGeneric(r.tag,e,t):this._decodeChoice(e,t),a=!0}catch(e){a=!1}e.restore(n)}}if(r.obj&&a&&(n=e.enterObject()),a){if(null!==r.explicit){const t=this._decodeTag(e,r.explicit);if(e.isError(t))return t;e=t}const n=e.offset;if(null===r.use&&null===r.choice){let t;r.any&&(t=e.save());const n=this._decodeTag(e,null!==r.implicit?r.implicit:r.tag,r.any);if(e.isError(n))return n;r.any?o=e.raw(t):e=n}if(t&&t.track&&null!==r.tag&&t.track(e.path(),n,e.length,"tagged"),t&&t.track&&null!==r.tag&&t.track(e.path(),e.offset,e.length,"content"),r.any||(o=null===r.choice?this._decodeGeneric(r.tag,e,t):this._decodeChoice(e,t)),e.isError(o))return o;if(r.any||null!==r.choice||null===r.children||r.children.forEach((function(r){r._decode(e,t)})),r.contains&&("octstr"===r.tag||"bitstr"===r.tag)){const n=new i(o);o=this._getUse(r.contains,e._reporterState.obj)._decode(n,t)}}return r.obj&&a&&(o=e.leaveObject(n)),null===r.key||null===o&&!0!==a?null!==s&&e.exitKey(s):e.leaveKey(s,r.key,o),o},c.prototype._decodeGeneric=function(e,t,r){const n=this._baseState;return"seq"===e||"set"===e?null:"seqof"===e||"setof"===e?this._decodeList(t,e,n.args[0],r):/str$/.test(e)?this._decodeStr(t,e,r):"objid"===e&&n.args?this._decodeObjid(t,n.args[0],n.args[1],r):"objid"===e?this._decodeObjid(t,null,null,r):"gentime"===e||"utctime"===e?this._decodeTime(t,e,r):"null_"===e?this._decodeNull(t,r):"bool"===e?this._decodeBool(t,r):"objDesc"===e?this._decodeStr(t,e,r):"int"===e||"enum"===e?this._decodeInt(t,n.args&&n.args[0],r):null!==n.use?this._getUse(n.use,t._reporterState.obj)._decode(t,r):t.error("unknown tag: "+e)},c.prototype._getUse=function(e,t){const r=this._baseState;return r.useDecoder=this._use(e,t),a(null===r.useDecoder._baseState.parent),r.useDecoder=r.useDecoder._baseState.children[0],r.implicit!==r.useDecoder._baseState.implicit&&(r.useDecoder=r.useDecoder.clone(),r.useDecoder._baseState.implicit=r.implicit),r.useDecoder},c.prototype._decodeChoice=function(e,t){const r=this._baseState;let n=null,o=!1;return Object.keys(r.choice).some((function(i){const a=e.save(),s=r.choice[i];try{const r=s._decode(e,t);if(e.isError(r))return!1;n={type:i,value:r},o=!0}catch(t){return e.restore(a),!1}return!0}),this),o?n:e.error("Choice not matched")},c.prototype._createEncoderBuffer=function(e){return new o(e,this.reporter)},c.prototype._encode=function(e,t,r){const n=this._baseState;if(null!==n.default&&n.default===e)return;const o=this._encodeValue(e,t,r);return void 0===o||this._skipDefault(o,t,r)?void 0:o},c.prototype._encodeValue=function(e,t,r){const o=this._baseState;if(null===o.parent)return o.children[0]._encode(e,t||new n);let i=null;if(this.reporter=t,o.optional&&void 0===e){if(null===o.default)return;e=o.default}let a=null,s=!1;if(o.any)i=this._createEncoderBuffer(e);else if(o.choice)i=this._encodeChoice(e,t);else if(o.contains)a=this._getUse(o.contains,r)._encode(e,t),s=!0;else if(o.children)a=o.children.map((function(r){if("null_"===r._baseState.tag)return r._encode(null,t,e);if(null===r._baseState.key)return t.error("Child should have a key");const n=t.enterKey(r._baseState.key);if("object"!=typeof e)return t.error("Child expected, but input is not object");const o=r._encode(e[r._baseState.key],t,e);return t.leaveKey(n),o}),this).filter((function(e){return e})),a=this._createEncoderBuffer(a);else if("seqof"===o.tag||"setof"===o.tag){if(!o.args||1!==o.args.length)return t.error("Too many args for : "+o.tag);if(!Array.isArray(e))return t.error("seqof/setof, but data is not Array");const r=this.clone();r._baseState.implicit=null,a=this._createEncoderBuffer(e.map((function(r){const n=this._baseState;return this._getUse(n.args[0],e)._encode(r,t)}),r))}else null!==o.use?i=this._getUse(o.use,r)._encode(e,t):(a=this._encodePrimitive(o.tag,e),s=!0);if(!o.any&&null===o.choice){const e=null!==o.implicit?o.implicit:o.tag,r=null===o.implicit?"universal":"context";null===e?null===o.use&&t.error("Tag could be omitted only for .use()"):null===o.use&&(i=this._encodeComposite(e,s,r,a))}return null!==o.explicit&&(i=this._encodeComposite(o.explicit,!1,"context",i)),i},c.prototype._encodeChoice=function(e,t){const r=this._baseState,n=r.choice[e.type];return n||a(!1,e.type+" not found in "+JSON.stringify(Object.keys(r.choice))),n._encode(e.value,t)},c.prototype._encodePrimitive=function(e,t){const r=this._baseState;if(/str$/.test(e))return this._encodeStr(t,e);if("objid"===e&&r.args)return this._encodeObjid(t,r.reverseArgs[0],r.args[1]);if("objid"===e)return this._encodeObjid(t,null,null);if("gentime"===e||"utctime"===e)return this._encodeTime(t,e);if("null_"===e)return this._encodeNull();if("int"===e||"enum"===e)return this._encodeInt(t,r.args&&r.reverseArgs[0]);if("bool"===e)return this._encodeBool(t);if("objDesc"===e)return this._encodeStr(t,e);throw new Error("Unsupported tag: "+e)},c.prototype._isNumstr=function(e){return/^[0-9 ]*$/.test(e)},c.prototype._isPrintstr=function(e){return/^[A-Za-z0-9 '()+,-./:=?]*$/.test(e)}},98465:(e,t,r)=>{"use strict";const n=r(35717);function o(e){this._reporterState={obj:null,path:[],options:e||{},errors:[]}}function i(e,t){this.path=e,this.rethrow(t)}t.b=o,o.prototype.isError=function(e){return e instanceof i},o.prototype.save=function(){const e=this._reporterState;return{obj:e.obj,pathLen:e.path.length}},o.prototype.restore=function(e){const t=this._reporterState;t.obj=e.obj,t.path=t.path.slice(0,e.pathLen)},o.prototype.enterKey=function(e){return this._reporterState.path.push(e)},o.prototype.exitKey=function(e){const t=this._reporterState;t.path=t.path.slice(0,e-1)},o.prototype.leaveKey=function(e,t,r){const n=this._reporterState;this.exitKey(e),null!==n.obj&&(n.obj[t]=r)},o.prototype.path=function(){return this._reporterState.path.join("/")},o.prototype.enterObject=function(){const e=this._reporterState,t=e.obj;return e.obj={},t},o.prototype.leaveObject=function(e){const t=this._reporterState,r=t.obj;return t.obj=e,r},o.prototype.error=function(e){let t;const r=this._reporterState,n=e instanceof i;if(t=n?e:new i(r.path.map((function(e){return"["+JSON.stringify(e)+"]"})).join(""),e.message||e,e.stack),!r.options.partial)throw t;return n||r.errors.push(t),t},o.prototype.wrapResult=function(e){const t=this._reporterState;return t.options.partial?{result:this.isError(e)?null:e,errors:t.errors}:e},n(i,Error),i.prototype.rethrow=function(e){if(this.message=e+" at: "+(this.path||"(shallow)"),Error.captureStackTrace&&Error.captureStackTrace(this,i),!this.stack)try{throw new Error(this.message)}catch(e){this.stack=e.stack}return this}},70160:(e,t)=>{"use strict";function r(e){const t={};return Object.keys(e).forEach((function(r){(0|r)==r&&(r|=0);const n=e[r];t[n]=r})),t}t.tagClass={0:"universal",1:"application",2:"context",3:"private"},t.tagClassByName=r(t.tagClass),t.tag={0:"end",1:"bool",2:"int",3:"bitstr",4:"octstr",5:"null_",6:"objid",7:"objDesc",8:"external",9:"real",10:"enum",11:"embed",12:"utf8str",13:"relativeOid",16:"seq",17:"set",18:"numstr",19:"printstr",20:"t61str",21:"videostr",22:"ia5str",23:"utctime",24:"gentime",25:"graphstr",26:"iso646str",27:"genstr",28:"unistr",29:"charstr",30:"bmpstr"},t.tagByName=r(t.tag)},36826:(e,t,r)=>{"use strict";const n=t;n._reverse=function(e){const t={};return Object.keys(e).forEach((function(r){(0|r)==r&&(r|=0);const n=e[r];t[n]=r})),t},n.der=r(70160)},41671:(e,t,r)=>{"use strict";const n=r(35717),o=r(4590),i=r(36625).C,a=r(41949),s=r(70160);function u(e){this.enc="der",this.name=e.name,this.entity=e,this.tree=new c,this.tree._init(e.body)}function c(e){a.call(this,"der",e)}function d(e,t){let r=e.readUInt8(t);if(e.isError(r))return r;const n=s.tagClass[r>>6],o=0==(32&r);if(31==(31&r)){let n=r;for(r=0;128==(128&n);){if(n=e.readUInt8(t),e.isError(n))return n;r<<=7,r|=127&n}}else r&=31;return{cls:n,primitive:o,tag:r,tagStr:s.tag[r]}}function l(e,t,r){let n=e.readUInt8(r);if(e.isError(n))return n;if(!t&&128===n)return null;if(0==(128&n))return n;const o=127&n;if(o>4)return e.error("length octect is too long");n=0;for(let t=0;t{"use strict";const n=t;n.der=r(41671),n.pem=r(59631)},59631:(e,t,r)=>{"use strict";const n=r(35717),o=r(2399).Buffer,i=r(41671);function a(e){i.call(this,e),this.enc="pem"}n(a,i),e.exports=a,a.prototype.decode=function(e,t){const r=e.toString().split(/[\r\n]+/g),n=t.label.toUpperCase(),a=/^-----(BEGIN|END) ([^-]+)-----$/;let s=-1,u=-1;for(let e=0;e{"use strict";const n=r(35717),o=r(2399).Buffer,i=r(41949),a=r(70160);function s(e){this.enc="der",this.name=e.name,this.entity=e,this.tree=new u,this.tree._init(e.body)}function u(e){i.call(this,"der",e)}function c(e){return e<10?"0"+e:e}e.exports=s,s.prototype.encode=function(e,t){return this.tree._encode(e,t).join()},n(u,i),u.prototype._encodeComposite=function(e,t,r,n){const i=function(e,t,r,n){let o;if("seqof"===e?e="seq":"setof"===e&&(e="set"),a.tagByName.hasOwnProperty(e))o=a.tagByName[e];else{if("number"!=typeof e||(0|e)!==e)return n.error("Unknown tag: "+e);o=e}return o>=31?n.error("Multi-octet tag encoding unsupported"):(t||(o|=32),o|=a.tagClassByName[r||"universal"]<<6,o)}(e,t,r,this.reporter);if(n.length<128){const e=o.alloc(2);return e[0]=i,e[1]=n.length,this._createEncoderBuffer([e,n])}let s=1;for(let e=n.length;e>=256;e>>=8)s++;const u=o.alloc(2+s);u[0]=i,u[1]=128|s;for(let e=1+s,t=n.length;t>0;e--,t>>=8)u[e]=255&t;return this._createEncoderBuffer([u,n])},u.prototype._encodeStr=function(e,t){if("bitstr"===t)return this._createEncoderBuffer([0|e.unused,e.data]);if("bmpstr"===t){const t=o.alloc(2*e.length);for(let r=0;r=40)return this.reporter.error("Second objid identifier OOB");e.splice(0,2,40*e[0]+e[1])}let n=0;for(let t=0;t=128;r>>=7)n++}const i=o.alloc(n);let a=i.length-1;for(let t=e.length-1;t>=0;t--){let r=e[t];for(i[a--]=127&r;(r>>=7)>0;)i[a--]=128|127&r}return this._createEncoderBuffer(i)},u.prototype._encodeTime=function(e,t){let r;const n=new Date(e);return"gentime"===t?r=[c(n.getUTCFullYear()),c(n.getUTCMonth()+1),c(n.getUTCDate()),c(n.getUTCHours()),c(n.getUTCMinutes()),c(n.getUTCSeconds()),"Z"].join(""):"utctime"===t?r=[c(n.getUTCFullYear()%100),c(n.getUTCMonth()+1),c(n.getUTCDate()),c(n.getUTCHours()),c(n.getUTCMinutes()),c(n.getUTCSeconds()),"Z"].join(""):this.reporter.error("Encoding "+t+" time is not supported yet"),this._encodeStr(r,"octstr")},u.prototype._encodeNull=function(){return this._createEncoderBuffer("")},u.prototype._encodeInt=function(e,t){if("string"==typeof e){if(!t)return this.reporter.error("String int or enum given, but no values map");if(!t.hasOwnProperty(e))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(e));e=t[e]}if("number"!=typeof e&&!o.isBuffer(e)){const t=e.toArray();!e.sign&&128&t[0]&&t.unshift(0),e=o.from(t)}if(o.isBuffer(e)){let t=e.length;0===e.length&&t++;const r=o.alloc(t);return e.copy(r),0===e.length&&(r[0]=0),this._createEncoderBuffer(r)}if(e<128)return this._createEncoderBuffer(e);if(e<256)return this._createEncoderBuffer([0,e]);let r=1;for(let t=e;t>=256;t>>=8)r++;const n=new Array(r);for(let t=n.length-1;t>=0;t--)n[t]=255&e,e>>=8;return 128&n[0]&&n.unshift(0),this._createEncoderBuffer(o.from(n))},u.prototype._encodeBool=function(e){return this._createEncoderBuffer(e?255:0)},u.prototype._use=function(e,t){return"function"==typeof e&&(e=e(t)),e._getEncoder("der").tree},u.prototype._skipDefault=function(e,t,r){const n=this._baseState;let o;if(null===n.default)return!1;const i=e.join();if(void 0===n.defaultBuffer&&(n.defaultBuffer=this._encodeValue(n.default,t,r).join()),i.length!==n.defaultBuffer.length)return!1;for(o=0;o{"use strict";const n=t;n.der=r(66984),n.pem=r(2883)},2883:(e,t,r)=>{"use strict";const n=r(35717),o=r(66984);function i(e){o.call(this,e),this.enc="pem"}n(i,o),e.exports=i,i.prototype.encode=function(e,t){const r=o.prototype.encode.call(this,e).toString("base64"),n=["-----BEGIN "+t.label+"-----"];for(let e=0;e=65&&r<=70?r-55:r>=97&&r<=102?r-87:r-48&15}function u(e,t,r){var n=s(e,r);return r-1>=t&&(n|=s(e,r-1)<<4),n}function c(e,t,r,n){for(var o=0,i=Math.min(e.length,r),a=t;a=49?s-49+10:s>=17?s-17+10:s}return o}i.isBN=function(e){return e instanceof i||null!==e&&"object"==typeof e&&e.constructor.wordSize===i.wordSize&&Array.isArray(e.words)},i.max=function(e,t){return e.cmp(t)>0?e:t},i.min=function(e,t){return e.cmp(t)<0?e:t},i.prototype._init=function(e,t,r){if("number"==typeof e)return this._initNumber(e,t,r);if("object"==typeof e)return this._initArray(e,t,r);"hex"===t&&(t=16),n(t===(0|t)&&t>=2&&t<=36);var o=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(o++,this.negative=1),o=0;o-=3)a=e[o]|e[o-1]<<8|e[o-2]<<16,this.words[i]|=a<>>26-s&67108863,(s+=24)>=26&&(s-=26,i++);else if("le"===r)for(o=0,i=0;o>>26-s&67108863,(s+=24)>=26&&(s-=26,i++);return this.strip()},i.prototype._parseHex=function(e,t,r){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var n=0;n=t;n-=2)o=u(e,t,n)<=18?(i-=18,a+=1,this.words[a]|=o>>>26):i+=8;else for(n=(e.length-t)%2==0?t+1:t;n=18?(i-=18,a+=1,this.words[a]|=o>>>26):i+=8;this.strip()},i.prototype._parseBase=function(e,t,r){this.words=[0],this.length=1;for(var n=0,o=1;o<=67108863;o*=t)n++;n--,o=o/t|0;for(var i=e.length-r,a=i%n,s=Math.min(i,i-a)+r,u=0,d=r;d1&&0===this.words[this.length-1];)this.length--;return this._normSign()},i.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},i.prototype.inspect=function(){return(this.red?""};var d=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],l=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],f=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function h(e,t,r){r.negative=t.negative^e.negative;var n=e.length+t.length|0;r.length=n,n=n-1|0;var o=0|e.words[0],i=0|t.words[0],a=o*i,s=67108863&a,u=a/67108864|0;r.words[0]=s;for(var c=1;c>>26,l=67108863&u,f=Math.min(c,t.length-1),h=Math.max(0,c-e.length+1);h<=f;h++){var p=c-h|0;d+=(a=(o=0|e.words[p])*(i=0|t.words[h])+l)/67108864|0,l=67108863&a}r.words[c]=0|l,u=0|d}return 0!==u?r.words[c]=0|u:r.length--,r.strip()}i.prototype.toString=function(e,t){var r;if(t=0|t||1,16===(e=e||10)||"hex"===e){r="";for(var o=0,i=0,a=0;a>>24-o&16777215)||a!==this.length-1?d[6-u.length]+u+r:u+r,(o+=2)>=26&&(o-=26,a--)}for(0!==i&&(r=i.toString(16)+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(e===(0|e)&&e>=2&&e<=36){var c=l[e],h=f[e];r="";var p=this.clone();for(p.negative=0;!p.isZero();){var m=p.modn(h).toString(e);r=(p=p.idivn(h)).isZero()?m+r:d[c-m.length]+m+r}for(this.isZero()&&(r="0"+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}n(!1,"Base should be between 2 and 36")},i.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},i.prototype.toJSON=function(){return this.toString(16)},i.prototype.toBuffer=function(e,t){return n(void 0!==a),this.toArrayLike(a,e,t)},i.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},i.prototype.toArrayLike=function(e,t,r){var o=this.byteLength(),i=r||Math.max(1,o);n(o<=i,"byte array longer than desired length"),n(i>0,"Requested array length <= 0"),this.strip();var a,s,u="le"===t,c=new e(i),d=this.clone();if(u){for(s=0;!d.isZero();s++)a=d.andln(255),d.iushrn(8),c[s]=a;for(;s=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},i.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,r=0;return 0==(8191&t)&&(r+=13,t>>>=13),0==(127&t)&&(r+=7,t>>>=7),0==(15&t)&&(r+=4,t>>>=4),0==(3&t)&&(r+=2,t>>>=2),0==(1&t)&&r++,r},i.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},i.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;te.length?this.clone().ior(e):e.clone().ior(this)},i.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},i.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var r=0;re.length?this.clone().iand(e):e.clone().iand(this)},i.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},i.prototype.iuxor=function(e){var t,r;this.length>e.length?(t=this,r=e):(t=e,r=this);for(var n=0;ne.length?this.clone().ixor(e):e.clone().ixor(this)},i.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},i.prototype.inotn=function(e){n("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),r=e%26;this._expand(t),r>0&&t--;for(var o=0;o0&&(this.words[o]=~this.words[o]&67108863>>26-r),this.strip()},i.prototype.notn=function(e){return this.clone().inotn(e)},i.prototype.setn=function(e,t){n("number"==typeof e&&e>=0);var r=e/26|0,o=e%26;return this._expand(r+1),this.words[r]=t?this.words[r]|1<e.length?(r=this,n=e):(r=e,n=this);for(var o=0,i=0;i>>26;for(;0!==o&&i>>26;if(this.length=r.length,0!==o)this.words[this.length]=o,this.length++;else if(r!==this)for(;ie.length?this.clone().iadd(e):e.clone().iadd(this)},i.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var r,n,o=this.cmp(e);if(0===o)return this.negative=0,this.length=1,this.words[0]=0,this;o>0?(r=this,n=e):(r=e,n=this);for(var i=0,a=0;a>26,this.words[a]=67108863&t;for(;0!==i&&a>26,this.words[a]=67108863&t;if(0===i&&a>>13,h=0|a[1],p=8191&h,m=h>>>13,g=0|a[2],v=8191&g,b=g>>>13,y=0|a[3],w=8191&y,_=y>>>13,S=0|a[4],O=8191&S,k=S>>>13,A=0|a[5],P=8191&A,M=A>>>13,E=0|a[6],C=8191&E,N=E>>>13,x=0|a[7],R=8191&x,I=x>>>13,T=0|a[8],j=8191&T,D=T>>>13,B=0|a[9],U=8191&B,J=B>>>13,H=0|s[0],L=8191&H,z=H>>>13,V=0|s[1],q=8191&V,F=V>>>13,Z=0|s[2],W=8191&Z,K=Z>>>13,G=0|s[3],Y=8191&G,$=G>>>13,X=0|s[4],Q=8191&X,ee=X>>>13,te=0|s[5],re=8191&te,ne=te>>>13,oe=0|s[6],ie=8191&oe,ae=oe>>>13,se=0|s[7],ue=8191&se,ce=se>>>13,de=0|s[8],le=8191&de,fe=de>>>13,he=0|s[9],pe=8191&he,me=he>>>13;r.negative=e.negative^t.negative,r.length=19;var ge=(c+(n=Math.imul(l,L))|0)+((8191&(o=(o=Math.imul(l,z))+Math.imul(f,L)|0))<<13)|0;c=((i=Math.imul(f,z))+(o>>>13)|0)+(ge>>>26)|0,ge&=67108863,n=Math.imul(p,L),o=(o=Math.imul(p,z))+Math.imul(m,L)|0,i=Math.imul(m,z);var ve=(c+(n=n+Math.imul(l,q)|0)|0)+((8191&(o=(o=o+Math.imul(l,F)|0)+Math.imul(f,q)|0))<<13)|0;c=((i=i+Math.imul(f,F)|0)+(o>>>13)|0)+(ve>>>26)|0,ve&=67108863,n=Math.imul(v,L),o=(o=Math.imul(v,z))+Math.imul(b,L)|0,i=Math.imul(b,z),n=n+Math.imul(p,q)|0,o=(o=o+Math.imul(p,F)|0)+Math.imul(m,q)|0,i=i+Math.imul(m,F)|0;var be=(c+(n=n+Math.imul(l,W)|0)|0)+((8191&(o=(o=o+Math.imul(l,K)|0)+Math.imul(f,W)|0))<<13)|0;c=((i=i+Math.imul(f,K)|0)+(o>>>13)|0)+(be>>>26)|0,be&=67108863,n=Math.imul(w,L),o=(o=Math.imul(w,z))+Math.imul(_,L)|0,i=Math.imul(_,z),n=n+Math.imul(v,q)|0,o=(o=o+Math.imul(v,F)|0)+Math.imul(b,q)|0,i=i+Math.imul(b,F)|0,n=n+Math.imul(p,W)|0,o=(o=o+Math.imul(p,K)|0)+Math.imul(m,W)|0,i=i+Math.imul(m,K)|0;var ye=(c+(n=n+Math.imul(l,Y)|0)|0)+((8191&(o=(o=o+Math.imul(l,$)|0)+Math.imul(f,Y)|0))<<13)|0;c=((i=i+Math.imul(f,$)|0)+(o>>>13)|0)+(ye>>>26)|0,ye&=67108863,n=Math.imul(O,L),o=(o=Math.imul(O,z))+Math.imul(k,L)|0,i=Math.imul(k,z),n=n+Math.imul(w,q)|0,o=(o=o+Math.imul(w,F)|0)+Math.imul(_,q)|0,i=i+Math.imul(_,F)|0,n=n+Math.imul(v,W)|0,o=(o=o+Math.imul(v,K)|0)+Math.imul(b,W)|0,i=i+Math.imul(b,K)|0,n=n+Math.imul(p,Y)|0,o=(o=o+Math.imul(p,$)|0)+Math.imul(m,Y)|0,i=i+Math.imul(m,$)|0;var we=(c+(n=n+Math.imul(l,Q)|0)|0)+((8191&(o=(o=o+Math.imul(l,ee)|0)+Math.imul(f,Q)|0))<<13)|0;c=((i=i+Math.imul(f,ee)|0)+(o>>>13)|0)+(we>>>26)|0,we&=67108863,n=Math.imul(P,L),o=(o=Math.imul(P,z))+Math.imul(M,L)|0,i=Math.imul(M,z),n=n+Math.imul(O,q)|0,o=(o=o+Math.imul(O,F)|0)+Math.imul(k,q)|0,i=i+Math.imul(k,F)|0,n=n+Math.imul(w,W)|0,o=(o=o+Math.imul(w,K)|0)+Math.imul(_,W)|0,i=i+Math.imul(_,K)|0,n=n+Math.imul(v,Y)|0,o=(o=o+Math.imul(v,$)|0)+Math.imul(b,Y)|0,i=i+Math.imul(b,$)|0,n=n+Math.imul(p,Q)|0,o=(o=o+Math.imul(p,ee)|0)+Math.imul(m,Q)|0,i=i+Math.imul(m,ee)|0;var _e=(c+(n=n+Math.imul(l,re)|0)|0)+((8191&(o=(o=o+Math.imul(l,ne)|0)+Math.imul(f,re)|0))<<13)|0;c=((i=i+Math.imul(f,ne)|0)+(o>>>13)|0)+(_e>>>26)|0,_e&=67108863,n=Math.imul(C,L),o=(o=Math.imul(C,z))+Math.imul(N,L)|0,i=Math.imul(N,z),n=n+Math.imul(P,q)|0,o=(o=o+Math.imul(P,F)|0)+Math.imul(M,q)|0,i=i+Math.imul(M,F)|0,n=n+Math.imul(O,W)|0,o=(o=o+Math.imul(O,K)|0)+Math.imul(k,W)|0,i=i+Math.imul(k,K)|0,n=n+Math.imul(w,Y)|0,o=(o=o+Math.imul(w,$)|0)+Math.imul(_,Y)|0,i=i+Math.imul(_,$)|0,n=n+Math.imul(v,Q)|0,o=(o=o+Math.imul(v,ee)|0)+Math.imul(b,Q)|0,i=i+Math.imul(b,ee)|0,n=n+Math.imul(p,re)|0,o=(o=o+Math.imul(p,ne)|0)+Math.imul(m,re)|0,i=i+Math.imul(m,ne)|0;var Se=(c+(n=n+Math.imul(l,ie)|0)|0)+((8191&(o=(o=o+Math.imul(l,ae)|0)+Math.imul(f,ie)|0))<<13)|0;c=((i=i+Math.imul(f,ae)|0)+(o>>>13)|0)+(Se>>>26)|0,Se&=67108863,n=Math.imul(R,L),o=(o=Math.imul(R,z))+Math.imul(I,L)|0,i=Math.imul(I,z),n=n+Math.imul(C,q)|0,o=(o=o+Math.imul(C,F)|0)+Math.imul(N,q)|0,i=i+Math.imul(N,F)|0,n=n+Math.imul(P,W)|0,o=(o=o+Math.imul(P,K)|0)+Math.imul(M,W)|0,i=i+Math.imul(M,K)|0,n=n+Math.imul(O,Y)|0,o=(o=o+Math.imul(O,$)|0)+Math.imul(k,Y)|0,i=i+Math.imul(k,$)|0,n=n+Math.imul(w,Q)|0,o=(o=o+Math.imul(w,ee)|0)+Math.imul(_,Q)|0,i=i+Math.imul(_,ee)|0,n=n+Math.imul(v,re)|0,o=(o=o+Math.imul(v,ne)|0)+Math.imul(b,re)|0,i=i+Math.imul(b,ne)|0,n=n+Math.imul(p,ie)|0,o=(o=o+Math.imul(p,ae)|0)+Math.imul(m,ie)|0,i=i+Math.imul(m,ae)|0;var Oe=(c+(n=n+Math.imul(l,ue)|0)|0)+((8191&(o=(o=o+Math.imul(l,ce)|0)+Math.imul(f,ue)|0))<<13)|0;c=((i=i+Math.imul(f,ce)|0)+(o>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,n=Math.imul(j,L),o=(o=Math.imul(j,z))+Math.imul(D,L)|0,i=Math.imul(D,z),n=n+Math.imul(R,q)|0,o=(o=o+Math.imul(R,F)|0)+Math.imul(I,q)|0,i=i+Math.imul(I,F)|0,n=n+Math.imul(C,W)|0,o=(o=o+Math.imul(C,K)|0)+Math.imul(N,W)|0,i=i+Math.imul(N,K)|0,n=n+Math.imul(P,Y)|0,o=(o=o+Math.imul(P,$)|0)+Math.imul(M,Y)|0,i=i+Math.imul(M,$)|0,n=n+Math.imul(O,Q)|0,o=(o=o+Math.imul(O,ee)|0)+Math.imul(k,Q)|0,i=i+Math.imul(k,ee)|0,n=n+Math.imul(w,re)|0,o=(o=o+Math.imul(w,ne)|0)+Math.imul(_,re)|0,i=i+Math.imul(_,ne)|0,n=n+Math.imul(v,ie)|0,o=(o=o+Math.imul(v,ae)|0)+Math.imul(b,ie)|0,i=i+Math.imul(b,ae)|0,n=n+Math.imul(p,ue)|0,o=(o=o+Math.imul(p,ce)|0)+Math.imul(m,ue)|0,i=i+Math.imul(m,ce)|0;var ke=(c+(n=n+Math.imul(l,le)|0)|0)+((8191&(o=(o=o+Math.imul(l,fe)|0)+Math.imul(f,le)|0))<<13)|0;c=((i=i+Math.imul(f,fe)|0)+(o>>>13)|0)+(ke>>>26)|0,ke&=67108863,n=Math.imul(U,L),o=(o=Math.imul(U,z))+Math.imul(J,L)|0,i=Math.imul(J,z),n=n+Math.imul(j,q)|0,o=(o=o+Math.imul(j,F)|0)+Math.imul(D,q)|0,i=i+Math.imul(D,F)|0,n=n+Math.imul(R,W)|0,o=(o=o+Math.imul(R,K)|0)+Math.imul(I,W)|0,i=i+Math.imul(I,K)|0,n=n+Math.imul(C,Y)|0,o=(o=o+Math.imul(C,$)|0)+Math.imul(N,Y)|0,i=i+Math.imul(N,$)|0,n=n+Math.imul(P,Q)|0,o=(o=o+Math.imul(P,ee)|0)+Math.imul(M,Q)|0,i=i+Math.imul(M,ee)|0,n=n+Math.imul(O,re)|0,o=(o=o+Math.imul(O,ne)|0)+Math.imul(k,re)|0,i=i+Math.imul(k,ne)|0,n=n+Math.imul(w,ie)|0,o=(o=o+Math.imul(w,ae)|0)+Math.imul(_,ie)|0,i=i+Math.imul(_,ae)|0,n=n+Math.imul(v,ue)|0,o=(o=o+Math.imul(v,ce)|0)+Math.imul(b,ue)|0,i=i+Math.imul(b,ce)|0,n=n+Math.imul(p,le)|0,o=(o=o+Math.imul(p,fe)|0)+Math.imul(m,le)|0,i=i+Math.imul(m,fe)|0;var Ae=(c+(n=n+Math.imul(l,pe)|0)|0)+((8191&(o=(o=o+Math.imul(l,me)|0)+Math.imul(f,pe)|0))<<13)|0;c=((i=i+Math.imul(f,me)|0)+(o>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,n=Math.imul(U,q),o=(o=Math.imul(U,F))+Math.imul(J,q)|0,i=Math.imul(J,F),n=n+Math.imul(j,W)|0,o=(o=o+Math.imul(j,K)|0)+Math.imul(D,W)|0,i=i+Math.imul(D,K)|0,n=n+Math.imul(R,Y)|0,o=(o=o+Math.imul(R,$)|0)+Math.imul(I,Y)|0,i=i+Math.imul(I,$)|0,n=n+Math.imul(C,Q)|0,o=(o=o+Math.imul(C,ee)|0)+Math.imul(N,Q)|0,i=i+Math.imul(N,ee)|0,n=n+Math.imul(P,re)|0,o=(o=o+Math.imul(P,ne)|0)+Math.imul(M,re)|0,i=i+Math.imul(M,ne)|0,n=n+Math.imul(O,ie)|0,o=(o=o+Math.imul(O,ae)|0)+Math.imul(k,ie)|0,i=i+Math.imul(k,ae)|0,n=n+Math.imul(w,ue)|0,o=(o=o+Math.imul(w,ce)|0)+Math.imul(_,ue)|0,i=i+Math.imul(_,ce)|0,n=n+Math.imul(v,le)|0,o=(o=o+Math.imul(v,fe)|0)+Math.imul(b,le)|0,i=i+Math.imul(b,fe)|0;var Pe=(c+(n=n+Math.imul(p,pe)|0)|0)+((8191&(o=(o=o+Math.imul(p,me)|0)+Math.imul(m,pe)|0))<<13)|0;c=((i=i+Math.imul(m,me)|0)+(o>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,n=Math.imul(U,W),o=(o=Math.imul(U,K))+Math.imul(J,W)|0,i=Math.imul(J,K),n=n+Math.imul(j,Y)|0,o=(o=o+Math.imul(j,$)|0)+Math.imul(D,Y)|0,i=i+Math.imul(D,$)|0,n=n+Math.imul(R,Q)|0,o=(o=o+Math.imul(R,ee)|0)+Math.imul(I,Q)|0,i=i+Math.imul(I,ee)|0,n=n+Math.imul(C,re)|0,o=(o=o+Math.imul(C,ne)|0)+Math.imul(N,re)|0,i=i+Math.imul(N,ne)|0,n=n+Math.imul(P,ie)|0,o=(o=o+Math.imul(P,ae)|0)+Math.imul(M,ie)|0,i=i+Math.imul(M,ae)|0,n=n+Math.imul(O,ue)|0,o=(o=o+Math.imul(O,ce)|0)+Math.imul(k,ue)|0,i=i+Math.imul(k,ce)|0,n=n+Math.imul(w,le)|0,o=(o=o+Math.imul(w,fe)|0)+Math.imul(_,le)|0,i=i+Math.imul(_,fe)|0;var Me=(c+(n=n+Math.imul(v,pe)|0)|0)+((8191&(o=(o=o+Math.imul(v,me)|0)+Math.imul(b,pe)|0))<<13)|0;c=((i=i+Math.imul(b,me)|0)+(o>>>13)|0)+(Me>>>26)|0,Me&=67108863,n=Math.imul(U,Y),o=(o=Math.imul(U,$))+Math.imul(J,Y)|0,i=Math.imul(J,$),n=n+Math.imul(j,Q)|0,o=(o=o+Math.imul(j,ee)|0)+Math.imul(D,Q)|0,i=i+Math.imul(D,ee)|0,n=n+Math.imul(R,re)|0,o=(o=o+Math.imul(R,ne)|0)+Math.imul(I,re)|0,i=i+Math.imul(I,ne)|0,n=n+Math.imul(C,ie)|0,o=(o=o+Math.imul(C,ae)|0)+Math.imul(N,ie)|0,i=i+Math.imul(N,ae)|0,n=n+Math.imul(P,ue)|0,o=(o=o+Math.imul(P,ce)|0)+Math.imul(M,ue)|0,i=i+Math.imul(M,ce)|0,n=n+Math.imul(O,le)|0,o=(o=o+Math.imul(O,fe)|0)+Math.imul(k,le)|0,i=i+Math.imul(k,fe)|0;var Ee=(c+(n=n+Math.imul(w,pe)|0)|0)+((8191&(o=(o=o+Math.imul(w,me)|0)+Math.imul(_,pe)|0))<<13)|0;c=((i=i+Math.imul(_,me)|0)+(o>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,n=Math.imul(U,Q),o=(o=Math.imul(U,ee))+Math.imul(J,Q)|0,i=Math.imul(J,ee),n=n+Math.imul(j,re)|0,o=(o=o+Math.imul(j,ne)|0)+Math.imul(D,re)|0,i=i+Math.imul(D,ne)|0,n=n+Math.imul(R,ie)|0,o=(o=o+Math.imul(R,ae)|0)+Math.imul(I,ie)|0,i=i+Math.imul(I,ae)|0,n=n+Math.imul(C,ue)|0,o=(o=o+Math.imul(C,ce)|0)+Math.imul(N,ue)|0,i=i+Math.imul(N,ce)|0,n=n+Math.imul(P,le)|0,o=(o=o+Math.imul(P,fe)|0)+Math.imul(M,le)|0,i=i+Math.imul(M,fe)|0;var Ce=(c+(n=n+Math.imul(O,pe)|0)|0)+((8191&(o=(o=o+Math.imul(O,me)|0)+Math.imul(k,pe)|0))<<13)|0;c=((i=i+Math.imul(k,me)|0)+(o>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,n=Math.imul(U,re),o=(o=Math.imul(U,ne))+Math.imul(J,re)|0,i=Math.imul(J,ne),n=n+Math.imul(j,ie)|0,o=(o=o+Math.imul(j,ae)|0)+Math.imul(D,ie)|0,i=i+Math.imul(D,ae)|0,n=n+Math.imul(R,ue)|0,o=(o=o+Math.imul(R,ce)|0)+Math.imul(I,ue)|0,i=i+Math.imul(I,ce)|0,n=n+Math.imul(C,le)|0,o=(o=o+Math.imul(C,fe)|0)+Math.imul(N,le)|0,i=i+Math.imul(N,fe)|0;var Ne=(c+(n=n+Math.imul(P,pe)|0)|0)+((8191&(o=(o=o+Math.imul(P,me)|0)+Math.imul(M,pe)|0))<<13)|0;c=((i=i+Math.imul(M,me)|0)+(o>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,n=Math.imul(U,ie),o=(o=Math.imul(U,ae))+Math.imul(J,ie)|0,i=Math.imul(J,ae),n=n+Math.imul(j,ue)|0,o=(o=o+Math.imul(j,ce)|0)+Math.imul(D,ue)|0,i=i+Math.imul(D,ce)|0,n=n+Math.imul(R,le)|0,o=(o=o+Math.imul(R,fe)|0)+Math.imul(I,le)|0,i=i+Math.imul(I,fe)|0;var xe=(c+(n=n+Math.imul(C,pe)|0)|0)+((8191&(o=(o=o+Math.imul(C,me)|0)+Math.imul(N,pe)|0))<<13)|0;c=((i=i+Math.imul(N,me)|0)+(o>>>13)|0)+(xe>>>26)|0,xe&=67108863,n=Math.imul(U,ue),o=(o=Math.imul(U,ce))+Math.imul(J,ue)|0,i=Math.imul(J,ce),n=n+Math.imul(j,le)|0,o=(o=o+Math.imul(j,fe)|0)+Math.imul(D,le)|0,i=i+Math.imul(D,fe)|0;var Re=(c+(n=n+Math.imul(R,pe)|0)|0)+((8191&(o=(o=o+Math.imul(R,me)|0)+Math.imul(I,pe)|0))<<13)|0;c=((i=i+Math.imul(I,me)|0)+(o>>>13)|0)+(Re>>>26)|0,Re&=67108863,n=Math.imul(U,le),o=(o=Math.imul(U,fe))+Math.imul(J,le)|0,i=Math.imul(J,fe);var Ie=(c+(n=n+Math.imul(j,pe)|0)|0)+((8191&(o=(o=o+Math.imul(j,me)|0)+Math.imul(D,pe)|0))<<13)|0;c=((i=i+Math.imul(D,me)|0)+(o>>>13)|0)+(Ie>>>26)|0,Ie&=67108863;var Te=(c+(n=Math.imul(U,pe))|0)+((8191&(o=(o=Math.imul(U,me))+Math.imul(J,pe)|0))<<13)|0;return c=((i=Math.imul(J,me))+(o>>>13)|0)+(Te>>>26)|0,Te&=67108863,u[0]=ge,u[1]=ve,u[2]=be,u[3]=ye,u[4]=we,u[5]=_e,u[6]=Se,u[7]=Oe,u[8]=ke,u[9]=Ae,u[10]=Pe,u[11]=Me,u[12]=Ee,u[13]=Ce,u[14]=Ne,u[15]=xe,u[16]=Re,u[17]=Ie,u[18]=Te,0!==c&&(u[19]=c,r.length++),r};function m(e,t,r){return(new g).mulp(e,t,r)}function g(e,t){this.x=e,this.y=t}Math.imul||(p=h),i.prototype.mulTo=function(e,t){var r,n=this.length+e.length;return r=10===this.length&&10===e.length?p(this,e,t):n<63?h(this,e,t):n<1024?function(e,t,r){r.negative=t.negative^e.negative,r.length=e.length+t.length;for(var n=0,o=0,i=0;i>>26)|0)>>>26,a&=67108863}r.words[i]=s,n=a,a=o}return 0!==n?r.words[i]=n:r.length--,r.strip()}(this,e,t):m(this,e,t),r},g.prototype.makeRBT=function(e){for(var t=new Array(e),r=i.prototype._countBits(e)-1,n=0;n>=1;return n},g.prototype.permute=function(e,t,r,n,o,i){for(var a=0;a>>=1)o++;return 1<>>=13,r[2*a+1]=8191&i,i>>>=13;for(a=2*t;a>=26,t+=o/67108864|0,t+=i>>>26,this.words[r]=67108863&i}return 0!==t&&(this.words[r]=t,this.length++),this},i.prototype.muln=function(e){return this.clone().imuln(e)},i.prototype.sqr=function(){return this.mul(this)},i.prototype.isqr=function(){return this.imul(this.clone())},i.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),r=0;r>>o}return t}(e);if(0===t.length)return new i(1);for(var r=this,n=0;n=0);var t,r=e%26,o=(e-r)/26,i=67108863>>>26-r<<26-r;if(0!==r){var a=0;for(t=0;t>>26-r}a&&(this.words[t]=a,this.length++)}if(0!==o){for(t=this.length-1;t>=0;t--)this.words[t+o]=this.words[t];for(t=0;t=0),o=t?(t-t%26)/26:0;var i=e%26,a=Math.min((e-i)/26,this.length),s=67108863^67108863>>>i<a)for(this.length-=a,c=0;c=0&&(0!==d||c>=o);c--){var l=0|this.words[c];this.words[c]=d<<26-i|l>>>i,d=l&s}return u&&0!==d&&(u.words[u.length++]=d),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},i.prototype.ishrn=function(e,t,r){return n(0===this.negative),this.iushrn(e,t,r)},i.prototype.shln=function(e){return this.clone().ishln(e)},i.prototype.ushln=function(e){return this.clone().iushln(e)},i.prototype.shrn=function(e){return this.clone().ishrn(e)},i.prototype.ushrn=function(e){return this.clone().iushrn(e)},i.prototype.testn=function(e){n("number"==typeof e&&e>=0);var t=e%26,r=(e-t)/26,o=1<=0);var t=e%26,r=(e-t)/26;if(n(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==t&&r++,this.length=Math.min(r,this.length),0!==t){var o=67108863^67108863>>>t<=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},i.prototype.isubn=function(e){if(n("number"==typeof e),n(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t>26)-(u/67108864|0),this.words[o+r]=67108863&i}for(;o>26,this.words[o+r]=67108863&i;if(0===s)return this.strip();for(n(-1===s),s=0,o=0;o>26,this.words[o]=67108863&i;return this.negative=1,this.strip()},i.prototype._wordDiv=function(e,t){var r=(this.length,e.length),n=this.clone(),o=e,a=0|o.words[o.length-1];0!=(r=26-this._countBits(a))&&(o=o.ushln(r),n.iushln(r),a=0|o.words[o.length-1]);var s,u=n.length-o.length;if("mod"!==t){(s=new i(null)).length=u+1,s.words=new Array(s.length);for(var c=0;c=0;l--){var f=67108864*(0|n.words[o.length+l])+(0|n.words[o.length+l-1]);for(f=Math.min(f/a|0,67108863),n._ishlnsubmul(o,f,l);0!==n.negative;)f--,n.negative=0,n._ishlnsubmul(o,1,l),n.isZero()||(n.negative^=1);s&&(s.words[l]=f)}return s&&s.strip(),n.strip(),"div"!==t&&0!==r&&n.iushrn(r),{div:s||null,mod:n}},i.prototype.divmod=function(e,t,r){return n(!e.isZero()),this.isZero()?{div:new i(0),mod:new i(0)}:0!==this.negative&&0===e.negative?(s=this.neg().divmod(e,t),"mod"!==t&&(o=s.div.neg()),"div"!==t&&(a=s.mod.neg(),r&&0!==a.negative&&a.iadd(e)),{div:o,mod:a}):0===this.negative&&0!==e.negative?(s=this.divmod(e.neg(),t),"mod"!==t&&(o=s.div.neg()),{div:o,mod:s.mod}):0!=(this.negative&e.negative)?(s=this.neg().divmod(e.neg(),t),"div"!==t&&(a=s.mod.neg(),r&&0!==a.negative&&a.isub(e)),{div:s.div,mod:a}):e.length>this.length||this.cmp(e)<0?{div:new i(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new i(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new i(this.modn(e.words[0]))}:this._wordDiv(e,t);var o,a,s},i.prototype.div=function(e){return this.divmod(e,"div",!1).div},i.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},i.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},i.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var r=0!==t.div.negative?t.mod.isub(e):t.mod,n=e.ushrn(1),o=e.andln(1),i=r.cmp(n);return i<0||1===o&&0===i?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},i.prototype.modn=function(e){n(e<=67108863);for(var t=(1<<26)%e,r=0,o=this.length-1;o>=0;o--)r=(t*r+(0|this.words[o]))%e;return r},i.prototype.idivn=function(e){n(e<=67108863);for(var t=0,r=this.length-1;r>=0;r--){var o=(0|this.words[r])+67108864*t;this.words[r]=o/e|0,t=o%e}return this.strip()},i.prototype.divn=function(e){return this.clone().idivn(e)},i.prototype.egcd=function(e){n(0===e.negative),n(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var o=new i(1),a=new i(0),s=new i(0),u=new i(1),c=0;t.isEven()&&r.isEven();)t.iushrn(1),r.iushrn(1),++c;for(var d=r.clone(),l=t.clone();!t.isZero();){for(var f=0,h=1;0==(t.words[0]&h)&&f<26;++f,h<<=1);if(f>0)for(t.iushrn(f);f-- >0;)(o.isOdd()||a.isOdd())&&(o.iadd(d),a.isub(l)),o.iushrn(1),a.iushrn(1);for(var p=0,m=1;0==(r.words[0]&m)&&p<26;++p,m<<=1);if(p>0)for(r.iushrn(p);p-- >0;)(s.isOdd()||u.isOdd())&&(s.iadd(d),u.isub(l)),s.iushrn(1),u.iushrn(1);t.cmp(r)>=0?(t.isub(r),o.isub(s),a.isub(u)):(r.isub(t),s.isub(o),u.isub(a))}return{a:s,b:u,gcd:r.iushln(c)}},i.prototype._invmp=function(e){n(0===e.negative),n(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var o,a=new i(1),s=new i(0),u=r.clone();t.cmpn(1)>0&&r.cmpn(1)>0;){for(var c=0,d=1;0==(t.words[0]&d)&&c<26;++c,d<<=1);if(c>0)for(t.iushrn(c);c-- >0;)a.isOdd()&&a.iadd(u),a.iushrn(1);for(var l=0,f=1;0==(r.words[0]&f)&&l<26;++l,f<<=1);if(l>0)for(r.iushrn(l);l-- >0;)s.isOdd()&&s.iadd(u),s.iushrn(1);t.cmp(r)>=0?(t.isub(r),a.isub(s)):(r.isub(t),s.isub(a))}return(o=0===t.cmpn(1)?a:s).cmpn(0)<0&&o.iadd(e),o},i.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),r=e.clone();t.negative=0,r.negative=0;for(var n=0;t.isEven()&&r.isEven();n++)t.iushrn(1),r.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;r.isEven();)r.iushrn(1);var o=t.cmp(r);if(o<0){var i=t;t=r,r=i}else if(0===o||0===r.cmpn(1))break;t.isub(r)}return r.iushln(n)},i.prototype.invm=function(e){return this.egcd(e).a.umod(e)},i.prototype.isEven=function(){return 0==(1&this.words[0])},i.prototype.isOdd=function(){return 1==(1&this.words[0])},i.prototype.andln=function(e){return this.words[0]&e},i.prototype.bincn=function(e){n("number"==typeof e);var t=e%26,r=(e-t)/26,o=1<>>26,s&=67108863,this.words[a]=s}return 0!==i&&(this.words[a]=i,this.length++),this},i.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},i.prototype.cmpn=function(e){var t,r=e<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)t=1;else{r&&(e=-e),n(e<=67108863,"Number is too big");var o=0|this.words[0];t=o===e?0:oe.length)return 1;if(this.length=0;r--){var n=0|this.words[r],o=0|e.words[r];if(n!==o){no&&(t=1);break}}return t},i.prototype.gtn=function(e){return 1===this.cmpn(e)},i.prototype.gt=function(e){return 1===this.cmp(e)},i.prototype.gten=function(e){return this.cmpn(e)>=0},i.prototype.gte=function(e){return this.cmp(e)>=0},i.prototype.ltn=function(e){return-1===this.cmpn(e)},i.prototype.lt=function(e){return-1===this.cmp(e)},i.prototype.lten=function(e){return this.cmpn(e)<=0},i.prototype.lte=function(e){return this.cmp(e)<=0},i.prototype.eqn=function(e){return 0===this.cmpn(e)},i.prototype.eq=function(e){return 0===this.cmp(e)},i.red=function(e){return new O(e)},i.prototype.toRed=function(e){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},i.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},i.prototype._forceRed=function(e){return this.red=e,this},i.prototype.forceRed=function(e){return n(!this.red,"Already a number in reduction context"),this._forceRed(e)},i.prototype.redAdd=function(e){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},i.prototype.redIAdd=function(e){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},i.prototype.redSub=function(e){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},i.prototype.redISub=function(e){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},i.prototype.redShl=function(e){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},i.prototype.redMul=function(e){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},i.prototype.redIMul=function(e){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},i.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},i.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},i.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},i.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},i.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},i.prototype.redPow=function(e){return n(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var v={k256:null,p224:null,p192:null,p25519:null};function b(e,t){this.name=e,this.p=new i(t,16),this.n=this.p.bitLength(),this.k=new i(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function y(){b.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function w(){b.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function _(){b.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function S(){b.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function O(e){if("string"==typeof e){var t=i._prime(e);this.m=t.p,this.prime=t}else n(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function k(e){O.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new i(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}b.prototype._tmp=function(){var e=new i(null);return e.words=new Array(Math.ceil(this.n/13)),e},b.prototype.ireduce=function(e){var t,r=e;do{this.split(r,this.tmp),t=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(t>this.n);var n=t0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},b.prototype.split=function(e,t){e.iushrn(this.n,0,t)},b.prototype.imulK=function(e){return e.imul(this.k)},o(y,b),y.prototype.split=function(e,t){for(var r=4194303,n=Math.min(e.length,9),o=0;o>>22,i=a}i>>>=22,e.words[o-10]=i,0===i&&e.length>10?e.length-=10:e.length-=9},y.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,r=0;r>>=26,e.words[r]=o,t=n}return 0!==t&&(e.words[e.length++]=t),e},i._prime=function(e){if(v[e])return v[e];var t;if("k256"===e)t=new y;else if("p224"===e)t=new w;else if("p192"===e)t=new _;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new S}return v[e]=t,t},O.prototype._verify1=function(e){n(0===e.negative,"red works only with positives"),n(e.red,"red works only with red numbers")},O.prototype._verify2=function(e,t){n(0==(e.negative|t.negative),"red works only with positives"),n(e.red&&e.red===t.red,"red works only with red numbers")},O.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},O.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},O.prototype.add=function(e,t){this._verify2(e,t);var r=e.add(t);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},O.prototype.iadd=function(e,t){this._verify2(e,t);var r=e.iadd(t);return r.cmp(this.m)>=0&&r.isub(this.m),r},O.prototype.sub=function(e,t){this._verify2(e,t);var r=e.sub(t);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},O.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},O.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},O.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},O.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},O.prototype.isqr=function(e){return this.imul(e,e.clone())},O.prototype.sqr=function(e){return this.mul(e,e)},O.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(n(t%2==1),3===t){var r=this.m.add(new i(1)).iushrn(2);return this.pow(e,r)}for(var o=this.m.subn(1),a=0;!o.isZero()&&0===o.andln(1);)a++,o.iushrn(1);n(!o.isZero());var s=new i(1).toRed(this),u=s.redNeg(),c=this.m.subn(1).iushrn(1),d=this.m.bitLength();for(d=new i(2*d*d).toRed(this);0!==this.pow(d,c).cmp(u);)d.redIAdd(u);for(var l=this.pow(d,o),f=this.pow(e,o.addn(1).iushrn(1)),h=this.pow(e,o),p=a;0!==h.cmp(s);){for(var m=h,g=0;0!==m.cmp(s);g++)m=m.redSqr();n(g=0;n--){for(var c=t.words[n],d=u-1;d>=0;d--){var l=c>>d&1;o!==r[0]&&(o=this.sqr(o)),0!==l||0!==a?(a<<=1,a|=l,(4==++s||0===n&&0===d)&&(o=this.mul(o,r[a]),s=0,a=0)):s=0}u=26}return o},O.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},O.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},i.mont=function(e){return new k(e)},o(k,O),k.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},k.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},k.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var r=e.imul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=r.isub(n).iushrn(this.shift),i=o;return o.cmp(this.m)>=0?i=o.isub(this.m):o.cmpn(0)<0&&(i=o.iadd(this.m)),i._forceRed(this)},k.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new i(0)._forceRed(this);var r=e.mul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=r.isub(n).iushrn(this.shift),a=o;return o.cmp(this.m)>=0?a=o.isub(this.m):o.cmpn(0)<0&&(a=o.iadd(this.m)),a._forceRed(this)},k.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e=r.nmd(e),this)},9669:(e,t,r)=>{e.exports=r(51609)},55448:(e,t,r)=>{"use strict";var n=r(64867),o=r(36026),i=r(4372),a=r(15327),s=r(94097),u=r(84109),c=r(67985),d=r(77874),l=r(82648),f=r(60644),h=r(90205);e.exports=function(e){return new Promise((function(t,r){var p,m=e.data,g=e.headers,v=e.responseType;function b(){e.cancelToken&&e.cancelToken.unsubscribe(p),e.signal&&e.signal.removeEventListener("abort",p)}n.isFormData(m)&&n.isStandardBrowserEnv()&&delete g["Content-Type"];var y=new XMLHttpRequest;if(e.auth){var w=e.auth.username||"",_=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";g.Authorization="Basic "+btoa(w+":"+_)}var S=s(e.baseURL,e.url);function O(){if(y){var n="getAllResponseHeaders"in y?u(y.getAllResponseHeaders()):null,i={data:v&&"text"!==v&&"json"!==v?y.response:y.responseText,status:y.status,statusText:y.statusText,headers:n,config:e,request:y};o((function(e){t(e),b()}),(function(e){r(e),b()}),i),y=null}}if(y.open(e.method.toUpperCase(),a(S,e.params,e.paramsSerializer),!0),y.timeout=e.timeout,"onloadend"in y?y.onloadend=O:y.onreadystatechange=function(){y&&4===y.readyState&&(0!==y.status||y.responseURL&&0===y.responseURL.indexOf("file:"))&&setTimeout(O)},y.onabort=function(){y&&(r(new l("Request aborted",l.ECONNABORTED,e,y)),y=null)},y.onerror=function(){r(new l("Network Error",l.ERR_NETWORK,e,y,y)),y=null},y.ontimeout=function(){var t=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded",n=e.transitional||d;e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),r(new l(t,n.clarifyTimeoutError?l.ETIMEDOUT:l.ECONNABORTED,e,y)),y=null},n.isStandardBrowserEnv()){var k=(e.withCredentials||c(S))&&e.xsrfCookieName?i.read(e.xsrfCookieName):void 0;k&&(g[e.xsrfHeaderName]=k)}"setRequestHeader"in y&&n.forEach(g,(function(e,t){void 0===m&&"content-type"===t.toLowerCase()?delete g[t]:y.setRequestHeader(t,e)})),n.isUndefined(e.withCredentials)||(y.withCredentials=!!e.withCredentials),v&&"json"!==v&&(y.responseType=e.responseType),"function"==typeof e.onDownloadProgress&&y.addEventListener("progress",e.onDownloadProgress),"function"==typeof e.onUploadProgress&&y.upload&&y.upload.addEventListener("progress",e.onUploadProgress),(e.cancelToken||e.signal)&&(p=function(e){y&&(r(!e||e&&e.type?new f:e),y.abort(),y=null)},e.cancelToken&&e.cancelToken.subscribe(p),e.signal&&(e.signal.aborted?p():e.signal.addEventListener("abort",p))),m||(m=null);var A=h(S);A&&-1===["http","https","file"].indexOf(A)?r(new l("Unsupported protocol "+A+":",l.ERR_BAD_REQUEST,e)):y.send(m)}))}},51609:(e,t,r)=>{"use strict";var n=r(64867),o=r(91849),i=r(30321),a=r(47185),s=function e(t){var r=new i(t),s=o(i.prototype.request,r);return n.extend(s,i.prototype,r),n.extend(s,r),s.create=function(r){return e(a(t,r))},s}(r(45546));s.Axios=i,s.CanceledError=r(60644),s.CancelToken=r(14972),s.isCancel=r(26502),s.VERSION=r(97288).version,s.toFormData=r(47675),s.AxiosError=r(82648),s.Cancel=s.CanceledError,s.all=function(e){return Promise.all(e)},s.spread=r(8713),s.isAxiosError=r(16268),e.exports=s,e.exports.default=s},14972:(e,t,r)=>{"use strict";var n=r(60644);function o(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise((function(e){t=e}));var r=this;this.promise.then((function(e){if(r._listeners){var t,n=r._listeners.length;for(t=0;t{"use strict";var n=r(82648);function o(e){n.call(this,null==e?"canceled":e,n.ERR_CANCELED),this.name="CanceledError"}r(64867).inherits(o,n,{__CANCEL__:!0}),e.exports=o},26502:e=>{"use strict";e.exports=function(e){return!(!e||!e.__CANCEL__)}},30321:(e,t,r)=>{"use strict";var n=r(64867),o=r(15327),i=r(80782),a=r(13572),s=r(47185),u=r(94097),c=r(54875),d=c.validators;function l(e){this.defaults=e,this.interceptors={request:new i,response:new i}}l.prototype.request=function(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{},(t=s(this.defaults,t)).method?t.method=t.method.toLowerCase():this.defaults.method?t.method=this.defaults.method.toLowerCase():t.method="get";var r=t.transitional;void 0!==r&&c.assertOptions(r,{silentJSONParsing:d.transitional(d.boolean),forcedJSONParsing:d.transitional(d.boolean),clarifyTimeoutError:d.transitional(d.boolean)},!1);var n=[],o=!0;this.interceptors.request.forEach((function(e){"function"==typeof e.runWhen&&!1===e.runWhen(t)||(o=o&&e.synchronous,n.unshift(e.fulfilled,e.rejected))}));var i,u=[];if(this.interceptors.response.forEach((function(e){u.push(e.fulfilled,e.rejected)})),!o){var l=[a,void 0];for(Array.prototype.unshift.apply(l,n),l=l.concat(u),i=Promise.resolve(t);l.length;)i=i.then(l.shift(),l.shift());return i}for(var f=t;n.length;){var h=n.shift(),p=n.shift();try{f=h(f)}catch(e){p(e);break}}try{i=a(f)}catch(e){return Promise.reject(e)}for(;u.length;)i=i.then(u.shift(),u.shift());return i},l.prototype.getUri=function(e){e=s(this.defaults,e);var t=u(e.baseURL,e.url);return o(t,e.params,e.paramsSerializer)},n.forEach(["delete","get","head","options"],(function(e){l.prototype[e]=function(t,r){return this.request(s(r||{},{method:e,url:t,data:(r||{}).data}))}})),n.forEach(["post","put","patch"],(function(e){function t(t){return function(r,n,o){return this.request(s(o||{},{method:e,headers:t?{"Content-Type":"multipart/form-data"}:{},url:r,data:n}))}}l.prototype[e]=t(),l.prototype[e+"Form"]=t(!0)})),e.exports=l},82648:(e,t,r)=>{"use strict";var n=r(64867);function o(e,t,r,n,o){Error.call(this),this.message=e,this.name="AxiosError",t&&(this.code=t),r&&(this.config=r),n&&(this.request=n),o&&(this.response=o)}n.inherits(o,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code,status:this.response&&this.response.status?this.response.status:null}}});var i=o.prototype,a={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED"].forEach((function(e){a[e]={value:e}})),Object.defineProperties(o,a),Object.defineProperty(i,"isAxiosError",{value:!0}),o.from=function(e,t,r,a,s,u){var c=Object.create(i);return n.toFlatObject(e,c,(function(e){return e!==Error.prototype})),o.call(c,e.message,t,r,a,s),c.name=e.name,u&&Object.assign(c,u),c},e.exports=o},80782:(e,t,r)=>{"use strict";var n=r(64867);function o(){this.handlers=[]}o.prototype.use=function(e,t,r){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!r&&r.synchronous,runWhen:r?r.runWhen:null}),this.handlers.length-1},o.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},o.prototype.forEach=function(e){n.forEach(this.handlers,(function(t){null!==t&&e(t)}))},e.exports=o},94097:(e,t,r)=>{"use strict";var n=r(91793),o=r(7303);e.exports=function(e,t){return e&&!n(t)?o(e,t):t}},13572:(e,t,r)=>{"use strict";var n=r(64867),o=r(18527),i=r(26502),a=r(45546),s=r(60644);function u(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new s}e.exports=function(e){return u(e),e.headers=e.headers||{},e.data=o.call(e,e.data,e.headers,e.transformRequest),e.headers=n.merge(e.headers.common||{},e.headers[e.method]||{},e.headers),n.forEach(["delete","get","head","post","put","patch","common"],(function(t){delete e.headers[t]})),(e.adapter||a.adapter)(e).then((function(t){return u(e),t.data=o.call(e,t.data,t.headers,e.transformResponse),t}),(function(t){return i(t)||(u(e),t&&t.response&&(t.response.data=o.call(e,t.response.data,t.response.headers,e.transformResponse))),Promise.reject(t)}))}},47185:(e,t,r)=>{"use strict";var n=r(64867);e.exports=function(e,t){t=t||{};var r={};function o(e,t){return n.isPlainObject(e)&&n.isPlainObject(t)?n.merge(e,t):n.isPlainObject(t)?n.merge({},t):n.isArray(t)?t.slice():t}function i(r){return n.isUndefined(t[r])?n.isUndefined(e[r])?void 0:o(void 0,e[r]):o(e[r],t[r])}function a(e){if(!n.isUndefined(t[e]))return o(void 0,t[e])}function s(r){return n.isUndefined(t[r])?n.isUndefined(e[r])?void 0:o(void 0,e[r]):o(void 0,t[r])}function u(r){return r in t?o(e[r],t[r]):r in e?o(void 0,e[r]):void 0}var c={url:a,method:a,data:a,baseURL:s,transformRequest:s,transformResponse:s,paramsSerializer:s,timeout:s,timeoutMessage:s,withCredentials:s,adapter:s,responseType:s,xsrfCookieName:s,xsrfHeaderName:s,onUploadProgress:s,onDownloadProgress:s,decompress:s,maxContentLength:s,maxBodyLength:s,beforeRedirect:s,transport:s,httpAgent:s,httpsAgent:s,cancelToken:s,socketPath:s,responseEncoding:s,validateStatus:u};return n.forEach(Object.keys(e).concat(Object.keys(t)),(function(e){var t=c[e]||i,o=t(e);n.isUndefined(o)&&t!==u||(r[e]=o)})),r}},36026:(e,t,r)=>{"use strict";var n=r(82648);e.exports=function(e,t,r){var o=r.config.validateStatus;r.status&&o&&!o(r.status)?t(new n("Request failed with status code "+r.status,[n.ERR_BAD_REQUEST,n.ERR_BAD_RESPONSE][Math.floor(r.status/100)-4],r.config,r.request,r)):e(r)}},18527:(e,t,r)=>{"use strict";var n=r(64867),o=r(45546);e.exports=function(e,t,r){var i=this||o;return n.forEach(r,(function(r){e=r.call(i,e,t)})),e}},45546:(e,t,r)=>{"use strict";var n=r(64867),o=r(16016),i=r(82648),a=r(77874),s=r(47675),u={"Content-Type":"application/x-www-form-urlencoded"};function c(e,t){!n.isUndefined(e)&&n.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}var d,l={transitional:a,adapter:(("undefined"!=typeof XMLHttpRequest||"undefined"!=typeof process&&"[object process]"===Object.prototype.toString.call(process))&&(d=r(55448)),d),transformRequest:[function(e,t){if(o(t,"Accept"),o(t,"Content-Type"),n.isFormData(e)||n.isArrayBuffer(e)||n.isBuffer(e)||n.isStream(e)||n.isFile(e)||n.isBlob(e))return e;if(n.isArrayBufferView(e))return e.buffer;if(n.isURLSearchParams(e))return c(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString();var r,i=n.isObject(e),a=t&&t["Content-Type"];if((r=n.isFileList(e))||i&&"multipart/form-data"===a){var u=this.env&&this.env.FormData;return s(r?{"files[]":e}:e,u&&new u)}return i||"application/json"===a?(c(t,"application/json"),function(e,t,r){if(n.isString(e))try{return(0,JSON.parse)(e),n.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(0,JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){var t=this.transitional||l.transitional,r=t&&t.silentJSONParsing,o=t&&t.forcedJSONParsing,a=!r&&"json"===this.responseType;if(a||o&&n.isString(e)&&e.length)try{return JSON.parse(e)}catch(e){if(a){if("SyntaxError"===e.name)throw i.from(e,i.ERR_BAD_RESPONSE,this,null,this.response);throw e}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:r(91623)},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};n.forEach(["delete","get","head"],(function(e){l.headers[e]={}})),n.forEach(["post","put","patch"],(function(e){l.headers[e]=n.merge(u)})),e.exports=l},77874:e=>{"use strict";e.exports={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1}},97288:e=>{e.exports={version:"0.27.2"}},91849:e=>{"use strict";e.exports=function(e,t){return function(){for(var r=new Array(arguments.length),n=0;n{"use strict";var n=r(64867);function o(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}e.exports=function(e,t,r){if(!t)return e;var i;if(r)i=r(t);else if(n.isURLSearchParams(t))i=t.toString();else{var a=[];n.forEach(t,(function(e,t){null!=e&&(n.isArray(e)?t+="[]":e=[e],n.forEach(e,(function(e){n.isDate(e)?e=e.toISOString():n.isObject(e)&&(e=JSON.stringify(e)),a.push(o(t)+"="+o(e))})))})),i=a.join("&")}if(i){var s=e.indexOf("#");-1!==s&&(e=e.slice(0,s)),e+=(-1===e.indexOf("?")?"?":"&")+i}return e}},7303:e=>{"use strict";e.exports=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}},4372:(e,t,r)=>{"use strict";var n=r(64867);e.exports=n.isStandardBrowserEnv()?{write:function(e,t,r,o,i,a){var s=[];s.push(e+"="+encodeURIComponent(t)),n.isNumber(r)&&s.push("expires="+new Date(r).toGMTString()),n.isString(o)&&s.push("path="+o),n.isString(i)&&s.push("domain="+i),!0===a&&s.push("secure"),document.cookie=s.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},91793:e=>{"use strict";e.exports=function(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}},16268:(e,t,r)=>{"use strict";var n=r(64867);e.exports=function(e){return n.isObject(e)&&!0===e.isAxiosError}},67985:(e,t,r)=>{"use strict";var n=r(64867);e.exports=n.isStandardBrowserEnv()?function(){var e,t=/(msie|trident)/i.test(navigator.userAgent),r=document.createElement("a");function o(e){var n=e;return t&&(r.setAttribute("href",n),n=r.href),r.setAttribute("href",n),{href:r.href,protocol:r.protocol?r.protocol.replace(/:$/,""):"",host:r.host,search:r.search?r.search.replace(/^\?/,""):"",hash:r.hash?r.hash.replace(/^#/,""):"",hostname:r.hostname,port:r.port,pathname:"/"===r.pathname.charAt(0)?r.pathname:"/"+r.pathname}}return e=o(window.location.href),function(t){var r=n.isString(t)?o(t):t;return r.protocol===e.protocol&&r.host===e.host}}():function(){return!0}},16016:(e,t,r)=>{"use strict";var n=r(64867);e.exports=function(e,t){n.forEach(e,(function(r,n){n!==t&&n.toUpperCase()===t.toUpperCase()&&(e[t]=r,delete e[n])}))}},91623:e=>{e.exports=null},84109:(e,t,r)=>{"use strict";var n=r(64867),o=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function(e){var t,r,i,a={};return e?(n.forEach(e.split("\n"),(function(e){if(i=e.indexOf(":"),t=n.trim(e.substr(0,i)).toLowerCase(),r=n.trim(e.substr(i+1)),t){if(a[t]&&o.indexOf(t)>=0)return;a[t]="set-cookie"===t?(a[t]?a[t]:[]).concat([r]):a[t]?a[t]+", "+r:r}})),a):a}},90205:e=>{"use strict";e.exports=function(e){var t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}},8713:e=>{"use strict";e.exports=function(e){return function(t){return e.apply(null,t)}}},47675:(e,t,r)=>{"use strict";var n=r(48764).Buffer,o=r(64867);e.exports=function(e,t){t=t||new FormData;var r=[];function i(e){return null===e?"":o.isDate(e)?e.toISOString():o.isArrayBuffer(e)||o.isTypedArray(e)?"function"==typeof Blob?new Blob([e]):n.from(e):e}return function e(n,a){if(o.isPlainObject(n)||o.isArray(n)){if(-1!==r.indexOf(n))throw Error("Circular reference detected in "+a);r.push(n),o.forEach(n,(function(r,n){if(!o.isUndefined(r)){var s,u=a?a+"."+n:n;if(r&&!a&&"object"==typeof r)if(o.endsWith(n,"{}"))r=JSON.stringify(r);else if(o.endsWith(n,"[]")&&(s=o.toArray(r)))return void s.forEach((function(e){!o.isUndefined(e)&&t.append(u,i(e))}));e(r,u)}})),r.pop()}else t.append(a,i(n))}(e),t}},54875:(e,t,r)=>{"use strict";var n=r(97288).version,o=r(82648),i={};["object","boolean","number","function","string","symbol"].forEach((function(e,t){i[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}}));var a={};i.transitional=function(e,t,r){function i(e,t){return"[Axios v"+n+"] Transitional option '"+e+"'"+t+(r?". "+r:"")}return function(r,n,s){if(!1===e)throw new o(i(n," has been removed"+(t?" in "+t:"")),o.ERR_DEPRECATED);return t&&!a[n]&&(a[n]=!0,console.warn(i(n," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(r,n,s)}},e.exports={assertOptions:function(e,t,r){if("object"!=typeof e)throw new o("options must be an object",o.ERR_BAD_OPTION_VALUE);for(var n=Object.keys(e),i=n.length;i-- >0;){var a=n[i],s=t[a];if(s){var u=e[a],c=void 0===u||s(u,a,e);if(!0!==c)throw new o("option "+a+" must be "+c,o.ERR_BAD_OPTION_VALUE)}else if(!0!==r)throw new o("Unknown option "+a,o.ERR_BAD_OPTION)}},validators:i}},64867:(e,t,r)=>{"use strict";var n,o=r(91849),i=Object.prototype.toString,a=(n=Object.create(null),function(e){var t=i.call(e);return n[t]||(n[t]=t.slice(8,-1).toLowerCase())});function s(e){return e=e.toLowerCase(),function(t){return a(t)===e}}function u(e){return Array.isArray(e)}function c(e){return void 0===e}var d=s("ArrayBuffer");function l(e){return null!==e&&"object"==typeof e}function f(e){if("object"!==a(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}var h=s("Date"),p=s("File"),m=s("Blob"),g=s("FileList");function v(e){return"[object Function]"===i.call(e)}var b=s("URLSearchParams");function y(e,t){if(null!=e)if("object"!=typeof e&&(e=[e]),u(e))for(var r=0,n=e.length;r0;)a[i=n[o]]||(t[i]=e[i],a[i]=!0);e=Object.getPrototypeOf(e)}while(e&&(!r||r(e,t))&&e!==Object.prototype);return t},kindOf:a,kindOfTest:s,endsWith:function(e,t,r){e=String(e),(void 0===r||r>e.length)&&(r=e.length),r-=t.length;var n=e.indexOf(t,r);return-1!==n&&n===r},toArray:function(e){if(!e)return null;var t=e.length;if(c(t))return null;for(var r=new Array(t);t-- >0;)r[t]=e[t];return r},isTypedArray:_,isFileList:g}},79742:(e,t)=>{"use strict";t.byteLength=function(e){var t=u(e),r=t[0],n=t[1];return 3*(r+n)/4-n},t.toByteArray=function(e){var t,r,i=u(e),a=i[0],s=i[1],c=new o(function(e,t,r){return 3*(t+r)/4-r}(0,a,s)),d=0,l=s>0?a-4:a;for(r=0;r>16&255,c[d++]=t>>8&255,c[d++]=255&t;return 2===s&&(t=n[e.charCodeAt(r)]<<2|n[e.charCodeAt(r+1)]>>4,c[d++]=255&t),1===s&&(t=n[e.charCodeAt(r)]<<10|n[e.charCodeAt(r+1)]<<4|n[e.charCodeAt(r+2)]>>2,c[d++]=t>>8&255,c[d++]=255&t),c},t.fromByteArray=function(e){for(var t,n=e.length,o=n%3,i=[],a=16383,s=0,u=n-o;su?u:s+a));return 1===o?(t=e[n-1],i.push(r[t>>2]+r[t<<4&63]+"==")):2===o&&(t=(e[n-2]<<8)+e[n-1],i.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"=")),i.join("")};for(var r=[],n=[],o="undefined"!=typeof Uint8Array?Uint8Array:Array,i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0,s=i.length;a0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");return-1===r&&(r=t),[r,r===t?0:4-r%4]}function c(e,t,n){for(var o,i,a=[],s=t;s>18&63]+r[i>>12&63]+r[i>>6&63]+r[63&i]);return a.join("")}n["-".charCodeAt(0)]=62,n["_".charCodeAt(0)]=63},27715:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.bech32m=t.bech32=void 0;const r="qpzry9x8gf2tvdw0s3jn54khce6mua7l",n={};for(let e=0;e>25;return(33554431&e)<<5^996825010&-(t>>0&1)^642813549&-(t>>1&1)^513874426&-(t>>2&1)^1027748829&-(t>>3&1)^705979059&-(t>>4&1)}function i(e){let t=1;for(let r=0;r126)return"Invalid prefix ("+e+")";t=o(t)^n>>5}t=o(t);for(let r=0;r=r;)i-=r,s.push(o>>i&a);if(n)i>0&&s.push(o<=t)return"Excess padding";if(o<r)return"Exceeds length limit";const a=e.toLowerCase(),s=e.toUpperCase();if(e!==a&&e!==s)return"Mixed-case string "+e;const u=(e=a).lastIndexOf("1");if(-1===u)return"No separator character for "+e;if(0===u)return"Missing prefix for "+e;const c=e.slice(0,u),d=e.slice(u+1);if(d.length<6)return"Data too short";let l=i(c);if("string"==typeof l)return l;const f=[];for(let e=0;e=d.length||f.push(r)}return l!==t?"Invalid checksum for "+e:{prefix:c,words:f}}return t="bech32"===e?1:734539939,{decodeUnsafe:function(e,t){const r=a(e,t);if("object"==typeof r)return r},decode:function(e,t){const r=a(e,t);if("object"==typeof r)return r;throw new Error(r)},encode:function(e,n,a){if(a=a||90,e.length+7+n.length>a)throw new TypeError("Exceeds length limit");let s=i(e=e.toLowerCase());if("string"==typeof s)throw new Error(s);let u=e+"1";for(let e=0;e>5!=0)throw new Error("Non 5-bit word");s=o(s)^t,u+=r.charAt(t)}for(let e=0;e<6;++e)s=o(s);s^=t;for(let e=0;e<6;++e)u+=r.charAt(s>>5*(5-e)&31);return u},toWords:s,fromWordsUnsafe:u,fromWords:c}}t.bech32=d("bech32"),t.bech32m=d("bech32m")},42314:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n={};let o;t.wordlists=n,t._default=o;try{t._default=o=r(40032),n.czech=o}catch(e){}try{t._default=o=r(46996),n.chinese_simplified=o}catch(e){}try{t._default=o=r(4262),n.chinese_traditional=o}catch(e){}try{t._default=o=r(8013),n.korean=o}catch(e){}try{t._default=o=r(11848),n.french=o}catch(e){}try{t._default=o=r(72841),n.italian=o}catch(e){}try{t._default=o=r(80659),n.spanish=o}catch(e){}try{t._default=o=r(94472),n.japanese=o,n.JA=o}catch(e){}try{t._default=o=r(71945),n.portuguese=o}catch(e){}try{t._default=o=r(24573),n.english=o,n.EN=o}catch(e){}},2153:(e,t,r)=>{"use strict";var n=r(48764).Buffer;Object.defineProperty(t,"__esModule",{value:!0});const o=r(23482),i=r(25632),a=r(61798),s=r(42314);let u=s._default;const c="Invalid mnemonic",d="Invalid entropy",l="A wordlist is required but a default could not be found.\nPlease pass a 2048 word array explicitly.";function f(e){return(e||"").normalize("NFKD")}function h(e,t,r){for(;e.lengthh(e.toString(2),"0",8))).join("")}function g(e){const t=8*e.length/32,r=o("sha256").update(e).digest();return m(Array.from(r)).slice(0,t)}function v(e){return"mnemonic"+(e||"")}function b(e,t){if(!(t=t||u))throw new Error(l);const r=f(e).split(" ");if(r.length%3!=0)throw new Error(c);const o=r.map((e=>{const r=t.indexOf(e);if(-1===r)throw new Error(c);return h(r.toString(2),"0",11)})).join(""),i=32*Math.floor(o.length/33),a=o.slice(0,i),s=o.slice(i),m=a.match(/(.{1,8})/g).map(p);if(m.length<16)throw new Error(d);if(m.length>32)throw new Error(d);if(m.length%4!=0)throw new Error(d);const v=n.from(m);if(g(v)!==s)throw new Error("Invalid mnemonic checksum");return v.toString("hex")}function y(e,t){if(n.isBuffer(e)||(e=n.from(e,"hex")),!(t=t||u))throw new Error(l);if(e.length<16)throw new TypeError(d);if(e.length>32)throw new TypeError(d);if(e.length%4!=0)throw new TypeError(d);const r=(m(Array.from(e))+g(e)).match(/(.{1,11})/g).map((e=>{const r=p(e);return t[r]}));return"あいこくしん"===t[0]?r.join(" "):r.join(" ")}t.mnemonicToSeedSync=function(e,t){const r=n.from(f(e),"utf8"),o=n.from(v(f(t)),"utf8");return i.pbkdf2Sync(r,o,2048,64,"sha512")},t.mnemonicToSeed=function(e,t){return Promise.resolve().then((()=>function(e,t,r,n,o){return Promise.resolve().then((()=>new Promise(((r,n)=>{i.pbkdf2(e,t,2048,64,"sha512",((e,t)=>e?n(e):r(t)))}))))}(n.from(f(e),"utf8"),n.from(v(f(t)),"utf8"))))},t.mnemonicToEntropy=b,t.entropyToMnemonic=y,t.generateMnemonic=function(e,t,r){if((e=e||128)%32!=0)throw new TypeError(d);return y((t=t||a)(e/8),r)},t.validateMnemonic=function(e,t){try{b(e,t)}catch(e){return!1}return!0},t.setDefaultWordlist=function(e){const t=s.wordlists[e];if(!t)throw new Error('Could not find wordlist for language "'+e+'"');u=t},t.getDefaultWordlist=function(){if(!u)throw new Error("No Default Wordlist set");return Object.keys(s.wordlists).filter((e=>"JA"!==e&&"EN"!==e&&s.wordlists[e].every(((e,t)=>e===u[t]))))[0]};var w=r(42314);t.wordlists=w.wordlists},13550:function(e,t,r){!function(e,t){"use strict";function n(e,t){if(!e)throw new Error(t||"Assertion failed")}function o(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}function i(e,t,r){if(i.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(r=t,t=10),this._init(e||0,t||10,r||"be"))}var a;"object"==typeof e?e.exports=i:t.BN=i,i.BN=i,i.wordSize=26;try{a="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:r(46601).Buffer}catch(e){}function s(e,t){var r=e.charCodeAt(t);return r>=48&&r<=57?r-48:r>=65&&r<=70?r-55:r>=97&&r<=102?r-87:void n(!1,"Invalid character in "+e)}function u(e,t,r){var n=s(e,r);return r-1>=t&&(n|=s(e,r-1)<<4),n}function c(e,t,r,o){for(var i=0,a=0,s=Math.min(e.length,r),u=t;u=49?c-49+10:c>=17?c-17+10:c,n(c>=0&&a0?e:t},i.min=function(e,t){return e.cmp(t)<0?e:t},i.prototype._init=function(e,t,r){if("number"==typeof e)return this._initNumber(e,t,r);if("object"==typeof e)return this._initArray(e,t,r);"hex"===t&&(t=16),n(t===(0|t)&&t>=2&&t<=36);var o=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(o++,this.negative=1),o=0;o-=3)a=e[o]|e[o-1]<<8|e[o-2]<<16,this.words[i]|=a<>>26-s&67108863,(s+=24)>=26&&(s-=26,i++);else if("le"===r)for(o=0,i=0;o>>26-s&67108863,(s+=24)>=26&&(s-=26,i++);return this._strip()},i.prototype._parseHex=function(e,t,r){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var n=0;n=t;n-=2)o=u(e,t,n)<=18?(i-=18,a+=1,this.words[a]|=o>>>26):i+=8;else for(n=(e.length-t)%2==0?t+1:t;n=18?(i-=18,a+=1,this.words[a]|=o>>>26):i+=8;this._strip()},i.prototype._parseBase=function(e,t,r){this.words=[0],this.length=1;for(var n=0,o=1;o<=67108863;o*=t)n++;n--,o=o/t|0;for(var i=e.length-r,a=i%n,s=Math.min(i,i-a)+r,u=0,d=r;d1&&0===this.words[this.length-1];)this.length--;return this._normSign()},i.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!=typeof Symbol&&"function"==typeof Symbol.for)try{i.prototype[Symbol.for("nodejs.util.inspect.custom")]=l}catch(e){i.prototype.inspect=l}else i.prototype.inspect=l;function l(){return(this.red?""}var f=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],h=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],p=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function m(e,t,r){r.negative=t.negative^e.negative;var n=e.length+t.length|0;r.length=n,n=n-1|0;var o=0|e.words[0],i=0|t.words[0],a=o*i,s=67108863&a,u=a/67108864|0;r.words[0]=s;for(var c=1;c>>26,l=67108863&u,f=Math.min(c,t.length-1),h=Math.max(0,c-e.length+1);h<=f;h++){var p=c-h|0;d+=(a=(o=0|e.words[p])*(i=0|t.words[h])+l)/67108864|0,l=67108863&a}r.words[c]=0|l,u=0|d}return 0!==u?r.words[c]=0|u:r.length--,r._strip()}i.prototype.toString=function(e,t){var r;if(t=0|t||1,16===(e=e||10)||"hex"===e){r="";for(var o=0,i=0,a=0;a>>24-o&16777215,(o+=2)>=26&&(o-=26,a--),r=0!==i||a!==this.length-1?f[6-u.length]+u+r:u+r}for(0!==i&&(r=i.toString(16)+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(e===(0|e)&&e>=2&&e<=36){var c=h[e],d=p[e];r="";var l=this.clone();for(l.negative=0;!l.isZero();){var m=l.modrn(d).toString(e);r=(l=l.idivn(d)).isZero()?m+r:f[c-m.length]+m+r}for(this.isZero()&&(r="0"+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}n(!1,"Base should be between 2 and 36")},i.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},i.prototype.toJSON=function(){return this.toString(16,2)},a&&(i.prototype.toBuffer=function(e,t){return this.toArrayLike(a,e,t)}),i.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},i.prototype.toArrayLike=function(e,t,r){this._strip();var o=this.byteLength(),i=r||Math.max(1,o);n(o<=i,"byte array longer than desired length"),n(i>0,"Requested array length <= 0");var a=function(e,t){return e.allocUnsafe?e.allocUnsafe(t):new e(t)}(e,i);return this["_toArrayLike"+("le"===t?"LE":"BE")](a,o),a},i.prototype._toArrayLikeLE=function(e,t){for(var r=0,n=0,o=0,i=0;o>8&255),r>16&255),6===i?(r>24&255),n=0,i=0):(n=a>>>24,i+=2)}if(r=0&&(e[r--]=a>>8&255),r>=0&&(e[r--]=a>>16&255),6===i?(r>=0&&(e[r--]=a>>24&255),n=0,i=0):(n=a>>>24,i+=2)}if(r>=0)for(e[r--]=n;r>=0;)e[r--]=0},Math.clz32?i.prototype._countBits=function(e){return 32-Math.clz32(e)}:i.prototype._countBits=function(e){var t=e,r=0;return t>=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},i.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,r=0;return 0==(8191&t)&&(r+=13,t>>>=13),0==(127&t)&&(r+=7,t>>>=7),0==(15&t)&&(r+=4,t>>>=4),0==(3&t)&&(r+=2,t>>>=2),0==(1&t)&&r++,r},i.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},i.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;te.length?this.clone().ior(e):e.clone().ior(this)},i.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},i.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var r=0;re.length?this.clone().iand(e):e.clone().iand(this)},i.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},i.prototype.iuxor=function(e){var t,r;this.length>e.length?(t=this,r=e):(t=e,r=this);for(var n=0;ne.length?this.clone().ixor(e):e.clone().ixor(this)},i.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},i.prototype.inotn=function(e){n("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),r=e%26;this._expand(t),r>0&&t--;for(var o=0;o0&&(this.words[o]=~this.words[o]&67108863>>26-r),this._strip()},i.prototype.notn=function(e){return this.clone().inotn(e)},i.prototype.setn=function(e,t){n("number"==typeof e&&e>=0);var r=e/26|0,o=e%26;return this._expand(r+1),this.words[r]=t?this.words[r]|1<e.length?(r=this,n=e):(r=e,n=this);for(var o=0,i=0;i>>26;for(;0!==o&&i>>26;if(this.length=r.length,0!==o)this.words[this.length]=o,this.length++;else if(r!==this)for(;ie.length?this.clone().iadd(e):e.clone().iadd(this)},i.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var r,n,o=this.cmp(e);if(0===o)return this.negative=0,this.length=1,this.words[0]=0,this;o>0?(r=this,n=e):(r=e,n=this);for(var i=0,a=0;a>26,this.words[a]=67108863&t;for(;0!==i&&a>26,this.words[a]=67108863&t;if(0===i&&a>>13,h=0|a[1],p=8191&h,m=h>>>13,g=0|a[2],v=8191&g,b=g>>>13,y=0|a[3],w=8191&y,_=y>>>13,S=0|a[4],O=8191&S,k=S>>>13,A=0|a[5],P=8191&A,M=A>>>13,E=0|a[6],C=8191&E,N=E>>>13,x=0|a[7],R=8191&x,I=x>>>13,T=0|a[8],j=8191&T,D=T>>>13,B=0|a[9],U=8191&B,J=B>>>13,H=0|s[0],L=8191&H,z=H>>>13,V=0|s[1],q=8191&V,F=V>>>13,Z=0|s[2],W=8191&Z,K=Z>>>13,G=0|s[3],Y=8191&G,$=G>>>13,X=0|s[4],Q=8191&X,ee=X>>>13,te=0|s[5],re=8191&te,ne=te>>>13,oe=0|s[6],ie=8191&oe,ae=oe>>>13,se=0|s[7],ue=8191&se,ce=se>>>13,de=0|s[8],le=8191&de,fe=de>>>13,he=0|s[9],pe=8191&he,me=he>>>13;r.negative=e.negative^t.negative,r.length=19;var ge=(c+(n=Math.imul(l,L))|0)+((8191&(o=(o=Math.imul(l,z))+Math.imul(f,L)|0))<<13)|0;c=((i=Math.imul(f,z))+(o>>>13)|0)+(ge>>>26)|0,ge&=67108863,n=Math.imul(p,L),o=(o=Math.imul(p,z))+Math.imul(m,L)|0,i=Math.imul(m,z);var ve=(c+(n=n+Math.imul(l,q)|0)|0)+((8191&(o=(o=o+Math.imul(l,F)|0)+Math.imul(f,q)|0))<<13)|0;c=((i=i+Math.imul(f,F)|0)+(o>>>13)|0)+(ve>>>26)|0,ve&=67108863,n=Math.imul(v,L),o=(o=Math.imul(v,z))+Math.imul(b,L)|0,i=Math.imul(b,z),n=n+Math.imul(p,q)|0,o=(o=o+Math.imul(p,F)|0)+Math.imul(m,q)|0,i=i+Math.imul(m,F)|0;var be=(c+(n=n+Math.imul(l,W)|0)|0)+((8191&(o=(o=o+Math.imul(l,K)|0)+Math.imul(f,W)|0))<<13)|0;c=((i=i+Math.imul(f,K)|0)+(o>>>13)|0)+(be>>>26)|0,be&=67108863,n=Math.imul(w,L),o=(o=Math.imul(w,z))+Math.imul(_,L)|0,i=Math.imul(_,z),n=n+Math.imul(v,q)|0,o=(o=o+Math.imul(v,F)|0)+Math.imul(b,q)|0,i=i+Math.imul(b,F)|0,n=n+Math.imul(p,W)|0,o=(o=o+Math.imul(p,K)|0)+Math.imul(m,W)|0,i=i+Math.imul(m,K)|0;var ye=(c+(n=n+Math.imul(l,Y)|0)|0)+((8191&(o=(o=o+Math.imul(l,$)|0)+Math.imul(f,Y)|0))<<13)|0;c=((i=i+Math.imul(f,$)|0)+(o>>>13)|0)+(ye>>>26)|0,ye&=67108863,n=Math.imul(O,L),o=(o=Math.imul(O,z))+Math.imul(k,L)|0,i=Math.imul(k,z),n=n+Math.imul(w,q)|0,o=(o=o+Math.imul(w,F)|0)+Math.imul(_,q)|0,i=i+Math.imul(_,F)|0,n=n+Math.imul(v,W)|0,o=(o=o+Math.imul(v,K)|0)+Math.imul(b,W)|0,i=i+Math.imul(b,K)|0,n=n+Math.imul(p,Y)|0,o=(o=o+Math.imul(p,$)|0)+Math.imul(m,Y)|0,i=i+Math.imul(m,$)|0;var we=(c+(n=n+Math.imul(l,Q)|0)|0)+((8191&(o=(o=o+Math.imul(l,ee)|0)+Math.imul(f,Q)|0))<<13)|0;c=((i=i+Math.imul(f,ee)|0)+(o>>>13)|0)+(we>>>26)|0,we&=67108863,n=Math.imul(P,L),o=(o=Math.imul(P,z))+Math.imul(M,L)|0,i=Math.imul(M,z),n=n+Math.imul(O,q)|0,o=(o=o+Math.imul(O,F)|0)+Math.imul(k,q)|0,i=i+Math.imul(k,F)|0,n=n+Math.imul(w,W)|0,o=(o=o+Math.imul(w,K)|0)+Math.imul(_,W)|0,i=i+Math.imul(_,K)|0,n=n+Math.imul(v,Y)|0,o=(o=o+Math.imul(v,$)|0)+Math.imul(b,Y)|0,i=i+Math.imul(b,$)|0,n=n+Math.imul(p,Q)|0,o=(o=o+Math.imul(p,ee)|0)+Math.imul(m,Q)|0,i=i+Math.imul(m,ee)|0;var _e=(c+(n=n+Math.imul(l,re)|0)|0)+((8191&(o=(o=o+Math.imul(l,ne)|0)+Math.imul(f,re)|0))<<13)|0;c=((i=i+Math.imul(f,ne)|0)+(o>>>13)|0)+(_e>>>26)|0,_e&=67108863,n=Math.imul(C,L),o=(o=Math.imul(C,z))+Math.imul(N,L)|0,i=Math.imul(N,z),n=n+Math.imul(P,q)|0,o=(o=o+Math.imul(P,F)|0)+Math.imul(M,q)|0,i=i+Math.imul(M,F)|0,n=n+Math.imul(O,W)|0,o=(o=o+Math.imul(O,K)|0)+Math.imul(k,W)|0,i=i+Math.imul(k,K)|0,n=n+Math.imul(w,Y)|0,o=(o=o+Math.imul(w,$)|0)+Math.imul(_,Y)|0,i=i+Math.imul(_,$)|0,n=n+Math.imul(v,Q)|0,o=(o=o+Math.imul(v,ee)|0)+Math.imul(b,Q)|0,i=i+Math.imul(b,ee)|0,n=n+Math.imul(p,re)|0,o=(o=o+Math.imul(p,ne)|0)+Math.imul(m,re)|0,i=i+Math.imul(m,ne)|0;var Se=(c+(n=n+Math.imul(l,ie)|0)|0)+((8191&(o=(o=o+Math.imul(l,ae)|0)+Math.imul(f,ie)|0))<<13)|0;c=((i=i+Math.imul(f,ae)|0)+(o>>>13)|0)+(Se>>>26)|0,Se&=67108863,n=Math.imul(R,L),o=(o=Math.imul(R,z))+Math.imul(I,L)|0,i=Math.imul(I,z),n=n+Math.imul(C,q)|0,o=(o=o+Math.imul(C,F)|0)+Math.imul(N,q)|0,i=i+Math.imul(N,F)|0,n=n+Math.imul(P,W)|0,o=(o=o+Math.imul(P,K)|0)+Math.imul(M,W)|0,i=i+Math.imul(M,K)|0,n=n+Math.imul(O,Y)|0,o=(o=o+Math.imul(O,$)|0)+Math.imul(k,Y)|0,i=i+Math.imul(k,$)|0,n=n+Math.imul(w,Q)|0,o=(o=o+Math.imul(w,ee)|0)+Math.imul(_,Q)|0,i=i+Math.imul(_,ee)|0,n=n+Math.imul(v,re)|0,o=(o=o+Math.imul(v,ne)|0)+Math.imul(b,re)|0,i=i+Math.imul(b,ne)|0,n=n+Math.imul(p,ie)|0,o=(o=o+Math.imul(p,ae)|0)+Math.imul(m,ie)|0,i=i+Math.imul(m,ae)|0;var Oe=(c+(n=n+Math.imul(l,ue)|0)|0)+((8191&(o=(o=o+Math.imul(l,ce)|0)+Math.imul(f,ue)|0))<<13)|0;c=((i=i+Math.imul(f,ce)|0)+(o>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,n=Math.imul(j,L),o=(o=Math.imul(j,z))+Math.imul(D,L)|0,i=Math.imul(D,z),n=n+Math.imul(R,q)|0,o=(o=o+Math.imul(R,F)|0)+Math.imul(I,q)|0,i=i+Math.imul(I,F)|0,n=n+Math.imul(C,W)|0,o=(o=o+Math.imul(C,K)|0)+Math.imul(N,W)|0,i=i+Math.imul(N,K)|0,n=n+Math.imul(P,Y)|0,o=(o=o+Math.imul(P,$)|0)+Math.imul(M,Y)|0,i=i+Math.imul(M,$)|0,n=n+Math.imul(O,Q)|0,o=(o=o+Math.imul(O,ee)|0)+Math.imul(k,Q)|0,i=i+Math.imul(k,ee)|0,n=n+Math.imul(w,re)|0,o=(o=o+Math.imul(w,ne)|0)+Math.imul(_,re)|0,i=i+Math.imul(_,ne)|0,n=n+Math.imul(v,ie)|0,o=(o=o+Math.imul(v,ae)|0)+Math.imul(b,ie)|0,i=i+Math.imul(b,ae)|0,n=n+Math.imul(p,ue)|0,o=(o=o+Math.imul(p,ce)|0)+Math.imul(m,ue)|0,i=i+Math.imul(m,ce)|0;var ke=(c+(n=n+Math.imul(l,le)|0)|0)+((8191&(o=(o=o+Math.imul(l,fe)|0)+Math.imul(f,le)|0))<<13)|0;c=((i=i+Math.imul(f,fe)|0)+(o>>>13)|0)+(ke>>>26)|0,ke&=67108863,n=Math.imul(U,L),o=(o=Math.imul(U,z))+Math.imul(J,L)|0,i=Math.imul(J,z),n=n+Math.imul(j,q)|0,o=(o=o+Math.imul(j,F)|0)+Math.imul(D,q)|0,i=i+Math.imul(D,F)|0,n=n+Math.imul(R,W)|0,o=(o=o+Math.imul(R,K)|0)+Math.imul(I,W)|0,i=i+Math.imul(I,K)|0,n=n+Math.imul(C,Y)|0,o=(o=o+Math.imul(C,$)|0)+Math.imul(N,Y)|0,i=i+Math.imul(N,$)|0,n=n+Math.imul(P,Q)|0,o=(o=o+Math.imul(P,ee)|0)+Math.imul(M,Q)|0,i=i+Math.imul(M,ee)|0,n=n+Math.imul(O,re)|0,o=(o=o+Math.imul(O,ne)|0)+Math.imul(k,re)|0,i=i+Math.imul(k,ne)|0,n=n+Math.imul(w,ie)|0,o=(o=o+Math.imul(w,ae)|0)+Math.imul(_,ie)|0,i=i+Math.imul(_,ae)|0,n=n+Math.imul(v,ue)|0,o=(o=o+Math.imul(v,ce)|0)+Math.imul(b,ue)|0,i=i+Math.imul(b,ce)|0,n=n+Math.imul(p,le)|0,o=(o=o+Math.imul(p,fe)|0)+Math.imul(m,le)|0,i=i+Math.imul(m,fe)|0;var Ae=(c+(n=n+Math.imul(l,pe)|0)|0)+((8191&(o=(o=o+Math.imul(l,me)|0)+Math.imul(f,pe)|0))<<13)|0;c=((i=i+Math.imul(f,me)|0)+(o>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,n=Math.imul(U,q),o=(o=Math.imul(U,F))+Math.imul(J,q)|0,i=Math.imul(J,F),n=n+Math.imul(j,W)|0,o=(o=o+Math.imul(j,K)|0)+Math.imul(D,W)|0,i=i+Math.imul(D,K)|0,n=n+Math.imul(R,Y)|0,o=(o=o+Math.imul(R,$)|0)+Math.imul(I,Y)|0,i=i+Math.imul(I,$)|0,n=n+Math.imul(C,Q)|0,o=(o=o+Math.imul(C,ee)|0)+Math.imul(N,Q)|0,i=i+Math.imul(N,ee)|0,n=n+Math.imul(P,re)|0,o=(o=o+Math.imul(P,ne)|0)+Math.imul(M,re)|0,i=i+Math.imul(M,ne)|0,n=n+Math.imul(O,ie)|0,o=(o=o+Math.imul(O,ae)|0)+Math.imul(k,ie)|0,i=i+Math.imul(k,ae)|0,n=n+Math.imul(w,ue)|0,o=(o=o+Math.imul(w,ce)|0)+Math.imul(_,ue)|0,i=i+Math.imul(_,ce)|0,n=n+Math.imul(v,le)|0,o=(o=o+Math.imul(v,fe)|0)+Math.imul(b,le)|0,i=i+Math.imul(b,fe)|0;var Pe=(c+(n=n+Math.imul(p,pe)|0)|0)+((8191&(o=(o=o+Math.imul(p,me)|0)+Math.imul(m,pe)|0))<<13)|0;c=((i=i+Math.imul(m,me)|0)+(o>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,n=Math.imul(U,W),o=(o=Math.imul(U,K))+Math.imul(J,W)|0,i=Math.imul(J,K),n=n+Math.imul(j,Y)|0,o=(o=o+Math.imul(j,$)|0)+Math.imul(D,Y)|0,i=i+Math.imul(D,$)|0,n=n+Math.imul(R,Q)|0,o=(o=o+Math.imul(R,ee)|0)+Math.imul(I,Q)|0,i=i+Math.imul(I,ee)|0,n=n+Math.imul(C,re)|0,o=(o=o+Math.imul(C,ne)|0)+Math.imul(N,re)|0,i=i+Math.imul(N,ne)|0,n=n+Math.imul(P,ie)|0,o=(o=o+Math.imul(P,ae)|0)+Math.imul(M,ie)|0,i=i+Math.imul(M,ae)|0,n=n+Math.imul(O,ue)|0,o=(o=o+Math.imul(O,ce)|0)+Math.imul(k,ue)|0,i=i+Math.imul(k,ce)|0,n=n+Math.imul(w,le)|0,o=(o=o+Math.imul(w,fe)|0)+Math.imul(_,le)|0,i=i+Math.imul(_,fe)|0;var Me=(c+(n=n+Math.imul(v,pe)|0)|0)+((8191&(o=(o=o+Math.imul(v,me)|0)+Math.imul(b,pe)|0))<<13)|0;c=((i=i+Math.imul(b,me)|0)+(o>>>13)|0)+(Me>>>26)|0,Me&=67108863,n=Math.imul(U,Y),o=(o=Math.imul(U,$))+Math.imul(J,Y)|0,i=Math.imul(J,$),n=n+Math.imul(j,Q)|0,o=(o=o+Math.imul(j,ee)|0)+Math.imul(D,Q)|0,i=i+Math.imul(D,ee)|0,n=n+Math.imul(R,re)|0,o=(o=o+Math.imul(R,ne)|0)+Math.imul(I,re)|0,i=i+Math.imul(I,ne)|0,n=n+Math.imul(C,ie)|0,o=(o=o+Math.imul(C,ae)|0)+Math.imul(N,ie)|0,i=i+Math.imul(N,ae)|0,n=n+Math.imul(P,ue)|0,o=(o=o+Math.imul(P,ce)|0)+Math.imul(M,ue)|0,i=i+Math.imul(M,ce)|0,n=n+Math.imul(O,le)|0,o=(o=o+Math.imul(O,fe)|0)+Math.imul(k,le)|0,i=i+Math.imul(k,fe)|0;var Ee=(c+(n=n+Math.imul(w,pe)|0)|0)+((8191&(o=(o=o+Math.imul(w,me)|0)+Math.imul(_,pe)|0))<<13)|0;c=((i=i+Math.imul(_,me)|0)+(o>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,n=Math.imul(U,Q),o=(o=Math.imul(U,ee))+Math.imul(J,Q)|0,i=Math.imul(J,ee),n=n+Math.imul(j,re)|0,o=(o=o+Math.imul(j,ne)|0)+Math.imul(D,re)|0,i=i+Math.imul(D,ne)|0,n=n+Math.imul(R,ie)|0,o=(o=o+Math.imul(R,ae)|0)+Math.imul(I,ie)|0,i=i+Math.imul(I,ae)|0,n=n+Math.imul(C,ue)|0,o=(o=o+Math.imul(C,ce)|0)+Math.imul(N,ue)|0,i=i+Math.imul(N,ce)|0,n=n+Math.imul(P,le)|0,o=(o=o+Math.imul(P,fe)|0)+Math.imul(M,le)|0,i=i+Math.imul(M,fe)|0;var Ce=(c+(n=n+Math.imul(O,pe)|0)|0)+((8191&(o=(o=o+Math.imul(O,me)|0)+Math.imul(k,pe)|0))<<13)|0;c=((i=i+Math.imul(k,me)|0)+(o>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,n=Math.imul(U,re),o=(o=Math.imul(U,ne))+Math.imul(J,re)|0,i=Math.imul(J,ne),n=n+Math.imul(j,ie)|0,o=(o=o+Math.imul(j,ae)|0)+Math.imul(D,ie)|0,i=i+Math.imul(D,ae)|0,n=n+Math.imul(R,ue)|0,o=(o=o+Math.imul(R,ce)|0)+Math.imul(I,ue)|0,i=i+Math.imul(I,ce)|0,n=n+Math.imul(C,le)|0,o=(o=o+Math.imul(C,fe)|0)+Math.imul(N,le)|0,i=i+Math.imul(N,fe)|0;var Ne=(c+(n=n+Math.imul(P,pe)|0)|0)+((8191&(o=(o=o+Math.imul(P,me)|0)+Math.imul(M,pe)|0))<<13)|0;c=((i=i+Math.imul(M,me)|0)+(o>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,n=Math.imul(U,ie),o=(o=Math.imul(U,ae))+Math.imul(J,ie)|0,i=Math.imul(J,ae),n=n+Math.imul(j,ue)|0,o=(o=o+Math.imul(j,ce)|0)+Math.imul(D,ue)|0,i=i+Math.imul(D,ce)|0,n=n+Math.imul(R,le)|0,o=(o=o+Math.imul(R,fe)|0)+Math.imul(I,le)|0,i=i+Math.imul(I,fe)|0;var xe=(c+(n=n+Math.imul(C,pe)|0)|0)+((8191&(o=(o=o+Math.imul(C,me)|0)+Math.imul(N,pe)|0))<<13)|0;c=((i=i+Math.imul(N,me)|0)+(o>>>13)|0)+(xe>>>26)|0,xe&=67108863,n=Math.imul(U,ue),o=(o=Math.imul(U,ce))+Math.imul(J,ue)|0,i=Math.imul(J,ce),n=n+Math.imul(j,le)|0,o=(o=o+Math.imul(j,fe)|0)+Math.imul(D,le)|0,i=i+Math.imul(D,fe)|0;var Re=(c+(n=n+Math.imul(R,pe)|0)|0)+((8191&(o=(o=o+Math.imul(R,me)|0)+Math.imul(I,pe)|0))<<13)|0;c=((i=i+Math.imul(I,me)|0)+(o>>>13)|0)+(Re>>>26)|0,Re&=67108863,n=Math.imul(U,le),o=(o=Math.imul(U,fe))+Math.imul(J,le)|0,i=Math.imul(J,fe);var Ie=(c+(n=n+Math.imul(j,pe)|0)|0)+((8191&(o=(o=o+Math.imul(j,me)|0)+Math.imul(D,pe)|0))<<13)|0;c=((i=i+Math.imul(D,me)|0)+(o>>>13)|0)+(Ie>>>26)|0,Ie&=67108863;var Te=(c+(n=Math.imul(U,pe))|0)+((8191&(o=(o=Math.imul(U,me))+Math.imul(J,pe)|0))<<13)|0;return c=((i=Math.imul(J,me))+(o>>>13)|0)+(Te>>>26)|0,Te&=67108863,u[0]=ge,u[1]=ve,u[2]=be,u[3]=ye,u[4]=we,u[5]=_e,u[6]=Se,u[7]=Oe,u[8]=ke,u[9]=Ae,u[10]=Pe,u[11]=Me,u[12]=Ee,u[13]=Ce,u[14]=Ne,u[15]=xe,u[16]=Re,u[17]=Ie,u[18]=Te,0!==c&&(u[19]=c,r.length++),r};function v(e,t,r){r.negative=t.negative^e.negative,r.length=e.length+t.length;for(var n=0,o=0,i=0;i>>26)|0)>>>26,a&=67108863}r.words[i]=s,n=a,a=o}return 0!==n?r.words[i]=n:r.length--,r._strip()}function b(e,t,r){return v(e,t,r)}function y(e,t){this.x=e,this.y=t}Math.imul||(g=m),i.prototype.mulTo=function(e,t){var r=this.length+e.length;return 10===this.length&&10===e.length?g(this,e,t):r<63?m(this,e,t):r<1024?v(this,e,t):b(this,e,t)},y.prototype.makeRBT=function(e){for(var t=new Array(e),r=i.prototype._countBits(e)-1,n=0;n>=1;return n},y.prototype.permute=function(e,t,r,n,o,i){for(var a=0;a>>=1)o++;return 1<>>=13,r[2*a+1]=8191&i,i>>>=13;for(a=2*t;a>=26,r+=i/67108864|0,r+=a>>>26,this.words[o]=67108863&a}return 0!==r&&(this.words[o]=r,this.length++),t?this.ineg():this},i.prototype.muln=function(e){return this.clone().imuln(e)},i.prototype.sqr=function(){return this.mul(this)},i.prototype.isqr=function(){return this.imul(this.clone())},i.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),r=0;r>>o&1}return t}(e);if(0===t.length)return new i(1);for(var r=this,n=0;n=0);var t,r=e%26,o=(e-r)/26,i=67108863>>>26-r<<26-r;if(0!==r){var a=0;for(t=0;t>>26-r}a&&(this.words[t]=a,this.length++)}if(0!==o){for(t=this.length-1;t>=0;t--)this.words[t+o]=this.words[t];for(t=0;t=0),o=t?(t-t%26)/26:0;var i=e%26,a=Math.min((e-i)/26,this.length),s=67108863^67108863>>>i<a)for(this.length-=a,c=0;c=0&&(0!==d||c>=o);c--){var l=0|this.words[c];this.words[c]=d<<26-i|l>>>i,d=l&s}return u&&0!==d&&(u.words[u.length++]=d),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},i.prototype.ishrn=function(e,t,r){return n(0===this.negative),this.iushrn(e,t,r)},i.prototype.shln=function(e){return this.clone().ishln(e)},i.prototype.ushln=function(e){return this.clone().iushln(e)},i.prototype.shrn=function(e){return this.clone().ishrn(e)},i.prototype.ushrn=function(e){return this.clone().iushrn(e)},i.prototype.testn=function(e){n("number"==typeof e&&e>=0);var t=e%26,r=(e-t)/26,o=1<=0);var t=e%26,r=(e-t)/26;if(n(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==t&&r++,this.length=Math.min(r,this.length),0!==t){var o=67108863^67108863>>>t<=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},i.prototype.isubn=function(e){if(n("number"==typeof e),n(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t>26)-(u/67108864|0),this.words[o+r]=67108863&i}for(;o>26,this.words[o+r]=67108863&i;if(0===s)return this._strip();for(n(-1===s),s=0,o=0;o>26,this.words[o]=67108863&i;return this.negative=1,this._strip()},i.prototype._wordDiv=function(e,t){var r=(this.length,e.length),n=this.clone(),o=e,a=0|o.words[o.length-1];0!=(r=26-this._countBits(a))&&(o=o.ushln(r),n.iushln(r),a=0|o.words[o.length-1]);var s,u=n.length-o.length;if("mod"!==t){(s=new i(null)).length=u+1,s.words=new Array(s.length);for(var c=0;c=0;l--){var f=67108864*(0|n.words[o.length+l])+(0|n.words[o.length+l-1]);for(f=Math.min(f/a|0,67108863),n._ishlnsubmul(o,f,l);0!==n.negative;)f--,n.negative=0,n._ishlnsubmul(o,1,l),n.isZero()||(n.negative^=1);s&&(s.words[l]=f)}return s&&s._strip(),n._strip(),"div"!==t&&0!==r&&n.iushrn(r),{div:s||null,mod:n}},i.prototype.divmod=function(e,t,r){return n(!e.isZero()),this.isZero()?{div:new i(0),mod:new i(0)}:0!==this.negative&&0===e.negative?(s=this.neg().divmod(e,t),"mod"!==t&&(o=s.div.neg()),"div"!==t&&(a=s.mod.neg(),r&&0!==a.negative&&a.iadd(e)),{div:o,mod:a}):0===this.negative&&0!==e.negative?(s=this.divmod(e.neg(),t),"mod"!==t&&(o=s.div.neg()),{div:o,mod:s.mod}):0!=(this.negative&e.negative)?(s=this.neg().divmod(e.neg(),t),"div"!==t&&(a=s.mod.neg(),r&&0!==a.negative&&a.isub(e)),{div:s.div,mod:a}):e.length>this.length||this.cmp(e)<0?{div:new i(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new i(this.modrn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new i(this.modrn(e.words[0]))}:this._wordDiv(e,t);var o,a,s},i.prototype.div=function(e){return this.divmod(e,"div",!1).div},i.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},i.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},i.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var r=0!==t.div.negative?t.mod.isub(e):t.mod,n=e.ushrn(1),o=e.andln(1),i=r.cmp(n);return i<0||1===o&&0===i?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},i.prototype.modrn=function(e){var t=e<0;t&&(e=-e),n(e<=67108863);for(var r=(1<<26)%e,o=0,i=this.length-1;i>=0;i--)o=(r*o+(0|this.words[i]))%e;return t?-o:o},i.prototype.modn=function(e){return this.modrn(e)},i.prototype.idivn=function(e){var t=e<0;t&&(e=-e),n(e<=67108863);for(var r=0,o=this.length-1;o>=0;o--){var i=(0|this.words[o])+67108864*r;this.words[o]=i/e|0,r=i%e}return this._strip(),t?this.ineg():this},i.prototype.divn=function(e){return this.clone().idivn(e)},i.prototype.egcd=function(e){n(0===e.negative),n(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var o=new i(1),a=new i(0),s=new i(0),u=new i(1),c=0;t.isEven()&&r.isEven();)t.iushrn(1),r.iushrn(1),++c;for(var d=r.clone(),l=t.clone();!t.isZero();){for(var f=0,h=1;0==(t.words[0]&h)&&f<26;++f,h<<=1);if(f>0)for(t.iushrn(f);f-- >0;)(o.isOdd()||a.isOdd())&&(o.iadd(d),a.isub(l)),o.iushrn(1),a.iushrn(1);for(var p=0,m=1;0==(r.words[0]&m)&&p<26;++p,m<<=1);if(p>0)for(r.iushrn(p);p-- >0;)(s.isOdd()||u.isOdd())&&(s.iadd(d),u.isub(l)),s.iushrn(1),u.iushrn(1);t.cmp(r)>=0?(t.isub(r),o.isub(s),a.isub(u)):(r.isub(t),s.isub(o),u.isub(a))}return{a:s,b:u,gcd:r.iushln(c)}},i.prototype._invmp=function(e){n(0===e.negative),n(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var o,a=new i(1),s=new i(0),u=r.clone();t.cmpn(1)>0&&r.cmpn(1)>0;){for(var c=0,d=1;0==(t.words[0]&d)&&c<26;++c,d<<=1);if(c>0)for(t.iushrn(c);c-- >0;)a.isOdd()&&a.iadd(u),a.iushrn(1);for(var l=0,f=1;0==(r.words[0]&f)&&l<26;++l,f<<=1);if(l>0)for(r.iushrn(l);l-- >0;)s.isOdd()&&s.iadd(u),s.iushrn(1);t.cmp(r)>=0?(t.isub(r),a.isub(s)):(r.isub(t),s.isub(a))}return(o=0===t.cmpn(1)?a:s).cmpn(0)<0&&o.iadd(e),o},i.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),r=e.clone();t.negative=0,r.negative=0;for(var n=0;t.isEven()&&r.isEven();n++)t.iushrn(1),r.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;r.isEven();)r.iushrn(1);var o=t.cmp(r);if(o<0){var i=t;t=r,r=i}else if(0===o||0===r.cmpn(1))break;t.isub(r)}return r.iushln(n)},i.prototype.invm=function(e){return this.egcd(e).a.umod(e)},i.prototype.isEven=function(){return 0==(1&this.words[0])},i.prototype.isOdd=function(){return 1==(1&this.words[0])},i.prototype.andln=function(e){return this.words[0]&e},i.prototype.bincn=function(e){n("number"==typeof e);var t=e%26,r=(e-t)/26,o=1<>>26,s&=67108863,this.words[a]=s}return 0!==i&&(this.words[a]=i,this.length++),this},i.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},i.prototype.cmpn=function(e){var t,r=e<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this._strip(),this.length>1)t=1;else{r&&(e=-e),n(e<=67108863,"Number is too big");var o=0|this.words[0];t=o===e?0:oe.length)return 1;if(this.length=0;r--){var n=0|this.words[r],o=0|e.words[r];if(n!==o){no&&(t=1);break}}return t},i.prototype.gtn=function(e){return 1===this.cmpn(e)},i.prototype.gt=function(e){return 1===this.cmp(e)},i.prototype.gten=function(e){return this.cmpn(e)>=0},i.prototype.gte=function(e){return this.cmp(e)>=0},i.prototype.ltn=function(e){return-1===this.cmpn(e)},i.prototype.lt=function(e){return-1===this.cmp(e)},i.prototype.lten=function(e){return this.cmpn(e)<=0},i.prototype.lte=function(e){return this.cmp(e)<=0},i.prototype.eqn=function(e){return 0===this.cmpn(e)},i.prototype.eq=function(e){return 0===this.cmp(e)},i.red=function(e){return new P(e)},i.prototype.toRed=function(e){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},i.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},i.prototype._forceRed=function(e){return this.red=e,this},i.prototype.forceRed=function(e){return n(!this.red,"Already a number in reduction context"),this._forceRed(e)},i.prototype.redAdd=function(e){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},i.prototype.redIAdd=function(e){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},i.prototype.redSub=function(e){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},i.prototype.redISub=function(e){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},i.prototype.redShl=function(e){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},i.prototype.redMul=function(e){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},i.prototype.redIMul=function(e){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},i.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},i.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},i.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},i.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},i.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},i.prototype.redPow=function(e){return n(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var w={k256:null,p224:null,p192:null,p25519:null};function _(e,t){this.name=e,this.p=new i(t,16),this.n=this.p.bitLength(),this.k=new i(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function S(){_.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function O(){_.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function k(){_.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function A(){_.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function P(e){if("string"==typeof e){var t=i._prime(e);this.m=t.p,this.prime=t}else n(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function M(e){P.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new i(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}_.prototype._tmp=function(){var e=new i(null);return e.words=new Array(Math.ceil(this.n/13)),e},_.prototype.ireduce=function(e){var t,r=e;do{this.split(r,this.tmp),t=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(t>this.n);var n=t0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},_.prototype.split=function(e,t){e.iushrn(this.n,0,t)},_.prototype.imulK=function(e){return e.imul(this.k)},o(S,_),S.prototype.split=function(e,t){for(var r=4194303,n=Math.min(e.length,9),o=0;o>>22,i=a}i>>>=22,e.words[o-10]=i,0===i&&e.length>10?e.length-=10:e.length-=9},S.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,r=0;r>>=26,e.words[r]=o,t=n}return 0!==t&&(e.words[e.length++]=t),e},i._prime=function(e){if(w[e])return w[e];var t;if("k256"===e)t=new S;else if("p224"===e)t=new O;else if("p192"===e)t=new k;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new A}return w[e]=t,t},P.prototype._verify1=function(e){n(0===e.negative,"red works only with positives"),n(e.red,"red works only with red numbers")},P.prototype._verify2=function(e,t){n(0==(e.negative|t.negative),"red works only with positives"),n(e.red&&e.red===t.red,"red works only with red numbers")},P.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):(d(e,e.umod(this.m)._forceRed(this)),e)},P.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},P.prototype.add=function(e,t){this._verify2(e,t);var r=e.add(t);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},P.prototype.iadd=function(e,t){this._verify2(e,t);var r=e.iadd(t);return r.cmp(this.m)>=0&&r.isub(this.m),r},P.prototype.sub=function(e,t){this._verify2(e,t);var r=e.sub(t);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},P.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},P.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},P.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},P.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},P.prototype.isqr=function(e){return this.imul(e,e.clone())},P.prototype.sqr=function(e){return this.mul(e,e)},P.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(n(t%2==1),3===t){var r=this.m.add(new i(1)).iushrn(2);return this.pow(e,r)}for(var o=this.m.subn(1),a=0;!o.isZero()&&0===o.andln(1);)a++,o.iushrn(1);n(!o.isZero());var s=new i(1).toRed(this),u=s.redNeg(),c=this.m.subn(1).iushrn(1),d=this.m.bitLength();for(d=new i(2*d*d).toRed(this);0!==this.pow(d,c).cmp(u);)d.redIAdd(u);for(var l=this.pow(d,o),f=this.pow(e,o.addn(1).iushrn(1)),h=this.pow(e,o),p=a;0!==h.cmp(s);){for(var m=h,g=0;0!==m.cmp(s);g++)m=m.redSqr();n(g=0;n--){for(var c=t.words[n],d=u-1;d>=0;d--){var l=c>>d&1;o!==r[0]&&(o=this.sqr(o)),0!==l||0!==a?(a<<=1,a|=l,(4==++s||0===n&&0===d)&&(o=this.mul(o,r[a]),s=0,a=0)):s=0}u=26}return o},P.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},P.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},i.mont=function(e){return new M(e)},o(M,P),M.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},M.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},M.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var r=e.imul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=r.isub(n).iushrn(this.shift),i=o;return o.cmp(this.m)>=0?i=o.isub(this.m):o.cmpn(0)<0&&(i=o.iadd(this.m)),i._forceRed(this)},M.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new i(0)._forceRed(this);var r=e.mul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=r.isub(n).iushrn(this.shift),a=o;return o.cmp(this.m)>=0?a=o.isub(this.m):o.cmpn(0)<0&&(a=o.iadd(this.m)),a._forceRed(this)},M.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e=r.nmd(e),this)},29931:(e,t,r)=>{var n;function o(e){this.rand=e}if(e.exports=function(e){return n||(n=new o(null)),n.generate(e)},e.exports.Rand=o,o.prototype.generate=function(e){return this._rand(e)},o.prototype._rand=function(e){if(this.rand.getBytes)return this.rand.getBytes(e);for(var t=new Uint8Array(e),r=0;r{var n=r(89509).Buffer;function o(e){n.isBuffer(e)||(e=n.from(e));for(var t=e.length/4|0,r=new Array(t),o=0;o>>24]^d[p>>>16&255]^l[m>>>8&255]^f[255&g]^t[v++],a=c[p>>>24]^d[m>>>16&255]^l[g>>>8&255]^f[255&h]^t[v++],s=c[m>>>24]^d[g>>>16&255]^l[h>>>8&255]^f[255&p]^t[v++],u=c[g>>>24]^d[h>>>16&255]^l[p>>>8&255]^f[255&m]^t[v++],h=i,p=a,m=s,g=u;return i=(n[h>>>24]<<24|n[p>>>16&255]<<16|n[m>>>8&255]<<8|n[255&g])^t[v++],a=(n[p>>>24]<<24|n[m>>>16&255]<<16|n[g>>>8&255]<<8|n[255&h])^t[v++],s=(n[m>>>24]<<24|n[g>>>16&255]<<16|n[h>>>8&255]<<8|n[255&p])^t[v++],u=(n[g>>>24]<<24|n[h>>>16&255]<<16|n[p>>>8&255]<<8|n[255&m])^t[v++],[i>>>=0,a>>>=0,s>>>=0,u>>>=0]}var s=[0,1,2,4,8,16,32,64,128,27,54],u=function(){for(var e=new Array(256),t=0;t<256;t++)e[t]=t<128?t<<1:t<<1^283;for(var r=[],n=[],o=[[],[],[],[]],i=[[],[],[],[]],a=0,s=0,u=0;u<256;++u){var c=s^s<<1^s<<2^s<<3^s<<4;c=c>>>8^255&c^99,r[a]=c,n[c]=a;var d=e[a],l=e[d],f=e[l],h=257*e[c]^16843008*c;o[0][a]=h<<24|h>>>8,o[1][a]=h<<16|h>>>16,o[2][a]=h<<8|h>>>24,o[3][a]=h,h=16843009*f^65537*l^257*d^16843008*a,i[0][c]=h<<24|h>>>8,i[1][c]=h<<16|h>>>16,i[2][c]=h<<8|h>>>24,i[3][c]=h,0===a?a=s=1:(a=d^e[e[e[f^d]]],s^=e[e[s]])}return{SBOX:r,INV_SBOX:n,SUB_MIX:o,INV_SUB_MIX:i}}();function c(e){this._key=o(e),this._reset()}c.blockSize=16,c.keySize=32,c.prototype.blockSize=c.blockSize,c.prototype.keySize=c.keySize,c.prototype._reset=function(){for(var e=this._key,t=e.length,r=t+6,n=4*(r+1),o=[],i=0;i>>24,a=u.SBOX[a>>>24]<<24|u.SBOX[a>>>16&255]<<16|u.SBOX[a>>>8&255]<<8|u.SBOX[255&a],a^=s[i/t|0]<<24):t>6&&i%t==4&&(a=u.SBOX[a>>>24]<<24|u.SBOX[a>>>16&255]<<16|u.SBOX[a>>>8&255]<<8|u.SBOX[255&a]),o[i]=o[i-t]^a}for(var c=[],d=0;d>>24]]^u.INV_SUB_MIX[1][u.SBOX[f>>>16&255]]^u.INV_SUB_MIX[2][u.SBOX[f>>>8&255]]^u.INV_SUB_MIX[3][u.SBOX[255&f]]}this._nRounds=r,this._keySchedule=o,this._invKeySchedule=c},c.prototype.encryptBlockRaw=function(e){return a(e=o(e),this._keySchedule,u.SUB_MIX,u.SBOX,this._nRounds)},c.prototype.encryptBlock=function(e){var t=this.encryptBlockRaw(e),r=n.allocUnsafe(16);return r.writeUInt32BE(t[0],0),r.writeUInt32BE(t[1],4),r.writeUInt32BE(t[2],8),r.writeUInt32BE(t[3],12),r},c.prototype.decryptBlock=function(e){var t=(e=o(e))[1];e[1]=e[3],e[3]=t;var r=a(e,this._invKeySchedule,u.INV_SUB_MIX,u.INV_SBOX,this._nRounds),i=n.allocUnsafe(16);return i.writeUInt32BE(r[0],0),i.writeUInt32BE(r[3],4),i.writeUInt32BE(r[2],8),i.writeUInt32BE(r[1],12),i},c.prototype.scrub=function(){i(this._keySchedule),i(this._invKeySchedule),i(this._key)},e.exports.AES=c},62422:(e,t,r)=>{var n=r(74497),o=r(89509).Buffer,i=r(71027),a=r(35717),s=r(83288),u=r(67295),c=r(20685);function d(e,t,r,a){i.call(this);var u=o.alloc(4,0);this._cipher=new n.AES(t);var d=this._cipher.encryptBlock(u);this._ghash=new s(d),r=function(e,t,r){if(12===t.length)return e._finID=o.concat([t,o.from([0,0,0,1])]),o.concat([t,o.from([0,0,0,2])]);var n=new s(r),i=t.length,a=i%16;n.update(t),a&&(a=16-a,n.update(o.alloc(a,0))),n.update(o.alloc(8,0));var u=8*i,d=o.alloc(8);d.writeUIntBE(u,0,8),n.update(d),e._finID=n.state;var l=o.from(e._finID);return c(l),l}(this,r,d),this._prev=o.from(r),this._cache=o.allocUnsafe(0),this._secCache=o.allocUnsafe(0),this._decrypt=a,this._alen=0,this._len=0,this._mode=e,this._authTag=null,this._called=!1}a(d,i),d.prototype._update=function(e){if(!this._called&&this._alen){var t=16-this._alen%16;t<16&&(t=o.alloc(t,0),this._ghash.update(t))}this._called=!0;var r=this._mode.encrypt(this,e);return this._decrypt?this._ghash.update(e):this._ghash.update(r),this._len+=e.length,r},d.prototype._final=function(){if(this._decrypt&&!this._authTag)throw new Error("Unsupported state or unable to authenticate data");var e=u(this._ghash.final(8*this._alen,8*this._len),this._cipher.encryptBlock(this._finID));if(this._decrypt&&function(e,t){var r=0;e.length!==t.length&&r++;for(var n=Math.min(e.length,t.length),o=0;o{var n=r(71494),o=r(66193),i=r(44946);t.createCipher=t.Cipher=n.createCipher,t.createCipheriv=t.Cipheriv=n.createCipheriv,t.createDecipher=t.Decipher=o.createDecipher,t.createDecipheriv=t.Decipheriv=o.createDecipheriv,t.listCiphers=t.getCiphers=function(){return Object.keys(i)}},66193:(e,t,r)=>{var n=r(62422),o=r(89509).Buffer,i=r(45),a=r(25969),s=r(71027),u=r(74497),c=r(13048);function d(e,t,r){s.call(this),this._cache=new l,this._last=void 0,this._cipher=new u.AES(t),this._prev=o.from(r),this._mode=e,this._autopadding=!0}function l(){this.cache=o.allocUnsafe(0)}function f(e,t,r){var s=i[e.toLowerCase()];if(!s)throw new TypeError("invalid suite type");if("string"==typeof r&&(r=o.from(r)),"GCM"!==s.mode&&r.length!==s.iv)throw new TypeError("invalid iv length "+r.length);if("string"==typeof t&&(t=o.from(t)),t.length!==s.key/8)throw new TypeError("invalid key length "+t.length);return"stream"===s.type?new a(s.module,t,r,!0):"auth"===s.type?new n(s.module,t,r,!0):new d(s.module,t,r)}r(35717)(d,s),d.prototype._update=function(e){var t,r;this._cache.add(e);for(var n=[];t=this._cache.get(this._autopadding);)r=this._mode.decrypt(this,t),n.push(r);return o.concat(n)},d.prototype._final=function(){var e=this._cache.flush();if(this._autopadding)return function(e){var t=e[15];if(t<1||t>16)throw new Error("unable to decrypt data");for(var r=-1;++r16)return t=this.cache.slice(0,16),this.cache=this.cache.slice(16),t}else if(this.cache.length>=16)return t=this.cache.slice(0,16),this.cache=this.cache.slice(16),t;return null},l.prototype.flush=function(){if(this.cache.length)return this.cache},t.createDecipher=function(e,t){var r=i[e.toLowerCase()];if(!r)throw new TypeError("invalid suite type");var n=c(t,!1,r.key,r.iv);return f(e,n.key,n.iv)},t.createDecipheriv=f},71494:(e,t,r)=>{var n=r(45),o=r(62422),i=r(89509).Buffer,a=r(25969),s=r(71027),u=r(74497),c=r(13048);function d(e,t,r){s.call(this),this._cache=new f,this._cipher=new u.AES(t),this._prev=i.from(r),this._mode=e,this._autopadding=!0}r(35717)(d,s),d.prototype._update=function(e){var t,r;this._cache.add(e);for(var n=[];t=this._cache.get();)r=this._mode.encrypt(this,t),n.push(r);return i.concat(n)};var l=i.alloc(16,16);function f(){this.cache=i.allocUnsafe(0)}function h(e,t,r){var s=n[e.toLowerCase()];if(!s)throw new TypeError("invalid suite type");if("string"==typeof t&&(t=i.from(t)),t.length!==s.key/8)throw new TypeError("invalid key length "+t.length);if("string"==typeof r&&(r=i.from(r)),"GCM"!==s.mode&&r.length!==s.iv)throw new TypeError("invalid iv length "+r.length);return"stream"===s.type?new a(s.module,t,r):"auth"===s.type?new o(s.module,t,r):new d(s.module,t,r)}d.prototype._final=function(){var e=this._cache.flush();if(this._autopadding)return e=this._mode.encrypt(this,e),this._cipher.scrub(),e;if(!e.equals(l))throw this._cipher.scrub(),new Error("data not multiple of block length")},d.prototype.setAutoPadding=function(e){return this._autopadding=!!e,this},f.prototype.add=function(e){this.cache=i.concat([this.cache,e])},f.prototype.get=function(){if(this.cache.length>15){var e=this.cache.slice(0,16);return this.cache=this.cache.slice(16),e}return null},f.prototype.flush=function(){for(var e=16-this.cache.length,t=i.allocUnsafe(e),r=-1;++r{var n=r(89509).Buffer,o=n.alloc(16,0);function i(e){var t=n.allocUnsafe(16);return t.writeUInt32BE(e[0]>>>0,0),t.writeUInt32BE(e[1]>>>0,4),t.writeUInt32BE(e[2]>>>0,8),t.writeUInt32BE(e[3]>>>0,12),t}function a(e){this.h=e,this.state=n.alloc(16,0),this.cache=n.allocUnsafe(0)}a.prototype.ghash=function(e){for(var t=-1;++t0;t--)n[t]=n[t]>>>1|(1&n[t-1])<<31;n[0]=n[0]>>>1,r&&(n[0]=n[0]^225<<24)}this.state=i(o)},a.prototype.update=function(e){var t;for(this.cache=n.concat([this.cache,e]);this.cache.length>=16;)t=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(t)},a.prototype.final=function(e,t){return this.cache.length&&this.ghash(n.concat([this.cache,o],16)),this.ghash(i([0,e,0,t])),this.state},e.exports=a},20685:e=>{e.exports=function(e){for(var t,r=e.length;r--;){if(255!==(t=e.readUInt8(r))){t++,e.writeUInt8(t,r);break}e.writeUInt8(0,r)}}},25292:(e,t,r)=>{var n=r(67295);t.encrypt=function(e,t){var r=n(t,e._prev);return e._prev=e._cipher.encryptBlock(r),e._prev},t.decrypt=function(e,t){var r=e._prev;e._prev=t;var o=e._cipher.decryptBlock(t);return n(o,r)}},86311:(e,t,r)=>{var n=r(89509).Buffer,o=r(67295);function i(e,t,r){var i=t.length,a=o(t,e._cache);return e._cache=e._cache.slice(i),e._prev=n.concat([e._prev,r?t:a]),a}t.encrypt=function(e,t,r){for(var o,a=n.allocUnsafe(0);t.length;){if(0===e._cache.length&&(e._cache=e._cipher.encryptBlock(e._prev),e._prev=n.allocUnsafe(0)),!(e._cache.length<=t.length)){a=n.concat([a,i(e,t,r)]);break}o=e._cache.length,a=n.concat([a,i(e,t.slice(0,o),r)]),t=t.slice(o)}return a}},21510:(e,t,r)=>{var n=r(89509).Buffer;function o(e,t,r){for(var n,o,a=-1,s=0;++a<8;)n=t&1<<7-a?128:0,s+=(128&(o=e._cipher.encryptBlock(e._prev)[0]^n))>>a%8,e._prev=i(e._prev,r?n:o);return s}function i(e,t){var r=e.length,o=-1,i=n.allocUnsafe(e.length);for(e=n.concat([e,n.from([t])]);++o>7;return i}t.encrypt=function(e,t,r){for(var i=t.length,a=n.allocUnsafe(i),s=-1;++s{var n=r(89509).Buffer;function o(e,t,r){var o=e._cipher.encryptBlock(e._prev)[0]^t;return e._prev=n.concat([e._prev.slice(1),n.from([r?t:o])]),o}t.encrypt=function(e,t,r){for(var i=t.length,a=n.allocUnsafe(i),s=-1;++s{var n=r(67295),o=r(89509).Buffer,i=r(20685);function a(e){var t=e._cipher.encryptBlockRaw(e._prev);return i(e._prev),t}t.encrypt=function(e,t){var r=Math.ceil(t.length/16),i=e._cache.length;e._cache=o.concat([e._cache,o.allocUnsafe(16*r)]);for(var s=0;s{t.encrypt=function(e,t){return e._cipher.encryptBlock(t)},t.decrypt=function(e,t){return e._cipher.decryptBlock(t)}},45:(e,t,r)=>{var n={ECB:r(11084),CBC:r(25292),CFB:r(86311),CFB8:r(71964),CFB1:r(21510),OFB:r(18861),CTR:r(96009),GCM:r(96009)},o=r(44946);for(var i in o)o[i].module=n[o[i].mode];e.exports=o},18861:(e,t,r)=>{var n=r(48764).Buffer,o=r(67295);function i(e){return e._prev=e._cipher.encryptBlock(e._prev),e._prev}t.encrypt=function(e,t){for(;e._cache.length{var n=r(74497),o=r(89509).Buffer,i=r(71027);function a(e,t,r,a){i.call(this),this._cipher=new n.AES(t),this._prev=o.from(r),this._cache=o.allocUnsafe(0),this._secCache=o.allocUnsafe(0),this._decrypt=a,this._mode=e}r(35717)(a,i),a.prototype._update=function(e){return this._mode.encrypt(this,e,this._decrypt)},a.prototype._final=function(){this._cipher.scrub()},e.exports=a},53614:(e,t,r)=>{var n=r(47667),o=r(44696),i=r(45),a=r(99715),s=r(13048);function u(e,t,r){if(e=e.toLowerCase(),i[e])return o.createCipheriv(e,t,r);if(a[e])return new n({key:t,iv:r,mode:e});throw new TypeError("invalid suite type")}function c(e,t,r){if(e=e.toLowerCase(),i[e])return o.createDecipheriv(e,t,r);if(a[e])return new n({key:t,iv:r,mode:e,decrypt:!0});throw new TypeError("invalid suite type")}t.createCipher=t.Cipher=function(e,t){var r,n;if(e=e.toLowerCase(),i[e])r=i[e].key,n=i[e].iv;else{if(!a[e])throw new TypeError("invalid suite type");r=8*a[e].key,n=a[e].iv}var o=s(t,!1,r,n);return u(e,o.key,o.iv)},t.createCipheriv=t.Cipheriv=u,t.createDecipher=t.Decipher=function(e,t){var r,n;if(e=e.toLowerCase(),i[e])r=i[e].key,n=i[e].iv;else{if(!a[e])throw new TypeError("invalid suite type");r=8*a[e].key,n=a[e].iv}var o=s(t,!1,r,n);return c(e,o.key,o.iv)},t.createDecipheriv=t.Decipheriv=c,t.listCiphers=t.getCiphers=function(){return Object.keys(a).concat(o.getCiphers())}},47667:(e,t,r)=>{var n=r(71027),o=r(15251),i=r(35717),a=r(89509).Buffer,s={"des-ede3-cbc":o.CBC.instantiate(o.EDE),"des-ede3":o.EDE,"des-ede-cbc":o.CBC.instantiate(o.EDE),"des-ede":o.EDE,"des-cbc":o.CBC.instantiate(o.DES),"des-ecb":o.DES};function u(e){n.call(this);var t,r=e.mode.toLowerCase(),o=s[r];t=e.decrypt?"decrypt":"encrypt";var i=e.key;a.isBuffer(i)||(i=a.from(i)),"des-ede"!==r&&"des-ede-cbc"!==r||(i=a.concat([i,i.slice(0,8)]));var u=e.iv;a.isBuffer(u)||(u=a.from(u)),this._des=o.create({key:i,iv:u,type:t})}s.des=s["des-cbc"],s.des3=s["des-ede3-cbc"],e.exports=u,i(u,n),u.prototype._update=function(e){return a.from(this._des.update(e))},u.prototype._final=function(){return a.from(this._des.final())}},99715:(e,t)=>{t["des-ecb"]={key:8,iv:0},t["des-cbc"]=t.des={key:8,iv:8},t["des-ede3-cbc"]=t.des3={key:24,iv:8},t["des-ede3"]={key:24,iv:0},t["des-ede-cbc"]={key:16,iv:8},t["des-ede"]={key:16,iv:0}},23663:(e,t,r)=>{var n=r(48764).Buffer,o=r(13550),i=r(61798);function a(e){var t,r=e.modulus.byteLength();do{t=new o(i(r))}while(t.cmp(e.modulus)>=0||!t.umod(e.prime1)||!t.umod(e.prime2));return t}function s(e,t){var r=function(e){var t=a(e);return{blinder:t.toRed(o.mont(e.modulus)).redPow(new o(e.publicExponent)).fromRed(),unblinder:t.invm(e.modulus)}}(t),i=t.modulus.byteLength(),s=new o(e).mul(r.blinder).umod(t.modulus),u=s.toRed(o.mont(t.prime1)),c=s.toRed(o.mont(t.prime2)),d=t.coefficient,l=t.prime1,f=t.prime2,h=u.redPow(t.exponent1).fromRed(),p=c.redPow(t.exponent2).fromRed(),m=h.isub(p).imul(d).umod(l).imul(f);return p.iadd(m).imul(r.unblinder).umod(t.modulus).toArrayLike(n,"be",i)}s.getr=a,e.exports=s},56042:(e,t,r)=>{e.exports=r(75207)},64743:(e,t,r)=>{var n=r(89509).Buffer,o=r(23482),i=r(88473),a=r(35717),s=r(82957),u=r(47753),c=r(75207);function d(e){i.Writable.call(this);var t=c[e];if(!t)throw new Error("Unknown message digest");this._hashType=t.hash,this._hash=o(t.hash),this._tag=t.id,this._signType=t.sign}function l(e){i.Writable.call(this);var t=c[e];if(!t)throw new Error("Unknown message digest");this._hash=o(t.hash),this._tag=t.id,this._signType=t.sign}function f(e){return new d(e)}function h(e){return new l(e)}Object.keys(c).forEach((function(e){c[e].id=n.from(c[e].id,"hex"),c[e.toLowerCase()]=c[e]})),a(d,i.Writable),d.prototype._write=function(e,t,r){this._hash.update(e),r()},d.prototype.update=function(e,t){return"string"==typeof e&&(e=n.from(e,t)),this._hash.update(e),this},d.prototype.sign=function(e,t){this.end();var r=this._hash.digest(),n=s(r,e,this._hashType,this._signType,this._tag);return t?n.toString(t):n},a(l,i.Writable),l.prototype._write=function(e,t,r){this._hash.update(e),r()},l.prototype.update=function(e,t){return"string"==typeof e&&(e=n.from(e,t)),this._hash.update(e),this},l.prototype.verify=function(e,t,r){"string"==typeof t&&(t=n.from(t,r)),this.end();var o=this._hash.digest();return u(t,o,e,this._signType,this._tag)},e.exports={Sign:f,Verify:h,createSign:f,createVerify:h}},82957:(e,t,r)=>{var n=r(89509).Buffer,o=r(58355),i=r(23663),a=r(86266).ec,s=r(13550),u=r(70980),c=r(1308);function d(e,t,r,i){if((e=n.from(e.toArray())).length0&&r.ishrn(n),r}function f(e,t,r){var i,a;do{for(i=n.alloc(0);8*i.length{var n=r(89509).Buffer,o=r(13550),i=r(86266).ec,a=r(70980),s=r(1308);function u(e,t){if(e.cmpn(0)<=0)throw new Error("invalid sig");if(e.cmp(t)>=t)throw new Error("invalid sig")}e.exports=function(e,t,r,c,d){var l=a(r);if("ec"===l.type){if("ecdsa"!==c&&"ecdsa/rsa"!==c)throw new Error("wrong public key type");return function(e,t,r){var n=s[r.data.algorithm.curve.join(".")];if(!n)throw new Error("unknown curve "+r.data.algorithm.curve.join("."));var o=new i(n),a=r.data.subjectPrivateKey.data;return o.verify(t,e,a)}(e,t,l)}if("dsa"===l.type){if("dsa"!==c)throw new Error("wrong public key type");return function(e,t,r){var n=r.data.p,i=r.data.q,s=r.data.g,c=r.data.pub_key,d=a.signature.decode(e,"der"),l=d.s,f=d.r;u(l,i),u(f,i);var h=o.mont(n),p=l.invm(i);return 0===s.toRed(h).redPow(new o(t).mul(p).mod(i)).fromRed().mul(c.toRed(h).redPow(f.mul(p).mod(i)).fromRed()).mod(n).mod(i).cmp(f)}(e,t,l)}if("rsa"!==c&&"ecdsa/rsa"!==c)throw new Error("wrong public key type");t=n.concat([d,t]);for(var f=l.modulus.byteLength(),h=[1],p=0;t.length+h.length+2{var n=r(48764).Buffer;e.exports=function(e,t){for(var r=Math.min(e.length,t.length),o=new n(r),i=0;i{"use strict";const n=r(79742),o=r(80645),i="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;t.Buffer=u,t.SlowBuffer=function(e){return+e!=e&&(e=0),u.alloc(+e)},t.INSPECT_MAX_BYTES=50;const a=2147483647;function s(e){if(e>a)throw new RangeError('The value "'+e+'" is invalid for option "size"');const t=new Uint8Array(e);return Object.setPrototypeOf(t,u.prototype),t}function u(e,t,r){if("number"==typeof e){if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return l(e)}return c(e,t,r)}function c(e,t,r){if("string"==typeof e)return function(e,t){if("string"==typeof t&&""!==t||(t="utf8"),!u.isEncoding(t))throw new TypeError("Unknown encoding: "+t);const r=0|m(e,t);let n=s(r);const o=n.write(e,t);return o!==r&&(n=n.slice(0,o)),n}(e,t);if(ArrayBuffer.isView(e))return function(e){if(G(e,Uint8Array)){const t=new Uint8Array(e);return h(t.buffer,t.byteOffset,t.byteLength)}return f(e)}(e);if(null==e)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(G(e,ArrayBuffer)||e&&G(e.buffer,ArrayBuffer))return h(e,t,r);if("undefined"!=typeof SharedArrayBuffer&&(G(e,SharedArrayBuffer)||e&&G(e.buffer,SharedArrayBuffer)))return h(e,t,r);if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type number');const n=e.valueOf&&e.valueOf();if(null!=n&&n!==e)return u.from(n,t,r);const o=function(e){if(u.isBuffer(e)){const t=0|p(e.length),r=s(t);return 0===r.length||e.copy(r,0,0,t),r}return void 0!==e.length?"number"!=typeof e.length||Y(e.length)?s(0):f(e):"Buffer"===e.type&&Array.isArray(e.data)?f(e.data):void 0}(e);if(o)return o;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof e[Symbol.toPrimitive])return u.from(e[Symbol.toPrimitive]("string"),t,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}function d(e){if("number"!=typeof e)throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function l(e){return d(e),s(e<0?0:0|p(e))}function f(e){const t=e.length<0?0:0|p(e.length),r=s(t);for(let n=0;n=a)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a.toString(16)+" bytes");return 0|e}function m(e,t){if(u.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||G(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);const r=e.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===r)return 0;let o=!1;for(;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return Z(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return W(e).length;default:if(o)return n?-1:Z(e).length;t=(""+t).toLowerCase(),o=!0}}function g(e,t,r){let n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return N(this,t,r);case"utf8":case"utf-8":return P(this,t,r);case"ascii":return E(this,t,r);case"latin1":case"binary":return C(this,t,r);case"base64":return A(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return x(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function v(e,t,r){const n=e[t];e[t]=e[r],e[r]=n}function b(e,t,r,n,o){if(0===e.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),Y(r=+r)&&(r=o?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(o)return-1;r=e.length-1}else if(r<0){if(!o)return-1;r=0}if("string"==typeof t&&(t=u.from(t,n)),u.isBuffer(t))return 0===t.length?-1:y(e,t,r,n,o);if("number"==typeof t)return t&=255,"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):y(e,[t],r,n,o);throw new TypeError("val must be string, number or Buffer")}function y(e,t,r,n,o){let i,a=1,s=e.length,u=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;a=2,s/=2,u/=2,r/=2}function c(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(o){let n=-1;for(i=r;is&&(r=s-u),i=r;i>=0;i--){let r=!0;for(let n=0;no&&(n=o):n=o;const i=t.length;let a;for(n>i/2&&(n=i/2),a=0;a>8,o=r%256,i.push(o),i.push(n);return i}(t,e.length-r),e,r,n)}function A(e,t,r){return 0===t&&r===e.length?n.fromByteArray(e):n.fromByteArray(e.slice(t,r))}function P(e,t,r){r=Math.min(e.length,r);const n=[];let o=t;for(;o239?4:t>223?3:t>191?2:1;if(o+a<=r){let r,n,s,u;switch(a){case 1:t<128&&(i=t);break;case 2:r=e[o+1],128==(192&r)&&(u=(31&t)<<6|63&r,u>127&&(i=u));break;case 3:r=e[o+1],n=e[o+2],128==(192&r)&&128==(192&n)&&(u=(15&t)<<12|(63&r)<<6|63&n,u>2047&&(u<55296||u>57343)&&(i=u));break;case 4:r=e[o+1],n=e[o+2],s=e[o+3],128==(192&r)&&128==(192&n)&&128==(192&s)&&(u=(15&t)<<18|(63&r)<<12|(63&n)<<6|63&s,u>65535&&u<1114112&&(i=u))}}null===i?(i=65533,a=1):i>65535&&(i-=65536,n.push(i>>>10&1023|55296),i=56320|1023&i),n.push(i),o+=a}return function(e){const t=e.length;if(t<=M)return String.fromCharCode.apply(String,e);let r="",n=0;for(;nn.length?(u.isBuffer(t)||(t=u.from(t)),t.copy(n,o)):Uint8Array.prototype.set.call(n,t,o);else{if(!u.isBuffer(t))throw new TypeError('"list" argument must be an Array of Buffers');t.copy(n,o)}o+=t.length}return n},u.byteLength=m,u.prototype._isBuffer=!0,u.prototype.swap16=function(){const e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let t=0;tr&&(e+=" ... "),""},i&&(u.prototype[i]=u.prototype.inspect),u.prototype.compare=function(e,t,r,n,o){if(G(e,Uint8Array)&&(e=u.from(e,e.offset,e.byteLength)),!u.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===o&&(o=this.length),t<0||r>e.length||n<0||o>this.length)throw new RangeError("out of range index");if(n>=o&&t>=r)return 0;if(n>=o)return-1;if(t>=r)return 1;if(this===e)return 0;let i=(o>>>=0)-(n>>>=0),a=(r>>>=0)-(t>>>=0);const s=Math.min(i,a),c=this.slice(n,o),d=e.slice(t,r);for(let e=0;e>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}const o=this.length-t;if((void 0===r||r>o)&&(r=o),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");let i=!1;for(;;)switch(n){case"hex":return w(this,e,t,r);case"utf8":case"utf-8":return _(this,e,t,r);case"ascii":case"latin1":case"binary":return S(this,e,t,r);case"base64":return O(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return k(this,e,t,r);default:if(i)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),i=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};const M=4096;function E(e,t,r){let n="";r=Math.min(e.length,r);for(let o=t;on)&&(r=n);let o="";for(let n=t;nr)throw new RangeError("Trying to access beyond buffer length")}function I(e,t,r,n,o,i){if(!u.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||te.length)throw new RangeError("Index out of range")}function T(e,t,r,n,o){z(t,n,o,e,r,7);let i=Number(t&BigInt(4294967295));e[r++]=i,i>>=8,e[r++]=i,i>>=8,e[r++]=i,i>>=8,e[r++]=i;let a=Number(t>>BigInt(32)&BigInt(4294967295));return e[r++]=a,a>>=8,e[r++]=a,a>>=8,e[r++]=a,a>>=8,e[r++]=a,r}function j(e,t,r,n,o){z(t,n,o,e,r,7);let i=Number(t&BigInt(4294967295));e[r+7]=i,i>>=8,e[r+6]=i,i>>=8,e[r+5]=i,i>>=8,e[r+4]=i;let a=Number(t>>BigInt(32)&BigInt(4294967295));return e[r+3]=a,a>>=8,e[r+2]=a,a>>=8,e[r+1]=a,a>>=8,e[r]=a,r+8}function D(e,t,r,n,o,i){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function B(e,t,r,n,i){return t=+t,r>>>=0,i||D(e,0,r,4),o.write(e,t,r,n,23,4),r+4}function U(e,t,r,n,i){return t=+t,r>>>=0,i||D(e,0,r,8),o.write(e,t,r,n,52,8),r+8}u.prototype.slice=function(e,t){const r=this.length;(e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t>>=0,t>>>=0,r||R(e,t,this.length);let n=this[e],o=1,i=0;for(;++i>>=0,t>>>=0,r||R(e,t,this.length);let n=this[e+--t],o=1;for(;t>0&&(o*=256);)n+=this[e+--t]*o;return n},u.prototype.readUint8=u.prototype.readUInt8=function(e,t){return e>>>=0,t||R(e,1,this.length),this[e]},u.prototype.readUint16LE=u.prototype.readUInt16LE=function(e,t){return e>>>=0,t||R(e,2,this.length),this[e]|this[e+1]<<8},u.prototype.readUint16BE=u.prototype.readUInt16BE=function(e,t){return e>>>=0,t||R(e,2,this.length),this[e]<<8|this[e+1]},u.prototype.readUint32LE=u.prototype.readUInt32LE=function(e,t){return e>>>=0,t||R(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},u.prototype.readUint32BE=u.prototype.readUInt32BE=function(e,t){return e>>>=0,t||R(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},u.prototype.readBigUInt64LE=X((function(e){V(e>>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||q(e,this.length-8);const n=t+256*this[++e]+65536*this[++e]+this[++e]*2**24,o=this[++e]+256*this[++e]+65536*this[++e]+r*2**24;return BigInt(n)+(BigInt(o)<>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||q(e,this.length-8);const n=t*2**24+65536*this[++e]+256*this[++e]+this[++e],o=this[++e]*2**24+65536*this[++e]+256*this[++e]+r;return(BigInt(n)<>>=0,t>>>=0,r||R(e,t,this.length);let n=this[e],o=1,i=0;for(;++i=o&&(n-=Math.pow(2,8*t)),n},u.prototype.readIntBE=function(e,t,r){e>>>=0,t>>>=0,r||R(e,t,this.length);let n=t,o=1,i=this[e+--n];for(;n>0&&(o*=256);)i+=this[e+--n]*o;return o*=128,i>=o&&(i-=Math.pow(2,8*t)),i},u.prototype.readInt8=function(e,t){return e>>>=0,t||R(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},u.prototype.readInt16LE=function(e,t){e>>>=0,t||R(e,2,this.length);const r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},u.prototype.readInt16BE=function(e,t){e>>>=0,t||R(e,2,this.length);const r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},u.prototype.readInt32LE=function(e,t){return e>>>=0,t||R(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},u.prototype.readInt32BE=function(e,t){return e>>>=0,t||R(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},u.prototype.readBigInt64LE=X((function(e){V(e>>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||q(e,this.length-8);const n=this[e+4]+256*this[e+5]+65536*this[e+6]+(r<<24);return(BigInt(n)<>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||q(e,this.length-8);const n=(t<<24)+65536*this[++e]+256*this[++e]+this[++e];return(BigInt(n)<>>=0,t||R(e,4,this.length),o.read(this,e,!0,23,4)},u.prototype.readFloatBE=function(e,t){return e>>>=0,t||R(e,4,this.length),o.read(this,e,!1,23,4)},u.prototype.readDoubleLE=function(e,t){return e>>>=0,t||R(e,8,this.length),o.read(this,e,!0,52,8)},u.prototype.readDoubleBE=function(e,t){return e>>>=0,t||R(e,8,this.length),o.read(this,e,!1,52,8)},u.prototype.writeUintLE=u.prototype.writeUIntLE=function(e,t,r,n){e=+e,t>>>=0,r>>>=0,n||I(this,e,t,r,Math.pow(2,8*r)-1,0);let o=1,i=0;for(this[t]=255&e;++i>>=0,r>>>=0,n||I(this,e,t,r,Math.pow(2,8*r)-1,0);let o=r-1,i=1;for(this[t+o]=255&e;--o>=0&&(i*=256);)this[t+o]=e/i&255;return t+r},u.prototype.writeUint8=u.prototype.writeUInt8=function(e,t,r){return e=+e,t>>>=0,r||I(this,e,t,1,255,0),this[t]=255&e,t+1},u.prototype.writeUint16LE=u.prototype.writeUInt16LE=function(e,t,r){return e=+e,t>>>=0,r||I(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},u.prototype.writeUint16BE=u.prototype.writeUInt16BE=function(e,t,r){return e=+e,t>>>=0,r||I(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},u.prototype.writeUint32LE=u.prototype.writeUInt32LE=function(e,t,r){return e=+e,t>>>=0,r||I(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},u.prototype.writeUint32BE=u.prototype.writeUInt32BE=function(e,t,r){return e=+e,t>>>=0,r||I(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},u.prototype.writeBigUInt64LE=X((function(e,t=0){return T(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),u.prototype.writeBigUInt64BE=X((function(e,t=0){return j(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),u.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t>>>=0,!n){const n=Math.pow(2,8*r-1);I(this,e,t,r,n-1,-n)}let o=0,i=1,a=0;for(this[t]=255&e;++o>0)-a&255;return t+r},u.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t>>>=0,!n){const n=Math.pow(2,8*r-1);I(this,e,t,r,n-1,-n)}let o=r-1,i=1,a=0;for(this[t+o]=255&e;--o>=0&&(i*=256);)e<0&&0===a&&0!==this[t+o+1]&&(a=1),this[t+o]=(e/i>>0)-a&255;return t+r},u.prototype.writeInt8=function(e,t,r){return e=+e,t>>>=0,r||I(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},u.prototype.writeInt16LE=function(e,t,r){return e=+e,t>>>=0,r||I(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},u.prototype.writeInt16BE=function(e,t,r){return e=+e,t>>>=0,r||I(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},u.prototype.writeInt32LE=function(e,t,r){return e=+e,t>>>=0,r||I(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},u.prototype.writeInt32BE=function(e,t,r){return e=+e,t>>>=0,r||I(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},u.prototype.writeBigInt64LE=X((function(e,t=0){return T(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),u.prototype.writeBigInt64BE=X((function(e,t=0){return j(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),u.prototype.writeFloatLE=function(e,t,r){return B(this,e,t,!0,r)},u.prototype.writeFloatBE=function(e,t,r){return B(this,e,t,!1,r)},u.prototype.writeDoubleLE=function(e,t,r){return U(this,e,t,!0,r)},u.prototype.writeDoubleBE=function(e,t,r){return U(this,e,t,!1,r)},u.prototype.copy=function(e,t,r,n){if(!u.isBuffer(e))throw new TypeError("argument should be a Buffer");if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(o=t;o=n+4;r-=3)t=`_${e.slice(r-3,r)}${t}`;return`${e.slice(0,r)}${t}`}function z(e,t,r,n,o,i){if(e>r||e3?0===t||t===BigInt(0)?`>= 0${n} and < 2${n} ** ${8*(i+1)}${n}`:`>= -(2${n} ** ${8*(i+1)-1}${n}) and < 2 ** ${8*(i+1)-1}${n}`:`>= ${t}${n} and <= ${r}${n}`,new J.ERR_OUT_OF_RANGE("value",o,e)}!function(e,t,r){V(t,"offset"),void 0!==e[t]&&void 0!==e[t+r]||q(t,e.length-(r+1))}(n,o,i)}function V(e,t){if("number"!=typeof e)throw new J.ERR_INVALID_ARG_TYPE(t,"number",e)}function q(e,t,r){if(Math.floor(e)!==e)throw V(e,r),new J.ERR_OUT_OF_RANGE(r||"offset","an integer",e);if(t<0)throw new J.ERR_BUFFER_OUT_OF_BOUNDS;throw new J.ERR_OUT_OF_RANGE(r||"offset",`>= ${r?1:0} and <= ${t}`,e)}H("ERR_BUFFER_OUT_OF_BOUNDS",(function(e){return e?`${e} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"}),RangeError),H("ERR_INVALID_ARG_TYPE",(function(e,t){return`The "${e}" argument must be of type number. Received type ${typeof t}`}),TypeError),H("ERR_OUT_OF_RANGE",(function(e,t,r){let n=`The value of "${e}" is out of range.`,o=r;return Number.isInteger(r)&&Math.abs(r)>2**32?o=L(String(r)):"bigint"==typeof r&&(o=String(r),(r>BigInt(2)**BigInt(32)||r<-(BigInt(2)**BigInt(32)))&&(o=L(o)),o+="n"),n+=` It must be ${t}. Received ${o}`,n}),RangeError);const F=/[^+/0-9A-Za-z-_]/g;function Z(e,t){let r;t=t||1/0;const n=e.length;let o=null;const i=[];for(let a=0;a55295&&r<57344){if(!o){if(r>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(a+1===n){(t-=3)>-1&&i.push(239,191,189);continue}o=r;continue}if(r<56320){(t-=3)>-1&&i.push(239,191,189),o=r;continue}r=65536+(o-55296<<10|r-56320)}else o&&(t-=3)>-1&&i.push(239,191,189);if(o=null,r<128){if((t-=1)<0)break;i.push(r)}else if(r<2048){if((t-=2)<0)break;i.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;i.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return i}function W(e){return n.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace(F,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function K(e,t,r,n){let o;for(o=0;o=t.length||o>=e.length);++o)t[o+r]=e[o];return o}function G(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function Y(e){return e!=e}const $=function(){const e="0123456789abcdef",t=new Array(256);for(let r=0;r<16;++r){const n=16*r;for(let o=0;o<16;++o)t[n+o]=e[r]+e[o]}return t}();function X(e){return"undefined"==typeof BigInt?Q:e}function Q(){throw new Error("BigInt not supported")}},71027:(e,t,r)=>{var n=r(89509).Buffer,o=r(42830).Transform,i=r(32553).s;function a(e){o.call(this),this.hashMode="string"==typeof e,this.hashMode?this[e]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}r(35717)(a,o),a.prototype.update=function(e,t,r){"string"==typeof e&&(e=n.from(e,t));var o=this._update(e);return this.hashMode?this:(r&&(o=this._toString(o,r)),o)},a.prototype.setAutoPadding=function(){},a.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")},a.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")},a.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")},a.prototype._transform=function(e,t,r){var n;try{this.hashMode?this._update(e):this.push(this._update(e))}catch(e){n=e}finally{r(n)}},a.prototype._flush=function(e){var t;try{this.push(this.__final())}catch(e){t=e}e(t)},a.prototype._finalOrDigest=function(e){var t=this.__final()||n.alloc(0);return e&&(t=this._toString(t,e,!0)),t},a.prototype._toString=function(e,t,r){if(this._decoder||(this._decoder=new i(t),this._encoding=t),this._encoding!==t)throw new Error("can't switch encodings");var n=this._decoder.write(e);return r&&(n+=this._decoder.end()),n},e.exports=a},76393:(e,t,r)=>{var n=r(48764).Buffer,o=r(86266),i=r(16426);e.exports=function(e){return new s(e)};var a={secp256k1:{name:"secp256k1",byteLength:32},secp224r1:{name:"p224",byteLength:28},prime256v1:{name:"p256",byteLength:32},prime192v1:{name:"p192",byteLength:24},ed25519:{name:"ed25519",byteLength:32},secp384r1:{name:"p384",byteLength:48},secp521r1:{name:"p521",byteLength:66}};function s(e){this.curveType=a[e],this.curveType||(this.curveType={name:e}),this.curve=new o.ec(this.curveType.name),this.keys=void 0}function u(e,t,r){Array.isArray(e)||(e=e.toArray());var o=new n(e);if(r&&o.length=65&&r<=70?r-55:r>=97&&r<=102?r-87:r-48&15}function u(e,t,r){var n=s(e,r);return r-1>=t&&(n|=s(e,r-1)<<4),n}function c(e,t,r,n){for(var o=0,i=Math.min(e.length,r),a=t;a=49?s-49+10:s>=17?s-17+10:s}return o}i.isBN=function(e){return e instanceof i||null!==e&&"object"==typeof e&&e.constructor.wordSize===i.wordSize&&Array.isArray(e.words)},i.max=function(e,t){return e.cmp(t)>0?e:t},i.min=function(e,t){return e.cmp(t)<0?e:t},i.prototype._init=function(e,t,r){if("number"==typeof e)return this._initNumber(e,t,r);if("object"==typeof e)return this._initArray(e,t,r);"hex"===t&&(t=16),n(t===(0|t)&&t>=2&&t<=36);var o=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(o++,this.negative=1),o=0;o-=3)a=e[o]|e[o-1]<<8|e[o-2]<<16,this.words[i]|=a<>>26-s&67108863,(s+=24)>=26&&(s-=26,i++);else if("le"===r)for(o=0,i=0;o>>26-s&67108863,(s+=24)>=26&&(s-=26,i++);return this.strip()},i.prototype._parseHex=function(e,t,r){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var n=0;n=t;n-=2)o=u(e,t,n)<=18?(i-=18,a+=1,this.words[a]|=o>>>26):i+=8;else for(n=(e.length-t)%2==0?t+1:t;n=18?(i-=18,a+=1,this.words[a]|=o>>>26):i+=8;this.strip()},i.prototype._parseBase=function(e,t,r){this.words=[0],this.length=1;for(var n=0,o=1;o<=67108863;o*=t)n++;n--,o=o/t|0;for(var i=e.length-r,a=i%n,s=Math.min(i,i-a)+r,u=0,d=r;d1&&0===this.words[this.length-1];)this.length--;return this._normSign()},i.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},i.prototype.inspect=function(){return(this.red?""};var d=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],l=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],f=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function h(e,t,r){r.negative=t.negative^e.negative;var n=e.length+t.length|0;r.length=n,n=n-1|0;var o=0|e.words[0],i=0|t.words[0],a=o*i,s=67108863&a,u=a/67108864|0;r.words[0]=s;for(var c=1;c>>26,l=67108863&u,f=Math.min(c,t.length-1),h=Math.max(0,c-e.length+1);h<=f;h++){var p=c-h|0;d+=(a=(o=0|e.words[p])*(i=0|t.words[h])+l)/67108864|0,l=67108863&a}r.words[c]=0|l,u=0|d}return 0!==u?r.words[c]=0|u:r.length--,r.strip()}i.prototype.toString=function(e,t){var r;if(t=0|t||1,16===(e=e||10)||"hex"===e){r="";for(var o=0,i=0,a=0;a>>24-o&16777215)||a!==this.length-1?d[6-u.length]+u+r:u+r,(o+=2)>=26&&(o-=26,a--)}for(0!==i&&(r=i.toString(16)+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(e===(0|e)&&e>=2&&e<=36){var c=l[e],h=f[e];r="";var p=this.clone();for(p.negative=0;!p.isZero();){var m=p.modn(h).toString(e);r=(p=p.idivn(h)).isZero()?m+r:d[c-m.length]+m+r}for(this.isZero()&&(r="0"+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}n(!1,"Base should be between 2 and 36")},i.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},i.prototype.toJSON=function(){return this.toString(16)},i.prototype.toBuffer=function(e,t){return n(void 0!==a),this.toArrayLike(a,e,t)},i.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},i.prototype.toArrayLike=function(e,t,r){var o=this.byteLength(),i=r||Math.max(1,o);n(o<=i,"byte array longer than desired length"),n(i>0,"Requested array length <= 0"),this.strip();var a,s,u="le"===t,c=new e(i),d=this.clone();if(u){for(s=0;!d.isZero();s++)a=d.andln(255),d.iushrn(8),c[s]=a;for(;s=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},i.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,r=0;return 0==(8191&t)&&(r+=13,t>>>=13),0==(127&t)&&(r+=7,t>>>=7),0==(15&t)&&(r+=4,t>>>=4),0==(3&t)&&(r+=2,t>>>=2),0==(1&t)&&r++,r},i.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},i.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;te.length?this.clone().ior(e):e.clone().ior(this)},i.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},i.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var r=0;re.length?this.clone().iand(e):e.clone().iand(this)},i.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},i.prototype.iuxor=function(e){var t,r;this.length>e.length?(t=this,r=e):(t=e,r=this);for(var n=0;ne.length?this.clone().ixor(e):e.clone().ixor(this)},i.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},i.prototype.inotn=function(e){n("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),r=e%26;this._expand(t),r>0&&t--;for(var o=0;o0&&(this.words[o]=~this.words[o]&67108863>>26-r),this.strip()},i.prototype.notn=function(e){return this.clone().inotn(e)},i.prototype.setn=function(e,t){n("number"==typeof e&&e>=0);var r=e/26|0,o=e%26;return this._expand(r+1),this.words[r]=t?this.words[r]|1<e.length?(r=this,n=e):(r=e,n=this);for(var o=0,i=0;i>>26;for(;0!==o&&i>>26;if(this.length=r.length,0!==o)this.words[this.length]=o,this.length++;else if(r!==this)for(;ie.length?this.clone().iadd(e):e.clone().iadd(this)},i.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var r,n,o=this.cmp(e);if(0===o)return this.negative=0,this.length=1,this.words[0]=0,this;o>0?(r=this,n=e):(r=e,n=this);for(var i=0,a=0;a>26,this.words[a]=67108863&t;for(;0!==i&&a>26,this.words[a]=67108863&t;if(0===i&&a>>13,h=0|a[1],p=8191&h,m=h>>>13,g=0|a[2],v=8191&g,b=g>>>13,y=0|a[3],w=8191&y,_=y>>>13,S=0|a[4],O=8191&S,k=S>>>13,A=0|a[5],P=8191&A,M=A>>>13,E=0|a[6],C=8191&E,N=E>>>13,x=0|a[7],R=8191&x,I=x>>>13,T=0|a[8],j=8191&T,D=T>>>13,B=0|a[9],U=8191&B,J=B>>>13,H=0|s[0],L=8191&H,z=H>>>13,V=0|s[1],q=8191&V,F=V>>>13,Z=0|s[2],W=8191&Z,K=Z>>>13,G=0|s[3],Y=8191&G,$=G>>>13,X=0|s[4],Q=8191&X,ee=X>>>13,te=0|s[5],re=8191&te,ne=te>>>13,oe=0|s[6],ie=8191&oe,ae=oe>>>13,se=0|s[7],ue=8191&se,ce=se>>>13,de=0|s[8],le=8191&de,fe=de>>>13,he=0|s[9],pe=8191&he,me=he>>>13;r.negative=e.negative^t.negative,r.length=19;var ge=(c+(n=Math.imul(l,L))|0)+((8191&(o=(o=Math.imul(l,z))+Math.imul(f,L)|0))<<13)|0;c=((i=Math.imul(f,z))+(o>>>13)|0)+(ge>>>26)|0,ge&=67108863,n=Math.imul(p,L),o=(o=Math.imul(p,z))+Math.imul(m,L)|0,i=Math.imul(m,z);var ve=(c+(n=n+Math.imul(l,q)|0)|0)+((8191&(o=(o=o+Math.imul(l,F)|0)+Math.imul(f,q)|0))<<13)|0;c=((i=i+Math.imul(f,F)|0)+(o>>>13)|0)+(ve>>>26)|0,ve&=67108863,n=Math.imul(v,L),o=(o=Math.imul(v,z))+Math.imul(b,L)|0,i=Math.imul(b,z),n=n+Math.imul(p,q)|0,o=(o=o+Math.imul(p,F)|0)+Math.imul(m,q)|0,i=i+Math.imul(m,F)|0;var be=(c+(n=n+Math.imul(l,W)|0)|0)+((8191&(o=(o=o+Math.imul(l,K)|0)+Math.imul(f,W)|0))<<13)|0;c=((i=i+Math.imul(f,K)|0)+(o>>>13)|0)+(be>>>26)|0,be&=67108863,n=Math.imul(w,L),o=(o=Math.imul(w,z))+Math.imul(_,L)|0,i=Math.imul(_,z),n=n+Math.imul(v,q)|0,o=(o=o+Math.imul(v,F)|0)+Math.imul(b,q)|0,i=i+Math.imul(b,F)|0,n=n+Math.imul(p,W)|0,o=(o=o+Math.imul(p,K)|0)+Math.imul(m,W)|0,i=i+Math.imul(m,K)|0;var ye=(c+(n=n+Math.imul(l,Y)|0)|0)+((8191&(o=(o=o+Math.imul(l,$)|0)+Math.imul(f,Y)|0))<<13)|0;c=((i=i+Math.imul(f,$)|0)+(o>>>13)|0)+(ye>>>26)|0,ye&=67108863,n=Math.imul(O,L),o=(o=Math.imul(O,z))+Math.imul(k,L)|0,i=Math.imul(k,z),n=n+Math.imul(w,q)|0,o=(o=o+Math.imul(w,F)|0)+Math.imul(_,q)|0,i=i+Math.imul(_,F)|0,n=n+Math.imul(v,W)|0,o=(o=o+Math.imul(v,K)|0)+Math.imul(b,W)|0,i=i+Math.imul(b,K)|0,n=n+Math.imul(p,Y)|0,o=(o=o+Math.imul(p,$)|0)+Math.imul(m,Y)|0,i=i+Math.imul(m,$)|0;var we=(c+(n=n+Math.imul(l,Q)|0)|0)+((8191&(o=(o=o+Math.imul(l,ee)|0)+Math.imul(f,Q)|0))<<13)|0;c=((i=i+Math.imul(f,ee)|0)+(o>>>13)|0)+(we>>>26)|0,we&=67108863,n=Math.imul(P,L),o=(o=Math.imul(P,z))+Math.imul(M,L)|0,i=Math.imul(M,z),n=n+Math.imul(O,q)|0,o=(o=o+Math.imul(O,F)|0)+Math.imul(k,q)|0,i=i+Math.imul(k,F)|0,n=n+Math.imul(w,W)|0,o=(o=o+Math.imul(w,K)|0)+Math.imul(_,W)|0,i=i+Math.imul(_,K)|0,n=n+Math.imul(v,Y)|0,o=(o=o+Math.imul(v,$)|0)+Math.imul(b,Y)|0,i=i+Math.imul(b,$)|0,n=n+Math.imul(p,Q)|0,o=(o=o+Math.imul(p,ee)|0)+Math.imul(m,Q)|0,i=i+Math.imul(m,ee)|0;var _e=(c+(n=n+Math.imul(l,re)|0)|0)+((8191&(o=(o=o+Math.imul(l,ne)|0)+Math.imul(f,re)|0))<<13)|0;c=((i=i+Math.imul(f,ne)|0)+(o>>>13)|0)+(_e>>>26)|0,_e&=67108863,n=Math.imul(C,L),o=(o=Math.imul(C,z))+Math.imul(N,L)|0,i=Math.imul(N,z),n=n+Math.imul(P,q)|0,o=(o=o+Math.imul(P,F)|0)+Math.imul(M,q)|0,i=i+Math.imul(M,F)|0,n=n+Math.imul(O,W)|0,o=(o=o+Math.imul(O,K)|0)+Math.imul(k,W)|0,i=i+Math.imul(k,K)|0,n=n+Math.imul(w,Y)|0,o=(o=o+Math.imul(w,$)|0)+Math.imul(_,Y)|0,i=i+Math.imul(_,$)|0,n=n+Math.imul(v,Q)|0,o=(o=o+Math.imul(v,ee)|0)+Math.imul(b,Q)|0,i=i+Math.imul(b,ee)|0,n=n+Math.imul(p,re)|0,o=(o=o+Math.imul(p,ne)|0)+Math.imul(m,re)|0,i=i+Math.imul(m,ne)|0;var Se=(c+(n=n+Math.imul(l,ie)|0)|0)+((8191&(o=(o=o+Math.imul(l,ae)|0)+Math.imul(f,ie)|0))<<13)|0;c=((i=i+Math.imul(f,ae)|0)+(o>>>13)|0)+(Se>>>26)|0,Se&=67108863,n=Math.imul(R,L),o=(o=Math.imul(R,z))+Math.imul(I,L)|0,i=Math.imul(I,z),n=n+Math.imul(C,q)|0,o=(o=o+Math.imul(C,F)|0)+Math.imul(N,q)|0,i=i+Math.imul(N,F)|0,n=n+Math.imul(P,W)|0,o=(o=o+Math.imul(P,K)|0)+Math.imul(M,W)|0,i=i+Math.imul(M,K)|0,n=n+Math.imul(O,Y)|0,o=(o=o+Math.imul(O,$)|0)+Math.imul(k,Y)|0,i=i+Math.imul(k,$)|0,n=n+Math.imul(w,Q)|0,o=(o=o+Math.imul(w,ee)|0)+Math.imul(_,Q)|0,i=i+Math.imul(_,ee)|0,n=n+Math.imul(v,re)|0,o=(o=o+Math.imul(v,ne)|0)+Math.imul(b,re)|0,i=i+Math.imul(b,ne)|0,n=n+Math.imul(p,ie)|0,o=(o=o+Math.imul(p,ae)|0)+Math.imul(m,ie)|0,i=i+Math.imul(m,ae)|0;var Oe=(c+(n=n+Math.imul(l,ue)|0)|0)+((8191&(o=(o=o+Math.imul(l,ce)|0)+Math.imul(f,ue)|0))<<13)|0;c=((i=i+Math.imul(f,ce)|0)+(o>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,n=Math.imul(j,L),o=(o=Math.imul(j,z))+Math.imul(D,L)|0,i=Math.imul(D,z),n=n+Math.imul(R,q)|0,o=(o=o+Math.imul(R,F)|0)+Math.imul(I,q)|0,i=i+Math.imul(I,F)|0,n=n+Math.imul(C,W)|0,o=(o=o+Math.imul(C,K)|0)+Math.imul(N,W)|0,i=i+Math.imul(N,K)|0,n=n+Math.imul(P,Y)|0,o=(o=o+Math.imul(P,$)|0)+Math.imul(M,Y)|0,i=i+Math.imul(M,$)|0,n=n+Math.imul(O,Q)|0,o=(o=o+Math.imul(O,ee)|0)+Math.imul(k,Q)|0,i=i+Math.imul(k,ee)|0,n=n+Math.imul(w,re)|0,o=(o=o+Math.imul(w,ne)|0)+Math.imul(_,re)|0,i=i+Math.imul(_,ne)|0,n=n+Math.imul(v,ie)|0,o=(o=o+Math.imul(v,ae)|0)+Math.imul(b,ie)|0,i=i+Math.imul(b,ae)|0,n=n+Math.imul(p,ue)|0,o=(o=o+Math.imul(p,ce)|0)+Math.imul(m,ue)|0,i=i+Math.imul(m,ce)|0;var ke=(c+(n=n+Math.imul(l,le)|0)|0)+((8191&(o=(o=o+Math.imul(l,fe)|0)+Math.imul(f,le)|0))<<13)|0;c=((i=i+Math.imul(f,fe)|0)+(o>>>13)|0)+(ke>>>26)|0,ke&=67108863,n=Math.imul(U,L),o=(o=Math.imul(U,z))+Math.imul(J,L)|0,i=Math.imul(J,z),n=n+Math.imul(j,q)|0,o=(o=o+Math.imul(j,F)|0)+Math.imul(D,q)|0,i=i+Math.imul(D,F)|0,n=n+Math.imul(R,W)|0,o=(o=o+Math.imul(R,K)|0)+Math.imul(I,W)|0,i=i+Math.imul(I,K)|0,n=n+Math.imul(C,Y)|0,o=(o=o+Math.imul(C,$)|0)+Math.imul(N,Y)|0,i=i+Math.imul(N,$)|0,n=n+Math.imul(P,Q)|0,o=(o=o+Math.imul(P,ee)|0)+Math.imul(M,Q)|0,i=i+Math.imul(M,ee)|0,n=n+Math.imul(O,re)|0,o=(o=o+Math.imul(O,ne)|0)+Math.imul(k,re)|0,i=i+Math.imul(k,ne)|0,n=n+Math.imul(w,ie)|0,o=(o=o+Math.imul(w,ae)|0)+Math.imul(_,ie)|0,i=i+Math.imul(_,ae)|0,n=n+Math.imul(v,ue)|0,o=(o=o+Math.imul(v,ce)|0)+Math.imul(b,ue)|0,i=i+Math.imul(b,ce)|0,n=n+Math.imul(p,le)|0,o=(o=o+Math.imul(p,fe)|0)+Math.imul(m,le)|0,i=i+Math.imul(m,fe)|0;var Ae=(c+(n=n+Math.imul(l,pe)|0)|0)+((8191&(o=(o=o+Math.imul(l,me)|0)+Math.imul(f,pe)|0))<<13)|0;c=((i=i+Math.imul(f,me)|0)+(o>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,n=Math.imul(U,q),o=(o=Math.imul(U,F))+Math.imul(J,q)|0,i=Math.imul(J,F),n=n+Math.imul(j,W)|0,o=(o=o+Math.imul(j,K)|0)+Math.imul(D,W)|0,i=i+Math.imul(D,K)|0,n=n+Math.imul(R,Y)|0,o=(o=o+Math.imul(R,$)|0)+Math.imul(I,Y)|0,i=i+Math.imul(I,$)|0,n=n+Math.imul(C,Q)|0,o=(o=o+Math.imul(C,ee)|0)+Math.imul(N,Q)|0,i=i+Math.imul(N,ee)|0,n=n+Math.imul(P,re)|0,o=(o=o+Math.imul(P,ne)|0)+Math.imul(M,re)|0,i=i+Math.imul(M,ne)|0,n=n+Math.imul(O,ie)|0,o=(o=o+Math.imul(O,ae)|0)+Math.imul(k,ie)|0,i=i+Math.imul(k,ae)|0,n=n+Math.imul(w,ue)|0,o=(o=o+Math.imul(w,ce)|0)+Math.imul(_,ue)|0,i=i+Math.imul(_,ce)|0,n=n+Math.imul(v,le)|0,o=(o=o+Math.imul(v,fe)|0)+Math.imul(b,le)|0,i=i+Math.imul(b,fe)|0;var Pe=(c+(n=n+Math.imul(p,pe)|0)|0)+((8191&(o=(o=o+Math.imul(p,me)|0)+Math.imul(m,pe)|0))<<13)|0;c=((i=i+Math.imul(m,me)|0)+(o>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,n=Math.imul(U,W),o=(o=Math.imul(U,K))+Math.imul(J,W)|0,i=Math.imul(J,K),n=n+Math.imul(j,Y)|0,o=(o=o+Math.imul(j,$)|0)+Math.imul(D,Y)|0,i=i+Math.imul(D,$)|0,n=n+Math.imul(R,Q)|0,o=(o=o+Math.imul(R,ee)|0)+Math.imul(I,Q)|0,i=i+Math.imul(I,ee)|0,n=n+Math.imul(C,re)|0,o=(o=o+Math.imul(C,ne)|0)+Math.imul(N,re)|0,i=i+Math.imul(N,ne)|0,n=n+Math.imul(P,ie)|0,o=(o=o+Math.imul(P,ae)|0)+Math.imul(M,ie)|0,i=i+Math.imul(M,ae)|0,n=n+Math.imul(O,ue)|0,o=(o=o+Math.imul(O,ce)|0)+Math.imul(k,ue)|0,i=i+Math.imul(k,ce)|0,n=n+Math.imul(w,le)|0,o=(o=o+Math.imul(w,fe)|0)+Math.imul(_,le)|0,i=i+Math.imul(_,fe)|0;var Me=(c+(n=n+Math.imul(v,pe)|0)|0)+((8191&(o=(o=o+Math.imul(v,me)|0)+Math.imul(b,pe)|0))<<13)|0;c=((i=i+Math.imul(b,me)|0)+(o>>>13)|0)+(Me>>>26)|0,Me&=67108863,n=Math.imul(U,Y),o=(o=Math.imul(U,$))+Math.imul(J,Y)|0,i=Math.imul(J,$),n=n+Math.imul(j,Q)|0,o=(o=o+Math.imul(j,ee)|0)+Math.imul(D,Q)|0,i=i+Math.imul(D,ee)|0,n=n+Math.imul(R,re)|0,o=(o=o+Math.imul(R,ne)|0)+Math.imul(I,re)|0,i=i+Math.imul(I,ne)|0,n=n+Math.imul(C,ie)|0,o=(o=o+Math.imul(C,ae)|0)+Math.imul(N,ie)|0,i=i+Math.imul(N,ae)|0,n=n+Math.imul(P,ue)|0,o=(o=o+Math.imul(P,ce)|0)+Math.imul(M,ue)|0,i=i+Math.imul(M,ce)|0,n=n+Math.imul(O,le)|0,o=(o=o+Math.imul(O,fe)|0)+Math.imul(k,le)|0,i=i+Math.imul(k,fe)|0;var Ee=(c+(n=n+Math.imul(w,pe)|0)|0)+((8191&(o=(o=o+Math.imul(w,me)|0)+Math.imul(_,pe)|0))<<13)|0;c=((i=i+Math.imul(_,me)|0)+(o>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,n=Math.imul(U,Q),o=(o=Math.imul(U,ee))+Math.imul(J,Q)|0,i=Math.imul(J,ee),n=n+Math.imul(j,re)|0,o=(o=o+Math.imul(j,ne)|0)+Math.imul(D,re)|0,i=i+Math.imul(D,ne)|0,n=n+Math.imul(R,ie)|0,o=(o=o+Math.imul(R,ae)|0)+Math.imul(I,ie)|0,i=i+Math.imul(I,ae)|0,n=n+Math.imul(C,ue)|0,o=(o=o+Math.imul(C,ce)|0)+Math.imul(N,ue)|0,i=i+Math.imul(N,ce)|0,n=n+Math.imul(P,le)|0,o=(o=o+Math.imul(P,fe)|0)+Math.imul(M,le)|0,i=i+Math.imul(M,fe)|0;var Ce=(c+(n=n+Math.imul(O,pe)|0)|0)+((8191&(o=(o=o+Math.imul(O,me)|0)+Math.imul(k,pe)|0))<<13)|0;c=((i=i+Math.imul(k,me)|0)+(o>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,n=Math.imul(U,re),o=(o=Math.imul(U,ne))+Math.imul(J,re)|0,i=Math.imul(J,ne),n=n+Math.imul(j,ie)|0,o=(o=o+Math.imul(j,ae)|0)+Math.imul(D,ie)|0,i=i+Math.imul(D,ae)|0,n=n+Math.imul(R,ue)|0,o=(o=o+Math.imul(R,ce)|0)+Math.imul(I,ue)|0,i=i+Math.imul(I,ce)|0,n=n+Math.imul(C,le)|0,o=(o=o+Math.imul(C,fe)|0)+Math.imul(N,le)|0,i=i+Math.imul(N,fe)|0;var Ne=(c+(n=n+Math.imul(P,pe)|0)|0)+((8191&(o=(o=o+Math.imul(P,me)|0)+Math.imul(M,pe)|0))<<13)|0;c=((i=i+Math.imul(M,me)|0)+(o>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,n=Math.imul(U,ie),o=(o=Math.imul(U,ae))+Math.imul(J,ie)|0,i=Math.imul(J,ae),n=n+Math.imul(j,ue)|0,o=(o=o+Math.imul(j,ce)|0)+Math.imul(D,ue)|0,i=i+Math.imul(D,ce)|0,n=n+Math.imul(R,le)|0,o=(o=o+Math.imul(R,fe)|0)+Math.imul(I,le)|0,i=i+Math.imul(I,fe)|0;var xe=(c+(n=n+Math.imul(C,pe)|0)|0)+((8191&(o=(o=o+Math.imul(C,me)|0)+Math.imul(N,pe)|0))<<13)|0;c=((i=i+Math.imul(N,me)|0)+(o>>>13)|0)+(xe>>>26)|0,xe&=67108863,n=Math.imul(U,ue),o=(o=Math.imul(U,ce))+Math.imul(J,ue)|0,i=Math.imul(J,ce),n=n+Math.imul(j,le)|0,o=(o=o+Math.imul(j,fe)|0)+Math.imul(D,le)|0,i=i+Math.imul(D,fe)|0;var Re=(c+(n=n+Math.imul(R,pe)|0)|0)+((8191&(o=(o=o+Math.imul(R,me)|0)+Math.imul(I,pe)|0))<<13)|0;c=((i=i+Math.imul(I,me)|0)+(o>>>13)|0)+(Re>>>26)|0,Re&=67108863,n=Math.imul(U,le),o=(o=Math.imul(U,fe))+Math.imul(J,le)|0,i=Math.imul(J,fe);var Ie=(c+(n=n+Math.imul(j,pe)|0)|0)+((8191&(o=(o=o+Math.imul(j,me)|0)+Math.imul(D,pe)|0))<<13)|0;c=((i=i+Math.imul(D,me)|0)+(o>>>13)|0)+(Ie>>>26)|0,Ie&=67108863;var Te=(c+(n=Math.imul(U,pe))|0)+((8191&(o=(o=Math.imul(U,me))+Math.imul(J,pe)|0))<<13)|0;return c=((i=Math.imul(J,me))+(o>>>13)|0)+(Te>>>26)|0,Te&=67108863,u[0]=ge,u[1]=ve,u[2]=be,u[3]=ye,u[4]=we,u[5]=_e,u[6]=Se,u[7]=Oe,u[8]=ke,u[9]=Ae,u[10]=Pe,u[11]=Me,u[12]=Ee,u[13]=Ce,u[14]=Ne,u[15]=xe,u[16]=Re,u[17]=Ie,u[18]=Te,0!==c&&(u[19]=c,r.length++),r};function m(e,t,r){return(new g).mulp(e,t,r)}function g(e,t){this.x=e,this.y=t}Math.imul||(p=h),i.prototype.mulTo=function(e,t){var r,n=this.length+e.length;return r=10===this.length&&10===e.length?p(this,e,t):n<63?h(this,e,t):n<1024?function(e,t,r){r.negative=t.negative^e.negative,r.length=e.length+t.length;for(var n=0,o=0,i=0;i>>26)|0)>>>26,a&=67108863}r.words[i]=s,n=a,a=o}return 0!==n?r.words[i]=n:r.length--,r.strip()}(this,e,t):m(this,e,t),r},g.prototype.makeRBT=function(e){for(var t=new Array(e),r=i.prototype._countBits(e)-1,n=0;n>=1;return n},g.prototype.permute=function(e,t,r,n,o,i){for(var a=0;a>>=1)o++;return 1<>>=13,r[2*a+1]=8191&i,i>>>=13;for(a=2*t;a>=26,t+=o/67108864|0,t+=i>>>26,this.words[r]=67108863&i}return 0!==t&&(this.words[r]=t,this.length++),this},i.prototype.muln=function(e){return this.clone().imuln(e)},i.prototype.sqr=function(){return this.mul(this)},i.prototype.isqr=function(){return this.imul(this.clone())},i.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),r=0;r>>o}return t}(e);if(0===t.length)return new i(1);for(var r=this,n=0;n=0);var t,r=e%26,o=(e-r)/26,i=67108863>>>26-r<<26-r;if(0!==r){var a=0;for(t=0;t>>26-r}a&&(this.words[t]=a,this.length++)}if(0!==o){for(t=this.length-1;t>=0;t--)this.words[t+o]=this.words[t];for(t=0;t=0),o=t?(t-t%26)/26:0;var i=e%26,a=Math.min((e-i)/26,this.length),s=67108863^67108863>>>i<a)for(this.length-=a,c=0;c=0&&(0!==d||c>=o);c--){var l=0|this.words[c];this.words[c]=d<<26-i|l>>>i,d=l&s}return u&&0!==d&&(u.words[u.length++]=d),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},i.prototype.ishrn=function(e,t,r){return n(0===this.negative),this.iushrn(e,t,r)},i.prototype.shln=function(e){return this.clone().ishln(e)},i.prototype.ushln=function(e){return this.clone().iushln(e)},i.prototype.shrn=function(e){return this.clone().ishrn(e)},i.prototype.ushrn=function(e){return this.clone().iushrn(e)},i.prototype.testn=function(e){n("number"==typeof e&&e>=0);var t=e%26,r=(e-t)/26,o=1<=0);var t=e%26,r=(e-t)/26;if(n(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==t&&r++,this.length=Math.min(r,this.length),0!==t){var o=67108863^67108863>>>t<=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},i.prototype.isubn=function(e){if(n("number"==typeof e),n(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t>26)-(u/67108864|0),this.words[o+r]=67108863&i}for(;o>26,this.words[o+r]=67108863&i;if(0===s)return this.strip();for(n(-1===s),s=0,o=0;o>26,this.words[o]=67108863&i;return this.negative=1,this.strip()},i.prototype._wordDiv=function(e,t){var r=(this.length,e.length),n=this.clone(),o=e,a=0|o.words[o.length-1];0!=(r=26-this._countBits(a))&&(o=o.ushln(r),n.iushln(r),a=0|o.words[o.length-1]);var s,u=n.length-o.length;if("mod"!==t){(s=new i(null)).length=u+1,s.words=new Array(s.length);for(var c=0;c=0;l--){var f=67108864*(0|n.words[o.length+l])+(0|n.words[o.length+l-1]);for(f=Math.min(f/a|0,67108863),n._ishlnsubmul(o,f,l);0!==n.negative;)f--,n.negative=0,n._ishlnsubmul(o,1,l),n.isZero()||(n.negative^=1);s&&(s.words[l]=f)}return s&&s.strip(),n.strip(),"div"!==t&&0!==r&&n.iushrn(r),{div:s||null,mod:n}},i.prototype.divmod=function(e,t,r){return n(!e.isZero()),this.isZero()?{div:new i(0),mod:new i(0)}:0!==this.negative&&0===e.negative?(s=this.neg().divmod(e,t),"mod"!==t&&(o=s.div.neg()),"div"!==t&&(a=s.mod.neg(),r&&0!==a.negative&&a.iadd(e)),{div:o,mod:a}):0===this.negative&&0!==e.negative?(s=this.divmod(e.neg(),t),"mod"!==t&&(o=s.div.neg()),{div:o,mod:s.mod}):0!=(this.negative&e.negative)?(s=this.neg().divmod(e.neg(),t),"div"!==t&&(a=s.mod.neg(),r&&0!==a.negative&&a.isub(e)),{div:s.div,mod:a}):e.length>this.length||this.cmp(e)<0?{div:new i(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new i(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new i(this.modn(e.words[0]))}:this._wordDiv(e,t);var o,a,s},i.prototype.div=function(e){return this.divmod(e,"div",!1).div},i.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},i.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},i.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var r=0!==t.div.negative?t.mod.isub(e):t.mod,n=e.ushrn(1),o=e.andln(1),i=r.cmp(n);return i<0||1===o&&0===i?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},i.prototype.modn=function(e){n(e<=67108863);for(var t=(1<<26)%e,r=0,o=this.length-1;o>=0;o--)r=(t*r+(0|this.words[o]))%e;return r},i.prototype.idivn=function(e){n(e<=67108863);for(var t=0,r=this.length-1;r>=0;r--){var o=(0|this.words[r])+67108864*t;this.words[r]=o/e|0,t=o%e}return this.strip()},i.prototype.divn=function(e){return this.clone().idivn(e)},i.prototype.egcd=function(e){n(0===e.negative),n(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var o=new i(1),a=new i(0),s=new i(0),u=new i(1),c=0;t.isEven()&&r.isEven();)t.iushrn(1),r.iushrn(1),++c;for(var d=r.clone(),l=t.clone();!t.isZero();){for(var f=0,h=1;0==(t.words[0]&h)&&f<26;++f,h<<=1);if(f>0)for(t.iushrn(f);f-- >0;)(o.isOdd()||a.isOdd())&&(o.iadd(d),a.isub(l)),o.iushrn(1),a.iushrn(1);for(var p=0,m=1;0==(r.words[0]&m)&&p<26;++p,m<<=1);if(p>0)for(r.iushrn(p);p-- >0;)(s.isOdd()||u.isOdd())&&(s.iadd(d),u.isub(l)),s.iushrn(1),u.iushrn(1);t.cmp(r)>=0?(t.isub(r),o.isub(s),a.isub(u)):(r.isub(t),s.isub(o),u.isub(a))}return{a:s,b:u,gcd:r.iushln(c)}},i.prototype._invmp=function(e){n(0===e.negative),n(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var o,a=new i(1),s=new i(0),u=r.clone();t.cmpn(1)>0&&r.cmpn(1)>0;){for(var c=0,d=1;0==(t.words[0]&d)&&c<26;++c,d<<=1);if(c>0)for(t.iushrn(c);c-- >0;)a.isOdd()&&a.iadd(u),a.iushrn(1);for(var l=0,f=1;0==(r.words[0]&f)&&l<26;++l,f<<=1);if(l>0)for(r.iushrn(l);l-- >0;)s.isOdd()&&s.iadd(u),s.iushrn(1);t.cmp(r)>=0?(t.isub(r),a.isub(s)):(r.isub(t),s.isub(a))}return(o=0===t.cmpn(1)?a:s).cmpn(0)<0&&o.iadd(e),o},i.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),r=e.clone();t.negative=0,r.negative=0;for(var n=0;t.isEven()&&r.isEven();n++)t.iushrn(1),r.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;r.isEven();)r.iushrn(1);var o=t.cmp(r);if(o<0){var i=t;t=r,r=i}else if(0===o||0===r.cmpn(1))break;t.isub(r)}return r.iushln(n)},i.prototype.invm=function(e){return this.egcd(e).a.umod(e)},i.prototype.isEven=function(){return 0==(1&this.words[0])},i.prototype.isOdd=function(){return 1==(1&this.words[0])},i.prototype.andln=function(e){return this.words[0]&e},i.prototype.bincn=function(e){n("number"==typeof e);var t=e%26,r=(e-t)/26,o=1<>>26,s&=67108863,this.words[a]=s}return 0!==i&&(this.words[a]=i,this.length++),this},i.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},i.prototype.cmpn=function(e){var t,r=e<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)t=1;else{r&&(e=-e),n(e<=67108863,"Number is too big");var o=0|this.words[0];t=o===e?0:oe.length)return 1;if(this.length=0;r--){var n=0|this.words[r],o=0|e.words[r];if(n!==o){no&&(t=1);break}}return t},i.prototype.gtn=function(e){return 1===this.cmpn(e)},i.prototype.gt=function(e){return 1===this.cmp(e)},i.prototype.gten=function(e){return this.cmpn(e)>=0},i.prototype.gte=function(e){return this.cmp(e)>=0},i.prototype.ltn=function(e){return-1===this.cmpn(e)},i.prototype.lt=function(e){return-1===this.cmp(e)},i.prototype.lten=function(e){return this.cmpn(e)<=0},i.prototype.lte=function(e){return this.cmp(e)<=0},i.prototype.eqn=function(e){return 0===this.cmpn(e)},i.prototype.eq=function(e){return 0===this.cmp(e)},i.red=function(e){return new O(e)},i.prototype.toRed=function(e){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},i.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},i.prototype._forceRed=function(e){return this.red=e,this},i.prototype.forceRed=function(e){return n(!this.red,"Already a number in reduction context"),this._forceRed(e)},i.prototype.redAdd=function(e){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},i.prototype.redIAdd=function(e){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},i.prototype.redSub=function(e){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},i.prototype.redISub=function(e){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},i.prototype.redShl=function(e){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},i.prototype.redMul=function(e){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},i.prototype.redIMul=function(e){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},i.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},i.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},i.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},i.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},i.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},i.prototype.redPow=function(e){return n(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var v={k256:null,p224:null,p192:null,p25519:null};function b(e,t){this.name=e,this.p=new i(t,16),this.n=this.p.bitLength(),this.k=new i(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function y(){b.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function w(){b.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function _(){b.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function S(){b.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function O(e){if("string"==typeof e){var t=i._prime(e);this.m=t.p,this.prime=t}else n(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function k(e){O.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new i(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}b.prototype._tmp=function(){var e=new i(null);return e.words=new Array(Math.ceil(this.n/13)),e},b.prototype.ireduce=function(e){var t,r=e;do{this.split(r,this.tmp),t=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(t>this.n);var n=t0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},b.prototype.split=function(e,t){e.iushrn(this.n,0,t)},b.prototype.imulK=function(e){return e.imul(this.k)},o(y,b),y.prototype.split=function(e,t){for(var r=4194303,n=Math.min(e.length,9),o=0;o>>22,i=a}i>>>=22,e.words[o-10]=i,0===i&&e.length>10?e.length-=10:e.length-=9},y.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,r=0;r>>=26,e.words[r]=o,t=n}return 0!==t&&(e.words[e.length++]=t),e},i._prime=function(e){if(v[e])return v[e];var t;if("k256"===e)t=new y;else if("p224"===e)t=new w;else if("p192"===e)t=new _;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new S}return v[e]=t,t},O.prototype._verify1=function(e){n(0===e.negative,"red works only with positives"),n(e.red,"red works only with red numbers")},O.prototype._verify2=function(e,t){n(0==(e.negative|t.negative),"red works only with positives"),n(e.red&&e.red===t.red,"red works only with red numbers")},O.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},O.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},O.prototype.add=function(e,t){this._verify2(e,t);var r=e.add(t);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},O.prototype.iadd=function(e,t){this._verify2(e,t);var r=e.iadd(t);return r.cmp(this.m)>=0&&r.isub(this.m),r},O.prototype.sub=function(e,t){this._verify2(e,t);var r=e.sub(t);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},O.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},O.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},O.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},O.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},O.prototype.isqr=function(e){return this.imul(e,e.clone())},O.prototype.sqr=function(e){return this.mul(e,e)},O.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(n(t%2==1),3===t){var r=this.m.add(new i(1)).iushrn(2);return this.pow(e,r)}for(var o=this.m.subn(1),a=0;!o.isZero()&&0===o.andln(1);)a++,o.iushrn(1);n(!o.isZero());var s=new i(1).toRed(this),u=s.redNeg(),c=this.m.subn(1).iushrn(1),d=this.m.bitLength();for(d=new i(2*d*d).toRed(this);0!==this.pow(d,c).cmp(u);)d.redIAdd(u);for(var l=this.pow(d,o),f=this.pow(e,o.addn(1).iushrn(1)),h=this.pow(e,o),p=a;0!==h.cmp(s);){for(var m=h,g=0;0!==m.cmp(s);g++)m=m.redSqr();n(g=0;n--){for(var c=t.words[n],d=u-1;d>=0;d--){var l=c>>d&1;o!==r[0]&&(o=this.sqr(o)),0!==l||0!==a?(a<<=1,a|=l,(4==++s||0===n&&0===d)&&(o=this.mul(o,r[a]),s=0,a=0)):s=0}u=26}return o},O.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},O.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},i.mont=function(e){return new k(e)},o(k,O),k.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},k.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},k.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var r=e.imul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=r.isub(n).iushrn(this.shift),i=o;return o.cmp(this.m)>=0?i=o.isub(this.m):o.cmpn(0)<0&&(i=o.iadd(this.m)),i._forceRed(this)},k.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new i(0)._forceRed(this);var r=e.mul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=r.isub(n).iushrn(this.shift),a=o;return o.cmp(this.m)>=0?a=o.isub(this.m):o.cmpn(0)<0&&(a=o.iadd(this.m)),a._forceRed(this)},k.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e=r.nmd(e),this)},23482:(e,t,r)=>{"use strict";var n=r(35717),o=r(62318),i=r(79785),a=r(89072),s=r(71027);function u(e){s.call(this,"digest"),this._hash=e}n(u,s),u.prototype._update=function(e){this._hash.update(e)},u.prototype._final=function(){return this._hash.digest()},e.exports=function(e){return"md5"===(e=e.toLowerCase())?new o:"rmd160"===e||"ripemd160"===e?new i:new u(a(e))}},78028:(e,t,r)=>{var n=r(62318);e.exports=function(e){return(new n).update(e).digest()}},58355:(e,t,r)=>{"use strict";var n=r(35717),o=r(51031),i=r(71027),a=r(89509).Buffer,s=r(78028),u=r(79785),c=r(89072),d=a.alloc(128);function l(e,t){i.call(this,"digest"),"string"==typeof t&&(t=a.from(t));var r="sha512"===e||"sha384"===e?128:64;this._alg=e,this._key=t,t.length>r?t=("rmd160"===e?new u:c(e)).update(t).digest():t.length{"use strict";var n=r(35717),o=r(89509).Buffer,i=r(71027),a=o.alloc(128),s=64;function u(e,t){i.call(this,"digest"),"string"==typeof t&&(t=o.from(t)),this._alg=e,this._key=t,t.length>s?t=e(t):t.length{"use strict";t.randomBytes=t.rng=t.pseudoRandomBytes=t.prng=r(61798),t.createHash=t.Hash=r(23482),t.createHmac=t.Hmac=r(58355);var n=r(56042),o=Object.keys(n),i=["sha1","sha224","sha256","sha384","sha512","md5","rmd160"].concat(o);t.getHashes=function(){return i};var a=r(25632);t.pbkdf2=a.pbkdf2,t.pbkdf2Sync=a.pbkdf2Sync;var s=r(53614);t.Cipher=s.Cipher,t.createCipher=s.createCipher,t.Cipheriv=s.Cipheriv,t.createCipheriv=s.createCipheriv,t.Decipher=s.Decipher,t.createDecipher=s.createDecipher,t.Decipheriv=s.Decipheriv,t.createDecipheriv=s.createDecipheriv,t.getCiphers=s.getCiphers,t.listCiphers=s.listCiphers;var u=r(62607);t.DiffieHellmanGroup=u.DiffieHellmanGroup,t.createDiffieHellmanGroup=u.createDiffieHellmanGroup,t.getDiffieHellman=u.getDiffieHellman,t.createDiffieHellman=u.createDiffieHellman,t.DiffieHellman=u.DiffieHellman;var c=r(64743);t.createSign=c.createSign,t.Sign=c.Sign,t.createVerify=c.createVerify,t.Verify=c.Verify,t.createECDH=r(76393);var d=r(7900);t.publicEncrypt=d.publicEncrypt,t.privateEncrypt=d.privateEncrypt,t.publicDecrypt=d.publicDecrypt,t.privateDecrypt=d.privateDecrypt;var l=r(77963);t.randomFill=l.randomFill,t.randomFillSync=l.randomFillSync,t.createCredentials=function(){throw new Error(["sorry, createCredentials is not implemented yet","we accept pull requests","https://github.com/crypto-browserify/crypto-browserify"].join("\n"))},t.constants={DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8,NPN_ENABLED:1,ALPN_ENABLED:1,RSA_PKCS1_PADDING:1,RSA_SSLV23_PADDING:2,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_X931_PADDING:5,RSA_PKCS1_PSS_PADDING:6,POINT_CONVERSION_COMPRESSED:2,POINT_CONVERSION_UNCOMPRESSED:4,POINT_CONVERSION_HYBRID:6}},93776:function(e,t,r){var n;!function(o){"use strict";var i,a,s,u=9e15,c=1e9,d="0123456789abcdef",l="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",f="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",h={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-u,maxE:u,crypto:!1},p=!0,m="[DecimalError] ",g=m+"Invalid argument: ",v=m+"Precision limit exceeded",b=m+"crypto unavailable",y="[object Decimal]",w=Math.floor,_=Math.pow,S=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,O=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,k=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,A=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,P=1e7,M=l.length-1,E=f.length-1,C={toStringTag:y};function N(e){var t,r,n,o=e.length-1,i="",a=e[0];if(o>0){for(i+=a,t=1;tr)throw Error(g+e)}function R(e,t,r,n){var o,i,a,s;for(i=e[0];i>=10;i/=10)--t;return--t<0?(t+=7,o=0):(o=Math.ceil((t+1)/7),t%=7),i=_(10,7-t),s=e[o]%i|0,null==n?t<3?(0==t?s=s/100|0:1==t&&(s=s/10|0),a=r<4&&99999==s||r>3&&49999==s||5e4==s||0==s):a=(r<4&&s+1==i||r>3&&s+1==i/2)&&(e[o+1]/i/100|0)==_(10,t-2)-1||(s==i/2||0==s)&&0==(e[o+1]/i/100|0):t<4?(0==t?s=s/1e3|0:1==t?s=s/100|0:2==t&&(s=s/10|0),a=(n||r<4)&&9999==s||!n&&r>3&&4999==s):a=((n||r<4)&&s+1==i||!n&&r>3&&s+1==i/2)&&(e[o+1]/i/1e3|0)==_(10,t-3)-1,a}function I(e,t,r){for(var n,o,i=[0],a=0,s=e.length;ar-1&&(void 0===i[n+1]&&(i[n+1]=0),i[n+1]+=i[n]/r|0,i[n]%=r)}return i.reverse()}C.absoluteValue=C.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),j(e)},C.ceil=function(){return j(new this.constructor(this),this.e+1,2)},C.clampedTo=C.clamp=function(e,t){var r=this,n=r.constructor;if(e=new n(e),t=new n(t),!e.s||!t.s)return new n(NaN);if(e.gt(t))throw Error(g+t);return r.cmp(e)<0?e:r.cmp(t)>0?t:new n(r)},C.comparedTo=C.cmp=function(e){var t,r,n,o,i=this,a=i.d,s=(e=new i.constructor(e)).d,u=i.s,c=e.s;if(!a||!s)return u&&c?u!==c?u:a===s?0:!a^u<0?1:-1:NaN;if(!a[0]||!s[0])return a[0]?u:s[0]?-c:0;if(u!==c)return u;if(i.e!==e.e)return i.e>e.e^u<0?1:-1;for(t=0,r=(n=a.length)<(o=s.length)?n:o;ts[t]^u<0?1:-1;return n===o?0:n>o^u<0?1:-1},C.cosine=C.cos=function(){var e,t,r=this,n=r.constructor;return r.d?r.d[0]?(e=n.precision,t=n.rounding,n.precision=e+Math.max(r.e,r.sd())+7,n.rounding=1,r=function(e,t){var r,n,o;if(t.isZero())return t;(n=t.d.length)<32?o=(1/$(4,r=Math.ceil(n/3))).toString():(r=16,o="2.3283064365386962890625e-10"),e.precision+=r,t=Y(e,1,t.times(o),new e(1));for(var i=r;i--;){var a=t.times(t);t=a.times(a).minus(a).times(8).plus(1)}return e.precision-=r,t}(n,X(n,r)),n.precision=e,n.rounding=t,j(2==s||3==s?r.neg():r,e,t,!0)):new n(1):new n(NaN)},C.cubeRoot=C.cbrt=function(){var e,t,r,n,o,i,a,s,u,c,d=this,l=d.constructor;if(!d.isFinite()||d.isZero())return new l(d);for(p=!1,(i=d.s*_(d.s*d,1/3))&&Math.abs(i)!=1/0?n=new l(i.toString()):(r=N(d.d),(i=((e=d.e)-r.length+1)%3)&&(r+=1==i||-2==i?"0":"00"),i=_(r,1/3),e=w((e+1)/3)-(e%3==(e<0?-1:2)),(n=new l(r=i==1/0?"5e"+e:(r=i.toExponential()).slice(0,r.indexOf("e")+1)+e)).s=d.s),a=(e=l.precision)+3;;)if(c=(u=(s=n).times(s).times(s)).plus(d),n=T(c.plus(d).times(s),c.plus(u),a+2,1),N(s.d).slice(0,a)===(r=N(n.d)).slice(0,a)){if("9999"!=(r=r.slice(a-3,a+1))&&(o||"4999"!=r)){+r&&(+r.slice(1)||"5"!=r.charAt(0))||(j(n,e+1,1),t=!n.times(n).times(n).eq(d));break}if(!o&&(j(s,e+1,0),s.times(s).times(s).eq(d))){n=s;break}a+=4,o=1}return p=!0,j(n,e,l.rounding,t)},C.decimalPlaces=C.dp=function(){var e,t=this.d,r=NaN;if(t){if(r=7*((e=t.length-1)-w(this.e/7)),e=t[e])for(;e%10==0;e/=10)r--;r<0&&(r=0)}return r},C.dividedBy=C.div=function(e){return T(this,new this.constructor(e))},C.dividedToIntegerBy=C.divToInt=function(e){var t=this.constructor;return j(T(this,new t(e),0,1,1),t.precision,t.rounding)},C.equals=C.eq=function(e){return 0===this.cmp(e)},C.floor=function(){return j(new this.constructor(this),this.e+1,3)},C.greaterThan=C.gt=function(e){return this.cmp(e)>0},C.greaterThanOrEqualTo=C.gte=function(e){var t=this.cmp(e);return 1==t||0===t},C.hyperbolicCosine=C.cosh=function(){var e,t,r,n,o,i=this,a=i.constructor,s=new a(1);if(!i.isFinite())return new a(i.s?1/0:NaN);if(i.isZero())return s;r=a.precision,n=a.rounding,a.precision=r+Math.max(i.e,i.sd())+4,a.rounding=1,(o=i.d.length)<32?t=(1/$(4,e=Math.ceil(o/3))).toString():(e=16,t="2.3283064365386962890625e-10"),i=Y(a,1,i.times(t),new a(1),!0);for(var u,c=e,d=new a(8);c--;)u=i.times(i),i=s.minus(u.times(d.minus(u.times(d))));return j(i,a.precision=r,a.rounding=n,!0)},C.hyperbolicSine=C.sinh=function(){var e,t,r,n,o=this,i=o.constructor;if(!o.isFinite()||o.isZero())return new i(o);if(t=i.precision,r=i.rounding,i.precision=t+Math.max(o.e,o.sd())+4,i.rounding=1,(n=o.d.length)<3)o=Y(i,2,o,o,!0);else{e=(e=1.4*Math.sqrt(n))>16?16:0|e,o=Y(i,2,o=o.times(1/$(5,e)),o,!0);for(var a,s=new i(5),u=new i(16),c=new i(20);e--;)a=o.times(o),o=o.times(s.plus(a.times(u.times(a).plus(c))))}return i.precision=t,i.rounding=r,j(o,t,r,!0)},C.hyperbolicTangent=C.tanh=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+7,n.rounding=1,T(r.sinh(),r.cosh(),n.precision=e,n.rounding=t)):new n(r.s)},C.inverseCosine=C.acos=function(){var e,t=this,r=t.constructor,n=t.abs().cmp(1),o=r.precision,i=r.rounding;return-1!==n?0===n?t.isNeg()?J(r,o,i):new r(0):new r(NaN):t.isZero()?J(r,o+4,i).times(.5):(r.precision=o+6,r.rounding=1,t=t.asin(),e=J(r,o+4,i).times(.5),r.precision=o,r.rounding=i,e.minus(t))},C.inverseHyperbolicCosine=C.acosh=function(){var e,t,r=this,n=r.constructor;return r.lte(1)?new n(r.eq(1)?0:NaN):r.isFinite()?(e=n.precision,t=n.rounding,n.precision=e+Math.max(Math.abs(r.e),r.sd())+4,n.rounding=1,p=!1,r=r.times(r).minus(1).sqrt().plus(r),p=!0,n.precision=e,n.rounding=t,r.ln()):new n(r)},C.inverseHyperbolicSine=C.asinh=function(){var e,t,r=this,n=r.constructor;return!r.isFinite()||r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+2*Math.max(Math.abs(r.e),r.sd())+6,n.rounding=1,p=!1,r=r.times(r).plus(1).sqrt().plus(r),p=!0,n.precision=e,n.rounding=t,r.ln())},C.inverseHyperbolicTangent=C.atanh=function(){var e,t,r,n,o=this,i=o.constructor;return o.isFinite()?o.e>=0?new i(o.abs().eq(1)?o.s/0:o.isZero()?o:NaN):(e=i.precision,t=i.rounding,n=o.sd(),Math.max(n,e)<2*-o.e-1?j(new i(o),e,t,!0):(i.precision=r=n-o.e,o=T(o.plus(1),new i(1).minus(o),r+e,1),i.precision=e+4,i.rounding=1,o=o.ln(),i.precision=e,i.rounding=t,o.times(.5))):new i(NaN)},C.inverseSine=C.asin=function(){var e,t,r,n,o=this,i=o.constructor;return o.isZero()?new i(o):(t=o.abs().cmp(1),r=i.precision,n=i.rounding,-1!==t?0===t?((e=J(i,r+4,n).times(.5)).s=o.s,e):new i(NaN):(i.precision=r+6,i.rounding=1,o=o.div(new i(1).minus(o.times(o)).sqrt().plus(1)).atan(),i.precision=r,i.rounding=n,o.times(2)))},C.inverseTangent=C.atan=function(){var e,t,r,n,o,i,a,s,u,c=this,d=c.constructor,l=d.precision,f=d.rounding;if(c.isFinite()){if(c.isZero())return new d(c);if(c.abs().eq(1)&&l+4<=E)return(a=J(d,l+4,f).times(.25)).s=c.s,a}else{if(!c.s)return new d(NaN);if(l+4<=E)return(a=J(d,l+4,f).times(.5)).s=c.s,a}for(d.precision=s=l+10,d.rounding=1,e=r=Math.min(28,s/7+2|0);e;--e)c=c.div(c.times(c).plus(1).sqrt().plus(1));for(p=!1,t=Math.ceil(s/7),n=1,u=c.times(c),a=new d(c),o=c;-1!==e;)if(o=o.times(u),i=a.minus(o.div(n+=2)),o=o.times(u),void 0!==(a=i.plus(o.div(n+=2))).d[t])for(e=t;a.d[e]===i.d[e]&&e--;);return r&&(a=a.times(2<this.d.length-2},C.isNaN=function(){return!this.s},C.isNegative=C.isNeg=function(){return this.s<0},C.isPositive=C.isPos=function(){return this.s>0},C.isZero=function(){return!!this.d&&0===this.d[0]},C.lessThan=C.lt=function(e){return this.cmp(e)<0},C.lessThanOrEqualTo=C.lte=function(e){return this.cmp(e)<1},C.logarithm=C.log=function(e){var t,r,n,o,i,a,s,u,c=this,d=c.constructor,l=d.precision,f=d.rounding;if(null==e)e=new d(10),t=!0;else{if(r=(e=new d(e)).d,e.s<0||!r||!r[0]||e.eq(1))return new d(NaN);t=e.eq(10)}if(r=c.d,c.s<0||!r||!r[0]||c.eq(1))return new d(r&&!r[0]?-1/0:1!=c.s?NaN:r?0:1/0);if(t)if(r.length>1)i=!0;else{for(o=r[0];o%10==0;)o/=10;i=1!==o}if(p=!1,a=Z(c,s=l+5),n=t?U(d,s+10):Z(e,s),R((u=T(a,n,s,1)).d,o=l,f))do{if(a=Z(c,s+=10),n=t?U(d,s+10):Z(e,s),u=T(a,n,s,1),!i){+N(u.d).slice(o+1,o+15)+1==1e14&&(u=j(u,l+1,0));break}}while(R(u.d,o+=10,f));return p=!0,j(u,l,f)},C.minus=C.sub=function(e){var t,r,n,o,i,a,s,u,c,d,l,f,h=this,m=h.constructor;if(e=new m(e),!h.d||!e.d)return h.s&&e.s?h.d?e.s=-e.s:e=new m(e.d||h.s!==e.s?h:NaN):e=new m(NaN),e;if(h.s!=e.s)return e.s=-e.s,h.plus(e);if(c=h.d,f=e.d,s=m.precision,u=m.rounding,!c[0]||!f[0]){if(f[0])e.s=-e.s;else{if(!c[0])return new m(3===u?-0:0);e=new m(h)}return p?j(e,s,u):e}if(r=w(e.e/7),d=w(h.e/7),c=c.slice(),i=d-r){for((l=i<0)?(t=c,i=-i,a=f.length):(t=f,r=d,a=c.length),i>(n=Math.max(Math.ceil(s/7),a)+2)&&(i=n,t.length=1),t.reverse(),n=i;n--;)t.push(0);t.reverse()}else{for((l=(n=c.length)<(a=f.length))&&(a=n),n=0;n0;--n)c[a++]=0;for(n=f.length;n>i;){if(c[--n](a=(i=Math.ceil(s/7))>a?i+1:a+1)&&(o=a,r.length=1),r.reverse();o--;)r.push(0);r.reverse()}for((a=c.length)-(o=d.length)<0&&(o=a,r=d,d=c,c=r),t=0;o;)t=(c[--o]=c[o]+d[o]+t)/P|0,c[o]%=P;for(t&&(c.unshift(t),++n),a=c.length;0==c[--a];)c.pop();return e.d=c,e.e=B(c,n),p?j(e,s,u):e},C.precision=C.sd=function(e){var t,r=this;if(void 0!==e&&e!==!!e&&1!==e&&0!==e)throw Error(g+e);return r.d?(t=H(r.d),e&&r.e+1>t&&(t=r.e+1)):t=NaN,t},C.round=function(){var e=this,t=e.constructor;return j(new t(e),e.e+1,t.rounding)},C.sine=C.sin=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+Math.max(r.e,r.sd())+7,n.rounding=1,r=function(e,t){var r,n=t.d.length;if(n<3)return t.isZero()?t:Y(e,2,t,t);r=(r=1.4*Math.sqrt(n))>16?16:0|r,t=Y(e,2,t=t.times(1/$(5,r)),t);for(var o,i=new e(5),a=new e(16),s=new e(20);r--;)o=t.times(t),t=t.times(i.plus(o.times(a.times(o).minus(s))));return t}(n,X(n,r)),n.precision=e,n.rounding=t,j(s>2?r.neg():r,e,t,!0)):new n(NaN)},C.squareRoot=C.sqrt=function(){var e,t,r,n,o,i,a=this,s=a.d,u=a.e,c=a.s,d=a.constructor;if(1!==c||!s||!s[0])return new d(!c||c<0&&(!s||s[0])?NaN:s?a:1/0);for(p=!1,0==(c=Math.sqrt(+a))||c==1/0?(((t=N(s)).length+u)%2==0&&(t+="0"),c=Math.sqrt(t),u=w((u+1)/2)-(u<0||u%2),n=new d(t=c==1/0?"5e"+u:(t=c.toExponential()).slice(0,t.indexOf("e")+1)+u)):n=new d(c.toString()),r=(u=d.precision)+3;;)if(n=(i=n).plus(T(a,i,r+2,1)).times(.5),N(i.d).slice(0,r)===(t=N(n.d)).slice(0,r)){if("9999"!=(t=t.slice(r-3,r+1))&&(o||"4999"!=t)){+t&&(+t.slice(1)||"5"!=t.charAt(0))||(j(n,u+1,1),e=!n.times(n).eq(a));break}if(!o&&(j(i,u+1,0),i.times(i).eq(a))){n=i;break}r+=4,o=1}return p=!0,j(n,u,d.rounding,e)},C.tangent=C.tan=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+10,n.rounding=1,(r=r.sin()).s=1,r=T(r,new n(1).minus(r.times(r)).sqrt(),e+10,0),n.precision=e,n.rounding=t,j(2==s||4==s?r.neg():r,e,t,!0)):new n(NaN)},C.times=C.mul=function(e){var t,r,n,o,i,a,s,u,c,d=this,l=d.constructor,f=d.d,h=(e=new l(e)).d;if(e.s*=d.s,!(f&&f[0]&&h&&h[0]))return new l(!e.s||f&&!f[0]&&!h||h&&!h[0]&&!f?NaN:f&&h?0*e.s:e.s/0);for(r=w(d.e/7)+w(e.e/7),(u=f.length)<(c=h.length)&&(i=f,f=h,h=i,a=u,u=c,c=a),i=[],n=a=u+c;n--;)i.push(0);for(n=c;--n>=0;){for(t=0,o=u+n;o>n;)s=i[o]+h[n]*f[o-n-1]+t,i[o--]=s%P|0,t=s/P|0;i[o]=(i[o]+t)%P|0}for(;!i[--a];)i.pop();return t?++r:i.shift(),e.d=i,e.e=B(i,r),p?j(e,l.precision,l.rounding):e},C.toBinary=function(e,t){return Q(this,2,e,t)},C.toDecimalPlaces=C.toDP=function(e,t){var r=this,n=r.constructor;return r=new n(r),void 0===e?r:(x(e,0,c),void 0===t?t=n.rounding:x(t,0,8),j(r,e+r.e+1,t))},C.toExponential=function(e,t){var r,n=this,o=n.constructor;return void 0===e?r=D(n,!0):(x(e,0,c),void 0===t?t=o.rounding:x(t,0,8),r=D(n=j(new o(n),e+1,t),!0,e+1)),n.isNeg()&&!n.isZero()?"-"+r:r},C.toFixed=function(e,t){var r,n,o=this,i=o.constructor;return void 0===e?r=D(o):(x(e,0,c),void 0===t?t=i.rounding:x(t,0,8),r=D(n=j(new i(o),e+o.e+1,t),!1,e+n.e+1)),o.isNeg()&&!o.isZero()?"-"+r:r},C.toFraction=function(e){var t,r,n,o,i,a,s,u,c,d,l,f,h=this,m=h.d,v=h.constructor;if(!m)return new v(h);if(c=r=new v(1),n=u=new v(0),a=(i=(t=new v(n)).e=H(m)-h.e-1)%7,t.d[0]=_(10,a<0?7+a:a),null==e)e=i>0?t:c;else{if(!(s=new v(e)).isInt()||s.lt(c))throw Error(g+s);e=s.gt(t)?i>0?t:c:s}for(p=!1,s=new v(N(m)),d=v.precision,v.precision=i=7*m.length*2;l=T(s,t,0,1,1),1!=(o=r.plus(l.times(n))).cmp(e);)r=n,n=o,o=c,c=u.plus(l.times(o)),u=o,o=t,t=s.minus(l.times(o)),s=o;return o=T(e.minus(r),n,0,1,1),u=u.plus(o.times(c)),r=r.plus(o.times(n)),u.s=c.s=h.s,f=T(c,n,i,1).minus(h).abs().cmp(T(u,r,i,1).minus(h).abs())<1?[c,n]:[u,r],v.precision=d,p=!0,f},C.toHexadecimal=C.toHex=function(e,t){return Q(this,16,e,t)},C.toNearest=function(e,t){var r=this,n=r.constructor;if(r=new n(r),null==e){if(!r.d)return r;e=new n(1),t=n.rounding}else{if(e=new n(e),void 0===t?t=n.rounding:x(t,0,8),!r.d)return e.s?r:e;if(!e.d)return e.s&&(e.s=r.s),e}return e.d[0]?(p=!1,r=T(r,e,0,t,1).times(e),p=!0,j(r)):(e.s=r.s,r=e),r},C.toNumber=function(){return+this},C.toOctal=function(e,t){return Q(this,8,e,t)},C.toPower=C.pow=function(e){var t,r,n,o,i,a,s=this,u=s.constructor,c=+(e=new u(e));if(!(s.d&&e.d&&s.d[0]&&e.d[0]))return new u(_(+s,c));if((s=new u(s)).eq(1))return s;if(n=u.precision,i=u.rounding,e.eq(1))return j(s,n,i);if((t=w(e.e/7))>=e.d.length-1&&(r=c<0?-c:c)<=9007199254740991)return o=z(u,s,r,n),e.s<0?new u(1).div(o):j(o,n,i);if((a=s.s)<0){if(tu.maxE+1||t0?a/0:0):(p=!1,u.rounding=s.s=1,r=Math.min(12,(t+"").length),(o=F(e.times(Z(s,n+r)),n)).d&&R((o=j(o,n+5,1)).d,n,i)&&(t=n+10,+N((o=j(F(e.times(Z(s,t+r)),t),t+5,1)).d).slice(n+1,n+15)+1==1e14&&(o=j(o,n+1,0))),o.s=a,p=!0,u.rounding=i,j(o,n,i))},C.toPrecision=function(e,t){var r,n=this,o=n.constructor;return void 0===e?r=D(n,n.e<=o.toExpNeg||n.e>=o.toExpPos):(x(e,1,c),void 0===t?t=o.rounding:x(t,0,8),r=D(n=j(new o(n),e,t),e<=n.e||n.e<=o.toExpNeg,e)),n.isNeg()&&!n.isZero()?"-"+r:r},C.toSignificantDigits=C.toSD=function(e,t){var r=this.constructor;return void 0===e?(e=r.precision,t=r.rounding):(x(e,1,c),void 0===t?t=r.rounding:x(t,0,8)),j(new r(this),e,t)},C.toString=function(){var e=this,t=e.constructor,r=D(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()&&!e.isZero()?"-"+r:r},C.truncated=C.trunc=function(){return j(new this.constructor(this),this.e+1,1)},C.valueOf=C.toJSON=function(){var e=this,t=e.constructor,r=D(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()?"-"+r:r};var T=function(){function e(e,t,r){var n,o=0,i=e.length;for(e=e.slice();i--;)n=e[i]*t+o,e[i]=n%r|0,o=n/r|0;return o&&e.unshift(o),e}function t(e,t,r,n){var o,i;if(r!=n)i=r>n?1:-1;else for(o=i=0;ot[o]?1:-1;break}return i}function r(e,t,r,n){for(var o=0;r--;)e[r]-=o,o=e[r]1;)e.shift()}return function(n,o,i,s,u,c){var d,l,f,h,p,m,g,v,b,y,_,S,O,k,A,M,E,C,N,x,R=n.constructor,I=n.s==o.s?1:-1,T=n.d,D=o.d;if(!(T&&T[0]&&D&&D[0]))return new R(n.s&&o.s&&(T?!D||T[0]!=D[0]:D)?T&&0==T[0]||!D?0*I:I/0:NaN);for(c?(p=1,l=n.e-o.e):(c=P,p=7,l=w(n.e/p)-w(o.e/p)),N=D.length,E=T.length,y=(b=new R(I)).d=[],f=0;D[f]==(T[f]||0);f++);if(D[f]>(T[f]||0)&&l--,null==i?(k=i=R.precision,s=R.rounding):k=u?i+(n.e-o.e)+1:i,k<0)y.push(1),m=!0;else{if(k=k/p+2|0,f=0,1==N){for(h=0,D=D[0],k++;(f1&&(D=e(D,h,c),T=e(T,h,c),N=D.length,E=T.length),M=N,S=(_=T.slice(0,N)).length;S=c/2&&++C;do{h=0,(d=t(D,_,N,S))<0?(O=_[0],N!=S&&(O=O*c+(_[1]||0)),(h=O/C|0)>1?(h>=c&&(h=c-1),1==(d=t(g=e(D,h,c),_,v=g.length,S=_.length))&&(h--,r(g,N=10;h/=10)f++;b.e=f+l*p-1,j(b,u?i+b.e+1:i,s,m)}return b}}();function j(e,t,r,n){var o,i,a,s,u,c,d,l,f,h=e.constructor;e:if(null!=t){if(!(l=e.d))return e;for(o=1,s=l[0];s>=10;s/=10)o++;if((i=t-o)<0)i+=7,a=t,u=(d=l[f=0])/_(10,o-a-1)%10|0;else if((f=Math.ceil((i+1)/7))>=(s=l.length)){if(!n)break e;for(;s++<=f;)l.push(0);d=u=0,o=1,a=(i%=7)-7+1}else{for(d=s=l[f],o=1;s>=10;s/=10)o++;u=(a=(i%=7)-7+o)<0?0:d/_(10,o-a-1)%10|0}if(n=n||t<0||void 0!==l[f+1]||(a<0?d:d%_(10,o-a-1)),c=r<4?(u||n)&&(0==r||r==(e.s<0?3:2)):u>5||5==u&&(4==r||n||6==r&&(i>0?a>0?d/_(10,o-a):0:l[f-1])%10&1||r==(e.s<0?8:7)),t<1||!l[0])return l.length=0,c?(t-=e.e+1,l[0]=_(10,(7-t%7)%7),e.e=-t||0):l[0]=e.e=0,e;if(0==i?(l.length=f,s=1,f--):(l.length=f+1,s=_(10,7-i),l[f]=a>0?(d/_(10,o-a)%_(10,a)|0)*s:0),c)for(;;){if(0==f){for(i=1,a=l[0];a>=10;a/=10)i++;for(a=l[0]+=s,s=1;a>=10;a/=10)s++;i!=s&&(e.e++,l[0]==P&&(l[0]=1));break}if(l[f]+=s,l[f]!=P)break;l[f--]=0,s=1}for(i=l.length;0===l[--i];)l.pop()}return p&&(e.e>h.maxE?(e.d=null,e.e=NaN):e.e0?i=i.charAt(0)+"."+i.slice(1)+L(n):a>1&&(i=i.charAt(0)+"."+i.slice(1)),i=i+(e.e<0?"e":"e+")+e.e):o<0?(i="0."+L(-o-1)+i,r&&(n=r-a)>0&&(i+=L(n))):o>=a?(i+=L(o+1-a),r&&(n=r-o-1)>0&&(i=i+"."+L(n))):((n=o+1)0&&(o+1===a&&(i+="."),i+=L(n))),i}function B(e,t){var r=e[0];for(t*=7;r>=10;r/=10)t++;return t}function U(e,t,r){if(t>M)throw p=!0,r&&(e.precision=r),Error(v);return j(new e(l),t,1,!0)}function J(e,t,r){if(t>E)throw Error(v);return j(new e(f),t,r,!0)}function H(e){var t=e.length-1,r=7*t+1;if(t=e[t]){for(;t%10==0;t/=10)r--;for(t=e[0];t>=10;t/=10)r++}return r}function L(e){for(var t="";e--;)t+="0";return t}function z(e,t,r,n){var o,i=new e(1),a=Math.ceil(n/7+4);for(p=!1;;){if(r%2&&ee((i=i.times(t)).d,a)&&(o=!0),0===(r=w(r/2))){r=i.d.length-1,o&&0===i.d[r]&&++i.d[r];break}ee((t=t.times(t)).d,a)}return p=!0,i}function V(e){return 1&e.d[e.d.length-1]}function q(e,t,r){for(var n,o=new e(t[0]),i=0;++i17)return new f(e.d?e.d[0]?e.s<0?0:1/0:1:e.s?e.s<0?0:e:NaN);for(null==t?(p=!1,u=m):u=t,s=new f(.03125);e.e>-2;)e=e.times(s),l+=5;for(u+=n=Math.log(_(2,l))/Math.LN10*2+5|0,r=i=a=new f(1),f.precision=u;;){if(i=j(i.times(e),u,1),r=r.times(++d),N((s=a.plus(T(i,r,u,1))).d).slice(0,u)===N(a.d).slice(0,u)){for(o=l;o--;)a=j(a.times(a),u,1);if(null!=t)return f.precision=m,a;if(!(c<3&&R(a.d,u-n,h,c)))return j(a,f.precision=m,h,p=!0);f.precision=u+=10,r=i=s=new f(1),d=0,c++}a=s}}function Z(e,t){var r,n,o,i,a,s,u,c,d,l,f,h=1,m=e,g=m.d,v=m.constructor,b=v.rounding,y=v.precision;if(m.s<0||!g||!g[0]||!m.e&&1==g[0]&&1==g.length)return new v(g&&!g[0]?-1/0:1!=m.s?NaN:g?0:m);if(null==t?(p=!1,d=y):d=t,v.precision=d+=10,n=(r=N(g)).charAt(0),!(Math.abs(i=m.e)<15e14))return c=U(v,d+2,y).times(i+""),m=Z(new v(n+"."+r.slice(1)),d-10).plus(c),v.precision=y,null==t?j(m,y,b,p=!0):m;for(;n<7&&1!=n||1==n&&r.charAt(1)>3;)n=(r=N((m=m.times(e)).d)).charAt(0),h++;for(i=m.e,n>1?(m=new v("0."+r),i++):m=new v(n+"."+r.slice(1)),l=m,u=a=m=T(m.minus(1),m.plus(1),d,1),f=j(m.times(m),d,1),o=3;;){if(a=j(a.times(f),d,1),N((c=u.plus(T(a,new v(o),d,1))).d).slice(0,d)===N(u.d).slice(0,d)){if(u=u.times(2),0!==i&&(u=u.plus(U(v,d+2,y).times(i+""))),u=T(u,new v(h),d,1),null!=t)return v.precision=y,u;if(!R(u.d,d-10,b,s))return j(u,v.precision=y,b,p=!0);v.precision=d+=10,c=a=m=T(l.minus(1),l.plus(1),d,1),f=j(m.times(m),d,1),o=s=1}u=c,o+=2}}function W(e){return String(e.s*e.s/0)}function K(e,t){var r,n,o;for((r=t.indexOf("."))>-1&&(t=t.replace(".","")),(n=t.search(/e/i))>0?(r<0&&(r=n),r+=+t.slice(n+1),t=t.substring(0,n)):r<0&&(r=t.length),n=0;48===t.charCodeAt(n);n++);for(o=t.length;48===t.charCodeAt(o-1);--o);if(t=t.slice(n,o)){if(o-=n,e.e=r=r-n-1,e.d=[],n=(r+1)%7,r<0&&(n+=7),ne.constructor.maxE?(e.d=null,e.e=NaN):e.e-1){if(t=t.replace(/(\d)_(?=\d)/g,"$1"),A.test(t))return K(e,t)}else if("Infinity"===t||"NaN"===t)return+t||(e.s=NaN),e.e=NaN,e.d=null,e;if(O.test(t))r=16,t=t.toLowerCase();else if(S.test(t))r=2;else{if(!k.test(t))throw Error(g+t);r=8}for((a=t.search(/p/i))>0?(c=+t.slice(a+1),t=t.substring(2,a)):t=t.slice(2),s=(a=t.indexOf("."))>=0,n=e.constructor,s&&(a=(u=(t=t.replace(".","")).length)-a,o=z(n,new n(r),a,2*a)),a=l=(d=I(t,r,P)).length-1;0===d[a];--a)d.pop();return a<0?new n(0*e.s):(e.e=B(d,l),e.d=d,p=!1,s&&(e=T(e,o,4*u)),c&&(e=e.times(Math.abs(c)<54?_(2,c):i.pow(2,c))),p=!0,e)}function Y(e,t,r,n,o){var i,a,s,u,c=e.precision,d=Math.ceil(c/7);for(p=!1,u=r.times(r),s=new e(n);;){if(a=T(s.times(u),new e(t++*t++),c,1),s=o?n.plus(a):n.minus(a),n=T(a.times(u),new e(t++*t++),c,1),void 0!==(a=s.plus(n)).d[d]){for(i=d;a.d[i]===s.d[i]&&i--;);if(-1==i)break}i=s,s=n,n=a,a=i}return p=!0,a.d.length=d+1,a}function $(e,t){for(var r=e;--t;)r*=e;return r}function X(e,t){var r,n=t.s<0,o=J(e,e.precision,1),i=o.times(.5);if((t=t.abs()).lte(i))return s=n?4:1,t;if((r=t.divToInt(o)).isZero())s=n?3:2;else{if((t=t.minus(r.times(o))).lte(i))return s=V(r)?n?2:3:n?4:1,t;s=V(r)?n?1:4:n?3:2}return t.minus(o).abs()}function Q(e,t,r,n){var o,i,s,u,l,f,h,p,m,g=e.constructor,v=void 0!==r;if(v?(x(r,1,c),void 0===n?n=g.rounding:x(n,0,8)):(r=g.precision,n=g.rounding),e.isFinite()){for(v?(o=2,16==t?r=4*r-3:8==t&&(r=3*r-2)):o=t,(s=(h=D(e)).indexOf("."))>=0&&(h=h.replace(".",""),(m=new g(1)).e=h.length-s,m.d=I(D(m),10,o),m.e=m.d.length),i=l=(p=I(h,10,o)).length;0==p[--l];)p.pop();if(p[0]){if(s<0?i--:((e=new g(e)).d=p,e.e=i,p=(e=T(e,m,r,n,0,o)).d,i=e.e,f=a),s=p[r],u=o/2,f=f||void 0!==p[r+1],f=n<4?(void 0!==s||f)&&(0===n||n===(e.s<0?3:2)):s>u||s===u&&(4===n||f||6===n&&1&p[r-1]||n===(e.s<0?8:7)),p.length=r,f)for(;++p[--r]>o-1;)p[r]=0,r||(++i,p.unshift(1));for(l=p.length;!p[l-1];--l);for(s=0,h="";s1)if(16==t||8==t){for(s=16==t?4:3,--l;l%s;l++)h+="0";for(l=(p=I(h,o,t)).length;!p[l-1];--l);for(s=1,h="1.";sl)for(i-=l;i--;)h+="0";else it)return e.length=t,!0}function te(e){return new this(e).abs()}function re(e){return new this(e).acos()}function ne(e){return new this(e).acosh()}function oe(e,t){return new this(e).plus(t)}function ie(e){return new this(e).asin()}function ae(e){return new this(e).asinh()}function se(e){return new this(e).atan()}function ue(e){return new this(e).atanh()}function ce(e,t){e=new this(e),t=new this(t);var r,n=this.precision,o=this.rounding,i=n+4;return e.s&&t.s?e.d||t.d?!t.d||e.isZero()?(r=t.s<0?J(this,n,o):new this(0)).s=e.s:!e.d||t.isZero()?(r=J(this,i,1).times(.5)).s=e.s:t.s<0?(this.precision=i,this.rounding=1,r=this.atan(T(e,t,i,1)),t=J(this,i,1),this.precision=n,this.rounding=o,r=e.s<0?r.minus(t):r.plus(t)):r=this.atan(T(e,t,i,1)):(r=J(this,i,1).times(t.s>0?.25:.75)).s=e.s:r=new this(NaN),r}function de(e){return new this(e).cbrt()}function le(e){return j(e=new this(e),e.e+1,2)}function fe(e,t,r){return new this(e).clamp(t,r)}function he(e){if(!e||"object"!=typeof e)throw Error(m+"Object expected");var t,r,n,o=!0===e.defaults,i=["precision",1,c,"rounding",0,8,"toExpNeg",-u,0,"toExpPos",0,u,"maxE",0,u,"minE",-u,0,"modulo",0,9];for(t=0;t=i[t+1]&&n<=i[t+2]))throw Error(g+r+": "+n);this[r]=n}if(r="crypto",o&&(this[r]=h[r]),void 0!==(n=e[r])){if(!0!==n&&!1!==n&&0!==n&&1!==n)throw Error(g+r+": "+n);if(n){if("undefined"==typeof crypto||!crypto||!crypto.getRandomValues&&!crypto.randomBytes)throw Error(b);this[r]=!0}else this[r]=!1}return this}function pe(e){return new this(e).cos()}function me(e){return new this(e).cosh()}function ge(e,t){return new this(e).div(t)}function ve(e){return new this(e).exp()}function be(e){return j(e=new this(e),e.e+1,3)}function ye(){var e,t,r=new this(0);for(p=!1,e=0;e=429e7?t[i]=crypto.getRandomValues(new Uint32Array(1))[0]:s[i++]=o%1e7;else{if(!crypto.randomBytes)throw Error(b);for(t=crypto.randomBytes(n*=4);i=214e7?crypto.randomBytes(4).copy(t,i):(s.push(o%1e7),i+=4);i=n/4}else for(;i=10;o/=10)n++;n<7&&(r-=7-n)}return a.e=r,a.d=s,a}function xe(e){return j(e=new this(e),e.e+1,this.rounding)}function Re(e){return(e=new this(e)).d?e.d[0]?e.s:0*e.s:e.s||NaN}function Ie(e){return new this(e).sin()}function Te(e){return new this(e).sinh()}function je(e){return new this(e).sqrt()}function De(e,t){return new this(e).sub(t)}function Be(){var e=0,t=arguments,r=new this(t[e]);for(p=!1;r.s&&++ei.maxE?(o.e=NaN,o.d=null):e.e=10;r/=10)t++;return void(p?t>i.maxE?(o.e=NaN,o.d=null):t{"use strict";t.utils=r(11278),t.Cipher=r(55756),t.DES=r(70778),t.CBC=r(39051),t.EDE=r(50651)},39051:(e,t,r)=>{"use strict";var n=r(79746),o=r(35717),i={};function a(e){n.equal(e.length,8,"Invalid IV length"),this.iv=new Array(8);for(var t=0;t{"use strict";var n=r(79746);function o(e){this.options=e,this.type=this.options.type,this.blockSize=8,this._init(),this.buffer=new Array(this.blockSize),this.bufferOff=0}e.exports=o,o.prototype._init=function(){},o.prototype.update=function(e){return 0===e.length?[]:"decrypt"===this.type?this._updateDecrypt(e):this._updateEncrypt(e)},o.prototype._buffer=function(e,t){for(var r=Math.min(this.buffer.length-this.bufferOff,e.length-t),n=0;n0;n--)t+=this._buffer(e,t),r+=this._flushBuffer(o,r);return t+=this._buffer(e,t),o},o.prototype.final=function(e){var t,r;return e&&(t=this.update(e)),r="encrypt"===this.type?this._finalEncrypt():this._finalDecrypt(),t?t.concat(r):r},o.prototype._pad=function(e,t){if(0===t)return!1;for(;t{"use strict";var n=r(79746),o=r(35717),i=r(11278),a=r(55756);function s(){this.tmp=new Array(2),this.keys=null}function u(e){a.call(this,e);var t=new s;this._desState=t,this.deriveKeys(t,e.key)}o(u,a),e.exports=u,u.create=function(e){return new u(e)};var c=[1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1];u.prototype.deriveKeys=function(e,t){e.keys=new Array(32),n.equal(t.length,this.blockSize,"Invalid key length");var r=i.readUInt32BE(t,0),o=i.readUInt32BE(t,4);i.pc1(r,o,e.tmp,0),r=e.tmp[0],o=e.tmp[1];for(var a=0;a>>1];r=i.r28shl(r,s),o=i.r28shl(o,s),i.pc2(r,o,e.keys,a)}},u.prototype._update=function(e,t,r,n){var o=this._desState,a=i.readUInt32BE(e,t),s=i.readUInt32BE(e,t+4);i.ip(a,s,o.tmp,0),a=o.tmp[0],s=o.tmp[1],"encrypt"===this.type?this._encrypt(o,a,s,o.tmp,0):this._decrypt(o,a,s,o.tmp,0),a=o.tmp[0],s=o.tmp[1],i.writeUInt32BE(r,a,n),i.writeUInt32BE(r,s,n+4)},u.prototype._pad=function(e,t){for(var r=e.length-t,n=t;n>>0,a=f}i.rip(s,a,n,o)},u.prototype._decrypt=function(e,t,r,n,o){for(var a=r,s=t,u=e.keys.length-2;u>=0;u-=2){var c=e.keys[u],d=e.keys[u+1];i.expand(a,e.tmp,0),c^=e.tmp[0],d^=e.tmp[1];var l=i.substitute(c,d),f=a;a=(s^i.permute(l))>>>0,s=f}i.rip(a,s,n,o)}},50651:(e,t,r)=>{"use strict";var n=r(79746),o=r(35717),i=r(55756),a=r(70778);function s(e,t){n.equal(t.length,24,"Invalid key length");var r=t.slice(0,8),o=t.slice(8,16),i=t.slice(16,24);this.ciphers="encrypt"===e?[a.create({type:"encrypt",key:r}),a.create({type:"decrypt",key:o}),a.create({type:"encrypt",key:i})]:[a.create({type:"decrypt",key:i}),a.create({type:"encrypt",key:o}),a.create({type:"decrypt",key:r})]}function u(e){i.call(this,e);var t=new s(this.type,this.options.key);this._edeState=t}o(u,i),e.exports=u,u.create=function(e){return new u(e)},u.prototype._update=function(e,t,r,n){var o=this._edeState;o.ciphers[0]._update(e,t,r,n),o.ciphers[1]._update(r,n,r,n),o.ciphers[2]._update(r,n,r,n)},u.prototype._pad=a.prototype._pad,u.prototype._unpad=a.prototype._unpad},11278:(e,t)=>{"use strict";t.readUInt32BE=function(e,t){return(e[0+t]<<24|e[1+t]<<16|e[2+t]<<8|e[3+t])>>>0},t.writeUInt32BE=function(e,t,r){e[0+r]=t>>>24,e[1+r]=t>>>16&255,e[2+r]=t>>>8&255,e[3+r]=255&t},t.ip=function(e,t,r,n){for(var o=0,i=0,a=6;a>=0;a-=2){for(var s=0;s<=24;s+=8)o<<=1,o|=t>>>s+a&1;for(s=0;s<=24;s+=8)o<<=1,o|=e>>>s+a&1}for(a=6;a>=0;a-=2){for(s=1;s<=25;s+=8)i<<=1,i|=t>>>s+a&1;for(s=1;s<=25;s+=8)i<<=1,i|=e>>>s+a&1}r[n+0]=o>>>0,r[n+1]=i>>>0},t.rip=function(e,t,r,n){for(var o=0,i=0,a=0;a<4;a++)for(var s=24;s>=0;s-=8)o<<=1,o|=t>>>s+a&1,o<<=1,o|=e>>>s+a&1;for(a=4;a<8;a++)for(s=24;s>=0;s-=8)i<<=1,i|=t>>>s+a&1,i<<=1,i|=e>>>s+a&1;r[n+0]=o>>>0,r[n+1]=i>>>0},t.pc1=function(e,t,r,n){for(var o=0,i=0,a=7;a>=5;a--){for(var s=0;s<=24;s+=8)o<<=1,o|=t>>s+a&1;for(s=0;s<=24;s+=8)o<<=1,o|=e>>s+a&1}for(s=0;s<=24;s+=8)o<<=1,o|=t>>s+a&1;for(a=1;a<=3;a++){for(s=0;s<=24;s+=8)i<<=1,i|=t>>s+a&1;for(s=0;s<=24;s+=8)i<<=1,i|=e>>s+a&1}for(s=0;s<=24;s+=8)i<<=1,i|=e>>s+a&1;r[n+0]=o>>>0,r[n+1]=i>>>0},t.r28shl=function(e,t){return e<>>28-t};var r=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];t.pc2=function(e,t,n,o){for(var i=0,a=0,s=r.length>>>1,u=0;u>>r[u]&1;for(u=s;u>>r[u]&1;n[o+0]=i>>>0,n[o+1]=a>>>0},t.expand=function(e,t,r){var n=0,o=0;n=(1&e)<<5|e>>>27;for(var i=23;i>=15;i-=4)n<<=6,n|=e>>>i&63;for(i=11;i>=3;i-=4)o|=e>>>i&63,o<<=6;o|=(31&e)<<1|e>>>31,t[r+0]=n>>>0,t[r+1]=o>>>0};var n=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];t.substitute=function(e,t){for(var r=0,o=0;o<4;o++)r<<=4,r|=n[64*o+(e>>>18-6*o&63)];for(o=0;o<4;o++)r<<=4,r|=n[256+64*o+(t>>>18-6*o&63)];return r>>>0};var o=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];t.permute=function(e){for(var t=0,r=0;r>>o[r]&1;return t>>>0},t.padSplit=function(e,t,r){for(var n=e.toString(2);n.length{var n=r(48764).Buffer,o=r(43590),i=r(29799),a=r(57426),s={binary:!0,hex:!0,base64:!0};t.DiffieHellmanGroup=t.createDiffieHellmanGroup=t.getDiffieHellman=function(e){var t=new n(i[e].prime,"hex"),r=new n(i[e].gen,"hex");return new a(t,r)},t.createDiffieHellman=t.DiffieHellman=function e(t,r,i,u){return n.isBuffer(r)||void 0===s[r]?e(t,"binary",r,i):(r=r||"binary",u=u||"binary",i=i||new n([2]),n.isBuffer(i)||(i=new n(i,u)),"number"==typeof t?new a(o(t,i),i,!0):(n.isBuffer(t)||(t=new n(t,r)),new a(t,i,!0)))}},57426:(e,t,r)=>{var n=r(48764).Buffer,o=r(83620),i=new(r(63047)),a=new o(24),s=new o(11),u=new o(10),c=new o(3),d=new o(7),l=r(43590),f=r(61798);function h(e,t){return t=t||"utf8",n.isBuffer(e)||(e=new n(e,t)),this._pub=new o(e),this}function p(e,t){return t=t||"utf8",n.isBuffer(e)||(e=new n(e,t)),this._priv=new o(e),this}e.exports=g;var m={};function g(e,t,r){this.setGenerator(t),this.__prime=new o(e),this._prime=o.mont(this.__prime),this._primeLen=e.length,this._pub=void 0,this._priv=void 0,this._primeCode=void 0,r?(this.setPublicKey=h,this.setPrivateKey=p):this._primeCode=8}function v(e,t){var r=new n(e.toArray());return t?r.toString(t):r}Object.defineProperty(g.prototype,"verifyError",{enumerable:!0,get:function(){return"number"!=typeof this._primeCode&&(this._primeCode=function(e,t){var r=t.toString("hex"),n=[r,e.toString(16)].join("_");if(n in m)return m[n];var o,f=0;if(e.isEven()||!l.simpleSieve||!l.fermatTest(e)||!i.test(e))return f+=1,f+="02"===r||"05"===r?8:4,m[n]=f,f;switch(i.test(e.shrn(1))||(f+=2),r){case"02":e.mod(a).cmp(s)&&(f+=8);break;case"05":(o=e.mod(u)).cmp(c)&&o.cmp(d)&&(f+=8);break;default:f+=4}return m[n]=f,f}(this.__prime,this.__gen)),this._primeCode}}),g.prototype.generateKeys=function(){return this._priv||(this._priv=new o(f(this._primeLen))),this._pub=this._gen.toRed(this._prime).redPow(this._priv).fromRed(),this.getPublicKey()},g.prototype.computeSecret=function(e){var t=(e=(e=new o(e)).toRed(this._prime)).redPow(this._priv).fromRed(),r=new n(t.toArray()),i=this.getPrime();if(r.length{var n=r(61798);e.exports=b,b.simpleSieve=g,b.fermatTest=v;var o=r(83620),i=new o(24),a=new(r(63047)),s=new o(1),u=new o(2),c=new o(5),d=(new o(16),new o(8),new o(10)),l=new o(3),f=(new o(7),new o(11)),h=new o(4),p=(new o(12),null);function m(){if(null!==p)return p;var e=[];e[0]=2;for(var t=1,r=3;r<1048576;r+=2){for(var n=Math.ceil(Math.sqrt(r)),o=0;oe;)r.ishrn(1);if(r.isEven()&&r.iadd(s),r.testn(1)||r.iadd(u),t.cmp(u)){if(!t.cmp(c))for(;r.mod(d).cmp(l);)r.iadd(h)}else for(;r.mod(i).cmp(f);)r.iadd(h);if(g(p=r.shrn(1))&&g(r)&&v(p)&&v(r)&&a.test(p)&&a.test(r))return r}}},83620:function(e,t,r){!function(e,t){"use strict";function n(e,t){if(!e)throw new Error(t||"Assertion failed")}function o(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}function i(e,t,r){if(i.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(r=t,t=10),this._init(e||0,t||10,r||"be"))}var a;"object"==typeof e?e.exports=i:t.BN=i,i.BN=i,i.wordSize=26;try{a="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:r(7748).Buffer}catch(e){}function s(e,t){var r=e.charCodeAt(t);return r>=65&&r<=70?r-55:r>=97&&r<=102?r-87:r-48&15}function u(e,t,r){var n=s(e,r);return r-1>=t&&(n|=s(e,r-1)<<4),n}function c(e,t,r,n){for(var o=0,i=Math.min(e.length,r),a=t;a=49?s-49+10:s>=17?s-17+10:s}return o}i.isBN=function(e){return e instanceof i||null!==e&&"object"==typeof e&&e.constructor.wordSize===i.wordSize&&Array.isArray(e.words)},i.max=function(e,t){return e.cmp(t)>0?e:t},i.min=function(e,t){return e.cmp(t)<0?e:t},i.prototype._init=function(e,t,r){if("number"==typeof e)return this._initNumber(e,t,r);if("object"==typeof e)return this._initArray(e,t,r);"hex"===t&&(t=16),n(t===(0|t)&&t>=2&&t<=36);var o=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(o++,this.negative=1),o=0;o-=3)a=e[o]|e[o-1]<<8|e[o-2]<<16,this.words[i]|=a<>>26-s&67108863,(s+=24)>=26&&(s-=26,i++);else if("le"===r)for(o=0,i=0;o>>26-s&67108863,(s+=24)>=26&&(s-=26,i++);return this.strip()},i.prototype._parseHex=function(e,t,r){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var n=0;n=t;n-=2)o=u(e,t,n)<=18?(i-=18,a+=1,this.words[a]|=o>>>26):i+=8;else for(n=(e.length-t)%2==0?t+1:t;n=18?(i-=18,a+=1,this.words[a]|=o>>>26):i+=8;this.strip()},i.prototype._parseBase=function(e,t,r){this.words=[0],this.length=1;for(var n=0,o=1;o<=67108863;o*=t)n++;n--,o=o/t|0;for(var i=e.length-r,a=i%n,s=Math.min(i,i-a)+r,u=0,d=r;d1&&0===this.words[this.length-1];)this.length--;return this._normSign()},i.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},i.prototype.inspect=function(){return(this.red?""};var d=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],l=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],f=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function h(e,t,r){r.negative=t.negative^e.negative;var n=e.length+t.length|0;r.length=n,n=n-1|0;var o=0|e.words[0],i=0|t.words[0],a=o*i,s=67108863&a,u=a/67108864|0;r.words[0]=s;for(var c=1;c>>26,l=67108863&u,f=Math.min(c,t.length-1),h=Math.max(0,c-e.length+1);h<=f;h++){var p=c-h|0;d+=(a=(o=0|e.words[p])*(i=0|t.words[h])+l)/67108864|0,l=67108863&a}r.words[c]=0|l,u=0|d}return 0!==u?r.words[c]=0|u:r.length--,r.strip()}i.prototype.toString=function(e,t){var r;if(t=0|t||1,16===(e=e||10)||"hex"===e){r="";for(var o=0,i=0,a=0;a>>24-o&16777215)||a!==this.length-1?d[6-u.length]+u+r:u+r,(o+=2)>=26&&(o-=26,a--)}for(0!==i&&(r=i.toString(16)+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(e===(0|e)&&e>=2&&e<=36){var c=l[e],h=f[e];r="";var p=this.clone();for(p.negative=0;!p.isZero();){var m=p.modn(h).toString(e);r=(p=p.idivn(h)).isZero()?m+r:d[c-m.length]+m+r}for(this.isZero()&&(r="0"+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}n(!1,"Base should be between 2 and 36")},i.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},i.prototype.toJSON=function(){return this.toString(16)},i.prototype.toBuffer=function(e,t){return n(void 0!==a),this.toArrayLike(a,e,t)},i.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},i.prototype.toArrayLike=function(e,t,r){var o=this.byteLength(),i=r||Math.max(1,o);n(o<=i,"byte array longer than desired length"),n(i>0,"Requested array length <= 0"),this.strip();var a,s,u="le"===t,c=new e(i),d=this.clone();if(u){for(s=0;!d.isZero();s++)a=d.andln(255),d.iushrn(8),c[s]=a;for(;s=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},i.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,r=0;return 0==(8191&t)&&(r+=13,t>>>=13),0==(127&t)&&(r+=7,t>>>=7),0==(15&t)&&(r+=4,t>>>=4),0==(3&t)&&(r+=2,t>>>=2),0==(1&t)&&r++,r},i.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},i.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;te.length?this.clone().ior(e):e.clone().ior(this)},i.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},i.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var r=0;re.length?this.clone().iand(e):e.clone().iand(this)},i.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},i.prototype.iuxor=function(e){var t,r;this.length>e.length?(t=this,r=e):(t=e,r=this);for(var n=0;ne.length?this.clone().ixor(e):e.clone().ixor(this)},i.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},i.prototype.inotn=function(e){n("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),r=e%26;this._expand(t),r>0&&t--;for(var o=0;o0&&(this.words[o]=~this.words[o]&67108863>>26-r),this.strip()},i.prototype.notn=function(e){return this.clone().inotn(e)},i.prototype.setn=function(e,t){n("number"==typeof e&&e>=0);var r=e/26|0,o=e%26;return this._expand(r+1),this.words[r]=t?this.words[r]|1<e.length?(r=this,n=e):(r=e,n=this);for(var o=0,i=0;i>>26;for(;0!==o&&i>>26;if(this.length=r.length,0!==o)this.words[this.length]=o,this.length++;else if(r!==this)for(;ie.length?this.clone().iadd(e):e.clone().iadd(this)},i.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var r,n,o=this.cmp(e);if(0===o)return this.negative=0,this.length=1,this.words[0]=0,this;o>0?(r=this,n=e):(r=e,n=this);for(var i=0,a=0;a>26,this.words[a]=67108863&t;for(;0!==i&&a>26,this.words[a]=67108863&t;if(0===i&&a>>13,h=0|a[1],p=8191&h,m=h>>>13,g=0|a[2],v=8191&g,b=g>>>13,y=0|a[3],w=8191&y,_=y>>>13,S=0|a[4],O=8191&S,k=S>>>13,A=0|a[5],P=8191&A,M=A>>>13,E=0|a[6],C=8191&E,N=E>>>13,x=0|a[7],R=8191&x,I=x>>>13,T=0|a[8],j=8191&T,D=T>>>13,B=0|a[9],U=8191&B,J=B>>>13,H=0|s[0],L=8191&H,z=H>>>13,V=0|s[1],q=8191&V,F=V>>>13,Z=0|s[2],W=8191&Z,K=Z>>>13,G=0|s[3],Y=8191&G,$=G>>>13,X=0|s[4],Q=8191&X,ee=X>>>13,te=0|s[5],re=8191&te,ne=te>>>13,oe=0|s[6],ie=8191&oe,ae=oe>>>13,se=0|s[7],ue=8191&se,ce=se>>>13,de=0|s[8],le=8191&de,fe=de>>>13,he=0|s[9],pe=8191&he,me=he>>>13;r.negative=e.negative^t.negative,r.length=19;var ge=(c+(n=Math.imul(l,L))|0)+((8191&(o=(o=Math.imul(l,z))+Math.imul(f,L)|0))<<13)|0;c=((i=Math.imul(f,z))+(o>>>13)|0)+(ge>>>26)|0,ge&=67108863,n=Math.imul(p,L),o=(o=Math.imul(p,z))+Math.imul(m,L)|0,i=Math.imul(m,z);var ve=(c+(n=n+Math.imul(l,q)|0)|0)+((8191&(o=(o=o+Math.imul(l,F)|0)+Math.imul(f,q)|0))<<13)|0;c=((i=i+Math.imul(f,F)|0)+(o>>>13)|0)+(ve>>>26)|0,ve&=67108863,n=Math.imul(v,L),o=(o=Math.imul(v,z))+Math.imul(b,L)|0,i=Math.imul(b,z),n=n+Math.imul(p,q)|0,o=(o=o+Math.imul(p,F)|0)+Math.imul(m,q)|0,i=i+Math.imul(m,F)|0;var be=(c+(n=n+Math.imul(l,W)|0)|0)+((8191&(o=(o=o+Math.imul(l,K)|0)+Math.imul(f,W)|0))<<13)|0;c=((i=i+Math.imul(f,K)|0)+(o>>>13)|0)+(be>>>26)|0,be&=67108863,n=Math.imul(w,L),o=(o=Math.imul(w,z))+Math.imul(_,L)|0,i=Math.imul(_,z),n=n+Math.imul(v,q)|0,o=(o=o+Math.imul(v,F)|0)+Math.imul(b,q)|0,i=i+Math.imul(b,F)|0,n=n+Math.imul(p,W)|0,o=(o=o+Math.imul(p,K)|0)+Math.imul(m,W)|0,i=i+Math.imul(m,K)|0;var ye=(c+(n=n+Math.imul(l,Y)|0)|0)+((8191&(o=(o=o+Math.imul(l,$)|0)+Math.imul(f,Y)|0))<<13)|0;c=((i=i+Math.imul(f,$)|0)+(o>>>13)|0)+(ye>>>26)|0,ye&=67108863,n=Math.imul(O,L),o=(o=Math.imul(O,z))+Math.imul(k,L)|0,i=Math.imul(k,z),n=n+Math.imul(w,q)|0,o=(o=o+Math.imul(w,F)|0)+Math.imul(_,q)|0,i=i+Math.imul(_,F)|0,n=n+Math.imul(v,W)|0,o=(o=o+Math.imul(v,K)|0)+Math.imul(b,W)|0,i=i+Math.imul(b,K)|0,n=n+Math.imul(p,Y)|0,o=(o=o+Math.imul(p,$)|0)+Math.imul(m,Y)|0,i=i+Math.imul(m,$)|0;var we=(c+(n=n+Math.imul(l,Q)|0)|0)+((8191&(o=(o=o+Math.imul(l,ee)|0)+Math.imul(f,Q)|0))<<13)|0;c=((i=i+Math.imul(f,ee)|0)+(o>>>13)|0)+(we>>>26)|0,we&=67108863,n=Math.imul(P,L),o=(o=Math.imul(P,z))+Math.imul(M,L)|0,i=Math.imul(M,z),n=n+Math.imul(O,q)|0,o=(o=o+Math.imul(O,F)|0)+Math.imul(k,q)|0,i=i+Math.imul(k,F)|0,n=n+Math.imul(w,W)|0,o=(o=o+Math.imul(w,K)|0)+Math.imul(_,W)|0,i=i+Math.imul(_,K)|0,n=n+Math.imul(v,Y)|0,o=(o=o+Math.imul(v,$)|0)+Math.imul(b,Y)|0,i=i+Math.imul(b,$)|0,n=n+Math.imul(p,Q)|0,o=(o=o+Math.imul(p,ee)|0)+Math.imul(m,Q)|0,i=i+Math.imul(m,ee)|0;var _e=(c+(n=n+Math.imul(l,re)|0)|0)+((8191&(o=(o=o+Math.imul(l,ne)|0)+Math.imul(f,re)|0))<<13)|0;c=((i=i+Math.imul(f,ne)|0)+(o>>>13)|0)+(_e>>>26)|0,_e&=67108863,n=Math.imul(C,L),o=(o=Math.imul(C,z))+Math.imul(N,L)|0,i=Math.imul(N,z),n=n+Math.imul(P,q)|0,o=(o=o+Math.imul(P,F)|0)+Math.imul(M,q)|0,i=i+Math.imul(M,F)|0,n=n+Math.imul(O,W)|0,o=(o=o+Math.imul(O,K)|0)+Math.imul(k,W)|0,i=i+Math.imul(k,K)|0,n=n+Math.imul(w,Y)|0,o=(o=o+Math.imul(w,$)|0)+Math.imul(_,Y)|0,i=i+Math.imul(_,$)|0,n=n+Math.imul(v,Q)|0,o=(o=o+Math.imul(v,ee)|0)+Math.imul(b,Q)|0,i=i+Math.imul(b,ee)|0,n=n+Math.imul(p,re)|0,o=(o=o+Math.imul(p,ne)|0)+Math.imul(m,re)|0,i=i+Math.imul(m,ne)|0;var Se=(c+(n=n+Math.imul(l,ie)|0)|0)+((8191&(o=(o=o+Math.imul(l,ae)|0)+Math.imul(f,ie)|0))<<13)|0;c=((i=i+Math.imul(f,ae)|0)+(o>>>13)|0)+(Se>>>26)|0,Se&=67108863,n=Math.imul(R,L),o=(o=Math.imul(R,z))+Math.imul(I,L)|0,i=Math.imul(I,z),n=n+Math.imul(C,q)|0,o=(o=o+Math.imul(C,F)|0)+Math.imul(N,q)|0,i=i+Math.imul(N,F)|0,n=n+Math.imul(P,W)|0,o=(o=o+Math.imul(P,K)|0)+Math.imul(M,W)|0,i=i+Math.imul(M,K)|0,n=n+Math.imul(O,Y)|0,o=(o=o+Math.imul(O,$)|0)+Math.imul(k,Y)|0,i=i+Math.imul(k,$)|0,n=n+Math.imul(w,Q)|0,o=(o=o+Math.imul(w,ee)|0)+Math.imul(_,Q)|0,i=i+Math.imul(_,ee)|0,n=n+Math.imul(v,re)|0,o=(o=o+Math.imul(v,ne)|0)+Math.imul(b,re)|0,i=i+Math.imul(b,ne)|0,n=n+Math.imul(p,ie)|0,o=(o=o+Math.imul(p,ae)|0)+Math.imul(m,ie)|0,i=i+Math.imul(m,ae)|0;var Oe=(c+(n=n+Math.imul(l,ue)|0)|0)+((8191&(o=(o=o+Math.imul(l,ce)|0)+Math.imul(f,ue)|0))<<13)|0;c=((i=i+Math.imul(f,ce)|0)+(o>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,n=Math.imul(j,L),o=(o=Math.imul(j,z))+Math.imul(D,L)|0,i=Math.imul(D,z),n=n+Math.imul(R,q)|0,o=(o=o+Math.imul(R,F)|0)+Math.imul(I,q)|0,i=i+Math.imul(I,F)|0,n=n+Math.imul(C,W)|0,o=(o=o+Math.imul(C,K)|0)+Math.imul(N,W)|0,i=i+Math.imul(N,K)|0,n=n+Math.imul(P,Y)|0,o=(o=o+Math.imul(P,$)|0)+Math.imul(M,Y)|0,i=i+Math.imul(M,$)|0,n=n+Math.imul(O,Q)|0,o=(o=o+Math.imul(O,ee)|0)+Math.imul(k,Q)|0,i=i+Math.imul(k,ee)|0,n=n+Math.imul(w,re)|0,o=(o=o+Math.imul(w,ne)|0)+Math.imul(_,re)|0,i=i+Math.imul(_,ne)|0,n=n+Math.imul(v,ie)|0,o=(o=o+Math.imul(v,ae)|0)+Math.imul(b,ie)|0,i=i+Math.imul(b,ae)|0,n=n+Math.imul(p,ue)|0,o=(o=o+Math.imul(p,ce)|0)+Math.imul(m,ue)|0,i=i+Math.imul(m,ce)|0;var ke=(c+(n=n+Math.imul(l,le)|0)|0)+((8191&(o=(o=o+Math.imul(l,fe)|0)+Math.imul(f,le)|0))<<13)|0;c=((i=i+Math.imul(f,fe)|0)+(o>>>13)|0)+(ke>>>26)|0,ke&=67108863,n=Math.imul(U,L),o=(o=Math.imul(U,z))+Math.imul(J,L)|0,i=Math.imul(J,z),n=n+Math.imul(j,q)|0,o=(o=o+Math.imul(j,F)|0)+Math.imul(D,q)|0,i=i+Math.imul(D,F)|0,n=n+Math.imul(R,W)|0,o=(o=o+Math.imul(R,K)|0)+Math.imul(I,W)|0,i=i+Math.imul(I,K)|0,n=n+Math.imul(C,Y)|0,o=(o=o+Math.imul(C,$)|0)+Math.imul(N,Y)|0,i=i+Math.imul(N,$)|0,n=n+Math.imul(P,Q)|0,o=(o=o+Math.imul(P,ee)|0)+Math.imul(M,Q)|0,i=i+Math.imul(M,ee)|0,n=n+Math.imul(O,re)|0,o=(o=o+Math.imul(O,ne)|0)+Math.imul(k,re)|0,i=i+Math.imul(k,ne)|0,n=n+Math.imul(w,ie)|0,o=(o=o+Math.imul(w,ae)|0)+Math.imul(_,ie)|0,i=i+Math.imul(_,ae)|0,n=n+Math.imul(v,ue)|0,o=(o=o+Math.imul(v,ce)|0)+Math.imul(b,ue)|0,i=i+Math.imul(b,ce)|0,n=n+Math.imul(p,le)|0,o=(o=o+Math.imul(p,fe)|0)+Math.imul(m,le)|0,i=i+Math.imul(m,fe)|0;var Ae=(c+(n=n+Math.imul(l,pe)|0)|0)+((8191&(o=(o=o+Math.imul(l,me)|0)+Math.imul(f,pe)|0))<<13)|0;c=((i=i+Math.imul(f,me)|0)+(o>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,n=Math.imul(U,q),o=(o=Math.imul(U,F))+Math.imul(J,q)|0,i=Math.imul(J,F),n=n+Math.imul(j,W)|0,o=(o=o+Math.imul(j,K)|0)+Math.imul(D,W)|0,i=i+Math.imul(D,K)|0,n=n+Math.imul(R,Y)|0,o=(o=o+Math.imul(R,$)|0)+Math.imul(I,Y)|0,i=i+Math.imul(I,$)|0,n=n+Math.imul(C,Q)|0,o=(o=o+Math.imul(C,ee)|0)+Math.imul(N,Q)|0,i=i+Math.imul(N,ee)|0,n=n+Math.imul(P,re)|0,o=(o=o+Math.imul(P,ne)|0)+Math.imul(M,re)|0,i=i+Math.imul(M,ne)|0,n=n+Math.imul(O,ie)|0,o=(o=o+Math.imul(O,ae)|0)+Math.imul(k,ie)|0,i=i+Math.imul(k,ae)|0,n=n+Math.imul(w,ue)|0,o=(o=o+Math.imul(w,ce)|0)+Math.imul(_,ue)|0,i=i+Math.imul(_,ce)|0,n=n+Math.imul(v,le)|0,o=(o=o+Math.imul(v,fe)|0)+Math.imul(b,le)|0,i=i+Math.imul(b,fe)|0;var Pe=(c+(n=n+Math.imul(p,pe)|0)|0)+((8191&(o=(o=o+Math.imul(p,me)|0)+Math.imul(m,pe)|0))<<13)|0;c=((i=i+Math.imul(m,me)|0)+(o>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,n=Math.imul(U,W),o=(o=Math.imul(U,K))+Math.imul(J,W)|0,i=Math.imul(J,K),n=n+Math.imul(j,Y)|0,o=(o=o+Math.imul(j,$)|0)+Math.imul(D,Y)|0,i=i+Math.imul(D,$)|0,n=n+Math.imul(R,Q)|0,o=(o=o+Math.imul(R,ee)|0)+Math.imul(I,Q)|0,i=i+Math.imul(I,ee)|0,n=n+Math.imul(C,re)|0,o=(o=o+Math.imul(C,ne)|0)+Math.imul(N,re)|0,i=i+Math.imul(N,ne)|0,n=n+Math.imul(P,ie)|0,o=(o=o+Math.imul(P,ae)|0)+Math.imul(M,ie)|0,i=i+Math.imul(M,ae)|0,n=n+Math.imul(O,ue)|0,o=(o=o+Math.imul(O,ce)|0)+Math.imul(k,ue)|0,i=i+Math.imul(k,ce)|0,n=n+Math.imul(w,le)|0,o=(o=o+Math.imul(w,fe)|0)+Math.imul(_,le)|0,i=i+Math.imul(_,fe)|0;var Me=(c+(n=n+Math.imul(v,pe)|0)|0)+((8191&(o=(o=o+Math.imul(v,me)|0)+Math.imul(b,pe)|0))<<13)|0;c=((i=i+Math.imul(b,me)|0)+(o>>>13)|0)+(Me>>>26)|0,Me&=67108863,n=Math.imul(U,Y),o=(o=Math.imul(U,$))+Math.imul(J,Y)|0,i=Math.imul(J,$),n=n+Math.imul(j,Q)|0,o=(o=o+Math.imul(j,ee)|0)+Math.imul(D,Q)|0,i=i+Math.imul(D,ee)|0,n=n+Math.imul(R,re)|0,o=(o=o+Math.imul(R,ne)|0)+Math.imul(I,re)|0,i=i+Math.imul(I,ne)|0,n=n+Math.imul(C,ie)|0,o=(o=o+Math.imul(C,ae)|0)+Math.imul(N,ie)|0,i=i+Math.imul(N,ae)|0,n=n+Math.imul(P,ue)|0,o=(o=o+Math.imul(P,ce)|0)+Math.imul(M,ue)|0,i=i+Math.imul(M,ce)|0,n=n+Math.imul(O,le)|0,o=(o=o+Math.imul(O,fe)|0)+Math.imul(k,le)|0,i=i+Math.imul(k,fe)|0;var Ee=(c+(n=n+Math.imul(w,pe)|0)|0)+((8191&(o=(o=o+Math.imul(w,me)|0)+Math.imul(_,pe)|0))<<13)|0;c=((i=i+Math.imul(_,me)|0)+(o>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,n=Math.imul(U,Q),o=(o=Math.imul(U,ee))+Math.imul(J,Q)|0,i=Math.imul(J,ee),n=n+Math.imul(j,re)|0,o=(o=o+Math.imul(j,ne)|0)+Math.imul(D,re)|0,i=i+Math.imul(D,ne)|0,n=n+Math.imul(R,ie)|0,o=(o=o+Math.imul(R,ae)|0)+Math.imul(I,ie)|0,i=i+Math.imul(I,ae)|0,n=n+Math.imul(C,ue)|0,o=(o=o+Math.imul(C,ce)|0)+Math.imul(N,ue)|0,i=i+Math.imul(N,ce)|0,n=n+Math.imul(P,le)|0,o=(o=o+Math.imul(P,fe)|0)+Math.imul(M,le)|0,i=i+Math.imul(M,fe)|0;var Ce=(c+(n=n+Math.imul(O,pe)|0)|0)+((8191&(o=(o=o+Math.imul(O,me)|0)+Math.imul(k,pe)|0))<<13)|0;c=((i=i+Math.imul(k,me)|0)+(o>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,n=Math.imul(U,re),o=(o=Math.imul(U,ne))+Math.imul(J,re)|0,i=Math.imul(J,ne),n=n+Math.imul(j,ie)|0,o=(o=o+Math.imul(j,ae)|0)+Math.imul(D,ie)|0,i=i+Math.imul(D,ae)|0,n=n+Math.imul(R,ue)|0,o=(o=o+Math.imul(R,ce)|0)+Math.imul(I,ue)|0,i=i+Math.imul(I,ce)|0,n=n+Math.imul(C,le)|0,o=(o=o+Math.imul(C,fe)|0)+Math.imul(N,le)|0,i=i+Math.imul(N,fe)|0;var Ne=(c+(n=n+Math.imul(P,pe)|0)|0)+((8191&(o=(o=o+Math.imul(P,me)|0)+Math.imul(M,pe)|0))<<13)|0;c=((i=i+Math.imul(M,me)|0)+(o>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,n=Math.imul(U,ie),o=(o=Math.imul(U,ae))+Math.imul(J,ie)|0,i=Math.imul(J,ae),n=n+Math.imul(j,ue)|0,o=(o=o+Math.imul(j,ce)|0)+Math.imul(D,ue)|0,i=i+Math.imul(D,ce)|0,n=n+Math.imul(R,le)|0,o=(o=o+Math.imul(R,fe)|0)+Math.imul(I,le)|0,i=i+Math.imul(I,fe)|0;var xe=(c+(n=n+Math.imul(C,pe)|0)|0)+((8191&(o=(o=o+Math.imul(C,me)|0)+Math.imul(N,pe)|0))<<13)|0;c=((i=i+Math.imul(N,me)|0)+(o>>>13)|0)+(xe>>>26)|0,xe&=67108863,n=Math.imul(U,ue),o=(o=Math.imul(U,ce))+Math.imul(J,ue)|0,i=Math.imul(J,ce),n=n+Math.imul(j,le)|0,o=(o=o+Math.imul(j,fe)|0)+Math.imul(D,le)|0,i=i+Math.imul(D,fe)|0;var Re=(c+(n=n+Math.imul(R,pe)|0)|0)+((8191&(o=(o=o+Math.imul(R,me)|0)+Math.imul(I,pe)|0))<<13)|0;c=((i=i+Math.imul(I,me)|0)+(o>>>13)|0)+(Re>>>26)|0,Re&=67108863,n=Math.imul(U,le),o=(o=Math.imul(U,fe))+Math.imul(J,le)|0,i=Math.imul(J,fe);var Ie=(c+(n=n+Math.imul(j,pe)|0)|0)+((8191&(o=(o=o+Math.imul(j,me)|0)+Math.imul(D,pe)|0))<<13)|0;c=((i=i+Math.imul(D,me)|0)+(o>>>13)|0)+(Ie>>>26)|0,Ie&=67108863;var Te=(c+(n=Math.imul(U,pe))|0)+((8191&(o=(o=Math.imul(U,me))+Math.imul(J,pe)|0))<<13)|0;return c=((i=Math.imul(J,me))+(o>>>13)|0)+(Te>>>26)|0,Te&=67108863,u[0]=ge,u[1]=ve,u[2]=be,u[3]=ye,u[4]=we,u[5]=_e,u[6]=Se,u[7]=Oe,u[8]=ke,u[9]=Ae,u[10]=Pe,u[11]=Me,u[12]=Ee,u[13]=Ce,u[14]=Ne,u[15]=xe,u[16]=Re,u[17]=Ie,u[18]=Te,0!==c&&(u[19]=c,r.length++),r};function m(e,t,r){return(new g).mulp(e,t,r)}function g(e,t){this.x=e,this.y=t}Math.imul||(p=h),i.prototype.mulTo=function(e,t){var r,n=this.length+e.length;return r=10===this.length&&10===e.length?p(this,e,t):n<63?h(this,e,t):n<1024?function(e,t,r){r.negative=t.negative^e.negative,r.length=e.length+t.length;for(var n=0,o=0,i=0;i>>26)|0)>>>26,a&=67108863}r.words[i]=s,n=a,a=o}return 0!==n?r.words[i]=n:r.length--,r.strip()}(this,e,t):m(this,e,t),r},g.prototype.makeRBT=function(e){for(var t=new Array(e),r=i.prototype._countBits(e)-1,n=0;n>=1;return n},g.prototype.permute=function(e,t,r,n,o,i){for(var a=0;a>>=1)o++;return 1<>>=13,r[2*a+1]=8191&i,i>>>=13;for(a=2*t;a>=26,t+=o/67108864|0,t+=i>>>26,this.words[r]=67108863&i}return 0!==t&&(this.words[r]=t,this.length++),this},i.prototype.muln=function(e){return this.clone().imuln(e)},i.prototype.sqr=function(){return this.mul(this)},i.prototype.isqr=function(){return this.imul(this.clone())},i.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),r=0;r>>o}return t}(e);if(0===t.length)return new i(1);for(var r=this,n=0;n=0);var t,r=e%26,o=(e-r)/26,i=67108863>>>26-r<<26-r;if(0!==r){var a=0;for(t=0;t>>26-r}a&&(this.words[t]=a,this.length++)}if(0!==o){for(t=this.length-1;t>=0;t--)this.words[t+o]=this.words[t];for(t=0;t=0),o=t?(t-t%26)/26:0;var i=e%26,a=Math.min((e-i)/26,this.length),s=67108863^67108863>>>i<a)for(this.length-=a,c=0;c=0&&(0!==d||c>=o);c--){var l=0|this.words[c];this.words[c]=d<<26-i|l>>>i,d=l&s}return u&&0!==d&&(u.words[u.length++]=d),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},i.prototype.ishrn=function(e,t,r){return n(0===this.negative),this.iushrn(e,t,r)},i.prototype.shln=function(e){return this.clone().ishln(e)},i.prototype.ushln=function(e){return this.clone().iushln(e)},i.prototype.shrn=function(e){return this.clone().ishrn(e)},i.prototype.ushrn=function(e){return this.clone().iushrn(e)},i.prototype.testn=function(e){n("number"==typeof e&&e>=0);var t=e%26,r=(e-t)/26,o=1<=0);var t=e%26,r=(e-t)/26;if(n(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==t&&r++,this.length=Math.min(r,this.length),0!==t){var o=67108863^67108863>>>t<=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},i.prototype.isubn=function(e){if(n("number"==typeof e),n(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t>26)-(u/67108864|0),this.words[o+r]=67108863&i}for(;o>26,this.words[o+r]=67108863&i;if(0===s)return this.strip();for(n(-1===s),s=0,o=0;o>26,this.words[o]=67108863&i;return this.negative=1,this.strip()},i.prototype._wordDiv=function(e,t){var r=(this.length,e.length),n=this.clone(),o=e,a=0|o.words[o.length-1];0!=(r=26-this._countBits(a))&&(o=o.ushln(r),n.iushln(r),a=0|o.words[o.length-1]);var s,u=n.length-o.length;if("mod"!==t){(s=new i(null)).length=u+1,s.words=new Array(s.length);for(var c=0;c=0;l--){var f=67108864*(0|n.words[o.length+l])+(0|n.words[o.length+l-1]);for(f=Math.min(f/a|0,67108863),n._ishlnsubmul(o,f,l);0!==n.negative;)f--,n.negative=0,n._ishlnsubmul(o,1,l),n.isZero()||(n.negative^=1);s&&(s.words[l]=f)}return s&&s.strip(),n.strip(),"div"!==t&&0!==r&&n.iushrn(r),{div:s||null,mod:n}},i.prototype.divmod=function(e,t,r){return n(!e.isZero()),this.isZero()?{div:new i(0),mod:new i(0)}:0!==this.negative&&0===e.negative?(s=this.neg().divmod(e,t),"mod"!==t&&(o=s.div.neg()),"div"!==t&&(a=s.mod.neg(),r&&0!==a.negative&&a.iadd(e)),{div:o,mod:a}):0===this.negative&&0!==e.negative?(s=this.divmod(e.neg(),t),"mod"!==t&&(o=s.div.neg()),{div:o,mod:s.mod}):0!=(this.negative&e.negative)?(s=this.neg().divmod(e.neg(),t),"div"!==t&&(a=s.mod.neg(),r&&0!==a.negative&&a.isub(e)),{div:s.div,mod:a}):e.length>this.length||this.cmp(e)<0?{div:new i(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new i(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new i(this.modn(e.words[0]))}:this._wordDiv(e,t);var o,a,s},i.prototype.div=function(e){return this.divmod(e,"div",!1).div},i.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},i.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},i.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var r=0!==t.div.negative?t.mod.isub(e):t.mod,n=e.ushrn(1),o=e.andln(1),i=r.cmp(n);return i<0||1===o&&0===i?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},i.prototype.modn=function(e){n(e<=67108863);for(var t=(1<<26)%e,r=0,o=this.length-1;o>=0;o--)r=(t*r+(0|this.words[o]))%e;return r},i.prototype.idivn=function(e){n(e<=67108863);for(var t=0,r=this.length-1;r>=0;r--){var o=(0|this.words[r])+67108864*t;this.words[r]=o/e|0,t=o%e}return this.strip()},i.prototype.divn=function(e){return this.clone().idivn(e)},i.prototype.egcd=function(e){n(0===e.negative),n(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var o=new i(1),a=new i(0),s=new i(0),u=new i(1),c=0;t.isEven()&&r.isEven();)t.iushrn(1),r.iushrn(1),++c;for(var d=r.clone(),l=t.clone();!t.isZero();){for(var f=0,h=1;0==(t.words[0]&h)&&f<26;++f,h<<=1);if(f>0)for(t.iushrn(f);f-- >0;)(o.isOdd()||a.isOdd())&&(o.iadd(d),a.isub(l)),o.iushrn(1),a.iushrn(1);for(var p=0,m=1;0==(r.words[0]&m)&&p<26;++p,m<<=1);if(p>0)for(r.iushrn(p);p-- >0;)(s.isOdd()||u.isOdd())&&(s.iadd(d),u.isub(l)),s.iushrn(1),u.iushrn(1);t.cmp(r)>=0?(t.isub(r),o.isub(s),a.isub(u)):(r.isub(t),s.isub(o),u.isub(a))}return{a:s,b:u,gcd:r.iushln(c)}},i.prototype._invmp=function(e){n(0===e.negative),n(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var o,a=new i(1),s=new i(0),u=r.clone();t.cmpn(1)>0&&r.cmpn(1)>0;){for(var c=0,d=1;0==(t.words[0]&d)&&c<26;++c,d<<=1);if(c>0)for(t.iushrn(c);c-- >0;)a.isOdd()&&a.iadd(u),a.iushrn(1);for(var l=0,f=1;0==(r.words[0]&f)&&l<26;++l,f<<=1);if(l>0)for(r.iushrn(l);l-- >0;)s.isOdd()&&s.iadd(u),s.iushrn(1);t.cmp(r)>=0?(t.isub(r),a.isub(s)):(r.isub(t),s.isub(a))}return(o=0===t.cmpn(1)?a:s).cmpn(0)<0&&o.iadd(e),o},i.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),r=e.clone();t.negative=0,r.negative=0;for(var n=0;t.isEven()&&r.isEven();n++)t.iushrn(1),r.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;r.isEven();)r.iushrn(1);var o=t.cmp(r);if(o<0){var i=t;t=r,r=i}else if(0===o||0===r.cmpn(1))break;t.isub(r)}return r.iushln(n)},i.prototype.invm=function(e){return this.egcd(e).a.umod(e)},i.prototype.isEven=function(){return 0==(1&this.words[0])},i.prototype.isOdd=function(){return 1==(1&this.words[0])},i.prototype.andln=function(e){return this.words[0]&e},i.prototype.bincn=function(e){n("number"==typeof e);var t=e%26,r=(e-t)/26,o=1<>>26,s&=67108863,this.words[a]=s}return 0!==i&&(this.words[a]=i,this.length++),this},i.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},i.prototype.cmpn=function(e){var t,r=e<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)t=1;else{r&&(e=-e),n(e<=67108863,"Number is too big");var o=0|this.words[0];t=o===e?0:oe.length)return 1;if(this.length=0;r--){var n=0|this.words[r],o=0|e.words[r];if(n!==o){no&&(t=1);break}}return t},i.prototype.gtn=function(e){return 1===this.cmpn(e)},i.prototype.gt=function(e){return 1===this.cmp(e)},i.prototype.gten=function(e){return this.cmpn(e)>=0},i.prototype.gte=function(e){return this.cmp(e)>=0},i.prototype.ltn=function(e){return-1===this.cmpn(e)},i.prototype.lt=function(e){return-1===this.cmp(e)},i.prototype.lten=function(e){return this.cmpn(e)<=0},i.prototype.lte=function(e){return this.cmp(e)<=0},i.prototype.eqn=function(e){return 0===this.cmpn(e)},i.prototype.eq=function(e){return 0===this.cmp(e)},i.red=function(e){return new O(e)},i.prototype.toRed=function(e){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},i.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},i.prototype._forceRed=function(e){return this.red=e,this},i.prototype.forceRed=function(e){return n(!this.red,"Already a number in reduction context"),this._forceRed(e)},i.prototype.redAdd=function(e){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},i.prototype.redIAdd=function(e){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},i.prototype.redSub=function(e){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},i.prototype.redISub=function(e){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},i.prototype.redShl=function(e){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},i.prototype.redMul=function(e){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},i.prototype.redIMul=function(e){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},i.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},i.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},i.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},i.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},i.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},i.prototype.redPow=function(e){return n(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var v={k256:null,p224:null,p192:null,p25519:null};function b(e,t){this.name=e,this.p=new i(t,16),this.n=this.p.bitLength(),this.k=new i(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function y(){b.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function w(){b.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function _(){b.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function S(){b.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function O(e){if("string"==typeof e){var t=i._prime(e);this.m=t.p,this.prime=t}else n(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function k(e){O.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new i(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}b.prototype._tmp=function(){var e=new i(null);return e.words=new Array(Math.ceil(this.n/13)),e},b.prototype.ireduce=function(e){var t,r=e;do{this.split(r,this.tmp),t=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(t>this.n);var n=t0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},b.prototype.split=function(e,t){e.iushrn(this.n,0,t)},b.prototype.imulK=function(e){return e.imul(this.k)},o(y,b),y.prototype.split=function(e,t){for(var r=4194303,n=Math.min(e.length,9),o=0;o>>22,i=a}i>>>=22,e.words[o-10]=i,0===i&&e.length>10?e.length-=10:e.length-=9},y.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,r=0;r>>=26,e.words[r]=o,t=n}return 0!==t&&(e.words[e.length++]=t),e},i._prime=function(e){if(v[e])return v[e];var t;if("k256"===e)t=new y;else if("p224"===e)t=new w;else if("p192"===e)t=new _;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new S}return v[e]=t,t},O.prototype._verify1=function(e){n(0===e.negative,"red works only with positives"),n(e.red,"red works only with red numbers")},O.prototype._verify2=function(e,t){n(0==(e.negative|t.negative),"red works only with positives"),n(e.red&&e.red===t.red,"red works only with red numbers")},O.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},O.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},O.prototype.add=function(e,t){this._verify2(e,t);var r=e.add(t);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},O.prototype.iadd=function(e,t){this._verify2(e,t);var r=e.iadd(t);return r.cmp(this.m)>=0&&r.isub(this.m),r},O.prototype.sub=function(e,t){this._verify2(e,t);var r=e.sub(t);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},O.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},O.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},O.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},O.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},O.prototype.isqr=function(e){return this.imul(e,e.clone())},O.prototype.sqr=function(e){return this.mul(e,e)},O.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(n(t%2==1),3===t){var r=this.m.add(new i(1)).iushrn(2);return this.pow(e,r)}for(var o=this.m.subn(1),a=0;!o.isZero()&&0===o.andln(1);)a++,o.iushrn(1);n(!o.isZero());var s=new i(1).toRed(this),u=s.redNeg(),c=this.m.subn(1).iushrn(1),d=this.m.bitLength();for(d=new i(2*d*d).toRed(this);0!==this.pow(d,c).cmp(u);)d.redIAdd(u);for(var l=this.pow(d,o),f=this.pow(e,o.addn(1).iushrn(1)),h=this.pow(e,o),p=a;0!==h.cmp(s);){for(var m=h,g=0;0!==m.cmp(s);g++)m=m.redSqr();n(g=0;n--){for(var c=t.words[n],d=u-1;d>=0;d--){var l=c>>d&1;o!==r[0]&&(o=this.sqr(o)),0!==l||0!==a?(a<<=1,a|=l,(4==++s||0===n&&0===d)&&(o=this.mul(o,r[a]),s=0,a=0)):s=0}u=26}return o},O.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},O.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},i.mont=function(e){return new k(e)},o(k,O),k.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},k.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},k.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var r=e.imul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=r.isub(n).iushrn(this.shift),i=o;return o.cmp(this.m)>=0?i=o.isub(this.m):o.cmpn(0)<0&&(i=o.iadd(this.m)),i._forceRed(this)},k.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new i(0)._forceRed(this);var r=e.mul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=r.isub(n).iushrn(this.shift),a=o;return o.cmp(this.m)>=0?a=o.isub(this.m):o.cmpn(0)<0&&(a=o.iadd(this.m)),a._forceRed(this)},k.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e=r.nmd(e),this)},86266:(e,t,r)=>{"use strict";var n=t;n.version=r(18597).i8,n.utils=r(80953),n.rand=r(29931),n.curve=r(88254),n.curves=r(45427),n.ec=r(57954),n.eddsa=r(65980)},4918:(e,t,r)=>{"use strict";var n=r(73785),o=r(80953),i=o.getNAF,a=o.getJSF,s=o.assert;function u(e,t){this.type=e,this.p=new n(t.p,16),this.red=t.prime?n.red(t.prime):n.mont(this.p),this.zero=new n(0).toRed(this.red),this.one=new n(1).toRed(this.red),this.two=new n(2).toRed(this.red),this.n=t.n&&new n(t.n,16),this.g=t.g&&this.pointFromJSON(t.g,t.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var r=this.n&&this.p.div(this.n);!r||r.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}function c(e,t){this.curve=e,this.type=t,this.precomputed=null}e.exports=u,u.prototype.point=function(){throw new Error("Not implemented")},u.prototype.validate=function(){throw new Error("Not implemented")},u.prototype._fixedNafMul=function(e,t){s(e.precomputed);var r=e._getDoubles(),n=i(t,1,this._bitLength),o=(1<=a;d--)u=(u<<1)+n[d];c.push(u)}for(var l=this.jpoint(null,null,null),f=this.jpoint(null,null,null),h=o;h>0;h--){for(a=0;a=0;c--){for(var d=0;c>=0&&0===a[c];c--)d++;if(c>=0&&d++,u=u.dblp(d),c<0)break;var l=a[c];s(0!==l),u="affine"===e.type?l>0?u.mixedAdd(o[l-1>>1]):u.mixedAdd(o[-l-1>>1].neg()):l>0?u.add(o[l-1>>1]):u.add(o[-l-1>>1].neg())}return"affine"===e.type?u.toP():u},u.prototype._wnafMulAdd=function(e,t,r,n,o){var s,u,c,d=this._wnafT1,l=this._wnafT2,f=this._wnafT3,h=0;for(s=0;s=1;s-=2){var m=s-1,g=s;if(1===d[m]&&1===d[g]){var v=[t[m],null,null,t[g]];0===t[m].y.cmp(t[g].y)?(v[1]=t[m].add(t[g]),v[2]=t[m].toJ().mixedAdd(t[g].neg())):0===t[m].y.cmp(t[g].y.redNeg())?(v[1]=t[m].toJ().mixedAdd(t[g]),v[2]=t[m].add(t[g].neg())):(v[1]=t[m].toJ().mixedAdd(t[g]),v[2]=t[m].toJ().mixedAdd(t[g].neg()));var b=[-3,-1,-5,-7,0,7,5,1,3],y=a(r[m],r[g]);for(h=Math.max(y[0].length,h),f[m]=new Array(h),f[g]=new Array(h),u=0;u=0;s--){for(var k=0;s>=0;){var A=!0;for(u=0;u=0&&k++,S=S.dblp(k),s<0)break;for(u=0;u0?c=l[u][P-1>>1]:P<0&&(c=l[u][-P-1>>1].neg()),S="affine"===c.type?S.mixedAdd(c):S.add(c))}}for(s=0;s=Math.ceil((e.bitLength()+1)/t.step)},c.prototype._getDoubles=function(e,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var r=[this],n=this,o=0;o{"use strict";var n=r(80953),o=r(73785),i=r(35717),a=r(4918),s=n.assert;function u(e){this.twisted=1!=(0|e.a),this.mOneA=this.twisted&&-1==(0|e.a),this.extended=this.mOneA,a.call(this,"edwards",e),this.a=new o(e.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new o(e.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new o(e.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),s(!this.twisted||0===this.c.fromRed().cmpn(1)),this.oneC=1==(0|e.c)}function c(e,t,r,n,i){a.BasePoint.call(this,e,"projective"),null===t&&null===r&&null===n?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new o(t,16),this.y=new o(r,16),this.z=n?new o(n,16):this.curve.one,this.t=i&&new o(i,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}i(u,a),e.exports=u,u.prototype._mulA=function(e){return this.mOneA?e.redNeg():this.a.redMul(e)},u.prototype._mulC=function(e){return this.oneC?e:this.c.redMul(e)},u.prototype.jpoint=function(e,t,r,n){return this.point(e,t,r,n)},u.prototype.pointFromX=function(e,t){(e=new o(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr(),n=this.c2.redSub(this.a.redMul(r)),i=this.one.redSub(this.c2.redMul(this.d).redMul(r)),a=n.redMul(i.redInvm()),s=a.redSqrt();if(0!==s.redSqr().redSub(a).cmp(this.zero))throw new Error("invalid point");var u=s.fromRed().isOdd();return(t&&!u||!t&&u)&&(s=s.redNeg()),this.point(e,s)},u.prototype.pointFromY=function(e,t){(e=new o(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr(),n=r.redSub(this.c2),i=r.redMul(this.d).redMul(this.c2).redSub(this.a),a=n.redMul(i.redInvm());if(0===a.cmp(this.zero)){if(t)throw new Error("invalid point");return this.point(this.zero,e)}var s=a.redSqrt();if(0!==s.redSqr().redSub(a).cmp(this.zero))throw new Error("invalid point");return s.fromRed().isOdd()!==t&&(s=s.redNeg()),this.point(s,e)},u.prototype.validate=function(e){if(e.isInfinity())return!0;e.normalize();var t=e.x.redSqr(),r=e.y.redSqr(),n=t.redMul(this.a).redAdd(r),o=this.c2.redMul(this.one.redAdd(this.d.redMul(t).redMul(r)));return 0===n.cmp(o)},i(c,a.BasePoint),u.prototype.pointFromJSON=function(e){return c.fromJSON(this,e)},u.prototype.point=function(e,t,r,n){return new c(this,e,t,r,n)},c.fromJSON=function(e,t){return new c(e,t[0],t[1],t[2])},c.prototype.inspect=function(){return this.isInfinity()?"":""},c.prototype.isInfinity=function(){return 0===this.x.cmpn(0)&&(0===this.y.cmp(this.z)||this.zOne&&0===this.y.cmp(this.curve.c))},c.prototype._extDbl=function(){var e=this.x.redSqr(),t=this.y.redSqr(),r=this.z.redSqr();r=r.redIAdd(r);var n=this.curve._mulA(e),o=this.x.redAdd(this.y).redSqr().redISub(e).redISub(t),i=n.redAdd(t),a=i.redSub(r),s=n.redSub(t),u=o.redMul(a),c=i.redMul(s),d=o.redMul(s),l=a.redMul(i);return this.curve.point(u,c,l,d)},c.prototype._projDbl=function(){var e,t,r,n,o,i,a=this.x.redAdd(this.y).redSqr(),s=this.x.redSqr(),u=this.y.redSqr();if(this.curve.twisted){var c=(n=this.curve._mulA(s)).redAdd(u);this.zOne?(e=a.redSub(s).redSub(u).redMul(c.redSub(this.curve.two)),t=c.redMul(n.redSub(u)),r=c.redSqr().redSub(c).redSub(c)):(o=this.z.redSqr(),i=c.redSub(o).redISub(o),e=a.redSub(s).redISub(u).redMul(i),t=c.redMul(n.redSub(u)),r=c.redMul(i))}else n=s.redAdd(u),o=this.curve._mulC(this.z).redSqr(),i=n.redSub(o).redSub(o),e=this.curve._mulC(a.redISub(n)).redMul(i),t=this.curve._mulC(n).redMul(s.redISub(u)),r=n.redMul(i);return this.curve.point(e,t,r)},c.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},c.prototype._extAdd=function(e){var t=this.y.redSub(this.x).redMul(e.y.redSub(e.x)),r=this.y.redAdd(this.x).redMul(e.y.redAdd(e.x)),n=this.t.redMul(this.curve.dd).redMul(e.t),o=this.z.redMul(e.z.redAdd(e.z)),i=r.redSub(t),a=o.redSub(n),s=o.redAdd(n),u=r.redAdd(t),c=i.redMul(a),d=s.redMul(u),l=i.redMul(u),f=a.redMul(s);return this.curve.point(c,d,f,l)},c.prototype._projAdd=function(e){var t,r,n=this.z.redMul(e.z),o=n.redSqr(),i=this.x.redMul(e.x),a=this.y.redMul(e.y),s=this.curve.d.redMul(i).redMul(a),u=o.redSub(s),c=o.redAdd(s),d=this.x.redAdd(this.y).redMul(e.x.redAdd(e.y)).redISub(i).redISub(a),l=n.redMul(u).redMul(d);return this.curve.twisted?(t=n.redMul(c).redMul(a.redSub(this.curve._mulA(i))),r=u.redMul(c)):(t=n.redMul(c).redMul(a.redSub(i)),r=this.curve._mulC(u).redMul(c)),this.curve.point(l,t,r)},c.prototype.add=function(e){return this.isInfinity()?e:e.isInfinity()?this:this.curve.extended?this._extAdd(e):this._projAdd(e)},c.prototype.mul=function(e){return this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve._wnafMul(this,e)},c.prototype.mulAdd=function(e,t,r){return this.curve._wnafMulAdd(1,[this,t],[e,r],2,!1)},c.prototype.jmulAdd=function(e,t,r){return this.curve._wnafMulAdd(1,[this,t],[e,r],2,!0)},c.prototype.normalize=function(){if(this.zOne)return this;var e=this.z.redInvm();return this.x=this.x.redMul(e),this.y=this.y.redMul(e),this.t&&(this.t=this.t.redMul(e)),this.z=this.curve.one,this.zOne=!0,this},c.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},c.prototype.getX=function(){return this.normalize(),this.x.fromRed()},c.prototype.getY=function(){return this.normalize(),this.y.fromRed()},c.prototype.eq=function(e){return this===e||0===this.getX().cmp(e.getX())&&0===this.getY().cmp(e.getY())},c.prototype.eqXToP=function(e){var t=e.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(t))return!0;for(var r=e.clone(),n=this.curve.redN.redMul(this.z);;){if(r.iadd(this.curve.n),r.cmp(this.curve.p)>=0)return!1;if(t.redIAdd(n),0===this.x.cmp(t))return!0}},c.prototype.toP=c.prototype.normalize,c.prototype.mixedAdd=c.prototype.add},88254:(e,t,r)=>{"use strict";var n=t;n.base=r(4918),n.short=r(6673),n.mont=r(22881),n.edwards=r(31138)},22881:(e,t,r)=>{"use strict";var n=r(73785),o=r(35717),i=r(4918),a=r(80953);function s(e){i.call(this,"mont",e),this.a=new n(e.a,16).toRed(this.red),this.b=new n(e.b,16).toRed(this.red),this.i4=new n(4).toRed(this.red).redInvm(),this.two=new n(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}function u(e,t,r){i.BasePoint.call(this,e,"projective"),null===t&&null===r?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new n(t,16),this.z=new n(r,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}o(s,i),e.exports=s,s.prototype.validate=function(e){var t=e.normalize().x,r=t.redSqr(),n=r.redMul(t).redAdd(r.redMul(this.a)).redAdd(t);return 0===n.redSqrt().redSqr().cmp(n)},o(u,i.BasePoint),s.prototype.decodePoint=function(e,t){return this.point(a.toArray(e,t),1)},s.prototype.point=function(e,t){return new u(this,e,t)},s.prototype.pointFromJSON=function(e){return u.fromJSON(this,e)},u.prototype.precompute=function(){},u.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},u.fromJSON=function(e,t){return new u(e,t[0],t[1]||e.one)},u.prototype.inspect=function(){return this.isInfinity()?"":""},u.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},u.prototype.dbl=function(){var e=this.x.redAdd(this.z).redSqr(),t=this.x.redSub(this.z).redSqr(),r=e.redSub(t),n=e.redMul(t),o=r.redMul(t.redAdd(this.curve.a24.redMul(r)));return this.curve.point(n,o)},u.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},u.prototype.diffAdd=function(e,t){var r=this.x.redAdd(this.z),n=this.x.redSub(this.z),o=e.x.redAdd(e.z),i=e.x.redSub(e.z).redMul(r),a=o.redMul(n),s=t.z.redMul(i.redAdd(a).redSqr()),u=t.x.redMul(i.redISub(a).redSqr());return this.curve.point(s,u)},u.prototype.mul=function(e){for(var t=e.clone(),r=this,n=this.curve.point(null,null),o=[];0!==t.cmpn(0);t.iushrn(1))o.push(t.andln(1));for(var i=o.length-1;i>=0;i--)0===o[i]?(r=r.diffAdd(n,this),n=n.dbl()):(n=r.diffAdd(n,this),r=r.dbl());return n},u.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},u.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},u.prototype.eq=function(e){return 0===this.getX().cmp(e.getX())},u.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},u.prototype.getX=function(){return this.normalize(),this.x.fromRed()}},6673:(e,t,r)=>{"use strict";var n=r(80953),o=r(73785),i=r(35717),a=r(4918),s=n.assert;function u(e){a.call(this,"short",e),this.a=new o(e.a,16).toRed(this.red),this.b=new o(e.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(e),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}function c(e,t,r,n){a.BasePoint.call(this,e,"affine"),null===t&&null===r?(this.x=null,this.y=null,this.inf=!0):(this.x=new o(t,16),this.y=new o(r,16),n&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function d(e,t,r,n){a.BasePoint.call(this,e,"jacobian"),null===t&&null===r&&null===n?(this.x=this.curve.one,this.y=this.curve.one,this.z=new o(0)):(this.x=new o(t,16),this.y=new o(r,16),this.z=new o(n,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}i(u,a),e.exports=u,u.prototype._getEndomorphism=function(e){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var t,r;if(e.beta)t=new o(e.beta,16).toRed(this.red);else{var n=this._getEndoRoots(this.p);t=(t=n[0].cmp(n[1])<0?n[0]:n[1]).toRed(this.red)}if(e.lambda)r=new o(e.lambda,16);else{var i=this._getEndoRoots(this.n);0===this.g.mul(i[0]).x.cmp(this.g.x.redMul(t))?r=i[0]:(r=i[1],s(0===this.g.mul(r).x.cmp(this.g.x.redMul(t))))}return{beta:t,lambda:r,basis:e.basis?e.basis.map((function(e){return{a:new o(e.a,16),b:new o(e.b,16)}})):this._getEndoBasis(r)}}},u.prototype._getEndoRoots=function(e){var t=e===this.p?this.red:o.mont(e),r=new o(2).toRed(t).redInvm(),n=r.redNeg(),i=new o(3).toRed(t).redNeg().redSqrt().redMul(r);return[n.redAdd(i).fromRed(),n.redSub(i).fromRed()]},u.prototype._getEndoBasis=function(e){for(var t,r,n,i,a,s,u,c,d,l=this.n.ushrn(Math.floor(this.n.bitLength()/2)),f=e,h=this.n.clone(),p=new o(1),m=new o(0),g=new o(0),v=new o(1),b=0;0!==f.cmpn(0);){var y=h.div(f);c=h.sub(y.mul(f)),d=g.sub(y.mul(p));var w=v.sub(y.mul(m));if(!n&&c.cmp(l)<0)t=u.neg(),r=p,n=c.neg(),i=d;else if(n&&2==++b)break;u=c,h=f,f=c,g=p,p=d,v=m,m=w}a=c.neg(),s=d;var _=n.sqr().add(i.sqr());return a.sqr().add(s.sqr()).cmp(_)>=0&&(a=t,s=r),n.negative&&(n=n.neg(),i=i.neg()),a.negative&&(a=a.neg(),s=s.neg()),[{a:n,b:i},{a,b:s}]},u.prototype._endoSplit=function(e){var t=this.endo.basis,r=t[0],n=t[1],o=n.b.mul(e).divRound(this.n),i=r.b.neg().mul(e).divRound(this.n),a=o.mul(r.a),s=i.mul(n.a),u=o.mul(r.b),c=i.mul(n.b);return{k1:e.sub(a).sub(s),k2:u.add(c).neg()}},u.prototype.pointFromX=function(e,t){(e=new o(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b),n=r.redSqrt();if(0!==n.redSqr().redSub(r).cmp(this.zero))throw new Error("invalid point");var i=n.fromRed().isOdd();return(t&&!i||!t&&i)&&(n=n.redNeg()),this.point(e,n)},u.prototype.validate=function(e){if(e.inf)return!0;var t=e.x,r=e.y,n=this.a.redMul(t),o=t.redSqr().redMul(t).redIAdd(n).redIAdd(this.b);return 0===r.redSqr().redISub(o).cmpn(0)},u.prototype._endoWnafMulAdd=function(e,t,r){for(var n=this._endoWnafT1,o=this._endoWnafT2,i=0;i":""},c.prototype.isInfinity=function(){return this.inf},c.prototype.add=function(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e))return this.curve.point(null,null);if(0===this.x.cmp(e.x))return this.curve.point(null,null);var t=this.y.redSub(e.y);0!==t.cmpn(0)&&(t=t.redMul(this.x.redSub(e.x).redInvm()));var r=t.redSqr().redISub(this.x).redISub(e.x),n=t.redMul(this.x.redSub(r)).redISub(this.y);return this.curve.point(r,n)},c.prototype.dbl=function(){if(this.inf)return this;var e=this.y.redAdd(this.y);if(0===e.cmpn(0))return this.curve.point(null,null);var t=this.curve.a,r=this.x.redSqr(),n=e.redInvm(),o=r.redAdd(r).redIAdd(r).redIAdd(t).redMul(n),i=o.redSqr().redISub(this.x.redAdd(this.x)),a=o.redMul(this.x.redSub(i)).redISub(this.y);return this.curve.point(i,a)},c.prototype.getX=function(){return this.x.fromRed()},c.prototype.getY=function(){return this.y.fromRed()},c.prototype.mul=function(e){return e=new o(e,16),this.isInfinity()?this:this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve.endo?this.curve._endoWnafMulAdd([this],[e]):this.curve._wnafMul(this,e)},c.prototype.mulAdd=function(e,t,r){var n=[this,t],o=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,o):this.curve._wnafMulAdd(1,n,o,2)},c.prototype.jmulAdd=function(e,t,r){var n=[this,t],o=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,o,!0):this.curve._wnafMulAdd(1,n,o,2,!0)},c.prototype.eq=function(e){return this===e||this.inf===e.inf&&(this.inf||0===this.x.cmp(e.x)&&0===this.y.cmp(e.y))},c.prototype.neg=function(e){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(e&&this.precomputed){var r=this.precomputed,n=function(e){return e.neg()};t.precomputed={naf:r.naf&&{wnd:r.naf.wnd,points:r.naf.points.map(n)},doubles:r.doubles&&{step:r.doubles.step,points:r.doubles.points.map(n)}}}return t},c.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},i(d,a.BasePoint),u.prototype.jpoint=function(e,t,r){return new d(this,e,t,r)},d.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var e=this.z.redInvm(),t=e.redSqr(),r=this.x.redMul(t),n=this.y.redMul(t).redMul(e);return this.curve.point(r,n)},d.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},d.prototype.add=function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.z.redSqr(),r=this.z.redSqr(),n=this.x.redMul(t),o=e.x.redMul(r),i=this.y.redMul(t.redMul(e.z)),a=e.y.redMul(r.redMul(this.z)),s=n.redSub(o),u=i.redSub(a);if(0===s.cmpn(0))return 0!==u.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var c=s.redSqr(),d=c.redMul(s),l=n.redMul(c),f=u.redSqr().redIAdd(d).redISub(l).redISub(l),h=u.redMul(l.redISub(f)).redISub(i.redMul(d)),p=this.z.redMul(e.z).redMul(s);return this.curve.jpoint(f,h,p)},d.prototype.mixedAdd=function(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;var t=this.z.redSqr(),r=this.x,n=e.x.redMul(t),o=this.y,i=e.y.redMul(t).redMul(this.z),a=r.redSub(n),s=o.redSub(i);if(0===a.cmpn(0))return 0!==s.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var u=a.redSqr(),c=u.redMul(a),d=r.redMul(u),l=s.redSqr().redIAdd(c).redISub(d).redISub(d),f=s.redMul(d.redISub(l)).redISub(o.redMul(c)),h=this.z.redMul(a);return this.curve.jpoint(l,f,h)},d.prototype.dblp=function(e){if(0===e)return this;if(this.isInfinity())return this;if(!e)return this.dbl();var t;if(this.curve.zeroA||this.curve.threeA){var r=this;for(t=0;t=0)return!1;if(r.redIAdd(o),0===this.x.cmp(r))return!0}},d.prototype.inspect=function(){return this.isInfinity()?"":""},d.prototype.isInfinity=function(){return 0===this.z.cmpn(0)}},45427:(e,t,r)=>{"use strict";var n,o=t,i=r(33715),a=r(88254),s=r(80953).assert;function u(e){"short"===e.type?this.curve=new a.short(e):"edwards"===e.type?this.curve=new a.edwards(e):this.curve=new a.mont(e),this.g=this.curve.g,this.n=this.curve.n,this.hash=e.hash,s(this.g.validate(),"Invalid curve"),s(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function c(e,t){Object.defineProperty(o,e,{configurable:!0,enumerable:!0,get:function(){var r=new u(t);return Object.defineProperty(o,e,{configurable:!0,enumerable:!0,value:r}),r}})}o.PresetCurve=u,c("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:i.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),c("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:i.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),c("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:i.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),c("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:i.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),c("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:i.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),c("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:i.sha256,gRed:!1,g:["9"]}),c("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:i.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{n=r(91037)}catch(e){n=void 0}c("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:i.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",n]})},57954:(e,t,r)=>{"use strict";var n=r(73785),o=r(2156),i=r(80953),a=r(45427),s=r(29931),u=i.assert,c=r(31251),d=r(90611);function l(e){if(!(this instanceof l))return new l(e);"string"==typeof e&&(u(Object.prototype.hasOwnProperty.call(a,e),"Unknown curve "+e),e=a[e]),e instanceof a.PresetCurve&&(e={curve:e}),this.curve=e.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=e.curve.g,this.g.precompute(e.curve.n.bitLength()+1),this.hash=e.hash||e.curve.hash}e.exports=l,l.prototype.keyPair=function(e){return new c(this,e)},l.prototype.keyFromPrivate=function(e,t){return c.fromPrivate(this,e,t)},l.prototype.keyFromPublic=function(e,t){return c.fromPublic(this,e,t)},l.prototype.genKeyPair=function(e){e||(e={});for(var t=new o({hash:this.hash,pers:e.pers,persEnc:e.persEnc||"utf8",entropy:e.entropy||s(this.hash.hmacStrength),entropyEnc:e.entropy&&e.entropyEnc||"utf8",nonce:this.n.toArray()}),r=this.n.byteLength(),i=this.n.sub(new n(2));;){var a=new n(t.generate(r));if(!(a.cmp(i)>0))return a.iaddn(1),this.keyFromPrivate(a)}},l.prototype._truncateToN=function(e,t){var r=8*e.byteLength()-this.n.bitLength();return r>0&&(e=e.ushrn(r)),!t&&e.cmp(this.n)>=0?e.sub(this.n):e},l.prototype.sign=function(e,t,r,i){"object"==typeof r&&(i=r,r=null),i||(i={}),t=this.keyFromPrivate(t,r),e=this._truncateToN(new n(e,16));for(var a=this.n.byteLength(),s=t.getPrivate().toArray("be",a),u=e.toArray("be",a),c=new o({hash:this.hash,entropy:s,nonce:u,pers:i.pers,persEnc:i.persEnc||"utf8"}),l=this.n.sub(new n(1)),f=0;;f++){var h=i.k?i.k(f):new n(c.generate(this.n.byteLength()));if(!((h=this._truncateToN(h,!0)).cmpn(1)<=0||h.cmp(l)>=0)){var p=this.g.mul(h);if(!p.isInfinity()){var m=p.getX(),g=m.umod(this.n);if(0!==g.cmpn(0)){var v=h.invm(this.n).mul(g.mul(t.getPrivate()).iadd(e));if(0!==(v=v.umod(this.n)).cmpn(0)){var b=(p.getY().isOdd()?1:0)|(0!==m.cmp(g)?2:0);return i.canonical&&v.cmp(this.nh)>0&&(v=this.n.sub(v),b^=1),new d({r:g,s:v,recoveryParam:b})}}}}}},l.prototype.verify=function(e,t,r,o){e=this._truncateToN(new n(e,16)),r=this.keyFromPublic(r,o);var i=(t=new d(t,"hex")).r,a=t.s;if(i.cmpn(1)<0||i.cmp(this.n)>=0)return!1;if(a.cmpn(1)<0||a.cmp(this.n)>=0)return!1;var s,u=a.invm(this.n),c=u.mul(e).umod(this.n),l=u.mul(i).umod(this.n);return this.curve._maxwellTrick?!(s=this.g.jmulAdd(c,r.getPublic(),l)).isInfinity()&&s.eqXToP(i):!(s=this.g.mulAdd(c,r.getPublic(),l)).isInfinity()&&0===s.getX().umod(this.n).cmp(i)},l.prototype.recoverPubKey=function(e,t,r,o){u((3&r)===r,"The recovery param is more than two bits"),t=new d(t,o);var i=this.n,a=new n(e),s=t.r,c=t.s,l=1&r,f=r>>1;if(s.cmp(this.curve.p.umod(this.curve.n))>=0&&f)throw new Error("Unable to find sencond key candinate");s=f?this.curve.pointFromX(s.add(this.curve.n),l):this.curve.pointFromX(s,l);var h=t.r.invm(i),p=i.sub(a).mul(h).umod(i),m=c.mul(h).umod(i);return this.g.mulAdd(p,s,m)},l.prototype.getKeyRecoveryParam=function(e,t,r,n){if(null!==(t=new d(t,n)).recoveryParam)return t.recoveryParam;for(var o=0;o<4;o++){var i;try{i=this.recoverPubKey(e,t,o)}catch(e){continue}if(i.eq(r))return o}throw new Error("Unable to find valid recovery factor")}},31251:(e,t,r)=>{"use strict";var n=r(73785),o=r(80953).assert;function i(e,t){this.ec=e,this.priv=null,this.pub=null,t.priv&&this._importPrivate(t.priv,t.privEnc),t.pub&&this._importPublic(t.pub,t.pubEnc)}e.exports=i,i.fromPublic=function(e,t,r){return t instanceof i?t:new i(e,{pub:t,pubEnc:r})},i.fromPrivate=function(e,t,r){return t instanceof i?t:new i(e,{priv:t,privEnc:r})},i.prototype.validate=function(){var e=this.getPublic();return e.isInfinity()?{result:!1,reason:"Invalid public key"}:e.validate()?e.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},i.prototype.getPublic=function(e,t){return"string"==typeof e&&(t=e,e=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),t?this.pub.encode(t,e):this.pub},i.prototype.getPrivate=function(e){return"hex"===e?this.priv.toString(16,2):this.priv},i.prototype._importPrivate=function(e,t){this.priv=new n(e,t||16),this.priv=this.priv.umod(this.ec.curve.n)},i.prototype._importPublic=function(e,t){if(e.x||e.y)return"mont"===this.ec.curve.type?o(e.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||o(e.x&&e.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(e.x,e.y));this.pub=this.ec.curve.decodePoint(e,t)},i.prototype.derive=function(e){return e.validate()||o(e.validate(),"public point not validated"),e.mul(this.priv).getX()},i.prototype.sign=function(e,t,r){return this.ec.sign(e,this,t,r)},i.prototype.verify=function(e,t){return this.ec.verify(e,t,this)},i.prototype.inspect=function(){return""}},90611:(e,t,r)=>{"use strict";var n=r(73785),o=r(80953),i=o.assert;function a(e,t){if(e instanceof a)return e;this._importDER(e,t)||(i(e.r&&e.s,"Signature without r or s"),this.r=new n(e.r,16),this.s=new n(e.s,16),void 0===e.recoveryParam?this.recoveryParam=null:this.recoveryParam=e.recoveryParam)}function s(){this.place=0}function u(e,t){var r=e[t.place++];if(!(128&r))return r;var n=15&r;if(0===n||n>4)return!1;for(var o=0,i=0,a=t.place;i>>=0;return!(o<=127)&&(t.place=a,o)}function c(e){for(var t=0,r=e.length-1;!e[t]&&!(128&e[t+1])&&t>>3);for(e.push(128|r);--r;)e.push(t>>>(r<<3)&255);e.push(t)}}e.exports=a,a.prototype._importDER=function(e,t){e=o.toArray(e,t);var r=new s;if(48!==e[r.place++])return!1;var i=u(e,r);if(!1===i)return!1;if(i+r.place!==e.length)return!1;if(2!==e[r.place++])return!1;var a=u(e,r);if(!1===a)return!1;var c=e.slice(r.place,a+r.place);if(r.place+=a,2!==e[r.place++])return!1;var d=u(e,r);if(!1===d)return!1;if(e.length!==d+r.place)return!1;var l=e.slice(r.place,d+r.place);if(0===c[0]){if(!(128&c[1]))return!1;c=c.slice(1)}if(0===l[0]){if(!(128&l[1]))return!1;l=l.slice(1)}return this.r=new n(c),this.s=new n(l),this.recoveryParam=null,!0},a.prototype.toDER=function(e){var t=this.r.toArray(),r=this.s.toArray();for(128&t[0]&&(t=[0].concat(t)),128&r[0]&&(r=[0].concat(r)),t=c(t),r=c(r);!(r[0]||128&r[1]);)r=r.slice(1);var n=[2];d(n,t.length),(n=n.concat(t)).push(2),d(n,r.length);var i=n.concat(r),a=[48];return d(a,i.length),a=a.concat(i),o.encode(a,e)}},65980:(e,t,r)=>{"use strict";var n=r(33715),o=r(45427),i=r(80953),a=i.assert,s=i.parseBytes,u=r(79087),c=r(23622);function d(e){if(a("ed25519"===e,"only tested with ed25519 so far"),!(this instanceof d))return new d(e);e=o[e].curve,this.curve=e,this.g=e.g,this.g.precompute(e.n.bitLength()+1),this.pointClass=e.point().constructor,this.encodingLength=Math.ceil(e.n.bitLength()/8),this.hash=n.sha512}e.exports=d,d.prototype.sign=function(e,t){e=s(e);var r=this.keyFromSecret(t),n=this.hashInt(r.messagePrefix(),e),o=this.g.mul(n),i=this.encodePoint(o),a=this.hashInt(i,r.pubBytes(),e).mul(r.priv()),u=n.add(a).umod(this.curve.n);return this.makeSignature({R:o,S:u,Rencoded:i})},d.prototype.verify=function(e,t,r){e=s(e),t=this.makeSignature(t);var n=this.keyFromPublic(r),o=this.hashInt(t.Rencoded(),n.pubBytes(),e),i=this.g.mul(t.S());return t.R().add(n.pub().mul(o)).eq(i)},d.prototype.hashInt=function(){for(var e=this.hash(),t=0;t{"use strict";var n=r(80953),o=n.assert,i=n.parseBytes,a=n.cachedProperty;function s(e,t){this.eddsa=e,this._secret=i(t.secret),e.isPoint(t.pub)?this._pub=t.pub:this._pubBytes=i(t.pub)}s.fromPublic=function(e,t){return t instanceof s?t:new s(e,{pub:t})},s.fromSecret=function(e,t){return t instanceof s?t:new s(e,{secret:t})},s.prototype.secret=function(){return this._secret},a(s,"pubBytes",(function(){return this.eddsa.encodePoint(this.pub())})),a(s,"pub",(function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())})),a(s,"privBytes",(function(){var e=this.eddsa,t=this.hash(),r=e.encodingLength-1,n=t.slice(0,e.encodingLength);return n[0]&=248,n[r]&=127,n[r]|=64,n})),a(s,"priv",(function(){return this.eddsa.decodeInt(this.privBytes())})),a(s,"hash",(function(){return this.eddsa.hash().update(this.secret()).digest()})),a(s,"messagePrefix",(function(){return this.hash().slice(this.eddsa.encodingLength)})),s.prototype.sign=function(e){return o(this._secret,"KeyPair can only verify"),this.eddsa.sign(e,this)},s.prototype.verify=function(e,t){return this.eddsa.verify(e,t,this)},s.prototype.getSecret=function(e){return o(this._secret,"KeyPair is public only"),n.encode(this.secret(),e)},s.prototype.getPublic=function(e){return n.encode(this.pubBytes(),e)},e.exports=s},23622:(e,t,r)=>{"use strict";var n=r(73785),o=r(80953),i=o.assert,a=o.cachedProperty,s=o.parseBytes;function u(e,t){this.eddsa=e,"object"!=typeof t&&(t=s(t)),Array.isArray(t)&&(t={R:t.slice(0,e.encodingLength),S:t.slice(e.encodingLength)}),i(t.R&&t.S,"Signature without R or S"),e.isPoint(t.R)&&(this._R=t.R),t.S instanceof n&&(this._S=t.S),this._Rencoded=Array.isArray(t.R)?t.R:t.Rencoded,this._Sencoded=Array.isArray(t.S)?t.S:t.Sencoded}a(u,"S",(function(){return this.eddsa.decodeInt(this.Sencoded())})),a(u,"R",(function(){return this.eddsa.decodePoint(this.Rencoded())})),a(u,"Rencoded",(function(){return this.eddsa.encodePoint(this.R())})),a(u,"Sencoded",(function(){return this.eddsa.encodeInt(this.S())})),u.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())},u.prototype.toHex=function(){return o.encode(this.toBytes(),"hex").toUpperCase()},e.exports=u},91037:e=>{e.exports={doubles:{step:4,points:[["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a","f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"],["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508","11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"],["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739","d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"],["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640","4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"],["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c","4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"],["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda","96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"],["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa","5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"],["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0","cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"],["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d","9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"],["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d","e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"],["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1","9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"],["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0","5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"],["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047","10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"],["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862","283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"],["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7","7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"],["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd","56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"],["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83","7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"],["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a","53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"],["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8","bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"],["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d","4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"],["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725","7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"],["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754","4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"],["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c","17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"],["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6","6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"],["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39","c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"],["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891","893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"],["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b","febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"],["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03","2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"],["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d","eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"],["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070","7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"],["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4","e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"],["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da","662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"],["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11","1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"],["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e","efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"],["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41","2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"],["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef","67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"],["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8","db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"],["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d","648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"],["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96","35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"],["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd","ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"],["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5","9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"],["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266","40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"],["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71","34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"],["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac","c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"],["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751","1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"],["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e","493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"],["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241","c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"],["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3","be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"],["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f","4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"],["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19","aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"],["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be","b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"],["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9","6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"],["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2","8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"],["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13","7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"],["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c","ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"],["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba","2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"],["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151","e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"],["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073","d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"],["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458","38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"],["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b","69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"],["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366","d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"],["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa","40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"],["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0","620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"],["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787","7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"],["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e","ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"]]},naf:{wnd:7,points:[["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9","388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"],["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4","d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"],["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc","6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"],["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe","cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"],["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb","d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"],["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8","ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"],["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e","581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"],["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34","4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"],["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c","85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"],["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5","321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"],["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f","2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"],["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714","73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"],["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729","a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"],["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db","2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"],["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4","e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"],["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5","b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"],["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479","2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"],["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d","80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"],["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f","1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"],["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb","d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"],["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9","eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"],["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963","758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"],["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74","958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"],["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530","e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"],["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b","5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"],["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247","cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"],["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1","cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"],["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120","4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"],["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435","91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"],["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18","673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"],["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8","59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"],["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb","3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"],["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f","55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"],["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143","efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"],["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba","e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"],["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45","f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"],["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a","744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"],["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e","c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"],["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8","e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"],["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c","30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"],["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519","e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"],["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab","100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"],["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca","ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"],["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf","8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"],["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610","68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"],["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4","f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"],["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c","d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"],["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940","edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"],["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980","a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"],["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3","66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"],["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf","9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"],["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63","4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"],["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448","fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"],["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf","5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"],["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5","8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"],["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6","8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"],["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5","5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"],["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99","f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"],["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51","f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"],["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5","42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"],["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5","204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"],["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997","4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"],["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881","73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"],["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5","39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"],["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66","d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"],["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726","ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"],["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede","6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"],["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94","60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"],["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31","3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"],["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51","b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"],["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252","ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"],["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5","cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"],["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b","6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"],["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4","322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"],["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f","6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"],["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889","2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"],["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246","b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"],["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984","998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"],["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a","b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"],["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030","bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"],["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197","6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"],["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593","c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"],["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef","21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"],["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38","60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"],["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a","49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"],["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111","5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"],["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502","7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"],["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea","be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"],["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26","8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"],["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986","39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"],["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e","62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"],["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4","25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"],["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda","ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"],["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859","cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"],["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f","f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"],["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c","6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"],["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942","fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"],["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a","1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"],["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80","5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"],["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d","438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"],["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1","cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"],["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63","c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"],["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352","6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"],["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193","ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"],["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00","9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"],["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58","ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"],["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7","d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"],["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8","c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"],["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e","67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"],["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d","cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"],["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b","299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"],["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f","f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"],["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6","462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"],["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297","62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"],["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a","7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"],["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c","ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"],["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52","4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"],["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb","bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"],["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065","bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"],["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917","603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"],["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9","cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"],["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3","553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"],["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57","712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"],["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66","ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"],["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8","9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"],["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721","9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"],["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180","4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"]]}}},80953:(e,t,r)=>{"use strict";var n=t,o=r(73785),i=r(79746),a=r(34504);n.assert=i,n.toArray=a.toArray,n.zero2=a.zero2,n.toHex=a.toHex,n.encode=a.encode,n.getNAF=function(e,t,r){var n=new Array(Math.max(e.bitLength(),r)+1);n.fill(0);for(var o=1<(o>>1)-1?(o>>1)-u:u,i.isubn(s)):s=0,n[a]=s,i.iushrn(1)}return n},n.getJSF=function(e,t){var r=[[],[]];e=e.clone(),t=t.clone();for(var n,o=0,i=0;e.cmpn(-o)>0||t.cmpn(-i)>0;){var a,s,u=e.andln(3)+o&3,c=t.andln(3)+i&3;3===u&&(u=-1),3===c&&(c=-1),a=0==(1&u)?0:3!=(n=e.andln(7)+o&7)&&5!==n||2!==c?u:-u,r[0].push(a),s=0==(1&c)?0:3!=(n=t.andln(7)+i&7)&&5!==n||2!==u?c:-c,r[1].push(s),2*o===a+1&&(o=1-o),2*i===s+1&&(i=1-i),e.iushrn(1),t.iushrn(1)}return r},n.cachedProperty=function(e,t,r){var n="_"+t;e.prototype[t]=function(){return void 0!==this[n]?this[n]:this[n]=r.call(this)}},n.parseBytes=function(e){return"string"==typeof e?n.toArray(e,"hex"):e},n.intFromLE=function(e){return new o(e,"hex","le")}},73785:function(e,t,r){!function(e,t){"use strict";function n(e,t){if(!e)throw new Error(t||"Assertion failed")}function o(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}function i(e,t,r){if(i.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(r=t,t=10),this._init(e||0,t||10,r||"be"))}var a;"object"==typeof e?e.exports=i:t.BN=i,i.BN=i,i.wordSize=26;try{a="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:r(85568).Buffer}catch(e){}function s(e,t){var r=e.charCodeAt(t);return r>=65&&r<=70?r-55:r>=97&&r<=102?r-87:r-48&15}function u(e,t,r){var n=s(e,r);return r-1>=t&&(n|=s(e,r-1)<<4),n}function c(e,t,r,n){for(var o=0,i=Math.min(e.length,r),a=t;a=49?s-49+10:s>=17?s-17+10:s}return o}i.isBN=function(e){return e instanceof i||null!==e&&"object"==typeof e&&e.constructor.wordSize===i.wordSize&&Array.isArray(e.words)},i.max=function(e,t){return e.cmp(t)>0?e:t},i.min=function(e,t){return e.cmp(t)<0?e:t},i.prototype._init=function(e,t,r){if("number"==typeof e)return this._initNumber(e,t,r);if("object"==typeof e)return this._initArray(e,t,r);"hex"===t&&(t=16),n(t===(0|t)&&t>=2&&t<=36);var o=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(o++,this.negative=1),o=0;o-=3)a=e[o]|e[o-1]<<8|e[o-2]<<16,this.words[i]|=a<>>26-s&67108863,(s+=24)>=26&&(s-=26,i++);else if("le"===r)for(o=0,i=0;o>>26-s&67108863,(s+=24)>=26&&(s-=26,i++);return this.strip()},i.prototype._parseHex=function(e,t,r){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var n=0;n=t;n-=2)o=u(e,t,n)<=18?(i-=18,a+=1,this.words[a]|=o>>>26):i+=8;else for(n=(e.length-t)%2==0?t+1:t;n=18?(i-=18,a+=1,this.words[a]|=o>>>26):i+=8;this.strip()},i.prototype._parseBase=function(e,t,r){this.words=[0],this.length=1;for(var n=0,o=1;o<=67108863;o*=t)n++;n--,o=o/t|0;for(var i=e.length-r,a=i%n,s=Math.min(i,i-a)+r,u=0,d=r;d1&&0===this.words[this.length-1];)this.length--;return this._normSign()},i.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},i.prototype.inspect=function(){return(this.red?""};var d=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],l=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],f=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function h(e,t,r){r.negative=t.negative^e.negative;var n=e.length+t.length|0;r.length=n,n=n-1|0;var o=0|e.words[0],i=0|t.words[0],a=o*i,s=67108863&a,u=a/67108864|0;r.words[0]=s;for(var c=1;c>>26,l=67108863&u,f=Math.min(c,t.length-1),h=Math.max(0,c-e.length+1);h<=f;h++){var p=c-h|0;d+=(a=(o=0|e.words[p])*(i=0|t.words[h])+l)/67108864|0,l=67108863&a}r.words[c]=0|l,u=0|d}return 0!==u?r.words[c]=0|u:r.length--,r.strip()}i.prototype.toString=function(e,t){var r;if(t=0|t||1,16===(e=e||10)||"hex"===e){r="";for(var o=0,i=0,a=0;a>>24-o&16777215)||a!==this.length-1?d[6-u.length]+u+r:u+r,(o+=2)>=26&&(o-=26,a--)}for(0!==i&&(r=i.toString(16)+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(e===(0|e)&&e>=2&&e<=36){var c=l[e],h=f[e];r="";var p=this.clone();for(p.negative=0;!p.isZero();){var m=p.modn(h).toString(e);r=(p=p.idivn(h)).isZero()?m+r:d[c-m.length]+m+r}for(this.isZero()&&(r="0"+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}n(!1,"Base should be between 2 and 36")},i.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},i.prototype.toJSON=function(){return this.toString(16)},i.prototype.toBuffer=function(e,t){return n(void 0!==a),this.toArrayLike(a,e,t)},i.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},i.prototype.toArrayLike=function(e,t,r){var o=this.byteLength(),i=r||Math.max(1,o);n(o<=i,"byte array longer than desired length"),n(i>0,"Requested array length <= 0"),this.strip();var a,s,u="le"===t,c=new e(i),d=this.clone();if(u){for(s=0;!d.isZero();s++)a=d.andln(255),d.iushrn(8),c[s]=a;for(;s=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},i.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,r=0;return 0==(8191&t)&&(r+=13,t>>>=13),0==(127&t)&&(r+=7,t>>>=7),0==(15&t)&&(r+=4,t>>>=4),0==(3&t)&&(r+=2,t>>>=2),0==(1&t)&&r++,r},i.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},i.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;te.length?this.clone().ior(e):e.clone().ior(this)},i.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},i.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var r=0;re.length?this.clone().iand(e):e.clone().iand(this)},i.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},i.prototype.iuxor=function(e){var t,r;this.length>e.length?(t=this,r=e):(t=e,r=this);for(var n=0;ne.length?this.clone().ixor(e):e.clone().ixor(this)},i.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},i.prototype.inotn=function(e){n("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),r=e%26;this._expand(t),r>0&&t--;for(var o=0;o0&&(this.words[o]=~this.words[o]&67108863>>26-r),this.strip()},i.prototype.notn=function(e){return this.clone().inotn(e)},i.prototype.setn=function(e,t){n("number"==typeof e&&e>=0);var r=e/26|0,o=e%26;return this._expand(r+1),this.words[r]=t?this.words[r]|1<e.length?(r=this,n=e):(r=e,n=this);for(var o=0,i=0;i>>26;for(;0!==o&&i>>26;if(this.length=r.length,0!==o)this.words[this.length]=o,this.length++;else if(r!==this)for(;ie.length?this.clone().iadd(e):e.clone().iadd(this)},i.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var r,n,o=this.cmp(e);if(0===o)return this.negative=0,this.length=1,this.words[0]=0,this;o>0?(r=this,n=e):(r=e,n=this);for(var i=0,a=0;a>26,this.words[a]=67108863&t;for(;0!==i&&a>26,this.words[a]=67108863&t;if(0===i&&a>>13,h=0|a[1],p=8191&h,m=h>>>13,g=0|a[2],v=8191&g,b=g>>>13,y=0|a[3],w=8191&y,_=y>>>13,S=0|a[4],O=8191&S,k=S>>>13,A=0|a[5],P=8191&A,M=A>>>13,E=0|a[6],C=8191&E,N=E>>>13,x=0|a[7],R=8191&x,I=x>>>13,T=0|a[8],j=8191&T,D=T>>>13,B=0|a[9],U=8191&B,J=B>>>13,H=0|s[0],L=8191&H,z=H>>>13,V=0|s[1],q=8191&V,F=V>>>13,Z=0|s[2],W=8191&Z,K=Z>>>13,G=0|s[3],Y=8191&G,$=G>>>13,X=0|s[4],Q=8191&X,ee=X>>>13,te=0|s[5],re=8191&te,ne=te>>>13,oe=0|s[6],ie=8191&oe,ae=oe>>>13,se=0|s[7],ue=8191&se,ce=se>>>13,de=0|s[8],le=8191&de,fe=de>>>13,he=0|s[9],pe=8191&he,me=he>>>13;r.negative=e.negative^t.negative,r.length=19;var ge=(c+(n=Math.imul(l,L))|0)+((8191&(o=(o=Math.imul(l,z))+Math.imul(f,L)|0))<<13)|0;c=((i=Math.imul(f,z))+(o>>>13)|0)+(ge>>>26)|0,ge&=67108863,n=Math.imul(p,L),o=(o=Math.imul(p,z))+Math.imul(m,L)|0,i=Math.imul(m,z);var ve=(c+(n=n+Math.imul(l,q)|0)|0)+((8191&(o=(o=o+Math.imul(l,F)|0)+Math.imul(f,q)|0))<<13)|0;c=((i=i+Math.imul(f,F)|0)+(o>>>13)|0)+(ve>>>26)|0,ve&=67108863,n=Math.imul(v,L),o=(o=Math.imul(v,z))+Math.imul(b,L)|0,i=Math.imul(b,z),n=n+Math.imul(p,q)|0,o=(o=o+Math.imul(p,F)|0)+Math.imul(m,q)|0,i=i+Math.imul(m,F)|0;var be=(c+(n=n+Math.imul(l,W)|0)|0)+((8191&(o=(o=o+Math.imul(l,K)|0)+Math.imul(f,W)|0))<<13)|0;c=((i=i+Math.imul(f,K)|0)+(o>>>13)|0)+(be>>>26)|0,be&=67108863,n=Math.imul(w,L),o=(o=Math.imul(w,z))+Math.imul(_,L)|0,i=Math.imul(_,z),n=n+Math.imul(v,q)|0,o=(o=o+Math.imul(v,F)|0)+Math.imul(b,q)|0,i=i+Math.imul(b,F)|0,n=n+Math.imul(p,W)|0,o=(o=o+Math.imul(p,K)|0)+Math.imul(m,W)|0,i=i+Math.imul(m,K)|0;var ye=(c+(n=n+Math.imul(l,Y)|0)|0)+((8191&(o=(o=o+Math.imul(l,$)|0)+Math.imul(f,Y)|0))<<13)|0;c=((i=i+Math.imul(f,$)|0)+(o>>>13)|0)+(ye>>>26)|0,ye&=67108863,n=Math.imul(O,L),o=(o=Math.imul(O,z))+Math.imul(k,L)|0,i=Math.imul(k,z),n=n+Math.imul(w,q)|0,o=(o=o+Math.imul(w,F)|0)+Math.imul(_,q)|0,i=i+Math.imul(_,F)|0,n=n+Math.imul(v,W)|0,o=(o=o+Math.imul(v,K)|0)+Math.imul(b,W)|0,i=i+Math.imul(b,K)|0,n=n+Math.imul(p,Y)|0,o=(o=o+Math.imul(p,$)|0)+Math.imul(m,Y)|0,i=i+Math.imul(m,$)|0;var we=(c+(n=n+Math.imul(l,Q)|0)|0)+((8191&(o=(o=o+Math.imul(l,ee)|0)+Math.imul(f,Q)|0))<<13)|0;c=((i=i+Math.imul(f,ee)|0)+(o>>>13)|0)+(we>>>26)|0,we&=67108863,n=Math.imul(P,L),o=(o=Math.imul(P,z))+Math.imul(M,L)|0,i=Math.imul(M,z),n=n+Math.imul(O,q)|0,o=(o=o+Math.imul(O,F)|0)+Math.imul(k,q)|0,i=i+Math.imul(k,F)|0,n=n+Math.imul(w,W)|0,o=(o=o+Math.imul(w,K)|0)+Math.imul(_,W)|0,i=i+Math.imul(_,K)|0,n=n+Math.imul(v,Y)|0,o=(o=o+Math.imul(v,$)|0)+Math.imul(b,Y)|0,i=i+Math.imul(b,$)|0,n=n+Math.imul(p,Q)|0,o=(o=o+Math.imul(p,ee)|0)+Math.imul(m,Q)|0,i=i+Math.imul(m,ee)|0;var _e=(c+(n=n+Math.imul(l,re)|0)|0)+((8191&(o=(o=o+Math.imul(l,ne)|0)+Math.imul(f,re)|0))<<13)|0;c=((i=i+Math.imul(f,ne)|0)+(o>>>13)|0)+(_e>>>26)|0,_e&=67108863,n=Math.imul(C,L),o=(o=Math.imul(C,z))+Math.imul(N,L)|0,i=Math.imul(N,z),n=n+Math.imul(P,q)|0,o=(o=o+Math.imul(P,F)|0)+Math.imul(M,q)|0,i=i+Math.imul(M,F)|0,n=n+Math.imul(O,W)|0,o=(o=o+Math.imul(O,K)|0)+Math.imul(k,W)|0,i=i+Math.imul(k,K)|0,n=n+Math.imul(w,Y)|0,o=(o=o+Math.imul(w,$)|0)+Math.imul(_,Y)|0,i=i+Math.imul(_,$)|0,n=n+Math.imul(v,Q)|0,o=(o=o+Math.imul(v,ee)|0)+Math.imul(b,Q)|0,i=i+Math.imul(b,ee)|0,n=n+Math.imul(p,re)|0,o=(o=o+Math.imul(p,ne)|0)+Math.imul(m,re)|0,i=i+Math.imul(m,ne)|0;var Se=(c+(n=n+Math.imul(l,ie)|0)|0)+((8191&(o=(o=o+Math.imul(l,ae)|0)+Math.imul(f,ie)|0))<<13)|0;c=((i=i+Math.imul(f,ae)|0)+(o>>>13)|0)+(Se>>>26)|0,Se&=67108863,n=Math.imul(R,L),o=(o=Math.imul(R,z))+Math.imul(I,L)|0,i=Math.imul(I,z),n=n+Math.imul(C,q)|0,o=(o=o+Math.imul(C,F)|0)+Math.imul(N,q)|0,i=i+Math.imul(N,F)|0,n=n+Math.imul(P,W)|0,o=(o=o+Math.imul(P,K)|0)+Math.imul(M,W)|0,i=i+Math.imul(M,K)|0,n=n+Math.imul(O,Y)|0,o=(o=o+Math.imul(O,$)|0)+Math.imul(k,Y)|0,i=i+Math.imul(k,$)|0,n=n+Math.imul(w,Q)|0,o=(o=o+Math.imul(w,ee)|0)+Math.imul(_,Q)|0,i=i+Math.imul(_,ee)|0,n=n+Math.imul(v,re)|0,o=(o=o+Math.imul(v,ne)|0)+Math.imul(b,re)|0,i=i+Math.imul(b,ne)|0,n=n+Math.imul(p,ie)|0,o=(o=o+Math.imul(p,ae)|0)+Math.imul(m,ie)|0,i=i+Math.imul(m,ae)|0;var Oe=(c+(n=n+Math.imul(l,ue)|0)|0)+((8191&(o=(o=o+Math.imul(l,ce)|0)+Math.imul(f,ue)|0))<<13)|0;c=((i=i+Math.imul(f,ce)|0)+(o>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,n=Math.imul(j,L),o=(o=Math.imul(j,z))+Math.imul(D,L)|0,i=Math.imul(D,z),n=n+Math.imul(R,q)|0,o=(o=o+Math.imul(R,F)|0)+Math.imul(I,q)|0,i=i+Math.imul(I,F)|0,n=n+Math.imul(C,W)|0,o=(o=o+Math.imul(C,K)|0)+Math.imul(N,W)|0,i=i+Math.imul(N,K)|0,n=n+Math.imul(P,Y)|0,o=(o=o+Math.imul(P,$)|0)+Math.imul(M,Y)|0,i=i+Math.imul(M,$)|0,n=n+Math.imul(O,Q)|0,o=(o=o+Math.imul(O,ee)|0)+Math.imul(k,Q)|0,i=i+Math.imul(k,ee)|0,n=n+Math.imul(w,re)|0,o=(o=o+Math.imul(w,ne)|0)+Math.imul(_,re)|0,i=i+Math.imul(_,ne)|0,n=n+Math.imul(v,ie)|0,o=(o=o+Math.imul(v,ae)|0)+Math.imul(b,ie)|0,i=i+Math.imul(b,ae)|0,n=n+Math.imul(p,ue)|0,o=(o=o+Math.imul(p,ce)|0)+Math.imul(m,ue)|0,i=i+Math.imul(m,ce)|0;var ke=(c+(n=n+Math.imul(l,le)|0)|0)+((8191&(o=(o=o+Math.imul(l,fe)|0)+Math.imul(f,le)|0))<<13)|0;c=((i=i+Math.imul(f,fe)|0)+(o>>>13)|0)+(ke>>>26)|0,ke&=67108863,n=Math.imul(U,L),o=(o=Math.imul(U,z))+Math.imul(J,L)|0,i=Math.imul(J,z),n=n+Math.imul(j,q)|0,o=(o=o+Math.imul(j,F)|0)+Math.imul(D,q)|0,i=i+Math.imul(D,F)|0,n=n+Math.imul(R,W)|0,o=(o=o+Math.imul(R,K)|0)+Math.imul(I,W)|0,i=i+Math.imul(I,K)|0,n=n+Math.imul(C,Y)|0,o=(o=o+Math.imul(C,$)|0)+Math.imul(N,Y)|0,i=i+Math.imul(N,$)|0,n=n+Math.imul(P,Q)|0,o=(o=o+Math.imul(P,ee)|0)+Math.imul(M,Q)|0,i=i+Math.imul(M,ee)|0,n=n+Math.imul(O,re)|0,o=(o=o+Math.imul(O,ne)|0)+Math.imul(k,re)|0,i=i+Math.imul(k,ne)|0,n=n+Math.imul(w,ie)|0,o=(o=o+Math.imul(w,ae)|0)+Math.imul(_,ie)|0,i=i+Math.imul(_,ae)|0,n=n+Math.imul(v,ue)|0,o=(o=o+Math.imul(v,ce)|0)+Math.imul(b,ue)|0,i=i+Math.imul(b,ce)|0,n=n+Math.imul(p,le)|0,o=(o=o+Math.imul(p,fe)|0)+Math.imul(m,le)|0,i=i+Math.imul(m,fe)|0;var Ae=(c+(n=n+Math.imul(l,pe)|0)|0)+((8191&(o=(o=o+Math.imul(l,me)|0)+Math.imul(f,pe)|0))<<13)|0;c=((i=i+Math.imul(f,me)|0)+(o>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,n=Math.imul(U,q),o=(o=Math.imul(U,F))+Math.imul(J,q)|0,i=Math.imul(J,F),n=n+Math.imul(j,W)|0,o=(o=o+Math.imul(j,K)|0)+Math.imul(D,W)|0,i=i+Math.imul(D,K)|0,n=n+Math.imul(R,Y)|0,o=(o=o+Math.imul(R,$)|0)+Math.imul(I,Y)|0,i=i+Math.imul(I,$)|0,n=n+Math.imul(C,Q)|0,o=(o=o+Math.imul(C,ee)|0)+Math.imul(N,Q)|0,i=i+Math.imul(N,ee)|0,n=n+Math.imul(P,re)|0,o=(o=o+Math.imul(P,ne)|0)+Math.imul(M,re)|0,i=i+Math.imul(M,ne)|0,n=n+Math.imul(O,ie)|0,o=(o=o+Math.imul(O,ae)|0)+Math.imul(k,ie)|0,i=i+Math.imul(k,ae)|0,n=n+Math.imul(w,ue)|0,o=(o=o+Math.imul(w,ce)|0)+Math.imul(_,ue)|0,i=i+Math.imul(_,ce)|0,n=n+Math.imul(v,le)|0,o=(o=o+Math.imul(v,fe)|0)+Math.imul(b,le)|0,i=i+Math.imul(b,fe)|0;var Pe=(c+(n=n+Math.imul(p,pe)|0)|0)+((8191&(o=(o=o+Math.imul(p,me)|0)+Math.imul(m,pe)|0))<<13)|0;c=((i=i+Math.imul(m,me)|0)+(o>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,n=Math.imul(U,W),o=(o=Math.imul(U,K))+Math.imul(J,W)|0,i=Math.imul(J,K),n=n+Math.imul(j,Y)|0,o=(o=o+Math.imul(j,$)|0)+Math.imul(D,Y)|0,i=i+Math.imul(D,$)|0,n=n+Math.imul(R,Q)|0,o=(o=o+Math.imul(R,ee)|0)+Math.imul(I,Q)|0,i=i+Math.imul(I,ee)|0,n=n+Math.imul(C,re)|0,o=(o=o+Math.imul(C,ne)|0)+Math.imul(N,re)|0,i=i+Math.imul(N,ne)|0,n=n+Math.imul(P,ie)|0,o=(o=o+Math.imul(P,ae)|0)+Math.imul(M,ie)|0,i=i+Math.imul(M,ae)|0,n=n+Math.imul(O,ue)|0,o=(o=o+Math.imul(O,ce)|0)+Math.imul(k,ue)|0,i=i+Math.imul(k,ce)|0,n=n+Math.imul(w,le)|0,o=(o=o+Math.imul(w,fe)|0)+Math.imul(_,le)|0,i=i+Math.imul(_,fe)|0;var Me=(c+(n=n+Math.imul(v,pe)|0)|0)+((8191&(o=(o=o+Math.imul(v,me)|0)+Math.imul(b,pe)|0))<<13)|0;c=((i=i+Math.imul(b,me)|0)+(o>>>13)|0)+(Me>>>26)|0,Me&=67108863,n=Math.imul(U,Y),o=(o=Math.imul(U,$))+Math.imul(J,Y)|0,i=Math.imul(J,$),n=n+Math.imul(j,Q)|0,o=(o=o+Math.imul(j,ee)|0)+Math.imul(D,Q)|0,i=i+Math.imul(D,ee)|0,n=n+Math.imul(R,re)|0,o=(o=o+Math.imul(R,ne)|0)+Math.imul(I,re)|0,i=i+Math.imul(I,ne)|0,n=n+Math.imul(C,ie)|0,o=(o=o+Math.imul(C,ae)|0)+Math.imul(N,ie)|0,i=i+Math.imul(N,ae)|0,n=n+Math.imul(P,ue)|0,o=(o=o+Math.imul(P,ce)|0)+Math.imul(M,ue)|0,i=i+Math.imul(M,ce)|0,n=n+Math.imul(O,le)|0,o=(o=o+Math.imul(O,fe)|0)+Math.imul(k,le)|0,i=i+Math.imul(k,fe)|0;var Ee=(c+(n=n+Math.imul(w,pe)|0)|0)+((8191&(o=(o=o+Math.imul(w,me)|0)+Math.imul(_,pe)|0))<<13)|0;c=((i=i+Math.imul(_,me)|0)+(o>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,n=Math.imul(U,Q),o=(o=Math.imul(U,ee))+Math.imul(J,Q)|0,i=Math.imul(J,ee),n=n+Math.imul(j,re)|0,o=(o=o+Math.imul(j,ne)|0)+Math.imul(D,re)|0,i=i+Math.imul(D,ne)|0,n=n+Math.imul(R,ie)|0,o=(o=o+Math.imul(R,ae)|0)+Math.imul(I,ie)|0,i=i+Math.imul(I,ae)|0,n=n+Math.imul(C,ue)|0,o=(o=o+Math.imul(C,ce)|0)+Math.imul(N,ue)|0,i=i+Math.imul(N,ce)|0,n=n+Math.imul(P,le)|0,o=(o=o+Math.imul(P,fe)|0)+Math.imul(M,le)|0,i=i+Math.imul(M,fe)|0;var Ce=(c+(n=n+Math.imul(O,pe)|0)|0)+((8191&(o=(o=o+Math.imul(O,me)|0)+Math.imul(k,pe)|0))<<13)|0;c=((i=i+Math.imul(k,me)|0)+(o>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,n=Math.imul(U,re),o=(o=Math.imul(U,ne))+Math.imul(J,re)|0,i=Math.imul(J,ne),n=n+Math.imul(j,ie)|0,o=(o=o+Math.imul(j,ae)|0)+Math.imul(D,ie)|0,i=i+Math.imul(D,ae)|0,n=n+Math.imul(R,ue)|0,o=(o=o+Math.imul(R,ce)|0)+Math.imul(I,ue)|0,i=i+Math.imul(I,ce)|0,n=n+Math.imul(C,le)|0,o=(o=o+Math.imul(C,fe)|0)+Math.imul(N,le)|0,i=i+Math.imul(N,fe)|0;var Ne=(c+(n=n+Math.imul(P,pe)|0)|0)+((8191&(o=(o=o+Math.imul(P,me)|0)+Math.imul(M,pe)|0))<<13)|0;c=((i=i+Math.imul(M,me)|0)+(o>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,n=Math.imul(U,ie),o=(o=Math.imul(U,ae))+Math.imul(J,ie)|0,i=Math.imul(J,ae),n=n+Math.imul(j,ue)|0,o=(o=o+Math.imul(j,ce)|0)+Math.imul(D,ue)|0,i=i+Math.imul(D,ce)|0,n=n+Math.imul(R,le)|0,o=(o=o+Math.imul(R,fe)|0)+Math.imul(I,le)|0,i=i+Math.imul(I,fe)|0;var xe=(c+(n=n+Math.imul(C,pe)|0)|0)+((8191&(o=(o=o+Math.imul(C,me)|0)+Math.imul(N,pe)|0))<<13)|0;c=((i=i+Math.imul(N,me)|0)+(o>>>13)|0)+(xe>>>26)|0,xe&=67108863,n=Math.imul(U,ue),o=(o=Math.imul(U,ce))+Math.imul(J,ue)|0,i=Math.imul(J,ce),n=n+Math.imul(j,le)|0,o=(o=o+Math.imul(j,fe)|0)+Math.imul(D,le)|0,i=i+Math.imul(D,fe)|0;var Re=(c+(n=n+Math.imul(R,pe)|0)|0)+((8191&(o=(o=o+Math.imul(R,me)|0)+Math.imul(I,pe)|0))<<13)|0;c=((i=i+Math.imul(I,me)|0)+(o>>>13)|0)+(Re>>>26)|0,Re&=67108863,n=Math.imul(U,le),o=(o=Math.imul(U,fe))+Math.imul(J,le)|0,i=Math.imul(J,fe);var Ie=(c+(n=n+Math.imul(j,pe)|0)|0)+((8191&(o=(o=o+Math.imul(j,me)|0)+Math.imul(D,pe)|0))<<13)|0;c=((i=i+Math.imul(D,me)|0)+(o>>>13)|0)+(Ie>>>26)|0,Ie&=67108863;var Te=(c+(n=Math.imul(U,pe))|0)+((8191&(o=(o=Math.imul(U,me))+Math.imul(J,pe)|0))<<13)|0;return c=((i=Math.imul(J,me))+(o>>>13)|0)+(Te>>>26)|0,Te&=67108863,u[0]=ge,u[1]=ve,u[2]=be,u[3]=ye,u[4]=we,u[5]=_e,u[6]=Se,u[7]=Oe,u[8]=ke,u[9]=Ae,u[10]=Pe,u[11]=Me,u[12]=Ee,u[13]=Ce,u[14]=Ne,u[15]=xe,u[16]=Re,u[17]=Ie,u[18]=Te,0!==c&&(u[19]=c,r.length++),r};function m(e,t,r){return(new g).mulp(e,t,r)}function g(e,t){this.x=e,this.y=t}Math.imul||(p=h),i.prototype.mulTo=function(e,t){var r,n=this.length+e.length;return r=10===this.length&&10===e.length?p(this,e,t):n<63?h(this,e,t):n<1024?function(e,t,r){r.negative=t.negative^e.negative,r.length=e.length+t.length;for(var n=0,o=0,i=0;i>>26)|0)>>>26,a&=67108863}r.words[i]=s,n=a,a=o}return 0!==n?r.words[i]=n:r.length--,r.strip()}(this,e,t):m(this,e,t),r},g.prototype.makeRBT=function(e){for(var t=new Array(e),r=i.prototype._countBits(e)-1,n=0;n>=1;return n},g.prototype.permute=function(e,t,r,n,o,i){for(var a=0;a>>=1)o++;return 1<>>=13,r[2*a+1]=8191&i,i>>>=13;for(a=2*t;a>=26,t+=o/67108864|0,t+=i>>>26,this.words[r]=67108863&i}return 0!==t&&(this.words[r]=t,this.length++),this},i.prototype.muln=function(e){return this.clone().imuln(e)},i.prototype.sqr=function(){return this.mul(this)},i.prototype.isqr=function(){return this.imul(this.clone())},i.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),r=0;r>>o}return t}(e);if(0===t.length)return new i(1);for(var r=this,n=0;n=0);var t,r=e%26,o=(e-r)/26,i=67108863>>>26-r<<26-r;if(0!==r){var a=0;for(t=0;t>>26-r}a&&(this.words[t]=a,this.length++)}if(0!==o){for(t=this.length-1;t>=0;t--)this.words[t+o]=this.words[t];for(t=0;t=0),o=t?(t-t%26)/26:0;var i=e%26,a=Math.min((e-i)/26,this.length),s=67108863^67108863>>>i<a)for(this.length-=a,c=0;c=0&&(0!==d||c>=o);c--){var l=0|this.words[c];this.words[c]=d<<26-i|l>>>i,d=l&s}return u&&0!==d&&(u.words[u.length++]=d),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},i.prototype.ishrn=function(e,t,r){return n(0===this.negative),this.iushrn(e,t,r)},i.prototype.shln=function(e){return this.clone().ishln(e)},i.prototype.ushln=function(e){return this.clone().iushln(e)},i.prototype.shrn=function(e){return this.clone().ishrn(e)},i.prototype.ushrn=function(e){return this.clone().iushrn(e)},i.prototype.testn=function(e){n("number"==typeof e&&e>=0);var t=e%26,r=(e-t)/26,o=1<=0);var t=e%26,r=(e-t)/26;if(n(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==t&&r++,this.length=Math.min(r,this.length),0!==t){var o=67108863^67108863>>>t<=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},i.prototype.isubn=function(e){if(n("number"==typeof e),n(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t>26)-(u/67108864|0),this.words[o+r]=67108863&i}for(;o>26,this.words[o+r]=67108863&i;if(0===s)return this.strip();for(n(-1===s),s=0,o=0;o>26,this.words[o]=67108863&i;return this.negative=1,this.strip()},i.prototype._wordDiv=function(e,t){var r=(this.length,e.length),n=this.clone(),o=e,a=0|o.words[o.length-1];0!=(r=26-this._countBits(a))&&(o=o.ushln(r),n.iushln(r),a=0|o.words[o.length-1]);var s,u=n.length-o.length;if("mod"!==t){(s=new i(null)).length=u+1,s.words=new Array(s.length);for(var c=0;c=0;l--){var f=67108864*(0|n.words[o.length+l])+(0|n.words[o.length+l-1]);for(f=Math.min(f/a|0,67108863),n._ishlnsubmul(o,f,l);0!==n.negative;)f--,n.negative=0,n._ishlnsubmul(o,1,l),n.isZero()||(n.negative^=1);s&&(s.words[l]=f)}return s&&s.strip(),n.strip(),"div"!==t&&0!==r&&n.iushrn(r),{div:s||null,mod:n}},i.prototype.divmod=function(e,t,r){return n(!e.isZero()),this.isZero()?{div:new i(0),mod:new i(0)}:0!==this.negative&&0===e.negative?(s=this.neg().divmod(e,t),"mod"!==t&&(o=s.div.neg()),"div"!==t&&(a=s.mod.neg(),r&&0!==a.negative&&a.iadd(e)),{div:o,mod:a}):0===this.negative&&0!==e.negative?(s=this.divmod(e.neg(),t),"mod"!==t&&(o=s.div.neg()),{div:o,mod:s.mod}):0!=(this.negative&e.negative)?(s=this.neg().divmod(e.neg(),t),"div"!==t&&(a=s.mod.neg(),r&&0!==a.negative&&a.isub(e)),{div:s.div,mod:a}):e.length>this.length||this.cmp(e)<0?{div:new i(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new i(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new i(this.modn(e.words[0]))}:this._wordDiv(e,t);var o,a,s},i.prototype.div=function(e){return this.divmod(e,"div",!1).div},i.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},i.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},i.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var r=0!==t.div.negative?t.mod.isub(e):t.mod,n=e.ushrn(1),o=e.andln(1),i=r.cmp(n);return i<0||1===o&&0===i?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},i.prototype.modn=function(e){n(e<=67108863);for(var t=(1<<26)%e,r=0,o=this.length-1;o>=0;o--)r=(t*r+(0|this.words[o]))%e;return r},i.prototype.idivn=function(e){n(e<=67108863);for(var t=0,r=this.length-1;r>=0;r--){var o=(0|this.words[r])+67108864*t;this.words[r]=o/e|0,t=o%e}return this.strip()},i.prototype.divn=function(e){return this.clone().idivn(e)},i.prototype.egcd=function(e){n(0===e.negative),n(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var o=new i(1),a=new i(0),s=new i(0),u=new i(1),c=0;t.isEven()&&r.isEven();)t.iushrn(1),r.iushrn(1),++c;for(var d=r.clone(),l=t.clone();!t.isZero();){for(var f=0,h=1;0==(t.words[0]&h)&&f<26;++f,h<<=1);if(f>0)for(t.iushrn(f);f-- >0;)(o.isOdd()||a.isOdd())&&(o.iadd(d),a.isub(l)),o.iushrn(1),a.iushrn(1);for(var p=0,m=1;0==(r.words[0]&m)&&p<26;++p,m<<=1);if(p>0)for(r.iushrn(p);p-- >0;)(s.isOdd()||u.isOdd())&&(s.iadd(d),u.isub(l)),s.iushrn(1),u.iushrn(1);t.cmp(r)>=0?(t.isub(r),o.isub(s),a.isub(u)):(r.isub(t),s.isub(o),u.isub(a))}return{a:s,b:u,gcd:r.iushln(c)}},i.prototype._invmp=function(e){n(0===e.negative),n(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var o,a=new i(1),s=new i(0),u=r.clone();t.cmpn(1)>0&&r.cmpn(1)>0;){for(var c=0,d=1;0==(t.words[0]&d)&&c<26;++c,d<<=1);if(c>0)for(t.iushrn(c);c-- >0;)a.isOdd()&&a.iadd(u),a.iushrn(1);for(var l=0,f=1;0==(r.words[0]&f)&&l<26;++l,f<<=1);if(l>0)for(r.iushrn(l);l-- >0;)s.isOdd()&&s.iadd(u),s.iushrn(1);t.cmp(r)>=0?(t.isub(r),a.isub(s)):(r.isub(t),s.isub(a))}return(o=0===t.cmpn(1)?a:s).cmpn(0)<0&&o.iadd(e),o},i.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),r=e.clone();t.negative=0,r.negative=0;for(var n=0;t.isEven()&&r.isEven();n++)t.iushrn(1),r.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;r.isEven();)r.iushrn(1);var o=t.cmp(r);if(o<0){var i=t;t=r,r=i}else if(0===o||0===r.cmpn(1))break;t.isub(r)}return r.iushln(n)},i.prototype.invm=function(e){return this.egcd(e).a.umod(e)},i.prototype.isEven=function(){return 0==(1&this.words[0])},i.prototype.isOdd=function(){return 1==(1&this.words[0])},i.prototype.andln=function(e){return this.words[0]&e},i.prototype.bincn=function(e){n("number"==typeof e);var t=e%26,r=(e-t)/26,o=1<>>26,s&=67108863,this.words[a]=s}return 0!==i&&(this.words[a]=i,this.length++),this},i.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},i.prototype.cmpn=function(e){var t,r=e<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)t=1;else{r&&(e=-e),n(e<=67108863,"Number is too big");var o=0|this.words[0];t=o===e?0:oe.length)return 1;if(this.length=0;r--){var n=0|this.words[r],o=0|e.words[r];if(n!==o){no&&(t=1);break}}return t},i.prototype.gtn=function(e){return 1===this.cmpn(e)},i.prototype.gt=function(e){return 1===this.cmp(e)},i.prototype.gten=function(e){return this.cmpn(e)>=0},i.prototype.gte=function(e){return this.cmp(e)>=0},i.prototype.ltn=function(e){return-1===this.cmpn(e)},i.prototype.lt=function(e){return-1===this.cmp(e)},i.prototype.lten=function(e){return this.cmpn(e)<=0},i.prototype.lte=function(e){return this.cmp(e)<=0},i.prototype.eqn=function(e){return 0===this.cmpn(e)},i.prototype.eq=function(e){return 0===this.cmp(e)},i.red=function(e){return new O(e)},i.prototype.toRed=function(e){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},i.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},i.prototype._forceRed=function(e){return this.red=e,this},i.prototype.forceRed=function(e){return n(!this.red,"Already a number in reduction context"),this._forceRed(e)},i.prototype.redAdd=function(e){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},i.prototype.redIAdd=function(e){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},i.prototype.redSub=function(e){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},i.prototype.redISub=function(e){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},i.prototype.redShl=function(e){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},i.prototype.redMul=function(e){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},i.prototype.redIMul=function(e){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},i.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},i.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},i.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},i.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},i.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},i.prototype.redPow=function(e){return n(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var v={k256:null,p224:null,p192:null,p25519:null};function b(e,t){this.name=e,this.p=new i(t,16),this.n=this.p.bitLength(),this.k=new i(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function y(){b.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function w(){b.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function _(){b.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function S(){b.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function O(e){if("string"==typeof e){var t=i._prime(e);this.m=t.p,this.prime=t}else n(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function k(e){O.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new i(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}b.prototype._tmp=function(){var e=new i(null);return e.words=new Array(Math.ceil(this.n/13)),e},b.prototype.ireduce=function(e){var t,r=e;do{this.split(r,this.tmp),t=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(t>this.n);var n=t0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},b.prototype.split=function(e,t){e.iushrn(this.n,0,t)},b.prototype.imulK=function(e){return e.imul(this.k)},o(y,b),y.prototype.split=function(e,t){for(var r=4194303,n=Math.min(e.length,9),o=0;o>>22,i=a}i>>>=22,e.words[o-10]=i,0===i&&e.length>10?e.length-=10:e.length-=9},y.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,r=0;r>>=26,e.words[r]=o,t=n}return 0!==t&&(e.words[e.length++]=t),e},i._prime=function(e){if(v[e])return v[e];var t;if("k256"===e)t=new y;else if("p224"===e)t=new w;else if("p192"===e)t=new _;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new S}return v[e]=t,t},O.prototype._verify1=function(e){n(0===e.negative,"red works only with positives"),n(e.red,"red works only with red numbers")},O.prototype._verify2=function(e,t){n(0==(e.negative|t.negative),"red works only with positives"),n(e.red&&e.red===t.red,"red works only with red numbers")},O.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},O.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},O.prototype.add=function(e,t){this._verify2(e,t);var r=e.add(t);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},O.prototype.iadd=function(e,t){this._verify2(e,t);var r=e.iadd(t);return r.cmp(this.m)>=0&&r.isub(this.m),r},O.prototype.sub=function(e,t){this._verify2(e,t);var r=e.sub(t);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},O.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},O.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},O.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},O.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},O.prototype.isqr=function(e){return this.imul(e,e.clone())},O.prototype.sqr=function(e){return this.mul(e,e)},O.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(n(t%2==1),3===t){var r=this.m.add(new i(1)).iushrn(2);return this.pow(e,r)}for(var o=this.m.subn(1),a=0;!o.isZero()&&0===o.andln(1);)a++,o.iushrn(1);n(!o.isZero());var s=new i(1).toRed(this),u=s.redNeg(),c=this.m.subn(1).iushrn(1),d=this.m.bitLength();for(d=new i(2*d*d).toRed(this);0!==this.pow(d,c).cmp(u);)d.redIAdd(u);for(var l=this.pow(d,o),f=this.pow(e,o.addn(1).iushrn(1)),h=this.pow(e,o),p=a;0!==h.cmp(s);){for(var m=h,g=0;0!==m.cmp(s);g++)m=m.redSqr();n(g=0;n--){for(var c=t.words[n],d=u-1;d>=0;d--){var l=c>>d&1;o!==r[0]&&(o=this.sqr(o)),0!==l||0!==a?(a<<=1,a|=l,(4==++s||0===n&&0===d)&&(o=this.mul(o,r[a]),s=0,a=0)):s=0}u=26}return o},O.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},O.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},i.mont=function(e){return new k(e)},o(k,O),k.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},k.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},k.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var r=e.imul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=r.isub(n).iushrn(this.shift),i=o;return o.cmp(this.m)>=0?i=o.isub(this.m):o.cmpn(0)<0&&(i=o.iadd(this.m)),i._forceRed(this)},k.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new i(0)._forceRed(this);var r=e.mul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=r.isub(n).iushrn(this.shift),a=o;return o.cmp(this.m)>=0?a=o.isub(this.m):o.cmpn(0)<0&&(a=o.iadd(this.m)),a._forceRed(this)},k.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e=r.nmd(e),this)},16444:(e,t,r)=>{"use strict";r.r(t),r.d(t,{BaseContract:()=>Rn,BigNumber:()=>K,Contract:()=>In,ContractFactory:()=>Tn,FixedNumber:()=>Fn,Signer:()=>ur,VoidSigner:()=>cr,Wallet:()=>yi,Wordlist:()=>So,constants:()=>o,errors:()=>g,ethers:()=>u,getDefaultProvider:()=>tu,logger:()=>wu,providers:()=>i,utils:()=>s,version:()=>yu,wordlists:()=>Po});var n={};r.r(n),r.d(n,{decode:()=>Pe,encode:()=>Oe});var o={};r.r(o),r.d(o,{AddressZero:()=>Si,EtherSymbol:()=>ki,HashZero:()=>Oi,MaxInt256:()=>mt,MaxUint256:()=>ht,MinInt256:()=>pt,NegativeOne:()=>ut,One:()=>dt,Two:()=>lt,WeiPerEther:()=>ft,Zero:()=>ct});var i={};r.r(i),r.d(i,{AlchemyProvider:()=>us,AlchemyWebSocketProvider:()=>ss,AnkrProvider:()=>fs,BaseProvider:()=>Ba,CloudflareProvider:()=>ps,EtherscanProvider:()=>Os,FallbackProvider:()=>Us,Formatter:()=>ca,InfuraProvider:()=>Vs,InfuraWebSocketProvider:()=>zs,IpcProvider:()=>Js,JsonRpcBatchProvider:()=>qs,JsonRpcProvider:()=>Ya,JsonRpcSigner:()=>Wa,NodesmithProvider:()=>Zs,PocketProvider:()=>Gs,Provider:()=>nr,Resolver:()=>Ta,StaticJsonRpcProvider:()=>ns,UrlJsonRpcProvider:()=>os,Web3Provider:()=>Qs,WebSocketProvider:()=>ts,getDefaultProvider:()=>tu,getNetwork:()=>Ri,isCommunityResourcable:()=>da,isCommunityResource:()=>la,showThrottleMessage:()=>ha});var a={};r.r(a),r.d(a,{decode:()=>Ii,encode:()=>Ti});var s={};r.r(s),r.d(s,{AbiCoder:()=>Ft,ConstructorFragment:()=>Tt,ErrorFragment:()=>Bt,EventFragment:()=>Nt,FormatTypes:()=>At,Fragment:()=>Ct,FunctionFragment:()=>jt,HDNode:()=>Bo,Indexed:()=>$t,Interface:()=>er,LogDescription:()=>Kt,Logger:()=>b,ParamType:()=>Mt,RLP:()=>n,SigningKey:()=>$r,SupportedAlgorithm:()=>po,TransactionDescription:()=>Gt,TransactionTypes:()=>tn,UnicodeNormalizationForm:()=>Je,Utf8ErrorFuncs:()=>ze,Utf8ErrorReason:()=>He,_TypedDataEncoder:()=>lo,_fetchData:()=>ra,_toEscapedUtf8String:()=>Ze,accessListify:()=>ln,arrayify:()=>A,base58:()=>ho,base64:()=>a,checkProperties:()=>ne,checkResultErrors:()=>fe,commify:()=>pu,computeAddress:()=>sn,computeHmac:()=>yo,computePublicKey:()=>Qr,concat:()=>P,deepCopy:()=>ue,defaultAbiCoder:()=>Zt,defaultPath:()=>Do,defineReadOnly:()=>ee,dnsEncode:()=>$i,entropyToMnemonic:()=>Ho,fetchJson:()=>na,formatBytes32String:()=>du,formatEther:()=>vu,formatUnits:()=>mu,getAccountPath:()=>zo,getAddress:()=>Ie,getContractAddress:()=>De,getCreate2Address:()=>Be,getIcapAddress:()=>je,getJsonWalletAddress:()=>mi,getStatic:()=>te,hashMessage:()=>Kn,hexConcat:()=>T,hexDataLength:()=>R,hexDataSlice:()=>I,hexStripZeros:()=>D,hexValue:()=>j,hexZeroPad:()=>B,hexlify:()=>x,id:()=>Ye,isAddress:()=>Te,isBytes:()=>k,isBytesLike:()=>S,isHexString:()=>C,isValidMnemonic:()=>Lo,isValidName:()=>Gi,joinSignature:()=>J,keccak256:()=>be,mnemonicToEntropy:()=>Jo,mnemonicToSeed:()=>Uo,namehash:()=>Yi,nameprep:()=>Fi,parseBytes32String:()=>lu,parseEther:()=>bu,parseTransaction:()=>vn,parseUnits:()=>gu,poll:()=>oa,randomBytes:()=>Zo,recoverAddress:()=>un,recoverPublicKey:()=>Xr,resolveProperties:()=>re,ripemd160:()=>go,serializeTransaction:()=>mn,sha256:()=>vo,sha512:()=>bo,shallowCopy:()=>oe,shuffled:()=>ks,solidityKeccak256:()=>uu,solidityPack:()=>su,soliditySha256:()=>cu,splitSignature:()=>U,stripZeros:()=>M,toUtf8Bytes:()=>qe,toUtf8CodePoints:()=>Ge,toUtf8String:()=>Ke,verifyMessage:()=>wi,verifyTypedData:()=>_i,zeroPad:()=>E});var u={};r.r(u),r.d(u,{BaseContract:()=>Rn,BigNumber:()=>K,Contract:()=>In,ContractFactory:()=>Tn,FixedNumber:()=>Fn,Signer:()=>ur,VoidSigner:()=>cr,Wallet:()=>yi,Wordlist:()=>So,constants:()=>o,errors:()=>g,getDefaultProvider:()=>tu,logger:()=>wu,providers:()=>i,utils:()=>s,version:()=>yu,wordlists:()=>Po});let c=!1,d=!1;const l={debug:1,default:2,info:2,warning:3,error:4,off:5};let f=l.default,h=null;const p=function(){try{const e=[];if(["NFD","NFC","NFKD","NFKC"].forEach((t=>{try{if("test"!=="test".normalize(t))throw new Error("bad normalize")}catch(r){e.push(t)}})),e.length)throw new Error("missing "+e.join(", "));if(String.fromCharCode(233).normalize("NFD")!==String.fromCharCode(101,769))throw new Error("broken implementation")}catch(e){return e.message}return null}();var m,g;!function(e){e.DEBUG="DEBUG",e.INFO="INFO",e.WARNING="WARNING",e.ERROR="ERROR",e.OFF="OFF"}(m||(m={})),function(e){e.UNKNOWN_ERROR="UNKNOWN_ERROR",e.NOT_IMPLEMENTED="NOT_IMPLEMENTED",e.UNSUPPORTED_OPERATION="UNSUPPORTED_OPERATION",e.NETWORK_ERROR="NETWORK_ERROR",e.SERVER_ERROR="SERVER_ERROR",e.TIMEOUT="TIMEOUT",e.BUFFER_OVERRUN="BUFFER_OVERRUN",e.NUMERIC_FAULT="NUMERIC_FAULT",e.MISSING_NEW="MISSING_NEW",e.INVALID_ARGUMENT="INVALID_ARGUMENT",e.MISSING_ARGUMENT="MISSING_ARGUMENT",e.UNEXPECTED_ARGUMENT="UNEXPECTED_ARGUMENT",e.CALL_EXCEPTION="CALL_EXCEPTION",e.INSUFFICIENT_FUNDS="INSUFFICIENT_FUNDS",e.NONCE_EXPIRED="NONCE_EXPIRED",e.REPLACEMENT_UNDERPRICED="REPLACEMENT_UNDERPRICED",e.UNPREDICTABLE_GAS_LIMIT="UNPREDICTABLE_GAS_LIMIT",e.TRANSACTION_REPLACED="TRANSACTION_REPLACED"}(g||(g={}));const v="0123456789abcdef";class b{constructor(e){Object.defineProperty(this,"version",{enumerable:!0,value:e,writable:!1})}_log(e,t){const r=e.toLowerCase();null==l[r]&&this.throwArgumentError("invalid log level name","logLevel",e),f>l[r]||console.log.apply(console,t)}debug(...e){this._log(b.levels.DEBUG,e)}info(...e){this._log(b.levels.INFO,e)}warn(...e){this._log(b.levels.WARNING,e)}makeError(e,t,r){if(d)return this.makeError("censored error",t,{});t||(t=b.errors.UNKNOWN_ERROR),r||(r={});const n=[];Object.keys(r).forEach((e=>{const t=r[e];try{if(t instanceof Uint8Array){let r="";for(let e=0;e>4],r+=v[15&t[e]];n.push(e+"=Uint8Array(0x"+r+")")}else n.push(e+"="+JSON.stringify(t))}catch(t){n.push(e+"="+JSON.stringify(r[e].toString()))}})),n.push(`code=${t}`),n.push(`version=${this.version}`);const o=e;let i="";switch(t){case g.NUMERIC_FAULT:{i="NUMERIC_FAULT";const t=e;switch(t){case"overflow":case"underflow":case"division-by-zero":i+="-"+t;break;case"negative-power":case"negative-width":i+="-unsupported";break;case"unbound-bitwise-result":i+="-unbound-result"}break}case g.CALL_EXCEPTION:case g.INSUFFICIENT_FUNDS:case g.MISSING_NEW:case g.NONCE_EXPIRED:case g.REPLACEMENT_UNDERPRICED:case g.TRANSACTION_REPLACED:case g.UNPREDICTABLE_GAS_LIMIT:i=t}i&&(e+=" [ See: https://links.ethers.org/v5-errors-"+i+" ]"),n.length&&(e+=" ("+n.join(", ")+")");const a=new Error(e);return a.reason=o,a.code=t,Object.keys(r).forEach((function(e){a[e]=r[e]})),a}throwError(e,t,r){throw this.makeError(e,t,r)}throwArgumentError(e,t,r){return this.throwError(e,b.errors.INVALID_ARGUMENT,{argument:t,value:r})}assert(e,t,r,n){e||this.throwError(t,r,n)}assertArgument(e,t,r,n){e||this.throwArgumentError(t,r,n)}checkNormalize(e){null==e&&(e="platform missing String.prototype.normalize"),p&&this.throwError("platform missing String.prototype.normalize",b.errors.UNSUPPORTED_OPERATION,{operation:"String.prototype.normalize",form:p})}checkSafeUint53(e,t){"number"==typeof e&&(null==t&&(t="value not safe"),(e<0||e>=9007199254740991)&&this.throwError(t,b.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"out-of-safe-range",value:e}),e%1&&this.throwError(t,b.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"non-integer",value:e}))}checkArgumentCount(e,t,r){r=r?": "+r:"",et&&this.throwError("too many arguments"+r,b.errors.UNEXPECTED_ARGUMENT,{count:e,expectedCount:t})}checkNew(e,t){e!==Object&&null!=e||this.throwError("missing new",b.errors.MISSING_NEW,{name:t.name})}checkAbstract(e,t){e===t?this.throwError("cannot instantiate abstract class "+JSON.stringify(t.name)+" directly; use a sub-class",b.errors.UNSUPPORTED_OPERATION,{name:e.name,operation:"new"}):e!==Object&&null!=e||this.throwError("missing new",b.errors.MISSING_NEW,{name:t.name})}static globalLogger(){return h||(h=new b("logger/5.6.0")),h}static setCensorship(e,t){if(!e&&t&&this.globalLogger().throwError("cannot permanently disable censorship",b.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"}),c){if(!e)return;this.globalLogger().throwError("error censorship permanent",b.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"})}d=!!e,c=!!t}static setLogLevel(e){const t=l[e.toLowerCase()];null!=t?f=t:b.globalLogger().warn("invalid log level - "+e)}static from(e){return new b(e)}}b.errors=g,b.levels=m;const y=new b("bytes/5.6.1");function w(e){return!!e.toHexString}function _(e){return e.slice||(e.slice=function(){const t=Array.prototype.slice.call(arguments);return _(new Uint8Array(Array.prototype.slice.apply(e,t)))}),e}function S(e){return C(e)&&!(e.length%2)||k(e)}function O(e){return"number"==typeof e&&e==e&&e%1==0}function k(e){if(null==e)return!1;if(e.constructor===Uint8Array)return!0;if("string"==typeof e)return!1;if(!O(e.length)||e.length<0)return!1;for(let t=0;t=256)return!1}return!0}function A(e,t){if(t||(t={}),"number"==typeof e){y.checkSafeUint53(e,"invalid arrayify value");const t=[];for(;e;)t.unshift(255&e),e=parseInt(String(e/256));return 0===t.length&&t.push(0),_(new Uint8Array(t))}if(t.allowMissingPrefix&&"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),w(e)&&(e=e.toHexString()),C(e)){let r=e.substring(2);r.length%2&&("left"===t.hexPad?r="0"+r:"right"===t.hexPad?r+="0":y.throwArgumentError("hex data is odd-length","value",e));const n=[];for(let e=0;eA(e))),r=t.reduce(((e,t)=>e+t.length),0),n=new Uint8Array(r);return t.reduce(((e,t)=>(n.set(t,e),e+t.length)),0),_(n)}function M(e){let t=A(e);if(0===t.length)return t;let r=0;for(;rt&&y.throwArgumentError("value out of range","value",arguments[0]);const r=new Uint8Array(t);return r.set(e,t-e.length),_(r)}function C(e,t){return!("string"!=typeof e||!e.match(/^0x[0-9A-Fa-f]*$/)||t&&e.length!==2+2*t)}const N="0123456789abcdef";function x(e,t){if(t||(t={}),"number"==typeof e){y.checkSafeUint53(e,"invalid hexlify value");let t="";for(;e;)t=N[15&e]+t,e=Math.floor(e/16);return t.length?(t.length%2&&(t="0"+t),"0x"+t):"0x00"}if("bigint"==typeof e)return(e=e.toString(16)).length%2?"0x0"+e:"0x"+e;if(t.allowMissingPrefix&&"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),w(e))return e.toHexString();if(C(e))return e.length%2&&("left"===t.hexPad?e="0x0"+e.substring(2):"right"===t.hexPad?e+="0":y.throwArgumentError("hex data is odd-length","value",e)),e.toLowerCase();if(k(e)){let t="0x";for(let r=0;r>4]+N[15&n]}return t}return y.throwArgumentError("invalid hexlify value","value",e)}function R(e){if("string"!=typeof e)e=x(e);else if(!C(e)||e.length%2)return null;return(e.length-2)/2}function I(e,t,r){return"string"!=typeof e?e=x(e):(!C(e)||e.length%2)&&y.throwArgumentError("invalid hexData","value",e),t=2+2*t,null!=r?"0x"+e.substring(t,2+2*r):"0x"+e.substring(t)}function T(e){let t="0x";return e.forEach((e=>{t+=x(e).substring(2)})),t}function j(e){const t=D(x(e,{hexPad:"left"}));return"0x"===t?"0x0":t}function D(e){"string"!=typeof e&&(e=x(e)),C(e)||y.throwArgumentError("invalid hex string","value",e),e=e.substring(2);let t=0;for(;t2*t+2&&y.throwArgumentError("value out of range","value",arguments[1]);e.length<2*t+2;)e="0x0"+e.substring(2);return e}function U(e){const t={r:"0x",s:"0x",_vs:"0x",recoveryParam:0,v:0,yParityAndS:"0x",compact:"0x"};if(S(e)){let r=A(e);64===r.length?(t.v=27+(r[32]>>7),r[32]&=127,t.r=x(r.slice(0,32)),t.s=x(r.slice(32,64))):65===r.length?(t.r=x(r.slice(0,32)),t.s=x(r.slice(32,64)),t.v=r[64]):y.throwArgumentError("invalid signature string","signature",e),t.v<27&&(0===t.v||1===t.v?t.v+=27:y.throwArgumentError("signature invalid v byte","signature",e)),t.recoveryParam=1-t.v%2,t.recoveryParam&&(r[32]|=128),t._vs=x(r.slice(32,64))}else{if(t.r=e.r,t.s=e.s,t.v=e.v,t.recoveryParam=e.recoveryParam,t._vs=e._vs,null!=t._vs){const r=E(A(t._vs),32);t._vs=x(r);const n=r[0]>=128?1:0;null==t.recoveryParam?t.recoveryParam=n:t.recoveryParam!==n&&y.throwArgumentError("signature recoveryParam mismatch _vs","signature",e),r[0]&=127;const o=x(r);null==t.s?t.s=o:t.s!==o&&y.throwArgumentError("signature v mismatch _vs","signature",e)}if(null==t.recoveryParam)null==t.v?y.throwArgumentError("signature missing v and recoveryParam","signature",e):0===t.v||1===t.v?t.recoveryParam=t.v:t.recoveryParam=1-t.v%2;else if(null==t.v)t.v=27+t.recoveryParam;else{const r=0===t.v||1===t.v?t.v:1-t.v%2;t.recoveryParam!==r&&y.throwArgumentError("signature recoveryParam mismatch v","signature",e)}null!=t.r&&C(t.r)?t.r=B(t.r,32):y.throwArgumentError("signature missing or invalid r","signature",e),null!=t.s&&C(t.s)?t.s=B(t.s,32):y.throwArgumentError("signature missing or invalid s","signature",e);const r=A(t.s);r[0]>=128&&y.throwArgumentError("signature s out of range","signature",e),t.recoveryParam&&(r[0]|=128);const n=x(r);t._vs&&(C(t._vs)||y.throwArgumentError("signature invalid _vs","signature",e),t._vs=B(t._vs,32)),null==t._vs?t._vs=n:t._vs!==n&&y.throwArgumentError("signature _vs mismatch v and s","signature",e)}return t.yParityAndS=t._vs,t.compact=t.r+t.yParityAndS.substring(2),t}function J(e){return x(P([(e=U(e)).r,e.s,e.recoveryParam?"0x1c":"0x1b"]))}var H=r(13550),L=r.n(H);const z="bignumber/5.6.2";var V=L().BN;const q=new b(z),F={},Z=9007199254740991;let W=!1;class K{constructor(e,t){e!==F&&q.throwError("cannot call constructor directly; use BigNumber.from",b.errors.UNSUPPORTED_OPERATION,{operation:"new (BigNumber)"}),this._hex=t,this._isBigNumber=!0,Object.freeze(this)}fromTwos(e){return Y($(this).fromTwos(e))}toTwos(e){return Y($(this).toTwos(e))}abs(){return"-"===this._hex[0]?K.from(this._hex.substring(1)):this}add(e){return Y($(this).add($(e)))}sub(e){return Y($(this).sub($(e)))}div(e){return K.from(e).isZero()&&X("division-by-zero","div"),Y($(this).div($(e)))}mul(e){return Y($(this).mul($(e)))}mod(e){const t=$(e);return t.isNeg()&&X("division-by-zero","mod"),Y($(this).umod(t))}pow(e){const t=$(e);return t.isNeg()&&X("negative-power","pow"),Y($(this).pow(t))}and(e){const t=$(e);return(this.isNegative()||t.isNeg())&&X("unbound-bitwise-result","and"),Y($(this).and(t))}or(e){const t=$(e);return(this.isNegative()||t.isNeg())&&X("unbound-bitwise-result","or"),Y($(this).or(t))}xor(e){const t=$(e);return(this.isNegative()||t.isNeg())&&X("unbound-bitwise-result","xor"),Y($(this).xor(t))}mask(e){return(this.isNegative()||e<0)&&X("negative-width","mask"),Y($(this).maskn(e))}shl(e){return(this.isNegative()||e<0)&&X("negative-width","shl"),Y($(this).shln(e))}shr(e){return(this.isNegative()||e<0)&&X("negative-width","shr"),Y($(this).shrn(e))}eq(e){return $(this).eq($(e))}lt(e){return $(this).lt($(e))}lte(e){return $(this).lte($(e))}gt(e){return $(this).gt($(e))}gte(e){return $(this).gte($(e))}isNegative(){return"-"===this._hex[0]}isZero(){return $(this).isZero()}toNumber(){try{return $(this).toNumber()}catch(e){X("overflow","toNumber",this.toString())}return null}toBigInt(){try{return BigInt(this.toString())}catch(e){}return q.throwError("this platform does not support BigInt",b.errors.UNSUPPORTED_OPERATION,{value:this.toString()})}toString(){return arguments.length>0&&(10===arguments[0]?W||(W=!0,q.warn("BigNumber.toString does not accept any parameters; base-10 is assumed")):16===arguments[0]?q.throwError("BigNumber.toString does not accept any parameters; use bigNumber.toHexString()",b.errors.UNEXPECTED_ARGUMENT,{}):q.throwError("BigNumber.toString does not accept parameters",b.errors.UNEXPECTED_ARGUMENT,{})),$(this).toString(10)}toHexString(){return this._hex}toJSON(e){return{type:"BigNumber",hex:this.toHexString()}}static from(e){if(e instanceof K)return e;if("string"==typeof e)return e.match(/^-?0x[0-9a-f]+$/i)?new K(F,G(e)):e.match(/^-?[0-9]+$/)?new K(F,G(new V(e))):q.throwArgumentError("invalid BigNumber string","value",e);if("number"==typeof e)return e%1&&X("underflow","BigNumber.from",e),(e>=Z||e<=-Z)&&X("overflow","BigNumber.from",e),K.from(String(e));const t=e;if("bigint"==typeof t)return K.from(t.toString());if(k(t))return K.from(x(t));if(t)if(t.toHexString){const e=t.toHexString();if("string"==typeof e)return K.from(e)}else{let e=t._hex;if(null==e&&"BigNumber"===t.type&&(e=t.hex),"string"==typeof e&&(C(e)||"-"===e[0]&&C(e.substring(1))))return K.from(e)}return q.throwArgumentError("invalid BigNumber value","value",e)}static isBigNumber(e){return!(!e||!e._isBigNumber)}}function G(e){if("string"!=typeof e)return G(e.toString(16));if("-"===e[0])return"-"===(e=e.substring(1))[0]&&q.throwArgumentError("invalid hex","value",e),"0x00"===(e=G(e))?e:"-"+e;if("0x"!==e.substring(0,2)&&(e="0x"+e),"0x"===e)return"0x00";for(e.length%2&&(e="0x0"+e.substring(2));e.length>4&&"0x00"===e.substring(0,4);)e="0x"+e.substring(4);return e}function Y(e){return K.from(G(e))}function $(e){const t=K.from(e).toHexString();return"-"===t[0]?new V("-"+t.substring(3),16):new V(t.substring(2),16)}function X(e,t,r){const n={fault:e,operation:t};return null!=r&&(n.value=r),q.throwError(e,b.errors.NUMERIC_FAULT,n)}const Q=new b("properties/5.6.0");function ee(e,t,r){Object.defineProperty(e,t,{enumerable:!0,value:r,writable:!1})}function te(e,t){for(let r=0;r<32;r++){if(e[t])return e[t];if(!e.prototype||"object"!=typeof e.prototype)break;e=Object.getPrototypeOf(e.prototype).constructor}return null}function re(e){return t=this,r=void 0,o=function*(){const t=Object.keys(e).map((t=>{const r=e[t];return Promise.resolve(r).then((e=>({key:t,value:e})))}));return(yield Promise.all(t)).reduce(((e,t)=>(e[t.key]=t.value,e)),{})},new((n=void 0)||(n=Promise))((function(e,i){function a(e){try{u(o.next(e))}catch(e){i(e)}}function s(e){try{u(o.throw(e))}catch(e){i(e)}}function u(t){var r;t.done?e(t.value):(r=t.value,r instanceof n?r:new n((function(e){e(r)}))).then(a,s)}u((o=o.apply(t,r||[])).next())}));var t,r,n,o}function ne(e,t){e&&"object"==typeof e||Q.throwArgumentError("invalid object","object",e),Object.keys(e).forEach((r=>{t[r]||Q.throwArgumentError("invalid object key - "+r,"transaction:"+r,e)}))}function oe(e){const t={};for(const r in e)t[r]=e[r];return t}const ie={bigint:!0,boolean:!0,function:!0,number:!0,string:!0};function ae(e){if(null==e||ie[typeof e])return!0;if(Array.isArray(e)||"object"==typeof e){if(!Object.isFrozen(e))return!1;const t=Object.keys(e);for(let r=0;rue(e))));if("object"==typeof e){const t={};for(const r in e){const n=e[r];void 0!==n&&ee(t,r,ue(n))}return t}return Q.throwArgumentError("Cannot deepCopy "+typeof e,"object",e)}function ue(e){return se(e)}class ce{constructor(e){for(const t in e)this[t]=ue(e[t])}}const de="abi/5.6.4",le=new b(de);function fe(e){const t=[],r=function(e,n){if(Array.isArray(n))for(let o in n){const i=e.slice();i.push(o);try{r(i,n[o])}catch(e){t.push({path:i,error:e})}}};return r([],e),t}class he{constructor(e,t,r,n){this.name=e,this.type=t,this.localName=r,this.dynamic=n}_throwError(e,t){le.throwArgumentError(e,this.localName,t)}}class pe{constructor(e){ee(this,"wordSize",e||32),this._data=[],this._dataLength=0,this._padding=new Uint8Array(e)}get data(){return T(this._data)}get length(){return this._dataLength}_writeData(e){return this._data.push(e),this._dataLength+=e.length,e.length}appendWriter(e){return this._writeData(P(e._data))}writeBytes(e){let t=A(e);const r=t.length%this.wordSize;return r&&(t=P([t,this._padding.slice(r)])),this._writeData(t)}_getValue(e){let t=A(K.from(e));return t.length>this.wordSize&&le.throwError("value out-of-bounds",b.errors.BUFFER_OVERRUN,{length:this.wordSize,offset:t.length}),t.length%this.wordSize&&(t=P([this._padding.slice(t.length%this.wordSize),t])),t}writeValue(e){return this._writeData(this._getValue(e))}writeUpdatableValue(){const e=this._data.length;return this._data.push(this._padding),this._dataLength+=this.wordSize,t=>{this._data[e]=this._getValue(t)}}}class me{constructor(e,t,r,n){ee(this,"_data",A(e)),ee(this,"wordSize",t||32),ee(this,"_coerceFunc",r),ee(this,"allowLoose",n),this._offset=0}get data(){return x(this._data)}get consumed(){return this._offset}static coerce(e,t){let r=e.match("^u?int([0-9]+)$");return r&&parseInt(r[1])<=48&&(t=t.toNumber()),t}coerce(e,t){return this._coerceFunc?this._coerceFunc(e,t):me.coerce(e,t)}_peekBytes(e,t,r){let n=Math.ceil(t/this.wordSize)*this.wordSize;return this._offset+n>this._data.length&&(this.allowLoose&&r&&this._offset+t<=this._data.length?n=t:le.throwError("data out-of-bounds",b.errors.BUFFER_OVERRUN,{length:this._data.length,offset:this._offset+n})),this._data.slice(this._offset,this._offset+n)}subReader(e){return new me(this._data.slice(this._offset+e),this.wordSize,this._coerceFunc,this.allowLoose)}readBytes(e,t){let r=this._peekBytes(0,e,!!t);return this._offset+=r.length,r.slice(0,e)}readValue(){return K.from(this.readBytes(this.wordSize))}}var ge=r(91094),ve=r.n(ge);function be(e){return"0x"+ve().keccak_256(A(e))}const ye=new b("rlp/5.6.1");function we(e){const t=[];for(;e;)t.unshift(255&e),e>>=8;return t}function _e(e,t,r){let n=0;for(let o=0;ot+1+n&&ye.throwError("child data too short",b.errors.BUFFER_OVERRUN,{})}return{consumed:1+n,result:o}}function Ae(e,t){if(0===e.length&&ye.throwError("data too short",b.errors.BUFFER_OVERRUN,{}),e[t]>=248){const r=e[t]-247;t+1+r>e.length&&ye.throwError("data short segment too short",b.errors.BUFFER_OVERRUN,{});const n=_e(e,t+1,r);return t+1+r+n>e.length&&ye.throwError("data long segment too short",b.errors.BUFFER_OVERRUN,{}),ke(e,t,t+1+r,r+n)}if(e[t]>=192){const r=e[t]-192;return t+1+r>e.length&&ye.throwError("data array too short",b.errors.BUFFER_OVERRUN,{}),ke(e,t,t+1,r)}if(e[t]>=184){const r=e[t]-183;t+1+r>e.length&&ye.throwError("data array too short",b.errors.BUFFER_OVERRUN,{});const n=_e(e,t+1,r);return t+1+r+n>e.length&&ye.throwError("data array too short",b.errors.BUFFER_OVERRUN,{}),{consumed:1+r+n,result:x(e.slice(t+1+r,t+1+r+n))}}if(e[t]>=128){const r=e[t]-128;return t+1+r>e.length&&ye.throwError("data too short",b.errors.BUFFER_OVERRUN,{}),{consumed:1+r,result:x(e.slice(t+1,t+1+r))}}return{consumed:1,result:x(e[t])}}function Pe(e){const t=A(e),r=Ae(t,0);return r.consumed!==t.length&&ye.throwArgumentError("invalid rlp data","data",e),r.result}const Me=new b("address/5.6.1");function Ee(e){C(e,20)||Me.throwArgumentError("invalid address","address",e);const t=(e=e.toLowerCase()).substring(2).split(""),r=new Uint8Array(40);for(let e=0;e<40;e++)r[e]=t[e].charCodeAt(0);const n=A(be(r));for(let e=0;e<40;e+=2)n[e>>1]>>4>=8&&(t[e]=t[e].toUpperCase()),(15&n[e>>1])>=8&&(t[e+1]=t[e+1].toUpperCase());return"0x"+t.join("")}const Ce={};for(let e=0;e<10;e++)Ce[String(e)]=String(e);for(let e=0;e<26;e++)Ce[String.fromCharCode(65+e)]=String(10+e);const Ne=Math.floor((xe=9007199254740991,Math.log10?Math.log10(xe):Math.log(xe)/Math.LN10));var xe;function Re(e){let t=(e=(e=e.toUpperCase()).substring(4)+e.substring(0,2)+"00").split("").map((e=>Ce[e])).join("");for(;t.length>=Ne;){let e=t.substring(0,Ne);t=parseInt(e,10)%97+t.substring(e.length)}let r=String(98-parseInt(t,10)%97);for(;r.length<2;)r="0"+r;return r}function Ie(e){let t=null;if("string"!=typeof e&&Me.throwArgumentError("invalid address","address",e),e.match(/^(0x)?[0-9a-fA-F]{40}$/))"0x"!==e.substring(0,2)&&(e="0x"+e),t=Ee(e),e.match(/([A-F].*[a-f])|([a-f].*[A-F])/)&&t!==e&&Me.throwArgumentError("bad address checksum","address",e);else if(e.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){for(e.substring(2,4)!==Re(e)&&Me.throwArgumentError("bad icap checksum","address",e),r=e.substring(4),t=new V(r,36).toString(16);t.length<40;)t="0"+t;t=Ee("0x"+t)}else Me.throwArgumentError("invalid address","address",e);var r;return t}function Te(e){try{return Ie(e),!0}catch(e){}return!1}function je(e){let t=(r=Ie(e).substring(2),new V(r,16).toString(36)).toUpperCase();for(var r;t.length<30;)t="0"+t;return"XE"+Re("XE00"+t)+t}function De(e){let t=null;try{t=Ie(e.from)}catch(t){Me.throwArgumentError("missing from address","transaction",e)}return Ie(I(be(Oe([t,M(A(K.from(e.nonce).toHexString()))])),12))}function Be(e,t,r){return 32!==R(t)&&Me.throwArgumentError("salt must be 32 bytes","salt",t),32!==R(r)&&Me.throwArgumentError("initCodeHash must be 32 bytes","initCodeHash",r),Ie(I(be(P(["0xff",Ie(e),t,r])),12))}const Ue=new b("strings/5.6.1");var Je,He;function Le(e,t,r,n,o){if(e===He.BAD_PREFIX||e===He.UNEXPECTED_CONTINUE){let e=0;for(let n=t+1;n>6==2;n++)e++;return e}return e===He.OVERRUN?r.length-t-1:0}!function(e){e.current="",e.NFC="NFC",e.NFD="NFD",e.NFKC="NFKC",e.NFKD="NFKD"}(Je||(Je={})),function(e){e.UNEXPECTED_CONTINUE="unexpected continuation byte",e.BAD_PREFIX="bad codepoint prefix",e.OVERRUN="string overrun",e.MISSING_CONTINUE="missing continuation byte",e.OUT_OF_RANGE="out of UTF-8 range",e.UTF16_SURROGATE="UTF-16 surrogate",e.OVERLONG="overlong representation"}(He||(He={}));const ze=Object.freeze({error:function(e,t,r,n,o){return Ue.throwArgumentError(`invalid codepoint at offset ${t}; ${e}`,"bytes",r)},ignore:Le,replace:function(e,t,r,n,o){return e===He.OVERLONG?(n.push(o),0):(n.push(65533),Le(e,t,r))}});function Ve(e,t){null==t&&(t=ze.error),e=A(e);const r=[];let n=0;for(;n>7==0){r.push(o);continue}let i=null,a=null;if(192==(224&o))i=1,a=127;else if(224==(240&o))i=2,a=2047;else{if(240!=(248&o)){n+=t(128==(192&o)?He.UNEXPECTED_CONTINUE:He.BAD_PREFIX,n-1,e,r);continue}i=3,a=65535}if(n-1+i>=e.length){n+=t(He.OVERRUN,n-1,e,r);continue}let s=o&(1<<8-i-1)-1;for(let o=0;o1114111?n+=t(He.OUT_OF_RANGE,n-1-i,e,r,s):s>=55296&&s<=57343?n+=t(He.UTF16_SURROGATE,n-1-i,e,r,s):s<=a?n+=t(He.OVERLONG,n-1-i,e,r,s):r.push(s))}return r}function qe(e,t=Je.current){t!=Je.current&&(Ue.checkNormalize(),e=e.normalize(t));let r=[];for(let t=0;t>6|192),r.push(63&n|128);else if(55296==(64512&n)){t++;const o=e.charCodeAt(t);if(t>=e.length||56320!=(64512&o))throw new Error("invalid utf-8 string");const i=65536+((1023&n)<<10)+(1023&o);r.push(i>>18|240),r.push(i>>12&63|128),r.push(i>>6&63|128),r.push(63&i|128)}else r.push(n>>12|224),r.push(n>>6&63|128),r.push(63&n|128)}return A(r)}function Fe(e){const t="0000"+e.toString(16);return"\\u"+t.substring(t.length-4)}function Ze(e,t){return'"'+Ve(e,t).map((e=>{if(e<256){switch(e){case 8:return"\\b";case 9:return"\\t";case 10:return"\\n";case 13:return"\\r";case 34:return'\\"';case 92:return"\\\\"}if(e>=32&&e<127)return String.fromCharCode(e)}return e<=65535?Fe(e):Fe(55296+((e-=65536)>>10&1023))+Fe(56320+(1023&e))})).join("")+'"'}function We(e){return e.map((e=>e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(55296+(e>>10&1023),56320+(1023&e))))).join("")}function Ke(e,t){return We(Ve(e,t))}function Ge(e,t=Je.current){return Ve(qe(e,t))}function Ye(e){return be(qe(e))}class $e extends he{constructor(e){super("address","address",e,!1)}defaultValue(){return"0x0000000000000000000000000000000000000000"}encode(e,t){try{t=Ie(t)}catch(e){this._throwError(e.message,t)}return e.writeValue(t)}decode(e){return Ie(B(e.readValue().toHexString(),20))}}class Xe extends he{constructor(e){super(e.name,e.type,void 0,e.dynamic),this.coder=e}defaultValue(){return this.coder.defaultValue()}encode(e,t){return this.coder.encode(e,t)}decode(e){return this.coder.decode(e)}}const Qe=new b(de);function et(e,t,r){let n=null;if(Array.isArray(r))n=r;else if(r&&"object"==typeof r){let e={};n=t.map((t=>{const n=t.localName;return n||Qe.throwError("cannot encode object for signature with missing names",b.errors.INVALID_ARGUMENT,{argument:"values",coder:t,value:r}),e[n]&&Qe.throwError("cannot encode object for signature with duplicate names",b.errors.INVALID_ARGUMENT,{argument:"values",coder:t,value:r}),e[n]=!0,r[n]}))}else Qe.throwArgumentError("invalid tuple value","tuple",r);t.length!==n.length&&Qe.throwArgumentError("types/value length mismatch","tuple",r);let o=new pe(e.wordSize),i=new pe(e.wordSize),a=[];t.forEach(((e,t)=>{let r=n[t];if(e.dynamic){let t=i.length;e.encode(i,r);let n=o.writeUpdatableValue();a.push((e=>{n(e+t)}))}else e.encode(o,r)})),a.forEach((e=>{e(o.length)}));let s=e.appendWriter(o);return s+=e.appendWriter(i),s}function tt(e,t){let r=[],n=e.subReader(0);t.forEach((t=>{let o=null;if(t.dynamic){let r=e.readValue(),i=n.subReader(r.toNumber());try{o=t.decode(i)}catch(e){if(e.code===b.errors.BUFFER_OVERRUN)throw e;o=e,o.baseType=t.name,o.name=t.localName,o.type=t.type}}else try{o=t.decode(e)}catch(e){if(e.code===b.errors.BUFFER_OVERRUN)throw e;o=e,o.baseType=t.name,o.name=t.localName,o.type=t.type}null!=o&&r.push(o)}));const o=t.reduce(((e,t)=>{const r=t.localName;return r&&(e[r]||(e[r]=0),e[r]++),e}),{});t.forEach(((e,t)=>{let n=e.localName;if(!n||1!==o[n])return;if("length"===n&&(n="_length"),null!=r[n])return;const i=r[t];i instanceof Error?Object.defineProperty(r,n,{enumerable:!0,get:()=>{throw i}}):r[n]=i}));for(let e=0;e{throw t}})}return Object.freeze(r)}class rt extends he{constructor(e,t,r){super("array",e.type+"["+(t>=0?t:"")+"]",r,-1===t||e.dynamic),this.coder=e,this.length=t}defaultValue(){const e=this.coder.defaultValue(),t=[];for(let r=0;re._data.length&&Qe.throwError("insufficient data length",b.errors.BUFFER_OVERRUN,{length:e._data.length,count:t}));let r=[];for(let e=0;e{e.dynamic&&(r=!0),n.push(e.type)})),super("tuple","tuple("+n.join(",")+")",t,r),this.coders=e}defaultValue(){const e=[];this.coders.forEach((t=>{e.push(t.defaultValue())}));const t=this.coders.reduce(((e,t)=>{const r=t.localName;return r&&(e[r]||(e[r]=0),e[r]++),e}),{});return this.coders.forEach(((r,n)=>{let o=r.localName;o&&1===t[o]&&("length"===o&&(o="_length"),null==e[o]&&(e[o]=e[n]))})),Object.freeze(e)}encode(e,t){return et(e,this.coders,t)}decode(e){return e.coerce(this.name,tt(e,this.coders))}}const yt=new b(de),wt={};let _t={calldata:!0,memory:!0,storage:!0},St={calldata:!0,memory:!0};function Ot(e,t){if("bytes"===e||"string"===e){if(_t[t])return!0}else if("address"===e){if("payable"===t)return!0}else if((e.indexOf("[")>=0||"tuple"===e)&&St[t])return!0;return(_t[t]||"payable"===t)&&yt.throwArgumentError("invalid modifier","name",t),!1}function kt(e,t){for(let r in t)ee(e,r,t[r])}const At=Object.freeze({sighash:"sighash",minimal:"minimal",full:"full",json:"json"}),Pt=new RegExp(/^(.*)\[([0-9]*)\]$/);class Mt{constructor(e,t){e!==wt&&yt.throwError("use fromString",b.errors.UNSUPPORTED_OPERATION,{operation:"new ParamType()"}),kt(this,t);let r=this.type.match(Pt);kt(this,r?{arrayLength:parseInt(r[2]||"-1"),arrayChildren:Mt.fromObject({type:r[1],components:this.components}),baseType:"array"}:{arrayLength:null,arrayChildren:null,baseType:null!=this.components?"tuple":this.type}),this._isParamType=!0,Object.freeze(this)}format(e){if(e||(e=At.sighash),At[e]||yt.throwArgumentError("invalid format type","format",e),e===At.json){let t={type:"tuple"===this.baseType?"tuple":this.type,name:this.name||void 0};return"boolean"==typeof this.indexed&&(t.indexed=this.indexed),this.components&&(t.components=this.components.map((t=>JSON.parse(t.format(e))))),JSON.stringify(t)}let t="";return"array"===this.baseType?(t+=this.arrayChildren.format(e),t+="["+(this.arrayLength<0?"":String(this.arrayLength))+"]"):"tuple"===this.baseType?(e!==At.sighash&&(t+=this.type),t+="("+this.components.map((t=>t.format(e))).join(e===At.full?", ":",")+")"):t+=this.type,e!==At.sighash&&(!0===this.indexed&&(t+=" indexed"),e===At.full&&this.name&&(t+=" "+this.name)),t}static from(e,t){return"string"==typeof e?Mt.fromString(e,t):Mt.fromObject(e)}static fromObject(e){return Mt.isParamType(e)?e:new Mt(wt,{name:e.name||null,type:Ut(e.type),indexed:null==e.indexed?null:!!e.indexed,components:e.components?e.components.map(Mt.fromObject):null})}static fromString(e,t){return r=function(e,t){let r=e;function n(t){yt.throwArgumentError(`unexpected character at position ${t}`,"param",e)}function o(e){let r={type:"",name:"",parent:e,state:{allowType:!0}};return t&&(r.indexed=!1),r}e=e.replace(/\s/g," ");let i={type:"",name:"",state:{allowType:!0}},a=i;for(let r=0;rMt.fromString(e,t)))}class Ct{constructor(e,t){e!==wt&&yt.throwError("use a static from method",b.errors.UNSUPPORTED_OPERATION,{operation:"new Fragment()"}),kt(this,t),this._isFragment=!0,Object.freeze(this)}static from(e){return Ct.isFragment(e)?e:"string"==typeof e?Ct.fromString(e):Ct.fromObject(e)}static fromObject(e){if(Ct.isFragment(e))return e;switch(e.type){case"function":return jt.fromObject(e);case"event":return Nt.fromObject(e);case"constructor":return Tt.fromObject(e);case"error":return Bt.fromObject(e);case"fallback":case"receive":return null}return yt.throwArgumentError("invalid fragment object","value",e)}static fromString(e){return"event"===(e=(e=(e=e.replace(/\s/g," ")).replace(/\(/g," (").replace(/\)/g,") ").replace(/\s+/g," ")).trim()).split(" ")[0]?Nt.fromString(e.substring(5).trim()):"function"===e.split(" ")[0]?jt.fromString(e.substring(8).trim()):"constructor"===e.split("(")[0].trim()?Tt.fromString(e.trim()):"error"===e.split(" ")[0]?Bt.fromString(e.substring(5).trim()):yt.throwArgumentError("unsupported fragment","value",e)}static isFragment(e){return!(!e||!e._isFragment)}}class Nt extends Ct{format(e){if(e||(e=At.sighash),At[e]||yt.throwArgumentError("invalid format type","format",e),e===At.json)return JSON.stringify({type:"event",anonymous:this.anonymous,name:this.name,inputs:this.inputs.map((t=>JSON.parse(t.format(e))))});let t="";return e!==At.sighash&&(t+="event "),t+=this.name+"("+this.inputs.map((t=>t.format(e))).join(e===At.full?", ":",")+") ",e!==At.sighash&&this.anonymous&&(t+="anonymous "),t.trim()}static from(e){return"string"==typeof e?Nt.fromString(e):Nt.fromObject(e)}static fromObject(e){if(Nt.isEventFragment(e))return e;"event"!==e.type&&yt.throwArgumentError("invalid event object","value",e);const t={name:Ht(e.name),anonymous:e.anonymous,inputs:e.inputs?e.inputs.map(Mt.fromObject):[],type:"event"};return new Nt(wt,t)}static fromString(e){let t=e.match(Lt);t||yt.throwArgumentError("invalid event string","value",e);let r=!1;return t[3].split(" ").forEach((e=>{switch(e.trim()){case"anonymous":r=!0;break;case"":break;default:yt.warn("unknown modifier: "+e)}})),Nt.fromObject({name:t[1].trim(),anonymous:r,inputs:Et(t[2],!0),type:"event"})}static isEventFragment(e){return e&&e._isFragment&&"event"===e.type}}function xt(e,t){t.gas=null;let r=e.split("@");return 1!==r.length?(r.length>2&&yt.throwArgumentError("invalid human-readable ABI signature","value",e),r[1].match(/^[0-9]+$/)||yt.throwArgumentError("invalid human-readable ABI signature gas","value",e),t.gas=K.from(r[1]),r[0]):e}function Rt(e,t){t.constant=!1,t.payable=!1,t.stateMutability="nonpayable",e.split(" ").forEach((e=>{switch(e.trim()){case"constant":t.constant=!0;break;case"payable":t.payable=!0,t.stateMutability="payable";break;case"nonpayable":t.payable=!1,t.stateMutability="nonpayable";break;case"pure":t.constant=!0,t.stateMutability="pure";break;case"view":t.constant=!0,t.stateMutability="view";break;case"external":case"public":case"":break;default:console.log("unknown modifier: "+e)}}))}function It(e){let t={constant:!1,payable:!0,stateMutability:"payable"};return null!=e.stateMutability?(t.stateMutability=e.stateMutability,t.constant="view"===t.stateMutability||"pure"===t.stateMutability,null!=e.constant&&!!e.constant!==t.constant&&yt.throwArgumentError("cannot have constant function with mutability "+t.stateMutability,"value",e),t.payable="payable"===t.stateMutability,null!=e.payable&&!!e.payable!==t.payable&&yt.throwArgumentError("cannot have payable function with mutability "+t.stateMutability,"value",e)):null!=e.payable?(t.payable=!!e.payable,null!=e.constant||t.payable||"constructor"===e.type||yt.throwArgumentError("unable to determine stateMutability","value",e),t.constant=!!e.constant,t.constant?t.stateMutability="view":t.stateMutability=t.payable?"payable":"nonpayable",t.payable&&t.constant&&yt.throwArgumentError("cannot have constant payable function","value",e)):null!=e.constant?(t.constant=!!e.constant,t.payable=!t.constant,t.stateMutability=t.constant?"view":"payable"):"constructor"!==e.type&&yt.throwArgumentError("unable to determine stateMutability","value",e),t}class Tt extends Ct{format(e){if(e||(e=At.sighash),At[e]||yt.throwArgumentError("invalid format type","format",e),e===At.json)return JSON.stringify({type:"constructor",stateMutability:"nonpayable"!==this.stateMutability?this.stateMutability:void 0,payable:this.payable,gas:this.gas?this.gas.toNumber():void 0,inputs:this.inputs.map((t=>JSON.parse(t.format(e))))});e===At.sighash&&yt.throwError("cannot format a constructor for sighash",b.errors.UNSUPPORTED_OPERATION,{operation:"format(sighash)"});let t="constructor("+this.inputs.map((t=>t.format(e))).join(e===At.full?", ":",")+") ";return this.stateMutability&&"nonpayable"!==this.stateMutability&&(t+=this.stateMutability+" "),t.trim()}static from(e){return"string"==typeof e?Tt.fromString(e):Tt.fromObject(e)}static fromObject(e){if(Tt.isConstructorFragment(e))return e;"constructor"!==e.type&&yt.throwArgumentError("invalid constructor object","value",e);let t=It(e);t.constant&&yt.throwArgumentError("constructor cannot be constant","value",e);const r={name:null,type:e.type,inputs:e.inputs?e.inputs.map(Mt.fromObject):[],payable:t.payable,stateMutability:t.stateMutability,gas:e.gas?K.from(e.gas):null};return new Tt(wt,r)}static fromString(e){let t={type:"constructor"},r=(e=xt(e,t)).match(Lt);return r&&"constructor"===r[1].trim()||yt.throwArgumentError("invalid constructor string","value",e),t.inputs=Et(r[2].trim(),!1),Rt(r[3].trim(),t),Tt.fromObject(t)}static isConstructorFragment(e){return e&&e._isFragment&&"constructor"===e.type}}class jt extends Tt{format(e){if(e||(e=At.sighash),At[e]||yt.throwArgumentError("invalid format type","format",e),e===At.json)return JSON.stringify({type:"function",name:this.name,constant:this.constant,stateMutability:"nonpayable"!==this.stateMutability?this.stateMutability:void 0,payable:this.payable,gas:this.gas?this.gas.toNumber():void 0,inputs:this.inputs.map((t=>JSON.parse(t.format(e)))),outputs:this.outputs.map((t=>JSON.parse(t.format(e))))});let t="";return e!==At.sighash&&(t+="function "),t+=this.name+"("+this.inputs.map((t=>t.format(e))).join(e===At.full?", ":",")+") ",e!==At.sighash&&(this.stateMutability?"nonpayable"!==this.stateMutability&&(t+=this.stateMutability+" "):this.constant&&(t+="view "),this.outputs&&this.outputs.length&&(t+="returns ("+this.outputs.map((t=>t.format(e))).join(", ")+") "),null!=this.gas&&(t+="@"+this.gas.toString()+" ")),t.trim()}static from(e){return"string"==typeof e?jt.fromString(e):jt.fromObject(e)}static fromObject(e){if(jt.isFunctionFragment(e))return e;"function"!==e.type&&yt.throwArgumentError("invalid function object","value",e);let t=It(e);const r={type:e.type,name:Ht(e.name),constant:t.constant,inputs:e.inputs?e.inputs.map(Mt.fromObject):[],outputs:e.outputs?e.outputs.map(Mt.fromObject):[],payable:t.payable,stateMutability:t.stateMutability,gas:e.gas?K.from(e.gas):null};return new jt(wt,r)}static fromString(e){let t={type:"function"},r=(e=xt(e,t)).split(" returns ");r.length>2&&yt.throwArgumentError("invalid function string","value",e);let n=r[0].match(Lt);if(n||yt.throwArgumentError("invalid function signature","value",e),t.name=n[1].trim(),t.name&&Ht(t.name),t.inputs=Et(n[2],!1),Rt(n[3].trim(),t),r.length>1){let n=r[1].match(Lt);""==n[1].trim()&&""==n[3].trim()||yt.throwArgumentError("unexpected tokens","value",e),t.outputs=Et(n[2],!1)}else t.outputs=[];return jt.fromObject(t)}static isFunctionFragment(e){return e&&e._isFragment&&"function"===e.type}}function Dt(e){const t=e.format();return"Error(string)"!==t&&"Panic(uint256)"!==t||yt.throwArgumentError(`cannot specify user defined ${t} error`,"fragment",e),e}class Bt extends Ct{format(e){if(e||(e=At.sighash),At[e]||yt.throwArgumentError("invalid format type","format",e),e===At.json)return JSON.stringify({type:"error",name:this.name,inputs:this.inputs.map((t=>JSON.parse(t.format(e))))});let t="";return e!==At.sighash&&(t+="error "),t+=this.name+"("+this.inputs.map((t=>t.format(e))).join(e===At.full?", ":",")+") ",t.trim()}static from(e){return"string"==typeof e?Bt.fromString(e):Bt.fromObject(e)}static fromObject(e){if(Bt.isErrorFragment(e))return e;"error"!==e.type&&yt.throwArgumentError("invalid error object","value",e);const t={type:e.type,name:Ht(e.name),inputs:e.inputs?e.inputs.map(Mt.fromObject):[]};return Dt(new Bt(wt,t))}static fromString(e){let t={type:"error"},r=e.match(Lt);return r||yt.throwArgumentError("invalid error signature","value",e),t.name=r[1].trim(),t.name&&Ht(t.name),t.inputs=Et(r[2],!1),Dt(Bt.fromObject(t))}static isErrorFragment(e){return e&&e._isFragment&&"error"===e.type}}function Ut(e){return e.match(/^uint($|[^1-9])/)?e="uint256"+e.substring(4):e.match(/^int($|[^1-9])/)&&(e="int256"+e.substring(3)),e}const Jt=new RegExp("^[a-zA-Z$_][a-zA-Z0-9$_]*$");function Ht(e){return e&&e.match(Jt)||yt.throwArgumentError(`invalid identifier "${e}"`,"value",e),e}const Lt=new RegExp("^([^)(]*)\\((.*)\\)([^)(]*)$"),zt=new b(de),Vt=new RegExp(/^bytes([0-9]*)$/),qt=new RegExp(/^(u?int)([0-9]*)$/);class Ft{constructor(e){ee(this,"coerceFunc",e||null)}_getCoder(e){switch(e.baseType){case"address":return new $e(e.name);case"bool":return new nt(e.name);case"string":return new vt(e.name);case"bytes":return new it(e.name);case"array":return new rt(this._getCoder(e.arrayChildren),e.arrayLength,e.name);case"tuple":return new bt((e.components||[]).map((e=>this._getCoder(e))),e.name);case"":return new st(e.name)}let t=e.type.match(qt);if(t){let r=parseInt(t[2]||"256");return(0===r||r>256||r%8!=0)&&zt.throwArgumentError("invalid "+t[1]+" bit length","param",e),new gt(r/8,"int"===t[1],e.name)}if(t=e.type.match(Vt),t){let r=parseInt(t[1]);return(0===r||r>32)&&zt.throwArgumentError("invalid bytes length","param",e),new at(r,e.name)}return zt.throwArgumentError("invalid type","type",e.type)}_getWordSize(){return 32}_getReader(e,t){return new me(e,this._getWordSize(),this.coerceFunc,t)}_getWriter(){return new pe(this._getWordSize())}getDefaultValue(e){const t=e.map((e=>this._getCoder(Mt.from(e))));return new bt(t,"_").defaultValue()}encode(e,t){e.length!==t.length&&zt.throwError("types/values length mismatch",b.errors.INVALID_ARGUMENT,{count:{types:e.length,values:t.length},value:{types:e,values:t}});const r=e.map((e=>this._getCoder(Mt.from(e)))),n=new bt(r,"_"),o=this._getWriter();return n.encode(o,t),o.data}decode(e,t,r){const n=e.map((e=>this._getCoder(Mt.from(e))));return new bt(n,"_").decode(this._getReader(A(t),r))}}const Zt=new Ft,Wt=new b(de);class Kt extends ce{}class Gt extends ce{}class Yt extends ce{}class $t extends ce{static isIndexed(e){return!(!e||!e._isIndexed)}}const Xt={"0x08c379a0":{signature:"Error(string)",name:"Error",inputs:["string"],reason:!0},"0x4e487b71":{signature:"Panic(uint256)",name:"Panic",inputs:["uint256"]}};function Qt(e,t){const r=new Error(`deferred error during ABI decoding triggered accessing ${e}`);return r.error=t,r}class er{constructor(e){let t=[];t="string"==typeof e?JSON.parse(e):e,ee(this,"fragments",t.map((e=>Ct.from(e))).filter((e=>null!=e))),ee(this,"_abiCoder",te(new.target,"getAbiCoder")()),ee(this,"functions",{}),ee(this,"errors",{}),ee(this,"events",{}),ee(this,"structs",{}),this.fragments.forEach((e=>{let t=null;switch(e.type){case"constructor":return this.deploy?void Wt.warn("duplicate definition - constructor"):void ee(this,"deploy",e);case"function":t=this.functions;break;case"event":t=this.events;break;case"error":t=this.errors;break;default:return}let r=e.format();t[r]?Wt.warn("duplicate definition - "+r):t[r]=e})),this.deploy||ee(this,"deploy",Tt.from({payable:!1,type:"constructor"})),ee(this,"_isInterface",!0)}format(e){e||(e=At.full),e===At.sighash&&Wt.throwArgumentError("interface does not support formatting sighash","format",e);const t=this.fragments.map((t=>t.format(e)));return e===At.json?JSON.stringify(t.map((e=>JSON.parse(e)))):t}static getAbiCoder(){return Zt}static getAddress(e){return Ie(e)}static getSighash(e){return I(Ye(e.format()),0,4)}static getEventTopic(e){return Ye(e.format())}getFunction(e){if(C(e)){for(const t in this.functions)if(e===this.getSighash(t))return this.functions[t];Wt.throwArgumentError("no matching function","sighash",e)}if(-1===e.indexOf("(")){const t=e.trim(),r=Object.keys(this.functions).filter((e=>e.split("(")[0]===t));return 0===r.length?Wt.throwArgumentError("no matching function","name",t):r.length>1&&Wt.throwArgumentError("multiple matching functions","name",t),this.functions[r[0]]}const t=this.functions[jt.fromString(e).format()];return t||Wt.throwArgumentError("no matching function","signature",e),t}getEvent(e){if(C(e)){const t=e.toLowerCase();for(const e in this.events)if(t===this.getEventTopic(e))return this.events[e];Wt.throwArgumentError("no matching event","topichash",t)}if(-1===e.indexOf("(")){const t=e.trim(),r=Object.keys(this.events).filter((e=>e.split("(")[0]===t));return 0===r.length?Wt.throwArgumentError("no matching event","name",t):r.length>1&&Wt.throwArgumentError("multiple matching events","name",t),this.events[r[0]]}const t=this.events[Nt.fromString(e).format()];return t||Wt.throwArgumentError("no matching event","signature",e),t}getError(e){if(C(e)){const t=te(this.constructor,"getSighash");for(const r in this.errors)if(e===t(this.errors[r]))return this.errors[r];Wt.throwArgumentError("no matching error","sighash",e)}if(-1===e.indexOf("(")){const t=e.trim(),r=Object.keys(this.errors).filter((e=>e.split("(")[0]===t));return 0===r.length?Wt.throwArgumentError("no matching error","name",t):r.length>1&&Wt.throwArgumentError("multiple matching errors","name",t),this.errors[r[0]]}const t=this.errors[jt.fromString(e).format()];return t||Wt.throwArgumentError("no matching error","signature",e),t}getSighash(e){if("string"==typeof e)try{e=this.getFunction(e)}catch(t){try{e=this.getError(e)}catch(e){throw t}}return te(this.constructor,"getSighash")(e)}getEventTopic(e){return"string"==typeof e&&(e=this.getEvent(e)),te(this.constructor,"getEventTopic")(e)}_decodeParams(e,t){return this._abiCoder.decode(e,t)}_encodeParams(e,t){return this._abiCoder.encode(e,t)}encodeDeploy(e){return this._encodeParams(this.deploy.inputs,e||[])}decodeErrorResult(e,t){"string"==typeof e&&(e=this.getError(e));const r=A(t);return x(r.slice(0,4))!==this.getSighash(e)&&Wt.throwArgumentError(`data signature does not match error ${e.name}.`,"data",x(r)),this._decodeParams(e.inputs,r.slice(4))}encodeErrorResult(e,t){return"string"==typeof e&&(e=this.getError(e)),x(P([this.getSighash(e),this._encodeParams(e.inputs,t||[])]))}decodeFunctionData(e,t){"string"==typeof e&&(e=this.getFunction(e));const r=A(t);return x(r.slice(0,4))!==this.getSighash(e)&&Wt.throwArgumentError(`data signature does not match function ${e.name}.`,"data",x(r)),this._decodeParams(e.inputs,r.slice(4))}encodeFunctionData(e,t){return"string"==typeof e&&(e=this.getFunction(e)),x(P([this.getSighash(e),this._encodeParams(e.inputs,t||[])]))}decodeFunctionResult(e,t){"string"==typeof e&&(e=this.getFunction(e));let r=A(t),n=null,o="",i=null,a=null,s=null;switch(r.length%this._abiCoder._getWordSize()){case 0:try{return this._abiCoder.decode(e.outputs,r)}catch(e){}break;case 4:{const e=x(r.slice(0,4)),t=Xt[e];if(t)i=this._abiCoder.decode(t.inputs,r.slice(4)),a=t.name,s=t.signature,t.reason&&(n=i[0]),"Error"===a?o=`; VM Exception while processing transaction: reverted with reason string ${JSON.stringify(i[0])}`:"Panic"===a&&(o=`; VM Exception while processing transaction: reverted with panic code ${i[0]}`);else try{const t=this.getError(e);i=this._abiCoder.decode(t.inputs,r.slice(4)),a=t.name,s=t.format()}catch(e){}break}}return Wt.throwError("call revert exception"+o,b.errors.CALL_EXCEPTION,{method:e.format(),data:x(t),errorArgs:i,errorName:a,errorSignature:s,reason:n})}encodeFunctionResult(e,t){return"string"==typeof e&&(e=this.getFunction(e)),x(this._abiCoder.encode(e.outputs,t||[]))}encodeFilterTopics(e,t){"string"==typeof e&&(e=this.getEvent(e)),t.length>e.inputs.length&&Wt.throwError("too many arguments for "+e.format(),b.errors.UNEXPECTED_ARGUMENT,{argument:"values",value:t});let r=[];e.anonymous||r.push(this.getEventTopic(e));const n=(e,t)=>"string"===e.type?Ye(t):"bytes"===e.type?be(x(t)):("bool"===e.type&&"boolean"==typeof t&&(t=t?"0x01":"0x00"),e.type.match(/^u?int/)&&(t=K.from(t).toHexString()),"address"===e.type&&this._abiCoder.encode(["address"],[t]),B(x(t),32));for(t.forEach(((t,o)=>{let i=e.inputs[o];i.indexed?null==t?r.push(null):"array"===i.baseType||"tuple"===i.baseType?Wt.throwArgumentError("filtering with tuples or arrays not supported","contract."+i.name,t):Array.isArray(t)?r.push(t.map((e=>n(i,e)))):r.push(n(i,t)):null!=t&&Wt.throwArgumentError("cannot filter non-indexed parameters; must be null","contract."+i.name,t)}));r.length&&null===r[r.length-1];)r.pop();return r}encodeEventLog(e,t){"string"==typeof e&&(e=this.getEvent(e));const r=[],n=[],o=[];return e.anonymous||r.push(this.getEventTopic(e)),t.length!==e.inputs.length&&Wt.throwArgumentError("event arguments/values mismatch","values",t),e.inputs.forEach(((e,i)=>{const a=t[i];if(e.indexed)if("string"===e.type)r.push(Ye(a));else if("bytes"===e.type)r.push(be(a));else{if("tuple"===e.baseType||"array"===e.baseType)throw new Error("not implemented");r.push(this._abiCoder.encode([e.type],[a]))}else n.push(e),o.push(a)})),{data:this._abiCoder.encode(n,o),topics:r}}decodeEventLog(e,t,r){if("string"==typeof e&&(e=this.getEvent(e)),null!=r&&!e.anonymous){let t=this.getEventTopic(e);C(r[0],32)&&r[0].toLowerCase()===t||Wt.throwError("fragment/topic mismatch",b.errors.INVALID_ARGUMENT,{argument:"topics[0]",expected:t,value:r[0]}),r=r.slice(1)}let n=[],o=[],i=[];e.inputs.forEach(((e,t)=>{e.indexed?"string"===e.type||"bytes"===e.type||"tuple"===e.baseType||"array"===e.baseType?(n.push(Mt.fromObject({type:"bytes32",name:e.name})),i.push(!0)):(n.push(e),i.push(!1)):(o.push(e),i.push(!1))}));let a=null!=r?this._abiCoder.decode(n,P(r)):null,s=this._abiCoder.decode(o,t,!0),u=[],c=0,d=0;e.inputs.forEach(((e,t)=>{if(e.indexed)if(null==a)u[t]=new $t({_isIndexed:!0,hash:null});else if(i[t])u[t]=new $t({_isIndexed:!0,hash:a[d++]});else try{u[t]=a[d++]}catch(e){u[t]=e}else try{u[t]=s[c++]}catch(e){u[t]=e}if(e.name&&null==u[e.name]){const r=u[t];r instanceof Error?Object.defineProperty(u,e.name,{enumerable:!0,get:()=>{throw Qt(`property ${JSON.stringify(e.name)}`,r)}}):u[e.name]=r}}));for(let e=0;e{throw Qt(`index ${e}`,t)}})}return Object.freeze(u)}parseTransaction(e){let t=this.getFunction(e.data.substring(0,10).toLowerCase());return t?new Gt({args:this._abiCoder.decode(t.inputs,"0x"+e.data.substring(10)),functionFragment:t,name:t.name,signature:t.format(),sighash:this.getSighash(t),value:K.from(e.value||"0")}):null}parseLog(e){let t=this.getEvent(e.topics[0]);return!t||t.anonymous?null:new Kt({eventFragment:t,name:t.name,signature:t.format(),topic:this.getEventTopic(t),args:this.decodeEventLog(t,e.data,e.topics)})}parseError(e){const t=x(e);let r=this.getError(t.substring(0,10).toLowerCase());return r?new Yt({args:this._abiCoder.decode(r.inputs,"0x"+t.substring(10)),errorFragment:r,name:r.name,signature:r.format(),sighash:this.getSighash(r)}):null}static isInterface(e){return!(!e||!e._isInterface)}}const tr=new b("abstract-provider/5.6.1");class rr extends ce{static isForkEvent(e){return!(!e||!e._isForkEvent)}}class nr{constructor(){tr.checkAbstract(new.target,nr),ee(this,"_isProvider",!0)}getFeeData(){return e=this,t=void 0,n=function*(){const{block:e,gasPrice:t}=yield re({block:this.getBlock("latest"),gasPrice:this.getGasPrice().catch((e=>null))});let r=null,n=null;return e&&e.baseFeePerGas&&(n=K.from("1500000000"),r=e.baseFeePerGas.mul(2).add(n)),{maxFeePerGas:r,maxPriorityFeePerGas:n,gasPrice:t}},new((r=void 0)||(r=Promise))((function(o,i){function a(e){try{u(n.next(e))}catch(e){i(e)}}function s(e){try{u(n.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,s)}u((n=n.apply(e,t||[])).next())}));var e,t,r,n}addListener(e,t){return this.on(e,t)}removeListener(e,t){return this.off(e,t)}static isProvider(e){return!(!e||!e._isProvider)}}var or=function(e,t,r,n){return new(r||(r=Promise))((function(o,i){function a(e){try{u(n.next(e))}catch(e){i(e)}}function s(e){try{u(n.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,s)}u((n=n.apply(e,t||[])).next())}))};const ir=new b("abstract-signer/5.6.2"),ar=["accessList","ccipReadEnabled","chainId","customData","data","from","gasLimit","gasPrice","maxFeePerGas","maxPriorityFeePerGas","nonce","to","type","value"],sr=[b.errors.INSUFFICIENT_FUNDS,b.errors.NONCE_EXPIRED,b.errors.REPLACEMENT_UNDERPRICED];class ur{constructor(){ir.checkAbstract(new.target,ur),ee(this,"_isSigner",!0)}getBalance(e){return or(this,void 0,void 0,(function*(){return this._checkProvider("getBalance"),yield this.provider.getBalance(this.getAddress(),e)}))}getTransactionCount(e){return or(this,void 0,void 0,(function*(){return this._checkProvider("getTransactionCount"),yield this.provider.getTransactionCount(this.getAddress(),e)}))}estimateGas(e){return or(this,void 0,void 0,(function*(){this._checkProvider("estimateGas");const t=yield re(this.checkTransaction(e));return yield this.provider.estimateGas(t)}))}call(e,t){return or(this,void 0,void 0,(function*(){this._checkProvider("call");const r=yield re(this.checkTransaction(e));return yield this.provider.call(r,t)}))}sendTransaction(e){return or(this,void 0,void 0,(function*(){this._checkProvider("sendTransaction");const t=yield this.populateTransaction(e),r=yield this.signTransaction(t);return yield this.provider.sendTransaction(r)}))}getChainId(){return or(this,void 0,void 0,(function*(){return this._checkProvider("getChainId"),(yield this.provider.getNetwork()).chainId}))}getGasPrice(){return or(this,void 0,void 0,(function*(){return this._checkProvider("getGasPrice"),yield this.provider.getGasPrice()}))}getFeeData(){return or(this,void 0,void 0,(function*(){return this._checkProvider("getFeeData"),yield this.provider.getFeeData()}))}resolveName(e){return or(this,void 0,void 0,(function*(){return this._checkProvider("resolveName"),yield this.provider.resolveName(e)}))}checkTransaction(e){for(const t in e)-1===ar.indexOf(t)&&ir.throwArgumentError("invalid transaction key: "+t,"transaction",e);const t=oe(e);return null==t.from?t.from=this.getAddress():t.from=Promise.all([Promise.resolve(t.from),this.getAddress()]).then((t=>(t[0].toLowerCase()!==t[1].toLowerCase()&&ir.throwArgumentError("from address mismatch","transaction",e),t[0]))),t}populateTransaction(e){return or(this,void 0,void 0,(function*(){const t=yield re(this.checkTransaction(e));null!=t.to&&(t.to=Promise.resolve(t.to).then((e=>or(this,void 0,void 0,(function*(){if(null==e)return null;const t=yield this.resolveName(e);return null==t&&ir.throwArgumentError("provided ENS name resolves to null","tx.to",e),t})))),t.to.catch((e=>{})));const r=null!=t.maxFeePerGas||null!=t.maxPriorityFeePerGas;if(null==t.gasPrice||2!==t.type&&!r?0!==t.type&&1!==t.type||!r||ir.throwArgumentError("pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas","transaction",e):ir.throwArgumentError("eip-1559 transaction do not support gasPrice","transaction",e),2!==t.type&&null!=t.type||null==t.maxFeePerGas||null==t.maxPriorityFeePerGas)if(0===t.type||1===t.type)null==t.gasPrice&&(t.gasPrice=this.getGasPrice());else{const e=yield this.getFeeData();if(null==t.type)if(null!=e.maxFeePerGas&&null!=e.maxPriorityFeePerGas)if(t.type=2,null!=t.gasPrice){const e=t.gasPrice;delete t.gasPrice,t.maxFeePerGas=e,t.maxPriorityFeePerGas=e}else null==t.maxFeePerGas&&(t.maxFeePerGas=e.maxFeePerGas),null==t.maxPriorityFeePerGas&&(t.maxPriorityFeePerGas=e.maxPriorityFeePerGas);else null!=e.gasPrice?(r&&ir.throwError("network does not support EIP-1559",b.errors.UNSUPPORTED_OPERATION,{operation:"populateTransaction"}),null==t.gasPrice&&(t.gasPrice=e.gasPrice),t.type=0):ir.throwError("failed to get consistent fee data",b.errors.UNSUPPORTED_OPERATION,{operation:"signer.getFeeData"});else 2===t.type&&(null==t.maxFeePerGas&&(t.maxFeePerGas=e.maxFeePerGas),null==t.maxPriorityFeePerGas&&(t.maxPriorityFeePerGas=e.maxPriorityFeePerGas))}else t.type=2;return null==t.nonce&&(t.nonce=this.getTransactionCount("pending")),null==t.gasLimit&&(t.gasLimit=this.estimateGas(t).catch((e=>{if(sr.indexOf(e.code)>=0)throw e;return ir.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",b.errors.UNPREDICTABLE_GAS_LIMIT,{error:e,tx:t})}))),null==t.chainId?t.chainId=this.getChainId():t.chainId=Promise.all([Promise.resolve(t.chainId),this.getChainId()]).then((t=>(0!==t[1]&&t[0]!==t[1]&&ir.throwArgumentError("chainId address mismatch","transaction",e),t[0]))),yield re(t)}))}_checkProvider(e){this.provider||ir.throwError("missing provider",b.errors.UNSUPPORTED_OPERATION,{operation:e||"_checkProvider"})}static isSigner(e){return!(!e||!e._isSigner)}}class cr extends ur{constructor(e,t){super(),ee(this,"address",e),ee(this,"provider",t||null)}getAddress(){return Promise.resolve(this.address)}_fail(e,t){return Promise.resolve().then((()=>{ir.throwError(e,b.errors.UNSUPPORTED_OPERATION,{operation:t})}))}signMessage(e){return this._fail("VoidSigner cannot sign messages","signMessage")}signTransaction(e){return this._fail("VoidSigner cannot sign transactions","signTransaction")}_signTypedData(e,t,r){return this._fail("VoidSigner cannot sign typed data","signTypedData")}connect(e){return new cr(this.address,e)}}var dr=r(33715),lr=r.n(dr);function fr(e,t,r){return r={path:t,exports:{},require:function(e,t){return function(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}(null==t&&r.path)}},e(r,r.exports),r.exports}"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==r.g?r.g:"undefined"!=typeof self&&self;var hr=pr;function pr(e,t){if(!e)throw new Error(t||"Assertion failed")}pr.equal=function(e,t,r){if(e!=t)throw new Error(r||"Assertion failed: "+e+" != "+t)};var mr=fr((function(e,t){var r=t;function n(e){return 1===e.length?"0"+e:e}function o(e){for(var t="",r=0;r>8,a=255&o;i?r.push(i,a):r.push(a)}return r},r.zero2=n,r.toHex=o,r.encode=function(e,t){return"hex"===t?o(e):e}})),gr=fr((function(e,t){var r=t;r.assert=hr,r.toArray=mr.toArray,r.zero2=mr.zero2,r.toHex=mr.toHex,r.encode=mr.encode,r.getNAF=function(e,t,r){var n=new Array(Math.max(e.bitLength(),r)+1);n.fill(0);for(var o=1<(o>>1)-1?(o>>1)-u:u,i.isubn(s)):s=0,n[a]=s,i.iushrn(1)}return n},r.getJSF=function(e,t){var r=[[],[]];e=e.clone(),t=t.clone();for(var n,o=0,i=0;e.cmpn(-o)>0||t.cmpn(-i)>0;){var a,s,u=e.andln(3)+o&3,c=t.andln(3)+i&3;3===u&&(u=-1),3===c&&(c=-1),a=0==(1&u)?0:3!=(n=e.andln(7)+o&7)&&5!==n||2!==c?u:-u,r[0].push(a),s=0==(1&c)?0:3!=(n=t.andln(7)+i&7)&&5!==n||2!==u?c:-c,r[1].push(s),2*o===a+1&&(o=1-o),2*i===s+1&&(i=1-i),e.iushrn(1),t.iushrn(1)}return r},r.cachedProperty=function(e,t,r){var n="_"+t;e.prototype[t]=function(){return void 0!==this[n]?this[n]:this[n]=r.call(this)}},r.parseBytes=function(e){return"string"==typeof e?r.toArray(e,"hex"):e},r.intFromLE=function(e){return new(L())(e,"hex","le")}})),vr=gr.getNAF,br=gr.getJSF,yr=gr.assert;function wr(e,t){this.type=e,this.p=new(L())(t.p,16),this.red=t.prime?L().red(t.prime):L().mont(this.p),this.zero=new(L())(0).toRed(this.red),this.one=new(L())(1).toRed(this.red),this.two=new(L())(2).toRed(this.red),this.n=t.n&&new(L())(t.n,16),this.g=t.g&&this.pointFromJSON(t.g,t.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var r=this.n&&this.p.div(this.n);!r||r.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}var _r=wr;function Sr(e,t){this.curve=e,this.type=t,this.precomputed=null}wr.prototype.point=function(){throw new Error("Not implemented")},wr.prototype.validate=function(){throw new Error("Not implemented")},wr.prototype._fixedNafMul=function(e,t){yr(e.precomputed);var r=e._getDoubles(),n=vr(t,1,this._bitLength),o=(1<=i;u--)a=(a<<1)+n[u];s.push(a)}for(var c=this.jpoint(null,null,null),d=this.jpoint(null,null,null),l=o;l>0;l--){for(i=0;i=0;s--){for(var u=0;s>=0&&0===i[s];s--)u++;if(s>=0&&u++,a=a.dblp(u),s<0)break;var c=i[s];yr(0!==c),a="affine"===e.type?c>0?a.mixedAdd(o[c-1>>1]):a.mixedAdd(o[-c-1>>1].neg()):c>0?a.add(o[c-1>>1]):a.add(o[-c-1>>1].neg())}return"affine"===e.type?a.toP():a},wr.prototype._wnafMulAdd=function(e,t,r,n,o){var i,a,s,u=this._wnafT1,c=this._wnafT2,d=this._wnafT3,l=0;for(i=0;i=1;i-=2){var h=i-1,p=i;if(1===u[h]&&1===u[p]){var m=[t[h],null,null,t[p]];0===t[h].y.cmp(t[p].y)?(m[1]=t[h].add(t[p]),m[2]=t[h].toJ().mixedAdd(t[p].neg())):0===t[h].y.cmp(t[p].y.redNeg())?(m[1]=t[h].toJ().mixedAdd(t[p]),m[2]=t[h].add(t[p].neg())):(m[1]=t[h].toJ().mixedAdd(t[p]),m[2]=t[h].toJ().mixedAdd(t[p].neg()));var g=[-3,-1,-5,-7,0,7,5,1,3],v=br(r[h],r[p]);for(l=Math.max(v[0].length,l),d[h]=new Array(l),d[p]=new Array(l),a=0;a=0;i--){for(var S=0;i>=0;){var O=!0;for(a=0;a=0&&S++,w=w.dblp(S),i<0)break;for(a=0;a0?s=c[a][k-1>>1]:k<0&&(s=c[a][-k-1>>1].neg()),w="affine"===s.type?w.mixedAdd(s):w.add(s))}}for(i=0;i=Math.ceil((e.bitLength()+1)/t.step)},Sr.prototype._getDoubles=function(e,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var r=[this],n=this,o=0;o=0&&(i=t,a=r),n.negative&&(n=n.neg(),o=o.neg()),i.negative&&(i=i.neg(),a=a.neg()),[{a:n,b:o},{a:i,b:a}]},Ar.prototype._endoSplit=function(e){var t=this.endo.basis,r=t[0],n=t[1],o=n.b.mul(e).divRound(this.n),i=r.b.neg().mul(e).divRound(this.n),a=o.mul(r.a),s=i.mul(n.a),u=o.mul(r.b),c=i.mul(n.b);return{k1:e.sub(a).sub(s),k2:u.add(c).neg()}},Ar.prototype.pointFromX=function(e,t){(e=new(L())(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b),n=r.redSqrt();if(0!==n.redSqr().redSub(r).cmp(this.zero))throw new Error("invalid point");var o=n.fromRed().isOdd();return(t&&!o||!t&&o)&&(n=n.redNeg()),this.point(e,n)},Ar.prototype.validate=function(e){if(e.inf)return!0;var t=e.x,r=e.y,n=this.a.redMul(t),o=t.redSqr().redMul(t).redIAdd(n).redIAdd(this.b);return 0===r.redSqr().redISub(o).cmpn(0)},Ar.prototype._endoWnafMulAdd=function(e,t,r){for(var n=this._endoWnafT1,o=this._endoWnafT2,i=0;i":""},Mr.prototype.isInfinity=function(){return this.inf},Mr.prototype.add=function(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e))return this.curve.point(null,null);if(0===this.x.cmp(e.x))return this.curve.point(null,null);var t=this.y.redSub(e.y);0!==t.cmpn(0)&&(t=t.redMul(this.x.redSub(e.x).redInvm()));var r=t.redSqr().redISub(this.x).redISub(e.x),n=t.redMul(this.x.redSub(r)).redISub(this.y);return this.curve.point(r,n)},Mr.prototype.dbl=function(){if(this.inf)return this;var e=this.y.redAdd(this.y);if(0===e.cmpn(0))return this.curve.point(null,null);var t=this.curve.a,r=this.x.redSqr(),n=e.redInvm(),o=r.redAdd(r).redIAdd(r).redIAdd(t).redMul(n),i=o.redSqr().redISub(this.x.redAdd(this.x)),a=o.redMul(this.x.redSub(i)).redISub(this.y);return this.curve.point(i,a)},Mr.prototype.getX=function(){return this.x.fromRed()},Mr.prototype.getY=function(){return this.y.fromRed()},Mr.prototype.mul=function(e){return e=new(L())(e,16),this.isInfinity()?this:this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve.endo?this.curve._endoWnafMulAdd([this],[e]):this.curve._wnafMul(this,e)},Mr.prototype.mulAdd=function(e,t,r){var n=[this,t],o=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,o):this.curve._wnafMulAdd(1,n,o,2)},Mr.prototype.jmulAdd=function(e,t,r){var n=[this,t],o=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,o,!0):this.curve._wnafMulAdd(1,n,o,2,!0)},Mr.prototype.eq=function(e){return this===e||this.inf===e.inf&&(this.inf||0===this.x.cmp(e.x)&&0===this.y.cmp(e.y))},Mr.prototype.neg=function(e){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(e&&this.precomputed){var r=this.precomputed,n=function(e){return e.neg()};t.precomputed={naf:r.naf&&{wnd:r.naf.wnd,points:r.naf.points.map(n)},doubles:r.doubles&&{step:r.doubles.step,points:r.doubles.points.map(n)}}}return t},Mr.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},Or(Er,_r.BasePoint),Ar.prototype.jpoint=function(e,t,r){return new Er(this,e,t,r)},Er.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var e=this.z.redInvm(),t=e.redSqr(),r=this.x.redMul(t),n=this.y.redMul(t).redMul(e);return this.curve.point(r,n)},Er.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},Er.prototype.add=function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.z.redSqr(),r=this.z.redSqr(),n=this.x.redMul(t),o=e.x.redMul(r),i=this.y.redMul(t.redMul(e.z)),a=e.y.redMul(r.redMul(this.z)),s=n.redSub(o),u=i.redSub(a);if(0===s.cmpn(0))return 0!==u.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var c=s.redSqr(),d=c.redMul(s),l=n.redMul(c),f=u.redSqr().redIAdd(d).redISub(l).redISub(l),h=u.redMul(l.redISub(f)).redISub(i.redMul(d)),p=this.z.redMul(e.z).redMul(s);return this.curve.jpoint(f,h,p)},Er.prototype.mixedAdd=function(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;var t=this.z.redSqr(),r=this.x,n=e.x.redMul(t),o=this.y,i=e.y.redMul(t).redMul(this.z),a=r.redSub(n),s=o.redSub(i);if(0===a.cmpn(0))return 0!==s.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var u=a.redSqr(),c=u.redMul(a),d=r.redMul(u),l=s.redSqr().redIAdd(c).redISub(d).redISub(d),f=s.redMul(d.redISub(l)).redISub(o.redMul(c)),h=this.z.redMul(a);return this.curve.jpoint(l,f,h)},Er.prototype.dblp=function(e){if(0===e)return this;if(this.isInfinity())return this;if(!e)return this.dbl();var t;if(this.curve.zeroA||this.curve.threeA){var r=this;for(t=0;t=0)return!1;if(r.redIAdd(o),0===this.x.cmp(r))return!0}},Er.prototype.inspect=function(){return this.isInfinity()?"":""},Er.prototype.isInfinity=function(){return 0===this.z.cmpn(0)};var Cr=fr((function(e,t){var r=t;r.base=_r,r.short=Pr,r.mont=null,r.edwards=null})),Nr=fr((function(e,t){var r,n=t,o=gr.assert;function i(e){"short"===e.type?this.curve=new Cr.short(e):"edwards"===e.type?this.curve=new Cr.edwards(e):this.curve=new Cr.mont(e),this.g=this.curve.g,this.n=this.curve.n,this.hash=e.hash,o(this.g.validate(),"Invalid curve"),o(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function a(e,t){Object.defineProperty(n,e,{configurable:!0,enumerable:!0,get:function(){var r=new i(t);return Object.defineProperty(n,e,{configurable:!0,enumerable:!0,value:r}),r}})}n.PresetCurve=i,a("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:lr().sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),a("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:lr().sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),a("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:lr().sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),a("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:lr().sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),a("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:lr().sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),a("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:lr().sha256,gRed:!1,g:["9"]}),a("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:lr().sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{r=null.crash()}catch(e){r=void 0}a("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:lr().sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",r]})}));function xr(e){if(!(this instanceof xr))return new xr(e);this.hash=e.hash,this.predResist=!!e.predResist,this.outLen=this.hash.outSize,this.minEntropy=e.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var t=mr.toArray(e.entropy,e.entropyEnc||"hex"),r=mr.toArray(e.nonce,e.nonceEnc||"hex"),n=mr.toArray(e.pers,e.persEnc||"hex");hr(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(t,r,n)}var Rr=xr;xr.prototype._init=function(e,t,r){var n=e.concat(t).concat(r);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var o=0;o=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(e.concat(r||[])),this._reseed=1},xr.prototype.generate=function(e,t,r,n){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof t&&(n=r,r=t,t=null),r&&(r=mr.toArray(r,n||"hex"),this._update(r));for(var o=[];o.length"};var Dr=gr.assert;function Br(e,t){if(e instanceof Br)return e;this._importDER(e,t)||(Dr(e.r&&e.s,"Signature without r or s"),this.r=new(L())(e.r,16),this.s=new(L())(e.s,16),void 0===e.recoveryParam?this.recoveryParam=null:this.recoveryParam=e.recoveryParam)}var Ur=Br;function Jr(){this.place=0}function Hr(e,t){var r=e[t.place++];if(!(128&r))return r;var n=15&r;if(0===n||n>4)return!1;for(var o=0,i=0,a=t.place;i>>=0;return!(o<=127)&&(t.place=a,o)}function Lr(e){for(var t=0,r=e.length-1;!e[t]&&!(128&e[t+1])&&t>>3);for(e.push(128|r);--r;)e.push(t>>>(r<<3)&255);e.push(t)}}Br.prototype._importDER=function(e,t){e=gr.toArray(e,t);var r=new Jr;if(48!==e[r.place++])return!1;var n=Hr(e,r);if(!1===n)return!1;if(n+r.place!==e.length)return!1;if(2!==e[r.place++])return!1;var o=Hr(e,r);if(!1===o)return!1;var i=e.slice(r.place,o+r.place);if(r.place+=o,2!==e[r.place++])return!1;var a=Hr(e,r);if(!1===a)return!1;if(e.length!==a+r.place)return!1;var s=e.slice(r.place,a+r.place);if(0===i[0]){if(!(128&i[1]))return!1;i=i.slice(1)}if(0===s[0]){if(!(128&s[1]))return!1;s=s.slice(1)}return this.r=new(L())(i),this.s=new(L())(s),this.recoveryParam=null,!0},Br.prototype.toDER=function(e){var t=this.r.toArray(),r=this.s.toArray();for(128&t[0]&&(t=[0].concat(t)),128&r[0]&&(r=[0].concat(r)),t=Lr(t),r=Lr(r);!(r[0]||128&r[1]);)r=r.slice(1);var n=[2];zr(n,t.length),(n=n.concat(t)).push(2),zr(n,r.length);var o=n.concat(r),i=[48];return zr(i,o.length),i=i.concat(o),gr.encode(i,e)};var Vr=function(){throw new Error("unsupported")},qr=gr.assert;function Fr(e){if(!(this instanceof Fr))return new Fr(e);"string"==typeof e&&(qr(Object.prototype.hasOwnProperty.call(Nr,e),"Unknown curve "+e),e=Nr[e]),e instanceof Nr.PresetCurve&&(e={curve:e}),this.curve=e.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=e.curve.g,this.g.precompute(e.curve.n.bitLength()+1),this.hash=e.hash||e.curve.hash}var Zr=Fr;Fr.prototype.keyPair=function(e){return new jr(this,e)},Fr.prototype.keyFromPrivate=function(e,t){return jr.fromPrivate(this,e,t)},Fr.prototype.keyFromPublic=function(e,t){return jr.fromPublic(this,e,t)},Fr.prototype.genKeyPair=function(e){e||(e={});for(var t=new Rr({hash:this.hash,pers:e.pers,persEnc:e.persEnc||"utf8",entropy:e.entropy||Vr(this.hash.hmacStrength),entropyEnc:e.entropy&&e.entropyEnc||"utf8",nonce:this.n.toArray()}),r=this.n.byteLength(),n=this.n.sub(new(L())(2));;){var o=new(L())(t.generate(r));if(!(o.cmp(n)>0))return o.iaddn(1),this.keyFromPrivate(o)}},Fr.prototype._truncateToN=function(e,t){var r=8*e.byteLength()-this.n.bitLength();return r>0&&(e=e.ushrn(r)),!t&&e.cmp(this.n)>=0?e.sub(this.n):e},Fr.prototype.sign=function(e,t,r,n){"object"==typeof r&&(n=r,r=null),n||(n={}),t=this.keyFromPrivate(t,r),e=this._truncateToN(new(L())(e,16));for(var o=this.n.byteLength(),i=t.getPrivate().toArray("be",o),a=e.toArray("be",o),s=new Rr({hash:this.hash,entropy:i,nonce:a,pers:n.pers,persEnc:n.persEnc||"utf8"}),u=this.n.sub(new(L())(1)),c=0;;c++){var d=n.k?n.k(c):new(L())(s.generate(this.n.byteLength()));if(!((d=this._truncateToN(d,!0)).cmpn(1)<=0||d.cmp(u)>=0)){var l=this.g.mul(d);if(!l.isInfinity()){var f=l.getX(),h=f.umod(this.n);if(0!==h.cmpn(0)){var p=d.invm(this.n).mul(h.mul(t.getPrivate()).iadd(e));if(0!==(p=p.umod(this.n)).cmpn(0)){var m=(l.getY().isOdd()?1:0)|(0!==f.cmp(h)?2:0);return n.canonical&&p.cmp(this.nh)>0&&(p=this.n.sub(p),m^=1),new Ur({r:h,s:p,recoveryParam:m})}}}}}},Fr.prototype.verify=function(e,t,r,n){e=this._truncateToN(new(L())(e,16)),r=this.keyFromPublic(r,n);var o=(t=new Ur(t,"hex")).r,i=t.s;if(o.cmpn(1)<0||o.cmp(this.n)>=0)return!1;if(i.cmpn(1)<0||i.cmp(this.n)>=0)return!1;var a,s=i.invm(this.n),u=s.mul(e).umod(this.n),c=s.mul(o).umod(this.n);return this.curve._maxwellTrick?!(a=this.g.jmulAdd(u,r.getPublic(),c)).isInfinity()&&a.eqXToP(o):!(a=this.g.mulAdd(u,r.getPublic(),c)).isInfinity()&&0===a.getX().umod(this.n).cmp(o)},Fr.prototype.recoverPubKey=function(e,t,r,n){qr((3&r)===r,"The recovery param is more than two bits"),t=new Ur(t,n);var o=this.n,i=new(L())(e),a=t.r,s=t.s,u=1&r,c=r>>1;if(a.cmp(this.curve.p.umod(this.curve.n))>=0&&c)throw new Error("Unable to find sencond key candinate");a=c?this.curve.pointFromX(a.add(this.curve.n),u):this.curve.pointFromX(a,u);var d=t.r.invm(o),l=o.sub(i).mul(d).umod(o),f=s.mul(d).umod(o);return this.g.mulAdd(l,a,f)},Fr.prototype.getKeyRecoveryParam=function(e,t,r,n){if(null!==(t=new Ur(t,n)).recoveryParam)return t.recoveryParam;for(var o=0;o<4;o++){var i;try{i=this.recoverPubKey(e,t,o)}catch(e){continue}if(i.eq(r))return o}throw new Error("Unable to find valid recovery factor")};var Wr=fr((function(e,t){var r=t;r.version="6.5.4",r.utils=gr,r.rand=function(){throw new Error("unsupported")},r.curve=Cr,r.curves=Nr,r.ec=Zr,r.eddsa=null})).ec;const Kr=new b("signing-key/5.6.2");let Gr=null;function Yr(){return Gr||(Gr=new Wr("secp256k1")),Gr}class $r{constructor(e){ee(this,"curve","secp256k1"),ee(this,"privateKey",x(e)),32!==R(this.privateKey)&&Kr.throwArgumentError("invalid private key","privateKey","[[ REDACTED ]]");const t=Yr().keyFromPrivate(A(this.privateKey));ee(this,"publicKey","0x"+t.getPublic(!1,"hex")),ee(this,"compressedPublicKey","0x"+t.getPublic(!0,"hex")),ee(this,"_isSigningKey",!0)}_addPoint(e){const t=Yr().keyFromPublic(A(this.publicKey)),r=Yr().keyFromPublic(A(e));return"0x"+t.pub.add(r.pub).encodeCompressed("hex")}signDigest(e){const t=Yr().keyFromPrivate(A(this.privateKey)),r=A(e);32!==r.length&&Kr.throwArgumentError("bad digest length","digest",e);const n=t.sign(r,{canonical:!0});return U({recoveryParam:n.recoveryParam,r:B("0x"+n.r.toString(16),32),s:B("0x"+n.s.toString(16),32)})}computeSharedSecret(e){const t=Yr().keyFromPrivate(A(this.privateKey)),r=Yr().keyFromPublic(A(Qr(e)));return B("0x"+t.derive(r.getPublic()).toString(16),32)}static isSigningKey(e){return!(!e||!e._isSigningKey)}}function Xr(e,t){const r=U(t),n={r:A(r.r),s:A(r.s)};return"0x"+Yr().recoverPubKey(A(e),n,r.recoveryParam).encode("hex",!1)}function Qr(e,t){const r=A(e);if(32===r.length){const e=new $r(r);return t?"0x"+Yr().keyFromPrivate(r).getPublic(!0,"hex"):e.publicKey}return 33===r.length?t?x(r):"0x"+Yr().keyFromPublic(r).getPublic(!1,"hex"):65===r.length?t?"0x"+Yr().keyFromPublic(r).getPublic(!0,"hex"):x(r):Kr.throwArgumentError("invalid public or private key","key","[REDACTED]")}const en=new b("transactions/5.6.2");var tn;function rn(e){return"0x"===e?null:Ie(e)}function nn(e){return"0x"===e?ct:K.from(e)}!function(e){e[e.legacy=0]="legacy",e[e.eip2930=1]="eip2930",e[e.eip1559=2]="eip1559"}(tn||(tn={}));const on=[{name:"nonce",maxLength:32,numeric:!0},{name:"gasPrice",maxLength:32,numeric:!0},{name:"gasLimit",maxLength:32,numeric:!0},{name:"to",length:20},{name:"value",maxLength:32,numeric:!0},{name:"data"}],an={chainId:!0,data:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,type:!0,value:!0};function sn(e){return Ie(I(be(I(Qr(e),1)),12))}function un(e,t){return sn(Xr(A(e),t))}function cn(e,t){const r=M(K.from(e).toHexString());return r.length>32&&en.throwArgumentError("invalid length for "+t,"transaction:"+t,e),r}function dn(e,t){return{address:Ie(e),storageKeys:(t||[]).map(((t,r)=>(32!==R(t)&&en.throwArgumentError("invalid access list storageKey",`accessList[${e}:${r}]`,t),t.toLowerCase())))}}function ln(e){if(Array.isArray(e))return e.map(((e,t)=>Array.isArray(e)?(e.length>2&&en.throwArgumentError("access list expected to be [ address, storageKeys[] ]",`value[${t}]`,e),dn(e[0],e[1])):dn(e.address,e.storageKeys)));const t=Object.keys(e).map((t=>{const r=e[t].reduce(((e,t)=>(e[t]=!0,e)),{});return dn(t,Object.keys(r).sort())}));return t.sort(((e,t)=>e.address.localeCompare(t.address))),t}function fn(e){return ln(e).map((e=>[e.address,e.storageKeys]))}function hn(e,t){if(null!=e.gasPrice){const t=K.from(e.gasPrice),r=K.from(e.maxFeePerGas||0);t.eq(r)||en.throwArgumentError("mismatch EIP-1559 gasPrice != maxFeePerGas","tx",{gasPrice:t,maxFeePerGas:r})}const r=[cn(e.chainId||0,"chainId"),cn(e.nonce||0,"nonce"),cn(e.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),cn(e.maxFeePerGas||0,"maxFeePerGas"),cn(e.gasLimit||0,"gasLimit"),null!=e.to?Ie(e.to):"0x",cn(e.value||0,"value"),e.data||"0x",fn(e.accessList||[])];if(t){const e=U(t);r.push(cn(e.recoveryParam,"recoveryParam")),r.push(M(e.r)),r.push(M(e.s))}return T(["0x02",Oe(r)])}function pn(e,t){const r=[cn(e.chainId||0,"chainId"),cn(e.nonce||0,"nonce"),cn(e.gasPrice||0,"gasPrice"),cn(e.gasLimit||0,"gasLimit"),null!=e.to?Ie(e.to):"0x",cn(e.value||0,"value"),e.data||"0x",fn(e.accessList||[])];if(t){const e=U(t);r.push(cn(e.recoveryParam,"recoveryParam")),r.push(M(e.r)),r.push(M(e.s))}return T(["0x01",Oe(r)])}function mn(e,t){if(null==e.type||0===e.type)return null!=e.accessList&&en.throwArgumentError("untyped transactions do not support accessList; include type: 1","transaction",e),function(e,t){ne(e,an);const r=[];on.forEach((function(t){let n=e[t.name]||[];const o={};t.numeric&&(o.hexPad="left"),n=A(x(n,o)),t.length&&n.length!==t.length&&n.length>0&&en.throwArgumentError("invalid length for "+t.name,"transaction:"+t.name,n),t.maxLength&&(n=M(n),n.length>t.maxLength&&en.throwArgumentError("invalid length for "+t.name,"transaction:"+t.name,n)),r.push(x(n))}));let n=0;if(null!=e.chainId?(n=e.chainId,"number"!=typeof n&&en.throwArgumentError("invalid transaction.chainId","transaction",e)):t&&!S(t)&&t.v>28&&(n=Math.floor((t.v-35)/2)),0!==n&&(r.push(x(n)),r.push("0x"),r.push("0x")),!t)return Oe(r);const o=U(t);let i=27+o.recoveryParam;return 0!==n?(r.pop(),r.pop(),r.pop(),i+=2*n+8,o.v>28&&o.v!==i&&en.throwArgumentError("transaction.chainId/signature.v mismatch","signature",t)):o.v!==i&&en.throwArgumentError("transaction.chainId/signature.v mismatch","signature",t),r.push(x(i)),r.push(M(A(o.r))),r.push(M(A(o.s))),Oe(r)}(e,t);switch(e.type){case 1:return pn(e,t);case 2:return hn(e,t)}return en.throwError(`unsupported transaction type: ${e.type}`,b.errors.UNSUPPORTED_OPERATION,{operation:"serializeTransaction",transactionType:e.type})}function gn(e,t,r){try{const r=nn(t[0]).toNumber();if(0!==r&&1!==r)throw new Error("bad recid");e.v=r}catch(e){en.throwArgumentError("invalid v for transaction type: 1","v",t[0])}e.r=B(t[1],32),e.s=B(t[2],32);try{const t=be(r(e));e.from=un(t,{r:e.r,s:e.s,recoveryParam:e.v})}catch(e){}}function vn(e){const t=A(e);if(t[0]>127)return function(e){const t=Pe(e);9!==t.length&&6!==t.length&&en.throwArgumentError("invalid raw transaction","rawTransaction",e);const r={nonce:nn(t[0]).toNumber(),gasPrice:nn(t[1]),gasLimit:nn(t[2]),to:rn(t[3]),value:nn(t[4]),data:t[5],chainId:0};if(6===t.length)return r;try{r.v=K.from(t[6]).toNumber()}catch(e){return r}if(r.r=B(t[7],32),r.s=B(t[8],32),K.from(r.r).isZero()&&K.from(r.s).isZero())r.chainId=r.v,r.v=0;else{r.chainId=Math.floor((r.v-35)/2),r.chainId<0&&(r.chainId=0);let n=r.v-27;const o=t.slice(0,6);0!==r.chainId&&(o.push(x(r.chainId)),o.push("0x"),o.push("0x"),n-=2*r.chainId+8);const i=be(Oe(o));try{r.from=un(i,{r:x(r.r),s:x(r.s),recoveryParam:n})}catch(e){}r.hash=be(e)}return r.type=null,r}(t);switch(t[0]){case 1:return function(e){const t=Pe(e.slice(1));8!==t.length&&11!==t.length&&en.throwArgumentError("invalid component count for transaction type: 1","payload",x(e));const r={type:1,chainId:nn(t[0]).toNumber(),nonce:nn(t[1]).toNumber(),gasPrice:nn(t[2]),gasLimit:nn(t[3]),to:rn(t[4]),value:nn(t[5]),data:t[6],accessList:ln(t[7])};return 8===t.length||(r.hash=be(e),gn(r,t.slice(8),pn)),r}(t);case 2:return function(e){const t=Pe(e.slice(1));9!==t.length&&12!==t.length&&en.throwArgumentError("invalid component count for transaction type: 2","payload",x(e));const r=nn(t[2]),n=nn(t[3]),o={type:2,chainId:nn(t[0]).toNumber(),nonce:nn(t[1]).toNumber(),maxPriorityFeePerGas:r,maxFeePerGas:n,gasPrice:null,gasLimit:nn(t[4]),to:rn(t[5]),value:nn(t[6]),data:t[7],accessList:ln(t[8])};return 9===t.length||(o.hash=be(e),gn(o,t.slice(9),hn)),o}(t)}return en.throwError(`unsupported transaction type: ${t[0]}`,b.errors.UNSUPPORTED_OPERATION,{operation:"parseTransaction",transactionType:t[0]})}var bn=function(e,t,r,n){return new(r||(r=Promise))((function(o,i){function a(e){try{u(n.next(e))}catch(e){i(e)}}function s(e){try{u(n.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,s)}u((n=n.apply(e,t||[])).next())}))};const yn=new b("contracts/5.6.2"),wn={chainId:!0,data:!0,from:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,value:!0,type:!0,accessList:!0,maxFeePerGas:!0,maxPriorityFeePerGas:!0,customData:!0,ccipReadEnabled:!0};function _n(e,t){return bn(this,void 0,void 0,(function*(){const r=yield t;"string"!=typeof r&&yn.throwArgumentError("invalid address or ENS name","name",r);try{return Ie(r)}catch(e){}e||yn.throwError("a provider or signer is needed to resolve ENS names",b.errors.UNSUPPORTED_OPERATION,{operation:"resolveName"});const n=yield e.resolveName(r);return null==n&&yn.throwArgumentError("resolver or addr is not configured for ENS name","name",r),n}))}function Sn(e,t,r){return bn(this,void 0,void 0,(function*(){return Array.isArray(r)?yield Promise.all(r.map(((r,n)=>Sn(e,Array.isArray(t)?t[n]:t[r.name],r)))):"address"===r.type?yield _n(e,t):"tuple"===r.type?yield Sn(e,t,r.components):"array"===r.baseType?Array.isArray(t)?yield Promise.all(t.map((t=>Sn(e,t,r.arrayChildren)))):Promise.reject(yn.makeError("invalid value for array",b.errors.INVALID_ARGUMENT,{argument:"value",value:t})):t}))}function On(e,t,r){return bn(this,void 0,void 0,(function*(){let n={};r.length===t.inputs.length+1&&"object"==typeof r[r.length-1]&&(n=oe(r.pop())),yn.checkArgumentCount(r.length,t.inputs.length,"passed to contract"),e.signer?n.from?n.from=re({override:_n(e.signer,n.from),signer:e.signer.getAddress()}).then((e=>bn(this,void 0,void 0,(function*(){return Ie(e.signer)!==e.override&&yn.throwError("Contract with a Signer cannot override from",b.errors.UNSUPPORTED_OPERATION,{operation:"overrides.from"}),e.override})))):n.from=e.signer.getAddress():n.from&&(n.from=_n(e.provider,n.from));const o=yield re({args:Sn(e.signer||e.provider,r,t.inputs),address:e.resolvedAddress,overrides:re(n)||{}}),i=e.interface.encodeFunctionData(t,o.args),a={data:i,to:o.address},s=o.overrides;if(null!=s.nonce&&(a.nonce=K.from(s.nonce).toNumber()),null!=s.gasLimit&&(a.gasLimit=K.from(s.gasLimit)),null!=s.gasPrice&&(a.gasPrice=K.from(s.gasPrice)),null!=s.maxFeePerGas&&(a.maxFeePerGas=K.from(s.maxFeePerGas)),null!=s.maxPriorityFeePerGas&&(a.maxPriorityFeePerGas=K.from(s.maxPriorityFeePerGas)),null!=s.from&&(a.from=s.from),null!=s.type&&(a.type=s.type),null!=s.accessList&&(a.accessList=ln(s.accessList)),null==a.gasLimit&&null!=t.gas){let e=21e3;const r=A(i);for(let t=0;tnull!=n[e]));return u.length&&yn.throwError(`cannot override ${u.map((e=>JSON.stringify(e))).join(",")}`,b.errors.UNSUPPORTED_OPERATION,{operation:"overrides",overrides:u}),a}))}function kn(e,t){const r=t.wait.bind(t);t.wait=t=>r(t).then((t=>(t.events=t.logs.map((r=>{let n=ue(r),o=null;try{o=e.interface.parseLog(r)}catch(e){}return o&&(n.args=o.args,n.decode=(t,r)=>e.interface.decodeEventLog(o.eventFragment,t,r),n.event=o.name,n.eventSignature=o.signature),n.removeListener=()=>e.provider,n.getBlock=()=>e.provider.getBlock(t.blockHash),n.getTransaction=()=>e.provider.getTransaction(t.transactionHash),n.getTransactionReceipt=()=>Promise.resolve(t),n})),t)))}function An(e,t,r){const n=e.signer||e.provider;return function(...o){return bn(this,void 0,void 0,(function*(){let i;if(o.length===t.inputs.length+1&&"object"==typeof o[o.length-1]){const e=oe(o.pop());null!=e.blockTag&&(i=yield e.blockTag),delete e.blockTag,o.push(e)}null!=e.deployTransaction&&(yield e._deployed(i));const a=yield On(e,t,o),s=yield n.call(a,i);try{let n=e.interface.decodeFunctionResult(t,s);return r&&1===t.outputs.length&&(n=n[0]),n}catch(t){throw t.code===b.errors.CALL_EXCEPTION&&(t.address=e.address,t.args=o,t.transaction=a),t}}))}}function Pn(e,t,r){return t.constant?An(e,t,r):function(e,t){return function(...r){return bn(this,void 0,void 0,(function*(){e.signer||yn.throwError("sending a transaction requires a signer",b.errors.UNSUPPORTED_OPERATION,{operation:"sendTransaction"}),null!=e.deployTransaction&&(yield e._deployed());const n=yield On(e,t,r),o=yield e.signer.sendTransaction(n);return kn(e,o),o}))}}(e,t)}function Mn(e){return!e.address||null!=e.topics&&0!==e.topics.length?(e.address||"*")+"@"+(e.topics?e.topics.map((e=>Array.isArray(e)?e.join("|"):e)).join(":"):""):"*"}class En{constructor(e,t){ee(this,"tag",e),ee(this,"filter",t),this._listeners=[]}addListener(e,t){this._listeners.push({listener:e,once:t})}removeListener(e){let t=!1;this._listeners=this._listeners.filter((r=>!(!t&&r.listener===e&&(t=!0,1))))}removeAllListeners(){this._listeners=[]}listeners(){return this._listeners.map((e=>e.listener))}listenerCount(){return this._listeners.length}run(e){const t=this.listenerCount();return this._listeners=this._listeners.filter((t=>{const r=e.slice();return setTimeout((()=>{t.listener.apply(this,r)}),0),!t.once})),t}prepareEvent(e){}getEmit(e){return[e]}}class Cn extends En{constructor(){super("error",null)}}class Nn extends En{constructor(e,t,r,n){const o={address:e};let i=t.getEventTopic(r);n?(i!==n[0]&&yn.throwArgumentError("topic mismatch","topics",n),o.topics=n.slice()):o.topics=[i],super(Mn(o),o),ee(this,"address",e),ee(this,"interface",t),ee(this,"fragment",r)}prepareEvent(e){super.prepareEvent(e),e.event=this.fragment.name,e.eventSignature=this.fragment.format(),e.decode=(e,t)=>this.interface.decodeEventLog(this.fragment,e,t);try{e.args=this.interface.decodeEventLog(this.fragment,e.data,e.topics)}catch(t){e.args=null,e.decodeError=t}}getEmit(e){const t=fe(e.args);if(t.length)throw t[0].error;const r=(e.args||[]).slice();return r.push(e),r}}class xn extends En{constructor(e,t){super("*",{address:e}),ee(this,"address",e),ee(this,"interface",t)}prepareEvent(e){super.prepareEvent(e);try{const t=this.interface.parseLog(e);e.event=t.name,e.eventSignature=t.signature,e.decode=(e,r)=>this.interface.decodeEventLog(t.eventFragment,e,r),e.args=t.args}catch(e){}}}class Rn{constructor(e,t,r){ee(this,"interface",te(new.target,"getInterface")(t)),null==r?(ee(this,"provider",null),ee(this,"signer",null)):ur.isSigner(r)?(ee(this,"provider",r.provider||null),ee(this,"signer",r)):nr.isProvider(r)?(ee(this,"provider",r),ee(this,"signer",null)):yn.throwArgumentError("invalid signer or provider","signerOrProvider",r),ee(this,"callStatic",{}),ee(this,"estimateGas",{}),ee(this,"functions",{}),ee(this,"populateTransaction",{}),ee(this,"filters",{});{const e={};Object.keys(this.interface.events).forEach((t=>{const r=this.interface.events[t];ee(this.filters,t,((...e)=>({address:this.address,topics:this.interface.encodeFilterTopics(r,e)}))),e[r.name]||(e[r.name]=[]),e[r.name].push(t)})),Object.keys(e).forEach((t=>{const r=e[t];1===r.length?ee(this.filters,t,this.filters[r[0]]):yn.warn(`Duplicate definition of ${t} (${r.join(", ")})`)}))}if(ee(this,"_runningEvents",{}),ee(this,"_wrappedEmits",{}),null==e&&yn.throwArgumentError("invalid contract address or ENS name","addressOrName",e),ee(this,"address",e),this.provider)ee(this,"resolvedAddress",_n(this.provider,e));else try{ee(this,"resolvedAddress",Promise.resolve(Ie(e)))}catch(e){yn.throwError("provider is required to use ENS name as contract address",b.errors.UNSUPPORTED_OPERATION,{operation:"new Contract"})}this.resolvedAddress.catch((e=>{}));const n={},o={};Object.keys(this.interface.functions).forEach((e=>{const t=this.interface.functions[e];if(o[e])yn.warn(`Duplicate ABI entry for ${JSON.stringify(e)}`);else{o[e]=!0;{const r=t.name;n[`%${r}`]||(n[`%${r}`]=[]),n[`%${r}`].push(e)}null==this[e]&&ee(this,e,Pn(this,t,!0)),null==this.functions[e]&&ee(this.functions,e,Pn(this,t,!1)),null==this.callStatic[e]&&ee(this.callStatic,e,An(this,t,!0)),null==this.populateTransaction[e]&&ee(this.populateTransaction,e,function(e,t){return function(...r){return On(e,t,r)}}(this,t)),null==this.estimateGas[e]&&ee(this.estimateGas,e,function(e,t){const r=e.signer||e.provider;return function(...n){return bn(this,void 0,void 0,(function*(){r||yn.throwError("estimate require a provider or signer",b.errors.UNSUPPORTED_OPERATION,{operation:"estimateGas"});const o=yield On(e,t,n);return yield r.estimateGas(o)}))}}(this,t))}})),Object.keys(n).forEach((e=>{const t=n[e];if(t.length>1)return;e=e.substring(1);const r=t[0];try{null==this[e]&&ee(this,e,this[r])}catch(e){}null==this.functions[e]&&ee(this.functions,e,this.functions[r]),null==this.callStatic[e]&&ee(this.callStatic,e,this.callStatic[r]),null==this.populateTransaction[e]&&ee(this.populateTransaction,e,this.populateTransaction[r]),null==this.estimateGas[e]&&ee(this.estimateGas,e,this.estimateGas[r])}))}static getContractAddress(e){return De(e)}static getInterface(e){return er.isInterface(e)?e:new er(e)}deployed(){return this._deployed()}_deployed(e){return this._deployedPromise||(this.deployTransaction?this._deployedPromise=this.deployTransaction.wait().then((()=>this)):this._deployedPromise=this.provider.getCode(this.address,e).then((e=>("0x"===e&&yn.throwError("contract not deployed",b.errors.UNSUPPORTED_OPERATION,{contractAddress:this.address,operation:"getDeployed"}),this)))),this._deployedPromise}fallback(e){this.signer||yn.throwError("sending a transactions require a signer",b.errors.UNSUPPORTED_OPERATION,{operation:"sendTransaction(fallback)"});const t=oe(e||{});return["from","to"].forEach((function(e){null!=t[e]&&yn.throwError("cannot override "+e,b.errors.UNSUPPORTED_OPERATION,{operation:e})})),t.to=this.resolvedAddress,this.deployed().then((()=>this.signer.sendTransaction(t)))}connect(e){"string"==typeof e&&(e=new cr(e,this.provider));const t=new this.constructor(this.address,this.interface,e);return this.deployTransaction&&ee(t,"deployTransaction",this.deployTransaction),t}attach(e){return new this.constructor(e,this.interface,this.signer||this.provider)}static isIndexed(e){return $t.isIndexed(e)}_normalizeRunningEvent(e){return this._runningEvents[e.tag]?this._runningEvents[e.tag]:e}_getRunningEvent(e){if("string"==typeof e){if("error"===e)return this._normalizeRunningEvent(new Cn);if("event"===e)return this._normalizeRunningEvent(new En("event",null));if("*"===e)return this._normalizeRunningEvent(new xn(this.address,this.interface));const t=this.interface.getEvent(e);return this._normalizeRunningEvent(new Nn(this.address,this.interface,t))}if(e.topics&&e.topics.length>0){try{const t=e.topics[0];if("string"!=typeof t)throw new Error("invalid topic");const r=this.interface.getEvent(t);return this._normalizeRunningEvent(new Nn(this.address,this.interface,r,e.topics))}catch(e){}const t={address:this.address,topics:e.topics};return this._normalizeRunningEvent(new En(Mn(t),t))}return this._normalizeRunningEvent(new xn(this.address,this.interface))}_checkRunningEvents(e){if(0===e.listenerCount()){delete this._runningEvents[e.tag];const t=this._wrappedEmits[e.tag];t&&e.filter&&(this.provider.off(e.filter,t),delete this._wrappedEmits[e.tag])}}_wrapEvent(e,t,r){const n=ue(t);return n.removeListener=()=>{r&&(e.removeListener(r),this._checkRunningEvents(e))},n.getBlock=()=>this.provider.getBlock(t.blockHash),n.getTransaction=()=>this.provider.getTransaction(t.transactionHash),n.getTransactionReceipt=()=>this.provider.getTransactionReceipt(t.transactionHash),e.prepareEvent(n),n}_addEventListener(e,t,r){if(this.provider||yn.throwError("events require a provider or a signer with a provider",b.errors.UNSUPPORTED_OPERATION,{operation:"once"}),e.addListener(t,r),this._runningEvents[e.tag]=e,!this._wrappedEmits[e.tag]){const r=r=>{let n=this._wrapEvent(e,r,t);if(null==n.decodeError)try{const t=e.getEmit(n);this.emit(e.filter,...t)}catch(e){n.decodeError=e.error}null!=e.filter&&this.emit("event",n),null!=n.decodeError&&this.emit("error",n.decodeError,n)};this._wrappedEmits[e.tag]=r,null!=e.filter&&this.provider.on(e.filter,r)}}queryFilter(e,t,r){const n=this._getRunningEvent(e),o=oe(n.filter);return"string"==typeof t&&C(t,32)?(null!=r&&yn.throwArgumentError("cannot specify toBlock with blockhash","toBlock",r),o.blockHash=t):(o.fromBlock=null!=t?t:0,o.toBlock=null!=r?r:"latest"),this.provider.getLogs(o).then((e=>e.map((e=>this._wrapEvent(n,e,null)))))}on(e,t){return this._addEventListener(this._getRunningEvent(e),t,!1),this}once(e,t){return this._addEventListener(this._getRunningEvent(e),t,!0),this}emit(e,...t){if(!this.provider)return!1;const r=this._getRunningEvent(e),n=r.run(t)>0;return this._checkRunningEvents(r),n}listenerCount(e){return this.provider?null==e?Object.keys(this._runningEvents).reduce(((e,t)=>e+this._runningEvents[t].listenerCount()),0):this._getRunningEvent(e).listenerCount():0}listeners(e){if(!this.provider)return[];if(null==e){const e=[];for(let t in this._runningEvents)this._runningEvents[t].listeners().forEach((t=>{e.push(t)}));return e}return this._getRunningEvent(e).listeners()}removeAllListeners(e){if(!this.provider)return this;if(null==e){for(const e in this._runningEvents){const t=this._runningEvents[e];t.removeAllListeners(),this._checkRunningEvents(t)}return this}const t=this._getRunningEvent(e);return t.removeAllListeners(),this._checkRunningEvents(t),this}off(e,t){if(!this.provider)return this;const r=this._getRunningEvent(e);return r.removeListener(t),this._checkRunningEvents(r),this}removeListener(e,t){return this.off(e,t)}}class In extends Rn{}class Tn{constructor(e,t,r){let n=null;n="string"==typeof t?t:k(t)?x(t):t&&"string"==typeof t.object?t.object:"!","0x"!==n.substring(0,2)&&(n="0x"+n),(!C(n)||n.length%2)&&yn.throwArgumentError("invalid bytecode","bytecode",t),r&&!ur.isSigner(r)&&yn.throwArgumentError("invalid signer","signer",r),ee(this,"bytecode",n),ee(this,"interface",te(new.target,"getInterface")(e)),ee(this,"signer",r||null)}getDeployTransaction(...e){let t={};if(e.length===this.interface.deploy.inputs.length+1&&"object"==typeof e[e.length-1]){t=oe(e.pop());for(const e in t)if(!wn[e])throw new Error("unknown transaction override "+e)}return["data","from","to"].forEach((e=>{null!=t[e]&&yn.throwError("cannot override "+e,b.errors.UNSUPPORTED_OPERATION,{operation:e})})),t.value&&(K.from(t.value).isZero()||this.interface.deploy.payable||yn.throwError("non-payable constructor cannot override value",b.errors.UNSUPPORTED_OPERATION,{operation:"overrides.value",value:t.value})),yn.checkArgumentCount(e.length,this.interface.deploy.inputs.length," in Contract constructor"),t.data=x(P([this.bytecode,this.interface.encodeDeploy(e)])),t}deploy(...e){return bn(this,void 0,void 0,(function*(){let t={};e.length===this.interface.deploy.inputs.length+1&&(t=e.pop()),yn.checkArgumentCount(e.length,this.interface.deploy.inputs.length," in Contract constructor");const r=yield Sn(this.signer,e,this.interface.deploy.inputs);r.push(t);const n=this.getDeployTransaction(...r),o=yield this.signer.sendTransaction(n),i=te(this.constructor,"getContractAddress")(o),a=te(this.constructor,"getContract")(i,this.interface,this.signer);return kn(a,o),ee(a,"deployTransaction",o),a}))}attach(e){return this.constructor.getContract(e,this.interface,this.signer)}connect(e){return new this.constructor(this.interface,this.bytecode,e)}static fromSolidity(e,t){null==e&&yn.throwError("missing compiler output",b.errors.MISSING_ARGUMENT,{argument:"compilerOutput"}),"string"==typeof e&&(e=JSON.parse(e));const r=e.abi;let n=null;return e.bytecode?n=e.bytecode:e.evm&&e.evm.bytecode&&(n=e.evm.bytecode),new this(r,n,t)}static getInterface(e){return In.getInterface(e)}static getContractAddress(e){return De(e)}static getContract(e,t,r){return new In(e,t,r)}}const jn=new b(z),Dn={},Bn=K.from(0),Un=K.from(-1);function Jn(e,t,r,n){const o={fault:t,operation:r};return void 0!==n&&(o.value=n),jn.throwError(e,b.errors.NUMERIC_FAULT,o)}let Hn="0";for(;Hn.length<256;)Hn+=Hn;function Ln(e){if("number"!=typeof e)try{e=K.from(e).toNumber()}catch(e){}return"number"==typeof e&&e>=0&&e<=256&&!(e%1)?"1"+Hn.substring(0,e):jn.throwArgumentError("invalid decimal size","decimals",e)}function zn(e,t){null==t&&(t=0);const r=Ln(t),n=(e=K.from(e)).lt(Bn);n&&(e=e.mul(Un));let o=e.mod(r).toString();for(;o.length2&&jn.throwArgumentError("too many decimal points","value",e);let i=o[0],a=o[1];for(i||(i="0"),a||(a="0");"0"===a[a.length-1];)a=a.substring(0,a.length-1);for(a.length>r.length-1&&Jn("fractional component exceeds decimals","underflow","parseFixed"),""===a&&(a="0");a.lengthnull==e[t]?n:(typeof e[t]!==r&&jn.throwArgumentError("invalid fixed format ("+t+" not "+r+")","format."+t,e[t]),e[t]);t=o("signed","boolean",t),r=o("width","number",r),n=o("decimals","number",n)}return r%8&&jn.throwArgumentError("invalid fixed format width (not byte aligned)","format.width",r),n>80&&jn.throwArgumentError("invalid fixed format (decimals too large)","format.decimals",n),new qn(Dn,t,r,n)}}class Fn{constructor(e,t,r,n){e!==Dn&&jn.throwError("cannot use FixedNumber constructor; use FixedNumber.from",b.errors.UNSUPPORTED_OPERATION,{operation:"new FixedFormat"}),this.format=n,this._hex=t,this._value=r,this._isFixedNumber=!0,Object.freeze(this)}_checkFormat(e){this.format.name!==e.format.name&&jn.throwArgumentError("incompatible format; use fixedNumber.toFormat","other",e)}addUnsafe(e){this._checkFormat(e);const t=Vn(this._value,this.format.decimals),r=Vn(e._value,e.format.decimals);return Fn.fromValue(t.add(r),this.format.decimals,this.format)}subUnsafe(e){this._checkFormat(e);const t=Vn(this._value,this.format.decimals),r=Vn(e._value,e.format.decimals);return Fn.fromValue(t.sub(r),this.format.decimals,this.format)}mulUnsafe(e){this._checkFormat(e);const t=Vn(this._value,this.format.decimals),r=Vn(e._value,e.format.decimals);return Fn.fromValue(t.mul(r).div(this.format._multiplier),this.format.decimals,this.format)}divUnsafe(e){this._checkFormat(e);const t=Vn(this._value,this.format.decimals),r=Vn(e._value,e.format.decimals);return Fn.fromValue(t.mul(this.format._multiplier).div(r),this.format.decimals,this.format)}floor(){const e=this.toString().split(".");1===e.length&&e.push("0");let t=Fn.from(e[0],this.format);const r=!e[1].match(/^(0*)$/);return this.isNegative()&&r&&(t=t.subUnsafe(Zn.toFormat(t.format))),t}ceiling(){const e=this.toString().split(".");1===e.length&&e.push("0");let t=Fn.from(e[0],this.format);const r=!e[1].match(/^(0*)$/);return!this.isNegative()&&r&&(t=t.addUnsafe(Zn.toFormat(t.format))),t}round(e){null==e&&(e=0);const t=this.toString().split(".");if(1===t.length&&t.push("0"),(e<0||e>80||e%1)&&jn.throwArgumentError("invalid decimal count","decimals",e),t[1].length<=e)return this;const r=Fn.from("1"+Hn.substring(0,e),this.format),n=Wn.toFormat(this.format);return this.mulUnsafe(r).addUnsafe(n).floor().divUnsafe(r)}isZero(){return"0.0"===this._value||"0"===this._value}isNegative(){return"-"===this._value[0]}toString(){return this._value}toHexString(e){return null==e?this._hex:(e%8&&jn.throwArgumentError("invalid byte width","width",e),B(K.from(this._hex).fromTwos(this.format.width).toTwos(e).toHexString(),e/8))}toUnsafeFloat(){return parseFloat(this.toString())}toFormat(e){return Fn.fromString(this._value,e)}static fromValue(e,t,r){return null!=r||null==t||function(e){return null!=e&&(K.isBigNumber(e)||"number"==typeof e&&e%1==0||"string"==typeof e&&!!e.match(/^-?[0-9]+$/)||C(e)||"bigint"==typeof e||k(e))}(t)||(r=t,t=null),null==t&&(t=0),null==r&&(r="fixed"),Fn.fromString(zn(e,t),qn.from(r))}static fromString(e,t){null==t&&(t="fixed");const r=qn.from(t),n=Vn(e,r.decimals);!r.signed&&n.lt(Bn)&&Jn("unsigned value cannot be negative","overflow","value",e);let o=null;r.signed?o=n.toTwos(r.width).toHexString():(o=n.toHexString(),o=B(o,r.width/8));const i=zn(n,r.decimals);return new Fn(Dn,o,i,r)}static fromBytes(e,t){null==t&&(t="fixed");const r=qn.from(t);if(A(e).length>r.width/8)throw new Error("overflow");let n=K.from(e);r.signed&&(n=n.fromTwos(r.width));const o=n.toTwos((r.signed?0:1)+r.width).toHexString(),i=zn(n,r.decimals);return new Fn(Dn,o,i,r)}static from(e,t){if("string"==typeof e)return Fn.fromString(e,t);if(k(e))return Fn.fromBytes(e,t);try{return Fn.fromValue(e,0,t)}catch(e){if(e.code!==b.errors.INVALID_ARGUMENT)throw e}return jn.throwArgumentError("invalid FixedNumber value","value",e)}static isFixedNumber(e){return!(!e||!e._isFixedNumber)}}const Zn=Fn.from(1),Wn=Fn.from("0.5");function Kn(e){return"string"==typeof e&&(e=qe(e)),be(P([qe("Ethereum Signed Message:\n"),qe(String(e.length)),e]))}const Gn="hash/5.6.1";const Yn=new b(Gn),$n=new Uint8Array(32);$n.fill(0);const Xn=K.from(-1),Qn=K.from(0),eo=K.from(1),to=K.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),ro=B(eo.toHexString(),32),no=B(Qn.toHexString(),32),oo={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},io=["name","version","chainId","verifyingContract","salt"];function ao(e){return function(t){return"string"!=typeof t&&Yn.throwArgumentError(`invalid domain value for ${JSON.stringify(e)}`,`domain.${e}`,t),t}}const so={name:ao("name"),version:ao("version"),chainId:function(e){try{return K.from(e).toString()}catch(e){}return Yn.throwArgumentError('invalid domain value for "chainId"',"domain.chainId",e)},verifyingContract:function(e){try{return Ie(e).toLowerCase()}catch(e){}return Yn.throwArgumentError('invalid domain value "verifyingContract"',"domain.verifyingContract",e)},salt:function(e){try{const t=A(e);if(32!==t.length)throw new Error("bad length");return x(t)}catch(e){}return Yn.throwArgumentError('invalid domain value "salt"',"domain.salt",e)}};function uo(e){{const t=e.match(/^(u?)int(\d*)$/);if(t){const r=""===t[1],n=parseInt(t[2]||"256");(n%8!=0||n>256||t[2]&&t[2]!==String(n))&&Yn.throwArgumentError("invalid numeric width","type",e);const o=to.mask(r?n-1:n),i=r?o.add(eo).mul(Xn):Qn;return function(t){const r=K.from(t);return(r.lt(i)||r.gt(o))&&Yn.throwArgumentError(`value out-of-bounds for ${e}`,"value",t),B(r.toTwos(256).toHexString(),32)}}}{const t=e.match(/^bytes(\d+)$/);if(t){const r=parseInt(t[1]);return(0===r||r>32||t[1]!==String(r))&&Yn.throwArgumentError("invalid bytes width","type",e),function(t){return A(t).length!==r&&Yn.throwArgumentError(`invalid length for ${e}`,"value",t),function(e){const t=A(e),r=t.length%32;return r?T([t,$n.slice(r)]):x(t)}(t)}}}switch(e){case"address":return function(e){return B(Ie(e),32)};case"bool":return function(e){return e?ro:no};case"bytes":return function(e){return be(e)};case"string":return function(e){return Ye(e)}}return null}function co(e,t){return`${e}(${t.map((({name:e,type:t})=>t+" "+e)).join(",")})`}class lo{constructor(e){ee(this,"types",Object.freeze(ue(e))),ee(this,"_encoderCache",{}),ee(this,"_types",{});const t={},r={},n={};Object.keys(e).forEach((e=>{t[e]={},r[e]=[],n[e]={}}));for(const n in e){const o={};e[n].forEach((i=>{o[i.name]&&Yn.throwArgumentError(`duplicate variable name ${JSON.stringify(i.name)} in ${JSON.stringify(n)}`,"types",e),o[i.name]=!0;const a=i.type.match(/^([^\x5b]*)(\x5b|$)/)[1];a===n&&Yn.throwArgumentError(`circular type reference to ${JSON.stringify(a)}`,"types",e),uo(a)||(r[a]||Yn.throwArgumentError(`unknown type ${JSON.stringify(a)}`,"types",e),r[a].push(n),t[n][a]=!0)}))}const o=Object.keys(r).filter((e=>0===r[e].length));0===o.length?Yn.throwArgumentError("missing primary type","types",e):o.length>1&&Yn.throwArgumentError(`ambiguous primary types or unused types: ${o.map((e=>JSON.stringify(e))).join(", ")}`,"types",e),ee(this,"primaryType",o[0]),function o(i,a){a[i]&&Yn.throwArgumentError(`circular type reference to ${JSON.stringify(i)}`,"types",e),a[i]=!0,Object.keys(t[i]).forEach((e=>{r[e]&&(o(e,a),Object.keys(a).forEach((t=>{n[t][e]=!0})))})),delete a[i]}(this.primaryType,{});for(const t in n){const r=Object.keys(n[t]);r.sort(),this._types[t]=co(t,e[t])+r.map((t=>co(t,e[t]))).join("")}}getEncoder(e){let t=this._encoderCache[e];return t||(t=this._encoderCache[e]=this._getEncoder(e)),t}_getEncoder(e){{const t=uo(e);if(t)return t}const t=e.match(/^(.*)(\x5b(\d*)\x5d)$/);if(t){const e=t[1],r=this.getEncoder(e),n=parseInt(t[3]);return t=>{n>=0&&t.length!==n&&Yn.throwArgumentError("array length mismatch; expected length ${ arrayLength }","value",t);let o=t.map(r);return this._types[e]&&(o=o.map(be)),be(T(o))}}const r=this.types[e];if(r){const t=Ye(this._types[e]);return e=>{const n=r.map((({name:t,type:r})=>{const n=this.getEncoder(r)(e[t]);return this._types[r]?be(n):n}));return n.unshift(t),T(n)}}return Yn.throwArgumentError(`unknown type: ${e}`,"type",e)}encodeType(e){const t=this._types[e];return t||Yn.throwArgumentError(`unknown type: ${JSON.stringify(e)}`,"name",e),t}encodeData(e,t){return this.getEncoder(e)(t)}hashStruct(e,t){return be(this.encodeData(e,t))}encode(e){return this.encodeData(this.primaryType,e)}hash(e){return this.hashStruct(this.primaryType,e)}_visit(e,t,r){if(uo(e))return r(e,t);const n=e.match(/^(.*)(\x5b(\d*)\x5d)$/);if(n){const e=n[1],o=parseInt(n[3]);return o>=0&&t.length!==o&&Yn.throwArgumentError("array length mismatch; expected length ${ arrayLength }","value",t),t.map((t=>this._visit(e,t,r)))}const o=this.types[e];return o?o.reduce(((e,{name:n,type:o})=>(e[n]=this._visit(o,t[n],r),e)),{}):Yn.throwArgumentError(`unknown type: ${e}`,"type",e)}visit(e,t){return this._visit(this.primaryType,e,t)}static from(e){return new lo(e)}static getPrimaryType(e){return lo.from(e).primaryType}static hashStruct(e,t,r){return lo.from(t).hashStruct(e,r)}static hashDomain(e){const t=[];for(const r in e){const n=oo[r];n||Yn.throwArgumentError(`invalid typed-data domain key: ${JSON.stringify(r)}`,"domain",e),t.push({name:r,type:n})}return t.sort(((e,t)=>io.indexOf(e.name)-io.indexOf(t.name))),lo.hashStruct("EIP712Domain",{EIP712Domain:t},e)}static encode(e,t,r){return T(["0x1901",lo.hashDomain(e),lo.from(t).hash(r)])}static hash(e,t,r){return be(lo.encode(e,t,r))}static resolveNames(e,t,r,n){return o=this,i=void 0,s=function*(){e=oe(e);const o={};e.verifyingContract&&!C(e.verifyingContract,20)&&(o[e.verifyingContract]="0x");const i=lo.from(t);i.visit(r,((e,t)=>("address"!==e||C(t,20)||(o[t]="0x"),t)));for(const e in o)o[e]=yield n(e);return e.verifyingContract&&o[e.verifyingContract]&&(e.verifyingContract=o[e.verifyingContract]),r=i.visit(r,((e,t)=>"address"===e&&o[t]?o[t]:t)),{domain:e,value:r}},new((a=void 0)||(a=Promise))((function(e,t){function r(e){try{u(s.next(e))}catch(e){t(e)}}function n(e){try{u(s.throw(e))}catch(e){t(e)}}function u(t){var o;t.done?e(t.value):(o=t.value,o instanceof a?o:new a((function(e){e(o)}))).then(r,n)}u((s=s.apply(o,i||[])).next())}));var o,i,a,s}static getPayload(e,t,r){lo.hashDomain(e);const n={},o=[];io.forEach((t=>{const r=e[t];null!=r&&(n[t]=so[t](r),o.push({name:t,type:oo[t]}))}));const i=lo.from(t),a=oe(t);return a.EIP712Domain?Yn.throwArgumentError("types must not contain EIP712Domain type","types.EIP712Domain",t):a.EIP712Domain=o,i.encode(r),{types:a,domain:n,primaryType:i.primaryType,message:i.visit(r,((e,t)=>{if(e.match(/^bytes(\d*)/))return x(A(t));if(e.match(/^u?int/))return K.from(t).toString();switch(e){case"address":return t.toLowerCase();case"bool":return!!t;case"string":return"string"!=typeof t&&Yn.throwArgumentError("invalid string","value",t),t}return Yn.throwArgumentError("unsupported type","type",e)}))}}}class fo{constructor(e){ee(this,"alphabet",e),ee(this,"base",e.length),ee(this,"_alphabetMap",{}),ee(this,"_leader",e.charAt(0));for(let t=0;t0;)r.push(n%this.base),n=n/this.base|0}let n="";for(let e=0;0===t[e]&&e=0;--e)n+=this.alphabet[r[e]];return n}decode(e){if("string"!=typeof e)throw new TypeError("Expected String");let t=[];if(0===e.length)return new Uint8Array(t);t.push(0);for(let r=0;r>=8;for(;o>0;)t.push(255&o),o>>=8}for(let r=0;e[r]===this._leader&&r>24&255,u[t.length+1]=l>>16&255,u[t.length+2]=l>>8&255,u[t.length+3]=255&l;let f=A(yo(o,e,u));i||(i=f.length,d=new Uint8Array(i),a=Math.ceil(n/i),c=n-(a-1)*i),d.set(f);for(let t=1;t=256)throw new Error("Depth too large!");return Io(P([null!=this.privateKey?"0x0488ADE4":"0x0488B21E",x(this.depth),this.parentFingerprint,B(x(this.index),4),this.chainCode,null!=this.privateKey?P(["0x00",this.privateKey]):this.publicKey]))}neuter(){return new Bo(jo,null,this.publicKey,this.parentFingerprint,this.chainCode,this.index,this.depth,this.path)}_derive(e){if(e>4294967295)throw new Error("invalid index - "+String(e));let t=this.path;t&&(t+="/"+(2147483647&e));const r=new Uint8Array(37);if(e&No){if(!this.privateKey)throw new Error("cannot derive child of neutered node");r.set(A(this.privateKey),1),t&&(t+="'")}else r.set(A(this.publicKey));for(let t=24;t>=0;t-=8)r[33+(t>>3)]=e>>24-t&255;const n=A(yo(po.sha512,this.chainCode,r)),o=n.slice(0,32),i=n.slice(32);let a=null,s=null;this.privateKey?a=Ro(K.from(o).add(this.privateKey).mod(Eo)):s=new $r(x(o))._addPoint(this.publicKey);let u=t;const c=this.mnemonic;return c&&(u=Object.freeze({phrase:c.phrase,path:t,locale:c.locale||"en"})),new Bo(jo,a,s,this.fingerprint,Ro(i),e,this.depth+1,u)}derivePath(e){const t=e.split("/");if(0===t.length||"m"===t[0]&&0!==this.depth)throw new Error("invalid path - "+e);"m"===t[0]&&t.shift();let r=this;for(let e=0;e=No)throw new Error("invalid path index - "+n);r=r._derive(No+e)}else{if(!n.match(/^[0-9]+$/))throw new Error("invalid path component - "+n);{const e=parseInt(n);if(e>=No)throw new Error("invalid path index - "+n);r=r._derive(e)}}}return r}static _fromSeed(e,t){const r=A(e);if(r.length<16||r.length>64)throw new Error("invalid seed");const n=A(yo(po.sha512,Co,r));return new Bo(jo,Ro(n.slice(0,32)),null,"0x00000000",Ro(n.slice(32)),0,0,t)}static fromMnemonic(e,t,r){return e=Ho(Jo(e,r=To(r)),r),Bo._fromSeed(Uo(e,t),{phrase:e,path:"m",locale:r.locale})}static fromSeed(e){return Bo._fromSeed(e,null)}static fromExtendedKey(e){const t=ho.decode(e);82===t.length&&Io(t.slice(0,78))===e||Mo.throwArgumentError("invalid extended key","extendedKey","[REDACTED]");const r=t[4],n=x(t.slice(5,9)),o=parseInt(x(t.slice(9,13)).substring(2),16),i=x(t.slice(13,45)),a=t.slice(45,78);switch(x(t.slice(0,4))){case"0x0488b21e":case"0x043587cf":return new Bo(jo,null,x(a),n,i,o,r,null);case"0x0488ade4":case"0x04358394 ":if(0!==a[0])break;return new Bo(jo,x(a.slice(1)),null,n,i,o,r,null)}return Mo.throwArgumentError("invalid extended key","extendedKey","[REDACTED]")}}function Uo(e,t){t||(t="");const r=qe("mnemonic"+t,Je.NFKD);return wo(qe(e,Je.NFKD),r,2048,64,"sha512")}function Jo(e,t){t=To(t),Mo.checkNormalize();const r=t.split(e);if(r.length%3!=0)throw new Error("invalid mnemonic");const n=A(new Uint8Array(Math.ceil(11*r.length/8)));let o=0;for(let e=0;e>3]|=1<<7-o%8),o++}const i=32*r.length/3,a=xo(r.length/3);if((A(vo(n.slice(0,i/8)))[0]&a)!=(n[n.length-1]&a))throw new Error("invalid checksum");return x(n.slice(0,i/8))}function Ho(e,t){if(t=To(t),(e=A(e)).length%4!=0||e.length<16||e.length>32)throw new Error("invalid entropy");const r=[0];let n=11;for(let t=0;t8?(r[r.length-1]<<=8,r[r.length-1]|=e[t],n-=8):(r[r.length-1]<<=n,r[r.length-1]|=e[t]>>8-n,r.push(e[t]&(1<<8-n)-1),n+=3);const o=e.length/4,i=A(vo(e))[0]&xo(o);return r[r.length-1]<<=o,r[r.length-1]|=i>>8-o,t.join(r.map((e=>t.getWord(e))))}function Lo(e,t){try{return Jo(e,t),!0}catch(e){}return!1}function zo(e){return("number"!=typeof e||e<0||e>=No||e%1)&&Mo.throwArgumentError("invalid account index","index",e),`m/44'/60'/${e}'/0/0`}const Vo=new b("random/5.6.1"),qo=function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==r.g)return r.g;throw new Error("unable to locate global object")}();let Fo=qo.crypto||qo.msCrypto;function Zo(e){(e<=0||e>1024||e%1||e!=e)&&Vo.throwArgumentError("invalid length","length",e);const t=new Uint8Array(e);return Fo.getRandomValues(t),A(t)}Fo&&Fo.getRandomValues||(Vo.warn("WARNING: Missing strong random number source"),Fo={getRandomValues:function(e){return Vo.throwError("no secure random source avaialble",b.errors.UNSUPPORTED_OPERATION,{operation:"crypto.getRandomValues"})}});var Wo=r(78826),Ko=r.n(Wo),Go=r(17635),Yo=r.n(Go);function $o(e){return"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),A(e)}function Xo(e,t){for(e=String(e);e.lengtht)),ee(this,"address",sn(this.publicKey)),this.address!==Ie(e.address)&&bi.throwArgumentError("privateKey/address mismatch","privateKey","[REDACTED]"),function(e){const t=e.mnemonic;return t&&t.phrase}(e)){const t=e.mnemonic;ee(this,"_mnemonic",(()=>({phrase:t.phrase,path:t.path||Do,locale:t.locale||"en"})));const r=this.mnemonic;sn(Bo.fromMnemonic(r.phrase,null,r.locale).derivePath(r.path).privateKey)!==this.address&&bi.throwArgumentError("mnemonic/address mismatch","privateKey","[REDACTED]")}else ee(this,"_mnemonic",(()=>null))}else{if($r.isSigningKey(e))"secp256k1"!==e.curve&&bi.throwArgumentError("unsupported curve; must be secp256k1","privateKey","[REDACTED]"),ee(this,"_signingKey",(()=>e));else{"string"==typeof e&&e.match(/^[0-9a-f]*$/i)&&64===e.length&&(e="0x"+e);const t=new $r(e);ee(this,"_signingKey",(()=>t))}ee(this,"_mnemonic",(()=>null)),ee(this,"address",sn(this.publicKey))}var r;t&&!nr.isProvider(t)&&bi.throwArgumentError("invalid provider","provider",t),ee(this,"provider",t||null)}get mnemonic(){return this._mnemonic()}get privateKey(){return this._signingKey().privateKey}get publicKey(){return this._signingKey().publicKey}getAddress(){return Promise.resolve(this.address)}connect(e){return new yi(this,e)}signTransaction(e){return re(e).then((t=>{null!=t.from&&(Ie(t.from)!==this.address&&bi.throwArgumentError("transaction from address mismatch","transaction.from",e.from),delete t.from);const r=this._signingKey().signDigest(be(mn(t)));return mn(t,r)}))}signMessage(e){return vi(this,void 0,void 0,(function*(){return J(this._signingKey().signDigest(Kn(e)))}))}_signTypedData(e,t,r){return vi(this,void 0,void 0,(function*(){const n=yield lo.resolveNames(e,t,r,(e=>(null==this.provider&&bi.throwError("cannot resolve ENS names without a provider",b.errors.UNSUPPORTED_OPERATION,{operation:"resolveName",value:e}),this.provider.resolveName(e))));return J(this._signingKey().signDigest(lo.hash(n.domain,t,n.value)))}))}encrypt(e,t,r){if("function"!=typeof t||r||(r=t,t={}),r&&"function"!=typeof r)throw new Error("invalid callback");return t||(t={}),function(e,t,r,n){try{if(Ie(e.address)!==sn(e.privateKey))throw new Error("address/privateKey mismatch");if(oi(e)){const t=e.mnemonic;if(Bo.fromMnemonic(t.phrase,null,t.locale).derivePath(t.path||Do).privateKey!=e.privateKey)throw new Error("mnemonic mismatch")}}catch(e){return Promise.reject(e)}"function"!=typeof r||n||(n=r,r={}),r||(r={});const o=A(e.privateKey),i=Qo(t);let a=null,s=null,u=null;if(oi(e)){const t=e.mnemonic;a=A(Jo(t.phrase,t.locale||"en")),s=t.path||Do,u=t.locale||"en"}let c=r.client;c||(c="ethers.js");let d=null;d=r.salt?A(r.salt):Zo(32);let l=null;if(r.iv){if(l=A(r.iv),16!==l.length)throw new Error("invalid iv")}else l=Zo(16);let f=null;if(r.uuid){if(f=A(r.uuid),16!==f.length)throw new Error("invalid uuid")}else f=Zo(16);let h=1<<17,p=8,m=1;return r.scrypt&&(r.scrypt.N&&(h=r.scrypt.N),r.scrypt.r&&(p=r.scrypt.r),r.scrypt.p&&(m=r.scrypt.p)),Yo().scrypt(i,d,h,p,m,64,n).then((t=>{const r=(t=A(t)).slice(0,16),n=t.slice(16,32),i=t.slice(32,64),g=new(Ko().Counter)(l),v=A(new(Ko().ModeOfOperation.ctr)(r,g).encrypt(o)),b=be(P([n,v])),y={address:e.address.substring(2).toLowerCase(),id:ti(f),version:3,Crypto:{cipher:"aes-128-ctr",cipherparams:{iv:x(l).substring(2)},ciphertext:x(v).substring(2),kdf:"scrypt",kdfparams:{salt:x(d).substring(2),n:h,dklen:32,p:m,r:p},mac:b.substring(2)}};if(a){const e=Zo(16),t=new(Ko().Counter)(e),r=A(new(Ko().ModeOfOperation.ctr)(i,t).encrypt(a)),n=new Date,o=n.getUTCFullYear()+"-"+Xo(n.getUTCMonth()+1,2)+"-"+Xo(n.getUTCDate(),2)+"T"+Xo(n.getUTCHours(),2)+"-"+Xo(n.getUTCMinutes(),2)+"-"+Xo(n.getUTCSeconds(),2)+".0Z";y["x-ethers"]={client:c,gethFilename:"UTC--"+o+"--"+y.address,mnemonicCounter:x(e).substring(2),mnemonicCiphertext:x(r).substring(2),path:s,locale:u,version:"0.1"}}return JSON.stringify(y)}))}(this,e,t,r)}static createRandom(e){let t=Zo(16);e||(e={}),e.extraEntropy&&(t=A(I(be(P([t,e.extraEntropy])),0,16)));const r=Ho(t,e.locale);return yi.fromMnemonic(r,e.path,e.locale)}static fromEncryptedJson(e,t,r){return gi(e,t,r).then((e=>new yi(e)))}static fromEncryptedJsonSync(e,t){return new yi(function(e,t){if(hi(e))return fi(e,t);if(pi(e))return function(e,t){const r=JSON.parse(e);return ai(r,ci(r,t,si,Yo().syncScrypt))}(e,t);throw new Error("invalid JSON wallet")}(e,t))}static fromMnemonic(e,t,r){return t||(t=Do),new yi(Bo.fromMnemonic(e,null,r).derivePath(t))}}function wi(e,t){return un(Kn(e),t)}function _i(e,t,r,n){return un(lo.hash(e,t,r),n)}const Si="0x0000000000000000000000000000000000000000",Oi="0x0000000000000000000000000000000000000000000000000000000000000000",ki="Ξ",Ai=new b("networks/5.6.4");function Pi(e){const t=function(t,r){null==r&&(r={});const n=[];if(t.InfuraProvider&&"-"!==r.infura)try{n.push(new t.InfuraProvider(e,r.infura))}catch(e){}if(t.EtherscanProvider&&"-"!==r.etherscan)try{n.push(new t.EtherscanProvider(e,r.etherscan))}catch(e){}if(t.AlchemyProvider&&"-"!==r.alchemy)try{n.push(new t.AlchemyProvider(e,r.alchemy))}catch(e){}if(t.PocketProvider&&"-"!==r.pocket){const o=["goerli","ropsten","rinkeby"];try{const i=new t.PocketProvider(e,r.pocket);i.network&&-1===o.indexOf(i.network.name)&&n.push(i)}catch(e){}}if(t.CloudflareProvider&&"-"!==r.cloudflare)try{n.push(new t.CloudflareProvider(e))}catch(e){}if(t.AnkrProvider&&"-"!==r.ankr)try{const o=["ropsten"],i=new t.AnkrProvider(e,r.ankr);i.network&&-1===o.indexOf(i.network.name)&&n.push(i)}catch(e){}if(0===n.length)return null;if(t.FallbackProvider){let o=1;return null!=r.quorum?o=r.quorum:"homestead"===e&&(o=2),new t.FallbackProvider(n,o)}return n[0]};return t.renetwork=function(e){return Pi(e)},t}function Mi(e,t){const r=function(r,n){return r.JsonRpcProvider?new r.JsonRpcProvider(e,t):null};return r.renetwork=function(t){return Mi(e,t)},r}const Ei={chainId:1,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"homestead",_defaultProvider:Pi("homestead")},Ci={chainId:3,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"ropsten",_defaultProvider:Pi("ropsten")},Ni={chainId:63,name:"classicMordor",_defaultProvider:Mi("https://www.ethercluster.com/mordor","classicMordor")},xi={unspecified:{chainId:0,name:"unspecified"},homestead:Ei,mainnet:Ei,morden:{chainId:2,name:"morden"},ropsten:Ci,testnet:Ci,rinkeby:{chainId:4,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"rinkeby",_defaultProvider:Pi("rinkeby")},kovan:{chainId:42,name:"kovan",_defaultProvider:Pi("kovan")},goerli:{chainId:5,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"goerli",_defaultProvider:Pi("goerli")},kintsugi:{chainId:1337702,name:"kintsugi"},classic:{chainId:61,name:"classic",_defaultProvider:Mi("https://www.ethercluster.com/etc","classic")},classicMorden:{chainId:62,name:"classicMorden"},classicMordor:Ni,classicTestnet:Ni,classicKotti:{chainId:6,name:"classicKotti",_defaultProvider:Mi("https://www.ethercluster.com/kotti","classicKotti")},xdai:{chainId:100,name:"xdai"},matic:{chainId:137,name:"matic",_defaultProvider:Pi("matic")},maticmum:{chainId:80001,name:"maticmum"},optimism:{chainId:10,name:"optimism",_defaultProvider:Pi("optimism")},"optimism-kovan":{chainId:69,name:"optimism-kovan"},"optimism-goerli":{chainId:420,name:"optimism-goerli"},arbitrum:{chainId:42161,name:"arbitrum"},"arbitrum-rinkeby":{chainId:421611,name:"arbitrum-rinkeby"},bnb:{chainId:56,name:"bnb"},bnbt:{chainId:97,name:"bnbt"}};function Ri(e){if(null==e)return null;if("number"==typeof e){for(const t in xi){const r=xi[t];if(r.chainId===e)return{name:r.name,chainId:r.chainId,ensAddress:r.ensAddress||null,_defaultProvider:r._defaultProvider||null}}return{chainId:e,name:"unknown"}}if("string"==typeof e){const t=xi[e];return null==t?null:{name:t.name,chainId:t.chainId,ensAddress:t.ensAddress,_defaultProvider:t._defaultProvider||null}}const t=xi[e.name];if(!t)return"number"!=typeof e.chainId&&Ai.throwArgumentError("invalid network chainId","network",e),e;0!==e.chainId&&e.chainId!==t.chainId&&Ai.throwArgumentError("network chainId mismatch","network",e);let r=e._defaultProvider||null;var n;return null==r&&t._defaultProvider&&(r=(n=t._defaultProvider)&&"function"==typeof n.renetwork?t._defaultProvider.renetwork(e):t._defaultProvider),{name:e.name,chainId:t.chainId,ensAddress:e.ensAddress||t.ensAddress||null,_defaultProvider:r}}function Ii(e){e=atob(e);const t=[];for(let r=0;r{let o=e.split(":");r+=parseInt(o[0],16),n[r]=t(o[1])})),n}function Di(e){let t=0;return e.split(",").map((e=>{let r=e.split("-");1===r.length?r[1]="0":""===r[1]&&(r[1]="1");let n=t+parseInt(r[0],16);return t=parseInt(r[1],16),{l:n,h:t}}))}function Bi(e,t){let r=0;for(let n=0;n=r&&e<=r+o.h&&(e-r)%(o.d||1)==0){if(o.e&&-1!==o.e.indexOf(e-r))continue;return o}}return null}const Ui=Di("221,13-1b,5f-,40-10,51-f,11-3,3-3,2-2,2-4,8,2,15,2d,28-8,88,48,27-,3-5,11-20,27-,8,28,3-5,12,18,b-a,1c-4,6-16,2-d,2-2,2,1b-4,17-9,8f-,10,f,1f-2,1c-34,33-14e,4,36-,13-,6-2,1a-f,4,9-,3-,17,8,2-2,5-,2,8-,3-,4-8,2-3,3,6-,16-6,2-,7-3,3-,17,8,3,3,3-,2,6-3,3-,4-a,5,2-6,10-b,4,8,2,4,17,8,3,6-,b,4,4-,2-e,2-4,b-10,4,9-,3-,17,8,3-,5-,9-2,3-,4-7,3-3,3,4-3,c-10,3,7-2,4,5-2,3,2,3-2,3-2,4-2,9,4-3,6-2,4,5-8,2-e,d-d,4,9,4,18,b,6-3,8,4,5-6,3-8,3-3,b-11,3,9,4,18,b,6-3,8,4,5-6,3-6,2,3-3,b-11,3,9,4,18,11-3,7-,4,5-8,2-7,3-3,b-11,3,13-2,19,a,2-,8-2,2-3,7,2,9-11,4-b,3b-3,1e-24,3,2-,3,2-,2-5,5,8,4,2,2-,3,e,4-,6,2,7-,b-,3-21,49,23-5,1c-3,9,25,10-,2-2f,23,6,3,8-2,5-5,1b-45,27-9,2a-,2-3,5b-4,45-4,53-5,8,40,2,5-,8,2,5-,28,2,5-,20,2,5-,8,2,5-,8,8,18,20,2,5-,8,28,14-5,1d-22,56-b,277-8,1e-2,52-e,e,8-a,18-8,15-b,e,4,3-b,5e-2,b-15,10,b-5,59-7,2b-555,9d-3,5b-5,17-,7-,27-,7-,9,2,2,2,20-,36,10,f-,7,14-,4,a,54-3,2-6,6-5,9-,1c-10,13-1d,1c-14,3c-,10-6,32-b,240-30,28-18,c-14,a0,115-,3,66-,b-76,5,5-,1d,24,2,5-2,2,8-,35-2,19,f-10,1d-3,311-37f,1b,5a-b,d7-19,d-3,41,57-,68-4,29-3,5f,29-37,2e-2,25-c,2c-2,4e-3,30,78-3,64-,20,19b7-49,51a7-59,48e-2,38-738,2ba5-5b,222f-,3c-94,8-b,6-4,1b,6,2,3,3,6d-20,16e-f,41-,37-7,2e-2,11-f,5-b,18-,b,14,5-3,6,88-,2,bf-2,7-,7-,7-,4-2,8,8-9,8-2ff,20,5-b,1c-b4,27-,27-cbb1,f7-9,28-2,b5-221,56,48,3-,2-,3-,5,d,2,5,3,42,5-,9,8,1d,5,6,2-2,8,153-3,123-3,33-27fd,a6da-5128,21f-5df,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3,2-1d,61-ff7d"),Ji="ad,34f,1806,180b,180c,180d,200b,200c,200d,2060,feff".split(",").map((e=>parseInt(e,16))),Hi=[{h:25,s:32,l:65},{h:30,s:32,e:[23],l:127},{h:54,s:1,e:[48],l:64,d:2},{h:14,s:1,l:57,d:2},{h:44,s:1,l:17,d:2},{h:10,s:1,e:[2,6,8],l:61,d:2},{h:16,s:1,l:68,d:2},{h:84,s:1,e:[18,24,66],l:19,d:2},{h:26,s:32,e:[17],l:435},{h:22,s:1,l:71,d:2},{h:15,s:80,l:40},{h:31,s:32,l:16},{h:32,s:1,l:80,d:2},{h:52,s:1,l:42,d:2},{h:12,s:1,l:55,d:2},{h:40,s:1,e:[38],l:15,d:2},{h:14,s:1,l:48,d:2},{h:37,s:48,l:49},{h:148,s:1,l:6351,d:2},{h:88,s:1,l:160,d:2},{h:15,s:16,l:704},{h:25,s:26,l:854},{h:25,s:32,l:55915},{h:37,s:40,l:1247},{h:25,s:-119711,l:53248},{h:25,s:-119763,l:52},{h:25,s:-119815,l:52},{h:25,s:-119867,e:[1,4,5,7,8,11,12,17],l:52},{h:25,s:-119919,l:52},{h:24,s:-119971,e:[2,7,8,17],l:52},{h:24,s:-120023,e:[2,7,13,15,16,17],l:52},{h:25,s:-120075,l:52},{h:25,s:-120127,l:52},{h:25,s:-120179,l:52},{h:25,s:-120231,l:52},{h:25,s:-120283,l:52},{h:25,s:-120335,l:52},{h:24,s:-119543,e:[17],l:56},{h:24,s:-119601,e:[17],l:58},{h:24,s:-119659,e:[17],l:58},{h:24,s:-119717,e:[17],l:58},{h:24,s:-119775,e:[17],l:58}],Li=ji("b5:3bc,c3:ff,7:73,2:253,5:254,3:256,1:257,5:259,1:25b,3:260,1:263,2:269,1:268,5:26f,1:272,2:275,7:280,3:283,5:288,3:28a,1:28b,5:292,3f:195,1:1bf,29:19e,125:3b9,8b:3b2,1:3b8,1:3c5,3:3c6,1:3c0,1a:3ba,1:3c1,1:3c3,2:3b8,1:3b5,1bc9:3b9,1c:1f76,1:1f77,f:1f7a,1:1f7b,d:1f78,1:1f79,1:1f7c,1:1f7d,107:63,5:25b,4:68,1:68,1:68,3:69,1:69,1:6c,3:6e,4:70,1:71,1:72,1:72,1:72,7:7a,2:3c9,2:7a,2:6b,1:e5,1:62,1:63,3:65,1:66,2:6d,b:3b3,1:3c0,6:64,1b574:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3"),zi=ji("179:1,2:1,2:1,5:1,2:1,a:4f,a:1,8:1,2:1,2:1,3:1,5:1,3:1,4:1,2:1,3:1,4:1,8:2,1:1,2:2,1:1,2:2,27:2,195:26,2:25,1:25,1:25,2:40,2:3f,1:3f,33:1,11:-6,1:-9,1ac7:-3a,6d:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,b:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,c:-8,2:-8,2:-8,2:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,49:-8,1:-8,1:-4a,1:-4a,d:-56,1:-56,1:-56,1:-56,d:-8,1:-8,f:-8,1:-8,3:-7"),Vi=ji("df:00730073,51:00690307,19:02BC006E,a7:006A030C,18a:002003B9,16:03B903080301,20:03C503080301,1d7:05650582,190f:00680331,1:00740308,1:0077030A,1:0079030A,1:006102BE,b6:03C50313,2:03C503130300,2:03C503130301,2:03C503130342,2a:1F0003B9,1:1F0103B9,1:1F0203B9,1:1F0303B9,1:1F0403B9,1:1F0503B9,1:1F0603B9,1:1F0703B9,1:1F0003B9,1:1F0103B9,1:1F0203B9,1:1F0303B9,1:1F0403B9,1:1F0503B9,1:1F0603B9,1:1F0703B9,1:1F2003B9,1:1F2103B9,1:1F2203B9,1:1F2303B9,1:1F2403B9,1:1F2503B9,1:1F2603B9,1:1F2703B9,1:1F2003B9,1:1F2103B9,1:1F2203B9,1:1F2303B9,1:1F2403B9,1:1F2503B9,1:1F2603B9,1:1F2703B9,1:1F6003B9,1:1F6103B9,1:1F6203B9,1:1F6303B9,1:1F6403B9,1:1F6503B9,1:1F6603B9,1:1F6703B9,1:1F6003B9,1:1F6103B9,1:1F6203B9,1:1F6303B9,1:1F6403B9,1:1F6503B9,1:1F6603B9,1:1F6703B9,3:1F7003B9,1:03B103B9,1:03AC03B9,2:03B10342,1:03B1034203B9,5:03B103B9,6:1F7403B9,1:03B703B9,1:03AE03B9,2:03B70342,1:03B7034203B9,5:03B703B9,6:03B903080300,1:03B903080301,3:03B90342,1:03B903080342,b:03C503080300,1:03C503080301,1:03C10313,2:03C50342,1:03C503080342,b:1F7C03B9,1:03C903B9,1:03CE03B9,2:03C90342,1:03C9034203B9,5:03C903B9,ac:00720073,5b:00B00063,6:00B00066,d:006E006F,a:0073006D,1:00740065006C,1:0074006D,124f:006800700061,2:00610075,2:006F0076,b:00700061,1:006E0061,1:03BC0061,1:006D0061,1:006B0061,1:006B0062,1:006D0062,1:00670062,3:00700066,1:006E0066,1:03BC0066,4:0068007A,1:006B0068007A,1:006D0068007A,1:00670068007A,1:00740068007A,15:00700061,1:006B00700061,1:006D00700061,1:006700700061,8:00700076,1:006E0076,1:03BC0076,1:006D0076,1:006B0076,1:006D0076,1:00700077,1:006E0077,1:03BC0077,1:006D0077,1:006B0077,1:006D0077,1:006B03C9,1:006D03C9,2:00620071,3:00632215006B0067,1:0063006F002E,1:00640062,1:00670079,2:00680070,2:006B006B,1:006B006D,9:00700068,2:00700070006D,1:00700072,2:00730076,1:00770062,c723:00660066,1:00660069,1:0066006C,1:006600660069,1:00660066006C,1:00730074,1:00730074,d:05740576,1:05740565,1:0574056B,1:057E0576,1:0574056D",(function(e){if(e.length%4!=0)throw new Error("bad data");let t=[];for(let r=0;r{if(Ji.indexOf(e)>=0)return[];if(e>=65024&&e<=65039)return[];let t=function(e){let t=Bi(e,Hi);if(t)return[e+t.s];let r=Li[e];if(r)return r;let n=zi[e];return n?[e+n[0]]:Vi[e]||null}(e);return t||[e]})),t=r.reduce(((e,t)=>(t.forEach((t=>{e.push(t)})),e)),[]),t=Ge(We(t),Je.NFKC),t.forEach((e=>{if(Bi(e,qi))throw new Error("STRINGPREP_CONTAINS_PROHIBITED")})),t.forEach((e=>{if(Bi(e,Ui))throw new Error("STRINGPREP_CONTAINS_UNASSIGNED")}));let n=We(t);if("-"===n.substring(0,1)||"--"===n.substring(2,4)||"-"===n.substring(n.length-1))throw new Error("invalid hyphen");if(n.length>63)throw new Error("too long");return n}const Zi=new b(Gn),Wi=new Uint8Array(32);Wi.fill(0);const Ki=new RegExp("^((.*)\\.)?([^.]+)$");function Gi(e){try{const t=e.split(".");for(let e=0;e{const t=qe("_"+Fi(e));return t[0]=t.length-1,t}))))+"00"}function Xi(e,t){return r=this,n=void 0,i=function*(){null==t&&(t={});const r={method:t.method||"GET",headers:t.headers||{},body:t.body||void 0};!0!==t.skipFetchSetup&&(r.mode="cors",r.cache="no-cache",r.credentials="same-origin",r.redirect="follow",r.referrer="client");const n=yield fetch(e,r),o=yield n.arrayBuffer(),i={};return n.headers.forEach?n.headers.forEach(((e,t)=>{i[t.toLowerCase()]=e})):n.headers.keys().forEach((e=>{i[e.toLowerCase()]=n.headers.get(e)})),{headers:i,statusCode:n.status,statusMessage:n.statusText,body:A(new Uint8Array(o))}},new((o=void 0)||(o=Promise))((function(e,t){function a(e){try{u(i.next(e))}catch(e){t(e)}}function s(e){try{u(i.throw(e))}catch(e){t(e)}}function u(t){var r;t.done?e(t.value):(r=t.value,r instanceof o?r:new o((function(e){e(r)}))).then(a,s)}u((i=i.apply(r,n||[])).next())}));var r,n,o,i}const Qi=new b("web/5.6.1");function ea(e){return new Promise((t=>{setTimeout(t,e)}))}function ta(e,t){if(null==e)return null;if("string"==typeof e)return e;if(S(e)){if(t&&("text"===t.split("/")[0]||"application/json"===t.split(";")[0].trim()))try{return Ke(e)}catch(e){}return x(e)}return e}function ra(e,t,r){const n="object"==typeof e&&null!=e.throttleLimit?e.throttleLimit:12;Qi.assertArgument(n>0&&n%1==0,"invalid connection throttle limit","connection.throttleLimit",n);const o="object"==typeof e?e.throttleCallback:null,i="object"==typeof e&&"number"==typeof e.throttleSlotInterval?e.throttleSlotInterval:100;Qi.assertArgument(i>0&&i%1==0,"invalid connection throttle slot interval","connection.throttleSlotInterval",i);const a="object"==typeof e&&!!e.errorPassThrough,s={};let u=null;const c={method:"GET"};let d=!1,l=12e4;if("string"==typeof e)u=e;else if("object"==typeof e){if(null!=e&&null!=e.url||Qi.throwArgumentError("missing URL","connection.url",e),u=e.url,"number"==typeof e.timeout&&e.timeout>0&&(l=e.timeout),e.headers)for(const t in e.headers)s[t.toLowerCase()]={key:t,value:String(e.headers[t])},["if-none-match","if-modified-since"].indexOf(t.toLowerCase())>=0&&(d=!0);if(c.allowGzip=!!e.allowGzip,null!=e.user&&null!=e.password){"https:"!==u.substring(0,6)&&!0!==e.allowInsecureAuthentication&&Qi.throwError("basic authentication requires a secure https url",b.errors.INVALID_ARGUMENT,{argument:"url",url:u,user:e.user,password:"[REDACTED]"});const t=e.user+":"+e.password;s.authorization={key:"Authorization",value:"Basic "+Ti(qe(t))}}null!=e.skipFetchSetup&&(c.skipFetchSetup=!!e.skipFetchSetup)}const f=new RegExp("^data:([a-z0-9-]+/[a-z0-9-]+);base64,(.*)$","i"),h=u?u.match(f):null;if(h)try{const e={statusCode:200,statusMessage:"OK",headers:{"content-type":h[1]},body:Ii(h[2])};let t=e.body;return r&&(t=r(e.body,e)),Promise.resolve(t)}catch(e){Qi.throwError("processing response error",b.errors.SERVER_ERROR,{body:ta(h[1],h[2]),error:e,requestBody:null,requestMethod:"GET",url:u})}t&&(c.method="POST",c.body=t,null==s["content-type"]&&(s["content-type"]={key:"Content-Type",value:"application/octet-stream"}),null==s["content-length"]&&(s["content-length"]={key:"Content-Length",value:String(t.length)}));const p={};Object.keys(s).forEach((e=>{const t=s[e];p[t.key]=t.value})),c.headers=p;const m=function(){let e=null;return{promise:new Promise((function(t,r){l&&(e=setTimeout((()=>{null!=e&&(e=null,r(Qi.makeError("timeout",b.errors.TIMEOUT,{requestBody:ta(c.body,p["content-type"]),requestMethod:c.method,timeout:l,url:u})))}),l))})),cancel:function(){null!=e&&(clearTimeout(e),e=null)}}}(),g=function(){return e=this,t=void 0,l=function*(){for(let e=0;e=300)&&(m.cancel(),Qi.throwError("bad response",b.errors.SERVER_ERROR,{status:t.statusCode,headers:t.headers,body:ta(s,t.headers?t.headers["content-type"]:null),requestBody:ta(c.body,p["content-type"]),requestMethod:c.method,url:u})),r)try{const e=yield r(s,t);return m.cancel(),e}catch(r){if(r.throttleRetry&&e"content-type"===e.toLowerCase())).length||(r.headers=oe(r.headers),r.headers["content-type"]="application/json"):r.headers={"content-type":"application/json"},e=r}return ra(e,n,((e,t)=>{let n=null;if(null!=e)try{n=JSON.parse(Ke(e))}catch(t){Qi.throwError("invalid JSON",b.errors.SERVER_ERROR,{body:e,error:t})}return r&&(n=r(n,t)),n}))}function oa(e,t){return t||(t={}),null==(t=oe(t)).floor&&(t.floor=0),null==t.ceiling&&(t.ceiling=1e4),null==t.interval&&(t.interval=250),new Promise((function(r,n){let o=null,i=!1;const a=()=>!i&&(i=!0,o&&clearTimeout(o),!0);t.timeout&&(o=setTimeout((()=>{a()&&n(new Error("timeout"))}),t.timeout));const s=t.retryLimit;let u=0;!function o(){return e().then((function(e){if(void 0!==e)a()&&r(e);else if(t.oncePoll)t.oncePoll.once("poll",o);else if(t.onceBlock)t.onceBlock.once("block",o);else if(!i){if(u++,u>s)return void(a()&&n(new Error("retry limit reached")));let e=t.interval*parseInt(String(Math.random()*Math.pow(2,u)));et.ceiling&&(e=t.ceiling),setTimeout(o,e)}return null}),(function(e){a()&&n(e)}))}()}))}var ia=r(85751),aa=r.n(ia);const sa="providers/5.6.8",ua=new b(sa);class ca{constructor(){this.formats=this.getDefaultFormats()}getDefaultFormats(){const e={},t=this.address.bind(this),r=this.bigNumber.bind(this),n=this.blockTag.bind(this),o=this.data.bind(this),i=this.hash.bind(this),a=this.hex.bind(this),s=this.number.bind(this),u=this.type.bind(this);return e.transaction={hash:i,type:u,accessList:ca.allowNull(this.accessList.bind(this),null),blockHash:ca.allowNull(i,null),blockNumber:ca.allowNull(s,null),transactionIndex:ca.allowNull(s,null),confirmations:ca.allowNull(s,null),from:t,gasPrice:ca.allowNull(r),maxPriorityFeePerGas:ca.allowNull(r),maxFeePerGas:ca.allowNull(r),gasLimit:r,to:ca.allowNull(t,null),value:r,nonce:s,data:o,r:ca.allowNull(this.uint256),s:ca.allowNull(this.uint256),v:ca.allowNull(s),creates:ca.allowNull(t,null),raw:ca.allowNull(o)},e.transactionRequest={from:ca.allowNull(t),nonce:ca.allowNull(s),gasLimit:ca.allowNull(r),gasPrice:ca.allowNull(r),maxPriorityFeePerGas:ca.allowNull(r),maxFeePerGas:ca.allowNull(r),to:ca.allowNull(t),value:ca.allowNull(r),data:ca.allowNull((e=>this.data(e,!0))),type:ca.allowNull(s),accessList:ca.allowNull(this.accessList.bind(this),null)},e.receiptLog={transactionIndex:s,blockNumber:s,transactionHash:i,address:t,topics:ca.arrayOf(i),data:o,logIndex:s,blockHash:i},e.receipt={to:ca.allowNull(this.address,null),from:ca.allowNull(this.address,null),contractAddress:ca.allowNull(t,null),transactionIndex:s,root:ca.allowNull(a),gasUsed:r,logsBloom:ca.allowNull(o),blockHash:i,transactionHash:i,logs:ca.arrayOf(this.receiptLog.bind(this)),blockNumber:s,confirmations:ca.allowNull(s,null),cumulativeGasUsed:r,effectiveGasPrice:ca.allowNull(r),status:ca.allowNull(s),type:u},e.block={hash:ca.allowNull(i),parentHash:i,number:s,timestamp:s,nonce:ca.allowNull(a),difficulty:this.difficulty.bind(this),gasLimit:r,gasUsed:r,miner:ca.allowNull(t),extraData:o,transactions:ca.allowNull(ca.arrayOf(i)),baseFeePerGas:ca.allowNull(r)},e.blockWithTransactions=oe(e.block),e.blockWithTransactions.transactions=ca.allowNull(ca.arrayOf(this.transactionResponse.bind(this))),e.filter={fromBlock:ca.allowNull(n,void 0),toBlock:ca.allowNull(n,void 0),blockHash:ca.allowNull(i,void 0),address:ca.allowNull(t,void 0),topics:ca.allowNull(this.topics.bind(this),void 0)},e.filterLog={blockNumber:ca.allowNull(s),blockHash:ca.allowNull(i),transactionIndex:s,removed:ca.allowNull(this.boolean.bind(this)),address:t,data:ca.allowFalsish(o,"0x"),topics:ca.arrayOf(i),transactionHash:i,logIndex:s},e}accessList(e){return ln(e||[])}number(e){return"0x"===e?0:K.from(e).toNumber()}type(e){return"0x"===e||null==e?0:K.from(e).toNumber()}bigNumber(e){return K.from(e)}boolean(e){if("boolean"==typeof e)return e;if("string"==typeof e){if("true"===(e=e.toLowerCase()))return!0;if("false"===e)return!1}throw new Error("invalid boolean - "+e)}hex(e,t){return"string"==typeof e&&(t||"0x"===e.substring(0,2)||(e="0x"+e),C(e))?e.toLowerCase():ua.throwArgumentError("invalid hash","value",e)}data(e,t){const r=this.hex(e,t);if(r.length%2!=0)throw new Error("invalid data; odd-length - "+e);return r}address(e){return Ie(e)}callAddress(e){if(!C(e,32))return null;const t=Ie(I(e,12));return t===Si?null:t}contractAddress(e){return De(e)}blockTag(e){if(null==e)return"latest";if("earliest"===e)return"0x0";if("latest"===e||"pending"===e)return e;if("number"==typeof e||C(e))return j(e);throw new Error("invalid blockTag")}hash(e,t){const r=this.hex(e,t);return 32!==R(r)?ua.throwArgumentError("invalid hash","value",e):r}difficulty(e){if(null==e)return null;const t=K.from(e);try{return t.toNumber()}catch(e){}return null}uint256(e){if(!C(e))throw new Error("invalid uint256");return B(e,32)}_block(e,t){null!=e.author&&null==e.miner&&(e.miner=e.author);const r=null!=e._difficulty?e._difficulty:e.difficulty,n=ca.check(t,e);return n._difficulty=null==r?null:K.from(r),n}block(e){return this._block(e,this.formats.block)}blockWithTransactions(e){return this._block(e,this.formats.blockWithTransactions)}transactionRequest(e){return ca.check(this.formats.transactionRequest,e)}transactionResponse(e){null!=e.gas&&null==e.gasLimit&&(e.gasLimit=e.gas),e.to&&K.from(e.to).isZero()&&(e.to="0x0000000000000000000000000000000000000000"),null!=e.input&&null==e.data&&(e.data=e.input),null==e.to&&null==e.creates&&(e.creates=this.contractAddress(e)),1!==e.type&&2!==e.type||null!=e.accessList||(e.accessList=[]);const t=ca.check(this.formats.transaction,e);if(null!=e.chainId){let r=e.chainId;C(r)&&(r=K.from(r).toNumber()),t.chainId=r}else{let r=e.networkId;null==r&&null==t.v&&(r=e.chainId),C(r)&&(r=K.from(r).toNumber()),"number"!=typeof r&&null!=t.v&&(r=(t.v-35)/2,r<0&&(r=0),r=parseInt(r)),"number"!=typeof r&&(r=0),t.chainId=r}return t.blockHash&&"x"===t.blockHash.replace(/0/g,"")&&(t.blockHash=null),t}transaction(e){return vn(e)}receiptLog(e){return ca.check(this.formats.receiptLog,e)}receipt(e){const t=ca.check(this.formats.receipt,e);if(null!=t.root)if(t.root.length<=4){const e=K.from(t.root).toNumber();0===e||1===e?(null!=t.status&&t.status!==e&&ua.throwArgumentError("alt-root-status/status mismatch","value",{root:t.root,status:t.status}),t.status=e,delete t.root):ua.throwArgumentError("invalid alt-root-status","value.root",t.root)}else 66!==t.root.length&&ua.throwArgumentError("invalid root hash","value.root",t.root);return null!=t.status&&(t.byzantium=!0),t}topics(e){return Array.isArray(e)?e.map((e=>this.topics(e))):null!=e?this.hash(e,!0):null}filter(e){return ca.check(this.formats.filter,e)}filterLog(e){return ca.check(this.formats.filterLog,e)}static check(e,t){const r={};for(const n in e)try{const o=e[n](t[n]);void 0!==o&&(r[n]=o)}catch(e){throw e.checkKey=n,e.checkValue=t[n],e}return r}static allowNull(e,t){return function(r){return null==r?t:e(r)}}static allowFalsish(e,t){return function(r){return r?e(r):t}}static arrayOf(e){return function(t){if(!Array.isArray(t))throw new Error("not an array");const r=[];return t.forEach((function(t){r.push(e(t))})),r}}}function da(e){return e&&"function"==typeof e.isCommunityResource}function la(e){return da(e)&&e.isCommunityResource()}let fa=!1;function ha(){fa||(fa=!0,console.log("========= NOTICE ========="),console.log("Request-Rate Exceeded (this message will not be repeated)"),console.log(""),console.log("The default API keys for each service are provided as a highly-throttled,"),console.log("community resource for low-traffic projects and early prototyping."),console.log(""),console.log("While your application will continue to function, we highly recommended"),console.log("signing up for your own API keys to improve performance, increase your"),console.log("request rate/limit and enable other perks, such as metrics and advanced APIs."),console.log(""),console.log("For more details: https://docs.ethers.io/api-keys/"),console.log("=========================="))}var pa=function(e,t,r,n){return new(r||(r=Promise))((function(o,i){function a(e){try{u(n.next(e))}catch(e){i(e)}}function s(e){try{u(n.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,s)}u((n=n.apply(e,t||[])).next())}))};const ma=new b(sa);function ga(e){return null==e?"null":(32!==R(e)&&ma.throwArgumentError("invalid topic","topic",e),e.toLowerCase())}function va(e){for(e=e.slice();e.length>0&&null==e[e.length-1];)e.pop();return e.map((e=>{if(Array.isArray(e)){const t={};e.forEach((e=>{t[ga(e)]=!0}));const r=Object.keys(t);return r.sort(),r.join("|")}return ga(e)})).join("&")}function ba(e){if("string"==typeof e){if(32===R(e=e.toLowerCase()))return"tx:"+e;if(-1===e.indexOf(":"))return e}else{if(Array.isArray(e))return"filter:*:"+va(e);if(rr.isForkEvent(e))throw ma.warn("not implemented"),new Error("not implemented");if(e&&"object"==typeof e)return"filter:"+(e.address||"*")+":"+va(e.topics||[])}throw new Error("invalid event - "+e)}function ya(){return(new Date).getTime()}function wa(e){return new Promise((t=>{setTimeout(t,e)}))}const _a=["block","network","pending","poll"];class Sa{constructor(e,t,r){ee(this,"tag",e),ee(this,"listener",t),ee(this,"once",r),this._lastBlockNumber=-2,this._inflight=!1}get event(){switch(this.type){case"tx":return this.hash;case"filter":return this.filter}return this.tag}get type(){return this.tag.split(":")[0]}get hash(){const e=this.tag.split(":");return"tx"!==e[0]?null:e[1]}get filter(){const e=this.tag.split(":");if("filter"!==e[0])return null;const t=e[1],r=""===(n=e[2])?[]:n.split(/&/g).map((e=>{if(""===e)return[];const t=e.split("|").map((e=>"null"===e?null:e));return 1===t.length?t[0]:t}));var n;const o={};return r.length>0&&(o.topics=r),t&&"*"!==t&&(o.address=t),o}pollable(){return this.tag.indexOf(":")>=0||_a.indexOf(this.tag)>=0}}const Oa={0:{symbol:"btc",p2pkh:0,p2sh:5,prefix:"bc"},2:{symbol:"ltc",p2pkh:48,p2sh:50,prefix:"ltc"},3:{symbol:"doge",p2pkh:30,p2sh:22},60:{symbol:"eth",ilk:"eth"},61:{symbol:"etc",ilk:"eth"},700:{symbol:"xdai",ilk:"eth"}};function ka(e){return B(K.from(e).toHexString(),32)}function Aa(e){return ho.encode(P([e,I(vo(vo(e)),0,4)]))}const Pa=new RegExp("^(ipfs)://(.*)$","i"),Ma=[new RegExp("^(https)://(.*)$","i"),new RegExp("^(data):(.*)$","i"),Pa,new RegExp("^eip155:[0-9]+/(erc[0-9]+):(.*)$","i")];function Ea(e,t){try{return Ke(Ca(e,t))}catch(e){}return null}function Ca(e,t){if("0x"===e)return null;const r=K.from(I(e,t,t+32)).toNumber(),n=K.from(I(e,r,r+32)).toNumber();return I(e,r+32,r+32+n)}function Na(e){return e.match(/^ipfs:\/\/ipfs\//i)?e=e.substring(12):e.match(/^ipfs:\/\//i)?e=e.substring(7):ma.throwArgumentError("unsupported IPFS format","link",e),`https://gateway.ipfs.io/ipfs/${e}`}function xa(e){const t=A(e);if(t.length>32)throw new Error("internal; should not happen");const r=new Uint8Array(32);return r.set(t,32-t.length),r}function Ra(e){if(e.length%32==0)return e;const t=new Uint8Array(32*Math.ceil(e.length/32));return t.set(e),t}function Ia(e){const t=[];let r=0;for(let n=0;nK.from(e).eq(1))).catch((e=>{if(e.code===b.errors.CALL_EXCEPTION)return!1;throw this._supportsEip2544=null,e}))),this._supportsEip2544}_fetch(e,t){return pa(this,void 0,void 0,(function*(){const r={to:this.address,ccipReadEnabled:!0,data:T([e,Yi(this.name),t||"0x"])};let n=!1;(yield this.supportsWildcard())&&(n=!0,r.data=T(["0x9061b923",Ia([$i(this.name),r.data])]));try{let e=yield this.provider.call(r);return A(e).length%32==4&&ma.throwError("resolver threw error",b.errors.CALL_EXCEPTION,{transaction:r,data:e}),n&&(e=Ca(e,0)),e}catch(e){if(e.code===b.errors.CALL_EXCEPTION)return null;throw e}}))}_fetchBytes(e,t){return pa(this,void 0,void 0,(function*(){const r=yield this._fetch(e,t);return null!=r?Ca(r,0):null}))}_getAddress(e,t){const r=Oa[String(e)];if(null==r&&ma.throwError(`unsupported coin type: ${e}`,b.errors.UNSUPPORTED_OPERATION,{operation:`getAddress(${e})`}),"eth"===r.ilk)return this.provider.formatter.address(t);const n=A(t);if(null!=r.p2pkh){const e=t.match(/^0x76a9([0-9a-f][0-9a-f])([0-9a-f]*)88ac$/);if(e){const t=parseInt(e[1],16);if(e[2].length===2*t&&t>=1&&t<=75)return Aa(P([[r.p2pkh],"0x"+e[2]]))}}if(null!=r.p2sh){const e=t.match(/^0xa9([0-9a-f][0-9a-f])([0-9a-f]*)87$/);if(e){const t=parseInt(e[1],16);if(e[2].length===2*t&&t>=1&&t<=75)return Aa(P([[r.p2sh],"0x"+e[2]]))}}if(null!=r.prefix){const e=n[1];let t=n[0];if(0===t?20!==e&&32!==e&&(t=-1):t=-1,t>=0&&n.length===2+e&&e>=1&&e<=75){const e=aa().toWords(n.slice(2));return e.unshift(t),aa().encode(r.prefix,e)}}return null}getAddress(e){return pa(this,void 0,void 0,(function*(){if(null==e&&(e=60),60===e)try{const e=yield this._fetch("0x3b3b57de");return"0x"===e||e===Oi?null:this.provider.formatter.callAddress(e)}catch(e){if(e.code===b.errors.CALL_EXCEPTION)return null;throw e}const t=yield this._fetchBytes("0xf1cb7e06",ka(e));if(null==t||"0x"===t)return null;const r=this._getAddress(e,t);return null==r&&ma.throwError("invalid or unsupported coin data",b.errors.UNSUPPORTED_OPERATION,{operation:`getAddress(${e})`,coinType:e,data:t}),r}))}getAvatar(){return pa(this,void 0,void 0,(function*(){const e=[{type:"name",content:this.name}];try{const t=yield this.getText("avatar");if(null==t)return null;for(let r=0;re[t]))}return ma.throwError("invalid or unsupported content hash data",b.errors.UNSUPPORTED_OPERATION,{operation:"getContentHash()",data:e})}))}getText(e){return pa(this,void 0,void 0,(function*(){let t=qe(e);t=P([ka(64),ka(t.length),t]),t.length%32!=0&&(t=P([t,B("0x",32-e.length%32)]));const r=yield this._fetchBytes("0x59d1d43c",x(t));return null==r||"0x"===r?null:Ke(r)}))}}let ja=null,Da=1;class Ba extends nr{constructor(e){if(super(),this._events=[],this._emitted={block:-2},this.disableCcipRead=!1,this.formatter=new.target.getFormatter(),ee(this,"anyNetwork","any"===e),this.anyNetwork&&(e=this.detectNetwork()),e instanceof Promise)this._networkPromise=e,e.catch((e=>{})),this._ready().catch((e=>{}));else{const t=te(new.target,"getNetwork")(e);t?(ee(this,"_network",t),this.emit("network",t,null)):ma.throwArgumentError("invalid network","network",e)}this._maxInternalBlockNumber=-1024,this._lastBlockNumber=-2,this._maxFilterBlockRange=10,this._pollingInterval=4e3,this._fastQueryDate=0}_ready(){return pa(this,void 0,void 0,(function*(){if(null==this._network){let e=null;if(this._networkPromise)try{e=yield this._networkPromise}catch(e){}null==e&&(e=yield this.detectNetwork()),e||ma.throwError("no network detected",b.errors.UNKNOWN_ERROR,{}),null==this._network&&(this.anyNetwork?this._network=e:ee(this,"_network",e),this.emit("network",e,null))}return this._network}))}get ready(){return oa((()=>this._ready().then((e=>e),(e=>{if(e.code!==b.errors.NETWORK_ERROR||"noNetwork"!==e.event)throw e}))))}static getFormatter(){return null==ja&&(ja=new ca),ja}static getNetwork(e){return Ri(null==e?"homestead":e)}ccipReadFetch(e,t,r){return pa(this,void 0,void 0,(function*(){if(this.disableCcipRead||0===r.length)return null;const n=e.to.toLowerCase(),o=t.toLowerCase(),i=[];for(let e=0;e=0?null:JSON.stringify({data:o,sender:n}),u=yield na({url:a,errorPassThrough:!0},s,((e,t)=>(e.status=t.statusCode,e)));if(u.data)return u.data;const c=u.message||"unknown error";if(u.status>=400&&u.status<500)return ma.throwError(`response not found during CCIP fetch: ${c}`,b.errors.SERVER_ERROR,{url:t,errorMessage:c});i.push(c)}return ma.throwError(`error encountered during CCIP fetch: ${i.map((e=>JSON.stringify(e))).join(", ")}`,b.errors.SERVER_ERROR,{urls:r,errorMessages:i})}))}_getInternalBlockNumber(e){return pa(this,void 0,void 0,(function*(){if(yield this._ready(),e>0)for(;this._internalBlockNumber;){const t=this._internalBlockNumber;try{const r=yield t;if(ya()-r.respTime<=e)return r.blockNumber;break}catch(e){if(this._internalBlockNumber===t)break}}const t=ya(),r=re({blockNumber:this.perform("getBlockNumber",{}),networkError:this.getNetwork().then((e=>null),(e=>e))}).then((({blockNumber:e,networkError:n})=>{if(n)throw this._internalBlockNumber===r&&(this._internalBlockNumber=null),n;const o=ya();return(e=K.from(e).toNumber()){this._internalBlockNumber===r&&(this._internalBlockNumber=null)})),(yield r).blockNumber}))}poll(){return pa(this,void 0,void 0,(function*(){const e=Da++,t=[];let r=null;try{r=yield this._getInternalBlockNumber(100+this.pollingInterval/2)}catch(e){return void this.emit("error",e)}if(this._setFastBlockNumber(r),this.emit("poll",e,r),r!==this._lastBlockNumber){if(-2===this._emitted.block&&(this._emitted.block=r-1),Math.abs(this._emitted.block-r)>1e3)ma.warn(`network block skew detected; skipping block events (emitted=${this._emitted.block} blockNumber${r})`),this.emit("error",ma.makeError("network block skew detected",b.errors.NETWORK_ERROR,{blockNumber:r,event:"blockSkew",previousBlockNumber:this._emitted.block})),this.emit("block",r);else for(let e=this._emitted.block+1;e<=r;e++)this.emit("block",e);this._emitted.block!==r&&(this._emitted.block=r,Object.keys(this._emitted).forEach((e=>{if("block"===e)return;const t=this._emitted[e];"pending"!==t&&r-t>12&&delete this._emitted[e]}))),-2===this._lastBlockNumber&&(this._lastBlockNumber=r-1),this._events.forEach((e=>{switch(e.type){case"tx":{const r=e.hash;let n=this.getTransactionReceipt(r).then((e=>e&&null!=e.blockNumber?(this._emitted["t:"+r]=e.blockNumber,this.emit(r,e),null):null)).catch((e=>{this.emit("error",e)}));t.push(n);break}case"filter":if(!e._inflight){e._inflight=!0;const n=e.filter;n.fromBlock=e._lastBlockNumber+1,n.toBlock=r,n.toBlock-this._maxFilterBlockRange>n.fromBlock&&(n.fromBlock=n.toBlock-this._maxFilterBlockRange);const o=this.getLogs(n).then((t=>{e._inflight=!1,0!==t.length&&t.forEach((t=>{t.blockNumber>e._lastBlockNumber&&(e._lastBlockNumber=t.blockNumber),this._emitted["b:"+t.blockHash]=t.blockNumber,this._emitted["t:"+t.transactionHash]=t.blockNumber,this.emit(n,t)}))})).catch((t=>{this.emit("error",t),e._inflight=!1}));t.push(o)}}})),this._lastBlockNumber=r,Promise.all(t).then((()=>{this.emit("didPoll",e)})).catch((e=>{this.emit("error",e)}))}else this.emit("didPoll",e)}))}resetEventsBlock(e){this._lastBlockNumber=e-1,this.polling&&this.poll()}get network(){return this._network}detectNetwork(){return pa(this,void 0,void 0,(function*(){return ma.throwError("provider does not support network detection",b.errors.UNSUPPORTED_OPERATION,{operation:"provider.detectNetwork"})}))}getNetwork(){return pa(this,void 0,void 0,(function*(){const e=yield this._ready(),t=yield this.detectNetwork();if(e.chainId!==t.chainId){if(this.anyNetwork)return this._network=t,this._lastBlockNumber=-2,this._fastBlockNumber=null,this._fastBlockNumberPromise=null,this._fastQueryDate=0,this._emitted.block=-2,this._maxInternalBlockNumber=-1024,this._internalBlockNumber=null,this.emit("network",t,e),yield wa(0),this._network;const r=ma.makeError("underlying network changed",b.errors.NETWORK_ERROR,{event:"changed",network:e,detectedNetwork:t});throw this.emit("error",r),r}return e}))}get blockNumber(){return this._getInternalBlockNumber(100+this.pollingInterval/2).then((e=>{this._setFastBlockNumber(e)}),(e=>{})),null!=this._fastBlockNumber?this._fastBlockNumber:-1}get polling(){return null!=this._poller}set polling(e){e&&!this._poller?(this._poller=setInterval((()=>{this.poll()}),this.pollingInterval),this._bootstrapPoll||(this._bootstrapPoll=setTimeout((()=>{this.poll(),this._bootstrapPoll=setTimeout((()=>{this._poller||this.poll(),this._bootstrapPoll=null}),this.pollingInterval)}),0))):!e&&this._poller&&(clearInterval(this._poller),this._poller=null)}get pollingInterval(){return this._pollingInterval}set pollingInterval(e){if("number"!=typeof e||e<=0||parseInt(String(e))!=e)throw new Error("invalid polling interval");this._pollingInterval=e,this._poller&&(clearInterval(this._poller),this._poller=setInterval((()=>{this.poll()}),this._pollingInterval))}_getFastBlockNumber(){const e=ya();return e-this._fastQueryDate>2*this._pollingInterval&&(this._fastQueryDate=e,this._fastBlockNumberPromise=this.getBlockNumber().then((e=>((null==this._fastBlockNumber||e>this._fastBlockNumber)&&(this._fastBlockNumber=e),this._fastBlockNumber)))),this._fastBlockNumberPromise}_setFastBlockNumber(e){null!=this._fastBlockNumber&&ethis._fastBlockNumber)&&(this._fastBlockNumber=e,this._fastBlockNumberPromise=Promise.resolve(e)))}waitForTransaction(e,t,r){return pa(this,void 0,void 0,(function*(){return this._waitForTransaction(e,null==t?1:t,r||0,null)}))}_waitForTransaction(e,t,r,n){return pa(this,void 0,void 0,(function*(){const o=yield this.getTransactionReceipt(e);return(o?o.confirmations:0)>=t?o:new Promise(((o,i)=>{const a=[];let s=!1;const u=function(){return!!s||(s=!0,a.forEach((e=>{e()})),!1)},c=e=>{e.confirmations{this.removeListener(e,c)})),n){let r=n.startBlock,o=null;const c=a=>pa(this,void 0,void 0,(function*(){s||(yield wa(1e3),this.getTransactionCount(n.from).then((d=>pa(this,void 0,void 0,(function*(){if(!s){if(d<=n.nonce)r=a;else{{const t=yield this.getTransaction(e);if(t&&null!=t.blockNumber)return}for(null==o&&(o=r-3,o{s||this.once("block",c)})))}));if(s)return;this.once("block",c),a.push((()=>{this.removeListener("block",c)}))}if("number"==typeof r&&r>0){const e=setTimeout((()=>{u()||i(ma.makeError("timeout exceeded",b.errors.TIMEOUT,{timeout:r}))}),r);e.unref&&e.unref(),a.push((()=>{clearTimeout(e)}))}}))}))}getBlockNumber(){return pa(this,void 0,void 0,(function*(){return this._getInternalBlockNumber(0)}))}getGasPrice(){return pa(this,void 0,void 0,(function*(){yield this.getNetwork();const e=yield this.perform("getGasPrice",{});try{return K.from(e)}catch(t){return ma.throwError("bad result from backend",b.errors.SERVER_ERROR,{method:"getGasPrice",result:e,error:t})}}))}getBalance(e,t){return pa(this,void 0,void 0,(function*(){yield this.getNetwork();const r=yield re({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),n=yield this.perform("getBalance",r);try{return K.from(n)}catch(e){return ma.throwError("bad result from backend",b.errors.SERVER_ERROR,{method:"getBalance",params:r,result:n,error:e})}}))}getTransactionCount(e,t){return pa(this,void 0,void 0,(function*(){yield this.getNetwork();const r=yield re({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),n=yield this.perform("getTransactionCount",r);try{return K.from(n).toNumber()}catch(e){return ma.throwError("bad result from backend",b.errors.SERVER_ERROR,{method:"getTransactionCount",params:r,result:n,error:e})}}))}getCode(e,t){return pa(this,void 0,void 0,(function*(){yield this.getNetwork();const r=yield re({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),n=yield this.perform("getCode",r);try{return x(n)}catch(e){return ma.throwError("bad result from backend",b.errors.SERVER_ERROR,{method:"getCode",params:r,result:n,error:e})}}))}getStorageAt(e,t,r){return pa(this,void 0,void 0,(function*(){yield this.getNetwork();const n=yield re({address:this._getAddress(e),blockTag:this._getBlockTag(r),position:Promise.resolve(t).then((e=>j(e)))}),o=yield this.perform("getStorageAt",n);try{return x(o)}catch(e){return ma.throwError("bad result from backend",b.errors.SERVER_ERROR,{method:"getStorageAt",params:n,result:o,error:e})}}))}_wrapTransaction(e,t,r){if(null!=t&&32!==R(t))throw new Error("invalid response - sendTransaction");const n=e;return null!=t&&e.hash!==t&&ma.throwError("Transaction hash mismatch from Provider.sendTransaction.",b.errors.UNKNOWN_ERROR,{expectedHash:e.hash,returnedHash:t}),n.wait=(t,n)=>pa(this,void 0,void 0,(function*(){let o;null==t&&(t=1),null==n&&(n=0),0!==t&&null!=r&&(o={data:e.data,from:e.from,nonce:e.nonce,to:e.to,value:e.value,startBlock:r});const i=yield this._waitForTransaction(e.hash,t,n,o);return null==i&&0===t?null:(this._emitted["t:"+e.hash]=i.blockNumber,0===i.status&&ma.throwError("transaction failed",b.errors.CALL_EXCEPTION,{transactionHash:e.hash,transaction:e,receipt:i}),i)})),n}sendTransaction(e){return pa(this,void 0,void 0,(function*(){yield this.getNetwork();const t=yield Promise.resolve(e).then((e=>x(e))),r=this.formatter.transaction(e);null==r.confirmations&&(r.confirmations=0);const n=yield this._getInternalBlockNumber(100+2*this.pollingInterval);try{const e=yield this.perform("sendTransaction",{signedTransaction:t});return this._wrapTransaction(r,e,n)}catch(e){throw e.transaction=r,e.transactionHash=r.hash,e}}))}_getTransactionRequest(e){return pa(this,void 0,void 0,(function*(){const t=yield e,r={};return["from","to"].forEach((e=>{null!=t[e]&&(r[e]=Promise.resolve(t[e]).then((e=>e?this._getAddress(e):null)))})),["gasLimit","gasPrice","maxFeePerGas","maxPriorityFeePerGas","value"].forEach((e=>{null!=t[e]&&(r[e]=Promise.resolve(t[e]).then((e=>e?K.from(e):null)))})),["type"].forEach((e=>{null!=t[e]&&(r[e]=Promise.resolve(t[e]).then((e=>null!=e?e:null)))})),t.accessList&&(r.accessList=this.formatter.accessList(t.accessList)),["data"].forEach((e=>{null!=t[e]&&(r[e]=Promise.resolve(t[e]).then((e=>e?x(e):null)))})),this.formatter.transactionRequest(yield re(r))}))}_getFilter(e){return pa(this,void 0,void 0,(function*(){e=yield e;const t={};return null!=e.address&&(t.address=this._getAddress(e.address)),["blockHash","topics"].forEach((r=>{null!=e[r]&&(t[r]=e[r])})),["fromBlock","toBlock"].forEach((r=>{null!=e[r]&&(t[r]=this._getBlockTag(e[r]))})),this.formatter.filter(yield re(t))}))}_call(e,t,r){return pa(this,void 0,void 0,(function*(){r>=10&&ma.throwError("CCIP read exceeded maximum redirections",b.errors.SERVER_ERROR,{redirects:r,transaction:e});const n=e.to,o=yield this.perform("call",{transaction:e,blockTag:t});if(r>=0&&"latest"===t&&null!=n&&"0x556f1830"===o.substring(0,10)&&R(o)%32==4)try{const i=I(o,4),a=I(i,0,32);K.from(a).eq(n)||ma.throwError("CCIP Read sender did not match",b.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:o});const s=[],u=K.from(I(i,32,64)).toNumber(),c=K.from(I(i,u,u+32)).toNumber(),d=I(i,u+32);for(let t=0;tpa(this,void 0,void 0,(function*(){const e=yield this.perform("getBlock",n);if(null==e)return null!=n.blockHash&&null==this._emitted["b:"+n.blockHash]||null!=n.blockTag&&r>this._emitted.block?null:void 0;if(t){let t=null;for(let r=0;rthis._wrapTransaction(e))),r}return this.formatter.block(e)}))),{oncePoll:this})}))}getBlock(e){return this._getBlock(e,!1)}getBlockWithTransactions(e){return this._getBlock(e,!0)}getTransaction(e){return pa(this,void 0,void 0,(function*(){yield this.getNetwork(),e=yield e;const t={transactionHash:this.formatter.hash(e,!0)};return oa((()=>pa(this,void 0,void 0,(function*(){const r=yield this.perform("getTransaction",t);if(null==r)return null==this._emitted["t:"+e]?null:void 0;const n=this.formatter.transactionResponse(r);if(null==n.blockNumber)n.confirmations=0;else if(null==n.confirmations){let e=(yield this._getInternalBlockNumber(100+2*this.pollingInterval))-n.blockNumber+1;e<=0&&(e=1),n.confirmations=e}return this._wrapTransaction(n)}))),{oncePoll:this})}))}getTransactionReceipt(e){return pa(this,void 0,void 0,(function*(){yield this.getNetwork(),e=yield e;const t={transactionHash:this.formatter.hash(e,!0)};return oa((()=>pa(this,void 0,void 0,(function*(){const r=yield this.perform("getTransactionReceipt",t);if(null==r)return null==this._emitted["t:"+e]?null:void 0;if(null==r.blockHash)return;const n=this.formatter.receipt(r);if(null==n.blockNumber)n.confirmations=0;else if(null==n.confirmations){let e=(yield this._getInternalBlockNumber(100+2*this.pollingInterval))-n.blockNumber+1;e<=0&&(e=1),n.confirmations=e}return n}))),{oncePoll:this})}))}getLogs(e){return pa(this,void 0,void 0,(function*(){yield this.getNetwork();const t=yield re({filter:this._getFilter(e)}),r=yield this.perform("getLogs",t);return r.forEach((e=>{null==e.removed&&(e.removed=!1)})),ca.arrayOf(this.formatter.filterLog.bind(this.formatter))(r)}))}getEtherPrice(){return pa(this,void 0,void 0,(function*(){return yield this.getNetwork(),this.perform("getEtherPrice",{})}))}_getBlockTag(e){return pa(this,void 0,void 0,(function*(){if("number"==typeof(e=yield e)&&e<0){e%1&&ma.throwArgumentError("invalid BlockTag","blockTag",e);let t=yield this._getInternalBlockNumber(100+2*this.pollingInterval);return t+=e,t<0&&(t=0),this.formatter.blockTag(t)}return this.formatter.blockTag(e)}))}getResolver(e){return pa(this,void 0,void 0,(function*(){let t=e;for(;;){if(""===t||"."===t)return null;if("eth"!==e&&"eth"===t)return null;const r=yield this._getResolver(t,"getResolver");if(null!=r){const n=new Ta(this,r,e);return t===e||(yield n.supportsWildcard())?n:null}t=t.split(".").slice(1).join(".")}}))}_getResolver(e,t){return pa(this,void 0,void 0,(function*(){null==t&&(t="ENS");const r=yield this.getNetwork();r.ensAddress||ma.throwError("network does not support ENS",b.errors.UNSUPPORTED_OPERATION,{operation:t,network:r.name});try{const t=yield this.call({to:r.ensAddress,data:"0x0178b8bf"+Yi(e).substring(2)});return this.formatter.callAddress(t)}catch(e){}return null}))}resolveName(e){return pa(this,void 0,void 0,(function*(){e=yield e;try{return Promise.resolve(this.formatter.address(e))}catch(t){if(C(e))throw t}"string"!=typeof e&&ma.throwArgumentError("invalid ENS name","name",e);const t=yield this.getResolver(e);return t?yield t.getAddress():null}))}lookupAddress(e){return pa(this,void 0,void 0,(function*(){e=yield e;const t=(e=this.formatter.address(e)).substring(2).toLowerCase()+".addr.reverse",r=yield this._getResolver(t,"lookupAddress");if(null==r)return null;const n=Ea(yield this.call({to:r,data:"0x691f3431"+Yi(t).substring(2)}),0);return(yield this.resolveName(n))!=e?null:n}))}getAvatar(e){return pa(this,void 0,void 0,(function*(){let t=null;if(C(e)){const r=this.formatter.address(e).substring(2).toLowerCase()+".addr.reverse",n=yield this._getResolver(r,"getAvatar");if(!n)return null;t=new Ta(this,n,r);try{const e=yield t.getAvatar();if(e)return e.url}catch(e){if(e.code!==b.errors.CALL_EXCEPTION)throw e}try{const e=Ea(yield this.call({to:n,data:"0x691f3431"+Yi(r).substring(2)}),0);t=yield this.getResolver(e)}catch(e){if(e.code!==b.errors.CALL_EXCEPTION)throw e;return null}}else if(t=yield this.getResolver(e),!t)return null;const r=yield t.getAvatar();return null==r?null:r.url}))}perform(e,t){return ma.throwError(e+" not implemented",b.errors.NOT_IMPLEMENTED,{operation:e})}_startEvent(e){this.polling=this._events.filter((e=>e.pollable())).length>0}_stopEvent(e){this.polling=this._events.filter((e=>e.pollable())).length>0}_addEventListener(e,t,r){const n=new Sa(ba(e),t,r);return this._events.push(n),this._startEvent(n),this}on(e,t){return this._addEventListener(e,t,!1)}once(e,t){return this._addEventListener(e,t,!0)}emit(e,...t){let r=!1,n=[],o=ba(e);return this._events=this._events.filter((e=>e.tag!==o||(setTimeout((()=>{e.listener.apply(this,t)}),0),r=!0,!e.once||(n.push(e),!1)))),n.forEach((e=>{this._stopEvent(e)})),r}listenerCount(e){if(!e)return this._events.length;let t=ba(e);return this._events.filter((e=>e.tag===t)).length}listeners(e){if(null==e)return this._events.map((e=>e.listener));let t=ba(e);return this._events.filter((e=>e.tag===t)).map((e=>e.listener))}off(e,t){if(null==t)return this.removeAllListeners(e);const r=[];let n=!1,o=ba(e);return this._events=this._events.filter((e=>e.tag!==o||e.listener!=t||!!n||(n=!0,r.push(e),!1))),r.forEach((e=>{this._stopEvent(e)})),this}removeAllListeners(e){let t=[];if(null==e)t=this._events,this._events=[];else{const r=ba(e);this._events=this._events.filter((e=>e.tag!==r||(t.push(e),!1)))}return t.forEach((e=>{this._stopEvent(e)})),this}}var Ua=function(e,t,r,n){return new(r||(r=Promise))((function(o,i){function a(e){try{u(n.next(e))}catch(e){i(e)}}function s(e){try{u(n.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,s)}u((n=n.apply(e,t||[])).next())}))};const Ja=new b(sa),Ha=["call","estimateGas"];function La(e,t){if(null==e)return null;if("string"==typeof e.message&&e.message.match("reverted")){const r=C(e.data)?e.data:null;if(!t||r)return{message:e.message,data:r}}if("object"==typeof e){for(const r in e){const n=La(e[r],t);if(n)return n}return null}if("string"==typeof e)try{return La(JSON.parse(e),t)}catch(e){}return null}function za(e,t,r){const n=r.transaction||r.signedTransaction;if("call"===e){const e=La(t,!0);if(e)return e.data;Ja.throwError("missing revert data in call exception; Transaction reverted without a reason string",b.errors.CALL_EXCEPTION,{data:"0x",transaction:n,error:t})}if("estimateGas"===e){let r=La(t.body,!1);null==r&&(r=La(t,!1)),r&&Ja.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",b.errors.UNPREDICTABLE_GAS_LIMIT,{reason:r.message,method:e,transaction:n,error:t})}let o=t.message;throw t.code===b.errors.SERVER_ERROR&&t.error&&"string"==typeof t.error.message?o=t.error.message:"string"==typeof t.body?o=t.body:"string"==typeof t.responseText&&(o=t.responseText),o=(o||"").toLowerCase(),o.match(/insufficient funds|base fee exceeds gas limit/i)&&Ja.throwError("insufficient funds for intrinsic transaction cost",b.errors.INSUFFICIENT_FUNDS,{error:t,method:e,transaction:n}),o.match(/nonce (is )?too low/i)&&Ja.throwError("nonce has already been used",b.errors.NONCE_EXPIRED,{error:t,method:e,transaction:n}),o.match(/replacement transaction underpriced|transaction gas price.*too low/i)&&Ja.throwError("replacement fee too low",b.errors.REPLACEMENT_UNDERPRICED,{error:t,method:e,transaction:n}),o.match(/only replay-protected/i)&&Ja.throwError("legacy pre-eip-155 transactions not supported",b.errors.UNSUPPORTED_OPERATION,{error:t,method:e,transaction:n}),Ha.indexOf(e)>=0&&o.match(/gas required exceeds allowance|always failing transaction|execution reverted/)&&Ja.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",b.errors.UNPREDICTABLE_GAS_LIMIT,{error:t,method:e,transaction:n}),t}function Va(e){return new Promise((function(t){setTimeout(t,e)}))}function qa(e){if(e.error){const t=new Error(e.error.message);throw t.code=e.error.code,t.data=e.error.data,t}return e.result}function Fa(e){return e?e.toLowerCase():e}const Za={};class Wa extends ur{constructor(e,t,r){if(super(),e!==Za)throw new Error("do not call the JsonRpcSigner constructor directly; use provider.getSigner");ee(this,"provider",t),null==r&&(r=0),"string"==typeof r?(ee(this,"_address",this.provider.formatter.address(r)),ee(this,"_index",null)):"number"==typeof r?(ee(this,"_index",r),ee(this,"_address",null)):Ja.throwArgumentError("invalid address or index","addressOrIndex",r)}connect(e){return Ja.throwError("cannot alter JSON-RPC Signer connection",b.errors.UNSUPPORTED_OPERATION,{operation:"connect"})}connectUnchecked(){return new Ka(Za,this.provider,this._address||this._index)}getAddress(){return this._address?Promise.resolve(this._address):this.provider.send("eth_accounts",[]).then((e=>(e.length<=this._index&&Ja.throwError("unknown account #"+this._index,b.errors.UNSUPPORTED_OPERATION,{operation:"getAddress"}),this.provider.formatter.address(e[this._index]))))}sendUncheckedTransaction(e){e=oe(e);const t=this.getAddress().then((e=>(e&&(e=e.toLowerCase()),e)));if(null==e.gasLimit){const r=oe(e);r.from=t,e.gasLimit=this.provider.estimateGas(r)}return null!=e.to&&(e.to=Promise.resolve(e.to).then((e=>Ua(this,void 0,void 0,(function*(){if(null==e)return null;const t=yield this.provider.resolveName(e);return null==t&&Ja.throwArgumentError("provided ENS name resolves to null","tx.to",e),t}))))),re({tx:re(e),sender:t}).then((({tx:t,sender:r})=>{null!=t.from?t.from.toLowerCase()!==r&&Ja.throwArgumentError("from address mismatch","transaction",e):t.from=r;const n=this.provider.constructor.hexlifyTransaction(t,{from:!0});return this.provider.send("eth_sendTransaction",[n]).then((e=>e),(e=>za("sendTransaction",e,n)))}))}signTransaction(e){return Ja.throwError("signing transactions is unsupported",b.errors.UNSUPPORTED_OPERATION,{operation:"signTransaction"})}sendTransaction(e){return Ua(this,void 0,void 0,(function*(){const t=yield this.provider._getInternalBlockNumber(100+2*this.provider.pollingInterval),r=yield this.sendUncheckedTransaction(e);try{return yield oa((()=>Ua(this,void 0,void 0,(function*(){const e=yield this.provider.getTransaction(r);if(null!==e)return this.provider._wrapTransaction(e,r,t)}))),{oncePoll:this.provider})}catch(e){throw e.transactionHash=r,e}}))}signMessage(e){return Ua(this,void 0,void 0,(function*(){const t="string"==typeof e?qe(e):e,r=yield this.getAddress();return yield this.provider.send("personal_sign",[x(t),r.toLowerCase()])}))}_legacySignMessage(e){return Ua(this,void 0,void 0,(function*(){const t="string"==typeof e?qe(e):e,r=yield this.getAddress();return yield this.provider.send("eth_sign",[r.toLowerCase(),x(t)])}))}_signTypedData(e,t,r){return Ua(this,void 0,void 0,(function*(){const n=yield lo.resolveNames(e,t,r,(e=>this.provider.resolveName(e))),o=yield this.getAddress();return yield this.provider.send("eth_signTypedData_v4",[o.toLowerCase(),JSON.stringify(lo.getPayload(n.domain,t,n.value))])}))}unlock(e){return Ua(this,void 0,void 0,(function*(){const t=this.provider,r=yield this.getAddress();return t.send("personal_unlockAccount",[r.toLowerCase(),e,null])}))}}class Ka extends Wa{sendTransaction(e){return this.sendUncheckedTransaction(e).then((e=>({hash:e,nonce:null,gasLimit:null,gasPrice:null,data:null,value:null,chainId:null,confirmations:0,from:null,wait:t=>this.provider.waitForTransaction(e,t)})))}}const Ga={chainId:!0,data:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,value:!0,type:!0,accessList:!0,maxFeePerGas:!0,maxPriorityFeePerGas:!0};class Ya extends Ba{constructor(e,t){let r=t;null==r&&(r=new Promise(((e,t)=>{setTimeout((()=>{this.detectNetwork().then((t=>{e(t)}),(e=>{t(e)}))}),0)}))),super(r),e||(e=te(this.constructor,"defaultUrl")()),ee(this,"connection","string"==typeof e?Object.freeze({url:e}):Object.freeze(oe(e))),this._nextId=42}get _cache(){return null==this._eventLoopCache&&(this._eventLoopCache={}),this._eventLoopCache}static defaultUrl(){return"http://localhost:8545"}detectNetwork(){return this._cache.detectNetwork||(this._cache.detectNetwork=this._uncachedDetectNetwork(),setTimeout((()=>{this._cache.detectNetwork=null}),0)),this._cache.detectNetwork}_uncachedDetectNetwork(){return Ua(this,void 0,void 0,(function*(){yield Va(0);let e=null;try{e=yield this.send("eth_chainId",[])}catch(t){try{e=yield this.send("net_version",[])}catch(e){}}if(null!=e){const t=te(this.constructor,"getNetwork");try{return t(K.from(e).toNumber())}catch(t){return Ja.throwError("could not detect network",b.errors.NETWORK_ERROR,{chainId:e,event:"invalidNetwork",serverError:t})}}return Ja.throwError("could not detect network",b.errors.NETWORK_ERROR,{event:"noNetwork"})}))}getSigner(e){return new Wa(Za,this,e)}getUncheckedSigner(e){return this.getSigner(e).connectUnchecked()}listAccounts(){return this.send("eth_accounts",[]).then((e=>e.map((e=>this.formatter.address(e)))))}send(e,t){const r={method:e,params:t,id:this._nextId++,jsonrpc:"2.0"};this.emit("debug",{action:"request",request:ue(r),provider:this});const n=["eth_chainId","eth_blockNumber"].indexOf(e)>=0;if(n&&this._cache[e])return this._cache[e];const o=na(this.connection,JSON.stringify(r),qa).then((e=>(this.emit("debug",{action:"response",request:r,response:e,provider:this}),e)),(e=>{throw this.emit("debug",{action:"response",error:e,request:r,provider:this}),e}));return n&&(this._cache[e]=o,setTimeout((()=>{this._cache[e]=null}),0)),o}prepareRequest(e,t){switch(e){case"getBlockNumber":return["eth_blockNumber",[]];case"getGasPrice":return["eth_gasPrice",[]];case"getBalance":return["eth_getBalance",[Fa(t.address),t.blockTag]];case"getTransactionCount":return["eth_getTransactionCount",[Fa(t.address),t.blockTag]];case"getCode":return["eth_getCode",[Fa(t.address),t.blockTag]];case"getStorageAt":return["eth_getStorageAt",[Fa(t.address),B(t.position,32),t.blockTag]];case"sendTransaction":return["eth_sendRawTransaction",[t.signedTransaction]];case"getBlock":return t.blockTag?["eth_getBlockByNumber",[t.blockTag,!!t.includeTransactions]]:t.blockHash?["eth_getBlockByHash",[t.blockHash,!!t.includeTransactions]]:null;case"getTransaction":return["eth_getTransactionByHash",[t.transactionHash]];case"getTransactionReceipt":return["eth_getTransactionReceipt",[t.transactionHash]];case"call":return["eth_call",[te(this.constructor,"hexlifyTransaction")(t.transaction,{from:!0}),t.blockTag]];case"estimateGas":return["eth_estimateGas",[te(this.constructor,"hexlifyTransaction")(t.transaction,{from:!0})]];case"getLogs":return t.filter&&null!=t.filter.address&&(t.filter.address=Fa(t.filter.address)),["eth_getLogs",[t.filter]]}return null}perform(e,t){return Ua(this,void 0,void 0,(function*(){if("call"===e||"estimateGas"===e){const e=t.transaction;if(e&&null!=e.type&&K.from(e.type).isZero()&&null==e.maxFeePerGas&&null==e.maxPriorityFeePerGas){const r=yield this.getFeeData();null==r.maxFeePerGas&&null==r.maxPriorityFeePerGas&&((t=oe(t)).transaction=oe(e),delete t.transaction.type)}}const r=this.prepareRequest(e,t);null==r&&Ja.throwError(e+" not implemented",b.errors.NOT_IMPLEMENTED,{operation:e});try{return yield this.send(r[0],r[1])}catch(r){return za(e,r,t)}}))}_startEvent(e){"pending"===e.tag&&this._startPending(),super._startEvent(e)}_startPending(){if(null!=this._pendingFilter)return;const e=this,t=this.send("eth_newPendingTransactionFilter",[]);this._pendingFilter=t,t.then((function(r){return function n(){e.send("eth_getFilterChanges",[r]).then((function(r){if(e._pendingFilter!=t)return null;let n=Promise.resolve();return r.forEach((function(t){e._emitted["t:"+t.toLowerCase()]="pending",n=n.then((function(){return e.getTransaction(t).then((function(t){return e.emit("pending",t),null}))}))})),n.then((function(){return Va(1e3)}))})).then((function(){if(e._pendingFilter==t)return setTimeout((function(){n()}),0),null;e.send("eth_uninstallFilter",[r])})).catch((e=>{}))}(),r})).catch((e=>{}))}_stopEvent(e){"pending"===e.tag&&0===this.listenerCount("pending")&&(this._pendingFilter=null),super._stopEvent(e)}static hexlifyTransaction(e,t){const r=oe(Ga);if(t)for(const e in t)t[e]&&(r[e]=!0);ne(e,r);const n={};return["chainId","gasLimit","gasPrice","type","maxFeePerGas","maxPriorityFeePerGas","nonce","value"].forEach((function(t){if(null==e[t])return;const r=j(K.from(e[t]));"gasLimit"===t&&(t="gas"),n[t]=r})),["from","to","data"].forEach((function(t){null!=e[t]&&(n[t]=x(e[t]))})),e.accessList&&(n.accessList=ln(e.accessList)),n}}let $a=null;try{if($a=WebSocket,null==$a)throw new Error("inject please")}catch(e){const t=new b(sa);$a=function(){t.throwError("WebSockets not supported in this environment",b.errors.UNSUPPORTED_OPERATION,{operation:"new WebSocket()"})}}var Xa=function(e,t,r,n){return new(r||(r=Promise))((function(o,i){function a(e){try{u(n.next(e))}catch(e){i(e)}}function s(e){try{u(n.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,s)}u((n=n.apply(e,t||[])).next())}))};const Qa=new b(sa);let es=1;class ts extends Ya{constructor(e,t){"any"===t&&Qa.throwError("WebSocketProvider does not support 'any' network yet",b.errors.UNSUPPORTED_OPERATION,{operation:"network:any"}),super("string"==typeof e?e:"_websocket",t),this._pollingInterval=-1,this._wsReady=!1,ee(this,"_websocket","string"==typeof e?new $a(this.connection.url):e),ee(this,"_requests",{}),ee(this,"_subs",{}),ee(this,"_subIds",{}),ee(this,"_detectNetwork",super.detectNetwork()),this.websocket.onopen=()=>{this._wsReady=!0,Object.keys(this._requests).forEach((e=>{this.websocket.send(this._requests[e].payload)}))},this.websocket.onmessage=e=>{const t=e.data,r=JSON.parse(t);if(null!=r.id){const e=String(r.id),n=this._requests[e];if(delete this._requests[e],void 0!==r.result)n.callback(null,r.result),this.emit("debug",{action:"response",request:JSON.parse(n.payload),response:r.result,provider:this});else{let e=null;r.error?(e=new Error(r.error.message||"unknown error"),ee(e,"code",r.error.code||null),ee(e,"response",t)):e=new Error("unknown error"),n.callback(e,void 0),this.emit("debug",{action:"response",error:e,request:JSON.parse(n.payload),provider:this})}}else if("eth_subscription"===r.method){const e=this._subs[r.params.subscription];e&&e.processFunc(r.params.result)}else console.warn("this should not happen")};const r=setInterval((()=>{this.emit("poll")}),1e3);r.unref&&r.unref()}get websocket(){return this._websocket}detectNetwork(){return this._detectNetwork}get pollingInterval(){return 0}resetEventsBlock(e){Qa.throwError("cannot reset events block on WebSocketProvider",b.errors.UNSUPPORTED_OPERATION,{operation:"resetEventBlock"})}set pollingInterval(e){Qa.throwError("cannot set polling interval on WebSocketProvider",b.errors.UNSUPPORTED_OPERATION,{operation:"setPollingInterval"})}poll(){return Xa(this,void 0,void 0,(function*(){return null}))}set polling(e){e&&Qa.throwError("cannot set polling on WebSocketProvider",b.errors.UNSUPPORTED_OPERATION,{operation:"setPolling"})}send(e,t){const r=es++;return new Promise(((n,o)=>{const i=JSON.stringify({method:e,params:t,id:r,jsonrpc:"2.0"});this.emit("debug",{action:"request",request:JSON.parse(i),provider:this}),this._requests[String(r)]={callback:function(e,t){return e?o(e):n(t)},payload:i},this._wsReady&&this.websocket.send(i)}))}static defaultUrl(){return"ws://localhost:8546"}_subscribe(e,t,r){return Xa(this,void 0,void 0,(function*(){let n=this._subIds[e];null==n&&(n=Promise.all(t).then((e=>this.send("eth_subscribe",e))),this._subIds[e]=n);const o=yield n;this._subs[o]={tag:e,processFunc:r}}))}_startEvent(e){switch(e.type){case"block":this._subscribe("block",["newHeads"],(e=>{const t=K.from(e.number).toNumber();this._emitted.block=t,this.emit("block",t)}));break;case"pending":this._subscribe("pending",["newPendingTransactions"],(e=>{this.emit("pending",e)}));break;case"filter":this._subscribe(e.tag,["logs",this._getFilter(e.filter)],(t=>{null==t.removed&&(t.removed=!1),this.emit(e.filter,this.formatter.filterLog(t))}));break;case"tx":{const t=e=>{const t=e.hash;this.getTransactionReceipt(t).then((e=>{e&&this.emit(t,e)}))};t(e),this._subscribe("tx",["newHeads"],(e=>{this._events.filter((e=>"tx"===e.type)).forEach(t)}));break}case"debug":case"poll":case"willPoll":case"didPoll":case"error":break;default:console.log("unhandled:",e)}}_stopEvent(e){let t=e.tag;if("tx"===e.type){if(this._events.filter((e=>"tx"===e.type)).length)return;t="tx"}else if(this.listenerCount(e.event))return;const r=this._subIds[t];r&&(delete this._subIds[t],r.then((e=>{this._subs[e]&&(delete this._subs[e],this.send("eth_unsubscribe",[e]))})))}destroy(){return Xa(this,void 0,void 0,(function*(){this.websocket.readyState===$a.CONNECTING&&(yield new Promise((e=>{this.websocket.onopen=function(){e(!0)},this.websocket.onerror=function(){e(!1)}}))),this.websocket.close(1e3)}))}}const rs=new b(sa);class ns extends Ya{detectNetwork(){const e=Object.create(null,{detectNetwork:{get:()=>super.detectNetwork}});return t=this,r=void 0,o=function*(){let t=this.network;return null==t&&(t=yield e.detectNetwork.call(this),t||rs.throwError("no network detected",b.errors.UNKNOWN_ERROR,{}),null==this._network&&(ee(this,"_network",t),this.emit("network",t,null))),t},new((n=void 0)||(n=Promise))((function(e,i){function a(e){try{u(o.next(e))}catch(e){i(e)}}function s(e){try{u(o.throw(e))}catch(e){i(e)}}function u(t){var r;t.done?e(t.value):(r=t.value,r instanceof n?r:new n((function(e){e(r)}))).then(a,s)}u((o=o.apply(t,r||[])).next())}));var t,r,n,o}}class os extends ns{constructor(e,t){rs.checkAbstract(new.target,os),e=te(new.target,"getNetwork")(e),t=te(new.target,"getApiKey")(t),super(te(new.target,"getUrl")(e,t),e),"string"==typeof t?ee(this,"apiKey",t):null!=t&&Object.keys(t).forEach((e=>{ee(this,e,t[e])}))}_startPending(){rs.warn("WARNING: API provider does not support pending filters")}isCommunityResource(){return!1}getSigner(e){return rs.throwError("API provider does not support signing",b.errors.UNSUPPORTED_OPERATION,{operation:"getSigner"})}listAccounts(){return Promise.resolve([])}static getApiKey(e){return e}static getUrl(e,t){return rs.throwError("not implemented; sub-classes must override getUrl",b.errors.NOT_IMPLEMENTED,{operation:"getUrl"})}}const is=new b(sa),as="_gg7wSSi0KMBsdKnGVfHDueq6xMB9EkC";class ss extends ts{constructor(e,t){const r=new us(e,t);super(r.connection.url.replace(/^http/i,"ws").replace(".alchemyapi.",".ws.alchemyapi."),r.network),ee(this,"apiKey",r.apiKey)}isCommunityResource(){return this.apiKey===as}}class us extends os{static getWebSocketProvider(e,t){return new ss(e,t)}static getApiKey(e){return null==e?as:(e&&"string"!=typeof e&&is.throwArgumentError("invalid apiKey","apiKey",e),e)}static getUrl(e,t){let r=null;switch(e.name){case"homestead":r="eth-mainnet.alchemyapi.io/v2/";break;case"ropsten":r="eth-ropsten.alchemyapi.io/v2/";break;case"rinkeby":r="eth-rinkeby.alchemyapi.io/v2/";break;case"goerli":r="eth-goerli.alchemyapi.io/v2/";break;case"kovan":r="eth-kovan.alchemyapi.io/v2/";break;case"matic":r="polygon-mainnet.g.alchemy.com/v2/";break;case"maticmum":r="polygon-mumbai.g.alchemy.com/v2/";break;case"arbitrum":r="arb-mainnet.g.alchemy.com/v2/";break;case"arbitrum-rinkeby":r="arb-rinkeby.g.alchemy.com/v2/";break;case"optimism":r="opt-mainnet.g.alchemy.com/v2/";break;case"optimism-kovan":r="opt-kovan.g.alchemy.com/v2/";break;default:is.throwArgumentError("unsupported network","network",arguments[0])}return{allowGzip:!0,url:"https://"+r+t,throttleCallback:(e,r)=>(t===as&&ha(),Promise.resolve(!0))}}isCommunityResource(){return this.apiKey===as}}const cs=new b(sa),ds="9f7d929b018cdffb338517efa06f58359e86ff1ffd350bc889738523659e7972";function ls(e){switch(e){case"homestead":return"rpc.ankr.com/eth/";case"ropsten":return"rpc.ankr.com/eth_ropsten/";case"rinkeby":return"rpc.ankr.com/eth_rinkeby/";case"goerli":return"rpc.ankr.com/eth_goerli/";case"matic":return"rpc.ankr.com/polygon/";case"arbitrum":return"rpc.ankr.com/arbitrum/"}return cs.throwArgumentError("unsupported network","name",e)}class fs extends os{isCommunityResource(){return this.apiKey===ds}static getApiKey(e){return null==e?ds:e}static getUrl(e,t){null==t&&(t=ds);const r={allowGzip:!0,url:"https://"+ls(e.name)+t,throttleCallback:(e,r)=>(t.apiKey===ds&&ha(),Promise.resolve(!0))};return null!=t.projectSecret&&(r.user="",r.password=t.projectSecret),r}}const hs=new b(sa);class ps extends os{static getApiKey(e){return null!=e&&hs.throwArgumentError("apiKey not supported for cloudflare","apiKey",e),null}static getUrl(e,t){let r=null;return"homestead"===e.name?r="https://cloudflare-eth.com/":hs.throwArgumentError("unsupported network","network",arguments[0]),r}perform(e,t){const r=Object.create(null,{perform:{get:()=>super.perform}});return n=this,o=void 0,a=function*(){return"getBlockNumber"===e?(yield r.perform.call(this,"getBlock",{blockTag:"latest"})).number:r.perform.call(this,e,t)},new((i=void 0)||(i=Promise))((function(e,t){function r(e){try{u(a.next(e))}catch(e){t(e)}}function s(e){try{u(a.throw(e))}catch(e){t(e)}}function u(t){var n;t.done?e(t.value):(n=t.value,n instanceof i?n:new i((function(e){e(n)}))).then(r,s)}u((a=a.apply(n,o||[])).next())}));var n,o,i,a}}var ms=function(e,t,r,n){return new(r||(r=Promise))((function(o,i){function a(e){try{u(n.next(e))}catch(e){i(e)}}function s(e){try{u(n.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,s)}u((n=n.apply(e,t||[])).next())}))};const gs=new b(sa);function vs(e){const t={};for(let r in e){if(null==e[r])continue;let n=e[r];"type"===r&&0===n||(n={type:!0,gasLimit:!0,gasPrice:!0,maxFeePerGs:!0,maxPriorityFeePerGas:!0,nonce:!0,value:!0}[r]?j(x(n)):"accessList"===r?"["+ln(n).map((e=>`{address:"${e.address}",storageKeys:["${e.storageKeys.join('","')}"]}`)).join(",")+"]":x(n),t[r]=n)}return t}function bs(e){if(0==e.status&&("No records found"===e.message||"No transactions found"===e.message))return e.result;if(1!=e.status||"OK"!=e.message){const t=new Error("invalid response");throw t.result=JSON.stringify(e),(e.result||"").toLowerCase().indexOf("rate limit")>=0&&(t.throttleRetry=!0),t}return e.result}function ys(e){if(e&&0==e.status&&"NOTOK"==e.message&&(e.result||"").toLowerCase().indexOf("rate limit")>=0){const t=new Error("throttled response");throw t.result=JSON.stringify(e),t.throttleRetry=!0,t}if("2.0"!=e.jsonrpc){const t=new Error("invalid response");throw t.result=JSON.stringify(e),t}if(e.error){const t=new Error(e.error.message||"unknown error");throw e.error.code&&(t.code=e.error.code),e.error.data&&(t.data=e.error.data),t}return e.result}function ws(e){if("pending"===e)throw new Error("pending not supported");return"latest"===e?e:parseInt(e.substring(2),16)}const _s="9D13ZE7XSBTJ94N9BNJ2MA33VMAY2YPIRB";function Ss(e,t,r){if("call"===e&&t.code===b.errors.SERVER_ERROR){const e=t.error;if(e&&(e.message.match(/reverted/i)||e.message.match(/VM execution error/i))){let r=e.data;if(r&&(r="0x"+r.replace(/^.*0x/i,"")),C(r))return r;gs.throwError("missing revert data in call exception",b.errors.CALL_EXCEPTION,{error:t,data:"0x"})}}let n=t.message;throw t.code===b.errors.SERVER_ERROR&&(t.error&&"string"==typeof t.error.message?n=t.error.message:"string"==typeof t.body?n=t.body:"string"==typeof t.responseText&&(n=t.responseText)),n=(n||"").toLowerCase(),n.match(/insufficient funds/)&&gs.throwError("insufficient funds for intrinsic transaction cost",b.errors.INSUFFICIENT_FUNDS,{error:t,method:e,transaction:r}),n.match(/same hash was already imported|transaction nonce is too low|nonce too low/)&&gs.throwError("nonce has already been used",b.errors.NONCE_EXPIRED,{error:t,method:e,transaction:r}),n.match(/another transaction with same nonce/)&&gs.throwError("replacement fee too low",b.errors.REPLACEMENT_UNDERPRICED,{error:t,method:e,transaction:r}),n.match(/execution failed due to an exception|execution reverted/)&&gs.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",b.errors.UNPREDICTABLE_GAS_LIMIT,{error:t,method:e,transaction:r}),t}class Os extends Ba{constructor(e,t){super(e),ee(this,"baseUrl",this.getBaseUrl()),ee(this,"apiKey",t||_s)}getBaseUrl(){switch(this.network?this.network.name:"invalid"){case"homestead":return"https://api.etherscan.io";case"ropsten":return"https://api-ropsten.etherscan.io";case"rinkeby":return"https://api-rinkeby.etherscan.io";case"kovan":return"https://api-kovan.etherscan.io";case"goerli":return"https://api-goerli.etherscan.io";case"optimism":return"https://api-optimistic.etherscan.io"}return gs.throwArgumentError("unsupported network","network",this.network.name)}getUrl(e,t){const r=Object.keys(t).reduce(((e,r)=>{const n=t[r];return null!=n&&(e+=`&${r}=${n}`),e}),""),n=this.apiKey?`&apikey=${this.apiKey}`:"";return`${this.baseUrl}/api?module=${e}${r}${n}`}getPostUrl(){return`${this.baseUrl}/api`}getPostData(e,t){return t.module=e,t.apikey=this.apiKey,t}fetch(e,t,r){return ms(this,void 0,void 0,(function*(){const n=r?this.getPostUrl():this.getUrl(e,t),o=r?this.getPostData(e,t):null,i="proxy"===e?ys:bs;this.emit("debug",{action:"request",request:n,provider:this});const a={url:n,throttleSlotInterval:1e3,throttleCallback:(e,t)=>(this.isCommunityResource()&&ha(),Promise.resolve(!0))};let s=null;o&&(a.headers={"content-type":"application/x-www-form-urlencoded; charset=UTF-8"},s=Object.keys(o).map((e=>`${e}=${o[e]}`)).join("&"));const u=yield na(a,s,i||ys);return this.emit("debug",{action:"response",request:n,response:ue(u),provider:this}),u}))}detectNetwork(){return ms(this,void 0,void 0,(function*(){return this.network}))}perform(e,t){const r=Object.create(null,{perform:{get:()=>super.perform}});return ms(this,void 0,void 0,(function*(){switch(e){case"getBlockNumber":return this.fetch("proxy",{action:"eth_blockNumber"});case"getGasPrice":return this.fetch("proxy",{action:"eth_gasPrice"});case"getBalance":return this.fetch("account",{action:"balance",address:t.address,tag:t.blockTag});case"getTransactionCount":return this.fetch("proxy",{action:"eth_getTransactionCount",address:t.address,tag:t.blockTag});case"getCode":return this.fetch("proxy",{action:"eth_getCode",address:t.address,tag:t.blockTag});case"getStorageAt":return this.fetch("proxy",{action:"eth_getStorageAt",address:t.address,position:t.position,tag:t.blockTag});case"sendTransaction":return this.fetch("proxy",{action:"eth_sendRawTransaction",hex:t.signedTransaction},!0).catch((e=>Ss("sendTransaction",e,t.signedTransaction)));case"getBlock":if(t.blockTag)return this.fetch("proxy",{action:"eth_getBlockByNumber",tag:t.blockTag,boolean:t.includeTransactions?"true":"false"});throw new Error("getBlock by blockHash not implemented");case"getTransaction":return this.fetch("proxy",{action:"eth_getTransactionByHash",txhash:t.transactionHash});case"getTransactionReceipt":return this.fetch("proxy",{action:"eth_getTransactionReceipt",txhash:t.transactionHash});case"call":{if("latest"!==t.blockTag)throw new Error("EtherscanProvider does not support blockTag for call");const e=vs(t.transaction);e.module="proxy",e.action="eth_call";try{return yield this.fetch("proxy",e,!0)}catch(e){return Ss("call",e,t.transaction)}}case"estimateGas":{const e=vs(t.transaction);e.module="proxy",e.action="eth_estimateGas";try{return yield this.fetch("proxy",e,!0)}catch(e){return Ss("estimateGas",e,t.transaction)}}case"getLogs":{const e={action:"getLogs"};if(t.filter.fromBlock&&(e.fromBlock=ws(t.filter.fromBlock)),t.filter.toBlock&&(e.toBlock=ws(t.filter.toBlock)),t.filter.address&&(e.address=t.filter.address),t.filter.topics&&t.filter.topics.length>0&&(t.filter.topics.length>1&&gs.throwError("unsupported topic count",b.errors.UNSUPPORTED_OPERATION,{topics:t.filter.topics}),1===t.filter.topics.length)){const r=t.filter.topics[0];"string"==typeof r&&66===r.length||gs.throwError("unsupported topic format",b.errors.UNSUPPORTED_OPERATION,{topic0:r}),e.topic0=r}const r=yield this.fetch("logs",e);let n={};for(let e=0;e{["contractAddress","to"].forEach((function(t){""==e[t]&&delete e[t]})),null==e.creates&&null!=e.contractAddress&&(e.creates=e.contractAddress);const t=this.formatter.transactionResponse(e);return e.timeStamp&&(t.timestamp=parseInt(e.timeStamp)),t}))}))}isCommunityResource(){return this.apiKey===_s}}function ks(e){for(let t=(e=e.slice()).length-1;t>0;t--){const r=Math.floor(Math.random()*(t+1)),n=e[t];e[t]=e[r],e[r]=n}return e}var As=function(e,t,r,n){return new(r||(r=Promise))((function(o,i){function a(e){try{u(n.next(e))}catch(e){i(e)}}function s(e){try{u(n.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,s)}u((n=n.apply(e,t||[])).next())}))};const Ps=new b(sa);function Ms(){return(new Date).getTime()}function Es(e){let t=null;for(let r=0;rt?null:(n+o)/2}function Ns(e){if(null===e)return"null";if("number"==typeof e||"boolean"==typeof e)return JSON.stringify(e);if("string"==typeof e)return e;if(K.isBigNumber(e))return e.toString();if(Array.isArray(e))return JSON.stringify(e.map((e=>Ns(e))));if("object"==typeof e){const t=Object.keys(e);return t.sort(),"{"+t.map((t=>{let r=e[t];return r="function"==typeof r?"[function]":Ns(r),JSON.stringify(t)+":"+r})).join(",")+"}"}throw new Error("unknown value type: "+typeof e)}let xs=1;function Rs(e){let t=null,r=null,n=new Promise((n=>{t=function(){r&&(clearTimeout(r),r=null),n()},r=setTimeout(t,e)}));return{cancel:t,getPromise:function(){return n},wait:e=>(n=n.then(e),n)}}const Is=[b.errors.CALL_EXCEPTION,b.errors.INSUFFICIENT_FUNDS,b.errors.NONCE_EXPIRED,b.errors.REPLACEMENT_UNDERPRICED,b.errors.UNPREDICTABLE_GAS_LIMIT],Ts=["address","args","errorArgs","errorSignature","method","transaction"];function js(e,t){const r={weight:e.weight};return Object.defineProperty(r,"provider",{get:()=>e.provider}),e.start&&(r.start=e.start),t&&(r.duration=t-e.start),e.done&&(e.error?r.error=e.error:r.result=e.result||null),r}function Ds(e,t){return As(this,void 0,void 0,(function*(){const r=e.provider;return null!=r.blockNumber&&r.blockNumber>=t||-1===t?r:oa((()=>new Promise(((n,o)=>{setTimeout((function(){return r.blockNumber>=t?n(r):e.cancelled?n(null):n(void 0)}),0)}))),{oncePoll:r})}))}function Bs(e,t,r,n){return As(this,void 0,void 0,(function*(){let o=e.provider;switch(r){case"getBlockNumber":case"getGasPrice":return o[r]();case"getEtherPrice":if(o.getEtherPrice)return o.getEtherPrice();break;case"getBalance":case"getTransactionCount":case"getCode":return n.blockTag&&C(n.blockTag)&&(o=yield Ds(e,t)),o[r](n.address,n.blockTag||"latest");case"getStorageAt":return n.blockTag&&C(n.blockTag)&&(o=yield Ds(e,t)),o.getStorageAt(n.address,n.position,n.blockTag||"latest");case"getBlock":return n.blockTag&&C(n.blockTag)&&(o=yield Ds(e,t)),o[n.includeTransactions?"getBlockWithTransactions":"getBlock"](n.blockTag||n.blockHash);case"call":case"estimateGas":return n.blockTag&&C(n.blockTag)&&(o=yield Ds(e,t)),o[r](n.transaction);case"getTransaction":case"getTransactionReceipt":return o[r](n.transactionHash);case"getLogs":{let r=n.filter;return(r.fromBlock&&C(r.fromBlock)||r.toBlock&&C(r.toBlock))&&(o=yield Ds(e,t)),o.getLogs(r)}}return Ps.throwError("unknown method error",b.errors.UNKNOWN_ERROR,{method:r,params:n})}))}class Us extends Ba{constructor(e,t){0===e.length&&Ps.throwArgumentError("missing providers","providers",e);const r=e.map(((e,t)=>{if(nr.isProvider(e)){const t=la(e)?2e3:750,r=1;return Object.freeze({provider:e,weight:1,stallTimeout:t,priority:r})}const r=oe(e);null==r.priority&&(r.priority=1),null==r.stallTimeout&&(r.stallTimeout=la(e)?2e3:750),null==r.weight&&(r.weight=1);const n=r.weight;return(n%1||n>512||n<1)&&Ps.throwArgumentError("invalid weight; must be integer in [1, 512]",`providers[${t}].weight`,n),Object.freeze(r)})),n=r.reduce(((e,t)=>e+t.weight),0);null==t?t=n/2:t>n&&Ps.throwArgumentError("quorum will always fail; larger than total weight","quorum",t);let o=Es(r.map((e=>e.provider.network)));null==o&&(o=new Promise(((e,t)=>{setTimeout((()=>{this.detectNetwork().then(e,t)}),0)}))),super(o),ee(this,"providerConfigs",Object.freeze(r)),ee(this,"quorum",t),this._highestBlockNumber=-1}detectNetwork(){return As(this,void 0,void 0,(function*(){return Es(yield Promise.all(this.providerConfigs.map((e=>e.provider.getNetwork()))))}))}perform(e,t){return As(this,void 0,void 0,(function*(){if("sendTransaction"===e){const e=yield Promise.all(this.providerConfigs.map((e=>e.provider.sendTransaction(t.signedTransaction).then((e=>e.hash),(e=>e)))));for(let t=0;te.result));let n=Cs(t.map((e=>e.result)),2);if(null!=n)return n=Math.ceil(n),r.indexOf(n+1)>=0&&n++,n>=e._highestBlockNumber&&(e._highestBlockNumber=n),e._highestBlockNumber};case"getGasPrice":return function(e){const t=e.map((e=>e.result));return t.sort(),t[Math.floor(t.length/2)]};case"getEtherPrice":return function(e){return Cs(e.map((e=>e.result)))};case"getBalance":case"getTransactionCount":case"getCode":case"getStorageAt":case"call":case"estimateGas":case"getLogs":break;case"getTransaction":case"getTransactionReceipt":n=function(e){return null==e?null:((e=oe(e)).confirmations=-1,Ns(e))};break;case"getBlock":n=r.includeTransactions?function(e){return null==e?null:((e=oe(e)).transactions=e.transactions.map((e=>((e=oe(e)).confirmations=-1,e))),Ns(e))}:function(e){return null==e?null:Ns(e)};break;default:throw new Error("unknown method: "+t)}return function(e,t){return function(r){const n={};r.forEach((t=>{const r=e(t.result);n[r]||(n[r]={count:0,result:t.result}),n[r].count++}));const o=Object.keys(n);for(let e=0;e=t)return r.result}}}(n,e.quorum)}(this,e,t),n=ks(this.providerConfigs.map(oe));n.sort(((e,t)=>e.priority-t.priority));const o=this._highestBlockNumber;let i=0,a=!0;for(;;){const s=Ms();let u=n.filter((e=>e.runner&&s-e.starte+t.weight),0);for(;u{r.staller=null})),r.runner=Bs(r,o,e,t).then((n=>{r.done=!0,r.result=n,this.listenerCount("debug")&&this.emit("debug",{action:"request",rid:a,backend:js(r,Ms()),request:{method:e,params:ue(t)},provider:this})}),(n=>{r.done=!0,r.error=n,this.listenerCount("debug")&&this.emit("debug",{action:"request",rid:a,backend:js(r,Ms()),request:{method:e,params:ue(t)},provider:this})})),this.listenerCount("debug")&&this.emit("debug",{action:"request",rid:a,backend:js(r,null),request:{method:e,params:ue(t)},provider:this}),u+=r.weight}const c=[];n.forEach((e=>{!e.done&&e.runner&&(c.push(e.runner),e.staller&&c.push(e.staller.getPromise()))})),c.length&&(yield Promise.race(c));const d=n.filter((e=>e.done&&null==e.error));if(d.length>=this.quorum){const e=r(d);if(void 0!==e)return n.forEach((e=>{e.staller&&e.staller.cancel(),e.cancelled=!0})),e;a||(yield Rs(100).getPromise()),a=!1}const l=n.reduce(((e,t)=>{if(!t.done||null==t.error)return e;const r=t.error.code;return Is.indexOf(r)>=0&&(e[r]||(e[r]={error:t.error,weight:0}),e[r].weight+=t.weight),e}),{});if(Object.keys(l).forEach((e=>{const t=l[e];if(t.weight{e.staller&&e.staller.cancel(),e.cancelled=!0}));const r=t.error,o={};Ts.forEach((e=>{null!=r[e]&&(o[e]=r[e])})),Ps.throwError(r.reason||r.message,e,o)})),0===n.filter((e=>!e.done)).length)break}return n.forEach((e=>{e.staller&&e.staller.cancel(),e.cancelled=!0})),Ps.throwError("failed to meet quorum",b.errors.SERVER_ERROR,{method:e,params:t,results:n.map((e=>js(e))),provider:this})}))}}const Js=null,Hs=new b(sa),Ls="84842078b09946638c03157f83405213";class zs extends ts{constructor(e,t){const r=new Vs(e,t),n=r.connection;n.password&&Hs.throwError("INFURA WebSocket project secrets unsupported",b.errors.UNSUPPORTED_OPERATION,{operation:"InfuraProvider.getWebSocketProvider()"}),super(n.url.replace(/^http/i,"ws").replace("/v3/","/ws/v3/"),e),ee(this,"apiKey",r.projectId),ee(this,"projectId",r.projectId),ee(this,"projectSecret",r.projectSecret)}isCommunityResource(){return this.projectId===Ls}}class Vs extends os{static getWebSocketProvider(e,t){return new zs(e,t)}static getApiKey(e){const t={apiKey:Ls,projectId:Ls,projectSecret:null};return null==e||("string"==typeof e?t.projectId=e:null!=e.projectSecret?(Hs.assertArgument("string"==typeof e.projectId,"projectSecret requires a projectId","projectId",e.projectId),Hs.assertArgument("string"==typeof e.projectSecret,"invalid projectSecret","projectSecret","[REDACTED]"),t.projectId=e.projectId,t.projectSecret=e.projectSecret):e.projectId&&(t.projectId=e.projectId),t.apiKey=t.projectId),t}static getUrl(e,t){let r=null;switch(e?e.name:"unknown"){case"homestead":r="mainnet.infura.io";break;case"ropsten":r="ropsten.infura.io";break;case"rinkeby":r="rinkeby.infura.io";break;case"kovan":r="kovan.infura.io";break;case"goerli":r="goerli.infura.io";break;case"matic":r="polygon-mainnet.infura.io";break;case"maticmum":r="polygon-mumbai.infura.io";break;case"optimism":r="optimism-mainnet.infura.io";break;case"optimism-kovan":r="optimism-kovan.infura.io";break;case"arbitrum":r="arbitrum-mainnet.infura.io";break;case"arbitrum-rinkeby":r="arbitrum-rinkeby.infura.io";break;default:Hs.throwError("unsupported network",b.errors.INVALID_ARGUMENT,{argument:"network",value:e})}const n={allowGzip:!0,url:"https://"+r+"/v3/"+t.projectId,throttleCallback:(e,r)=>(t.projectId===Ls&&ha(),Promise.resolve(!0))};return null!=t.projectSecret&&(n.user="",n.password=t.projectSecret),n}isCommunityResource(){return this.projectId===Ls}}class qs extends Ya{send(e,t){const r={method:e,params:t,id:this._nextId++,jsonrpc:"2.0"};null==this._pendingBatch&&(this._pendingBatch=[]);const n={request:r,resolve:null,reject:null},o=new Promise(((e,t)=>{n.resolve=e,n.reject=t}));return this._pendingBatch.push(n),this._pendingBatchAggregator||(this._pendingBatchAggregator=setTimeout((()=>{const e=this._pendingBatch;this._pendingBatch=null,this._pendingBatchAggregator=null;const t=e.map((e=>e.request));return this.emit("debug",{action:"requestBatch",request:ue(t),provider:this}),na(this.connection,JSON.stringify(t)).then((r=>{this.emit("debug",{action:"response",request:t,response:r,provider:this}),e.forEach(((e,t)=>{const n=r[t];if(n.error){const t=new Error(n.error.message);t.code=n.error.code,t.data=n.error.data,e.reject(t)}else e.resolve(n.result)}))}),(r=>{this.emit("debug",{action:"response",error:r,request:t,provider:this}),e.forEach((e=>{e.reject(r)}))}))}),10)),o}}const Fs=new b(sa);class Zs extends os{static getApiKey(e){return e&&"string"!=typeof e&&Fs.throwArgumentError("invalid apiKey","apiKey",e),e||"ETHERS_JS_SHARED"}static getUrl(e,t){Fs.warn("NodeSmith will be discontinued on 2019-12-20; please migrate to another platform.");let r=null;switch(e.name){case"homestead":r="https://ethereum.api.nodesmith.io/v1/mainnet/jsonrpc";break;case"ropsten":r="https://ethereum.api.nodesmith.io/v1/ropsten/jsonrpc";break;case"rinkeby":r="https://ethereum.api.nodesmith.io/v1/rinkeby/jsonrpc";break;case"goerli":r="https://ethereum.api.nodesmith.io/v1/goerli/jsonrpc";break;case"kovan":r="https://ethereum.api.nodesmith.io/v1/kovan/jsonrpc";break;default:Fs.throwArgumentError("unsupported network","network",arguments[0])}return r+"?apiKey="+t}}const Ws=new b(sa),Ks={homestead:"6004bcd10040261633ade990",ropsten:"6004bd4d0040261633ade991",rinkeby:"6004bda20040261633ade994",goerli:"6004bd860040261633ade992"};class Gs extends os{constructor(e,t){if(null==t){const r=te(new.target,"getNetwork")(e);if(r){const e=Ks[r.name];e&&(t={applicationId:e,loadBalancer:!0})}null==t&&Ws.throwError("unsupported network",b.errors.INVALID_ARGUMENT,{argument:"network",value:e})}super(e,t)}static getApiKey(e){null==e&&Ws.throwArgumentError("PocketProvider.getApiKey does not support null apiKey","apiKey",e);const t={applicationId:null,loadBalancer:!1,applicationSecretKey:null};return"string"==typeof e?t.applicationId=e:null!=e.applicationSecretKey?(Ws.assertArgument("string"==typeof e.applicationId,"applicationSecretKey requires an applicationId","applicationId",e.applicationId),Ws.assertArgument("string"==typeof e.applicationSecretKey,"invalid applicationSecretKey","applicationSecretKey","[REDACTED]"),t.applicationId=e.applicationId,t.applicationSecretKey=e.applicationSecretKey,t.loadBalancer=!!e.loadBalancer):e.applicationId?(Ws.assertArgument("string"==typeof e.applicationId,"apiKey.applicationId must be a string","apiKey.applicationId",e.applicationId),t.applicationId=e.applicationId,t.loadBalancer=!!e.loadBalancer):Ws.throwArgumentError("unsupported PocketProvider apiKey","apiKey",e),t}static getUrl(e,t){let r=null;switch(e?e.name:"unknown"){case"homestead":r="eth-mainnet.gateway.pokt.network";break;case"ropsten":r="eth-ropsten.gateway.pokt.network";break;case"rinkeby":r="eth-rinkeby.gateway.pokt.network";break;case"goerli":r="eth-goerli.gateway.pokt.network";break;default:Ws.throwError("unsupported network",b.errors.INVALID_ARGUMENT,{argument:"network",value:e})}let n=null;n=t.loadBalancer?`https://${r}/v1/lb/${t.applicationId}`:`https://${r}/v1/${t.applicationId}`;const o={url:n,headers:{}};return null!=t.applicationSecretKey&&(o.user="",o.password=t.applicationSecretKey),o}isCommunityResource(){return this.applicationId===Ks[this.network.name]}}const Ys=new b(sa);let $s=1;function Xs(e,t){const r="Web3LegacyFetcher";return function(e,n){const o={method:e,params:n,id:$s++,jsonrpc:"2.0"};return new Promise(((e,n)=>{this.emit("debug",{action:"request",fetcher:r,request:ue(o),provider:this}),t(o,((t,i)=>{if(t)return this.emit("debug",{action:"response",fetcher:r,error:t,request:o,provider:this}),n(t);if(this.emit("debug",{action:"response",fetcher:r,request:o,response:i,provider:this}),i.error){const e=new Error(i.error.message);return e.code=i.error.code,e.data=i.error.data,n(e)}e(i.result)}))}))}}class Qs extends Ya{constructor(e,t){null==e&&Ys.throwArgumentError("missing provider","provider",e);let r=null,n=null,o=null;"function"==typeof e?(r="unknown:",n=e):(r=e.host||e.path||"",!r&&e.isMetaMask&&(r="metamask"),o=e,e.request?(""===r&&(r="eip-1193:"),n=function(e){return function(t,r){null==r&&(r=[]);const n={method:t,params:r};return this.emit("debug",{action:"request",fetcher:"Eip1193Fetcher",request:ue(n),provider:this}),e.request(n).then((e=>(this.emit("debug",{action:"response",fetcher:"Eip1193Fetcher",request:n,response:e,provider:this}),e)),(e=>{throw this.emit("debug",{action:"response",fetcher:"Eip1193Fetcher",request:n,error:e,provider:this}),e}))}}(e)):e.sendAsync?n=Xs(0,e.sendAsync.bind(e)):e.send?n=Xs(0,e.send.bind(e)):Ys.throwArgumentError("unsupported provider","provider",e),r||(r="unknown:")),super(r,t),ee(this,"jsonRpcFetchFunc",n),ee(this,"provider",o)}send(e,t){return this.jsonRpcFetchFunc(e,t)}}const eu=new b(sa);function tu(e,t){if(null==e&&(e="homestead"),"string"==typeof e){const t=e.match(/^(ws|http)s?:/i);if(t)switch(t[1].toLowerCase()){case"http":case"https":return new Ya(e);case"ws":case"wss":return new ts(e);default:eu.throwArgumentError("unsupported URL scheme","network",e)}}const r=Ri(e);return r&&r._defaultProvider||eu.throwError("unsupported getDefaultProvider network",b.errors.NETWORK_ERROR,{operation:"getDefaultProvider",network:e}),r._defaultProvider({FallbackProvider:Us,AlchemyProvider:us,AnkrProvider:fs,CloudflareProvider:ps,EtherscanProvider:Os,InfuraProvider:Vs,JsonRpcProvider:Ya,NodesmithProvider:Zs,PocketProvider:Gs,Web3Provider:Qs,IpcProvider:Js},t)}const ru=new RegExp("^bytes([0-9]+)$"),nu=new RegExp("^(u?int)([0-9]*)$"),ou=new RegExp("^(.*)\\[([0-9]*)\\]$"),iu=new b("solidity/5.6.1");function au(e,t,r){switch(e){case"address":return r?E(t,32):A(t);case"string":return qe(t);case"bytes":return A(t);case"bool":return t=t?"0x01":"0x00",r?E(t,32):A(t)}let n=e.match(nu);if(n){let o=parseInt(n[2]||"256");return(n[2]&&String(o)!==n[2]||o%8!=0||0===o||o>256)&&iu.throwArgumentError("invalid number type","type",e),r&&(o=256),E(t=K.from(t).toTwos(o),o/8)}if(n=e.match(ru),n){const o=parseInt(n[1]);return(String(o)!==n[1]||0===o||o>32)&&iu.throwArgumentError("invalid bytes type","type",e),A(t).byteLength!==o&&iu.throwArgumentError(`invalid value for ${e}`,"value",t),r?A((t+"0000000000000000000000000000000000000000000000000000000000000000").substring(0,66)):t}if(n=e.match(ou),n&&Array.isArray(t)){const r=n[1];parseInt(n[2]||String(t.length))!=t.length&&iu.throwArgumentError(`invalid array length for ${e}`,"value",t);const o=[];return t.forEach((function(e){o.push(au(r,e,!0))})),P(o)}return iu.throwArgumentError("invalid type","type",e)}function su(e,t){e.length!=t.length&&iu.throwArgumentError("wrong number of values; expected ${ types.length }","values",t);const r=[];return e.forEach((function(e,n){r.push(au(e,t[n]))})),x(P(r))}function uu(e,t){return be(su(e,t))}function cu(e,t){return vo(su(e,t))}function du(e){const t=qe(e);if(t.length>31)throw new Error("bytes32 string must be less than 32 bytes");return x(P([t,Oi]).slice(0,32))}function lu(e){const t=A(e);if(32!==t.length)throw new Error("invalid bytes32 - not 32 bytes long");if(0!==t[31])throw new Error("invalid bytes32 string - no null terminator");let r=31;for(;0===t[r-1];)r--;return Ke(t.slice(0,r))}const fu=new b("units/5.6.1"),hu=["wei","kwei","mwei","gwei","szabo","finney","ether"];function pu(e){const t=String(e).split(".");(t.length>2||!t[0].match(/^-?[0-9]*$/)||t[1]&&!t[1].match(/^[0-9]*$/)||"."===e||"-."===e)&&fu.throwArgumentError("invalid value","value",e);let r=t[0],n="";for("-"===r.substring(0,1)&&(n="-",r=r.substring(1));"0"===r.substring(0,1);)r=r.substring(1);""===r&&(r="0");let o="";for(2===t.length&&(o="."+(t[1]||"0"));o.length>2&&"0"===o[o.length-1];)o=o.substring(0,o.length-1);const i=[];for(;r.length;){if(r.length<=3){i.unshift(r);break}{const e=r.length-3;i.unshift(r.substring(e)),r=r.substring(0,e)}}return n+i.join(",")+o}function mu(e,t){if("string"==typeof t){const e=hu.indexOf(t);-1!==e&&(t=3*e)}return zn(e,null!=t?t:18)}function gu(e,t){if("string"!=typeof e&&fu.throwArgumentError("value must be a string","value",e),"string"==typeof t){const e=hu.indexOf(t);-1!==e&&(t=3*e)}return Vn(e,null!=t?t:18)}function vu(e){return mu(e,18)}function bu(e){return gu(e,18)}const yu="ethers/5.6.9",wu=new b(yu);try{const e=window;null==e._ethers&&(e._ethers=u)}catch(e){}},17187:e=>{"use strict";var t,r="object"==typeof Reflect?Reflect:null,n=r&&"function"==typeof r.apply?r.apply:function(e,t,r){return Function.prototype.apply.call(e,t,r)};t=r&&"function"==typeof r.ownKeys?r.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var o=Number.isNaN||function(e){return e!=e};function i(){i.init.call(this)}e.exports=i,e.exports.once=function(e,t){return new Promise((function(r,n){function o(r){e.removeListener(t,i),n(r)}function i(){"function"==typeof e.removeListener&&e.removeListener("error",o),r([].slice.call(arguments))}m(e,t,i,{once:!0}),"error"!==t&&function(e,t,r){"function"==typeof e.on&&m(e,"error",t,{once:!0})}(e,o)}))},i.EventEmitter=i,i.prototype._events=void 0,i.prototype._eventsCount=0,i.prototype._maxListeners=void 0;var a=10;function s(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function u(e){return void 0===e._maxListeners?i.defaultMaxListeners:e._maxListeners}function c(e,t,r,n){var o,i,a,c;if(s(r),void 0===(i=e._events)?(i=e._events=Object.create(null),e._eventsCount=0):(void 0!==i.newListener&&(e.emit("newListener",t,r.listener?r.listener:r),i=e._events),a=i[t]),void 0===a)a=i[t]=r,++e._eventsCount;else if("function"==typeof a?a=i[t]=n?[r,a]:[a,r]:n?a.unshift(r):a.push(r),(o=u(e))>0&&a.length>o&&!a.warned){a.warned=!0;var d=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");d.name="MaxListenersExceededWarning",d.emitter=e,d.type=t,d.count=a.length,c=d,console&&console.warn&&console.warn(c)}return e}function d(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function l(e,t,r){var n={fired:!1,wrapFn:void 0,target:e,type:t,listener:r},o=d.bind(n);return o.listener=r,n.wrapFn=o,o}function f(e,t,r){var n=e._events;if(void 0===n)return[];var o=n[t];return void 0===o?[]:"function"==typeof o?r?[o.listener||o]:[o]:r?function(e){for(var t=new Array(e.length),r=0;r0&&(a=t[0]),a instanceof Error)throw a;var s=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw s.context=a,s}var u=i[e];if(void 0===u)return!1;if("function"==typeof u)n(u,this,t);else{var c=u.length,d=p(u,c);for(r=0;r=0;i--)if(r[i]===t||r[i].listener===t){a=r[i].listener,o=i;break}if(o<0)return this;0===o?r.shift():function(e,t){for(;t+1=0;n--)this.removeListener(e,t[n]);return this},i.prototype.listeners=function(e){return f(this,e,!0)},i.prototype.rawListeners=function(e){return f(this,e,!1)},i.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):h.call(e,t)},i.prototype.listenerCount=h,i.prototype.eventNames=function(){return this._eventsCount>0?t(this._events):[]}},13048:(e,t,r)=>{var n=r(89509).Buffer,o=r(62318);e.exports=function(e,t,r,i){if(n.isBuffer(e)||(e=n.from(e,"binary")),t&&(n.isBuffer(t)||(t=n.from(t,"binary")),8!==t.length))throw new RangeError("salt should be Buffer with 8 byte length");for(var a=r/8,s=n.alloc(a),u=n.alloc(i||0),c=n.alloc(0);a>0||i>0;){var d=new o;d.update(c),d.update(e),t&&d.update(t),c=d.digest();var l=0;if(a>0){var f=s.length-a;l=Math.min(a,c.length),c.copy(s,f,0,l),a-=l}if(l0){var h=u.length-i,p=Math.min(i,c.length-l);c.copy(u,h,l,l+p),i-=p}}return c.fill(0),{key:s,iv:u}}},6230:e=>{e.exports="object"==typeof self?self.FormData:window.FormData},3349:(e,t,r)=>{"use strict";var n=r(89509).Buffer,o=r(88473).Transform;function i(e){o.call(this),this._block=n.allocUnsafe(e),this._blockSize=e,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}r(35717)(i,o),i.prototype._transform=function(e,t,r){var n=null;try{this.update(e,t)}catch(e){n=e}r(n)},i.prototype._flush=function(e){var t=null;try{this.push(this.digest())}catch(e){t=e}e(t)},i.prototype.update=function(e,t){if(function(e,t){if(!n.isBuffer(e)&&"string"!=typeof e)throw new TypeError("Data must be a string or a buffer")}(e),this._finalized)throw new Error("Digest already called");n.isBuffer(e)||(e=n.from(e,t));for(var r=this._block,o=0;this._blockOffset+e.length-o>=this._blockSize;){for(var i=this._blockOffset;i0;++a)this._length[a]+=s,(s=this._length[a]/4294967296|0)>0&&(this._length[a]-=4294967296*s);return this},i.prototype._update=function(){throw new Error("_update is not implemented")},i.prototype.digest=function(e){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var t=this._digest();void 0!==e&&(t=t.toString(e)),this._block.fill(0),this._blockOffset=0;for(var r=0;r<4;++r)this._length[r]=0;return t},i.prototype._digest=function(){throw new Error("_digest is not implemented")},e.exports=i},33715:(e,t,r)=>{var n=t;n.utils=r(26436),n.common=r(95772),n.sha=r(89041),n.ripemd=r(12949),n.hmac=r(52344),n.sha1=n.sha.sha1,n.sha256=n.sha.sha256,n.sha224=n.sha.sha224,n.sha384=n.sha.sha384,n.sha512=n.sha.sha512,n.ripemd160=n.ripemd.ripemd160},95772:(e,t,r)=>{"use strict";var n=r(26436),o=r(79746);function i(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}t.BlockHash=i,i.prototype.update=function(e,t){if(e=n.toArray(e,t),this.pending?this.pending=this.pending.concat(e):this.pending=e,this.pendingTotal+=e.length,this.pending.length>=this._delta8){var r=(e=this.pending).length%this._delta8;this.pending=e.slice(e.length-r,e.length),0===this.pending.length&&(this.pending=null),e=n.join32(e,0,e.length-r,this.endian);for(var o=0;o>>24&255,n[o++]=e>>>16&255,n[o++]=e>>>8&255,n[o++]=255&e}else for(n[o++]=255&e,n[o++]=e>>>8&255,n[o++]=e>>>16&255,n[o++]=e>>>24&255,n[o++]=0,n[o++]=0,n[o++]=0,n[o++]=0,i=8;i{"use strict";var n=r(26436),o=r(79746);function i(e,t,r){if(!(this instanceof i))return new i(e,t,r);this.Hash=e,this.blockSize=e.blockSize/8,this.outSize=e.outSize/8,this.inner=null,this.outer=null,this._init(n.toArray(t,r))}e.exports=i,i.prototype._init=function(e){e.length>this.blockSize&&(e=(new this.Hash).update(e).digest()),o(e.length<=this.blockSize);for(var t=e.length;t{"use strict";var n=r(26436),o=r(95772),i=n.rotl32,a=n.sum32,s=n.sum32_3,u=n.sum32_4,c=o.BlockHash;function d(){if(!(this instanceof d))return new d;c.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}function l(e,t,r,n){return e<=15?t^r^n:e<=31?t&r|~t&n:e<=47?(t|~r)^n:e<=63?t&n|r&~n:t^(r|~n)}function f(e){return e<=15?0:e<=31?1518500249:e<=47?1859775393:e<=63?2400959708:2840853838}function h(e){return e<=15?1352829926:e<=31?1548603684:e<=47?1836072691:e<=63?2053994217:0}n.inherits(d,c),t.ripemd160=d,d.blockSize=512,d.outSize=160,d.hmacStrength=192,d.padLength=64,d.prototype._update=function(e,t){for(var r=this.h[0],n=this.h[1],o=this.h[2],c=this.h[3],d=this.h[4],b=r,y=n,w=o,_=c,S=d,O=0;O<80;O++){var k=a(i(u(r,l(O,n,o,c),e[p[O]+t],f(O)),g[O]),d);r=d,d=c,c=i(o,10),o=n,n=k,k=a(i(u(b,l(79-O,y,w,_),e[m[O]+t],h(O)),v[O]),S),b=S,S=_,_=i(w,10),w=y,y=k}k=s(this.h[1],o,_),this.h[1]=s(this.h[2],c,S),this.h[2]=s(this.h[3],d,b),this.h[3]=s(this.h[4],r,y),this.h[4]=s(this.h[0],n,w),this.h[0]=k},d.prototype._digest=function(e){return"hex"===e?n.toHex32(this.h,"little"):n.split32(this.h,"little")};var p=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],m=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],g=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],v=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]},89041:(e,t,r)=>{"use strict";t.sha1=r(84761),t.sha224=r(10799),t.sha256=r(89344),t.sha384=r(80772),t.sha512=r(45900)},84761:(e,t,r)=>{"use strict";var n=r(26436),o=r(95772),i=r(37038),a=n.rotl32,s=n.sum32,u=n.sum32_5,c=i.ft_1,d=o.BlockHash,l=[1518500249,1859775393,2400959708,3395469782];function f(){if(!(this instanceof f))return new f;d.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}n.inherits(f,d),e.exports=f,f.blockSize=512,f.outSize=160,f.hmacStrength=80,f.padLength=64,f.prototype._update=function(e,t){for(var r=this.W,n=0;n<16;n++)r[n]=e[t+n];for(;n{"use strict";var n=r(26436),o=r(89344);function i(){if(!(this instanceof i))return new i;o.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}n.inherits(i,o),e.exports=i,i.blockSize=512,i.outSize=224,i.hmacStrength=192,i.padLength=64,i.prototype._digest=function(e){return"hex"===e?n.toHex32(this.h.slice(0,7),"big"):n.split32(this.h.slice(0,7),"big")}},89344:(e,t,r)=>{"use strict";var n=r(26436),o=r(95772),i=r(37038),a=r(79746),s=n.sum32,u=n.sum32_4,c=n.sum32_5,d=i.ch32,l=i.maj32,f=i.s0_256,h=i.s1_256,p=i.g0_256,m=i.g1_256,g=o.BlockHash,v=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function b(){if(!(this instanceof b))return new b;g.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=v,this.W=new Array(64)}n.inherits(b,g),e.exports=b,b.blockSize=512,b.outSize=256,b.hmacStrength=192,b.padLength=64,b.prototype._update=function(e,t){for(var r=this.W,n=0;n<16;n++)r[n]=e[t+n];for(;n{"use strict";var n=r(26436),o=r(45900);function i(){if(!(this instanceof i))return new i;o.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}n.inherits(i,o),e.exports=i,i.blockSize=1024,i.outSize=384,i.hmacStrength=192,i.padLength=128,i.prototype._digest=function(e){return"hex"===e?n.toHex32(this.h.slice(0,12),"big"):n.split32(this.h.slice(0,12),"big")}},45900:(e,t,r)=>{"use strict";var n=r(26436),o=r(95772),i=r(79746),a=n.rotr64_hi,s=n.rotr64_lo,u=n.shr64_hi,c=n.shr64_lo,d=n.sum64,l=n.sum64_hi,f=n.sum64_lo,h=n.sum64_4_hi,p=n.sum64_4_lo,m=n.sum64_5_hi,g=n.sum64_5_lo,v=o.BlockHash,b=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function y(){if(!(this instanceof y))return new y;v.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=b,this.W=new Array(160)}function w(e,t,r,n,o){var i=e&r^~e&o;return i<0&&(i+=4294967296),i}function _(e,t,r,n,o,i){var a=t&n^~t&i;return a<0&&(a+=4294967296),a}function S(e,t,r,n,o){var i=e&r^e&o^r&o;return i<0&&(i+=4294967296),i}function O(e,t,r,n,o,i){var a=t&n^t&i^n&i;return a<0&&(a+=4294967296),a}function k(e,t){var r=a(e,t,28)^a(t,e,2)^a(t,e,7);return r<0&&(r+=4294967296),r}function A(e,t){var r=s(e,t,28)^s(t,e,2)^s(t,e,7);return r<0&&(r+=4294967296),r}function P(e,t){var r=s(e,t,14)^s(e,t,18)^s(t,e,9);return r<0&&(r+=4294967296),r}function M(e,t){var r=a(e,t,1)^a(e,t,8)^u(e,t,7);return r<0&&(r+=4294967296),r}function E(e,t){var r=s(e,t,1)^s(e,t,8)^c(e,t,7);return r<0&&(r+=4294967296),r}function C(e,t){var r=s(e,t,19)^s(t,e,29)^c(e,t,6);return r<0&&(r+=4294967296),r}n.inherits(y,v),e.exports=y,y.blockSize=1024,y.outSize=512,y.hmacStrength=192,y.padLength=128,y.prototype._prepareBlock=function(e,t){for(var r=this.W,n=0;n<32;n++)r[n]=e[t+n];for(;n{"use strict";var n=r(26436).rotr32;function o(e,t,r){return e&t^~e&r}function i(e,t,r){return e&t^e&r^t&r}function a(e,t,r){return e^t^r}t.ft_1=function(e,t,r,n){return 0===e?o(t,r,n):1===e||3===e?a(t,r,n):2===e?i(t,r,n):void 0},t.ch32=o,t.maj32=i,t.p32=a,t.s0_256=function(e){return n(e,2)^n(e,13)^n(e,22)},t.s1_256=function(e){return n(e,6)^n(e,11)^n(e,25)},t.g0_256=function(e){return n(e,7)^n(e,18)^e>>>3},t.g1_256=function(e){return n(e,17)^n(e,19)^e>>>10}},26436:(e,t,r)=>{"use strict";var n=r(79746),o=r(35717);function i(e,t){return 55296==(64512&e.charCodeAt(t))&&!(t<0||t+1>=e.length)&&56320==(64512&e.charCodeAt(t+1))}function a(e){return(e>>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function s(e){return 1===e.length?"0"+e:e}function u(e){return 7===e.length?"0"+e:6===e.length?"00"+e:5===e.length?"000"+e:4===e.length?"0000"+e:3===e.length?"00000"+e:2===e.length?"000000"+e:1===e.length?"0000000"+e:e}t.inherits=o,t.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var r=[];if("string"==typeof e)if(t){if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),o=0;o>6|192,r[n++]=63&a|128):i(e,o)?(a=65536+((1023&a)<<10)+(1023&e.charCodeAt(++o)),r[n++]=a>>18|240,r[n++]=a>>12&63|128,r[n++]=a>>6&63|128,r[n++]=63&a|128):(r[n++]=a>>12|224,r[n++]=a>>6&63|128,r[n++]=63&a|128)}else for(o=0;o>>0}return a},t.split32=function(e,t){for(var r=new Array(4*e.length),n=0,o=0;n>>24,r[o+1]=i>>>16&255,r[o+2]=i>>>8&255,r[o+3]=255&i):(r[o+3]=i>>>24,r[o+2]=i>>>16&255,r[o+1]=i>>>8&255,r[o]=255&i)}return r},t.rotr32=function(e,t){return e>>>t|e<<32-t},t.rotl32=function(e,t){return e<>>32-t},t.sum32=function(e,t){return e+t>>>0},t.sum32_3=function(e,t,r){return e+t+r>>>0},t.sum32_4=function(e,t,r,n){return e+t+r+n>>>0},t.sum32_5=function(e,t,r,n,o){return e+t+r+n+o>>>0},t.sum64=function(e,t,r,n){var o=e[t],i=n+e[t+1]>>>0,a=(i>>0,e[t+1]=i},t.sum64_hi=function(e,t,r,n){return(t+n>>>0>>0},t.sum64_lo=function(e,t,r,n){return t+n>>>0},t.sum64_4_hi=function(e,t,r,n,o,i,a,s){var u=0,c=t;return u+=(c=c+n>>>0)>>0)>>0)>>0},t.sum64_4_lo=function(e,t,r,n,o,i,a,s){return t+n+i+s>>>0},t.sum64_5_hi=function(e,t,r,n,o,i,a,s,u,c){var d=0,l=t;return d+=(l=l+n>>>0)>>0)>>0)>>0)>>0},t.sum64_5_lo=function(e,t,r,n,o,i,a,s,u,c){return t+n+i+s+c>>>0},t.rotr64_hi=function(e,t,r){return(t<<32-r|e>>>r)>>>0},t.rotr64_lo=function(e,t,r){return(e<<32-r|t>>>r)>>>0},t.shr64_hi=function(e,t,r){return e>>>r},t.shr64_lo=function(e,t,r){return(e<<32-r|t>>>r)>>>0}},2156:(e,t,r)=>{"use strict";var n=r(33715),o=r(34504),i=r(79746);function a(e){if(!(this instanceof a))return new a(e);this.hash=e.hash,this.predResist=!!e.predResist,this.outLen=this.hash.outSize,this.minEntropy=e.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var t=o.toArray(e.entropy,e.entropyEnc||"hex"),r=o.toArray(e.nonce,e.nonceEnc||"hex"),n=o.toArray(e.pers,e.persEnc||"hex");i(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(t,r,n)}e.exports=a,a.prototype._init=function(e,t,r){var n=e.concat(t).concat(r);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var o=0;o=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(e.concat(r||[])),this._reseed=1},a.prototype.generate=function(e,t,r,n){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof t&&(n=r,r=t,t=null),r&&(r=o.toArray(r,n||"hex"),this._update(r));for(var i=[];i.length{t.read=function(e,t,r,n,o){var i,a,s=8*o-n-1,u=(1<>1,d=-7,l=r?o-1:0,f=r?-1:1,h=e[t+l];for(l+=f,i=h&(1<<-d)-1,h>>=-d,d+=s;d>0;i=256*i+e[t+l],l+=f,d-=8);for(a=i&(1<<-d)-1,i>>=-d,d+=n;d>0;a=256*a+e[t+l],l+=f,d-=8);if(0===i)i=1-c;else{if(i===u)return a?NaN:1/0*(h?-1:1);a+=Math.pow(2,n),i-=c}return(h?-1:1)*a*Math.pow(2,i-n)},t.write=function(e,t,r,n,o,i){var a,s,u,c=8*i-o-1,d=(1<>1,f=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,h=n?0:i-1,p=n?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=d):(a=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-a))<1&&(a--,u*=2),(t+=a+l>=1?f/u:f*Math.pow(2,1-l))*u>=2&&(a++,u/=2),a+l>=d?(s=0,a=d):a+l>=1?(s=(t*u-1)*Math.pow(2,o),a+=l):(s=t*Math.pow(2,l-1)*Math.pow(2,o),a=0));o>=8;e[r+h]=255&s,h+=p,s/=256,o-=8);for(a=a<0;e[r+h]=255&a,h+=p,a/=256,c-=8);e[r+h-p]|=128*m}},35717:e=>{"function"==typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}}},91094:(e,t,r)=>{var n;!function(){"use strict";var o="input is invalid type",i="object"==typeof window,a=i?window:{};a.JS_SHA3_NO_WINDOW&&(i=!1);var s=!i&&"object"==typeof self;!a.JS_SHA3_NO_NODE_JS&&"object"==typeof process&&process.versions&&process.versions.node?a=r.g:s&&(a=self);var u=!a.JS_SHA3_NO_COMMON_JS&&e.exports,c=r.amdO,d=!a.JS_SHA3_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,l="0123456789abcdef".split(""),f=[4,1024,262144,67108864],h=[0,8,16,24],p=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648],m=[224,256,384,512],g=[128,256],v=["hex","buffer","arrayBuffer","array","digest"],b={128:168,256:136};!a.JS_SHA3_NO_NODE_JS&&Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),!d||!a.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(e){return"object"==typeof e&&e.buffer&&e.buffer.constructor===ArrayBuffer});for(var y=function(e,t,r){return function(n){return new T(e,t,e).update(n)[r]()}},w=function(e,t,r){return function(n,o){return new T(e,t,o).update(n)[r]()}},_=function(e,t,r){return function(t,n,o,i){return P["cshake"+e].update(t,n,o,i)[r]()}},S=function(e,t,r){return function(t,n,o,i){return P["kmac"+e].update(t,n,o,i)[r]()}},O=function(e,t,r,n){for(var o=0;o>5,this.byteCount=this.blockCount<<2,this.outputBlocks=r>>5,this.extraBytes=(31&r)>>3;for(var n=0;n<50;++n)this.s[n]=0}function j(e,t,r){T.call(this,e,t,r)}T.prototype.update=function(e){if(this.finalized)throw new Error("finalize already called");var t,r=typeof e;if("string"!==r){if("object"!==r)throw new Error(o);if(null===e)throw new Error(o);if(d&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||d&&ArrayBuffer.isView(e)))throw new Error(o);t=!0}for(var n,i,a=this.blocks,s=this.byteCount,u=e.length,c=this.blockCount,l=0,f=this.s;l>2]|=e[l]<>2]|=i<>2]|=(192|i>>6)<>2]|=(128|63&i)<=57344?(a[n>>2]|=(224|i>>12)<>2]|=(128|i>>6&63)<>2]|=(128|63&i)<>2]|=(240|i>>18)<>2]|=(128|i>>12&63)<>2]|=(128|i>>6&63)<>2]|=(128|63&i)<=s){for(this.start=n-s,this.block=a[c],n=0;n>=8);r>0;)o.unshift(r),r=255&(e>>=8),++n;return t?o.push(n):o.unshift(n),this.update(o),o.length},T.prototype.encodeString=function(e){var t,r=typeof e;if("string"!==r){if("object"!==r)throw new Error(o);if(null===e)throw new Error(o);if(d&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||d&&ArrayBuffer.isView(e)))throw new Error(o);t=!0}var n=0,i=e.length;if(t)n=i;else for(var a=0;a=57344?n+=3:(s=65536+((1023&s)<<10|1023&e.charCodeAt(++a)),n+=4)}return n+=this.encode(8*n),this.update(e),n},T.prototype.bytepad=function(e,t){for(var r=this.encode(t),n=0;n>2]|=this.padding[3&t],this.lastByteIndex===this.byteCount)for(e[0]=e[r],t=1;t>4&15]+l[15&e]+l[e>>12&15]+l[e>>8&15]+l[e>>20&15]+l[e>>16&15]+l[e>>28&15]+l[e>>24&15];a%t==0&&(D(r),i=0)}return o&&(e=r[i],s+=l[e>>4&15]+l[15&e],o>1&&(s+=l[e>>12&15]+l[e>>8&15]),o>2&&(s+=l[e>>20&15]+l[e>>16&15])),s},T.prototype.arrayBuffer=function(){this.finalize();var e,t=this.blockCount,r=this.s,n=this.outputBlocks,o=this.extraBytes,i=0,a=0,s=this.outputBits>>3;e=o?new ArrayBuffer(n+1<<2):new ArrayBuffer(s);for(var u=new Uint32Array(e);a>8&255,u[e+2]=t>>16&255,u[e+3]=t>>24&255;s%r==0&&D(n)}return i&&(e=s<<2,t=n[a],u[e]=255&t,i>1&&(u[e+1]=t>>8&255),i>2&&(u[e+2]=t>>16&255)),u},j.prototype=new T,j.prototype.finalize=function(){return this.encode(this.outputBits,!0),T.prototype.finalize.call(this)};var D=function(e){var t,r,n,o,i,a,s,u,c,d,l,f,h,m,g,v,b,y,w,_,S,O,k,A,P,M,E,C,N,x,R,I,T,j,D,B,U,J,H,L,z,V,q,F,Z,W,K,G,Y,$,X,Q,ee,te,re,ne,oe,ie,ae,se,ue,ce,de;for(n=0;n<48;n+=2)o=e[0]^e[10]^e[20]^e[30]^e[40],i=e[1]^e[11]^e[21]^e[31]^e[41],a=e[2]^e[12]^e[22]^e[32]^e[42],s=e[3]^e[13]^e[23]^e[33]^e[43],u=e[4]^e[14]^e[24]^e[34]^e[44],c=e[5]^e[15]^e[25]^e[35]^e[45],d=e[6]^e[16]^e[26]^e[36]^e[46],l=e[7]^e[17]^e[27]^e[37]^e[47],t=(f=e[8]^e[18]^e[28]^e[38]^e[48])^(a<<1|s>>>31),r=(h=e[9]^e[19]^e[29]^e[39]^e[49])^(s<<1|a>>>31),e[0]^=t,e[1]^=r,e[10]^=t,e[11]^=r,e[20]^=t,e[21]^=r,e[30]^=t,e[31]^=r,e[40]^=t,e[41]^=r,t=o^(u<<1|c>>>31),r=i^(c<<1|u>>>31),e[2]^=t,e[3]^=r,e[12]^=t,e[13]^=r,e[22]^=t,e[23]^=r,e[32]^=t,e[33]^=r,e[42]^=t,e[43]^=r,t=a^(d<<1|l>>>31),r=s^(l<<1|d>>>31),e[4]^=t,e[5]^=r,e[14]^=t,e[15]^=r,e[24]^=t,e[25]^=r,e[34]^=t,e[35]^=r,e[44]^=t,e[45]^=r,t=u^(f<<1|h>>>31),r=c^(h<<1|f>>>31),e[6]^=t,e[7]^=r,e[16]^=t,e[17]^=r,e[26]^=t,e[27]^=r,e[36]^=t,e[37]^=r,e[46]^=t,e[47]^=r,t=d^(o<<1|i>>>31),r=l^(i<<1|o>>>31),e[8]^=t,e[9]^=r,e[18]^=t,e[19]^=r,e[28]^=t,e[29]^=r,e[38]^=t,e[39]^=r,e[48]^=t,e[49]^=r,m=e[0],g=e[1],W=e[11]<<4|e[10]>>>28,K=e[10]<<4|e[11]>>>28,C=e[20]<<3|e[21]>>>29,N=e[21]<<3|e[20]>>>29,se=e[31]<<9|e[30]>>>23,ue=e[30]<<9|e[31]>>>23,V=e[40]<<18|e[41]>>>14,q=e[41]<<18|e[40]>>>14,j=e[2]<<1|e[3]>>>31,D=e[3]<<1|e[2]>>>31,v=e[13]<<12|e[12]>>>20,b=e[12]<<12|e[13]>>>20,G=e[22]<<10|e[23]>>>22,Y=e[23]<<10|e[22]>>>22,x=e[33]<<13|e[32]>>>19,R=e[32]<<13|e[33]>>>19,ce=e[42]<<2|e[43]>>>30,de=e[43]<<2|e[42]>>>30,te=e[5]<<30|e[4]>>>2,re=e[4]<<30|e[5]>>>2,B=e[14]<<6|e[15]>>>26,U=e[15]<<6|e[14]>>>26,y=e[25]<<11|e[24]>>>21,w=e[24]<<11|e[25]>>>21,$=e[34]<<15|e[35]>>>17,X=e[35]<<15|e[34]>>>17,I=e[45]<<29|e[44]>>>3,T=e[44]<<29|e[45]>>>3,A=e[6]<<28|e[7]>>>4,P=e[7]<<28|e[6]>>>4,ne=e[17]<<23|e[16]>>>9,oe=e[16]<<23|e[17]>>>9,J=e[26]<<25|e[27]>>>7,H=e[27]<<25|e[26]>>>7,_=e[36]<<21|e[37]>>>11,S=e[37]<<21|e[36]>>>11,Q=e[47]<<24|e[46]>>>8,ee=e[46]<<24|e[47]>>>8,F=e[8]<<27|e[9]>>>5,Z=e[9]<<27|e[8]>>>5,M=e[18]<<20|e[19]>>>12,E=e[19]<<20|e[18]>>>12,ie=e[29]<<7|e[28]>>>25,ae=e[28]<<7|e[29]>>>25,L=e[38]<<8|e[39]>>>24,z=e[39]<<8|e[38]>>>24,O=e[48]<<14|e[49]>>>18,k=e[49]<<14|e[48]>>>18,e[0]=m^~v&y,e[1]=g^~b&w,e[10]=A^~M&C,e[11]=P^~E&N,e[20]=j^~B&J,e[21]=D^~U&H,e[30]=F^~W&G,e[31]=Z^~K&Y,e[40]=te^~ne&ie,e[41]=re^~oe&ae,e[2]=v^~y&_,e[3]=b^~w&S,e[12]=M^~C&x,e[13]=E^~N&R,e[22]=B^~J&L,e[23]=U^~H&z,e[32]=W^~G&$,e[33]=K^~Y&X,e[42]=ne^~ie&se,e[43]=oe^~ae&ue,e[4]=y^~_&O,e[5]=w^~S&k,e[14]=C^~x&I,e[15]=N^~R&T,e[24]=J^~L&V,e[25]=H^~z&q,e[34]=G^~$&Q,e[35]=Y^~X&ee,e[44]=ie^~se&ce,e[45]=ae^~ue&de,e[6]=_^~O&m,e[7]=S^~k&g,e[16]=x^~I&A,e[17]=R^~T&P,e[26]=L^~V&j,e[27]=z^~q&D,e[36]=$^~Q&F,e[37]=X^~ee&Z,e[46]=se^~ce&te,e[47]=ue^~de&re,e[8]=O^~m&v,e[9]=k^~g&b,e[18]=I^~A&M,e[19]=T^~P&E,e[28]=V^~j&B,e[29]=q^~D&U,e[38]=Q^~F&W,e[39]=ee^~Z&K,e[48]=ce^~te&ne,e[49]=de^~re&oe,e[0]^=p[n],e[1]^=p[n+1]};if(u)e.exports=P;else{for(E=0;E>>2]|=n[a]<<24-a%4*8;this.i=i,this.u=o}return Object.defineProperty(e.prototype,"nSigBytes",{get:function(){return this.u},set:function(e){this.u=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"words",{get:function(){return this.i},enumerable:!1,configurable:!0}),e.prototype.toString=function(e){return e?e.stringify(this):function(e){for(var t=e.nSigBytes,r=e.words,n=[],o=0;o>>2]>>>24-o%4*8&255;n.push((i>>>4).toString(16)),n.push((15&i).toString(16))}return n.join("")}(this)},e.prototype.toUint8Array=function(){for(var e=this.i,t=this.u,r=new Uint8Array(t),n=0;n>>2]>>>24-n%4*8&255;return r},e.prototype.concat=function(e){var t=e.words.slice(),r=e.nSigBytes;if(this.clamp(),this.u%4)for(var n=0;n>>2]>>>24-n%4*8&255;this.i[this.u+n>>>2]|=o<<24-(this.u+n)%4*8}else for(n=0;n>>2]=t[n>>>2];return this.u+=r,this},e.prototype.clamp=function(){var e=this.u;this.i[e>>>2]&=4294967295<<32-e%4*8,this.i.length=Math.ceil(e/4)},e.prototype.clone=function(){return new e(this.i.slice(),this.u)},e.random=function(t){for(var r=[],n=0;n>>2]>>>24-o%4*8&255)<<16|(t[o+1>>>2]>>>24-(o+1)%4*8&255)<<8|t[o+2>>>2]>>>24-(o+2)%4*8&255,a=0;a<4&&o+.75*a>>6*(3-a)&63));var s=u.charAt(64);if(s)for(;n.length%4;)n.push(s);return n.join("")},parse:function(e){var t=e.length,r=u.charAt(64);if(r){var n=e.indexOf(r);-1!==n&&(t=n)}for(var o=[],i=0,a=0;a>>6-a%4*2;o[i>>>2]|=d<<24-i%4*8,i++}return new s(o,i)}};return t}()},17057:function(e,t,r){e.exports=function(){"use strict";var e={3354:function(e,t,r){r.d(t,{e:function(){return i}});var n=r(5720),o=r(9054),i=function(){function e(t,r){if(Array.isArray(t)||!t)return this.t=Array.isArray(t)?t:[],void(this.i="number"==typeof r?r:4*this.t.length);if(t instanceof e)return this.t=t.words.slice(),void(this.i=t.nSigBytes);var n;try{t instanceof ArrayBuffer?n=new Uint8Array(t):(t instanceof Uint8Array||t instanceof Int8Array||t instanceof Uint8ClampedArray||t instanceof Int16Array||t instanceof Uint16Array||t instanceof Int32Array||t instanceof Uint32Array||t instanceof Float32Array||t instanceof Float64Array)&&(n=new Uint8Array(t.buffer,t.byteOffset,t.byteLength))}catch(e){throw new Error("Invalid argument")}if(!n)throw new Error("Invalid argument");for(var o=n.byteLength,i=[],a=0;a>>2]|=n[a]<<24-a%4*8;this.t=i,this.i=o}return Object.defineProperty(e.prototype,"nSigBytes",{get:function(){return this.i},set:function(e){this.i=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"words",{get:function(){return this.t},enumerable:!1,configurable:!0}),e.prototype.toString=function(e){return e?e.stringify(this):n.p.stringify(this)},e.prototype.toUint8Array=function(){for(var e=this.t,t=this.i,r=new Uint8Array(t),n=0;n>>2]>>>24-n%4*8&255;return r},e.prototype.concat=function(e){var t=e.words.slice(),r=e.nSigBytes;if(this.clamp(),this.i%4)for(var n=0;n>>2]>>>24-n%4*8&255;this.t[this.i+n>>>2]|=o<<24-(this.i+n)%4*8}else for(n=0;n>>2]=t[n>>>2];return this.i+=r,this},e.prototype.clamp=function(){var e=this.i;this.t[e>>>2]&=4294967295<<32-e%4*8,this.t.length=Math.ceil(e/4)},e.prototype.clone=function(){return new e(this.t.slice(),this.i)},e.random=function(t){for(var r=[],n=0;n"===e?i>t:">="===e?i>=t:i===t))}},5720:function(e,t,r){r.d(t,{p:function(){return o}});var n=r(3354),o={stringify:function(e){for(var t=e.nSigBytes,r=e.words,n=[],o=0;o>>2]>>>24-o%4*8&255;n.push((i>>>4).toString(16)),n.push((15&i).toString(16))}return n.join("")},parse:function(e){var t=e.length;if(t%2!=0)throw new Error("Hex string count must be even");if(!/^[a-fA-F0-9]+$/.test(e))throw new Error("Invalid Hex string: "+e);for(var r=[],o=0;o>>3]|=parseInt(e.substr(o,2),16)<<24-o%8*4;return new n.e(r,t/2)}}},8702:function(e,t,r){r.d(t,{m:function(){return o}});var n=r(3354),o={stringify:function(e){for(var t=e.nSigBytes,r=e.words,n=[],o=0;o>>2]>>>24-o%4*8&255;n.push(String.fromCharCode(i))}return n.join("")},parse:function(e){for(var t=e.length,r=[],o=0;o>>2]|=(255&e.charCodeAt(o))<<24-o%4*8;return new n.e(r,t)}}},4768:function(e,t,r){r.d(t,{d:function(){return o}});var n=r(8702),o={stringify:function(e){try{return decodeURIComponent(escape(n.m.stringify(e)))}catch(e){throw new Error("Malformed UTF-8 data")}},parse:function(e){return n.m.parse(unescape(encodeURIComponent(e)))}}},9054:function(e,t,n){n.d(t,{M:function(){return i}});var o=n(1756),i=function(){if("undefined"!=typeof window){var e=window.crypto||window.msCrypto;if(!e){if((0,o.w)("<",11))return console.warn("IE <= 10 uses insecure random generator. Please consider to use IE11 or another modern browser"),function(){return Math.floor(512*Math.random())%256};throw new Error("Crypto module not found")}return function(){return e.getRandomValues(new Uint32Array(1))[0]}}return void 0!==n.g&&n.g.crypto?function(){return n.g.crypto.randomBytes(4).readInt32LE()}:function(){return r(34845).randomBytes(4).readInt32LE()}}()}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var i=t[r]={exports:{}};return e[r](i,i.exports,n),i.exports}n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"S",{value:!0})};var o={};return function(){n.r(o),n.d(o,{RIPEMD160:function(){return b}});var e,t=n(1868),r=n(3354),i=(e=function(t,r){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(t,r)},function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}),a=new r.e([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),s=new r.e([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),u=new r.e([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),c=new r.e([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),d=new r.e([0,1518500249,1859775393,2400959708,2840853838]),l=new r.e([1352829926,1548603684,1836072691,2053994217,0]);function f(e,t,r){return e^t^r}function h(e,t,r){return e&t|~e&r}function p(e,t,r){return(e|~t)^r}function m(e,t,r){return e&r|t&~r}function g(e,t,r){return e^(t|~r)}function v(e,t){return e<>>32-t}var b=function(e){function t(t){var n=e.call(this,t)||this;return n.N=new r.e([1732584193,4023233417,2562383102,271733878,3285377520]),n.v=t,t&&void 0!==t.hash&&(n.N=t.hash.clone()),n}return i(t,e),t.prototype.U=function(){this.N=new r.e([1732584193,4023233417,2562383102,271733878,3285377520])},t.prototype.O=function(e,t){for(var r=0;r<16;r++){var n=t+r,o=e[n];e[n]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8)}var i,b,y,w,_,S,O,k,A,P,M,E=this.N.words,C=d.words,N=l.words,x=a.words,R=s.words,I=u.words,T=c.words;for(S=i=E[0],O=b=E[1],k=y=E[2],A=w=E[3],P=_=E[4],r=0;r<80;r+=1)M=i+e[t+x[r]]|0,M+=r<16?f(b,y,w)+C[0]:r<32?h(b,y,w)+C[1]:r<48?p(b,y,w)+C[2]:r<64?m(b,y,w)+C[3]:g(b,y,w)+C[4],M=(M=v(M|=0,I[r]))+_|0,i=_,_=w,w=v(y,10),y=b,b=M,M=S+e[t+R[r]]|0,M+=r<16?g(O,k,A)+N[0]:r<32?m(O,k,A)+N[1]:r<48?p(O,k,A)+N[2]:r<64?h(O,k,A)+N[3]:f(O,k,A)+N[4],M=(M=v(M|=0,T[r]))+P|0,S=P,P=A,A=v(k,10),k=O,O=M;M=E[1]+y+A|0,E[1]=E[2]+w+P|0,E[2]=E[3]+_+S|0,E[3]=E[4]+i+O|0,E[4]=E[0]+b+k|0,E[0]=M},t.prototype._=function(){var e=this.l,t=e.words,r=8*this.j,n=8*e.nSigBytes;t[n>>>5]|=128<<24-n%32,t[14+(n+64>>>9<<4)]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),e.nSigBytes=4*(t.length+1),this.I();for(var o=this.N,i=o.words,a=0;a<5;a++){var s=i[a];i[a]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8)}return o},t.prototype.clone=function(){return new t({hash:this.N,blockSize:this.h,data:this.l,nBytes:this.j})},t.hash=function(e,r){return new t(r).finalize(e)},t}(t.P)}(),o}()},63915:function(e,t,r){e.exports=function(){"use strict";var e={3354:function(e,t,r){r.d(t,{e:function(){return i}});var n=r(5720),o=r(9054),i=function(){function e(t,r){if(Array.isArray(t)||!t)return this.t=Array.isArray(t)?t:[],void(this.i="number"==typeof r?r:4*this.t.length);if(t instanceof e)return this.t=t.words.slice(),void(this.i=t.nSigBytes);var n;try{t instanceof ArrayBuffer?n=new Uint8Array(t):(t instanceof Uint8Array||t instanceof Int8Array||t instanceof Uint8ClampedArray||t instanceof Int16Array||t instanceof Uint16Array||t instanceof Int32Array||t instanceof Uint32Array||t instanceof Float32Array||t instanceof Float64Array)&&(n=new Uint8Array(t.buffer,t.byteOffset,t.byteLength))}catch(e){throw new Error("Invalid argument")}if(!n)throw new Error("Invalid argument");for(var o=n.byteLength,i=[],a=0;a>>2]|=n[a]<<24-a%4*8;this.t=i,this.i=o}return Object.defineProperty(e.prototype,"nSigBytes",{get:function(){return this.i},set:function(e){this.i=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"words",{get:function(){return this.t},enumerable:!1,configurable:!0}),e.prototype.toString=function(e){return e?e.stringify(this):n.p.stringify(this)},e.prototype.toUint8Array=function(){for(var e=this.t,t=this.i,r=new Uint8Array(t),n=0;n>>2]>>>24-n%4*8&255;return r},e.prototype.concat=function(e){var t=e.words.slice(),r=e.nSigBytes;if(this.clamp(),this.i%4)for(var n=0;n>>2]>>>24-n%4*8&255;this.t[this.i+n>>>2]|=o<<24-(this.i+n)%4*8}else for(n=0;n>>2]=t[n>>>2];return this.i+=r,this},e.prototype.clamp=function(){var e=this.i;this.t[e>>>2]&=4294967295<<32-e%4*8,this.t.length=Math.ceil(e/4)},e.prototype.clone=function(){return new e(this.t.slice(),this.i)},e.random=function(t){for(var r=[],n=0;n"===e?i>t:">="===e?i>=t:i===t))}},5720:function(e,t,r){r.d(t,{p:function(){return o}});var n=r(3354),o={stringify:function(e){for(var t=e.nSigBytes,r=e.words,n=[],o=0;o>>2]>>>24-o%4*8&255;n.push((i>>>4).toString(16)),n.push((15&i).toString(16))}return n.join("")},parse:function(e){var t=e.length;if(t%2!=0)throw new Error("Hex string count must be even");if(!/^[a-fA-F0-9]+$/.test(e))throw new Error("Invalid Hex string: "+e);for(var r=[],o=0;o>>3]|=parseInt(e.substr(o,2),16)<<24-o%8*4;return new n.e(r,t/2)}}},8702:function(e,t,r){r.d(t,{m:function(){return o}});var n=r(3354),o={stringify:function(e){for(var t=e.nSigBytes,r=e.words,n=[],o=0;o>>2]>>>24-o%4*8&255;n.push(String.fromCharCode(i))}return n.join("")},parse:function(e){for(var t=e.length,r=[],o=0;o>>2]|=(255&e.charCodeAt(o))<<24-o%4*8;return new n.e(r,t)}}},4768:function(e,t,r){r.d(t,{d:function(){return o}});var n=r(8702),o={stringify:function(e){try{return decodeURIComponent(escape(n.m.stringify(e)))}catch(e){throw new Error("Malformed UTF-8 data")}},parse:function(e){return n.m.parse(unescape(encodeURIComponent(e)))}}},9054:function(e,t,n){n.d(t,{M:function(){return i}});var o=n(1756),i=function(){if("undefined"!=typeof window){var e=window.crypto||window.msCrypto;if(!e){if((0,o.w)("<",11))return console.warn("IE <= 10 uses insecure random generator. Please consider to use IE11 or another modern browser"),function(){return Math.floor(512*Math.random())%256};throw new Error("Crypto module not found")}return function(){return e.getRandomValues(new Uint32Array(1))[0]}}return void 0!==n.g&&n.g.crypto?function(){return n.g.crypto.randomBytes(4).readInt32LE()}:function(){return r(34845).randomBytes(4).readInt32LE()}}()}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var i=t[r]={exports:{}};return e[r](i,i.exports,n),i.exports}n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"S",{value:!0})};var o={};return function(){n.r(o),n.d(o,{SHA256:function(){return l}});var e,t=n(1868),r=n(3354),i=(e=function(t,r){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(t,r)},function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}),a=[],s=[];function u(e){for(var t=Math.sqrt(e),r=2;r<=t;r++)if(!(e%r))return!1;return!0}function c(e){return 4294967296*(e-(0|e))|0}!function(){for(var e=2,t=0;t<64;)u(e)&&(t<8&&(a[t]=c(Math.pow(e,.5))),s[t]=c(Math.pow(e,1/3)),t++),e++}();var d=[],l=function(e){function t(t){var n=e.call(this,t)||this;return n.N=new r.e(a.slice(0)),n.v=t,t&&void 0!==t.hash&&(n.N=t.hash.clone()),n}return i(t,e),t.prototype.U=function(){this.N=new r.e(a.slice(0))},t.prototype.I=function(e,t){for(var r=this.N.words,n=r[0],o=r[1],i=r[2],a=r[3],u=r[4],c=r[5],l=r[6],f=r[7],h=0;h<64;h++){if(h<16)d[h]=0|e[t+h];else{var p=d[h-15],m=(p<<25|p>>>7)^(p<<14|p>>>18)^p>>>3,g=d[h-2],v=(g<<15|g>>>17)^(g<<13|g>>>19)^g>>>10;d[h]=m+d[h-7]+v+d[h-16]}var b=n&o^n&i^o&i,y=(n<<30|n>>>2)^(n<<19|n>>>13)^(n<<10|n>>>22),w=f+((u<<26|u>>>6)^(u<<21|u>>>11)^(u<<7|u>>>25))+(u&c^~u&l)+s[h]+d[h];f=l,l=c,c=u,u=a+w|0,a=i,i=o,o=n,n=w+(y+b)|0}r[0]=r[0]+n|0,r[1]=r[1]+o|0,r[2]=r[2]+i|0,r[3]=r[3]+a|0,r[4]=r[4]+u|0,r[5]=r[5]+c|0,r[6]=r[6]+l|0,r[7]=r[7]+f|0},t.prototype._=function(){var e=this.l.words,t=8*this.A,r=8*this.l.nSigBytes;return e[r>>>5]|=128<<24-r%32,e[14+(r+64>>>9<<4)]=Math.floor(t/4294967296),e[15+(r+64>>>9<<4)]=t,this.l.nSigBytes=4*e.length,this.O(),this.N},t.prototype.clone=function(){return new t({hash:this.N,blockSize:this.h,data:this.l,nBytes:this.A})},t.hash=function(e,r){return new t(r).finalize(e)},t}(t.P)}(),o}()},91941:function(e,t,r){e.exports=function(){"use strict";var e={9691:function(e,t,r){r.d(t,{AES:function(){return _}});var n,o=r(9456),i=r(787),a=r(5693),s=r(9109),u=(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),c=function(){return(c=Object.assign||function(e){for(var t,r=1,n=arguments.length;r>>8^255&o^99,d[r]=o,l[o]=r;var i=e[r],a=e[i],s=e[a],u=257*e[o]^16843008*o;f[r]=u<<24|u>>>8,h[r]=u<<16|u>>>16,p[r]=u<<8|u>>>24,m[r]=u,u=16843009*s^65537*a^257*i^16843008*r,g[o]=u<<24|u>>>8,v[o]=u<<16|u>>>16,b[o]=u<<8|u>>>24,y[o]=u,r?(r=i^e[e[e[s^i]]],n^=e[e[n]]):r=n=1}}();var w=[0,1,2,4,8,16,32,64,128,27,54],_=function(e){function t(t){var r=e.call(this,t)||this;return r.u=0,r.h=[],r.v=[],r.O=t,r.A(),r}return u(t,e),t.prototype.A=function(){var e;if(!this.u||this.k!==this.H){for(var t=this.k=this.H,r=t.words,n=t.nSigBytes/4,o=4*((this.u=n+6)+1),i=this.h=[],a=0;a6&&a%n==4&&(e=d[e>>>24]<<24|d[e>>>16&255]<<16|d[e>>>8&255]<<8|d[255&e]):(e=d[(e=e<<8|e>>>24)>>>24]<<24|d[e>>>16&255]<<16|d[e>>>8&255]<<8|d[255&e],e^=w[a/n|0]<<24),i[a]=i[a-n]^e);this.v=[];for(var s=0;s>>24]]^v[d[e>>>16&255]]^b[d[e>>>8&255]]^y[d[255&e]]}},t.prototype.encryptBlock=function(e,t){this.B(e,t,this.h,f,h,p,m,d)},t.prototype.decryptBlock=function(e,t){var r=e[t+1];e[t+1]=e[t+3],e[t+3]=r,this.B(e,t,this.v,g,v,b,y,l),r=e[t+1],e[t+1]=e[t+3],e[t+3]=r},t.prototype.B=function(e,t,r,n,o,i,a,s){for(var u=this.u,c=e[t]^r[0],d=e[t+1]^r[1],l=e[t+2]^r[2],f=e[t+3]^r[3],h=4,p=1;p>>24]^o[d>>>16&255]^i[l>>>8&255]^a[255&f]^r[h++],g=n[d>>>24]^o[l>>>16&255]^i[f>>>8&255]^a[255&c]^r[h++],v=n[l>>>24]^o[f>>>16&255]^i[c>>>8&255]^a[255&d]^r[h++],b=n[f>>>24]^o[c>>>16&255]^i[d>>>8&255]^a[255&l]^r[h++];c=m,d=g,l=v,f=b}var y=(s[c>>>24]<<24|s[d>>>16&255]<<16|s[l>>>8&255]<<8|s[255&f])^r[h++],w=(s[d>>>24]<<24|s[l>>>16&255]<<16|s[f>>>8&255]<<8|s[255&c])^r[h++],_=(s[l>>>24]<<24|s[f>>>16&255]<<16|s[c>>>8&255]<<8|s[255&d])^r[h++],S=(s[f>>>24]<<24|s[c>>>16&255]<<16|s[d>>>8&255]<<8|s[255&l])^r[h++];e[t]=y,e[t+1]=w,e[t+2]=_,e[t+3]=S},t.createEncryptor=function(e,r){return new t(c(c({},r=void 0===r?{}:r),{key:e,transformMode:o.t.ENC_TRANSFORM_MODE}))},t.createDecryptor=function(e,r){return new t(c(c({},r=void 0===r?{}:r),{key:e,transformMode:o.t.DEC_TRANSFORM_MODE}))},t.encrypt=function(e,r,n){if("string"==typeof r)return a.E.encrypt(t,e,r,n);if(r.nSigBytes%4!=0)throw new Error("Key size must be multiple of 32bit/4byte/1word");return s.D.encrypt(t,e,r,n)},t.decrypt=function(e,r,n){if("string"==typeof r)return a.E.decrypt(t,e,r,n);if(r.nSigBytes%4!=0)throw new Error("Key size must be multiple of 32bit/4byte/1word");return s.D.decrypt(t,e,r,n)},t.keySize=8,t}(i.G)},3967:function(e,t,r){r.d(t,{CBCMAC:function(){return s}});var n=r(4768),o=r(3354),i=r(9691),a=r(3664);function s(e,t,r,s,u,c){var d=c&&c.Cipher?c.Cipher:i.AES,l="string"==typeof r?n.d.parse(r):r,f=s||new o.e([0,0]),h="string"==typeof t?n.d.parse(t):t,p="string"==typeof e?n.d.parse(e):e,m=u||16;return a.K.mac(d,l,f,h,p,m)}},9910:function(e,t,r){r.d(t,{DES:function(){return m}});var n,o=r(787),i=r(9456),a=r(5693),s=r(9109),u=(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),c=function(){return(c=Object.assign||function(e){for(var t,r=1,n=arguments.length;r>>5]>>>31-n%32&1}for(var o=this.I=[],i=0;i<16;i++){var a=o[i]=[],s=f[i];for(r=0;r<24;r++)a[r/6|0]|=t[(l[r]-1+s)%28]<<31-r%6,a[4+(r/6|0)]|=t[28+(l[r+24]-1+s)%28]<<31-r%6;for(a[0]=a[0]<<1|a[0]>>>31,r=1;r<7;r++)a[r]=a[r]>>>4*(r-1)+3;a[7]=a[7]<<5|a[7]>>>27}for(this.U=[],r=0;r<16;r++)this.U[r]=o[15-r]},t.prototype.encryptBlock=function(e,t){this.R(e,t,this.I)},t.prototype.decryptBlock=function(e,t){this.R(e,t,this.U)},t.prototype.R=function(e,t,r){this.L=e[t],this.F=e[t+1],this.X(4,252645135),this.X(16,65535),this.Z(2,858993459),this.Z(8,16711935),this.X(1,1431655765);for(var n=0;n<16;n++){for(var o=r[n],i=this.L,a=this.F,s=0,u=0;u<8;u++){var c=(a^o[u])&p[u];s|=h[u][c>>>0]}this.L=a,this.F=i^s}var d=this.L;this.L=this.F,this.F=d,this.X(1,1431655765),this.Z(8,16711935),this.Z(2,858993459),this.X(16,65535),this.X(4,252645135),e[t]=this.L,e[t+1]=this.F},t.prototype.X=function(e,t){var r=(this.L>>>e^this.F)&t;this.F^=r,this.L^=r<>>e^this.L)&t;this.L^=r,this.F^=r<192.");var t=e.slice(0,2),r=e.length<4?e.slice(0,2):e.slice(2,4),n=e.length<6?e.slice(0,2):e.slice(4,6);return[s.DES.createEncryptor(new u.e(t)),s.DES.createEncryptor(new u.e(r)),s.DES.createEncryptor(new u.e(n))]},t.prototype.A=function(){var e=this.J();this.Y=e[0],this.$=e[1],this.nn=e[2]},t.prototype.encryptBlock=function(e,t){this.Y.encryptBlock(e,t),this.$.decryptBlock(e,t),this.nn.encryptBlock(e,t)},t.prototype.decryptBlock=function(e,t){this.nn.decryptBlock(e,t),this.$.encryptBlock(e,t),this.Y.decryptBlock(e,t)},t.createEncryptor=function(e,r){return new t(l(l({},r=void 0===r?{}:r),{key:e,transformMode:a.t.ENC_TRANSFORM_MODE}))},t.createDecryptor=function(e,r){return new t(l(l({},r=void 0===r?{}:r),{key:e,transformMode:a.t.DEC_TRANSFORM_MODE}))},t.encrypt=function(e,r,n){return"string"==typeof r?c.E.encrypt(t,e,r,n):o.D.encrypt(t,e,r,n)},t.decrypt=function(e,r,n){return"string"==typeof r?c.E.decrypt(t,e,r,n):o.D.decrypt(t,e,r,n)},t.keySize=6,t.ivSize=2,t}(i.G)},7753:function(e,t,r){r.d(t,{GMAC:function(){return s}});var n=r(4768),o=r(3354),i=r(9691),a=r(5607);function s(e,t,r,s,u){var c="string"==typeof e?n.d.parse(e):e,d=r||new o.e([0,0,0,0]),l=u&&u.Cipher?u.Cipher:i.AES,f="string"==typeof t?n.d.parse(t):t,h=s||16;return a.V.mac(l,f,d,c,void 0,h)}},6367:function(e,t,r){r.d(t,{Hmac:function(){return o}});var n=r(4768),o=function(){function e(e,t){this.tn=e,"string"==typeof t&&(t=n.d.parse(t));var r=e.blockSize,o=4*r;t.nSigBytes>o&&(t=e.finalize(t)),t.clamp();for(var i=this.rn=t.clone(),a=this.en=t.clone(),s=i.words,u=a.words,c=0;c>>32-i)+t}function c(e,t,r,n,o,i,a){var s=e+(t&n|r&~n)+o+a;return(s<>>32-i)+t}function d(e,t,r,n,o,i,a){var s=e+(t^r^n)+o+a;return(s<>>32-i)+t}function l(e,t,r,n,o,i,a){var s=e+(r^(t|~n))+o+a;return(s<>>32-i)+t}!function(){for(var e=0;e<64;e++)s[e]=4294967296*Math.abs(Math.sin(e+1))|0}();var f=function(e){function t(t){var r=e.call(this,t)||this;return r.on=new o.e([1732584193,4023233417,2562383102,271733878]),t&&void 0!==t.hash&&(r.on=t.hash.clone()),r}return a(t,e),t.prototype.A=function(){this.on=new o.e([1732584193,4023233417,2562383102,271733878])},t.prototype.un=function(e,t){for(var r=0;r<16;r++){var n=t+r,o=e[n];e[n]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8)}var i=this.on.words,a=e[t],f=e[t+1],h=e[t+2],p=e[t+3],m=e[t+4],g=e[t+5],v=e[t+6],b=e[t+7],y=e[t+8],w=e[t+9],_=e[t+10],S=e[t+11],O=e[t+12],k=e[t+13],A=e[t+14],P=e[t+15],M=i[0],E=i[1],C=i[2],N=i[3];M=u(M,E,C,N,a,7,s[0]),N=u(N,M,E,C,f,12,s[1]),C=u(C,N,M,E,h,17,s[2]),E=u(E,C,N,M,p,22,s[3]),M=u(M,E,C,N,m,7,s[4]),N=u(N,M,E,C,g,12,s[5]),C=u(C,N,M,E,v,17,s[6]),E=u(E,C,N,M,b,22,s[7]),M=u(M,E,C,N,y,7,s[8]),N=u(N,M,E,C,w,12,s[9]),C=u(C,N,M,E,_,17,s[10]),E=u(E,C,N,M,S,22,s[11]),M=u(M,E,C,N,O,7,s[12]),N=u(N,M,E,C,k,12,s[13]),C=u(C,N,M,E,A,17,s[14]),M=c(M,E=u(E,C,N,M,P,22,s[15]),C,N,f,5,s[16]),N=c(N,M,E,C,v,9,s[17]),C=c(C,N,M,E,S,14,s[18]),E=c(E,C,N,M,a,20,s[19]),M=c(M,E,C,N,g,5,s[20]),N=c(N,M,E,C,_,9,s[21]),C=c(C,N,M,E,P,14,s[22]),E=c(E,C,N,M,m,20,s[23]),M=c(M,E,C,N,w,5,s[24]),N=c(N,M,E,C,A,9,s[25]),C=c(C,N,M,E,p,14,s[26]),E=c(E,C,N,M,y,20,s[27]),M=c(M,E,C,N,k,5,s[28]),N=c(N,M,E,C,h,9,s[29]),C=c(C,N,M,E,b,14,s[30]),M=d(M,E=c(E,C,N,M,O,20,s[31]),C,N,g,4,s[32]),N=d(N,M,E,C,y,11,s[33]),C=d(C,N,M,E,S,16,s[34]),E=d(E,C,N,M,A,23,s[35]),M=d(M,E,C,N,f,4,s[36]),N=d(N,M,E,C,m,11,s[37]),C=d(C,N,M,E,b,16,s[38]),E=d(E,C,N,M,_,23,s[39]),M=d(M,E,C,N,k,4,s[40]),N=d(N,M,E,C,a,11,s[41]),C=d(C,N,M,E,p,16,s[42]),E=d(E,C,N,M,v,23,s[43]),M=d(M,E,C,N,w,4,s[44]),N=d(N,M,E,C,O,11,s[45]),C=d(C,N,M,E,P,16,s[46]),M=l(M,E=d(E,C,N,M,h,23,s[47]),C,N,a,6,s[48]),N=l(N,M,E,C,b,10,s[49]),C=l(C,N,M,E,A,15,s[50]),E=l(E,C,N,M,g,21,s[51]),M=l(M,E,C,N,O,6,s[52]),N=l(N,M,E,C,p,10,s[53]),C=l(C,N,M,E,_,15,s[54]),E=l(E,C,N,M,f,21,s[55]),M=l(M,E,C,N,y,6,s[56]),N=l(N,M,E,C,P,10,s[57]),C=l(C,N,M,E,v,15,s[58]),E=l(E,C,N,M,k,21,s[59]),M=l(M,E,C,N,m,6,s[60]),N=l(N,M,E,C,S,10,s[61]),C=l(C,N,M,E,h,15,s[62]),E=l(E,C,N,M,w,21,s[63]),i[0]=i[0]+M|0,i[1]=i[1]+E|0,i[2]=i[2]+C|0,i[3]=i[3]+N|0},t.prototype.fn=function(){var e=this.cn,t=e.words,r=8*this.sn,n=8*e.nSigBytes;t[n>>>5]|=128<<24-n%32;var o=Math.floor(r/4294967296),i=r;t[15+(n+64>>>9<<4)]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),t[14+(n+64>>>9<<4)]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8),e.nSigBytes=4*(t.length+1),this.an();for(var a=this.on,s=a.words,u=0;u<4;u++){var c=s[u];s[u]=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8)}return a},t.prototype.clone=function(){return new t({hash:this.on,blockSize:this.N,data:this.cn,nBytes:this.sn})},t.hash=function(e){return(new t).finalize(e)},t}(i.P)},4615:function(e,t,r){r.d(t,{RC4:function(){return c}});var n,o=r(30),i=r(5693),a=r(9109),s=(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),u=function(){return(u=Object.assign||function(e){for(var t,r=1,n=arguments.length;r>>2]>>>24-i%4*8&255;o=(o+this.S[n]+a)%256;var s=this.S[n];this.S[n]=this.S[o],this.S[o]=s}this.i=this.j=0},t.prototype.un=function(e,t){e[t]^=this.generateKeyStreamWord()},t.prototype.generateKeyStreamWord=function(){for(var e=this.S,t=this.i,r=this.j,n=0,o=0;o<4;o++){r=(r+e[t=(t+1)%256])%256;var i=e[t];e[t]=e[r],e[r]=i,n|=e[(e[t]+e[r])%256]<<24-8*o}return this.i=t,this.j=r,n},t.createEncryptor=function(e,r){return new t(u(u({},r=void 0===r?{}:r),{key:e}))},t.createDecryptor=function(e,r){return new t(u(u({},r=void 0===r?{}:r),{key:e}))},t.encrypt=function(e,r,n){return"string"==typeof r?i.E.encrypt(t,e,r,n):a.D.encrypt(t,e,r,n)},t.decrypt=function(e,r,n){return"string"==typeof r?i.E.decrypt(t,e,r,n):a.D.decrypt(t,e,r,n)},t.ivSize=0,t.keySize=8,t}(o.q)},9639:function(e,t,r){r.d(t,{RC4Drop:function(){return c}});var n,o=r(5693),i=r(9109),a=r(4615),s=(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),u=function(){return(u=Object.assign||function(e){for(var t,r=1,n=arguments.length;r0;t--)this.generateKeyStreamWord()},t.createEncryptor=function(e,r){return new t(u(u({},r=void 0===r?{}:r),{key:e}))},t.createDecryptor=function(e,r){return new t(u(u({},r=void 0===r?{}:r),{key:e}))},t.encrypt=function(e,r,n){return"string"==typeof r?o.E.encrypt(t,e,r,n):i.D.encrypt(t,e,r,n)},t.decrypt=function(e,r,n){return"string"==typeof r?o.E.decrypt(t,e,r,n):i.D.decrypt(t,e,r,n)},t}(a.RC4)},7104:function(e,t,r){r.d(t,{RIPEMD160:function(){return y}});var n,o=r(1868),i=r(3354),a=(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),s=new i.e([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),u=new i.e([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),c=new i.e([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),d=new i.e([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),l=new i.e([0,1518500249,1859775393,2400959708,2840853838]),f=new i.e([1352829926,1548603684,1836072691,2053994217,0]);function h(e,t,r){return e^t^r}function p(e,t,r){return e&t|~e&r}function m(e,t,r){return(e|~t)^r}function g(e,t,r){return e&r|t&~r}function v(e,t,r){return e^(t|~r)}function b(e,t){return e<>>32-t}var y=function(e){function t(t){var r=e.call(this,t)||this;return r.on=new i.e([1732584193,4023233417,2562383102,271733878,3285377520]),r.O=t,t&&void 0!==t.hash&&(r.on=t.hash.clone()),r}return a(t,e),t.prototype.A=function(){this.on=new i.e([1732584193,4023233417,2562383102,271733878,3285377520])},t.prototype.un=function(e,t){for(var r=0;r<16;r++){var n=t+r,o=e[n];e[n]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8)}var i,a,y,w,_,S,O,k,A,P,M,E=this.on.words,C=l.words,N=f.words,x=s.words,R=u.words,I=c.words,T=d.words;for(S=i=E[0],O=a=E[1],k=y=E[2],A=w=E[3],P=_=E[4],r=0;r<80;r+=1)M=i+e[t+x[r]]|0,M+=r<16?h(a,y,w)+C[0]:r<32?p(a,y,w)+C[1]:r<48?m(a,y,w)+C[2]:r<64?g(a,y,w)+C[3]:v(a,y,w)+C[4],M=(M=b(M|=0,I[r]))+_|0,i=_,_=w,w=b(y,10),y=a,a=M,M=S+e[t+R[r]]|0,M+=r<16?v(O,k,A)+N[0]:r<32?g(O,k,A)+N[1]:r<48?m(O,k,A)+N[2]:r<64?p(O,k,A)+N[3]:h(O,k,A)+N[4],M=(M=b(M|=0,T[r]))+P|0,S=P,P=A,A=b(k,10),k=O,O=M;M=E[1]+y+A|0,E[1]=E[2]+w+P|0,E[2]=E[3]+_+S|0,E[3]=E[4]+i+O|0,E[4]=E[0]+a+k|0,E[0]=M},t.prototype.fn=function(){var e=this.cn,t=e.words,r=8*this.sn,n=8*e.nSigBytes;t[n>>>5]|=128<<24-n%32,t[14+(n+64>>>9<<4)]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),e.nSigBytes=4*(t.length+1),this.an();for(var o=this.on,i=o.words,a=0;a<5;a++){var s=i[a];i[a]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8)}return o},t.prototype.clone=function(){return new t({hash:this.on,blockSize:this.N,data:this.cn,nBytes:this.sn})},t.hash=function(e,r){return new t(r).finalize(e)},t}(o.P)},5187:function(e,t,r){r.d(t,{Rabbit:function(){return c}});var n,o=r(30),i=r(5693),a=r(9109),s=(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),u=function(){return(u=Object.assign||function(e){for(var t,r=1,n=arguments.length;r>>24)|4278255360&(e[r]<<24|e[r]>>>8);var n=this.hn=[e[0],e[3]<<16|e[2]>>>16,e[1],e[0]<<16|e[3]>>>16,e[2],e[1]<<16|e[0]>>>16,e[3],e[2]<<16|e[1]>>>16],o=this.vn=[e[2]<<16|e[2]>>>16,4294901760&e[0]|65535&e[1],e[3]<<16|e[3]>>>16,4294901760&e[1]|65535&e[2],e[0]<<16|e[0]>>>16,4294901760&e[2]|65535&e[3],e[1]<<16|e[1]>>>16,4294901760&e[3]|65535&e[0]];for(this.wn=0,r=0;r<4;r++)this.nextState();for(r=0;r<8;r++)o[r]^=n[r+4&7];if(t){var i=t.words,a=i[0],s=i[1],u=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),c=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),d=u>>>16|4294901760&c,l=c<<16|65535&u;for(o[0]^=u,o[1]^=d,o[2]^=c,o[3]^=l,o[4]^=u,o[5]^=d,o[6]^=c,o[7]^=l,r=0;r<4;r++)this.nextState()}},t.prototype.un=function(e,t){var r=this.hn;this.nextState(),this.S[0]=r[0]^r[5]>>>16^r[3]<<16,this.S[1]=r[2]^r[7]>>>16^r[5]<<16,this.S[2]=r[4]^r[1]>>>16^r[7]<<16,this.S[3]=r[6]^r[3]>>>16^r[1]<<16;for(var n=0;n<4;n++)this.S[n]=16711935&(this.S[n]<<8|this.S[n]>>>24)|4278255360&(this.S[n]<<24|this.S[n]>>>8),e[t+n]^=this.S[n]},t.prototype.nextState=function(){for(var e=this.hn,t=this.vn,r=0;r<8;r++)this.C[r]=t[r];for(t[0]=t[0]+1295307597+this.wn|0,t[1]=t[1]+3545052371+(t[0]>>>0>>0?1:0)|0,t[2]=t[2]+886263092+(t[1]>>>0>>0?1:0)|0,t[3]=t[3]+1295307597+(t[2]>>>0>>0?1:0)|0,t[4]=t[4]+3545052371+(t[3]>>>0>>0?1:0)|0,t[5]=t[5]+886263092+(t[4]>>>0>>0?1:0)|0,t[6]=t[6]+1295307597+(t[5]>>>0>>0?1:0)|0,t[7]=t[7]+3545052371+(t[6]>>>0>>0?1:0)|0,this.wn=t[7]>>>0>>0?1:0,r=0;r<8;r++){var n=e[r]+t[r],o=65535&n,i=n>>>16,a=((o*o>>>17)+o*i>>>15)+i*i,s=((4294901760&n)*n|0)+((65535&n)*n|0);this.G[r]=a^s}var u=this.G;e[0]=u[0]+(u[7]<<16|u[7]>>>16)+(u[6]<<16|u[6]>>>16)|0,e[1]=u[1]+(u[0]<<8|u[0]>>>24)+u[7]|0,e[2]=u[2]+(u[1]<<16|u[1]>>>16)+(u[0]<<16|u[0]>>>16)|0,e[3]=u[3]+(u[2]<<8|u[2]>>>24)+u[1]|0,e[4]=u[4]+(u[3]<<16|u[3]>>>16)+(u[2]<<16|u[2]>>>16)|0,e[5]=u[5]+(u[4]<<8|u[4]>>>24)+u[3]|0,e[6]=u[6]+(u[5]<<16|u[5]>>>16)+(u[4]<<16|u[4]>>>16)|0,e[7]=u[7]+(u[6]<<8|u[6]>>>24)+u[5]|0},t.createEncryptor=function(e,r){return new t(u(u({},r=void 0===r?{}:r),{key:e}))},t.createDecryptor=function(e,r){return new t(u(u({},r=void 0===r?{}:r),{key:e}))},t.encrypt=function(e,r,n){return"string"==typeof r?i.E.encrypt(t,e,r,n):a.D.encrypt(t,e,r,n)},t.decrypt=function(e,r,n){return"string"==typeof r?i.E.decrypt(t,e,r,n):a.D.decrypt(t,e,r,n)},t.ivSize=4,t}(o.q)},3173:function(e,t,r){r.d(t,{SHA1:function(){return u}});var n,o=r(1868),i=r(3354),a=(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),s=[],u=function(e){function t(t){var r=e.call(this,t)||this;return r.on=new i.e([1732584193,4023233417,2562383102,271733878,3285377520]),r.O=t,t&&void 0!==t.hash&&(r.on=t.hash.clone()),r}return a(t,e),t.prototype.A=function(){this.on=new i.e([1732584193,4023233417,2562383102,271733878,3285377520])},t.prototype.un=function(e,t){for(var r=this.on.words,n=r[0],o=r[1],i=r[2],a=r[3],u=r[4],c=0;c<80;c++){if(c<16)s[c]=0|e[t+c];else{var d=s[c-3]^s[c-8]^s[c-14]^s[c-16];s[c]=d<<1|d>>>31}var l=(n<<5|n>>>27)+u+s[c];l+=c<20?1518500249+(o&i|~o&a):c<40?1859775393+(o^i^a):c<60?(o&i|o&a|i&a)-1894007588:(o^i^a)-899497514,u=a,a=i,i=o<<30|o>>>2,o=n,n=l}r[0]=r[0]+n|0,r[1]=r[1]+o|0,r[2]=r[2]+i|0,r[3]=r[3]+a|0,r[4]=r[4]+u|0},t.prototype.fn=function(){var e=this.cn.words,t=8*this.sn,r=8*this.cn.nSigBytes;return e[r>>>5]|=128<<24-r%32,e[14+(r+64>>>9<<4)]=Math.floor(t/4294967296),e[15+(r+64>>>9<<4)]=t,this.cn.nSigBytes=4*e.length,this.an(),this.on},t.prototype.clone=function(){return new t({hash:this.on,blockSize:this.N,data:this.cn,nBytes:this.sn})},t.hash=function(e,r){return new t(r).finalize(e)},t}(o.P)},766:function(e,t,r){r.d(t,{SHA224:function(){return s}});var n,o=r(3354),i=r(5561),a=(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),s=function(e){function t(t){var r=e.call(this,t)||this;return r.on=new o.e([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]),r.O=t,t&&void 0!==t.hash&&(r.on=t.hash.clone()),r}return a(t,e),t.prototype.A=function(){this.on=new o.e([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},t.prototype.fn=function(){var t=e.prototype.fn.call(this);return t.nSigBytes-=4,t},t.prototype.clone=function(){return new t({hash:this.on,blockSize:this.N,data:this.cn,nBytes:this.sn})},t.hash=function(e,r){return new t(r).finalize(e)},t}(i.SHA256)},5561:function(e,t,r){r.d(t,{SHA256:function(){return f}});var n,o=r(1868),i=r(3354),a=(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),s=[],u=[];function c(e){for(var t=Math.sqrt(e),r=2;r<=t;r++)if(!(e%r))return!1;return!0}function d(e){return 4294967296*(e-(0|e))|0}!function(){for(var e=2,t=0;t<64;)c(e)&&(t<8&&(s[t]=d(Math.pow(e,.5))),u[t]=d(Math.pow(e,1/3)),t++),e++}();var l=[],f=function(e){function t(t){var r=e.call(this,t)||this;return r.on=new i.e(s.slice(0)),r.O=t,t&&void 0!==t.hash&&(r.on=t.hash.clone()),r}return a(t,e),t.prototype.A=function(){this.on=new i.e(s.slice(0))},t.prototype.un=function(e,t){for(var r=this.on.words,n=r[0],o=r[1],i=r[2],a=r[3],s=r[4],c=r[5],d=r[6],f=r[7],h=0;h<64;h++){if(h<16)l[h]=0|e[t+h];else{var p=l[h-15],m=(p<<25|p>>>7)^(p<<14|p>>>18)^p>>>3,g=l[h-2],v=(g<<15|g>>>17)^(g<<13|g>>>19)^g>>>10;l[h]=m+l[h-7]+v+l[h-16]}var b=n&o^n&i^o&i,y=(n<<30|n>>>2)^(n<<19|n>>>13)^(n<<10|n>>>22),w=f+((s<<26|s>>>6)^(s<<21|s>>>11)^(s<<7|s>>>25))+(s&c^~s&d)+u[h]+l[h];f=d,d=c,c=s,s=a+w|0,a=i,i=o,o=n,n=w+(y+b)|0}r[0]=r[0]+n|0,r[1]=r[1]+o|0,r[2]=r[2]+i|0,r[3]=r[3]+a|0,r[4]=r[4]+s|0,r[5]=r[5]+c|0,r[6]=r[6]+d|0,r[7]=r[7]+f|0},t.prototype.fn=function(){var e=this.cn.words,t=8*this.sn,r=8*this.cn.nSigBytes;return e[r>>>5]|=128<<24-r%32,e[14+(r+64>>>9<<4)]=Math.floor(t/4294967296),e[15+(r+64>>>9<<4)]=t,this.cn.nSigBytes=4*e.length,this.an(),this.on},t.prototype.clone=function(){return new t({hash:this.on,blockSize:this.N,data:this.cn,nBytes:this.sn})},t.hash=function(e,r){return new t(r).finalize(e)},t}(o.P)},3408:function(e,t,r){r.d(t,{SHA3:function(){return f}});var n,o=r(6957),i=r(1868),a=r(3354),s=(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),u=[],c=[],d=[];!function(){for(var e=1,t=0,r=0;r<24;r++){u[e+5*t]=(r+1)*(r+2)/2%64;var n=(2*e+3*t)%5;e=t%5,t=n}for(var i=0;i<5;i++)for(var a=0;a<5;a++)c[i+5*a]=a+(2*i+3*a)%5*5;for(var s=1,l=0;l<24;l++){for(var f=0,h=0,p=0;p<7;p++){if(1&s){var m=(1<>>24)|4278255360&(i<<24|i>>>8),a=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),r[o].high^=a,r[o].low^=i}for(var s=0;s<24;s++){for(var f=0;f<5;f++){for(var h=0,p=0,m=0;m<5;m++)h^=(E=r[f+5*m]).high,p^=E.low;var g=l[f];g.high=h,g.low=p}for(f=0;f<5;f++){var v=l[(f+4)%5],b=l[(f+1)%5],y=b.high,w=b.low;for(h=v.high^(y<<1|w>>>31),p=v.low^(w<<1|y>>>31),m=0;m<5;m++)(E=r[f+5*m]).high^=h,E.low^=p}for(var _=1;_<25;_++){h=void 0,p=void 0;var S=r[_].high,O=r[_].low,k=u[_];k<32?(h=S<>>32-k,p=O<>>32-k):(h=O<>>64-k,p=S<>>64-k);var A=l[c[_]];A.high=h,A.low=p}var P=l[0],M=r[0];for(P.high=M.high,P.low=M.low,f=0;f<5;f++)for(m=0;m<5;m++){var E=r[_=f+5*m],C=l[_],N=l[(f+1)%5+5*m],x=l[(f+2)%5+5*m];E.high=C.high^~N.high&x.high,E.low=C.low^~N.low&x.low}var R=r[0],I=d[s];R.high^=I.high,R.low^=I.low}},t.prototype.fn=function(){var e=this.cn,t=e.words,r=8*e.nSigBytes,n=32*this.blockSize;t[r>>>5]|=1<<24-r%32,t[(Math.ceil((r+1)/n)*n>>>5)-1]|=128,e.nSigBytes=4*t.length,this.an();for(var o=this.bn,i=this.dn/8,s=i/8,u=[],c=0;c>>24)|4278255360&(l<<24|l>>>8),f=16711935&(f<<8|f>>>24)|4278255360&(f<<24|f>>>8),u.push(f),u.push(l)}return new a.e(u,i)},t.prototype.clone=function(){return new t({outputLength:this.dn,state:this.bn,blockSize:this.N,data:this.cn,nBytes:this.sn})},t.hash=function(e,r){return new t(r).finalize(e)},t}(i.P)},6324:function(e,t,r){r.d(t,{SHA384:function(){return s}});var n,o=r(6957),i=r(7491),a=(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),s=function(e){function t(t){var r=e.call(this,t)||this;return r.on=new o.m([new o.r(3418070365,3238371032),new o.r(1654270250,914150663),new o.r(2438529370,812702999),new o.r(355462360,4144912697),new o.r(1731405415,4290775857),new o.r(2394180231,1750603025),new o.r(3675008525,1694076839),new o.r(1203062813,3204075428)]),r.O=t,t&&void 0!==t.hash&&(r.on=t.hash.clone()),r}return a(t,e),t.prototype.A=function(){this.on=new o.m([new o.r(3418070365,3238371032),new o.r(1654270250,914150663),new o.r(2438529370,812702999),new o.r(355462360,4144912697),new o.r(1731405415,4290775857),new o.r(2394180231,1750603025),new o.r(3675008525,1694076839),new o.r(1203062813,3204075428)])},t.prototype.fn=function(){var t=e.prototype.fn.call(this);return t.nSigBytes-=16,t},t.prototype.clone=function(){return new t({hash:this.on,blockSize:this.N,data:this.cn,nBytes:this.sn})},t.hash=function(e,r){return new t(r).finalize(e)},t}(i.SHA512)},7491:function(e,t,r){r.d(t,{SHA512:function(){return c}});var n,o=r(1868),i=r(6957),a=(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),s=[new i.r(1116352408,3609767458),new i.r(1899447441,602891725),new i.r(3049323471,3964484399),new i.r(3921009573,2173295548),new i.r(961987163,4081628472),new i.r(1508970993,3053834265),new i.r(2453635748,2937671579),new i.r(2870763221,3664609560),new i.r(3624381080,2734883394),new i.r(310598401,1164996542),new i.r(607225278,1323610764),new i.r(1426881987,3590304994),new i.r(1925078388,4068182383),new i.r(2162078206,991336113),new i.r(2614888103,633803317),new i.r(3248222580,3479774868),new i.r(3835390401,2666613458),new i.r(4022224774,944711139),new i.r(264347078,2341262773),new i.r(604807628,2007800933),new i.r(770255983,1495990901),new i.r(1249150122,1856431235),new i.r(1555081692,3175218132),new i.r(1996064986,2198950837),new i.r(2554220882,3999719339),new i.r(2821834349,766784016),new i.r(2952996808,2566594879),new i.r(3210313671,3203337956),new i.r(3336571891,1034457026),new i.r(3584528711,2466948901),new i.r(113926993,3758326383),new i.r(338241895,168717936),new i.r(666307205,1188179964),new i.r(773529912,1546045734),new i.r(1294757372,1522805485),new i.r(1396182291,2643833823),new i.r(1695183700,2343527390),new i.r(1986661051,1014477480),new i.r(2177026350,1206759142),new i.r(2456956037,344077627),new i.r(2730485921,1290863460),new i.r(2820302411,3158454273),new i.r(3259730800,3505952657),new i.r(3345764771,106217008),new i.r(3516065817,3606008344),new i.r(3600352804,1432725776),new i.r(4094571909,1467031594),new i.r(275423344,851169720),new i.r(430227734,3100823752),new i.r(506948616,1363258195),new i.r(659060556,3750685593),new i.r(883997877,3785050280),new i.r(958139571,3318307427),new i.r(1322822218,3812723403),new i.r(1537002063,2003034995),new i.r(1747873779,3602036899),new i.r(1955562222,1575990012),new i.r(2024104815,1125592928),new i.r(2227730452,2716904306),new i.r(2361852424,442776044),new i.r(2428436474,593698344),new i.r(2756734187,3733110249),new i.r(3204031479,2999351573),new i.r(3329325298,3815920427),new i.r(3391569614,3928383900),new i.r(3515267271,566280711),new i.r(3940187606,3454069534),new i.r(4118630271,4000239992),new i.r(116418474,1914138554),new i.r(174292421,2731055270),new i.r(289380356,3203993006),new i.r(460393269,320620315),new i.r(685471733,587496836),new i.r(852142971,1086792851),new i.r(1017036298,365543100),new i.r(1126000580,2618297676),new i.r(1288033470,3409855158),new i.r(1501505948,4234509866),new i.r(1607167915,987167468),new i.r(1816402316,1246189591)],u=[];!function(){for(var e=0;e<80;e++)u[e]=new i.r(0,0)}();var c=function(e){function t(t){var r=e.call(this,t)||this;return r.N=32,r.on=new i.m([new i.r(1779033703,4089235720),new i.r(3144134277,2227873595),new i.r(1013904242,4271175723),new i.r(2773480762,1595750129),new i.r(1359893119,2917565137),new i.r(2600822924,725511199),new i.r(528734635,4215389547),new i.r(1541459225,327033209)]),r.O=t,t&&void 0!==t.hash&&(r.on=t.hash.clone()),r}return a(t,e),t.prototype.A=function(){this.on=new i.m([new i.r(1779033703,4089235720),new i.r(3144134277,2227873595),new i.r(1013904242,4271175723),new i.r(2773480762,1595750129),new i.r(1359893119,2917565137),new i.r(2600822924,725511199),new i.r(528734635,4215389547),new i.r(1541459225,327033209)])},t.prototype.un=function(e,t){for(var r=this.on.words,n=r[0],o=r[1],i=r[2],a=r[3],c=r[4],d=r[5],l=r[6],f=r[7],h=n.high,p=n.low,m=o.high,g=o.low,v=i.high,b=i.low,y=a.high,w=a.low,_=c.high,S=c.low,O=d.high,k=d.low,A=l.high,P=l.low,M=f.high,E=f.low,C=h,N=p,x=m,R=g,I=v,T=b,j=y,D=w,B=_,U=S,J=O,H=k,L=A,z=P,V=M,q=E,F=0;F<80;F++){var Z=void 0,W=void 0,K=u[F];if(F<16)W=K.high=0|e[t+2*F],Z=K.low=0|e[t+2*F+1];else{var G=u[F-15],Y=G.high,$=G.low,X=(Y>>>1|$<<31)^(Y>>>8|$<<24)^Y>>>7,Q=($>>>1|Y<<31)^($>>>8|Y<<24)^($>>>7|Y<<25),ee=u[F-2],te=ee.high,re=ee.low,ne=(te>>>19|re<<13)^(te<<3|re>>>29)^te>>>6,oe=(re>>>19|te<<13)^(re<<3|te>>>29)^(re>>>6|te<<26),ie=u[F-7],ae=ie.high,se=ie.low,ue=u[F-16],ce=ue.high,de=ue.low;W=(W=(W=X+ae+((Z=Q+se)>>>0>>0?1:0))+ne+((Z+=oe)>>>0>>0?1:0))+ce+((Z+=de)>>>0>>0?1:0),K.high=W,K.low=Z}var le=B&J^~B&L,fe=U&H^~U&z,he=C&x^C&I^x&I,pe=N&R^N&T^R&T,me=(C>>>28|N<<4)^(C<<30|N>>>2)^(C<<25|N>>>7),ge=(N>>>28|C<<4)^(N<<30|C>>>2)^(N<<25|C>>>7),ve=(B>>>14|U<<18)^(B>>>18|U<<14)^(B<<23|U>>>9),be=(U>>>14|B<<18)^(U>>>18|B<<14)^(U<<23|B>>>9),ye=s[F],we=ye.high,_e=ye.low,Se=q+be,Oe=V+ve+(Se>>>0>>0?1:0),ke=ge+pe;V=L,q=z,L=J,z=H,J=B,H=U,B=j+(Oe=(Oe=(Oe=Oe+le+((Se+=fe)>>>0>>0?1:0))+we+((Se+=_e)>>>0<_e>>>0?1:0))+W+((Se+=Z)>>>0>>0?1:0))+((U=D+Se|0)>>>0>>0?1:0)|0,j=I,D=T,I=x,T=R,x=C,R=N,C=Oe+(me+he+(ke>>>0>>0?1:0))+((N=Se+ke|0)>>>0>>0?1:0)|0}p=n.low=p+N,n.high=h+C+(p>>>0>>0?1:0),g=o.low=g+R,o.high=m+x+(g>>>0>>0?1:0),b=i.low=b+T,i.high=v+I+(b>>>0>>0?1:0),w=a.low=w+D,a.high=y+j+(w>>>0>>0?1:0),S=c.low=S+U,c.high=_+B+(S>>>0>>0?1:0),k=d.low=k+H,d.high=O+J+(k>>>0>>0?1:0),P=l.low=P+z,l.high=A+L+(P>>>0>>0?1:0),E=f.low=E+q,f.high=M+V+(E>>>0>>0?1:0)},t.prototype.fn=function(){var e=this.cn,t=e.words,r=8*this.sn,n=8*e.nSigBytes;return t[n>>>5]|=128<<24-n%32,t[30+(n+128>>>10<<5)]=Math.floor(r/4294967296),t[31+(n+128>>>10<<5)]=r,e.nSigBytes=4*t.length,this.an(),this.on.to32()},t.prototype.clone=function(){return new t({hash:this.on,blockSize:this.N,data:this.cn,nBytes:this.sn})},t.hash=function(e,r){return new t(r).finalize(e)},t}(o.P)},3354:function(e,t,r){r.d(t,{e:function(){return i}});var n=r(5720),o=r(9054),i=function(){function e(t,r){if(Array.isArray(t)||!t)return this.yn=Array.isArray(t)?t:[],void(this.pn="number"==typeof r?r:4*this.yn.length);if(t instanceof e)return this.yn=t.words.slice(),void(this.pn=t.nSigBytes);var n;try{t instanceof ArrayBuffer?n=new Uint8Array(t):(t instanceof Uint8Array||t instanceof Int8Array||t instanceof Uint8ClampedArray||t instanceof Int16Array||t instanceof Uint16Array||t instanceof Int32Array||t instanceof Uint32Array||t instanceof Float32Array||t instanceof Float64Array)&&(n=new Uint8Array(t.buffer,t.byteOffset,t.byteLength))}catch(e){throw new Error("Invalid argument")}if(!n)throw new Error("Invalid argument");for(var o=n.byteLength,i=[],a=0;a>>2]|=n[a]<<24-a%4*8;this.yn=i,this.pn=o}return Object.defineProperty(e.prototype,"nSigBytes",{get:function(){return this.pn},set:function(e){this.pn=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"words",{get:function(){return this.yn},enumerable:!1,configurable:!0}),e.prototype.toString=function(e){return e?e.stringify(this):n.p.stringify(this)},e.prototype.toUint8Array=function(){for(var e=this.yn,t=this.pn,r=new Uint8Array(t),n=0;n>>2]>>>24-n%4*8&255;return r},e.prototype.concat=function(e){var t=e.words.slice(),r=e.nSigBytes;if(this.clamp(),this.pn%4)for(var n=0;n>>2]>>>24-n%4*8&255;this.yn[this.pn+n>>>2]|=o<<24-(this.pn+n)%4*8}else for(n=0;n>>2]=t[n>>>2];return this.pn+=r,this},e.prototype.clamp=function(){var e=this.pn;this.yn[e>>>2]&=4294967295<<32-e%4*8,this.yn.length=Math.ceil(e/4)},e.prototype.clone=function(){return new e(this.yn.slice(),this.pn)},e.random=function(t){for(var r=[],n=0;n0&&o.push(0),e.concat(new n.e(o,r))}}function i(e,t){return new n.e(e.words.slice(),t)}function a(e,t){for(var r=e.nSigBytes-t,o=[],i=0;i>>2,s=r+i,u=s>>>2,c=e.words[u]>>>24-s%4*8&255;o[a]=0|o[a]|c<<24-i%4*8}var d=new n.e(o,t);return d.clamp(),d}},7919:function(e,t,r){r.d(t,{l:function(){return o}});var n=r(3354),o={pad:function(e,t){for(var r=4*t,o=r-e.nSigBytes%r,i=o<<24|o<<16|o<<8|o,a=[],s=0;s>>2];e.nSigBytes-=t}}},1756:function(e,t,r){r.d(t,{w:function(){return a}});var n,o="undefined"!=typeof navigator&&navigator.userAgent?navigator.userAgent.toLowerCase():"",i=(n=parseInt((/msie (\d+)/.exec(o)||[])[1],10),isNaN(n)?(n=parseInt((/trident\/.*; rv:(\d+)/.exec(o)||[])[1],10),!isNaN(n)&&n):n);function a(e,t){return!1!==i&&(!t||("<"===e?i"===e?i>t:">="===e?i>=t:i===t))}},1773:function(e,t,r){r.d(t,{D:function(){return s}});for(var n=r(3354),o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",i=[],a=0;a>>2]>>>24-i%4*8&255)<<16|(t[i+1>>>2]>>>24-(i+1)%4*8&255)<<8|t[i+2>>>2]>>>24-(i+2)%4*8&255,s=0;s<4&&i+.75*s>>6*(3-s)&63));var u=o.charAt(64);if(u)for(;n.length%4;)n.push(u);return n.join("")},parse:function(e){var t=e.length,r=o.charAt(64);if(r){var a=e.indexOf(r);-1!==a&&(t=a)}for(var s=[],u=0,c=0;c>>6-c%4*2;s[u>>>2]|=d<<24-u%4*8,u++}return new n.e(s,u)}}},5720:function(e,t,r){r.d(t,{p:function(){return o}});var n=r(3354),o={stringify:function(e){for(var t=e.nSigBytes,r=e.words,n=[],o=0;o>>2]>>>24-o%4*8&255;n.push((i>>>4).toString(16)),n.push((15&i).toString(16))}return n.join("")},parse:function(e){var t=e.length;if(t%2!=0)throw new Error("Hex string count must be even");if(!/^[a-fA-F0-9]+$/.test(e))throw new Error("Invalid Hex string: "+e);for(var r=[],o=0;o>>3]|=parseInt(e.substr(o,2),16)<<24-o%8*4;return new n.e(r,t/2)}}},8702:function(e,t,r){r.d(t,{m:function(){return o}});var n=r(3354),o={stringify:function(e){for(var t=e.nSigBytes,r=e.words,n=[],o=0;o>>2]>>>24-o%4*8&255;n.push(String.fromCharCode(i))}return n.join("")},parse:function(e){for(var t=e.length,r=[],o=0;o>>2]|=(255&e.charCodeAt(o))<<24-o%4*8;return new n.e(r,t)}}},4768:function(e,t,r){r.d(t,{d:function(){return o}});var n=r(8702),o={stringify:function(e){try{return decodeURIComponent(escape(n.m.stringify(e)))}catch(e){throw new Error("Malformed UTF-8 data")}},parse:function(e){return n.m.parse(unescape(encodeURIComponent(e)))}}},2688:function(e,t,r){r.d(t,{Base64:function(){return i.D},EvpKDF:function(){return y},Hex:function(){return u.p},Latin1:function(){return s.m},OpenSSLKDF:function(){return p.s},PBKDF2:function(){return m.E},Utf16:function(){return h},Utf16BE:function(){return c},Utf16LE:function(){return f},Utf8:function(){return a.d},Word32Array:function(){return n.e},Word64:function(){return o.r},Word64Array:function(){return o.m}}),r(9054);var n=r(3354),o=r(6957),i=(r(1756),r(1773)),a=r(4768),s=r(8702),u=r(5720),c={stringify:function(e){for(var t=e.words,r=e.nSigBytes,n=[],o=0;o>>2]>>>16-o%4*8&65535;n.push(String.fromCharCode(i))}return n.join("")},parse:function(e){for(var t=e.length,r=[],o=0;o>>1]|=e.charCodeAt(o)<<16-o%2*16;return new n.e(r,2*t)}};function d(e){return e<<8&4278255360|e>>>8&16711935}var l,f={stringify:function(e){for(var t=e.words,r=e.nSigBytes,n=[],o=0;o>>2]>>>16-o%4*8&65535);n.push(String.fromCharCode(i))}return n.join("")},parse:function(e){for(var t=e.length,r=[],o=0;o>>1]|=d(e.charCodeAt(o)<<16-o%2*16);return new n.e(r,2*t)}},h=c,p=r(2214),m=r(7008),g=r(670),v=r(9541),b=(l=function(e,t){return(l=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}l(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),y=function(e){function t(t){var r=e.call(this,t)||this;return r.Sn=4,r.Mn=g.MD5,r.kn=1,t&&(r.Sn=void 0!==t.keySize?t.keySize:r.Sn,r.Mn=void 0!==t.Hasher?t.Hasher:r.Mn,r.kn=void 0!==t.iterations?t.iterations:r.kn),r}return b(t,e),t.prototype.compute=function(e,t){for(var r,o=new this.Mn,i=new n.e,a=i.words,s=this.Sn,u=this.kn;a.length13||o.nSigBytes<7))throw new Error("Byte size of iv must be between 7 and 13");return r.Nn=o||new i.e([0,0],8),r.In=15-r.Nn.nSigBytes,r}return s(t,e),t.getB0=function(e,t,r,n){if(r.nSigBytes+n.nSigBytes!==15)throw new Error("LEN(Q)+LEN(N) must be 15");var o=255&(0|(e?1:0)<<6|(t-2)/2<<3|r.nSigBytes-1),a=n.clone().concat(r);return new i.e([o<<24],1).concat(a)},t.formatAssociatedDataAndPayload=function(e,t){var r,n=e.nSigBytes;if(0===n)r=new i.e([0],0);else if(n4?(o.concat(new i.e([0],e%4)),o.concat(new i.e([r],4))):o.concat(new i.e([r<<32-8*e],e)):o.concat(new i.e([r],4)),n.concat(t).concat(o)},t.mac=function(e,r,n,o,s,u){var c=new e({key:r,iv:n});if(4!==c.blockSize)throw new Error("In CCM, cipher block size must be 128bit");if(n&&(n.nSigBytes>13||n.nSigBytes<7))throw new Error("Byte size of iv must be between 7 and 13");var d=n||new i.e([0,0],8),l=(null==o?void 0:o.clone())||new i.e,f=l.nSigBytes,h=(null==s?void 0:s.clone())||new i.e,p=h.nSigBytes;if(p>>>0>4294967295)throw new Error("Byte length of Payload(plainText) larger than 2^32-1 (4,294,967,295byte) is not supported at this time.");var m=15-d.nSigBytes,g=(0,a.ur)(new i.e([0,p],8),m),v=u||16,b=t.getB0(Boolean(f),v,g,d),y=t.formatAssociatedDataAndPayload(l,h),w=b.words.slice();c.encryptBlock(w,0);for(var _=y.nSigBytes/16,S=y.words,O=w,k=0;k<_;k++){var A=[S[4*k]^O[0],S[4*k+1]^O[1],S[4*k+2]^O[2],S[4*k+3]^O[3]];c.encryptBlock(A,0),O=A}var P=new i.e(O,v),M=t.genCtr(m,d,0);for(c.encryptBlock(M.words,0),k=0;k<4;k++)P.words[k]^=M.words[k];return P.clamp(),P},t.combineCipherTextAndAuthTag=function(e,t){return e.clone().concat(t)},t.splitCipherTextAndAuthTag=function(e,t){var r=t||16;return{cipherText:(0,a.z6)(e,e.nSigBytes-r),authTag:(0,a.ur)(e,r)}},t.createEncryptor=function(e){return new t.Encryptor(e)},t.createDecryptor=function(e){return new t.Decryptor(e)},t.Encryptor=function(e){function r(){return null!==e&&e.apply(this,arguments)||this}return s(r,e),r.prototype.processBlock=function(e,r){var n=this.Hn,o=n.blockSize,i=t.genCtr(this.In,this.Nn,this.Bn);n.encryptBlock(i.words,0);for(var a=0;a0?4-r.length%4:0,i=r.slice(),a=0;a>>0,n=r+1>>>0>>0,i=o+1>>>0>>5]>>>31-i%32&1)>0&&(n[0]=n[0]^o[0],n[1]=n[1]^o[1],n[2]=n[2]^o[2],n[3]=n[3]^o[3]);var a=(1&o[3])>>>0,s=(1&o[0])>>>0,u=(1&o[1])>>>0,c=(1&o[2])>>>0;o[0]=o[0]>>>1,o[1]=o[1]>>>1|(s?2147483648:0),o[2]=o[2]>>>1|(u?2147483648:0),o[3]=o[3]>>>1|(c?2147483648:0),a>0&&(o[0]^=r[0],o[1]^=r[1],o[2]^=r[2],o[3]^=r[3])}return n},t.GHASH=function(e,r){if(e.length%4!=0)throw new Error("Length of 32bit word array 'H' must be multiple of 4(128bit)");if(r.length%4!=0)throw new Error("Length of 32bit word array 'X' must be multiple of 4(128bit)");for(var n=r.length,o=[0,0,0,0],i=0;i0){var O=o[4*u+y]<<32-8*S^s[u][y];v.push(O),b+=S}var k=new i.e(v,b);d.concat(k)}}return d.nSigBytes=n.nSigBytes,d.clamp(),d},t.mac=function(e,r,n,o,s,u){var c=new e({key:r,iv:n}),d=[0,0,0,0];c.encryptBlock(d,0);var l=t.getJ0(d,n.words),f=(null==o?void 0:o.clone())||new i.e,h=[0,8*f.nSigBytes],p=(null==s?void 0:s.clone())||new i.e,m=[0,8*p.nSigBytes],g=u||16;(0,a.I4)(f),(0,a.I4)(p);var v=f.words.concat(p.words).concat(h).concat(m),b=t.GHASH(d,v),y=t.GCTR(c,l,new i.e(b));return(0,a.z6)(y,g)},t.createEncryptor=function(e){return new t.Encryptor(e)},t.createDecryptor=function(e){return new t.Decryptor(e)},t.Encryptor=function(e){function r(){return null!==e&&e.apply(this,arguments)||this}return s(r,e),r.prototype.processBlock=function(e,r){var n=this.Hn.blockSize;this.Un=t.inc32(this.Un);for(var o=new i.e(e.slice(r,r+n)),a=t.GCTR(this.Hn,this.Un,o),s=0;s>>2];e.nSigBytes-=t}},q={pad:function(e,t){var r=4*t;e.clamp(),e.nSigBytes+=r-(e.nSigBytes%r||r)},unpad:function(e){for(var t=e.words,r=e.nSigBytes-1;r>=0;r--)if(t[r>>>2]>>>24-r%4*8&255){e.nSigBytes=r+1;break}}},F={pad:function(e,t){e.concat(new z.e([2147483648],1)),q.pad(e,t)},unpad:function(e){q.unpad(e),e.nSigBytes-=1}},Z=n(7919),W=n(1232),K={CBC:N.n,CFB:I,CTR:j,ECB:B,OFB:J,GCM:H.V,CCM:L.K},G={AnsiX923:{pad:function(e,t){var r=e.nSigBytes,n=4*t,o=n-r%n,i=r+o-1;e.clamp(),e.words[i>>>2]|=o<<24-i%4*8,e.nSigBytes+=o},unpad:function(e){var t=255&e.words[e.nSigBytes-1>>>2];e.nSigBytes-=t}},ISO10126:V,ISO97971:F,Pkcs7:Z.l,NoPadding:{pad:function(e,t){},unpad:function(e){}},Zero:q},Y={OpenSSLFormatter:W.w}}(),o}()},43720:e=>{e.exports=r;var t=null;try{t=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch(e){}function r(e,t,r){this.low=0|e,this.high=0|t,this.unsigned=!!r}function n(e){return!0===(e&&e.__isLong__)}r.prototype.__isLong__,Object.defineProperty(r.prototype,"__isLong__",{value:!0}),r.isLong=n;var o={},i={};function a(e,t){var r,n,a;return t?(a=0<=(e>>>=0)&&e<256)&&(n=i[e])?n:(r=u(e,(0|e)<0?-1:0,!0),a&&(i[e]=r),r):(a=-128<=(e|=0)&&e<128)&&(n=o[e])?n:(r=u(e,e<0?-1:0,!1),a&&(o[e]=r),r)}function s(e,t){if(isNaN(e))return t?v:g;if(t){if(e<0)return v;if(e>=h)return S}else{if(e<=-p)return O;if(e+1>=p)return _}return e<0?s(-e,t).neg():u(e%f|0,e/f|0,t)}function u(e,t,n){return new r(e,t,n)}r.fromInt=a,r.fromNumber=s,r.fromBits=u;var c=Math.pow;function d(e,t,r){if(0===e.length)throw Error("empty string");if("NaN"===e||"Infinity"===e||"+Infinity"===e||"-Infinity"===e)return g;if("number"==typeof t?(r=t,t=!1):t=!!t,(r=r||10)<2||360)throw Error("interior hyphen");if(0===n)return d(e.substring(1),t,r).neg();for(var o=s(c(r,8)),i=g,a=0;a>>0:this.low},k.toNumber=function(){return this.unsigned?(this.high>>>0)*f+(this.low>>>0):this.high*f+(this.low>>>0)},k.toString=function(e){if((e=e||10)<2||36>>0).toString(e);if((i=u).isZero())return d+a;for(;d.length<6;)d="0"+d;a=""+d+a}},k.getHighBits=function(){return this.high},k.getHighBitsUnsigned=function(){return this.high>>>0},k.getLowBits=function(){return this.low},k.getLowBitsUnsigned=function(){return this.low>>>0},k.getNumBitsAbs=function(){if(this.isNegative())return this.eq(O)?64:this.neg().getNumBitsAbs();for(var e=0!=this.high?this.high:this.low,t=31;t>0&&0==(e&1<=0},k.isOdd=function(){return 1==(1&this.low)},k.isEven=function(){return 0==(1&this.low)},k.equals=function(e){return n(e)||(e=l(e)),(this.unsigned===e.unsigned||this.high>>>31!=1||e.high>>>31!=1)&&this.high===e.high&&this.low===e.low},k.eq=k.equals,k.notEquals=function(e){return!this.eq(e)},k.neq=k.notEquals,k.ne=k.notEquals,k.lessThan=function(e){return this.comp(e)<0},k.lt=k.lessThan,k.lessThanOrEqual=function(e){return this.comp(e)<=0},k.lte=k.lessThanOrEqual,k.le=k.lessThanOrEqual,k.greaterThan=function(e){return this.comp(e)>0},k.gt=k.greaterThan,k.greaterThanOrEqual=function(e){return this.comp(e)>=0},k.gte=k.greaterThanOrEqual,k.ge=k.greaterThanOrEqual,k.compare=function(e){if(n(e)||(e=l(e)),this.eq(e))return 0;var t=this.isNegative(),r=e.isNegative();return t&&!r?-1:!t&&r?1:this.unsigned?e.high>>>0>this.high>>>0||e.high===this.high&&e.low>>>0>this.low>>>0?-1:1:this.sub(e).isNegative()?-1:1},k.comp=k.compare,k.negate=function(){return!this.unsigned&&this.eq(O)?O:this.not().add(b)},k.neg=k.negate,k.add=function(e){n(e)||(e=l(e));var t=this.high>>>16,r=65535&this.high,o=this.low>>>16,i=65535&this.low,a=e.high>>>16,s=65535&e.high,c=e.low>>>16,d=0,f=0,h=0,p=0;return h+=(p+=i+(65535&e.low))>>>16,f+=(h+=o+c)>>>16,d+=(f+=r+s)>>>16,d+=t+a,u((h&=65535)<<16|(p&=65535),(d&=65535)<<16|(f&=65535),this.unsigned)},k.subtract=function(e){return n(e)||(e=l(e)),this.add(e.neg())},k.sub=k.subtract,k.multiply=function(e){if(this.isZero())return g;if(n(e)||(e=l(e)),t)return u(t.mul(this.low,this.high,e.low,e.high),t.get_high(),this.unsigned);if(e.isZero())return g;if(this.eq(O))return e.isOdd()?O:g;if(e.eq(O))return this.isOdd()?O:g;if(this.isNegative())return e.isNegative()?this.neg().mul(e.neg()):this.neg().mul(e).neg();if(e.isNegative())return this.mul(e.neg()).neg();if(this.lt(m)&&e.lt(m))return s(this.toNumber()*e.toNumber(),this.unsigned);var r=this.high>>>16,o=65535&this.high,i=this.low>>>16,a=65535&this.low,c=e.high>>>16,d=65535&e.high,f=e.low>>>16,h=65535&e.low,p=0,v=0,b=0,y=0;return b+=(y+=a*h)>>>16,v+=(b+=i*h)>>>16,b&=65535,v+=(b+=a*f)>>>16,p+=(v+=o*h)>>>16,v&=65535,p+=(v+=i*f)>>>16,v&=65535,p+=(v+=a*d)>>>16,p+=r*h+o*f+i*d+a*c,u((b&=65535)<<16|(y&=65535),(p&=65535)<<16|(v&=65535),this.unsigned)},k.mul=k.multiply,k.divide=function(e){if(n(e)||(e=l(e)),e.isZero())throw Error("division by zero");var r,o,i;if(t)return this.unsigned||-2147483648!==this.high||-1!==e.low||-1!==e.high?u((this.unsigned?t.div_u:t.div_s)(this.low,this.high,e.low,e.high),t.get_high(),this.unsigned):this;if(this.isZero())return this.unsigned?v:g;if(this.unsigned){if(e.unsigned||(e=e.toUnsigned()),e.gt(this))return v;if(e.gt(this.shru(1)))return y;i=v}else{if(this.eq(O))return e.eq(b)||e.eq(w)?O:e.eq(O)?b:(r=this.shr(1).div(e).shl(1)).eq(g)?e.isNegative()?b:w:(o=this.sub(e.mul(r)),i=r.add(o.div(e)));if(e.eq(O))return this.unsigned?v:g;if(this.isNegative())return e.isNegative()?this.neg().div(e.neg()):this.neg().div(e).neg();if(e.isNegative())return this.div(e.neg()).neg();i=g}for(o=this;o.gte(e);){r=Math.max(1,Math.floor(o.toNumber()/e.toNumber()));for(var a=Math.ceil(Math.log(r)/Math.LN2),d=a<=48?1:c(2,a-48),f=s(r),h=f.mul(e);h.isNegative()||h.gt(o);)h=(f=s(r-=d,this.unsigned)).mul(e);f.isZero()&&(f=b),i=i.add(f),o=o.sub(h)}return i},k.div=k.divide,k.modulo=function(e){return n(e)||(e=l(e)),t?u((this.unsigned?t.rem_u:t.rem_s)(this.low,this.high,e.low,e.high),t.get_high(),this.unsigned):this.sub(this.div(e).mul(e))},k.mod=k.modulo,k.rem=k.modulo,k.not=function(){return u(~this.low,~this.high,this.unsigned)},k.and=function(e){return n(e)||(e=l(e)),u(this.low&e.low,this.high&e.high,this.unsigned)},k.or=function(e){return n(e)||(e=l(e)),u(this.low|e.low,this.high|e.high,this.unsigned)},k.xor=function(e){return n(e)||(e=l(e)),u(this.low^e.low,this.high^e.high,this.unsigned)},k.shiftLeft=function(e){return n(e)&&(e=e.toInt()),0==(e&=63)?this:e<32?u(this.low<>>32-e,this.unsigned):u(0,this.low<>>e|this.high<<32-e,this.high>>e,this.unsigned):u(this.high>>e-32,this.high>=0?0:-1,this.unsigned)},k.shr=k.shiftRight,k.shiftRightUnsigned=function(e){if(n(e)&&(e=e.toInt()),0==(e&=63))return this;var t=this.high;return e<32?u(this.low>>>e|t<<32-e,t>>>e,this.unsigned):u(32===e?t:t>>>e-32,0,this.unsigned)},k.shru=k.shiftRightUnsigned,k.shr_u=k.shiftRightUnsigned,k.toSigned=function(){return this.unsigned?u(this.low,this.high,!1):this},k.toUnsigned=function(){return this.unsigned?this:u(this.low,this.high,!0)},k.toBytes=function(e){return e?this.toBytesLE():this.toBytesBE()},k.toBytesLE=function(){var e=this.high,t=this.low;return[255&t,t>>>8&255,t>>>16&255,t>>>24,255&e,e>>>8&255,e>>>16&255,e>>>24]},k.toBytesBE=function(){var e=this.high,t=this.low;return[e>>>24,e>>>16&255,e>>>8&255,255&e,t>>>24,t>>>16&255,t>>>8&255,255&t]},r.fromBytes=function(e,t,n){return n?r.fromBytesLE(e,t):r.fromBytesBE(e,t)},r.fromBytesLE=function(e,t){return new r(e[0]|e[1]<<8|e[2]<<16|e[3]<<24,e[4]|e[5]<<8|e[6]<<16|e[7]<<24,t)},r.fromBytesBE=function(e,t){return new r(e[4]<<24|e[5]<<16|e[6]<<8|e[7],e[0]<<24|e[1]<<16|e[2]<<8|e[3],t)}},62318:(e,t,r)=>{"use strict";var n=r(35717),o=r(3349),i=r(89509).Buffer,a=new Array(16);function s(){o.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}function u(e,t){return e<>>32-t}function c(e,t,r,n,o,i,a){return u(e+(t&r|~t&n)+o+i|0,a)+t|0}function d(e,t,r,n,o,i,a){return u(e+(t&n|r&~n)+o+i|0,a)+t|0}function l(e,t,r,n,o,i,a){return u(e+(t^r^n)+o+i|0,a)+t|0}function f(e,t,r,n,o,i,a){return u(e+(r^(t|~n))+o+i|0,a)+t|0}n(s,o),s.prototype._update=function(){for(var e=a,t=0;t<16;++t)e[t]=this._block.readInt32LE(4*t);var r=this._a,n=this._b,o=this._c,i=this._d;r=c(r,n,o,i,e[0],3614090360,7),i=c(i,r,n,o,e[1],3905402710,12),o=c(o,i,r,n,e[2],606105819,17),n=c(n,o,i,r,e[3],3250441966,22),r=c(r,n,o,i,e[4],4118548399,7),i=c(i,r,n,o,e[5],1200080426,12),o=c(o,i,r,n,e[6],2821735955,17),n=c(n,o,i,r,e[7],4249261313,22),r=c(r,n,o,i,e[8],1770035416,7),i=c(i,r,n,o,e[9],2336552879,12),o=c(o,i,r,n,e[10],4294925233,17),n=c(n,o,i,r,e[11],2304563134,22),r=c(r,n,o,i,e[12],1804603682,7),i=c(i,r,n,o,e[13],4254626195,12),o=c(o,i,r,n,e[14],2792965006,17),r=d(r,n=c(n,o,i,r,e[15],1236535329,22),o,i,e[1],4129170786,5),i=d(i,r,n,o,e[6],3225465664,9),o=d(o,i,r,n,e[11],643717713,14),n=d(n,o,i,r,e[0],3921069994,20),r=d(r,n,o,i,e[5],3593408605,5),i=d(i,r,n,o,e[10],38016083,9),o=d(o,i,r,n,e[15],3634488961,14),n=d(n,o,i,r,e[4],3889429448,20),r=d(r,n,o,i,e[9],568446438,5),i=d(i,r,n,o,e[14],3275163606,9),o=d(o,i,r,n,e[3],4107603335,14),n=d(n,o,i,r,e[8],1163531501,20),r=d(r,n,o,i,e[13],2850285829,5),i=d(i,r,n,o,e[2],4243563512,9),o=d(o,i,r,n,e[7],1735328473,14),r=l(r,n=d(n,o,i,r,e[12],2368359562,20),o,i,e[5],4294588738,4),i=l(i,r,n,o,e[8],2272392833,11),o=l(o,i,r,n,e[11],1839030562,16),n=l(n,o,i,r,e[14],4259657740,23),r=l(r,n,o,i,e[1],2763975236,4),i=l(i,r,n,o,e[4],1272893353,11),o=l(o,i,r,n,e[7],4139469664,16),n=l(n,o,i,r,e[10],3200236656,23),r=l(r,n,o,i,e[13],681279174,4),i=l(i,r,n,o,e[0],3936430074,11),o=l(o,i,r,n,e[3],3572445317,16),n=l(n,o,i,r,e[6],76029189,23),r=l(r,n,o,i,e[9],3654602809,4),i=l(i,r,n,o,e[12],3873151461,11),o=l(o,i,r,n,e[15],530742520,16),r=f(r,n=l(n,o,i,r,e[2],3299628645,23),o,i,e[0],4096336452,6),i=f(i,r,n,o,e[7],1126891415,10),o=f(o,i,r,n,e[14],2878612391,15),n=f(n,o,i,r,e[5],4237533241,21),r=f(r,n,o,i,e[12],1700485571,6),i=f(i,r,n,o,e[3],2399980690,10),o=f(o,i,r,n,e[10],4293915773,15),n=f(n,o,i,r,e[1],2240044497,21),r=f(r,n,o,i,e[8],1873313359,6),i=f(i,r,n,o,e[15],4264355552,10),o=f(o,i,r,n,e[6],2734768916,15),n=f(n,o,i,r,e[13],1309151649,21),r=f(r,n,o,i,e[4],4149444226,6),i=f(i,r,n,o,e[11],3174756917,10),o=f(o,i,r,n,e[2],718787259,15),n=f(n,o,i,r,e[9],3951481745,21),this._a=this._a+r|0,this._b=this._b+n|0,this._c=this._c+o|0,this._d=this._d+i|0},s.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=i.allocUnsafe(16);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e},e.exports=s},63047:(e,t,r)=>{var n=r(96240),o=r(29931);function i(e){this.rand=e||new o.Rand}e.exports=i,i.create=function(e){return new i(e)},i.prototype._randbelow=function(e){var t=e.bitLength(),r=Math.ceil(t/8);do{var o=new n(this.rand.generate(r))}while(o.cmp(e)>=0);return o},i.prototype._randrange=function(e,t){var r=t.sub(e);return e.add(this._randbelow(r))},i.prototype.test=function(e,t,r){var o=e.bitLength(),i=n.mont(e),a=new n(1).toRed(i);t||(t=Math.max(1,o/48|0));for(var s=e.subn(1),u=0;!s.testn(u);u++);for(var c=e.shrn(u),d=s.toRed(i);t>0;t--){var l=this._randrange(new n(2),s);r&&r(l);var f=l.toRed(i).redPow(c);if(0!==f.cmp(a)&&0!==f.cmp(d)){for(var h=1;h0;t--){var d=this._randrange(new n(2),a),l=e.gcd(d);if(0!==l.cmpn(1))return l;var f=d.toRed(o).redPow(u);if(0!==f.cmp(i)&&0!==f.cmp(c)){for(var h=1;h=65&&r<=70?r-55:r>=97&&r<=102?r-87:r-48&15}function u(e,t,r){var n=s(e,r);return r-1>=t&&(n|=s(e,r-1)<<4),n}function c(e,t,r,n){for(var o=0,i=Math.min(e.length,r),a=t;a=49?s-49+10:s>=17?s-17+10:s}return o}i.isBN=function(e){return e instanceof i||null!==e&&"object"==typeof e&&e.constructor.wordSize===i.wordSize&&Array.isArray(e.words)},i.max=function(e,t){return e.cmp(t)>0?e:t},i.min=function(e,t){return e.cmp(t)<0?e:t},i.prototype._init=function(e,t,r){if("number"==typeof e)return this._initNumber(e,t,r);if("object"==typeof e)return this._initArray(e,t,r);"hex"===t&&(t=16),n(t===(0|t)&&t>=2&&t<=36);var o=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(o++,this.negative=1),o=0;o-=3)a=e[o]|e[o-1]<<8|e[o-2]<<16,this.words[i]|=a<>>26-s&67108863,(s+=24)>=26&&(s-=26,i++);else if("le"===r)for(o=0,i=0;o>>26-s&67108863,(s+=24)>=26&&(s-=26,i++);return this.strip()},i.prototype._parseHex=function(e,t,r){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var n=0;n=t;n-=2)o=u(e,t,n)<=18?(i-=18,a+=1,this.words[a]|=o>>>26):i+=8;else for(n=(e.length-t)%2==0?t+1:t;n=18?(i-=18,a+=1,this.words[a]|=o>>>26):i+=8;this.strip()},i.prototype._parseBase=function(e,t,r){this.words=[0],this.length=1;for(var n=0,o=1;o<=67108863;o*=t)n++;n--,o=o/t|0;for(var i=e.length-r,a=i%n,s=Math.min(i,i-a)+r,u=0,d=r;d1&&0===this.words[this.length-1];)this.length--;return this._normSign()},i.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},i.prototype.inspect=function(){return(this.red?""};var d=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],l=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],f=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function h(e,t,r){r.negative=t.negative^e.negative;var n=e.length+t.length|0;r.length=n,n=n-1|0;var o=0|e.words[0],i=0|t.words[0],a=o*i,s=67108863&a,u=a/67108864|0;r.words[0]=s;for(var c=1;c>>26,l=67108863&u,f=Math.min(c,t.length-1),h=Math.max(0,c-e.length+1);h<=f;h++){var p=c-h|0;d+=(a=(o=0|e.words[p])*(i=0|t.words[h])+l)/67108864|0,l=67108863&a}r.words[c]=0|l,u=0|d}return 0!==u?r.words[c]=0|u:r.length--,r.strip()}i.prototype.toString=function(e,t){var r;if(t=0|t||1,16===(e=e||10)||"hex"===e){r="";for(var o=0,i=0,a=0;a>>24-o&16777215)||a!==this.length-1?d[6-u.length]+u+r:u+r,(o+=2)>=26&&(o-=26,a--)}for(0!==i&&(r=i.toString(16)+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(e===(0|e)&&e>=2&&e<=36){var c=l[e],h=f[e];r="";var p=this.clone();for(p.negative=0;!p.isZero();){var m=p.modn(h).toString(e);r=(p=p.idivn(h)).isZero()?m+r:d[c-m.length]+m+r}for(this.isZero()&&(r="0"+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}n(!1,"Base should be between 2 and 36")},i.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},i.prototype.toJSON=function(){return this.toString(16)},i.prototype.toBuffer=function(e,t){return n(void 0!==a),this.toArrayLike(a,e,t)},i.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},i.prototype.toArrayLike=function(e,t,r){var o=this.byteLength(),i=r||Math.max(1,o);n(o<=i,"byte array longer than desired length"),n(i>0,"Requested array length <= 0"),this.strip();var a,s,u="le"===t,c=new e(i),d=this.clone();if(u){for(s=0;!d.isZero();s++)a=d.andln(255),d.iushrn(8),c[s]=a;for(;s=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},i.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,r=0;return 0==(8191&t)&&(r+=13,t>>>=13),0==(127&t)&&(r+=7,t>>>=7),0==(15&t)&&(r+=4,t>>>=4),0==(3&t)&&(r+=2,t>>>=2),0==(1&t)&&r++,r},i.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},i.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;te.length?this.clone().ior(e):e.clone().ior(this)},i.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},i.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var r=0;re.length?this.clone().iand(e):e.clone().iand(this)},i.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},i.prototype.iuxor=function(e){var t,r;this.length>e.length?(t=this,r=e):(t=e,r=this);for(var n=0;ne.length?this.clone().ixor(e):e.clone().ixor(this)},i.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},i.prototype.inotn=function(e){n("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),r=e%26;this._expand(t),r>0&&t--;for(var o=0;o0&&(this.words[o]=~this.words[o]&67108863>>26-r),this.strip()},i.prototype.notn=function(e){return this.clone().inotn(e)},i.prototype.setn=function(e,t){n("number"==typeof e&&e>=0);var r=e/26|0,o=e%26;return this._expand(r+1),this.words[r]=t?this.words[r]|1<e.length?(r=this,n=e):(r=e,n=this);for(var o=0,i=0;i>>26;for(;0!==o&&i>>26;if(this.length=r.length,0!==o)this.words[this.length]=o,this.length++;else if(r!==this)for(;ie.length?this.clone().iadd(e):e.clone().iadd(this)},i.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var r,n,o=this.cmp(e);if(0===o)return this.negative=0,this.length=1,this.words[0]=0,this;o>0?(r=this,n=e):(r=e,n=this);for(var i=0,a=0;a>26,this.words[a]=67108863&t;for(;0!==i&&a>26,this.words[a]=67108863&t;if(0===i&&a>>13,h=0|a[1],p=8191&h,m=h>>>13,g=0|a[2],v=8191&g,b=g>>>13,y=0|a[3],w=8191&y,_=y>>>13,S=0|a[4],O=8191&S,k=S>>>13,A=0|a[5],P=8191&A,M=A>>>13,E=0|a[6],C=8191&E,N=E>>>13,x=0|a[7],R=8191&x,I=x>>>13,T=0|a[8],j=8191&T,D=T>>>13,B=0|a[9],U=8191&B,J=B>>>13,H=0|s[0],L=8191&H,z=H>>>13,V=0|s[1],q=8191&V,F=V>>>13,Z=0|s[2],W=8191&Z,K=Z>>>13,G=0|s[3],Y=8191&G,$=G>>>13,X=0|s[4],Q=8191&X,ee=X>>>13,te=0|s[5],re=8191&te,ne=te>>>13,oe=0|s[6],ie=8191&oe,ae=oe>>>13,se=0|s[7],ue=8191&se,ce=se>>>13,de=0|s[8],le=8191&de,fe=de>>>13,he=0|s[9],pe=8191&he,me=he>>>13;r.negative=e.negative^t.negative,r.length=19;var ge=(c+(n=Math.imul(l,L))|0)+((8191&(o=(o=Math.imul(l,z))+Math.imul(f,L)|0))<<13)|0;c=((i=Math.imul(f,z))+(o>>>13)|0)+(ge>>>26)|0,ge&=67108863,n=Math.imul(p,L),o=(o=Math.imul(p,z))+Math.imul(m,L)|0,i=Math.imul(m,z);var ve=(c+(n=n+Math.imul(l,q)|0)|0)+((8191&(o=(o=o+Math.imul(l,F)|0)+Math.imul(f,q)|0))<<13)|0;c=((i=i+Math.imul(f,F)|0)+(o>>>13)|0)+(ve>>>26)|0,ve&=67108863,n=Math.imul(v,L),o=(o=Math.imul(v,z))+Math.imul(b,L)|0,i=Math.imul(b,z),n=n+Math.imul(p,q)|0,o=(o=o+Math.imul(p,F)|0)+Math.imul(m,q)|0,i=i+Math.imul(m,F)|0;var be=(c+(n=n+Math.imul(l,W)|0)|0)+((8191&(o=(o=o+Math.imul(l,K)|0)+Math.imul(f,W)|0))<<13)|0;c=((i=i+Math.imul(f,K)|0)+(o>>>13)|0)+(be>>>26)|0,be&=67108863,n=Math.imul(w,L),o=(o=Math.imul(w,z))+Math.imul(_,L)|0,i=Math.imul(_,z),n=n+Math.imul(v,q)|0,o=(o=o+Math.imul(v,F)|0)+Math.imul(b,q)|0,i=i+Math.imul(b,F)|0,n=n+Math.imul(p,W)|0,o=(o=o+Math.imul(p,K)|0)+Math.imul(m,W)|0,i=i+Math.imul(m,K)|0;var ye=(c+(n=n+Math.imul(l,Y)|0)|0)+((8191&(o=(o=o+Math.imul(l,$)|0)+Math.imul(f,Y)|0))<<13)|0;c=((i=i+Math.imul(f,$)|0)+(o>>>13)|0)+(ye>>>26)|0,ye&=67108863,n=Math.imul(O,L),o=(o=Math.imul(O,z))+Math.imul(k,L)|0,i=Math.imul(k,z),n=n+Math.imul(w,q)|0,o=(o=o+Math.imul(w,F)|0)+Math.imul(_,q)|0,i=i+Math.imul(_,F)|0,n=n+Math.imul(v,W)|0,o=(o=o+Math.imul(v,K)|0)+Math.imul(b,W)|0,i=i+Math.imul(b,K)|0,n=n+Math.imul(p,Y)|0,o=(o=o+Math.imul(p,$)|0)+Math.imul(m,Y)|0,i=i+Math.imul(m,$)|0;var we=(c+(n=n+Math.imul(l,Q)|0)|0)+((8191&(o=(o=o+Math.imul(l,ee)|0)+Math.imul(f,Q)|0))<<13)|0;c=((i=i+Math.imul(f,ee)|0)+(o>>>13)|0)+(we>>>26)|0,we&=67108863,n=Math.imul(P,L),o=(o=Math.imul(P,z))+Math.imul(M,L)|0,i=Math.imul(M,z),n=n+Math.imul(O,q)|0,o=(o=o+Math.imul(O,F)|0)+Math.imul(k,q)|0,i=i+Math.imul(k,F)|0,n=n+Math.imul(w,W)|0,o=(o=o+Math.imul(w,K)|0)+Math.imul(_,W)|0,i=i+Math.imul(_,K)|0,n=n+Math.imul(v,Y)|0,o=(o=o+Math.imul(v,$)|0)+Math.imul(b,Y)|0,i=i+Math.imul(b,$)|0,n=n+Math.imul(p,Q)|0,o=(o=o+Math.imul(p,ee)|0)+Math.imul(m,Q)|0,i=i+Math.imul(m,ee)|0;var _e=(c+(n=n+Math.imul(l,re)|0)|0)+((8191&(o=(o=o+Math.imul(l,ne)|0)+Math.imul(f,re)|0))<<13)|0;c=((i=i+Math.imul(f,ne)|0)+(o>>>13)|0)+(_e>>>26)|0,_e&=67108863,n=Math.imul(C,L),o=(o=Math.imul(C,z))+Math.imul(N,L)|0,i=Math.imul(N,z),n=n+Math.imul(P,q)|0,o=(o=o+Math.imul(P,F)|0)+Math.imul(M,q)|0,i=i+Math.imul(M,F)|0,n=n+Math.imul(O,W)|0,o=(o=o+Math.imul(O,K)|0)+Math.imul(k,W)|0,i=i+Math.imul(k,K)|0,n=n+Math.imul(w,Y)|0,o=(o=o+Math.imul(w,$)|0)+Math.imul(_,Y)|0,i=i+Math.imul(_,$)|0,n=n+Math.imul(v,Q)|0,o=(o=o+Math.imul(v,ee)|0)+Math.imul(b,Q)|0,i=i+Math.imul(b,ee)|0,n=n+Math.imul(p,re)|0,o=(o=o+Math.imul(p,ne)|0)+Math.imul(m,re)|0,i=i+Math.imul(m,ne)|0;var Se=(c+(n=n+Math.imul(l,ie)|0)|0)+((8191&(o=(o=o+Math.imul(l,ae)|0)+Math.imul(f,ie)|0))<<13)|0;c=((i=i+Math.imul(f,ae)|0)+(o>>>13)|0)+(Se>>>26)|0,Se&=67108863,n=Math.imul(R,L),o=(o=Math.imul(R,z))+Math.imul(I,L)|0,i=Math.imul(I,z),n=n+Math.imul(C,q)|0,o=(o=o+Math.imul(C,F)|0)+Math.imul(N,q)|0,i=i+Math.imul(N,F)|0,n=n+Math.imul(P,W)|0,o=(o=o+Math.imul(P,K)|0)+Math.imul(M,W)|0,i=i+Math.imul(M,K)|0,n=n+Math.imul(O,Y)|0,o=(o=o+Math.imul(O,$)|0)+Math.imul(k,Y)|0,i=i+Math.imul(k,$)|0,n=n+Math.imul(w,Q)|0,o=(o=o+Math.imul(w,ee)|0)+Math.imul(_,Q)|0,i=i+Math.imul(_,ee)|0,n=n+Math.imul(v,re)|0,o=(o=o+Math.imul(v,ne)|0)+Math.imul(b,re)|0,i=i+Math.imul(b,ne)|0,n=n+Math.imul(p,ie)|0,o=(o=o+Math.imul(p,ae)|0)+Math.imul(m,ie)|0,i=i+Math.imul(m,ae)|0;var Oe=(c+(n=n+Math.imul(l,ue)|0)|0)+((8191&(o=(o=o+Math.imul(l,ce)|0)+Math.imul(f,ue)|0))<<13)|0;c=((i=i+Math.imul(f,ce)|0)+(o>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,n=Math.imul(j,L),o=(o=Math.imul(j,z))+Math.imul(D,L)|0,i=Math.imul(D,z),n=n+Math.imul(R,q)|0,o=(o=o+Math.imul(R,F)|0)+Math.imul(I,q)|0,i=i+Math.imul(I,F)|0,n=n+Math.imul(C,W)|0,o=(o=o+Math.imul(C,K)|0)+Math.imul(N,W)|0,i=i+Math.imul(N,K)|0,n=n+Math.imul(P,Y)|0,o=(o=o+Math.imul(P,$)|0)+Math.imul(M,Y)|0,i=i+Math.imul(M,$)|0,n=n+Math.imul(O,Q)|0,o=(o=o+Math.imul(O,ee)|0)+Math.imul(k,Q)|0,i=i+Math.imul(k,ee)|0,n=n+Math.imul(w,re)|0,o=(o=o+Math.imul(w,ne)|0)+Math.imul(_,re)|0,i=i+Math.imul(_,ne)|0,n=n+Math.imul(v,ie)|0,o=(o=o+Math.imul(v,ae)|0)+Math.imul(b,ie)|0,i=i+Math.imul(b,ae)|0,n=n+Math.imul(p,ue)|0,o=(o=o+Math.imul(p,ce)|0)+Math.imul(m,ue)|0,i=i+Math.imul(m,ce)|0;var ke=(c+(n=n+Math.imul(l,le)|0)|0)+((8191&(o=(o=o+Math.imul(l,fe)|0)+Math.imul(f,le)|0))<<13)|0;c=((i=i+Math.imul(f,fe)|0)+(o>>>13)|0)+(ke>>>26)|0,ke&=67108863,n=Math.imul(U,L),o=(o=Math.imul(U,z))+Math.imul(J,L)|0,i=Math.imul(J,z),n=n+Math.imul(j,q)|0,o=(o=o+Math.imul(j,F)|0)+Math.imul(D,q)|0,i=i+Math.imul(D,F)|0,n=n+Math.imul(R,W)|0,o=(o=o+Math.imul(R,K)|0)+Math.imul(I,W)|0,i=i+Math.imul(I,K)|0,n=n+Math.imul(C,Y)|0,o=(o=o+Math.imul(C,$)|0)+Math.imul(N,Y)|0,i=i+Math.imul(N,$)|0,n=n+Math.imul(P,Q)|0,o=(o=o+Math.imul(P,ee)|0)+Math.imul(M,Q)|0,i=i+Math.imul(M,ee)|0,n=n+Math.imul(O,re)|0,o=(o=o+Math.imul(O,ne)|0)+Math.imul(k,re)|0,i=i+Math.imul(k,ne)|0,n=n+Math.imul(w,ie)|0,o=(o=o+Math.imul(w,ae)|0)+Math.imul(_,ie)|0,i=i+Math.imul(_,ae)|0,n=n+Math.imul(v,ue)|0,o=(o=o+Math.imul(v,ce)|0)+Math.imul(b,ue)|0,i=i+Math.imul(b,ce)|0,n=n+Math.imul(p,le)|0,o=(o=o+Math.imul(p,fe)|0)+Math.imul(m,le)|0,i=i+Math.imul(m,fe)|0;var Ae=(c+(n=n+Math.imul(l,pe)|0)|0)+((8191&(o=(o=o+Math.imul(l,me)|0)+Math.imul(f,pe)|0))<<13)|0;c=((i=i+Math.imul(f,me)|0)+(o>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,n=Math.imul(U,q),o=(o=Math.imul(U,F))+Math.imul(J,q)|0,i=Math.imul(J,F),n=n+Math.imul(j,W)|0,o=(o=o+Math.imul(j,K)|0)+Math.imul(D,W)|0,i=i+Math.imul(D,K)|0,n=n+Math.imul(R,Y)|0,o=(o=o+Math.imul(R,$)|0)+Math.imul(I,Y)|0,i=i+Math.imul(I,$)|0,n=n+Math.imul(C,Q)|0,o=(o=o+Math.imul(C,ee)|0)+Math.imul(N,Q)|0,i=i+Math.imul(N,ee)|0,n=n+Math.imul(P,re)|0,o=(o=o+Math.imul(P,ne)|0)+Math.imul(M,re)|0,i=i+Math.imul(M,ne)|0,n=n+Math.imul(O,ie)|0,o=(o=o+Math.imul(O,ae)|0)+Math.imul(k,ie)|0,i=i+Math.imul(k,ae)|0,n=n+Math.imul(w,ue)|0,o=(o=o+Math.imul(w,ce)|0)+Math.imul(_,ue)|0,i=i+Math.imul(_,ce)|0,n=n+Math.imul(v,le)|0,o=(o=o+Math.imul(v,fe)|0)+Math.imul(b,le)|0,i=i+Math.imul(b,fe)|0;var Pe=(c+(n=n+Math.imul(p,pe)|0)|0)+((8191&(o=(o=o+Math.imul(p,me)|0)+Math.imul(m,pe)|0))<<13)|0;c=((i=i+Math.imul(m,me)|0)+(o>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,n=Math.imul(U,W),o=(o=Math.imul(U,K))+Math.imul(J,W)|0,i=Math.imul(J,K),n=n+Math.imul(j,Y)|0,o=(o=o+Math.imul(j,$)|0)+Math.imul(D,Y)|0,i=i+Math.imul(D,$)|0,n=n+Math.imul(R,Q)|0,o=(o=o+Math.imul(R,ee)|0)+Math.imul(I,Q)|0,i=i+Math.imul(I,ee)|0,n=n+Math.imul(C,re)|0,o=(o=o+Math.imul(C,ne)|0)+Math.imul(N,re)|0,i=i+Math.imul(N,ne)|0,n=n+Math.imul(P,ie)|0,o=(o=o+Math.imul(P,ae)|0)+Math.imul(M,ie)|0,i=i+Math.imul(M,ae)|0,n=n+Math.imul(O,ue)|0,o=(o=o+Math.imul(O,ce)|0)+Math.imul(k,ue)|0,i=i+Math.imul(k,ce)|0,n=n+Math.imul(w,le)|0,o=(o=o+Math.imul(w,fe)|0)+Math.imul(_,le)|0,i=i+Math.imul(_,fe)|0;var Me=(c+(n=n+Math.imul(v,pe)|0)|0)+((8191&(o=(o=o+Math.imul(v,me)|0)+Math.imul(b,pe)|0))<<13)|0;c=((i=i+Math.imul(b,me)|0)+(o>>>13)|0)+(Me>>>26)|0,Me&=67108863,n=Math.imul(U,Y),o=(o=Math.imul(U,$))+Math.imul(J,Y)|0,i=Math.imul(J,$),n=n+Math.imul(j,Q)|0,o=(o=o+Math.imul(j,ee)|0)+Math.imul(D,Q)|0,i=i+Math.imul(D,ee)|0,n=n+Math.imul(R,re)|0,o=(o=o+Math.imul(R,ne)|0)+Math.imul(I,re)|0,i=i+Math.imul(I,ne)|0,n=n+Math.imul(C,ie)|0,o=(o=o+Math.imul(C,ae)|0)+Math.imul(N,ie)|0,i=i+Math.imul(N,ae)|0,n=n+Math.imul(P,ue)|0,o=(o=o+Math.imul(P,ce)|0)+Math.imul(M,ue)|0,i=i+Math.imul(M,ce)|0,n=n+Math.imul(O,le)|0,o=(o=o+Math.imul(O,fe)|0)+Math.imul(k,le)|0,i=i+Math.imul(k,fe)|0;var Ee=(c+(n=n+Math.imul(w,pe)|0)|0)+((8191&(o=(o=o+Math.imul(w,me)|0)+Math.imul(_,pe)|0))<<13)|0;c=((i=i+Math.imul(_,me)|0)+(o>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,n=Math.imul(U,Q),o=(o=Math.imul(U,ee))+Math.imul(J,Q)|0,i=Math.imul(J,ee),n=n+Math.imul(j,re)|0,o=(o=o+Math.imul(j,ne)|0)+Math.imul(D,re)|0,i=i+Math.imul(D,ne)|0,n=n+Math.imul(R,ie)|0,o=(o=o+Math.imul(R,ae)|0)+Math.imul(I,ie)|0,i=i+Math.imul(I,ae)|0,n=n+Math.imul(C,ue)|0,o=(o=o+Math.imul(C,ce)|0)+Math.imul(N,ue)|0,i=i+Math.imul(N,ce)|0,n=n+Math.imul(P,le)|0,o=(o=o+Math.imul(P,fe)|0)+Math.imul(M,le)|0,i=i+Math.imul(M,fe)|0;var Ce=(c+(n=n+Math.imul(O,pe)|0)|0)+((8191&(o=(o=o+Math.imul(O,me)|0)+Math.imul(k,pe)|0))<<13)|0;c=((i=i+Math.imul(k,me)|0)+(o>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,n=Math.imul(U,re),o=(o=Math.imul(U,ne))+Math.imul(J,re)|0,i=Math.imul(J,ne),n=n+Math.imul(j,ie)|0,o=(o=o+Math.imul(j,ae)|0)+Math.imul(D,ie)|0,i=i+Math.imul(D,ae)|0,n=n+Math.imul(R,ue)|0,o=(o=o+Math.imul(R,ce)|0)+Math.imul(I,ue)|0,i=i+Math.imul(I,ce)|0,n=n+Math.imul(C,le)|0,o=(o=o+Math.imul(C,fe)|0)+Math.imul(N,le)|0,i=i+Math.imul(N,fe)|0;var Ne=(c+(n=n+Math.imul(P,pe)|0)|0)+((8191&(o=(o=o+Math.imul(P,me)|0)+Math.imul(M,pe)|0))<<13)|0;c=((i=i+Math.imul(M,me)|0)+(o>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,n=Math.imul(U,ie),o=(o=Math.imul(U,ae))+Math.imul(J,ie)|0,i=Math.imul(J,ae),n=n+Math.imul(j,ue)|0,o=(o=o+Math.imul(j,ce)|0)+Math.imul(D,ue)|0,i=i+Math.imul(D,ce)|0,n=n+Math.imul(R,le)|0,o=(o=o+Math.imul(R,fe)|0)+Math.imul(I,le)|0,i=i+Math.imul(I,fe)|0;var xe=(c+(n=n+Math.imul(C,pe)|0)|0)+((8191&(o=(o=o+Math.imul(C,me)|0)+Math.imul(N,pe)|0))<<13)|0;c=((i=i+Math.imul(N,me)|0)+(o>>>13)|0)+(xe>>>26)|0,xe&=67108863,n=Math.imul(U,ue),o=(o=Math.imul(U,ce))+Math.imul(J,ue)|0,i=Math.imul(J,ce),n=n+Math.imul(j,le)|0,o=(o=o+Math.imul(j,fe)|0)+Math.imul(D,le)|0,i=i+Math.imul(D,fe)|0;var Re=(c+(n=n+Math.imul(R,pe)|0)|0)+((8191&(o=(o=o+Math.imul(R,me)|0)+Math.imul(I,pe)|0))<<13)|0;c=((i=i+Math.imul(I,me)|0)+(o>>>13)|0)+(Re>>>26)|0,Re&=67108863,n=Math.imul(U,le),o=(o=Math.imul(U,fe))+Math.imul(J,le)|0,i=Math.imul(J,fe);var Ie=(c+(n=n+Math.imul(j,pe)|0)|0)+((8191&(o=(o=o+Math.imul(j,me)|0)+Math.imul(D,pe)|0))<<13)|0;c=((i=i+Math.imul(D,me)|0)+(o>>>13)|0)+(Ie>>>26)|0,Ie&=67108863;var Te=(c+(n=Math.imul(U,pe))|0)+((8191&(o=(o=Math.imul(U,me))+Math.imul(J,pe)|0))<<13)|0;return c=((i=Math.imul(J,me))+(o>>>13)|0)+(Te>>>26)|0,Te&=67108863,u[0]=ge,u[1]=ve,u[2]=be,u[3]=ye,u[4]=we,u[5]=_e,u[6]=Se,u[7]=Oe,u[8]=ke,u[9]=Ae,u[10]=Pe,u[11]=Me,u[12]=Ee,u[13]=Ce,u[14]=Ne,u[15]=xe,u[16]=Re,u[17]=Ie,u[18]=Te,0!==c&&(u[19]=c,r.length++),r};function m(e,t,r){return(new g).mulp(e,t,r)}function g(e,t){this.x=e,this.y=t}Math.imul||(p=h),i.prototype.mulTo=function(e,t){var r,n=this.length+e.length;return r=10===this.length&&10===e.length?p(this,e,t):n<63?h(this,e,t):n<1024?function(e,t,r){r.negative=t.negative^e.negative,r.length=e.length+t.length;for(var n=0,o=0,i=0;i>>26)|0)>>>26,a&=67108863}r.words[i]=s,n=a,a=o}return 0!==n?r.words[i]=n:r.length--,r.strip()}(this,e,t):m(this,e,t),r},g.prototype.makeRBT=function(e){for(var t=new Array(e),r=i.prototype._countBits(e)-1,n=0;n>=1;return n},g.prototype.permute=function(e,t,r,n,o,i){for(var a=0;a>>=1)o++;return 1<>>=13,r[2*a+1]=8191&i,i>>>=13;for(a=2*t;a>=26,t+=o/67108864|0,t+=i>>>26,this.words[r]=67108863&i}return 0!==t&&(this.words[r]=t,this.length++),this},i.prototype.muln=function(e){return this.clone().imuln(e)},i.prototype.sqr=function(){return this.mul(this)},i.prototype.isqr=function(){return this.imul(this.clone())},i.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),r=0;r>>o}return t}(e);if(0===t.length)return new i(1);for(var r=this,n=0;n=0);var t,r=e%26,o=(e-r)/26,i=67108863>>>26-r<<26-r;if(0!==r){var a=0;for(t=0;t>>26-r}a&&(this.words[t]=a,this.length++)}if(0!==o){for(t=this.length-1;t>=0;t--)this.words[t+o]=this.words[t];for(t=0;t=0),o=t?(t-t%26)/26:0;var i=e%26,a=Math.min((e-i)/26,this.length),s=67108863^67108863>>>i<a)for(this.length-=a,c=0;c=0&&(0!==d||c>=o);c--){var l=0|this.words[c];this.words[c]=d<<26-i|l>>>i,d=l&s}return u&&0!==d&&(u.words[u.length++]=d),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},i.prototype.ishrn=function(e,t,r){return n(0===this.negative),this.iushrn(e,t,r)},i.prototype.shln=function(e){return this.clone().ishln(e)},i.prototype.ushln=function(e){return this.clone().iushln(e)},i.prototype.shrn=function(e){return this.clone().ishrn(e)},i.prototype.ushrn=function(e){return this.clone().iushrn(e)},i.prototype.testn=function(e){n("number"==typeof e&&e>=0);var t=e%26,r=(e-t)/26,o=1<=0);var t=e%26,r=(e-t)/26;if(n(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==t&&r++,this.length=Math.min(r,this.length),0!==t){var o=67108863^67108863>>>t<=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},i.prototype.isubn=function(e){if(n("number"==typeof e),n(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t>26)-(u/67108864|0),this.words[o+r]=67108863&i}for(;o>26,this.words[o+r]=67108863&i;if(0===s)return this.strip();for(n(-1===s),s=0,o=0;o>26,this.words[o]=67108863&i;return this.negative=1,this.strip()},i.prototype._wordDiv=function(e,t){var r=(this.length,e.length),n=this.clone(),o=e,a=0|o.words[o.length-1];0!=(r=26-this._countBits(a))&&(o=o.ushln(r),n.iushln(r),a=0|o.words[o.length-1]);var s,u=n.length-o.length;if("mod"!==t){(s=new i(null)).length=u+1,s.words=new Array(s.length);for(var c=0;c=0;l--){var f=67108864*(0|n.words[o.length+l])+(0|n.words[o.length+l-1]);for(f=Math.min(f/a|0,67108863),n._ishlnsubmul(o,f,l);0!==n.negative;)f--,n.negative=0,n._ishlnsubmul(o,1,l),n.isZero()||(n.negative^=1);s&&(s.words[l]=f)}return s&&s.strip(),n.strip(),"div"!==t&&0!==r&&n.iushrn(r),{div:s||null,mod:n}},i.prototype.divmod=function(e,t,r){return n(!e.isZero()),this.isZero()?{div:new i(0),mod:new i(0)}:0!==this.negative&&0===e.negative?(s=this.neg().divmod(e,t),"mod"!==t&&(o=s.div.neg()),"div"!==t&&(a=s.mod.neg(),r&&0!==a.negative&&a.iadd(e)),{div:o,mod:a}):0===this.negative&&0!==e.negative?(s=this.divmod(e.neg(),t),"mod"!==t&&(o=s.div.neg()),{div:o,mod:s.mod}):0!=(this.negative&e.negative)?(s=this.neg().divmod(e.neg(),t),"div"!==t&&(a=s.mod.neg(),r&&0!==a.negative&&a.isub(e)),{div:s.div,mod:a}):e.length>this.length||this.cmp(e)<0?{div:new i(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new i(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new i(this.modn(e.words[0]))}:this._wordDiv(e,t);var o,a,s},i.prototype.div=function(e){return this.divmod(e,"div",!1).div},i.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},i.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},i.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var r=0!==t.div.negative?t.mod.isub(e):t.mod,n=e.ushrn(1),o=e.andln(1),i=r.cmp(n);return i<0||1===o&&0===i?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},i.prototype.modn=function(e){n(e<=67108863);for(var t=(1<<26)%e,r=0,o=this.length-1;o>=0;o--)r=(t*r+(0|this.words[o]))%e;return r},i.prototype.idivn=function(e){n(e<=67108863);for(var t=0,r=this.length-1;r>=0;r--){var o=(0|this.words[r])+67108864*t;this.words[r]=o/e|0,t=o%e}return this.strip()},i.prototype.divn=function(e){return this.clone().idivn(e)},i.prototype.egcd=function(e){n(0===e.negative),n(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var o=new i(1),a=new i(0),s=new i(0),u=new i(1),c=0;t.isEven()&&r.isEven();)t.iushrn(1),r.iushrn(1),++c;for(var d=r.clone(),l=t.clone();!t.isZero();){for(var f=0,h=1;0==(t.words[0]&h)&&f<26;++f,h<<=1);if(f>0)for(t.iushrn(f);f-- >0;)(o.isOdd()||a.isOdd())&&(o.iadd(d),a.isub(l)),o.iushrn(1),a.iushrn(1);for(var p=0,m=1;0==(r.words[0]&m)&&p<26;++p,m<<=1);if(p>0)for(r.iushrn(p);p-- >0;)(s.isOdd()||u.isOdd())&&(s.iadd(d),u.isub(l)),s.iushrn(1),u.iushrn(1);t.cmp(r)>=0?(t.isub(r),o.isub(s),a.isub(u)):(r.isub(t),s.isub(o),u.isub(a))}return{a:s,b:u,gcd:r.iushln(c)}},i.prototype._invmp=function(e){n(0===e.negative),n(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var o,a=new i(1),s=new i(0),u=r.clone();t.cmpn(1)>0&&r.cmpn(1)>0;){for(var c=0,d=1;0==(t.words[0]&d)&&c<26;++c,d<<=1);if(c>0)for(t.iushrn(c);c-- >0;)a.isOdd()&&a.iadd(u),a.iushrn(1);for(var l=0,f=1;0==(r.words[0]&f)&&l<26;++l,f<<=1);if(l>0)for(r.iushrn(l);l-- >0;)s.isOdd()&&s.iadd(u),s.iushrn(1);t.cmp(r)>=0?(t.isub(r),a.isub(s)):(r.isub(t),s.isub(a))}return(o=0===t.cmpn(1)?a:s).cmpn(0)<0&&o.iadd(e),o},i.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),r=e.clone();t.negative=0,r.negative=0;for(var n=0;t.isEven()&&r.isEven();n++)t.iushrn(1),r.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;r.isEven();)r.iushrn(1);var o=t.cmp(r);if(o<0){var i=t;t=r,r=i}else if(0===o||0===r.cmpn(1))break;t.isub(r)}return r.iushln(n)},i.prototype.invm=function(e){return this.egcd(e).a.umod(e)},i.prototype.isEven=function(){return 0==(1&this.words[0])},i.prototype.isOdd=function(){return 1==(1&this.words[0])},i.prototype.andln=function(e){return this.words[0]&e},i.prototype.bincn=function(e){n("number"==typeof e);var t=e%26,r=(e-t)/26,o=1<>>26,s&=67108863,this.words[a]=s}return 0!==i&&(this.words[a]=i,this.length++),this},i.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},i.prototype.cmpn=function(e){var t,r=e<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)t=1;else{r&&(e=-e),n(e<=67108863,"Number is too big");var o=0|this.words[0];t=o===e?0:oe.length)return 1;if(this.length=0;r--){var n=0|this.words[r],o=0|e.words[r];if(n!==o){no&&(t=1);break}}return t},i.prototype.gtn=function(e){return 1===this.cmpn(e)},i.prototype.gt=function(e){return 1===this.cmp(e)},i.prototype.gten=function(e){return this.cmpn(e)>=0},i.prototype.gte=function(e){return this.cmp(e)>=0},i.prototype.ltn=function(e){return-1===this.cmpn(e)},i.prototype.lt=function(e){return-1===this.cmp(e)},i.prototype.lten=function(e){return this.cmpn(e)<=0},i.prototype.lte=function(e){return this.cmp(e)<=0},i.prototype.eqn=function(e){return 0===this.cmpn(e)},i.prototype.eq=function(e){return 0===this.cmp(e)},i.red=function(e){return new O(e)},i.prototype.toRed=function(e){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},i.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},i.prototype._forceRed=function(e){return this.red=e,this},i.prototype.forceRed=function(e){return n(!this.red,"Already a number in reduction context"),this._forceRed(e)},i.prototype.redAdd=function(e){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},i.prototype.redIAdd=function(e){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},i.prototype.redSub=function(e){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},i.prototype.redISub=function(e){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},i.prototype.redShl=function(e){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},i.prototype.redMul=function(e){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},i.prototype.redIMul=function(e){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},i.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},i.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},i.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},i.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},i.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},i.prototype.redPow=function(e){return n(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var v={k256:null,p224:null,p192:null,p25519:null};function b(e,t){this.name=e,this.p=new i(t,16),this.n=this.p.bitLength(),this.k=new i(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function y(){b.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function w(){b.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function _(){b.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function S(){b.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function O(e){if("string"==typeof e){var t=i._prime(e);this.m=t.p,this.prime=t}else n(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function k(e){O.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new i(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}b.prototype._tmp=function(){var e=new i(null);return e.words=new Array(Math.ceil(this.n/13)),e},b.prototype.ireduce=function(e){var t,r=e;do{this.split(r,this.tmp),t=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(t>this.n);var n=t0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},b.prototype.split=function(e,t){e.iushrn(this.n,0,t)},b.prototype.imulK=function(e){return e.imul(this.k)},o(y,b),y.prototype.split=function(e,t){for(var r=4194303,n=Math.min(e.length,9),o=0;o>>22,i=a}i>>>=22,e.words[o-10]=i,0===i&&e.length>10?e.length-=10:e.length-=9},y.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,r=0;r>>=26,e.words[r]=o,t=n}return 0!==t&&(e.words[e.length++]=t),e},i._prime=function(e){if(v[e])return v[e];var t;if("k256"===e)t=new y;else if("p224"===e)t=new w;else if("p192"===e)t=new _;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new S}return v[e]=t,t},O.prototype._verify1=function(e){n(0===e.negative,"red works only with positives"),n(e.red,"red works only with red numbers")},O.prototype._verify2=function(e,t){n(0==(e.negative|t.negative),"red works only with positives"),n(e.red&&e.red===t.red,"red works only with red numbers")},O.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},O.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},O.prototype.add=function(e,t){this._verify2(e,t);var r=e.add(t);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},O.prototype.iadd=function(e,t){this._verify2(e,t);var r=e.iadd(t);return r.cmp(this.m)>=0&&r.isub(this.m),r},O.prototype.sub=function(e,t){this._verify2(e,t);var r=e.sub(t);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},O.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},O.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},O.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},O.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},O.prototype.isqr=function(e){return this.imul(e,e.clone())},O.prototype.sqr=function(e){return this.mul(e,e)},O.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(n(t%2==1),3===t){var r=this.m.add(new i(1)).iushrn(2);return this.pow(e,r)}for(var o=this.m.subn(1),a=0;!o.isZero()&&0===o.andln(1);)a++,o.iushrn(1);n(!o.isZero());var s=new i(1).toRed(this),u=s.redNeg(),c=this.m.subn(1).iushrn(1),d=this.m.bitLength();for(d=new i(2*d*d).toRed(this);0!==this.pow(d,c).cmp(u);)d.redIAdd(u);for(var l=this.pow(d,o),f=this.pow(e,o.addn(1).iushrn(1)),h=this.pow(e,o),p=a;0!==h.cmp(s);){for(var m=h,g=0;0!==m.cmp(s);g++)m=m.redSqr();n(g=0;n--){for(var c=t.words[n],d=u-1;d>=0;d--){var l=c>>d&1;o!==r[0]&&(o=this.sqr(o)),0!==l||0!==a?(a<<=1,a|=l,(4==++s||0===n&&0===d)&&(o=this.mul(o,r[a]),s=0,a=0)):s=0}u=26}return o},O.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},O.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},i.mont=function(e){return new k(e)},o(k,O),k.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},k.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},k.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var r=e.imul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=r.isub(n).iushrn(this.shift),i=o;return o.cmp(this.m)>=0?i=o.isub(this.m):o.cmpn(0)<0&&(i=o.iadd(this.m)),i._forceRed(this)},k.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new i(0)._forceRed(this);var r=e.mul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=r.isub(n).iushrn(this.shift),a=o;return o.cmp(this.m)>=0?a=o.isub(this.m):o.cmpn(0)<0&&(a=o.iadd(this.m)),a._forceRed(this)},k.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e=r.nmd(e),this)},79746:e=>{function t(e,t){if(!e)throw new Error(t||"Assertion failed")}e.exports=t,t.equal=function(e,t,r){if(e!=t)throw new Error(r||"Assertion failed: "+e+" != "+t)}},34504:(e,t)=>{"use strict";var r=t;function n(e){return 1===e.length?"0"+e:e}function o(e){for(var t="",r=0;r>8,a=255&o;i?r.push(i,a):r.push(a)}return r},r.zero2=n,r.toHex=o,r.encode=function(e,t){return"hex"===t?o(e):e}},52818:(e,t,r)=>{"use strict";var n=r(39809);t.certificate=r(41934);var o=n.define("RSAPrivateKey",(function(){this.seq().obj(this.key("version").int(),this.key("modulus").int(),this.key("publicExponent").int(),this.key("privateExponent").int(),this.key("prime1").int(),this.key("prime2").int(),this.key("exponent1").int(),this.key("exponent2").int(),this.key("coefficient").int())}));t.RSAPrivateKey=o;var i=n.define("RSAPublicKey",(function(){this.seq().obj(this.key("modulus").int(),this.key("publicExponent").int())}));t.RSAPublicKey=i;var a=n.define("SubjectPublicKeyInfo",(function(){this.seq().obj(this.key("algorithm").use(s),this.key("subjectPublicKey").bitstr())}));t.PublicKey=a;var s=n.define("AlgorithmIdentifier",(function(){this.seq().obj(this.key("algorithm").objid(),this.key("none").null_().optional(),this.key("curve").objid().optional(),this.key("params").seq().obj(this.key("p").int(),this.key("q").int(),this.key("g").int()).optional())})),u=n.define("PrivateKeyInfo",(function(){this.seq().obj(this.key("version").int(),this.key("algorithm").use(s),this.key("subjectPrivateKey").octstr())}));t.PrivateKey=u;var c=n.define("EncryptedPrivateKeyInfo",(function(){this.seq().obj(this.key("algorithm").seq().obj(this.key("id").objid(),this.key("decrypt").seq().obj(this.key("kde").seq().obj(this.key("id").objid(),this.key("kdeparams").seq().obj(this.key("salt").octstr(),this.key("iters").int())),this.key("cipher").seq().obj(this.key("algo").objid(),this.key("iv").octstr()))),this.key("subjectPrivateKey").octstr())}));t.EncryptedPrivateKey=c;var d=n.define("DSAPrivateKey",(function(){this.seq().obj(this.key("version").int(),this.key("p").int(),this.key("q").int(),this.key("g").int(),this.key("pub_key").int(),this.key("priv_key").int())}));t.DSAPrivateKey=d,t.DSAparam=n.define("DSAparam",(function(){this.int()}));var l=n.define("ECPrivateKey",(function(){this.seq().obj(this.key("version").int(),this.key("privateKey").octstr(),this.key("parameters").optional().explicit(0).use(f),this.key("publicKey").optional().explicit(1).bitstr())}));t.ECPrivateKey=l;var f=n.define("ECParameters",(function(){this.choice({namedCurve:this.objid()})}));t.signature=n.define("signature",(function(){this.seq().obj(this.key("r").int(),this.key("s").int())}))},41934:(e,t,r)=>{"use strict";var n=r(39809),o=n.define("Time",(function(){this.choice({utcTime:this.utctime(),generalTime:this.gentime()})})),i=n.define("AttributeTypeValue",(function(){this.seq().obj(this.key("type").objid(),this.key("value").any())})),a=n.define("AlgorithmIdentifier",(function(){this.seq().obj(this.key("algorithm").objid(),this.key("parameters").optional(),this.key("curve").objid().optional())})),s=n.define("SubjectPublicKeyInfo",(function(){this.seq().obj(this.key("algorithm").use(a),this.key("subjectPublicKey").bitstr())})),u=n.define("RelativeDistinguishedName",(function(){this.setof(i)})),c=n.define("RDNSequence",(function(){this.seqof(u)})),d=n.define("Name",(function(){this.choice({rdnSequence:this.use(c)})})),l=n.define("Validity",(function(){this.seq().obj(this.key("notBefore").use(o),this.key("notAfter").use(o))})),f=n.define("Extension",(function(){this.seq().obj(this.key("extnID").objid(),this.key("critical").bool().def(!1),this.key("extnValue").octstr())})),h=n.define("TBSCertificate",(function(){this.seq().obj(this.key("version").explicit(0).int().optional(),this.key("serialNumber").int(),this.key("signature").use(a),this.key("issuer").use(d),this.key("validity").use(l),this.key("subject").use(d),this.key("subjectPublicKeyInfo").use(s),this.key("issuerUniqueID").implicit(1).bitstr().optional(),this.key("subjectUniqueID").implicit(2).bitstr().optional(),this.key("extensions").explicit(3).seqof(f).optional())})),p=n.define("X509Certificate",(function(){this.seq().obj(this.key("tbsCertificate").use(h),this.key("signatureAlgorithm").use(a),this.key("signatureValue").bitstr())}));e.exports=p},77631:(e,t,r)=>{var n=/Proc-Type: 4,ENCRYPTED[\n\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\n\r]+([0-9A-z\n\r+/=]+)[\n\r]+/m,o=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m,i=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\n\r+/=]+)-----END \1-----$/m,a=r(13048),s=r(44696),u=r(89509).Buffer;e.exports=function(e,t){var r,c=e.toString(),d=c.match(n);if(d){var l="aes"+d[1],f=u.from(d[2],"hex"),h=u.from(d[3].replace(/[\r\n]/g,""),"base64"),p=a(t,f.slice(0,8),parseInt(d[1],10)).key,m=[],g=s.createDecipheriv(l,p,f);m.push(g.update(h)),m.push(g.final()),r=u.concat(m)}else{var v=c.match(i);r=u.from(v[2].replace(/[\r\n]/g,""),"base64")}return{tag:c.match(o)[1],data:r}}},70980:(e,t,r)=>{var n=r(52818),o=r(22562),i=r(77631),a=r(44696),s=r(25632),u=r(89509).Buffer;function c(e){var t;"object"!=typeof e||u.isBuffer(e)||(t=e.passphrase,e=e.key),"string"==typeof e&&(e=u.from(e));var r,c,d=i(e,t),l=d.tag,f=d.data;switch(l){case"CERTIFICATE":c=n.certificate.decode(f,"der").tbsCertificate.subjectPublicKeyInfo;case"PUBLIC KEY":switch(c||(c=n.PublicKey.decode(f,"der")),r=c.algorithm.algorithm.join(".")){case"1.2.840.113549.1.1.1":return n.RSAPublicKey.decode(c.subjectPublicKey.data,"der");case"1.2.840.10045.2.1":return c.subjectPrivateKey=c.subjectPublicKey,{type:"ec",data:c};case"1.2.840.10040.4.1":return c.algorithm.params.pub_key=n.DSAparam.decode(c.subjectPublicKey.data,"der"),{type:"dsa",data:c.algorithm.params};default:throw new Error("unknown key id "+r)}case"ENCRYPTED PRIVATE KEY":f=function(e,t){var r=e.algorithm.decrypt.kde.kdeparams.salt,n=parseInt(e.algorithm.decrypt.kde.kdeparams.iters.toString(),10),i=o[e.algorithm.decrypt.cipher.algo.join(".")],c=e.algorithm.decrypt.cipher.iv,d=e.subjectPrivateKey,l=parseInt(i.split("-")[1],10)/8,f=s.pbkdf2Sync(t,r,n,l,"sha1"),h=a.createDecipheriv(i,f,c),p=[];return p.push(h.update(d)),p.push(h.final()),u.concat(p)}(f=n.EncryptedPrivateKey.decode(f,"der"),t);case"PRIVATE KEY":switch(r=(c=n.PrivateKey.decode(f,"der")).algorithm.algorithm.join(".")){case"1.2.840.113549.1.1.1":return n.RSAPrivateKey.decode(c.subjectPrivateKey,"der");case"1.2.840.10045.2.1":return{curve:c.algorithm.curve,privateKey:n.ECPrivateKey.decode(c.subjectPrivateKey,"der").privateKey};case"1.2.840.10040.4.1":return c.algorithm.params.priv_key=n.DSAparam.decode(c.subjectPrivateKey,"der"),{type:"dsa",params:c.algorithm.params};default:throw new Error("unknown key id "+r)}case"RSA PUBLIC KEY":return n.RSAPublicKey.decode(f,"der");case"RSA PRIVATE KEY":return n.RSAPrivateKey.decode(f,"der");case"DSA PRIVATE KEY":return{type:"dsa",params:n.DSAPrivateKey.decode(f,"der")};case"EC PRIVATE KEY":return{curve:(f=n.ECPrivateKey.decode(f,"der")).parameters.value,privateKey:f.privateKey};default:throw new Error("unknown key type "+l)}}e.exports=c,c.signature=n.signature},25632:(e,t,r)=>{t.pbkdf2=r(88638),t.pbkdf2Sync=r(91257)},88638:(e,t,r)=>{var n,o,i=r(89509).Buffer,a=r(77357),s=r(12368),u=r(91257),c=r(57777),d=r.g.crypto&&r.g.crypto.subtle,l={sha:"SHA-1","sha-1":"SHA-1",sha1:"SHA-1",sha256:"SHA-256","sha-256":"SHA-256",sha384:"SHA-384","sha-384":"SHA-384","sha-512":"SHA-512",sha512:"SHA-512"},f=[];function h(){return o||(o=r.g.process&&r.g.process.nextTick?r.g.process.nextTick:r.g.queueMicrotask?r.g.queueMicrotask:r.g.setImmediate?r.g.setImmediate:r.g.setTimeout)}function p(e,t,r,n,o){return d.importKey("raw",e,{name:"PBKDF2"},!1,["deriveBits"]).then((function(e){return d.deriveBits({name:"PBKDF2",salt:t,iterations:r,hash:{name:o}},e,n<<3)})).then((function(e){return i.from(e)}))}e.exports=function(e,t,o,m,g,v){"function"==typeof g&&(v=g,g=void 0);var b=l[(g=g||"sha1").toLowerCase()];if(b&&"function"==typeof r.g.Promise){if(a(o,m),e=c(e,s,"Password"),t=c(t,s,"Salt"),"function"!=typeof v)throw new Error("No callback provided to pbkdf2");!function(e,t){e.then((function(e){h()((function(){t(null,e)}))}),(function(e){h()((function(){t(e)}))}))}(function(e){if(r.g.process&&!r.g.process.browser)return Promise.resolve(!1);if(!d||!d.importKey||!d.deriveBits)return Promise.resolve(!1);if(void 0!==f[e])return f[e];var t=p(n=n||i.alloc(8),n,10,128,e).then((function(){return!0})).catch((function(){return!1}));return f[e]=t,t}(b).then((function(r){return r?p(e,t,o,m,b):u(e,t,o,m,g)})),v)}else h()((function(){var r;try{r=u(e,t,o,m,g)}catch(e){return v(e)}v(null,r)}))}},12368:(e,t,r)=>{var n;n=r.g.process&&r.g.process.browser?"utf-8":r.g.process&&r.g.process.version?parseInt(process.version.split(".")[0].slice(1),10)>=6?"utf-8":"binary":"utf-8",e.exports=n},77357:e=>{var t=Math.pow(2,30)-1;e.exports=function(e,r){if("number"!=typeof e)throw new TypeError("Iterations not a number");if(e<0)throw new TypeError("Bad iterations");if("number"!=typeof r)throw new TypeError("Key length not a number");if(r<0||r>t||r!=r)throw new TypeError("Bad key length")}},91257:(e,t,r)=>{var n=r(78028),o=r(79785),i=r(89072),a=r(89509).Buffer,s=r(77357),u=r(12368),c=r(57777),d=a.alloc(128),l={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,rmd160:20,ripemd160:20};function f(e,t,r){var s=function(e){return"rmd160"===e||"ripemd160"===e?function(e){return(new o).update(e).digest()}:"md5"===e?n:function(t){return i(e).update(t).digest()}}(e),u="sha512"===e||"sha384"===e?128:64;t.length>u?t=s(t):t.length{var n=r(89509).Buffer;e.exports=function(e,t,r){if(n.isBuffer(e))return e;if("string"==typeof e)return n.from(e,t);if(ArrayBuffer.isView(e))return n.from(e.buffer);throw new TypeError(r+" must be a string, a Buffer, a typed array or a DataView")}},62100:(e,t,r)=>{"use strict";e.exports=r(89482)},89482:(e,t,r)=>{"use strict";var n=t;function o(){n.util._configure(),n.Writer._configure(n.BufferWriter),n.Reader._configure(n.BufferReader)}n.build="minimal",n.Writer=r(41173),n.BufferWriter=r(43155),n.Reader=r(51408),n.BufferReader=r(50593),n.util=r(99693),n.rpc=r(35994),n.roots=r(85054),n.configure=o,o()},51408:(e,t,r)=>{"use strict";e.exports=u;var n,o=r(99693),i=o.LongBits,a=o.utf8;function s(e,t){return RangeError("index out of range: "+e.pos+" + "+(t||1)+" > "+e.len)}function u(e){this.buf=e,this.pos=0,this.len=e.length}var c,d="undefined"!=typeof Uint8Array?function(e){if(e instanceof Uint8Array||Array.isArray(e))return new u(e);throw Error("illegal buffer")}:function(e){if(Array.isArray(e))return new u(e);throw Error("illegal buffer")},l=function(){return o.Buffer?function(e){return(u.create=function(e){return o.Buffer.isBuffer(e)?new n(e):d(e)})(e)}:d};function f(){var e=new i(0,0),t=0;if(!(this.len-this.pos>4)){for(;t<3;++t){if(this.pos>=this.len)throw s(this);if(e.lo=(e.lo|(127&this.buf[this.pos])<<7*t)>>>0,this.buf[this.pos++]<128)return e}return e.lo=(e.lo|(127&this.buf[this.pos++])<<7*t)>>>0,e}for(;t<4;++t)if(e.lo=(e.lo|(127&this.buf[this.pos])<<7*t)>>>0,this.buf[this.pos++]<128)return e;if(e.lo=(e.lo|(127&this.buf[this.pos])<<28)>>>0,e.hi=(e.hi|(127&this.buf[this.pos])>>4)>>>0,this.buf[this.pos++]<128)return e;if(t=0,this.len-this.pos>4){for(;t<5;++t)if(e.hi=(e.hi|(127&this.buf[this.pos])<<7*t+3)>>>0,this.buf[this.pos++]<128)return e}else for(;t<5;++t){if(this.pos>=this.len)throw s(this);if(e.hi=(e.hi|(127&this.buf[this.pos])<<7*t+3)>>>0,this.buf[this.pos++]<128)return e}throw Error("invalid varint encoding")}function h(e,t){return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0}function p(){if(this.pos+8>this.len)throw s(this,8);return new i(h(this.buf,this.pos+=4),h(this.buf,this.pos+=4))}u.create=l(),u.prototype._slice=o.Array.prototype.subarray||o.Array.prototype.slice,u.prototype.uint32=(c=4294967295,function(){if(c=(127&this.buf[this.pos])>>>0,this.buf[this.pos++]<128)return c;if(c=(c|(127&this.buf[this.pos])<<7)>>>0,this.buf[this.pos++]<128)return c;if(c=(c|(127&this.buf[this.pos])<<14)>>>0,this.buf[this.pos++]<128)return c;if(c=(c|(127&this.buf[this.pos])<<21)>>>0,this.buf[this.pos++]<128)return c;if(c=(c|(15&this.buf[this.pos])<<28)>>>0,this.buf[this.pos++]<128)return c;if((this.pos+=5)>this.len)throw this.pos=this.len,s(this,10);return c}),u.prototype.int32=function(){return 0|this.uint32()},u.prototype.sint32=function(){var e=this.uint32();return e>>>1^-(1&e)|0},u.prototype.bool=function(){return 0!==this.uint32()},u.prototype.fixed32=function(){if(this.pos+4>this.len)throw s(this,4);return h(this.buf,this.pos+=4)},u.prototype.sfixed32=function(){if(this.pos+4>this.len)throw s(this,4);return 0|h(this.buf,this.pos+=4)},u.prototype.float=function(){if(this.pos+4>this.len)throw s(this,4);var e=o.float.readFloatLE(this.buf,this.pos);return this.pos+=4,e},u.prototype.double=function(){if(this.pos+8>this.len)throw s(this,4);var e=o.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,e},u.prototype.bytes=function(){var e=this.uint32(),t=this.pos,r=this.pos+e;if(r>this.len)throw s(this,e);return this.pos+=e,Array.isArray(this.buf)?this.buf.slice(t,r):t===r?new this.buf.constructor(0):this._slice.call(this.buf,t,r)},u.prototype.string=function(){var e=this.bytes();return a.read(e,0,e.length)},u.prototype.skip=function(e){if("number"==typeof e){if(this.pos+e>this.len)throw s(this,e);this.pos+=e}else do{if(this.pos>=this.len)throw s(this)}while(128&this.buf[this.pos++]);return this},u.prototype.skipType=function(e){switch(e){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;4!=(e=7&this.uint32());)this.skipType(e);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+e+" at offset "+this.pos)}return this},u._configure=function(e){n=e,u.create=l(),n._configure();var t=o.Long?"toLong":"toNumber";o.merge(u.prototype,{int64:function(){return f.call(this)[t](!1)},uint64:function(){return f.call(this)[t](!0)},sint64:function(){return f.call(this).zzDecode()[t](!1)},fixed64:function(){return p.call(this)[t](!0)},sfixed64:function(){return p.call(this)[t](!1)}})}},50593:(e,t,r)=>{"use strict";e.exports=i;var n=r(51408);(i.prototype=Object.create(n.prototype)).constructor=i;var o=r(99693);function i(e){n.call(this,e)}i._configure=function(){o.Buffer&&(i.prototype._slice=o.Buffer.prototype.slice)},i.prototype.string=function(){var e=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+e,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+e,this.len))},i._configure()},85054:e=>{"use strict";e.exports={}},35994:(e,t,r)=>{"use strict";t.Service=r(77948)},77948:(e,t,r)=>{"use strict";e.exports=o;var n=r(99693);function o(e,t,r){if("function"!=typeof e)throw TypeError("rpcImpl must be a function");n.EventEmitter.call(this),this.rpcImpl=e,this.requestDelimited=Boolean(t),this.responseDelimited=Boolean(r)}(o.prototype=Object.create(n.EventEmitter.prototype)).constructor=o,o.prototype.rpcCall=function e(t,r,o,i,a){if(!i)throw TypeError("request must be specified");var s=this;if(!a)return n.asPromise(e,s,t,r,o,i);if(s.rpcImpl)try{return s.rpcImpl(t,r[s.requestDelimited?"encodeDelimited":"encode"](i).finish(),(function(e,r){if(e)return s.emit("error",e,t),a(e);if(null!==r){if(!(r instanceof o))try{r=o[s.responseDelimited?"decodeDelimited":"decode"](r)}catch(e){return s.emit("error",e,t),a(e)}return s.emit("data",r,t),a(null,r)}s.end(!0)}))}catch(e){return s.emit("error",e,t),void setTimeout((function(){a(e)}),0)}else setTimeout((function(){a(Error("already ended"))}),0)},o.prototype.end=function(e){return this.rpcImpl&&(e||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this}},1945:(e,t,r)=>{"use strict";e.exports=o;var n=r(99693);function o(e,t){this.lo=e>>>0,this.hi=t>>>0}var i=o.zero=new o(0,0);i.toNumber=function(){return 0},i.zzEncode=i.zzDecode=function(){return this},i.length=function(){return 1};var a=o.zeroHash="\0\0\0\0\0\0\0\0";o.fromNumber=function(e){if(0===e)return i;var t=e<0;t&&(e=-e);var r=e>>>0,n=(e-r)/4294967296>>>0;return t&&(n=~n>>>0,r=~r>>>0,++r>4294967295&&(r=0,++n>4294967295&&(n=0))),new o(r,n)},o.from=function(e){if("number"==typeof e)return o.fromNumber(e);if(n.isString(e)){if(!n.Long)return o.fromNumber(parseInt(e,10));e=n.Long.fromString(e)}return e.low||e.high?new o(e.low>>>0,e.high>>>0):i},o.prototype.toNumber=function(e){if(!e&&this.hi>>>31){var t=1+~this.lo>>>0,r=~this.hi>>>0;return t||(r=r+1>>>0),-(t+4294967296*r)}return this.lo+4294967296*this.hi},o.prototype.toLong=function(e){return n.Long?new n.Long(0|this.lo,0|this.hi,Boolean(e)):{low:0|this.lo,high:0|this.hi,unsigned:Boolean(e)}};var s=String.prototype.charCodeAt;o.fromHash=function(e){return e===a?i:new o((s.call(e,0)|s.call(e,1)<<8|s.call(e,2)<<16|s.call(e,3)<<24)>>>0,(s.call(e,4)|s.call(e,5)<<8|s.call(e,6)<<16|s.call(e,7)<<24)>>>0)},o.prototype.toHash=function(){return String.fromCharCode(255&this.lo,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,255&this.hi,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)},o.prototype.zzEncode=function(){var e=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^e)>>>0,this.lo=(this.lo<<1^e)>>>0,this},o.prototype.zzDecode=function(){var e=-(1&this.lo);return this.lo=((this.lo>>>1|this.hi<<31)^e)>>>0,this.hi=(this.hi>>>1^e)>>>0,this},o.prototype.length=function(){var e=this.lo,t=(this.lo>>>28|this.hi<<4)>>>0,r=this.hi>>>24;return 0===r?0===t?e<16384?e<128?1:2:e<2097152?3:4:t<16384?t<128?5:6:t<2097152?7:8:r<128?9:10}},99693:function(e,t,r){"use strict";var n=t;function o(e,t,r){for(var n=Object.keys(t),o=0;o0)},n.Buffer=function(){try{var e=n.inquire("buffer").Buffer;return e.prototype.utf8Write?e:null}catch(e){return null}}(),n._Buffer_from=null,n._Buffer_allocUnsafe=null,n.newBuffer=function(e){return"number"==typeof e?n.Buffer?n._Buffer_allocUnsafe(e):new n.Array(e):n.Buffer?n._Buffer_from(e):"undefined"==typeof Uint8Array?e:new Uint8Array(e)},n.Array="undefined"!=typeof Uint8Array?Uint8Array:Array,n.Long=n.global.dcodeIO&&n.global.dcodeIO.Long||n.global.Long||n.inquire("long"),n.key2Re=/^true|false|0|1$/,n.key32Re=/^-?(?:0|[1-9][0-9]*)$/,n.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/,n.longToHash=function(e){return e?n.LongBits.from(e).toHash():n.LongBits.zeroHash},n.longFromHash=function(e,t){var r=n.LongBits.fromHash(e);return n.Long?n.Long.fromBits(r.lo,r.hi,t):r.toNumber(Boolean(t))},n.merge=o,n.lcFirst=function(e){return e.charAt(0).toLowerCase()+e.substring(1)},n.newError=i,n.ProtocolError=i("ProtocolError"),n.oneOfGetter=function(e){for(var t={},r=0;r-1;--r)if(1===t[e[r]]&&void 0!==this[e[r]]&&null!==this[e[r]])return e[r]}},n.oneOfSetter=function(e){return function(t){for(var r=0;r{"use strict";e.exports=l;var n,o=r(99693),i=o.LongBits,a=o.base64,s=o.utf8;function u(e,t,r){this.fn=e,this.len=t,this.next=void 0,this.val=r}function c(){}function d(e){this.head=e.head,this.tail=e.tail,this.len=e.len,this.next=e.states}function l(){this.len=0,this.head=new u(c,0,0),this.tail=this.head,this.states=null}var f=function(){return o.Buffer?function(){return(l.create=function(){return new n})()}:function(){return new l}};function h(e,t,r){t[r]=255&e}function p(e,t){this.len=e,this.next=void 0,this.val=t}function m(e,t,r){for(;e.hi;)t[r++]=127&e.lo|128,e.lo=(e.lo>>>7|e.hi<<25)>>>0,e.hi>>>=7;for(;e.lo>127;)t[r++]=127&e.lo|128,e.lo=e.lo>>>7;t[r++]=e.lo}function g(e,t,r){t[r]=255&e,t[r+1]=e>>>8&255,t[r+2]=e>>>16&255,t[r+3]=e>>>24}l.create=f(),l.alloc=function(e){return new o.Array(e)},o.Array!==Array&&(l.alloc=o.pool(l.alloc,o.Array.prototype.subarray)),l.prototype._push=function(e,t,r){return this.tail=this.tail.next=new u(e,t,r),this.len+=t,this},p.prototype=Object.create(u.prototype),p.prototype.fn=function(e,t,r){for(;e>127;)t[r++]=127&e|128,e>>>=7;t[r]=e},l.prototype.uint32=function(e){return this.len+=(this.tail=this.tail.next=new p((e>>>=0)<128?1:e<16384?2:e<2097152?3:e<268435456?4:5,e)).len,this},l.prototype.int32=function(e){return e<0?this._push(m,10,i.fromNumber(e)):this.uint32(e)},l.prototype.sint32=function(e){return this.uint32((e<<1^e>>31)>>>0)},l.prototype.uint64=function(e){var t=i.from(e);return this._push(m,t.length(),t)},l.prototype.int64=l.prototype.uint64,l.prototype.sint64=function(e){var t=i.from(e).zzEncode();return this._push(m,t.length(),t)},l.prototype.bool=function(e){return this._push(h,1,e?1:0)},l.prototype.fixed32=function(e){return this._push(g,4,e>>>0)},l.prototype.sfixed32=l.prototype.fixed32,l.prototype.fixed64=function(e){var t=i.from(e);return this._push(g,4,t.lo)._push(g,4,t.hi)},l.prototype.sfixed64=l.prototype.fixed64,l.prototype.float=function(e){return this._push(o.float.writeFloatLE,4,e)},l.prototype.double=function(e){return this._push(o.float.writeDoubleLE,8,e)};var v=o.Array.prototype.set?function(e,t,r){t.set(e,r)}:function(e,t,r){for(var n=0;n>>0;if(!t)return this._push(h,1,0);if(o.isString(e)){var r=l.alloc(t=a.length(e));a.decode(e,r,0),e=r}return this.uint32(t)._push(v,t,e)},l.prototype.string=function(e){var t=s.length(e);return t?this.uint32(t)._push(s.write,t,e):this._push(h,1,0)},l.prototype.fork=function(){return this.states=new d(this),this.head=this.tail=new u(c,0,0),this.len=0,this},l.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new u(c,0,0),this.len=0),this},l.prototype.ldelim=function(){var e=this.head,t=this.tail,r=this.len;return this.reset().uint32(r),r&&(this.tail.next=e.next,this.tail=t,this.len+=r),this},l.prototype.finish=function(){for(var e=this.head.next,t=this.constructor.alloc(this.len),r=0;e;)e.fn(e.val,t,r),r+=e.len,e=e.next;return t},l._configure=function(e){n=e,l.create=f(),n._configure()}},43155:(e,t,r)=>{"use strict";e.exports=i;var n=r(41173);(i.prototype=Object.create(n.prototype)).constructor=i;var o=r(99693);function i(){n.call(this)}function a(e,t,r){e.length<40?o.utf8.write(e,t,r):t.utf8Write?t.utf8Write(e,r):t.write(e,r)}i._configure=function(){i.alloc=o._Buffer_allocUnsafe,i.writeBytesBuffer=o.Buffer&&o.Buffer.prototype instanceof Uint8Array&&"set"===o.Buffer.prototype.set.name?function(e,t,r){t.set(e,r)}:function(e,t,r){if(e.copy)e.copy(t,r,0,e.length);else for(var n=0;n>>0;return this.uint32(t),t&&this._push(i.writeBytesBuffer,t,e),this},i.prototype.string=function(e){var t=o.Buffer.byteLength(e);return this.uint32(t),t&&this._push(a,t,e),this},i._configure()},7900:(e,t,r)=>{t.publicEncrypt=r(16559),t.privateDecrypt=r(26138),t.privateEncrypt=function(e,r){return t.publicEncrypt(e,r,!0)},t.publicDecrypt=function(e,r){return t.privateDecrypt(e,r,!0)}},99199:(e,t,r)=>{var n=r(23482),o=r(89509).Buffer;function i(e){var t=o.allocUnsafe(4);return t.writeUInt32BE(e,0),t}e.exports=function(e,t){for(var r,a=o.alloc(0),s=0;a.length=65&&r<=70?r-55:r>=97&&r<=102?r-87:r-48&15}function u(e,t,r){var n=s(e,r);return r-1>=t&&(n|=s(e,r-1)<<4),n}function c(e,t,r,n){for(var o=0,i=Math.min(e.length,r),a=t;a=49?s-49+10:s>=17?s-17+10:s}return o}i.isBN=function(e){return e instanceof i||null!==e&&"object"==typeof e&&e.constructor.wordSize===i.wordSize&&Array.isArray(e.words)},i.max=function(e,t){return e.cmp(t)>0?e:t},i.min=function(e,t){return e.cmp(t)<0?e:t},i.prototype._init=function(e,t,r){if("number"==typeof e)return this._initNumber(e,t,r);if("object"==typeof e)return this._initArray(e,t,r);"hex"===t&&(t=16),n(t===(0|t)&&t>=2&&t<=36);var o=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(o++,this.negative=1),o=0;o-=3)a=e[o]|e[o-1]<<8|e[o-2]<<16,this.words[i]|=a<>>26-s&67108863,(s+=24)>=26&&(s-=26,i++);else if("le"===r)for(o=0,i=0;o>>26-s&67108863,(s+=24)>=26&&(s-=26,i++);return this.strip()},i.prototype._parseHex=function(e,t,r){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var n=0;n=t;n-=2)o=u(e,t,n)<=18?(i-=18,a+=1,this.words[a]|=o>>>26):i+=8;else for(n=(e.length-t)%2==0?t+1:t;n=18?(i-=18,a+=1,this.words[a]|=o>>>26):i+=8;this.strip()},i.prototype._parseBase=function(e,t,r){this.words=[0],this.length=1;for(var n=0,o=1;o<=67108863;o*=t)n++;n--,o=o/t|0;for(var i=e.length-r,a=i%n,s=Math.min(i,i-a)+r,u=0,d=r;d1&&0===this.words[this.length-1];)this.length--;return this._normSign()},i.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},i.prototype.inspect=function(){return(this.red?""};var d=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],l=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],f=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function h(e,t,r){r.negative=t.negative^e.negative;var n=e.length+t.length|0;r.length=n,n=n-1|0;var o=0|e.words[0],i=0|t.words[0],a=o*i,s=67108863&a,u=a/67108864|0;r.words[0]=s;for(var c=1;c>>26,l=67108863&u,f=Math.min(c,t.length-1),h=Math.max(0,c-e.length+1);h<=f;h++){var p=c-h|0;d+=(a=(o=0|e.words[p])*(i=0|t.words[h])+l)/67108864|0,l=67108863&a}r.words[c]=0|l,u=0|d}return 0!==u?r.words[c]=0|u:r.length--,r.strip()}i.prototype.toString=function(e,t){var r;if(t=0|t||1,16===(e=e||10)||"hex"===e){r="";for(var o=0,i=0,a=0;a>>24-o&16777215)||a!==this.length-1?d[6-u.length]+u+r:u+r,(o+=2)>=26&&(o-=26,a--)}for(0!==i&&(r=i.toString(16)+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(e===(0|e)&&e>=2&&e<=36){var c=l[e],h=f[e];r="";var p=this.clone();for(p.negative=0;!p.isZero();){var m=p.modn(h).toString(e);r=(p=p.idivn(h)).isZero()?m+r:d[c-m.length]+m+r}for(this.isZero()&&(r="0"+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}n(!1,"Base should be between 2 and 36")},i.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},i.prototype.toJSON=function(){return this.toString(16)},i.prototype.toBuffer=function(e,t){return n(void 0!==a),this.toArrayLike(a,e,t)},i.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},i.prototype.toArrayLike=function(e,t,r){var o=this.byteLength(),i=r||Math.max(1,o);n(o<=i,"byte array longer than desired length"),n(i>0,"Requested array length <= 0"),this.strip();var a,s,u="le"===t,c=new e(i),d=this.clone();if(u){for(s=0;!d.isZero();s++)a=d.andln(255),d.iushrn(8),c[s]=a;for(;s=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},i.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,r=0;return 0==(8191&t)&&(r+=13,t>>>=13),0==(127&t)&&(r+=7,t>>>=7),0==(15&t)&&(r+=4,t>>>=4),0==(3&t)&&(r+=2,t>>>=2),0==(1&t)&&r++,r},i.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},i.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;te.length?this.clone().ior(e):e.clone().ior(this)},i.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},i.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var r=0;re.length?this.clone().iand(e):e.clone().iand(this)},i.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},i.prototype.iuxor=function(e){var t,r;this.length>e.length?(t=this,r=e):(t=e,r=this);for(var n=0;ne.length?this.clone().ixor(e):e.clone().ixor(this)},i.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},i.prototype.inotn=function(e){n("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),r=e%26;this._expand(t),r>0&&t--;for(var o=0;o0&&(this.words[o]=~this.words[o]&67108863>>26-r),this.strip()},i.prototype.notn=function(e){return this.clone().inotn(e)},i.prototype.setn=function(e,t){n("number"==typeof e&&e>=0);var r=e/26|0,o=e%26;return this._expand(r+1),this.words[r]=t?this.words[r]|1<e.length?(r=this,n=e):(r=e,n=this);for(var o=0,i=0;i>>26;for(;0!==o&&i>>26;if(this.length=r.length,0!==o)this.words[this.length]=o,this.length++;else if(r!==this)for(;ie.length?this.clone().iadd(e):e.clone().iadd(this)},i.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var r,n,o=this.cmp(e);if(0===o)return this.negative=0,this.length=1,this.words[0]=0,this;o>0?(r=this,n=e):(r=e,n=this);for(var i=0,a=0;a>26,this.words[a]=67108863&t;for(;0!==i&&a>26,this.words[a]=67108863&t;if(0===i&&a>>13,h=0|a[1],p=8191&h,m=h>>>13,g=0|a[2],v=8191&g,b=g>>>13,y=0|a[3],w=8191&y,_=y>>>13,S=0|a[4],O=8191&S,k=S>>>13,A=0|a[5],P=8191&A,M=A>>>13,E=0|a[6],C=8191&E,N=E>>>13,x=0|a[7],R=8191&x,I=x>>>13,T=0|a[8],j=8191&T,D=T>>>13,B=0|a[9],U=8191&B,J=B>>>13,H=0|s[0],L=8191&H,z=H>>>13,V=0|s[1],q=8191&V,F=V>>>13,Z=0|s[2],W=8191&Z,K=Z>>>13,G=0|s[3],Y=8191&G,$=G>>>13,X=0|s[4],Q=8191&X,ee=X>>>13,te=0|s[5],re=8191&te,ne=te>>>13,oe=0|s[6],ie=8191&oe,ae=oe>>>13,se=0|s[7],ue=8191&se,ce=se>>>13,de=0|s[8],le=8191&de,fe=de>>>13,he=0|s[9],pe=8191&he,me=he>>>13;r.negative=e.negative^t.negative,r.length=19;var ge=(c+(n=Math.imul(l,L))|0)+((8191&(o=(o=Math.imul(l,z))+Math.imul(f,L)|0))<<13)|0;c=((i=Math.imul(f,z))+(o>>>13)|0)+(ge>>>26)|0,ge&=67108863,n=Math.imul(p,L),o=(o=Math.imul(p,z))+Math.imul(m,L)|0,i=Math.imul(m,z);var ve=(c+(n=n+Math.imul(l,q)|0)|0)+((8191&(o=(o=o+Math.imul(l,F)|0)+Math.imul(f,q)|0))<<13)|0;c=((i=i+Math.imul(f,F)|0)+(o>>>13)|0)+(ve>>>26)|0,ve&=67108863,n=Math.imul(v,L),o=(o=Math.imul(v,z))+Math.imul(b,L)|0,i=Math.imul(b,z),n=n+Math.imul(p,q)|0,o=(o=o+Math.imul(p,F)|0)+Math.imul(m,q)|0,i=i+Math.imul(m,F)|0;var be=(c+(n=n+Math.imul(l,W)|0)|0)+((8191&(o=(o=o+Math.imul(l,K)|0)+Math.imul(f,W)|0))<<13)|0;c=((i=i+Math.imul(f,K)|0)+(o>>>13)|0)+(be>>>26)|0,be&=67108863,n=Math.imul(w,L),o=(o=Math.imul(w,z))+Math.imul(_,L)|0,i=Math.imul(_,z),n=n+Math.imul(v,q)|0,o=(o=o+Math.imul(v,F)|0)+Math.imul(b,q)|0,i=i+Math.imul(b,F)|0,n=n+Math.imul(p,W)|0,o=(o=o+Math.imul(p,K)|0)+Math.imul(m,W)|0,i=i+Math.imul(m,K)|0;var ye=(c+(n=n+Math.imul(l,Y)|0)|0)+((8191&(o=(o=o+Math.imul(l,$)|0)+Math.imul(f,Y)|0))<<13)|0;c=((i=i+Math.imul(f,$)|0)+(o>>>13)|0)+(ye>>>26)|0,ye&=67108863,n=Math.imul(O,L),o=(o=Math.imul(O,z))+Math.imul(k,L)|0,i=Math.imul(k,z),n=n+Math.imul(w,q)|0,o=(o=o+Math.imul(w,F)|0)+Math.imul(_,q)|0,i=i+Math.imul(_,F)|0,n=n+Math.imul(v,W)|0,o=(o=o+Math.imul(v,K)|0)+Math.imul(b,W)|0,i=i+Math.imul(b,K)|0,n=n+Math.imul(p,Y)|0,o=(o=o+Math.imul(p,$)|0)+Math.imul(m,Y)|0,i=i+Math.imul(m,$)|0;var we=(c+(n=n+Math.imul(l,Q)|0)|0)+((8191&(o=(o=o+Math.imul(l,ee)|0)+Math.imul(f,Q)|0))<<13)|0;c=((i=i+Math.imul(f,ee)|0)+(o>>>13)|0)+(we>>>26)|0,we&=67108863,n=Math.imul(P,L),o=(o=Math.imul(P,z))+Math.imul(M,L)|0,i=Math.imul(M,z),n=n+Math.imul(O,q)|0,o=(o=o+Math.imul(O,F)|0)+Math.imul(k,q)|0,i=i+Math.imul(k,F)|0,n=n+Math.imul(w,W)|0,o=(o=o+Math.imul(w,K)|0)+Math.imul(_,W)|0,i=i+Math.imul(_,K)|0,n=n+Math.imul(v,Y)|0,o=(o=o+Math.imul(v,$)|0)+Math.imul(b,Y)|0,i=i+Math.imul(b,$)|0,n=n+Math.imul(p,Q)|0,o=(o=o+Math.imul(p,ee)|0)+Math.imul(m,Q)|0,i=i+Math.imul(m,ee)|0;var _e=(c+(n=n+Math.imul(l,re)|0)|0)+((8191&(o=(o=o+Math.imul(l,ne)|0)+Math.imul(f,re)|0))<<13)|0;c=((i=i+Math.imul(f,ne)|0)+(o>>>13)|0)+(_e>>>26)|0,_e&=67108863,n=Math.imul(C,L),o=(o=Math.imul(C,z))+Math.imul(N,L)|0,i=Math.imul(N,z),n=n+Math.imul(P,q)|0,o=(o=o+Math.imul(P,F)|0)+Math.imul(M,q)|0,i=i+Math.imul(M,F)|0,n=n+Math.imul(O,W)|0,o=(o=o+Math.imul(O,K)|0)+Math.imul(k,W)|0,i=i+Math.imul(k,K)|0,n=n+Math.imul(w,Y)|0,o=(o=o+Math.imul(w,$)|0)+Math.imul(_,Y)|0,i=i+Math.imul(_,$)|0,n=n+Math.imul(v,Q)|0,o=(o=o+Math.imul(v,ee)|0)+Math.imul(b,Q)|0,i=i+Math.imul(b,ee)|0,n=n+Math.imul(p,re)|0,o=(o=o+Math.imul(p,ne)|0)+Math.imul(m,re)|0,i=i+Math.imul(m,ne)|0;var Se=(c+(n=n+Math.imul(l,ie)|0)|0)+((8191&(o=(o=o+Math.imul(l,ae)|0)+Math.imul(f,ie)|0))<<13)|0;c=((i=i+Math.imul(f,ae)|0)+(o>>>13)|0)+(Se>>>26)|0,Se&=67108863,n=Math.imul(R,L),o=(o=Math.imul(R,z))+Math.imul(I,L)|0,i=Math.imul(I,z),n=n+Math.imul(C,q)|0,o=(o=o+Math.imul(C,F)|0)+Math.imul(N,q)|0,i=i+Math.imul(N,F)|0,n=n+Math.imul(P,W)|0,o=(o=o+Math.imul(P,K)|0)+Math.imul(M,W)|0,i=i+Math.imul(M,K)|0,n=n+Math.imul(O,Y)|0,o=(o=o+Math.imul(O,$)|0)+Math.imul(k,Y)|0,i=i+Math.imul(k,$)|0,n=n+Math.imul(w,Q)|0,o=(o=o+Math.imul(w,ee)|0)+Math.imul(_,Q)|0,i=i+Math.imul(_,ee)|0,n=n+Math.imul(v,re)|0,o=(o=o+Math.imul(v,ne)|0)+Math.imul(b,re)|0,i=i+Math.imul(b,ne)|0,n=n+Math.imul(p,ie)|0,o=(o=o+Math.imul(p,ae)|0)+Math.imul(m,ie)|0,i=i+Math.imul(m,ae)|0;var Oe=(c+(n=n+Math.imul(l,ue)|0)|0)+((8191&(o=(o=o+Math.imul(l,ce)|0)+Math.imul(f,ue)|0))<<13)|0;c=((i=i+Math.imul(f,ce)|0)+(o>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,n=Math.imul(j,L),o=(o=Math.imul(j,z))+Math.imul(D,L)|0,i=Math.imul(D,z),n=n+Math.imul(R,q)|0,o=(o=o+Math.imul(R,F)|0)+Math.imul(I,q)|0,i=i+Math.imul(I,F)|0,n=n+Math.imul(C,W)|0,o=(o=o+Math.imul(C,K)|0)+Math.imul(N,W)|0,i=i+Math.imul(N,K)|0,n=n+Math.imul(P,Y)|0,o=(o=o+Math.imul(P,$)|0)+Math.imul(M,Y)|0,i=i+Math.imul(M,$)|0,n=n+Math.imul(O,Q)|0,o=(o=o+Math.imul(O,ee)|0)+Math.imul(k,Q)|0,i=i+Math.imul(k,ee)|0,n=n+Math.imul(w,re)|0,o=(o=o+Math.imul(w,ne)|0)+Math.imul(_,re)|0,i=i+Math.imul(_,ne)|0,n=n+Math.imul(v,ie)|0,o=(o=o+Math.imul(v,ae)|0)+Math.imul(b,ie)|0,i=i+Math.imul(b,ae)|0,n=n+Math.imul(p,ue)|0,o=(o=o+Math.imul(p,ce)|0)+Math.imul(m,ue)|0,i=i+Math.imul(m,ce)|0;var ke=(c+(n=n+Math.imul(l,le)|0)|0)+((8191&(o=(o=o+Math.imul(l,fe)|0)+Math.imul(f,le)|0))<<13)|0;c=((i=i+Math.imul(f,fe)|0)+(o>>>13)|0)+(ke>>>26)|0,ke&=67108863,n=Math.imul(U,L),o=(o=Math.imul(U,z))+Math.imul(J,L)|0,i=Math.imul(J,z),n=n+Math.imul(j,q)|0,o=(o=o+Math.imul(j,F)|0)+Math.imul(D,q)|0,i=i+Math.imul(D,F)|0,n=n+Math.imul(R,W)|0,o=(o=o+Math.imul(R,K)|0)+Math.imul(I,W)|0,i=i+Math.imul(I,K)|0,n=n+Math.imul(C,Y)|0,o=(o=o+Math.imul(C,$)|0)+Math.imul(N,Y)|0,i=i+Math.imul(N,$)|0,n=n+Math.imul(P,Q)|0,o=(o=o+Math.imul(P,ee)|0)+Math.imul(M,Q)|0,i=i+Math.imul(M,ee)|0,n=n+Math.imul(O,re)|0,o=(o=o+Math.imul(O,ne)|0)+Math.imul(k,re)|0,i=i+Math.imul(k,ne)|0,n=n+Math.imul(w,ie)|0,o=(o=o+Math.imul(w,ae)|0)+Math.imul(_,ie)|0,i=i+Math.imul(_,ae)|0,n=n+Math.imul(v,ue)|0,o=(o=o+Math.imul(v,ce)|0)+Math.imul(b,ue)|0,i=i+Math.imul(b,ce)|0,n=n+Math.imul(p,le)|0,o=(o=o+Math.imul(p,fe)|0)+Math.imul(m,le)|0,i=i+Math.imul(m,fe)|0;var Ae=(c+(n=n+Math.imul(l,pe)|0)|0)+((8191&(o=(o=o+Math.imul(l,me)|0)+Math.imul(f,pe)|0))<<13)|0;c=((i=i+Math.imul(f,me)|0)+(o>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,n=Math.imul(U,q),o=(o=Math.imul(U,F))+Math.imul(J,q)|0,i=Math.imul(J,F),n=n+Math.imul(j,W)|0,o=(o=o+Math.imul(j,K)|0)+Math.imul(D,W)|0,i=i+Math.imul(D,K)|0,n=n+Math.imul(R,Y)|0,o=(o=o+Math.imul(R,$)|0)+Math.imul(I,Y)|0,i=i+Math.imul(I,$)|0,n=n+Math.imul(C,Q)|0,o=(o=o+Math.imul(C,ee)|0)+Math.imul(N,Q)|0,i=i+Math.imul(N,ee)|0,n=n+Math.imul(P,re)|0,o=(o=o+Math.imul(P,ne)|0)+Math.imul(M,re)|0,i=i+Math.imul(M,ne)|0,n=n+Math.imul(O,ie)|0,o=(o=o+Math.imul(O,ae)|0)+Math.imul(k,ie)|0,i=i+Math.imul(k,ae)|0,n=n+Math.imul(w,ue)|0,o=(o=o+Math.imul(w,ce)|0)+Math.imul(_,ue)|0,i=i+Math.imul(_,ce)|0,n=n+Math.imul(v,le)|0,o=(o=o+Math.imul(v,fe)|0)+Math.imul(b,le)|0,i=i+Math.imul(b,fe)|0;var Pe=(c+(n=n+Math.imul(p,pe)|0)|0)+((8191&(o=(o=o+Math.imul(p,me)|0)+Math.imul(m,pe)|0))<<13)|0;c=((i=i+Math.imul(m,me)|0)+(o>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,n=Math.imul(U,W),o=(o=Math.imul(U,K))+Math.imul(J,W)|0,i=Math.imul(J,K),n=n+Math.imul(j,Y)|0,o=(o=o+Math.imul(j,$)|0)+Math.imul(D,Y)|0,i=i+Math.imul(D,$)|0,n=n+Math.imul(R,Q)|0,o=(o=o+Math.imul(R,ee)|0)+Math.imul(I,Q)|0,i=i+Math.imul(I,ee)|0,n=n+Math.imul(C,re)|0,o=(o=o+Math.imul(C,ne)|0)+Math.imul(N,re)|0,i=i+Math.imul(N,ne)|0,n=n+Math.imul(P,ie)|0,o=(o=o+Math.imul(P,ae)|0)+Math.imul(M,ie)|0,i=i+Math.imul(M,ae)|0,n=n+Math.imul(O,ue)|0,o=(o=o+Math.imul(O,ce)|0)+Math.imul(k,ue)|0,i=i+Math.imul(k,ce)|0,n=n+Math.imul(w,le)|0,o=(o=o+Math.imul(w,fe)|0)+Math.imul(_,le)|0,i=i+Math.imul(_,fe)|0;var Me=(c+(n=n+Math.imul(v,pe)|0)|0)+((8191&(o=(o=o+Math.imul(v,me)|0)+Math.imul(b,pe)|0))<<13)|0;c=((i=i+Math.imul(b,me)|0)+(o>>>13)|0)+(Me>>>26)|0,Me&=67108863,n=Math.imul(U,Y),o=(o=Math.imul(U,$))+Math.imul(J,Y)|0,i=Math.imul(J,$),n=n+Math.imul(j,Q)|0,o=(o=o+Math.imul(j,ee)|0)+Math.imul(D,Q)|0,i=i+Math.imul(D,ee)|0,n=n+Math.imul(R,re)|0,o=(o=o+Math.imul(R,ne)|0)+Math.imul(I,re)|0,i=i+Math.imul(I,ne)|0,n=n+Math.imul(C,ie)|0,o=(o=o+Math.imul(C,ae)|0)+Math.imul(N,ie)|0,i=i+Math.imul(N,ae)|0,n=n+Math.imul(P,ue)|0,o=(o=o+Math.imul(P,ce)|0)+Math.imul(M,ue)|0,i=i+Math.imul(M,ce)|0,n=n+Math.imul(O,le)|0,o=(o=o+Math.imul(O,fe)|0)+Math.imul(k,le)|0,i=i+Math.imul(k,fe)|0;var Ee=(c+(n=n+Math.imul(w,pe)|0)|0)+((8191&(o=(o=o+Math.imul(w,me)|0)+Math.imul(_,pe)|0))<<13)|0;c=((i=i+Math.imul(_,me)|0)+(o>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,n=Math.imul(U,Q),o=(o=Math.imul(U,ee))+Math.imul(J,Q)|0,i=Math.imul(J,ee),n=n+Math.imul(j,re)|0,o=(o=o+Math.imul(j,ne)|0)+Math.imul(D,re)|0,i=i+Math.imul(D,ne)|0,n=n+Math.imul(R,ie)|0,o=(o=o+Math.imul(R,ae)|0)+Math.imul(I,ie)|0,i=i+Math.imul(I,ae)|0,n=n+Math.imul(C,ue)|0,o=(o=o+Math.imul(C,ce)|0)+Math.imul(N,ue)|0,i=i+Math.imul(N,ce)|0,n=n+Math.imul(P,le)|0,o=(o=o+Math.imul(P,fe)|0)+Math.imul(M,le)|0,i=i+Math.imul(M,fe)|0;var Ce=(c+(n=n+Math.imul(O,pe)|0)|0)+((8191&(o=(o=o+Math.imul(O,me)|0)+Math.imul(k,pe)|0))<<13)|0;c=((i=i+Math.imul(k,me)|0)+(o>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,n=Math.imul(U,re),o=(o=Math.imul(U,ne))+Math.imul(J,re)|0,i=Math.imul(J,ne),n=n+Math.imul(j,ie)|0,o=(o=o+Math.imul(j,ae)|0)+Math.imul(D,ie)|0,i=i+Math.imul(D,ae)|0,n=n+Math.imul(R,ue)|0,o=(o=o+Math.imul(R,ce)|0)+Math.imul(I,ue)|0,i=i+Math.imul(I,ce)|0,n=n+Math.imul(C,le)|0,o=(o=o+Math.imul(C,fe)|0)+Math.imul(N,le)|0,i=i+Math.imul(N,fe)|0;var Ne=(c+(n=n+Math.imul(P,pe)|0)|0)+((8191&(o=(o=o+Math.imul(P,me)|0)+Math.imul(M,pe)|0))<<13)|0;c=((i=i+Math.imul(M,me)|0)+(o>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,n=Math.imul(U,ie),o=(o=Math.imul(U,ae))+Math.imul(J,ie)|0,i=Math.imul(J,ae),n=n+Math.imul(j,ue)|0,o=(o=o+Math.imul(j,ce)|0)+Math.imul(D,ue)|0,i=i+Math.imul(D,ce)|0,n=n+Math.imul(R,le)|0,o=(o=o+Math.imul(R,fe)|0)+Math.imul(I,le)|0,i=i+Math.imul(I,fe)|0;var xe=(c+(n=n+Math.imul(C,pe)|0)|0)+((8191&(o=(o=o+Math.imul(C,me)|0)+Math.imul(N,pe)|0))<<13)|0;c=((i=i+Math.imul(N,me)|0)+(o>>>13)|0)+(xe>>>26)|0,xe&=67108863,n=Math.imul(U,ue),o=(o=Math.imul(U,ce))+Math.imul(J,ue)|0,i=Math.imul(J,ce),n=n+Math.imul(j,le)|0,o=(o=o+Math.imul(j,fe)|0)+Math.imul(D,le)|0,i=i+Math.imul(D,fe)|0;var Re=(c+(n=n+Math.imul(R,pe)|0)|0)+((8191&(o=(o=o+Math.imul(R,me)|0)+Math.imul(I,pe)|0))<<13)|0;c=((i=i+Math.imul(I,me)|0)+(o>>>13)|0)+(Re>>>26)|0,Re&=67108863,n=Math.imul(U,le),o=(o=Math.imul(U,fe))+Math.imul(J,le)|0,i=Math.imul(J,fe);var Ie=(c+(n=n+Math.imul(j,pe)|0)|0)+((8191&(o=(o=o+Math.imul(j,me)|0)+Math.imul(D,pe)|0))<<13)|0;c=((i=i+Math.imul(D,me)|0)+(o>>>13)|0)+(Ie>>>26)|0,Ie&=67108863;var Te=(c+(n=Math.imul(U,pe))|0)+((8191&(o=(o=Math.imul(U,me))+Math.imul(J,pe)|0))<<13)|0;return c=((i=Math.imul(J,me))+(o>>>13)|0)+(Te>>>26)|0,Te&=67108863,u[0]=ge,u[1]=ve,u[2]=be,u[3]=ye,u[4]=we,u[5]=_e,u[6]=Se,u[7]=Oe,u[8]=ke,u[9]=Ae,u[10]=Pe,u[11]=Me,u[12]=Ee,u[13]=Ce,u[14]=Ne,u[15]=xe,u[16]=Re,u[17]=Ie,u[18]=Te,0!==c&&(u[19]=c,r.length++),r};function m(e,t,r){return(new g).mulp(e,t,r)}function g(e,t){this.x=e,this.y=t}Math.imul||(p=h),i.prototype.mulTo=function(e,t){var r,n=this.length+e.length;return r=10===this.length&&10===e.length?p(this,e,t):n<63?h(this,e,t):n<1024?function(e,t,r){r.negative=t.negative^e.negative,r.length=e.length+t.length;for(var n=0,o=0,i=0;i>>26)|0)>>>26,a&=67108863}r.words[i]=s,n=a,a=o}return 0!==n?r.words[i]=n:r.length--,r.strip()}(this,e,t):m(this,e,t),r},g.prototype.makeRBT=function(e){for(var t=new Array(e),r=i.prototype._countBits(e)-1,n=0;n>=1;return n},g.prototype.permute=function(e,t,r,n,o,i){for(var a=0;a>>=1)o++;return 1<>>=13,r[2*a+1]=8191&i,i>>>=13;for(a=2*t;a>=26,t+=o/67108864|0,t+=i>>>26,this.words[r]=67108863&i}return 0!==t&&(this.words[r]=t,this.length++),this},i.prototype.muln=function(e){return this.clone().imuln(e)},i.prototype.sqr=function(){return this.mul(this)},i.prototype.isqr=function(){return this.imul(this.clone())},i.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),r=0;r>>o}return t}(e);if(0===t.length)return new i(1);for(var r=this,n=0;n=0);var t,r=e%26,o=(e-r)/26,i=67108863>>>26-r<<26-r;if(0!==r){var a=0;for(t=0;t>>26-r}a&&(this.words[t]=a,this.length++)}if(0!==o){for(t=this.length-1;t>=0;t--)this.words[t+o]=this.words[t];for(t=0;t=0),o=t?(t-t%26)/26:0;var i=e%26,a=Math.min((e-i)/26,this.length),s=67108863^67108863>>>i<a)for(this.length-=a,c=0;c=0&&(0!==d||c>=o);c--){var l=0|this.words[c];this.words[c]=d<<26-i|l>>>i,d=l&s}return u&&0!==d&&(u.words[u.length++]=d),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},i.prototype.ishrn=function(e,t,r){return n(0===this.negative),this.iushrn(e,t,r)},i.prototype.shln=function(e){return this.clone().ishln(e)},i.prototype.ushln=function(e){return this.clone().iushln(e)},i.prototype.shrn=function(e){return this.clone().ishrn(e)},i.prototype.ushrn=function(e){return this.clone().iushrn(e)},i.prototype.testn=function(e){n("number"==typeof e&&e>=0);var t=e%26,r=(e-t)/26,o=1<=0);var t=e%26,r=(e-t)/26;if(n(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==t&&r++,this.length=Math.min(r,this.length),0!==t){var o=67108863^67108863>>>t<=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},i.prototype.isubn=function(e){if(n("number"==typeof e),n(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t>26)-(u/67108864|0),this.words[o+r]=67108863&i}for(;o>26,this.words[o+r]=67108863&i;if(0===s)return this.strip();for(n(-1===s),s=0,o=0;o>26,this.words[o]=67108863&i;return this.negative=1,this.strip()},i.prototype._wordDiv=function(e,t){var r=(this.length,e.length),n=this.clone(),o=e,a=0|o.words[o.length-1];0!=(r=26-this._countBits(a))&&(o=o.ushln(r),n.iushln(r),a=0|o.words[o.length-1]);var s,u=n.length-o.length;if("mod"!==t){(s=new i(null)).length=u+1,s.words=new Array(s.length);for(var c=0;c=0;l--){var f=67108864*(0|n.words[o.length+l])+(0|n.words[o.length+l-1]);for(f=Math.min(f/a|0,67108863),n._ishlnsubmul(o,f,l);0!==n.negative;)f--,n.negative=0,n._ishlnsubmul(o,1,l),n.isZero()||(n.negative^=1);s&&(s.words[l]=f)}return s&&s.strip(),n.strip(),"div"!==t&&0!==r&&n.iushrn(r),{div:s||null,mod:n}},i.prototype.divmod=function(e,t,r){return n(!e.isZero()),this.isZero()?{div:new i(0),mod:new i(0)}:0!==this.negative&&0===e.negative?(s=this.neg().divmod(e,t),"mod"!==t&&(o=s.div.neg()),"div"!==t&&(a=s.mod.neg(),r&&0!==a.negative&&a.iadd(e)),{div:o,mod:a}):0===this.negative&&0!==e.negative?(s=this.divmod(e.neg(),t),"mod"!==t&&(o=s.div.neg()),{div:o,mod:s.mod}):0!=(this.negative&e.negative)?(s=this.neg().divmod(e.neg(),t),"div"!==t&&(a=s.mod.neg(),r&&0!==a.negative&&a.isub(e)),{div:s.div,mod:a}):e.length>this.length||this.cmp(e)<0?{div:new i(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new i(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new i(this.modn(e.words[0]))}:this._wordDiv(e,t);var o,a,s},i.prototype.div=function(e){return this.divmod(e,"div",!1).div},i.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},i.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},i.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var r=0!==t.div.negative?t.mod.isub(e):t.mod,n=e.ushrn(1),o=e.andln(1),i=r.cmp(n);return i<0||1===o&&0===i?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},i.prototype.modn=function(e){n(e<=67108863);for(var t=(1<<26)%e,r=0,o=this.length-1;o>=0;o--)r=(t*r+(0|this.words[o]))%e;return r},i.prototype.idivn=function(e){n(e<=67108863);for(var t=0,r=this.length-1;r>=0;r--){var o=(0|this.words[r])+67108864*t;this.words[r]=o/e|0,t=o%e}return this.strip()},i.prototype.divn=function(e){return this.clone().idivn(e)},i.prototype.egcd=function(e){n(0===e.negative),n(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var o=new i(1),a=new i(0),s=new i(0),u=new i(1),c=0;t.isEven()&&r.isEven();)t.iushrn(1),r.iushrn(1),++c;for(var d=r.clone(),l=t.clone();!t.isZero();){for(var f=0,h=1;0==(t.words[0]&h)&&f<26;++f,h<<=1);if(f>0)for(t.iushrn(f);f-- >0;)(o.isOdd()||a.isOdd())&&(o.iadd(d),a.isub(l)),o.iushrn(1),a.iushrn(1);for(var p=0,m=1;0==(r.words[0]&m)&&p<26;++p,m<<=1);if(p>0)for(r.iushrn(p);p-- >0;)(s.isOdd()||u.isOdd())&&(s.iadd(d),u.isub(l)),s.iushrn(1),u.iushrn(1);t.cmp(r)>=0?(t.isub(r),o.isub(s),a.isub(u)):(r.isub(t),s.isub(o),u.isub(a))}return{a:s,b:u,gcd:r.iushln(c)}},i.prototype._invmp=function(e){n(0===e.negative),n(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var o,a=new i(1),s=new i(0),u=r.clone();t.cmpn(1)>0&&r.cmpn(1)>0;){for(var c=0,d=1;0==(t.words[0]&d)&&c<26;++c,d<<=1);if(c>0)for(t.iushrn(c);c-- >0;)a.isOdd()&&a.iadd(u),a.iushrn(1);for(var l=0,f=1;0==(r.words[0]&f)&&l<26;++l,f<<=1);if(l>0)for(r.iushrn(l);l-- >0;)s.isOdd()&&s.iadd(u),s.iushrn(1);t.cmp(r)>=0?(t.isub(r),a.isub(s)):(r.isub(t),s.isub(a))}return(o=0===t.cmpn(1)?a:s).cmpn(0)<0&&o.iadd(e),o},i.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),r=e.clone();t.negative=0,r.negative=0;for(var n=0;t.isEven()&&r.isEven();n++)t.iushrn(1),r.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;r.isEven();)r.iushrn(1);var o=t.cmp(r);if(o<0){var i=t;t=r,r=i}else if(0===o||0===r.cmpn(1))break;t.isub(r)}return r.iushln(n)},i.prototype.invm=function(e){return this.egcd(e).a.umod(e)},i.prototype.isEven=function(){return 0==(1&this.words[0])},i.prototype.isOdd=function(){return 1==(1&this.words[0])},i.prototype.andln=function(e){return this.words[0]&e},i.prototype.bincn=function(e){n("number"==typeof e);var t=e%26,r=(e-t)/26,o=1<>>26,s&=67108863,this.words[a]=s}return 0!==i&&(this.words[a]=i,this.length++),this},i.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},i.prototype.cmpn=function(e){var t,r=e<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)t=1;else{r&&(e=-e),n(e<=67108863,"Number is too big");var o=0|this.words[0];t=o===e?0:oe.length)return 1;if(this.length=0;r--){var n=0|this.words[r],o=0|e.words[r];if(n!==o){no&&(t=1);break}}return t},i.prototype.gtn=function(e){return 1===this.cmpn(e)},i.prototype.gt=function(e){return 1===this.cmp(e)},i.prototype.gten=function(e){return this.cmpn(e)>=0},i.prototype.gte=function(e){return this.cmp(e)>=0},i.prototype.ltn=function(e){return-1===this.cmpn(e)},i.prototype.lt=function(e){return-1===this.cmp(e)},i.prototype.lten=function(e){return this.cmpn(e)<=0},i.prototype.lte=function(e){return this.cmp(e)<=0},i.prototype.eqn=function(e){return 0===this.cmpn(e)},i.prototype.eq=function(e){return 0===this.cmp(e)},i.red=function(e){return new O(e)},i.prototype.toRed=function(e){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},i.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},i.prototype._forceRed=function(e){return this.red=e,this},i.prototype.forceRed=function(e){return n(!this.red,"Already a number in reduction context"),this._forceRed(e)},i.prototype.redAdd=function(e){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},i.prototype.redIAdd=function(e){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},i.prototype.redSub=function(e){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},i.prototype.redISub=function(e){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},i.prototype.redShl=function(e){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},i.prototype.redMul=function(e){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},i.prototype.redIMul=function(e){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},i.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},i.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},i.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},i.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},i.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},i.prototype.redPow=function(e){return n(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var v={k256:null,p224:null,p192:null,p25519:null};function b(e,t){this.name=e,this.p=new i(t,16),this.n=this.p.bitLength(),this.k=new i(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function y(){b.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function w(){b.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function _(){b.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function S(){b.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function O(e){if("string"==typeof e){var t=i._prime(e);this.m=t.p,this.prime=t}else n(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function k(e){O.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new i(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}b.prototype._tmp=function(){var e=new i(null);return e.words=new Array(Math.ceil(this.n/13)),e},b.prototype.ireduce=function(e){var t,r=e;do{this.split(r,this.tmp),t=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(t>this.n);var n=t0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},b.prototype.split=function(e,t){e.iushrn(this.n,0,t)},b.prototype.imulK=function(e){return e.imul(this.k)},o(y,b),y.prototype.split=function(e,t){for(var r=4194303,n=Math.min(e.length,9),o=0;o>>22,i=a}i>>>=22,e.words[o-10]=i,0===i&&e.length>10?e.length-=10:e.length-=9},y.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,r=0;r>>=26,e.words[r]=o,t=n}return 0!==t&&(e.words[e.length++]=t),e},i._prime=function(e){if(v[e])return v[e];var t;if("k256"===e)t=new y;else if("p224"===e)t=new w;else if("p192"===e)t=new _;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new S}return v[e]=t,t},O.prototype._verify1=function(e){n(0===e.negative,"red works only with positives"),n(e.red,"red works only with red numbers")},O.prototype._verify2=function(e,t){n(0==(e.negative|t.negative),"red works only with positives"),n(e.red&&e.red===t.red,"red works only with red numbers")},O.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},O.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},O.prototype.add=function(e,t){this._verify2(e,t);var r=e.add(t);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},O.prototype.iadd=function(e,t){this._verify2(e,t);var r=e.iadd(t);return r.cmp(this.m)>=0&&r.isub(this.m),r},O.prototype.sub=function(e,t){this._verify2(e,t);var r=e.sub(t);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},O.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},O.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},O.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},O.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},O.prototype.isqr=function(e){return this.imul(e,e.clone())},O.prototype.sqr=function(e){return this.mul(e,e)},O.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(n(t%2==1),3===t){var r=this.m.add(new i(1)).iushrn(2);return this.pow(e,r)}for(var o=this.m.subn(1),a=0;!o.isZero()&&0===o.andln(1);)a++,o.iushrn(1);n(!o.isZero());var s=new i(1).toRed(this),u=s.redNeg(),c=this.m.subn(1).iushrn(1),d=this.m.bitLength();for(d=new i(2*d*d).toRed(this);0!==this.pow(d,c).cmp(u);)d.redIAdd(u);for(var l=this.pow(d,o),f=this.pow(e,o.addn(1).iushrn(1)),h=this.pow(e,o),p=a;0!==h.cmp(s);){for(var m=h,g=0;0!==m.cmp(s);g++)m=m.redSqr();n(g=0;n--){for(var c=t.words[n],d=u-1;d>=0;d--){var l=c>>d&1;o!==r[0]&&(o=this.sqr(o)),0!==l||0!==a?(a<<=1,a|=l,(4==++s||0===n&&0===d)&&(o=this.mul(o,r[a]),s=0,a=0)):s=0}u=26}return o},O.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},O.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},i.mont=function(e){return new k(e)},o(k,O),k.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},k.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},k.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var r=e.imul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=r.isub(n).iushrn(this.shift),i=o;return o.cmp(this.m)>=0?i=o.isub(this.m):o.cmpn(0)<0&&(i=o.iadd(this.m)),i._forceRed(this)},k.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new i(0)._forceRed(this);var r=e.mul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=r.isub(n).iushrn(this.shift),a=o;return o.cmp(this.m)>=0?a=o.isub(this.m):o.cmpn(0)<0&&(a=o.iadd(this.m)),a._forceRed(this)},k.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e=r.nmd(e),this)},26138:(e,t,r)=>{var n=r(70980),o=r(99199),i=r(57859),a=r(92144),s=r(23663),u=r(23482),c=r(84818),d=r(89509).Buffer;e.exports=function(e,t,r){var l;l=e.padding?e.padding:r?1:4;var f,h=n(e),p=h.modulus.byteLength();if(t.length>p||new a(t).cmp(h.modulus)>=0)throw new Error("decryption error");f=r?c(new a(t),h):s(t,h);var m=d.alloc(p-f.length);if(f=d.concat([m,f],p),4===l)return function(e,t){var r=e.modulus.byteLength(),n=u("sha1").update(d.alloc(0)).digest(),a=n.length;if(0!==t[0])throw new Error("decryption error");var s=t.slice(1,a+1),c=t.slice(a+1),l=i(s,o(c,a)),f=i(c,o(l,r-a-1));if(function(e,t){e=d.from(e),t=d.from(t);var r=0,n=e.length;e.length!==t.length&&(r++,n=Math.min(e.length,t.length));for(var o=-1;++o=t.length){i++;break}var a=t.slice(2,o-1);if(("0002"!==n.toString("hex")&&!r||"0001"!==n.toString("hex")&&r)&&i++,a.length<8&&i++,i)throw new Error("decryption error");return t.slice(o)}(0,f,r);if(3===l)return f;throw new Error("unknown padding")}},16559:(e,t,r)=>{var n=r(70980),o=r(61798),i=r(23482),a=r(99199),s=r(57859),u=r(92144),c=r(84818),d=r(23663),l=r(89509).Buffer;e.exports=function(e,t,r){var f;f=e.padding?e.padding:r?1:4;var h,p=n(e);if(4===f)h=function(e,t){var r=e.modulus.byteLength(),n=t.length,c=i("sha1").update(l.alloc(0)).digest(),d=c.length,f=2*d;if(n>r-f-2)throw new Error("message too long");var h=l.alloc(r-n-f-2),p=r-d-1,m=o(d),g=s(l.concat([c,h,l.alloc(1,1),t],p),a(m,p)),v=s(m,a(g,d));return new u(l.concat([l.alloc(1),v,g],r))}(p,t);else if(1===f)h=function(e,t,r){var n,i=t.length,a=e.modulus.byteLength();if(i>a-11)throw new Error("message too long");return n=r?l.alloc(a-i-3,255):function(e){for(var t,r=l.allocUnsafe(e),n=0,i=o(2*e),a=0;n=0)throw new Error("data too long for modulus")}return r?d(h,p):c(h,p)}},84818:(e,t,r)=>{var n=r(92144),o=r(89509).Buffer;e.exports=function(e,t){return o.from(e.toRed(n.mont(t.modulus)).redPow(new n(t.publicExponent)).fromRed().toArray())}},57859:e=>{e.exports=function(e,t){for(var r=e.length,n=-1;++n{"use strict";var n=65536,o=r(89509).Buffer,i=r.g.crypto||r.g.msCrypto;i&&i.getRandomValues?e.exports=function(e,t){if(e>4294967295)throw new RangeError("requested too many random bytes");var r=o.allocUnsafe(e);if(e>0)if(e>n)for(var a=0;a{"use strict";function n(){throw new Error("secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer 11")}var o=r(89509),i=r(61798),a=o.Buffer,s=o.kMaxLength,u=r.g.crypto||r.g.msCrypto,c=Math.pow(2,32)-1;function d(e,t){if("number"!=typeof e||e!=e)throw new TypeError("offset must be a number");if(e>c||e<0)throw new TypeError("offset must be a uint32");if(e>s||e>t)throw new RangeError("offset out of range")}function l(e,t,r){if("number"!=typeof e||e!=e)throw new TypeError("size must be a number");if(e>c||e<0)throw new TypeError("size must be a uint32");if(e+t>r||e>s)throw new RangeError("buffer too small")}function f(e,t,r,n){if(process.browser){var o=e.buffer,a=new Uint8Array(o,t,r);return u.getRandomValues(a),n?void process.nextTick((function(){n(null,e)})):e}if(!n)return i(r).copy(e,t),e;i(r,(function(r,o){if(r)return n(r);o.copy(e,t),n(null,e)}))}u&&u.getRandomValues||!process.browser?(t.randomFill=function(e,t,n,o){if(!(a.isBuffer(e)||e instanceof r.g.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');if("function"==typeof t)o=t,t=0,n=e.length;else if("function"==typeof n)o=n,n=e.length-t;else if("function"!=typeof o)throw new TypeError('"cb" argument must be a function');return d(t,e.length),l(n,t,e.length),f(e,t,n,o)},t.randomFillSync=function(e,t,n){if(void 0===t&&(t=0),!(a.isBuffer(e)||e instanceof r.g.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');return d(t,e.length),void 0===n&&(n=e.length-t),l(n,t,e.length),f(e,t,n)}):(t.randomFill=n,t.randomFillSync=n)},94281:e=>{"use strict";var t={};function r(e,r,n){n||(n=Error);var o=function(e){var t,n;function o(t,n,o){return e.call(this,function(e,t,n){return"string"==typeof r?r:r(e,t,n)}(t,n,o))||this}return n=e,(t=o).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,o}(n);o.prototype.name=n.name,o.prototype.code=e,t[e]=o}function n(e,t){if(Array.isArray(e)){var r=e.length;return e=e.map((function(e){return String(e)})),r>2?"one of ".concat(t," ").concat(e.slice(0,r-1).join(", "),", or ")+e[r-1]:2===r?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}return"of ".concat(t," ").concat(String(e))}r("ERR_INVALID_OPT_VALUE",(function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'}),TypeError),r("ERR_INVALID_ARG_TYPE",(function(e,t,r){var o,i,a,s,u;if("string"==typeof t&&(i="not ",t.substr(0,i.length)===i)?(o="must not be",t=t.replace(/^not /,"")):o="must be",function(e,t,r){return(void 0===r||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}(e," argument"))a="The ".concat(e," ").concat(o," ").concat(n(t,"type"));else{var c=("number"!=typeof u&&(u=0),u+".".length>(s=e).length||-1===s.indexOf(".",u)?"argument":"property");a='The "'.concat(e,'" ').concat(c," ").concat(o," ").concat(n(t,"type"))}return a+". Received type ".concat(typeof r)}),TypeError),r("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),r("ERR_METHOD_NOT_IMPLEMENTED",(function(e){return"The "+e+" method is not implemented"})),r("ERR_STREAM_PREMATURE_CLOSE","Premature close"),r("ERR_STREAM_DESTROYED",(function(e){return"Cannot call "+e+" after a stream was destroyed"})),r("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),r("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),r("ERR_STREAM_WRITE_AFTER_END","write after end"),r("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),r("ERR_UNKNOWN_ENCODING",(function(e){return"Unknown encoding: "+e}),TypeError),r("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),e.exports.q=t},56753:(e,t,r)=>{"use strict";var n=Object.keys||function(e){var t=[];for(var r in e)t.push(r);return t};e.exports=c;var o=r(79481),i=r(64229);r(35717)(c,o);for(var a=n(i.prototype),s=0;s{"use strict";e.exports=o;var n=r(74605);function o(e){if(!(this instanceof o))return new o(e);n.call(this,e)}r(35717)(o,n),o.prototype._transform=function(e,t,r){r(null,e)}},79481:(e,t,r)=>{"use strict";var n;e.exports=k,k.ReadableState=O,r(17187).EventEmitter;var o,i=function(e,t){return e.listeners(t).length},a=r(22503),s=r(48764).Buffer,u=r.g.Uint8Array||function(){},c=r(94616);o=c&&c.debuglog?c.debuglog("stream"):function(){};var d,l,f,h=r(57327),p=r(61195),m=r(82457).getHighWaterMark,g=r(94281).q,v=g.ERR_INVALID_ARG_TYPE,b=g.ERR_STREAM_PUSH_AFTER_EOF,y=g.ERR_METHOD_NOT_IMPLEMENTED,w=g.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;r(35717)(k,a);var _=p.errorOrDestroy,S=["error","close","destroy","pause","resume"];function O(e,t,o){n=n||r(56753),e=e||{},"boolean"!=typeof o&&(o=t instanceof n),this.objectMode=!!e.objectMode,o&&(this.objectMode=this.objectMode||!!e.readableObjectMode),this.highWaterMark=m(this,e,"readableHighWaterMark",o),this.buffer=new h,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=!1!==e.emitClose,this.autoDestroy=!!e.autoDestroy,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(d||(d=r(32553).s),this.decoder=new d(e.encoding),this.encoding=e.encoding)}function k(e){if(n=n||r(56753),!(this instanceof k))return new k(e);var t=this instanceof n;this._readableState=new O(e,this,t),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"function"==typeof e.destroy&&(this._destroy=e.destroy)),a.call(this)}function A(e,t,r,n,i){o("readableAddChunk",t);var a,c=e._readableState;if(null===t)c.reading=!1,function(e,t){if(o("onEofChunk"),!t.ended){if(t.decoder){var r=t.decoder.end();r&&r.length&&(t.buffer.push(r),t.length+=t.objectMode?1:r.length)}t.ended=!0,t.sync?C(e):(t.needReadable=!1,t.emittedReadable||(t.emittedReadable=!0,N(e)))}}(e,c);else if(i||(a=function(e,t){var r,n;return n=t,s.isBuffer(n)||n instanceof u||"string"==typeof t||void 0===t||e.objectMode||(r=new v("chunk",["string","Buffer","Uint8Array"],t)),r}(c,t)),a)_(e,a);else if(c.objectMode||t&&t.length>0)if("string"==typeof t||c.objectMode||Object.getPrototypeOf(t)===s.prototype||(t=function(e){return s.from(e)}(t)),n)c.endEmitted?_(e,new w):P(e,c,t,!0);else if(c.ended)_(e,new b);else{if(c.destroyed)return!1;c.reading=!1,c.decoder&&!r?(t=c.decoder.write(t),c.objectMode||0!==t.length?P(e,c,t,!1):x(e,c)):P(e,c,t,!1)}else n||(c.reading=!1,x(e,c));return!c.ended&&(c.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=M?e=M:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function C(e){var t=e._readableState;o("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(o("emitReadable",t.flowing),t.emittedReadable=!0,process.nextTick(N,e))}function N(e){var t=e._readableState;o("emitReadable_",t.destroyed,t.length,t.ended),t.destroyed||!t.length&&!t.ended||(e.emit("readable"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,D(e)}function x(e,t){t.readingMore||(t.readingMore=!0,process.nextTick(R,e,t))}function R(e,t){for(;!t.reading&&!t.ended&&(t.length0,t.resumeScheduled&&!t.paused?t.flowing=!0:e.listenerCount("data")>0&&e.resume()}function T(e){o("readable nexttick read 0"),e.read(0)}function j(e,t){o("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),D(e),t.flowing&&!t.reading&&e.read(0)}function D(e){var t=e._readableState;for(o("flow",t.flowing);t.flowing&&null!==e.read(););}function B(e,t){return 0===t.length?null:(t.objectMode?r=t.buffer.shift():!e||e>=t.length?(r=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.first():t.buffer.concat(t.length),t.buffer.clear()):r=t.buffer.consume(e,t.decoder),r);var r}function U(e){var t=e._readableState;o("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,process.nextTick(J,t,e))}function J(e,t){if(o("endReadableNT",e.endEmitted,e.length),!e.endEmitted&&0===e.length&&(e.endEmitted=!0,t.readable=!1,t.emit("end"),e.autoDestroy)){var r=t._writableState;(!r||r.autoDestroy&&r.finished)&&t.destroy()}}function H(e,t){for(var r=0,n=e.length;r=t.highWaterMark:t.length>0)||t.ended))return o("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?U(this):C(this),null;if(0===(e=E(e,t))&&t.ended)return 0===t.length&&U(this),null;var n,i=t.needReadable;return o("need readable",i),(0===t.length||t.length-e0?B(e,t):null)?(t.needReadable=t.length<=t.highWaterMark,e=0):(t.length-=e,t.awaitDrain=0),0===t.length&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&U(this)),null!==n&&this.emit("data",n),n},k.prototype._read=function(e){_(this,new y("_read()"))},k.prototype.pipe=function(e,t){var r=this,n=this._readableState;switch(n.pipesCount){case 0:n.pipes=e;break;case 1:n.pipes=[n.pipes,e];break;default:n.pipes.push(e)}n.pipesCount+=1,o("pipe count=%d opts=%j",n.pipesCount,t);var a=t&&!1===t.end||e===process.stdout||e===process.stderr?p:s;function s(){o("onend"),e.end()}n.endEmitted?process.nextTick(a):r.once("end",a),e.on("unpipe",(function t(i,a){o("onunpipe"),i===r&&a&&!1===a.hasUnpiped&&(a.hasUnpiped=!0,o("cleanup"),e.removeListener("close",f),e.removeListener("finish",h),e.removeListener("drain",u),e.removeListener("error",l),e.removeListener("unpipe",t),r.removeListener("end",s),r.removeListener("end",p),r.removeListener("data",d),c=!0,!n.awaitDrain||e._writableState&&!e._writableState.needDrain||u())}));var u=function(e){return function(){var t=e._readableState;o("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&i(e,"data")&&(t.flowing=!0,D(e))}}(r);e.on("drain",u);var c=!1;function d(t){o("ondata");var i=e.write(t);o("dest.write",i),!1===i&&((1===n.pipesCount&&n.pipes===e||n.pipesCount>1&&-1!==H(n.pipes,e))&&!c&&(o("false write response, pause",n.awaitDrain),n.awaitDrain++),r.pause())}function l(t){o("onerror",t),p(),e.removeListener("error",l),0===i(e,"error")&&_(e,t)}function f(){e.removeListener("finish",h),p()}function h(){o("onfinish"),e.removeListener("close",f),p()}function p(){o("unpipe"),r.unpipe(e)}return r.on("data",d),function(e,t,r){if("function"==typeof e.prependListener)return e.prependListener(t,r);e._events&&e._events.error?Array.isArray(e._events.error)?e._events.error.unshift(r):e._events.error=[r,e._events.error]:e.on(t,r)}(e,"error",l),e.once("close",f),e.once("finish",h),e.emit("pipe",r),n.flowing||(o("pipe resume"),r.resume()),e},k.prototype.unpipe=function(e){var t=this._readableState,r={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,r)),this;if(!e){var n=t.pipes,o=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var i=0;i0,!1!==n.flowing&&this.resume()):"readable"===e&&(n.endEmitted||n.readableListening||(n.readableListening=n.needReadable=!0,n.flowing=!1,n.emittedReadable=!1,o("on readable",n.length,n.reading),n.length?C(this):n.reading||process.nextTick(T,this))),r},k.prototype.addListener=k.prototype.on,k.prototype.removeListener=function(e,t){var r=a.prototype.removeListener.call(this,e,t);return"readable"===e&&process.nextTick(I,this),r},k.prototype.removeAllListeners=function(e){var t=a.prototype.removeAllListeners.apply(this,arguments);return"readable"!==e&&void 0!==e||process.nextTick(I,this),t},k.prototype.resume=function(){var e=this._readableState;return e.flowing||(o("resume"),e.flowing=!e.readableListening,function(e,t){t.resumeScheduled||(t.resumeScheduled=!0,process.nextTick(j,e,t))}(this,e)),e.paused=!1,this},k.prototype.pause=function(){return o("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(o("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},k.prototype.wrap=function(e){var t=this,r=this._readableState,n=!1;for(var i in e.on("end",(function(){if(o("wrapped end"),r.decoder&&!r.ended){var e=r.decoder.end();e&&e.length&&t.push(e)}t.push(null)})),e.on("data",(function(i){o("wrapped data"),r.decoder&&(i=r.decoder.write(i)),r.objectMode&&null==i||(r.objectMode||i&&i.length)&&(t.push(i)||(n=!0,e.pause()))})),e)void 0===this[i]&&"function"==typeof e[i]&&(this[i]=function(t){return function(){return e[t].apply(e,arguments)}}(i));for(var a=0;a{"use strict";e.exports=d;var n=r(94281).q,o=n.ERR_METHOD_NOT_IMPLEMENTED,i=n.ERR_MULTIPLE_CALLBACK,a=n.ERR_TRANSFORM_ALREADY_TRANSFORMING,s=n.ERR_TRANSFORM_WITH_LENGTH_0,u=r(56753);function c(e,t){var r=this._transformState;r.transforming=!1;var n=r.writecb;if(null===n)return this.emit("error",new i);r.writechunk=null,r.writecb=null,null!=t&&this.push(t),n(e);var o=this._readableState;o.reading=!1,(o.needReadable||o.length{"use strict";function n(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,r){var n=e.entry;for(e.entry=null;n;){var o=n.callback;t.pendingcb--,o(undefined),n=n.next}t.corkedRequestsFree.next=e}(t,e)}}var o;e.exports=k,k.WritableState=O;var i,a={deprecate:r(94927)},s=r(22503),u=r(48764).Buffer,c=r.g.Uint8Array||function(){},d=r(61195),l=r(82457).getHighWaterMark,f=r(94281).q,h=f.ERR_INVALID_ARG_TYPE,p=f.ERR_METHOD_NOT_IMPLEMENTED,m=f.ERR_MULTIPLE_CALLBACK,g=f.ERR_STREAM_CANNOT_PIPE,v=f.ERR_STREAM_DESTROYED,b=f.ERR_STREAM_NULL_VALUES,y=f.ERR_STREAM_WRITE_AFTER_END,w=f.ERR_UNKNOWN_ENCODING,_=d.errorOrDestroy;function S(){}function O(e,t,i){o=o||r(56753),e=e||{},"boolean"!=typeof i&&(i=t instanceof o),this.objectMode=!!e.objectMode,i&&(this.objectMode=this.objectMode||!!e.writableObjectMode),this.highWaterMark=l(this,e,"writableHighWaterMark",i),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var a=!1===e.decodeStrings;this.decodeStrings=!a,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var r=e._writableState,n=r.sync,o=r.writecb;if("function"!=typeof o)throw new m;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(r),t)!function(e,t,r,n,o){--t.pendingcb,r?(process.nextTick(o,n),process.nextTick(N,e,t),e._writableState.errorEmitted=!0,_(e,n)):(o(n),e._writableState.errorEmitted=!0,_(e,n),N(e,t))}(e,r,n,t,o);else{var i=E(r)||e.destroyed;i||r.corked||r.bufferProcessing||!r.bufferedRequest||M(e,r),n?process.nextTick(P,e,r,i,o):P(e,r,i,o)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!1!==e.emitClose,this.autoDestroy=!!e.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new n(this)}function k(e){var t=this instanceof(o=o||r(56753));if(!t&&!i.call(k,this))return new k(e);this._writableState=new O(e,this,t),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),s.call(this)}function A(e,t,r,n,o,i,a){t.writelen=n,t.writecb=a,t.writing=!0,t.sync=!0,t.destroyed?t.onwrite(new v("write")):r?e._writev(o,t.onwrite):e._write(o,i,t.onwrite),t.sync=!1}function P(e,t,r,n){r||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,n(),N(e,t)}function M(e,t){t.bufferProcessing=!0;var r=t.bufferedRequest;if(e._writev&&r&&r.next){var o=t.bufferedRequestCount,i=new Array(o),a=t.corkedRequestsFree;a.entry=r;for(var s=0,u=!0;r;)i[s]=r,r.isBuf||(u=!1),r=r.next,s+=1;i.allBuffers=u,A(e,t,!0,t.length,i,"",a.finish),t.pendingcb++,t.lastBufferedRequest=null,a.next?(t.corkedRequestsFree=a.next,a.next=null):t.corkedRequestsFree=new n(t),t.bufferedRequestCount=0}else{for(;r;){var c=r.chunk,d=r.encoding,l=r.callback;if(A(e,t,!1,t.objectMode?1:c.length,c,d,l),r=r.next,t.bufferedRequestCount--,t.writing)break}null===r&&(t.lastBufferedRequest=null)}t.bufferedRequest=r,t.bufferProcessing=!1}function E(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function C(e,t){e._final((function(r){t.pendingcb--,r&&_(e,r),t.prefinished=!0,e.emit("prefinish"),N(e,t)}))}function N(e,t){var r=E(t);if(r&&(function(e,t){t.prefinished||t.finalCalled||("function"!=typeof e._final||t.destroyed?(t.prefinished=!0,e.emit("prefinish")):(t.pendingcb++,t.finalCalled=!0,process.nextTick(C,e,t)))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"),t.autoDestroy))){var n=e._readableState;(!n||n.autoDestroy&&n.endEmitted)&&e.destroy()}return r}r(35717)(k,s),O.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(O.prototype,"buffer",{get:a.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(i=Function.prototype[Symbol.hasInstance],Object.defineProperty(k,Symbol.hasInstance,{value:function(e){return!!i.call(this,e)||this===k&&e&&e._writableState instanceof O}})):i=function(e){return e instanceof this},k.prototype.pipe=function(){_(this,new g)},k.prototype.write=function(e,t,r){var n,o=this._writableState,i=!1,a=!o.objectMode&&(n=e,u.isBuffer(n)||n instanceof c);return a&&!u.isBuffer(e)&&(e=function(e){return u.from(e)}(e)),"function"==typeof t&&(r=t,t=null),a?t="buffer":t||(t=o.defaultEncoding),"function"!=typeof r&&(r=S),o.ending?function(e,t){var r=new y;_(e,r),process.nextTick(t,r)}(this,r):(a||function(e,t,r,n){var o;return null===r?o=new b:"string"==typeof r||t.objectMode||(o=new h("chunk",["string","Buffer"],r)),!o||(_(e,o),process.nextTick(n,o),!1)}(this,o,e,r))&&(o.pendingcb++,i=function(e,t,r,n,o,i){if(!r){var a=function(e,t,r){return e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=u.from(t,r)),t}(t,n,o);n!==a&&(r=!0,o="buffer",n=a)}var s=t.objectMode?1:n.length;t.length+=s;var c=t.length-1))throw new w(e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(k.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(k.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),k.prototype._write=function(e,t,r){r(new p("_write()"))},k.prototype._writev=null,k.prototype.end=function(e,t,r){var n=this._writableState;return"function"==typeof e?(r=e,e=null,t=null):"function"==typeof t&&(r=t,t=null),null!=e&&this.write(e,t),n.corked&&(n.corked=1,this.uncork()),n.ending||function(e,t,r){t.ending=!0,N(e,t),r&&(t.finished?process.nextTick(r):e.once("finish",r)),t.ended=!0,e.writable=!1}(this,n,r),this},Object.defineProperty(k.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(k.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),k.prototype.destroy=d.destroy,k.prototype._undestroy=d.undestroy,k.prototype._destroy=function(e,t){t(e)}},45850:(e,t,r)=>{"use strict";var n;function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var i=r(8610),a=Symbol("lastResolve"),s=Symbol("lastReject"),u=Symbol("error"),c=Symbol("ended"),d=Symbol("lastPromise"),l=Symbol("handlePromise"),f=Symbol("stream");function h(e,t){return{value:e,done:t}}function p(e){var t=e[a];if(null!==t){var r=e[f].read();null!==r&&(e[d]=null,e[a]=null,e[s]=null,t(h(r,!1)))}}function m(e){process.nextTick(p,e)}var g=Object.getPrototypeOf((function(){})),v=Object.setPrototypeOf((o(n={get stream(){return this[f]},next:function(){var e=this,t=this[u];if(null!==t)return Promise.reject(t);if(this[c])return Promise.resolve(h(void 0,!0));if(this[f].destroyed)return new Promise((function(t,r){process.nextTick((function(){e[u]?r(e[u]):t(h(void 0,!0))}))}));var r,n=this[d];if(n)r=new Promise(function(e,t){return function(r,n){e.then((function(){t[c]?r(h(void 0,!0)):t[l](r,n)}),n)}}(n,this));else{var o=this[f].read();if(null!==o)return Promise.resolve(h(o,!1));r=new Promise(this[l])}return this[d]=r,r}},Symbol.asyncIterator,(function(){return this})),o(n,"return",(function(){var e=this;return new Promise((function(t,r){e[f].destroy(null,(function(e){e?r(e):t(h(void 0,!0))}))}))})),n),g);e.exports=function(e){var t,r=Object.create(v,(o(t={},f,{value:e,writable:!0}),o(t,a,{value:null,writable:!0}),o(t,s,{value:null,writable:!0}),o(t,u,{value:null,writable:!0}),o(t,c,{value:e._readableState.endEmitted,writable:!0}),o(t,l,{value:function(e,t){var n=r[f].read();n?(r[d]=null,r[a]=null,r[s]=null,e(h(n,!1))):(r[a]=e,r[s]=t)},writable:!0}),t));return r[d]=null,i(e,(function(e){if(e&&"ERR_STREAM_PREMATURE_CLOSE"!==e.code){var t=r[s];return null!==t&&(r[d]=null,r[a]=null,r[s]=null,t(e)),void(r[u]=e)}var n=r[a];null!==n&&(r[d]=null,r[a]=null,r[s]=null,n(h(void 0,!0))),r[c]=!0})),e.on("readable",m.bind(null,r)),r}},57327:(e,t,r)=>{"use strict";function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){for(var r=0;r0?this.tail.next=t:this.head=t,this.tail=t,++this.length}},{key:"unshift",value:function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length}},{key:"shift",value:function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(e){if(0===this.length)return"";for(var t=this.head,r=""+t.data;t=t.next;)r+=e+t.data;return r}},{key:"concat",value:function(e){if(0===this.length)return a.alloc(0);for(var t,r,n,o=a.allocUnsafe(e>>>0),i=this.head,s=0;i;)t=i.data,r=o,n=s,a.prototype.copy.call(t,r,n),s+=i.data.length,i=i.next;return o}},{key:"consume",value:function(e,t){var r;return eo.length?o.length:e;if(i===o.length?n+=o:n+=o.slice(0,e),0==(e-=i)){i===o.length?(++r,t.next?this.head=t.next:this.head=this.tail=null):(this.head=t,t.data=o.slice(i));break}++r}return this.length-=r,n}},{key:"_getBuffer",value:function(e){var t=a.allocUnsafe(e),r=this.head,n=1;for(r.data.copy(t),e-=r.data.length;r=r.next;){var o=r.data,i=e>o.length?o.length:e;if(o.copy(t,t.length-e,0,i),0==(e-=i)){i===o.length?(++n,r.next?this.head=r.next:this.head=this.tail=null):(this.head=r,r.data=o.slice(i));break}++n}return this.length-=n,t}},{key:u,value:function(e,t){return s(this,function(e){for(var t=1;t{"use strict";function t(e,t){n(e,t),r(e)}function r(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function n(e,t){e.emit("error",t)}e.exports={destroy:function(e,o){var i=this,a=this._readableState&&this._readableState.destroyed,s=this._writableState&&this._writableState.destroyed;return a||s?(o?o(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(n,this,e)):process.nextTick(n,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,(function(e){!o&&e?i._writableState?i._writableState.errorEmitted?process.nextTick(r,i):(i._writableState.errorEmitted=!0,process.nextTick(t,i,e)):process.nextTick(t,i,e):o?(process.nextTick(r,i),o(e)):process.nextTick(r,i)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)},errorOrDestroy:function(e,t){var r=e._readableState,n=e._writableState;r&&r.autoDestroy||n&&n.autoDestroy?e.destroy(t):e.emit("error",t)}}},8610:(e,t,r)=>{"use strict";var n=r(94281).q.ERR_STREAM_PREMATURE_CLOSE;function o(){}e.exports=function e(t,r,i){if("function"==typeof r)return e(t,null,r);r||(r={}),i=function(e){var t=!1;return function(){if(!t){t=!0;for(var r=arguments.length,n=new Array(r),o=0;o{e.exports=function(){throw new Error("Readable.from is not available in the browser")}},59946:(e,t,r)=>{"use strict";var n,o=r(94281).q,i=o.ERR_MISSING_ARGS,a=o.ERR_STREAM_DESTROYED;function s(e){if(e)throw e}function u(e,t,o,i){i=function(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}(i);var s=!1;e.on("close",(function(){s=!0})),void 0===n&&(n=r(8610)),n(e,{readable:t,writable:o},(function(e){if(e)return i(e);s=!0,i()}));var u=!1;return function(t){if(!s&&!u)return u=!0,function(e){return e.setHeader&&"function"==typeof e.abort}(e)?e.abort():"function"==typeof e.destroy?e.destroy():void i(t||new a("pipe"))}}function c(e){e()}function d(e,t){return e.pipe(t)}function l(e){return e.length?"function"!=typeof e[e.length-1]?s:e.pop():s}e.exports=function(){for(var e=arguments.length,t=new Array(e),r=0;r0,(function(e){n||(n=e),e&&a.forEach(c),i||(a.forEach(c),o(n))}))}));return t.reduce(d)}},82457:(e,t,r)=>{"use strict";var n=r(94281).q.ERR_INVALID_OPT_VALUE;e.exports={getHighWaterMark:function(e,t,r,o){var i=function(e,t,r){return null!=e.highWaterMark?e.highWaterMark:t?e[r]:null}(t,o,r);if(null!=i){if(!isFinite(i)||Math.floor(i)!==i||i<0)throw new n(o?r:"highWaterMark",i);return Math.floor(i)}return e.objectMode?16:16384}}},22503:(e,t,r)=>{e.exports=r(17187).EventEmitter},88473:(e,t,r)=>{(t=e.exports=r(79481)).Stream=t,t.Readable=t,t.Writable=r(64229),t.Duplex=r(56753),t.Transform=r(74605),t.PassThrough=r(82725),t.finished=r(8610),t.pipeline=r(59946)},79785:(e,t,r)=>{"use strict";var n=r(48764).Buffer,o=r(35717),i=r(3349),a=new Array(16),s=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],u=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],c=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],d=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],l=[0,1518500249,1859775393,2400959708,2840853838],f=[1352829926,1548603684,1836072691,2053994217,0];function h(){i.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}function p(e,t){return e<>>32-t}function m(e,t,r,n,o,i,a,s){return p(e+(t^r^n)+i+a|0,s)+o|0}function g(e,t,r,n,o,i,a,s){return p(e+(t&r|~t&n)+i+a|0,s)+o|0}function v(e,t,r,n,o,i,a,s){return p(e+((t|~r)^n)+i+a|0,s)+o|0}function b(e,t,r,n,o,i,a,s){return p(e+(t&n|r&~n)+i+a|0,s)+o|0}function y(e,t,r,n,o,i,a,s){return p(e+(t^(r|~n))+i+a|0,s)+o|0}o(h,i),h.prototype._update=function(){for(var e=a,t=0;t<16;++t)e[t]=this._block.readInt32LE(4*t);for(var r=0|this._a,n=0|this._b,o=0|this._c,i=0|this._d,h=0|this._e,w=0|this._a,_=0|this._b,S=0|this._c,O=0|this._d,k=0|this._e,A=0;A<80;A+=1){var P,M;A<16?(P=m(r,n,o,i,h,e[s[A]],l[0],c[A]),M=y(w,_,S,O,k,e[u[A]],f[0],d[A])):A<32?(P=g(r,n,o,i,h,e[s[A]],l[1],c[A]),M=b(w,_,S,O,k,e[u[A]],f[1],d[A])):A<48?(P=v(r,n,o,i,h,e[s[A]],l[2],c[A]),M=v(w,_,S,O,k,e[u[A]],f[2],d[A])):A<64?(P=b(r,n,o,i,h,e[s[A]],l[3],c[A]),M=g(w,_,S,O,k,e[u[A]],f[3],d[A])):(P=y(r,n,o,i,h,e[s[A]],l[4],c[A]),M=m(w,_,S,O,k,e[u[A]],f[4],d[A])),r=h,h=i,i=p(o,10),o=n,n=P,w=k,k=O,O=p(S,10),S=_,_=M}var E=this._b+o+O|0;this._b=this._c+i+k|0,this._c=this._d+h+w|0,this._d=this._e+r+_|0,this._e=this._a+n+S|0,this._a=E},h.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=n.alloc?n.alloc(20):new n(20);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e.writeInt32LE(this._e,16),e},e.exports=h},89509:(e,t,r)=>{var n=r(48764),o=n.Buffer;function i(e,t){for(var r in e)t[r]=e[r]}function a(e,t,r){return o(e,t,r)}o.from&&o.alloc&&o.allocUnsafe&&o.allocUnsafeSlow?e.exports=n:(i(n,t),t.Buffer=a),a.prototype=Object.create(o.prototype),i(o,a),a.from=function(e,t,r){if("number"==typeof e)throw new TypeError("Argument must not be a number");return o(e,t,r)},a.alloc=function(e,t,r){if("number"!=typeof e)throw new TypeError("Argument must be a number");var n=o(e);return void 0!==t?"string"==typeof r?n.fill(t,r):n.fill(t):n.fill(0),n},a.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return o(e)},a.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return n.SlowBuffer(e)}},2399:(e,t,r)=>{"use strict";var n,o=r(48764),i=o.Buffer,a={};for(n in o)o.hasOwnProperty(n)&&"SlowBuffer"!==n&&"Buffer"!==n&&(a[n]=o[n]);var s=a.Buffer={};for(n in i)i.hasOwnProperty(n)&&"allocUnsafe"!==n&&"allocUnsafeSlow"!==n&&(s[n]=i[n]);if(a.Buffer.prototype=i.prototype,s.from&&s.from!==Uint8Array.from||(s.from=function(e,t,r){if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type '+typeof e);if(e&&void 0===e.length)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);return i(e,t,r)}),s.alloc||(s.alloc=function(e,t,r){if("number"!=typeof e)throw new TypeError('The "size" argument must be of type number. Received type '+typeof e);if(e<0||e>=2*(1<<30))throw new RangeError('The value "'+e+'" is invalid for option "size"');var n=i(e);return t&&0!==t.length?"string"==typeof r?n.fill(t,r):n.fill(t):n.fill(0),n}),!a.kStringMaxLength)try{a.kStringMaxLength=process.binding("buffer").kStringMaxLength}catch(e){}a.constants||(a.constants={MAX_LENGTH:a.kMaxLength},a.kStringMaxLength&&(a.constants.MAX_STRING_LENGTH=a.kStringMaxLength)),e.exports=a},17635:function(e){"use strict";!function(t){const r=2147483647;function n(e){const t=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]);let r=1779033703,n=3144134277,o=1013904242,i=2773480762,a=1359893119,s=2600822924,u=528734635,c=1541459225;const d=new Uint32Array(64);function l(e){let l=0,f=e.length;for(;f>=64;){let h,p,m,g,v,b=r,y=n,w=o,_=i,S=a,O=s,k=u,A=c;for(p=0;p<16;p++)m=l+4*p,d[p]=(255&e[m])<<24|(255&e[m+1])<<16|(255&e[m+2])<<8|255&e[m+3];for(p=16;p<64;p++)h=d[p-2],g=(h>>>17|h<<15)^(h>>>19|h<<13)^h>>>10,h=d[p-15],v=(h>>>7|h<<25)^(h>>>18|h<<14)^h>>>3,d[p]=(g+d[p-7]|0)+(v+d[p-16]|0)|0;for(p=0;p<64;p++)g=(((S>>>6|S<<26)^(S>>>11|S<<21)^(S>>>25|S<<7))+(S&O^~S&k)|0)+(A+(t[p]+d[p]|0)|0)|0,v=((b>>>2|b<<30)^(b>>>13|b<<19)^(b>>>22|b<<10))+(b&y^b&w^y&w)|0,A=k,k=O,O=S,S=_+g|0,_=w,w=y,y=b,b=g+v|0;r=r+b|0,n=n+y|0,o=o+w|0,i=i+_|0,a=a+S|0,s=s+O|0,u=u+k|0,c=c+A|0,l+=64,f-=64}}l(e);let f,h=e.length%64,p=e.length/536870912|0,m=e.length<<3,g=h<56?56:120,v=e.slice(e.length-h,e.length);for(v.push(128),f=h+1;f>>24&255),v.push(p>>>16&255),v.push(p>>>8&255),v.push(p>>>0&255),v.push(m>>>24&255),v.push(m>>>16&255),v.push(m>>>8&255),v.push(m>>>0&255),l(v),[r>>>24&255,r>>>16&255,r>>>8&255,r>>>0&255,n>>>24&255,n>>>16&255,n>>>8&255,n>>>0&255,o>>>24&255,o>>>16&255,o>>>8&255,o>>>0&255,i>>>24&255,i>>>16&255,i>>>8&255,i>>>0&255,a>>>24&255,a>>>16&255,a>>>8&255,a>>>0&255,s>>>24&255,s>>>16&255,s>>>8&255,s>>>0&255,u>>>24&255,u>>>16&255,u>>>8&255,u>>>0&255,c>>>24&255,c>>>16&255,c>>>8&255,c>>>0&255]}function o(e,t,r){e=e.length<=64?e:n(e);const o=64+t.length+4,i=new Array(o),a=new Array(64);let s,u=[];for(s=0;s<64;s++)i[s]=54;for(s=0;s=o-4;e--){if(i[e]++,i[e]<=255)return;i[e]=0}}for(;r>=32;)c(),u=u.concat(n(a.concat(n(i)))),r-=32;return r>0&&(c(),u=u.concat(n(a.concat(n(i))).slice(0,r))),u}function i(e,t,r,n,o){let i;for(c(e,16*(2*r-1),o,0,16),i=0;i<2*r;i++)u(e,16*i,o,16),s(o,n),c(o,0,e,t+16*i,16);for(i=0;i>>32-t}function s(e,t){c(e,0,t,0,16);for(let e=8;e>0;e-=2)t[4]^=a(t[0]+t[12],7),t[8]^=a(t[4]+t[0],9),t[12]^=a(t[8]+t[4],13),t[0]^=a(t[12]+t[8],18),t[9]^=a(t[5]+t[1],7),t[13]^=a(t[9]+t[5],9),t[1]^=a(t[13]+t[9],13),t[5]^=a(t[1]+t[13],18),t[14]^=a(t[10]+t[6],7),t[2]^=a(t[14]+t[10],9),t[6]^=a(t[2]+t[14],13),t[10]^=a(t[6]+t[2],18),t[3]^=a(t[15]+t[11],7),t[7]^=a(t[3]+t[15],9),t[11]^=a(t[7]+t[3],13),t[15]^=a(t[11]+t[7],18),t[1]^=a(t[0]+t[3],7),t[2]^=a(t[1]+t[0],9),t[3]^=a(t[2]+t[1],13),t[0]^=a(t[3]+t[2],18),t[6]^=a(t[5]+t[4],7),t[7]^=a(t[6]+t[5],9),t[4]^=a(t[7]+t[6],13),t[5]^=a(t[4]+t[7],18),t[11]^=a(t[10]+t[9],7),t[8]^=a(t[11]+t[10],9),t[9]^=a(t[8]+t[11],13),t[10]^=a(t[9]+t[8],18),t[12]^=a(t[15]+t[14],7),t[13]^=a(t[12]+t[15],9),t[14]^=a(t[13]+t[12],13),t[15]^=a(t[14]+t[13],18);for(let r=0;r<16;++r)e[r]+=t[r]}function u(e,t,r,n){for(let o=0;o=256)return!1}return!0}function l(e,t){if("number"!=typeof e||e%1)throw new Error("invalid "+t);return e}function f(e,t,n,a,s,f,h){if(n=l(n,"N"),a=l(a,"r"),s=l(s,"p"),f=l(f,"dkLen"),0===n||0!=(n&n-1))throw new Error("N must be power of 2");if(n>r/128/a)throw new Error("N too large");if(a>r/128/s)throw new Error("r too large");if(!d(e))throw new Error("password must be an array or buffer");if(e=Array.prototype.slice.call(e),!d(t))throw new Error("salt must be an array or buffer");t=Array.prototype.slice.call(t);let p=o(e,t,128*s*a);const m=new Uint32Array(32*s*a);for(let e=0;eC&&(t=C);for(let e=0;eC&&(t=C);for(let e=0;e>0&255),p.push(m[e]>>8&255),p.push(m[e]>>16&255),p.push(m[e]>>24&255);const r=o(e,p,f);return h&&h(null,1,r),r}h&&N(x)};if(!h)for(;;){const e=x();if(null!=e)return e}x()}const h={scrypt:function(e,t,r,n,o,i,a){return new Promise((function(s,u){let c=0;a&&a(0),f(e,t,r,n,o,i,(function(e,t,r){if(e)u(e);else if(r)a&&1!==c&&a(1),s(new Uint8Array(r));else if(a&&t!==c)return c=t,a(t)}))}))},syncScrypt:function(e,t,r,n,o,i){return new Uint8Array(f(e,t,r,n,o,i))}};e.exports=h}()},24189:(e,t,r)=>{var n=r(89509).Buffer;function o(e,t){this._block=n.alloc(e),this._finalSize=t,this._blockSize=e,this._len=0}o.prototype.update=function(e,t){"string"==typeof e&&(t=t||"utf8",e=n.from(e,t));for(var r=this._block,o=this._blockSize,i=e.length,a=this._len,s=0;s=this._finalSize&&(this._update(this._block),this._block.fill(0));var r=8*this._len;if(r<=4294967295)this._block.writeUInt32BE(r,this._blockSize-4);else{var n=(4294967295&r)>>>0,o=(r-n)/4294967296;this._block.writeUInt32BE(o,this._blockSize-8),this._block.writeUInt32BE(n,this._blockSize-4)}this._update(this._block);var i=this._hash();return e?i.toString(e):i},o.prototype._update=function(){throw new Error("_update must be implemented by subclass")},e.exports=o},89072:(e,t,r)=>{var n=e.exports=function(e){e=e.toLowerCase();var t=n[e];if(!t)throw new Error(e+" is not supported (we accept pull requests)");return new t};n.sha=r(74448),n.sha1=r(18336),n.sha224=r(48432),n.sha256=r(67499),n.sha384=r(51686),n.sha512=r(87816)},74448:(e,t,r)=>{var n=r(35717),o=r(24189),i=r(89509).Buffer,a=[1518500249,1859775393,-1894007588,-899497514],s=new Array(80);function u(){this.init(),this._w=s,o.call(this,64,56)}function c(e){return e<<30|e>>>2}function d(e,t,r,n){return 0===e?t&r|~t&n:2===e?t&r|t&n|r&n:t^r^n}n(u,o),u.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},u.prototype._update=function(e){for(var t,r=this._w,n=0|this._a,o=0|this._b,i=0|this._c,s=0|this._d,u=0|this._e,l=0;l<16;++l)r[l]=e.readInt32BE(4*l);for(;l<80;++l)r[l]=r[l-3]^r[l-8]^r[l-14]^r[l-16];for(var f=0;f<80;++f){var h=~~(f/20),p=0|((t=n)<<5|t>>>27)+d(h,o,i,s)+u+r[f]+a[h];u=s,s=i,i=c(o),o=n,n=p}this._a=n+this._a|0,this._b=o+this._b|0,this._c=i+this._c|0,this._d=s+this._d|0,this._e=u+this._e|0},u.prototype._hash=function(){var e=i.allocUnsafe(20);return e.writeInt32BE(0|this._a,0),e.writeInt32BE(0|this._b,4),e.writeInt32BE(0|this._c,8),e.writeInt32BE(0|this._d,12),e.writeInt32BE(0|this._e,16),e},e.exports=u},18336:(e,t,r)=>{var n=r(35717),o=r(24189),i=r(89509).Buffer,a=[1518500249,1859775393,-1894007588,-899497514],s=new Array(80);function u(){this.init(),this._w=s,o.call(this,64,56)}function c(e){return e<<5|e>>>27}function d(e){return e<<30|e>>>2}function l(e,t,r,n){return 0===e?t&r|~t&n:2===e?t&r|t&n|r&n:t^r^n}n(u,o),u.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},u.prototype._update=function(e){for(var t,r=this._w,n=0|this._a,o=0|this._b,i=0|this._c,s=0|this._d,u=0|this._e,f=0;f<16;++f)r[f]=e.readInt32BE(4*f);for(;f<80;++f)r[f]=(t=r[f-3]^r[f-8]^r[f-14]^r[f-16])<<1|t>>>31;for(var h=0;h<80;++h){var p=~~(h/20),m=c(n)+l(p,o,i,s)+u+r[h]+a[p]|0;u=s,s=i,i=d(o),o=n,n=m}this._a=n+this._a|0,this._b=o+this._b|0,this._c=i+this._c|0,this._d=s+this._d|0,this._e=u+this._e|0},u.prototype._hash=function(){var e=i.allocUnsafe(20);return e.writeInt32BE(0|this._a,0),e.writeInt32BE(0|this._b,4),e.writeInt32BE(0|this._c,8),e.writeInt32BE(0|this._d,12),e.writeInt32BE(0|this._e,16),e},e.exports=u},48432:(e,t,r)=>{var n=r(35717),o=r(67499),i=r(24189),a=r(89509).Buffer,s=new Array(64);function u(){this.init(),this._w=s,i.call(this,64,56)}n(u,o),u.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},u.prototype._hash=function(){var e=a.allocUnsafe(28);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e},e.exports=u},67499:(e,t,r)=>{var n=r(35717),o=r(24189),i=r(89509).Buffer,a=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],s=new Array(64);function u(){this.init(),this._w=s,o.call(this,64,56)}function c(e,t,r){return r^e&(t^r)}function d(e,t,r){return e&t|r&(e|t)}function l(e){return(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10)}function f(e){return(e>>>6|e<<26)^(e>>>11|e<<21)^(e>>>25|e<<7)}function h(e){return(e>>>7|e<<25)^(e>>>18|e<<14)^e>>>3}n(u,o),u.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this},u.prototype._update=function(e){for(var t,r=this._w,n=0|this._a,o=0|this._b,i=0|this._c,s=0|this._d,u=0|this._e,p=0|this._f,m=0|this._g,g=0|this._h,v=0;v<16;++v)r[v]=e.readInt32BE(4*v);for(;v<64;++v)r[v]=0|(((t=r[v-2])>>>17|t<<15)^(t>>>19|t<<13)^t>>>10)+r[v-7]+h(r[v-15])+r[v-16];for(var b=0;b<64;++b){var y=g+f(u)+c(u,p,m)+a[b]+r[b]|0,w=l(n)+d(n,o,i)|0;g=m,m=p,p=u,u=s+y|0,s=i,i=o,o=n,n=y+w|0}this._a=n+this._a|0,this._b=o+this._b|0,this._c=i+this._c|0,this._d=s+this._d|0,this._e=u+this._e|0,this._f=p+this._f|0,this._g=m+this._g|0,this._h=g+this._h|0},u.prototype._hash=function(){var e=i.allocUnsafe(32);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e.writeInt32BE(this._h,28),e},e.exports=u},51686:(e,t,r)=>{var n=r(35717),o=r(87816),i=r(24189),a=r(89509).Buffer,s=new Array(160);function u(){this.init(),this._w=s,i.call(this,128,112)}n(u,o),u.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},u.prototype._hash=function(){var e=a.allocUnsafe(48);function t(t,r,n){e.writeInt32BE(t,n),e.writeInt32BE(r,n+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),e},e.exports=u},87816:(e,t,r)=>{var n=r(35717),o=r(24189),i=r(89509).Buffer,a=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],s=new Array(160);function u(){this.init(),this._w=s,o.call(this,128,112)}function c(e,t,r){return r^e&(t^r)}function d(e,t,r){return e&t|r&(e|t)}function l(e,t){return(e>>>28|t<<4)^(t>>>2|e<<30)^(t>>>7|e<<25)}function f(e,t){return(e>>>14|t<<18)^(e>>>18|t<<14)^(t>>>9|e<<23)}function h(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^e>>>7}function p(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^(e>>>7|t<<25)}function m(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^e>>>6}function g(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^(e>>>6|t<<26)}function v(e,t){return e>>>0>>0?1:0}n(u,o),u.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this},u.prototype._update=function(e){for(var t=this._w,r=0|this._ah,n=0|this._bh,o=0|this._ch,i=0|this._dh,s=0|this._eh,u=0|this._fh,b=0|this._gh,y=0|this._hh,w=0|this._al,_=0|this._bl,S=0|this._cl,O=0|this._dl,k=0|this._el,A=0|this._fl,P=0|this._gl,M=0|this._hl,E=0;E<32;E+=2)t[E]=e.readInt32BE(4*E),t[E+1]=e.readInt32BE(4*E+4);for(;E<160;E+=2){var C=t[E-30],N=t[E-30+1],x=h(C,N),R=p(N,C),I=m(C=t[E-4],N=t[E-4+1]),T=g(N,C),j=t[E-14],D=t[E-14+1],B=t[E-32],U=t[E-32+1],J=R+D|0,H=x+j+v(J,R)|0;H=(H=H+I+v(J=J+T|0,T)|0)+B+v(J=J+U|0,U)|0,t[E]=H,t[E+1]=J}for(var L=0;L<160;L+=2){H=t[L],J=t[L+1];var z=d(r,n,o),V=d(w,_,S),q=l(r,w),F=l(w,r),Z=f(s,k),W=f(k,s),K=a[L],G=a[L+1],Y=c(s,u,b),$=c(k,A,P),X=M+W|0,Q=y+Z+v(X,M)|0;Q=(Q=(Q=Q+Y+v(X=X+$|0,$)|0)+K+v(X=X+G|0,G)|0)+H+v(X=X+J|0,J)|0;var ee=F+V|0,te=q+z+v(ee,F)|0;y=b,M=P,b=u,P=A,u=s,A=k,s=i+Q+v(k=O+X|0,O)|0,i=o,O=S,o=n,S=_,n=r,_=w,r=Q+te+v(w=X+ee|0,X)|0}this._al=this._al+w|0,this._bl=this._bl+_|0,this._cl=this._cl+S|0,this._dl=this._dl+O|0,this._el=this._el+k|0,this._fl=this._fl+A|0,this._gl=this._gl+P|0,this._hl=this._hl+M|0,this._ah=this._ah+r+v(this._al,w)|0,this._bh=this._bh+n+v(this._bl,_)|0,this._ch=this._ch+o+v(this._cl,S)|0,this._dh=this._dh+i+v(this._dl,O)|0,this._eh=this._eh+s+v(this._el,k)|0,this._fh=this._fh+u+v(this._fl,A)|0,this._gh=this._gh+b+v(this._gl,P)|0,this._hh=this._hh+y+v(this._hl,M)|0},u.prototype._hash=function(){var e=i.allocUnsafe(64);function t(t,r,n){e.writeInt32BE(t,n),e.writeInt32BE(r,n+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),t(this._gh,this._gl,48),t(this._hh,this._hl,56),e},e.exports=u},42830:(e,t,r)=>{e.exports=o;var n=r(17187).EventEmitter;function o(){n.call(this)}r(35717)(o,n),o.Readable=r(79481),o.Writable=r(64229),o.Duplex=r(56753),o.Transform=r(74605),o.PassThrough=r(82725),o.finished=r(8610),o.pipeline=r(59946),o.Stream=o,o.prototype.pipe=function(e,t){var r=this;function o(t){e.writable&&!1===e.write(t)&&r.pause&&r.pause()}function i(){r.readable&&r.resume&&r.resume()}r.on("data",o),e.on("drain",i),e._isStdio||t&&!1===t.end||(r.on("end",s),r.on("close",u));var a=!1;function s(){a||(a=!0,e.end())}function u(){a||(a=!0,"function"==typeof e.destroy&&e.destroy())}function c(e){if(d(),0===n.listenerCount(this,"error"))throw e}function d(){r.removeListener("data",o),e.removeListener("drain",i),r.removeListener("end",s),r.removeListener("close",u),r.removeListener("error",c),e.removeListener("error",c),r.removeListener("end",d),r.removeListener("close",d),e.removeListener("close",d)}return r.on("error",c),e.on("error",c),r.on("end",d),r.on("close",d),e.on("close",d),e.emit("pipe",r),e}},32553:(e,t,r)=>{"use strict";var n=r(89509).Buffer,o=n.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function i(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(n.isEncoding===o||!o(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=u,this.end=c,t=4;break;case"utf8":this.fillLast=s,t=4;break;case"base64":this.text=d,this.end=l,t=3;break;default:return this.write=f,void(this.end=h)}this.lastNeed=0,this.lastTotal=0,this.lastChar=n.allocUnsafe(t)}function a(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function s(e){var t=this.lastTotal-this.lastNeed,r=function(e,t,r){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==r?r:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function u(e,t){if((e.length-t)%2==0){var r=e.toString("utf16le",t);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function c(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,r)}return t}function d(e,t){var r=(e.length-t)%3;return 0===r?e.toString("base64",t):(this.lastNeed=3-r,this.lastTotal=3,1===r?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-r))}function l(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function f(e){return e.toString(this.encoding)}function h(e){return e&&e.length?this.write(e):""}t.s=i,i.prototype.write=function(e){if(0===e.length)return"";var t,r;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r=0?(o>0&&(e.lastNeed=o-1),o):--n=0?(o>0&&(e.lastNeed=o-2),o):--n=0?(o>0&&(2===o?o=0:e.lastNeed=o-3),o):0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=r;var n=e.length-(r-this.lastNeed);return e.copy(this.lastChar,0,n),e.toString("utf8",t,n)},i.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},94927:(e,t,r)=>{function n(e){try{if(!r.g.localStorage)return!1}catch(e){return!1}var t=r.g.localStorage[e];return null!=t&&"true"===String(t).toLowerCase()}e.exports=function(e,t){if(n("noDeprecation"))return e;var r=!1;return function(){if(!r){if(n("throwDeprecation"))throw new Error(t);n("traceDeprecation")?console.trace(t):console.warn(t),r=!0}return e.apply(this,arguments)}}},66959:function(e){var t,r;e.exports=(t={418:function(e,t){!function(e,t){for(var r in t)e[r]=t[r]}(t,function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.i=function(e){return e},r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:n})},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=1)}([function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(3),o=function(){function e(e,t){void 0===e&&(e={}),void 0===t&&(t={splitValues:!1});var r,o=this;this.headersMap={},e&&("undefined"!=typeof Headers&&e instanceof Headers?n.getHeaderKeys(e).forEach((function(r){n.getHeaderValues(e,r).forEach((function(e){t.splitValues?o.append(r,n.splitHeaderValue(e)):o.append(r,e)}))})):"object"==typeof(r=e)&&"object"==typeof r.headersMap&&"function"==typeof r.forEach?e.forEach((function(e,t){o.append(e,t)})):"undefined"!=typeof Map&&e instanceof Map?e.forEach((function(e,t){o.append(t,e)})):"string"==typeof e?this.appendFromString(e):"object"==typeof e&&Object.getOwnPropertyNames(e).forEach((function(t){var r=e[t];Array.isArray(r)?r.forEach((function(e){o.append(t,e)})):o.append(t,r)})))}return e.prototype.appendFromString=function(e){for(var t=e.split("\r\n"),r=0;r0){var i=n.substring(0,o).trim(),a=n.substring(o+1).trim();this.append(i,a)}}},e.prototype.delete=function(e,t){var r=n.normalizeName(e);if(void 0===t)delete this.headersMap[r];else{var o=this.headersMap[r];if(o){var i=o.indexOf(t);i>=0&&o.splice(i,1),0===o.length&&delete this.headersMap[r]}}},e.prototype.append=function(e,t){var r=this,o=n.normalizeName(e);Array.isArray(this.headersMap[o])||(this.headersMap[o]=[]),Array.isArray(t)?t.forEach((function(e){r.headersMap[o].push(n.normalizeValue(e))})):this.headersMap[o].push(n.normalizeValue(t))},e.prototype.set=function(e,t){var r=n.normalizeName(e);if(Array.isArray(t)){var o=[];t.forEach((function(e){o.push(n.normalizeValue(e))})),this.headersMap[r]=o}else this.headersMap[r]=[n.normalizeValue(t)]},e.prototype.has=function(e,t){var r=this.headersMap[n.normalizeName(e)];if(!Array.isArray(r))return!1;if(void 0!==t){var o=n.normalizeValue(t);return r.indexOf(o)>=0}return!0},e.prototype.get=function(e){var t=this.headersMap[n.normalizeName(e)];return void 0!==t?t.concat():[]},e.prototype.forEach=function(e){var t=this;Object.getOwnPropertyNames(this.headersMap).forEach((function(r){e(r,t.headersMap[r])}),this)},e.prototype.toHeaders=function(){if("undefined"!=typeof Headers){var e=new Headers;return this.forEach((function(t,r){r.forEach((function(r){e.append(t,r)}))})),e}throw new Error("Headers class is not defined")},e}();t.BrowserHeaders=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(0);t.BrowserHeaders=n.BrowserHeaders},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.iterateHeaders=function(e,t){for(var r=e[Symbol.iterator](),n=r.next();!n.done;)t(n.value[0]),n=r.next()},t.iterateHeadersKeys=function(e,t){for(var r=e.keys(),n=r.next();!n.done;)t(n.value),n=r.next()}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(2);t.normalizeName=function(e){if("string"!=typeof e&&(e=String(e)),/[^a-z0-9\-#$%&'*+.\^_`|~]/i.test(e))throw new TypeError("Invalid character in header field name");return e.toLowerCase()},t.normalizeValue=function(e){return"string"!=typeof e&&(e=String(e)),e},t.getHeaderValues=function(e,t){var r=e;if(r instanceof Headers&&r.getAll)return r.getAll(t);var n=r.get(t);return n&&"string"==typeof n?[n]:n},t.getHeaderKeys=function(e){var t=e,r={},o=[];return t.keys?n.iterateHeadersKeys(t,(function(e){r[e]||(r[e]=!0,o.push(e))})):t.forEach?t.forEach((function(e,t){r[t]||(r[t]=!0,o.push(t))})):n.iterateHeaders(t,(function(e){var t=e[0];r[t]||(r[t]=!0,o.push(t))})),o},t.splitHeaderValue=function(e){var t=[];return e.split(", ").forEach((function(e){e.split(",").forEach((function(e){t.push(e)}))})),t}}]))},617:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ChunkParser=t.ChunkType=t.encodeASCII=t.decodeASCII=void 0;var n,o=r(65);function i(e){return 9===(t=e)||10===t||13===t||e>=32&&e<=126;var t}function a(e){for(var t=0;t!==e.length;++t)if(!i(e[t]))throw new Error("Metadata is not valid (printable) ASCII");return String.fromCharCode.apply(String,Array.prototype.slice.call(e))}function s(e){return 128==(128&e.getUint8(0))}function u(e){return e.getUint32(1,!1)}function c(e,t,r){return e.byteLength-t>=r}function d(e,t,r){if(e.slice)return e.slice(t,r);var n=e.length;void 0!==r&&(n=r);for(var o=new Uint8Array(n-t),i=0,a=t;a=0?r:i.httpStatusToCode(t);this.props.debug&&a.debug("onHeaders.code",n);var o=e.get("grpc-message")||[];if(this.props.debug&&a.debug("onHeaders.gRPCMessage",o),this.rawOnHeaders(e),n!==i.Code.OK){var s=this.decodeGRPCStatus(o[0]);this.rawOnError(n,s,e)}}},e.prototype.onTransportChunk=function(e){var t=this;if(this.closed)this.props.debug&&a.debug("grpc.onChunk received after request was closed - ignoring");else{var r=[];try{r=this.parser.parse(e)}catch(e){return this.props.debug&&a.debug("onChunk.parsing error",e,e.message),void this.rawOnError(i.Code.Internal,"parsing error: "+e.message)}r.forEach((function(e){if(e.chunkType===o.ChunkType.MESSAGE){var r=t.methodDefinition.responseType.deserializeBinary(e.data);t.rawOnMessage(r)}else e.chunkType===o.ChunkType.TRAILERS&&(t.responseHeaders?(t.responseTrailers=new n.Metadata(e.trailers),t.props.debug&&a.debug("onChunk.trailers",t.responseTrailers)):(t.responseHeaders=new n.Metadata(e.trailers),t.rawOnHeaders(t.responseHeaders)))}))}},e.prototype.onTransportEnd=function(){if(this.props.debug&&a.debug("grpc.onEnd"),this.closed)this.props.debug&&a.debug("grpc.onEnd received after request was closed - ignoring");else if(void 0!==this.responseTrailers){var e=d(this.responseTrailers);if(null!==e){var t=this.responseTrailers.get("grpc-message"),r=this.decodeGRPCStatus(t[0]);this.rawOnEnd(e,r,this.responseTrailers)}else this.rawOnError(i.Code.Internal,"Response closed without grpc-status (Trailers provided)")}else{if(void 0===this.responseHeaders)return void this.rawOnError(i.Code.Unknown,"Response closed without headers");var n=d(this.responseHeaders),o=this.responseHeaders.get("grpc-message");if(this.props.debug&&a.debug("grpc.headers only response ",n,o),null===n)return void this.rawOnEnd(i.Code.Unknown,"Response closed without grpc-status (Headers only)",this.responseHeaders);var s=this.decodeGRPCStatus(o[0]);this.rawOnEnd(n,s,this.responseHeaders)}},e.prototype.decodeGRPCStatus=function(e){if(!e)return"";try{return decodeURIComponent(e)}catch(t){return e}},e.prototype.rawOnEnd=function(e,t,r){var n=this;this.props.debug&&a.debug("rawOnEnd",e,t,r),this.completed||(this.completed=!0,this.onEndCallbacks.forEach((function(o){if(!n.closed)try{o(e,t,r)}catch(e){setTimeout((function(){throw e}),0)}})))},e.prototype.rawOnHeaders=function(e){this.props.debug&&a.debug("rawOnHeaders",e),this.completed||this.onHeadersCallbacks.forEach((function(t){try{t(e)}catch(e){setTimeout((function(){throw e}),0)}}))},e.prototype.rawOnError=function(e,t,r){var o=this;void 0===r&&(r=new n.Metadata),this.props.debug&&a.debug("rawOnError",e,t),this.completed||(this.completed=!0,this.onEndCallbacks.forEach((function(n){if(!o.closed)try{n(e,t,r)}catch(e){setTimeout((function(){throw e}),0)}})))},e.prototype.rawOnMessage=function(e){var t=this;this.props.debug&&a.debug("rawOnMessage",e.toObject()),this.completed||this.closed||this.onMessageCallbacks.forEach((function(r){if(!t.closed)try{r(e)}catch(e){setTimeout((function(){throw e}),0)}}))},e.prototype.onHeaders=function(e){this.onHeadersCallbacks.push(e)},e.prototype.onMessage=function(e){this.onMessageCallbacks.push(e)},e.prototype.onEnd=function(e){this.onEndCallbacks.push(e)},e.prototype.start=function(e){if(this.started)throw new Error("Client already started - cannot .start()");this.started=!0;var t=new n.Metadata(e||{});t.set("content-type","application/grpc-web+proto"),t.set("x-grpc-web","1"),this.transport.start(t)},e.prototype.send=function(e){if(!this.started)throw new Error("Client not started - .start() must be called before .send()");if(this.closed)throw new Error("Client already closed - cannot .send()");if(this.finishedSending)throw new Error("Client already finished sending - cannot .send()");if(!this.methodDefinition.requestStream&&this.sentFirstMessage)throw new Error("Message already sent for non-client-streaming method - cannot .send()");this.sentFirstMessage=!0;var t=u.frameRequest(e);this.transport.sendMessage(t)},e.prototype.finishSend=function(){if(!this.started)throw new Error("Client not started - .finishSend() must be called before .close()");if(this.closed)throw new Error("Client already closed - cannot .send()");if(this.finishedSending)throw new Error("Client already finished sending - cannot .finishSend()");this.finishedSending=!0,this.transport.finishSend()},e.prototype.close=function(){if(!this.started)throw new Error("Client not started - .start() must be called before .close()");if(this.closed)throw new Error("Client already closed - cannot .close()");this.closed=!0,this.props.debug&&a.debug("request.abort aborting request"),this.transport.cancel()},e}();function d(e){var t=e.get("grpc-status")||[];if(t.length>0)try{var r=t[0];return parseInt(r,10)}catch(e){return null}return null}},346:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.debug=void 0,t.debug=function(){for(var e=[],t=0;t=55296&&r<=56319){var n=e.charCodeAt(t+1);n>=56320&&n<=57343&&(r=65536+(r-55296<<10)+(n-56320))}return r}function l(e){for(var t=new Uint8Array(e.length),r=0,n=0;n{"use strict";e.exports=function(e,t){for(var r=new Array(arguments.length-1),n=0,o=2,i=!0;o{"use strict";var r=t;r.length=function(e){var t=e.length;if(!t)return 0;for(var r=0;--t%4>1&&"="===e.charAt(t);)++r;return Math.ceil(3*e.length)/4-r};for(var n=new Array(64),o=new Array(123),i=0;i<64;)o[n[i]=i<26?i+65:i<52?i+71:i<62?i-4:i-59|43]=i++;r.encode=function(e,t,r){for(var o,i=null,a=[],s=0,u=0;t>2],o=(3&c)<<4,u=1;break;case 1:a[s++]=n[o|c>>4],o=(15&c)<<2,u=2;break;case 2:a[s++]=n[o|c>>6],a[s++]=n[63&c],u=0}s>8191&&((i||(i=[])).push(String.fromCharCode.apply(String,a)),s=0)}return u&&(a[s++]=n[o],a[s++]=61,1===u&&(a[s++]=61)),i?(s&&i.push(String.fromCharCode.apply(String,a.slice(0,s))),i.join("")):String.fromCharCode.apply(String,a.slice(0,s))};var a="invalid encoding";r.decode=function(e,t,r){for(var n,i=r,s=0,u=0;u1)break;if(void 0===(c=o[c]))throw Error(a);switch(s){case 0:n=c,s=1;break;case 1:t[r++]=n<<2|(48&c)>>4,n=c,s=2;break;case 2:t[r++]=(15&n)<<4|(60&c)>>2,n=c,s=3;break;case 3:t[r++]=(3&n)<<6|c,s=0}}if(1===s)throw Error(a);return r-i},r.test=function(e){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(e)}},67516:e=>{"use strict";function t(){this._listeners={}}e.exports=t,t.prototype.on=function(e,t,r){return(this._listeners[e]||(this._listeners[e]=[])).push({fn:t,ctx:r||this}),this},t.prototype.off=function(e,t){if(void 0===e)this._listeners={};else if(void 0===t)this._listeners[e]=[];else for(var r=this._listeners[e],n=0;n{"use strict";function t(e){return"undefined"!=typeof Float32Array?function(){var t=new Float32Array([-0]),r=new Uint8Array(t.buffer),n=128===r[3];function o(e,n,o){t[0]=e,n[o]=r[0],n[o+1]=r[1],n[o+2]=r[2],n[o+3]=r[3]}function i(e,n,o){t[0]=e,n[o]=r[3],n[o+1]=r[2],n[o+2]=r[1],n[o+3]=r[0]}function a(e,n){return r[0]=e[n],r[1]=e[n+1],r[2]=e[n+2],r[3]=e[n+3],t[0]}function s(e,n){return r[3]=e[n],r[2]=e[n+1],r[1]=e[n+2],r[0]=e[n+3],t[0]}e.writeFloatLE=n?o:i,e.writeFloatBE=n?i:o,e.readFloatLE=n?a:s,e.readFloatBE=n?s:a}():function(){function t(e,t,r,n){var o=t<0?1:0;if(o&&(t=-t),0===t)e(1/t>0?0:2147483648,r,n);else if(isNaN(t))e(2143289344,r,n);else if(t>34028234663852886e22)e((o<<31|2139095040)>>>0,r,n);else if(t<11754943508222875e-54)e((o<<31|Math.round(t/1401298464324817e-60))>>>0,r,n);else{var i=Math.floor(Math.log(t)/Math.LN2);e((o<<31|i+127<<23|8388607&Math.round(t*Math.pow(2,-i)*8388608))>>>0,r,n)}}function a(e,t,r){var n=e(t,r),o=2*(n>>31)+1,i=n>>>23&255,a=8388607&n;return 255===i?a?NaN:o*(1/0):0===i?1401298464324817e-60*o*a:o*Math.pow(2,i-150)*(a+8388608)}e.writeFloatLE=t.bind(null,r),e.writeFloatBE=t.bind(null,n),e.readFloatLE=a.bind(null,o),e.readFloatBE=a.bind(null,i)}(),"undefined"!=typeof Float64Array?function(){var t=new Float64Array([-0]),r=new Uint8Array(t.buffer),n=128===r[7];function o(e,n,o){t[0]=e,n[o]=r[0],n[o+1]=r[1],n[o+2]=r[2],n[o+3]=r[3],n[o+4]=r[4],n[o+5]=r[5],n[o+6]=r[6],n[o+7]=r[7]}function i(e,n,o){t[0]=e,n[o]=r[7],n[o+1]=r[6],n[o+2]=r[5],n[o+3]=r[4],n[o+4]=r[3],n[o+5]=r[2],n[o+6]=r[1],n[o+7]=r[0]}function a(e,n){return r[0]=e[n],r[1]=e[n+1],r[2]=e[n+2],r[3]=e[n+3],r[4]=e[n+4],r[5]=e[n+5],r[6]=e[n+6],r[7]=e[n+7],t[0]}function s(e,n){return r[7]=e[n],r[6]=e[n+1],r[5]=e[n+2],r[4]=e[n+3],r[3]=e[n+4],r[2]=e[n+5],r[1]=e[n+6],r[0]=e[n+7],t[0]}e.writeDoubleLE=n?o:i,e.writeDoubleBE=n?i:o,e.readDoubleLE=n?a:s,e.readDoubleBE=n?s:a}():function(){function t(e,t,r,n,o,i){var a=n<0?1:0;if(a&&(n=-n),0===n)e(0,o,i+t),e(1/n>0?0:2147483648,o,i+r);else if(isNaN(n))e(0,o,i+t),e(2146959360,o,i+r);else if(n>17976931348623157e292)e(0,o,i+t),e((a<<31|2146435072)>>>0,o,i+r);else{var s;if(n<22250738585072014e-324)e((s=n/5e-324)>>>0,o,i+t),e((a<<31|s/4294967296)>>>0,o,i+r);else{var u=Math.floor(Math.log(n)/Math.LN2);1024===u&&(u=1023),e(4503599627370496*(s=n*Math.pow(2,-u))>>>0,o,i+t),e((a<<31|u+1023<<20|1048576*s&1048575)>>>0,o,i+r)}}}function a(e,t,r,n,o){var i=e(n,o+t),a=e(n,o+r),s=2*(a>>31)+1,u=a>>>20&2047,c=4294967296*(1048575&a)+i;return 2047===u?c?NaN:s*(1/0):0===u?5e-324*s*c:s*Math.pow(2,u-1075)*(c+4503599627370496)}e.writeDoubleLE=t.bind(null,r,0,4),e.writeDoubleBE=t.bind(null,n,4,0),e.readDoubleLE=a.bind(null,o,0,4),e.readDoubleBE=a.bind(null,i,4,0)}(),e}function r(e,t,r){t[r]=255&e,t[r+1]=e>>>8&255,t[r+2]=e>>>16&255,t[r+3]=e>>>24}function n(e,t,r){t[r]=e>>>24,t[r+1]=e>>>16&255,t[r+2]=e>>>8&255,t[r+3]=255&e}function o(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24)>>>0}function i(e,t){return(e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3])>>>0}e.exports=t(t)},2795:module=>{"use strict";function inquire(moduleName){try{var mod=eval("quire".replace(/^/,"re"))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch(e){}return null}module.exports=inquire},94476:e=>{"use strict";e.exports=function(e,t,r){var n=r||8192,o=n>>>1,i=null,a=n;return function(r){if(r<1||r>o)return e(r);a+r>n&&(i=e(n),a=0);var s=t.call(i,a,a+=r);return 7&a&&(a=1+(7|a)),s}}},71893:(e,t)=>{"use strict";var r=t;r.length=function(e){for(var t=0,r=0,n=0;n191&&n<224?i[a++]=(31&n)<<6|63&e[t++]:n>239&&n<365?(n=((7&n)<<18|(63&e[t++])<<12|(63&e[t++])<<6|63&e[t++])-65536,i[a++]=55296+(n>>10),i[a++]=56320+(1023&n)):i[a++]=(15&n)<<12|(63&e[t++])<<6|63&e[t++],a>8191&&((o||(o=[])).push(String.fromCharCode.apply(String,i)),a=0);return o?(a&&o.push(String.fromCharCode.apply(String,i.slice(0,a))),o.join("")):String.fromCharCode.apply(String,i.slice(0,a))},r.write=function(e,t,r){for(var n,o,i=r,a=0;a>6|192,t[r++]=63&n|128):55296==(64512&n)&&56320==(64512&(o=e.charCodeAt(a+1)))?(n=65536+((1023&n)<<10)+(1023&o),++a,t[r++]=n>>18|240,t[r++]=n>>12&63|128,t[r++]=n>>6&63|128,t[r++]=63&n|128):(t[r++]=n>>12|224,t[r++]=n>>6&63|128,t[r++]=63&n|128);return r-i}},86068:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.CompressedNonExistenceProof=t.CompressedExistenceProof=t.CompressedBatchEntry=t.CompressedBatchProof=t.BatchEntry=t.BatchProof=t.InnerSpec=t.ProofSpec=t.InnerOp=t.LeafOp=t.CommitmentProof=t.NonExistenceProof=t.ExistenceProof=t.lengthOpToJSON=t.lengthOpFromJSON=t.LengthOp=t.hashOpToJSON=t.hashOpFromJSON=t.HashOp=t.protobufPackage=void 0;const o=n(r(24067)),i=n(r(63967));var a,s;function u(e){switch(e){case 0:case"NO_HASH":return a.NO_HASH;case 1:case"SHA256":return a.SHA256;case 2:case"SHA512":return a.SHA512;case 3:case"KECCAK":return a.KECCAK;case 4:case"RIPEMD160":return a.RIPEMD160;case 5:case"BITCOIN":return a.BITCOIN;default:return a.UNRECOGNIZED}}function c(e){switch(e){case a.NO_HASH:return"NO_HASH";case a.SHA256:return"SHA256";case a.SHA512:return"SHA512";case a.KECCAK:return"KECCAK";case a.RIPEMD160:return"RIPEMD160";case a.BITCOIN:return"BITCOIN";default:return"UNKNOWN"}}function d(e){switch(e){case 0:case"NO_PREFIX":return s.NO_PREFIX;case 1:case"VAR_PROTO":return s.VAR_PROTO;case 2:case"VAR_RLP":return s.VAR_RLP;case 3:case"FIXED32_BIG":return s.FIXED32_BIG;case 4:case"FIXED32_LITTLE":return s.FIXED32_LITTLE;case 5:case"FIXED64_BIG":return s.FIXED64_BIG;case 6:case"FIXED64_LITTLE":return s.FIXED64_LITTLE;case 7:case"REQUIRE_32_BYTES":return s.REQUIRE_32_BYTES;case 8:case"REQUIRE_64_BYTES":return s.REQUIRE_64_BYTES;default:return s.UNRECOGNIZED}}function l(e){switch(e){case s.NO_PREFIX:return"NO_PREFIX";case s.VAR_PROTO:return"VAR_PROTO";case s.VAR_RLP:return"VAR_RLP";case s.FIXED32_BIG:return"FIXED32_BIG";case s.FIXED32_LITTLE:return"FIXED32_LITTLE";case s.FIXED64_BIG:return"FIXED64_BIG";case s.FIXED64_LITTLE:return"FIXED64_LITTLE";case s.REQUIRE_32_BYTES:return"REQUIRE_32_BYTES";case s.REQUIRE_64_BYTES:return"REQUIRE_64_BYTES";default:return"UNKNOWN"}}t.protobufPackage="ics23",function(e){e[e.NO_HASH=0]="NO_HASH",e[e.SHA256=1]="SHA256",e[e.SHA512=2]="SHA512",e[e.KECCAK=3]="KECCAK",e[e.RIPEMD160=4]="RIPEMD160",e[e.BITCOIN=5]="BITCOIN",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(a=t.HashOp||(t.HashOp={})),t.hashOpFromJSON=u,t.hashOpToJSON=c,function(e){e[e.NO_PREFIX=0]="NO_PREFIX",e[e.VAR_PROTO=1]="VAR_PROTO",e[e.VAR_RLP=2]="VAR_RLP",e[e.FIXED32_BIG=3]="FIXED32_BIG",e[e.FIXED32_LITTLE=4]="FIXED32_LITTLE",e[e.FIXED64_BIG=5]="FIXED64_BIG",e[e.FIXED64_LITTLE=6]="FIXED64_LITTLE",e[e.REQUIRE_32_BYTES=7]="REQUIRE_32_BYTES",e[e.REQUIRE_64_BYTES=8]="REQUIRE_64_BYTES",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(s=t.LengthOp||(t.LengthOp={})),t.lengthOpFromJSON=d,t.lengthOpToJSON=l;const f={};t.ExistenceProof={encode(e,r=i.default.Writer.create()){0!==e.key.length&&r.uint32(10).bytes(e.key),0!==e.value.length&&r.uint32(18).bytes(e.value),void 0!==e.leaf&&t.LeafOp.encode(e.leaf,r.uint32(26).fork()).ldelim();for(const n of e.path)t.InnerOp.encode(n,r.uint32(34).fork()).ldelim();return r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},f);for(a.path=[],a.key=new Uint8Array,a.value=new Uint8Array;n.pos>>3){case 1:a.key=n.bytes();break;case 2:a.value=n.bytes();break;case 3:a.leaf=t.LeafOp.decode(n,n.uint32());break;case 4:a.path.push(t.InnerOp.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},f);if(r.path=[],r.key=new Uint8Array,r.value=new Uint8Array,void 0!==e.key&&null!==e.key&&(r.key=M(e.key)),void 0!==e.value&&null!==e.value&&(r.value=M(e.value)),void 0!==e.leaf&&null!==e.leaf?r.leaf=t.LeafOp.fromJSON(e.leaf):r.leaf=void 0,void 0!==e.path&&null!==e.path)for(const n of e.path)r.path.push(t.InnerOp.fromJSON(n));return r},toJSON(e){const r={};return void 0!==e.key&&(r.key=C(void 0!==e.key?e.key:new Uint8Array)),void 0!==e.value&&(r.value=C(void 0!==e.value?e.value:new Uint8Array)),void 0!==e.leaf&&(r.leaf=e.leaf?t.LeafOp.toJSON(e.leaf):void 0),e.path?r.path=e.path.map((e=>e?t.InnerOp.toJSON(e):void 0)):r.path=[],r},fromPartial(e){const r=Object.assign({},f);if(r.path=[],void 0!==e.key&&null!==e.key?r.key=e.key:r.key=new Uint8Array,void 0!==e.value&&null!==e.value?r.value=e.value:r.value=new Uint8Array,void 0!==e.leaf&&null!==e.leaf?r.leaf=t.LeafOp.fromPartial(e.leaf):r.leaf=void 0,void 0!==e.path&&null!==e.path)for(const n of e.path)r.path.push(t.InnerOp.fromPartial(n));return r}};const h={};t.NonExistenceProof={encode:(e,r=i.default.Writer.create())=>(0!==e.key.length&&r.uint32(10).bytes(e.key),void 0!==e.left&&t.ExistenceProof.encode(e.left,r.uint32(18).fork()).ldelim(),void 0!==e.right&&t.ExistenceProof.encode(e.right,r.uint32(26).fork()).ldelim(),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},h);for(a.key=new Uint8Array;n.pos>>3){case 1:a.key=n.bytes();break;case 2:a.left=t.ExistenceProof.decode(n,n.uint32());break;case 3:a.right=t.ExistenceProof.decode(n,n.uint32());break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},h);return r.key=new Uint8Array,void 0!==e.key&&null!==e.key&&(r.key=M(e.key)),void 0!==e.left&&null!==e.left?r.left=t.ExistenceProof.fromJSON(e.left):r.left=void 0,void 0!==e.right&&null!==e.right?r.right=t.ExistenceProof.fromJSON(e.right):r.right=void 0,r},toJSON(e){const r={};return void 0!==e.key&&(r.key=C(void 0!==e.key?e.key:new Uint8Array)),void 0!==e.left&&(r.left=e.left?t.ExistenceProof.toJSON(e.left):void 0),void 0!==e.right&&(r.right=e.right?t.ExistenceProof.toJSON(e.right):void 0),r},fromPartial(e){const r=Object.assign({},h);return void 0!==e.key&&null!==e.key?r.key=e.key:r.key=new Uint8Array,void 0!==e.left&&null!==e.left?r.left=t.ExistenceProof.fromPartial(e.left):r.left=void 0,void 0!==e.right&&null!==e.right?r.right=t.ExistenceProof.fromPartial(e.right):r.right=void 0,r}};const p={};t.CommitmentProof={encode:(e,r=i.default.Writer.create())=>(void 0!==e.exist&&t.ExistenceProof.encode(e.exist,r.uint32(10).fork()).ldelim(),void 0!==e.nonexist&&t.NonExistenceProof.encode(e.nonexist,r.uint32(18).fork()).ldelim(),void 0!==e.batch&&t.BatchProof.encode(e.batch,r.uint32(26).fork()).ldelim(),void 0!==e.compressed&&t.CompressedBatchProof.encode(e.compressed,r.uint32(34).fork()).ldelim(),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},p);for(;n.pos>>3){case 1:a.exist=t.ExistenceProof.decode(n,n.uint32());break;case 2:a.nonexist=t.NonExistenceProof.decode(n,n.uint32());break;case 3:a.batch=t.BatchProof.decode(n,n.uint32());break;case 4:a.compressed=t.CompressedBatchProof.decode(n,n.uint32());break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},p);return void 0!==e.exist&&null!==e.exist?r.exist=t.ExistenceProof.fromJSON(e.exist):r.exist=void 0,void 0!==e.nonexist&&null!==e.nonexist?r.nonexist=t.NonExistenceProof.fromJSON(e.nonexist):r.nonexist=void 0,void 0!==e.batch&&null!==e.batch?r.batch=t.BatchProof.fromJSON(e.batch):r.batch=void 0,void 0!==e.compressed&&null!==e.compressed?r.compressed=t.CompressedBatchProof.fromJSON(e.compressed):r.compressed=void 0,r},toJSON(e){const r={};return void 0!==e.exist&&(r.exist=e.exist?t.ExistenceProof.toJSON(e.exist):void 0),void 0!==e.nonexist&&(r.nonexist=e.nonexist?t.NonExistenceProof.toJSON(e.nonexist):void 0),void 0!==e.batch&&(r.batch=e.batch?t.BatchProof.toJSON(e.batch):void 0),void 0!==e.compressed&&(r.compressed=e.compressed?t.CompressedBatchProof.toJSON(e.compressed):void 0),r},fromPartial(e){const r=Object.assign({},p);return void 0!==e.exist&&null!==e.exist?r.exist=t.ExistenceProof.fromPartial(e.exist):r.exist=void 0,void 0!==e.nonexist&&null!==e.nonexist?r.nonexist=t.NonExistenceProof.fromPartial(e.nonexist):r.nonexist=void 0,void 0!==e.batch&&null!==e.batch?r.batch=t.BatchProof.fromPartial(e.batch):r.batch=void 0,void 0!==e.compressed&&null!==e.compressed?r.compressed=t.CompressedBatchProof.fromPartial(e.compressed):r.compressed=void 0,r}};const m={hash:0,prehashKey:0,prehashValue:0,length:0};t.LeafOp={encode:(e,t=i.default.Writer.create())=>(0!==e.hash&&t.uint32(8).int32(e.hash),0!==e.prehashKey&&t.uint32(16).int32(e.prehashKey),0!==e.prehashValue&&t.uint32(24).int32(e.prehashValue),0!==e.length&&t.uint32(32).int32(e.length),0!==e.prefix.length&&t.uint32(42).bytes(e.prefix),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},m);for(o.prefix=new Uint8Array;r.pos>>3){case 1:o.hash=r.int32();break;case 2:o.prehashKey=r.int32();break;case 3:o.prehashValue=r.int32();break;case 4:o.length=r.int32();break;case 5:o.prefix=r.bytes();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},m);return t.prefix=new Uint8Array,void 0!==e.hash&&null!==e.hash?t.hash=u(e.hash):t.hash=0,void 0!==e.prehashKey&&null!==e.prehashKey?t.prehashKey=u(e.prehashKey):t.prehashKey=0,void 0!==e.prehashValue&&null!==e.prehashValue?t.prehashValue=u(e.prehashValue):t.prehashValue=0,void 0!==e.length&&null!==e.length?t.length=d(e.length):t.length=0,void 0!==e.prefix&&null!==e.prefix&&(t.prefix=M(e.prefix)),t},toJSON(e){const t={};return void 0!==e.hash&&(t.hash=c(e.hash)),void 0!==e.prehashKey&&(t.prehashKey=c(e.prehashKey)),void 0!==e.prehashValue&&(t.prehashValue=c(e.prehashValue)),void 0!==e.length&&(t.length=l(e.length)),void 0!==e.prefix&&(t.prefix=C(void 0!==e.prefix?e.prefix:new Uint8Array)),t},fromPartial(e){const t=Object.assign({},m);return void 0!==e.hash&&null!==e.hash?t.hash=e.hash:t.hash=0,void 0!==e.prehashKey&&null!==e.prehashKey?t.prehashKey=e.prehashKey:t.prehashKey=0,void 0!==e.prehashValue&&null!==e.prehashValue?t.prehashValue=e.prehashValue:t.prehashValue=0,void 0!==e.length&&null!==e.length?t.length=e.length:t.length=0,void 0!==e.prefix&&null!==e.prefix?t.prefix=e.prefix:t.prefix=new Uint8Array,t}};const g={hash:0};t.InnerOp={encode:(e,t=i.default.Writer.create())=>(0!==e.hash&&t.uint32(8).int32(e.hash),0!==e.prefix.length&&t.uint32(18).bytes(e.prefix),0!==e.suffix.length&&t.uint32(26).bytes(e.suffix),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},g);for(o.prefix=new Uint8Array,o.suffix=new Uint8Array;r.pos>>3){case 1:o.hash=r.int32();break;case 2:o.prefix=r.bytes();break;case 3:o.suffix=r.bytes();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},g);return t.prefix=new Uint8Array,t.suffix=new Uint8Array,void 0!==e.hash&&null!==e.hash?t.hash=u(e.hash):t.hash=0,void 0!==e.prefix&&null!==e.prefix&&(t.prefix=M(e.prefix)),void 0!==e.suffix&&null!==e.suffix&&(t.suffix=M(e.suffix)),t},toJSON(e){const t={};return void 0!==e.hash&&(t.hash=c(e.hash)),void 0!==e.prefix&&(t.prefix=C(void 0!==e.prefix?e.prefix:new Uint8Array)),void 0!==e.suffix&&(t.suffix=C(void 0!==e.suffix?e.suffix:new Uint8Array)),t},fromPartial(e){const t=Object.assign({},g);return void 0!==e.hash&&null!==e.hash?t.hash=e.hash:t.hash=0,void 0!==e.prefix&&null!==e.prefix?t.prefix=e.prefix:t.prefix=new Uint8Array,void 0!==e.suffix&&null!==e.suffix?t.suffix=e.suffix:t.suffix=new Uint8Array,t}};const v={maxDepth:0,minDepth:0};t.ProofSpec={encode:(e,r=i.default.Writer.create())=>(void 0!==e.leafSpec&&t.LeafOp.encode(e.leafSpec,r.uint32(10).fork()).ldelim(),void 0!==e.innerSpec&&t.InnerSpec.encode(e.innerSpec,r.uint32(18).fork()).ldelim(),0!==e.maxDepth&&r.uint32(24).int32(e.maxDepth),0!==e.minDepth&&r.uint32(32).int32(e.minDepth),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},v);for(;n.pos>>3){case 1:a.leafSpec=t.LeafOp.decode(n,n.uint32());break;case 2:a.innerSpec=t.InnerSpec.decode(n,n.uint32());break;case 3:a.maxDepth=n.int32();break;case 4:a.minDepth=n.int32();break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},v);return void 0!==e.leafSpec&&null!==e.leafSpec?r.leafSpec=t.LeafOp.fromJSON(e.leafSpec):r.leafSpec=void 0,void 0!==e.innerSpec&&null!==e.innerSpec?r.innerSpec=t.InnerSpec.fromJSON(e.innerSpec):r.innerSpec=void 0,void 0!==e.maxDepth&&null!==e.maxDepth?r.maxDepth=Number(e.maxDepth):r.maxDepth=0,void 0!==e.minDepth&&null!==e.minDepth?r.minDepth=Number(e.minDepth):r.minDepth=0,r},toJSON(e){const r={};return void 0!==e.leafSpec&&(r.leafSpec=e.leafSpec?t.LeafOp.toJSON(e.leafSpec):void 0),void 0!==e.innerSpec&&(r.innerSpec=e.innerSpec?t.InnerSpec.toJSON(e.innerSpec):void 0),void 0!==e.maxDepth&&(r.maxDepth=e.maxDepth),void 0!==e.minDepth&&(r.minDepth=e.minDepth),r},fromPartial(e){const r=Object.assign({},v);return void 0!==e.leafSpec&&null!==e.leafSpec?r.leafSpec=t.LeafOp.fromPartial(e.leafSpec):r.leafSpec=void 0,void 0!==e.innerSpec&&null!==e.innerSpec?r.innerSpec=t.InnerSpec.fromPartial(e.innerSpec):r.innerSpec=void 0,void 0!==e.maxDepth&&null!==e.maxDepth?r.maxDepth=e.maxDepth:r.maxDepth=0,void 0!==e.minDepth&&null!==e.minDepth?r.minDepth=e.minDepth:r.minDepth=0,r}};const b={childOrder:0,childSize:0,minPrefixLength:0,maxPrefixLength:0,hash:0};t.InnerSpec={encode(e,t=i.default.Writer.create()){t.uint32(10).fork();for(const r of e.childOrder)t.int32(r);return t.ldelim(),0!==e.childSize&&t.uint32(16).int32(e.childSize),0!==e.minPrefixLength&&t.uint32(24).int32(e.minPrefixLength),0!==e.maxPrefixLength&&t.uint32(32).int32(e.maxPrefixLength),0!==e.emptyChild.length&&t.uint32(42).bytes(e.emptyChild),0!==e.hash&&t.uint32(48).int32(e.hash),t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},b);for(o.childOrder=[],o.emptyChild=new Uint8Array;r.pos>>3){case 1:if(2==(7&e)){const e=r.uint32()+r.pos;for(;r.pose)):t.childOrder=[],void 0!==e.childSize&&(t.childSize=e.childSize),void 0!==e.minPrefixLength&&(t.minPrefixLength=e.minPrefixLength),void 0!==e.maxPrefixLength&&(t.maxPrefixLength=e.maxPrefixLength),void 0!==e.emptyChild&&(t.emptyChild=C(void 0!==e.emptyChild?e.emptyChild:new Uint8Array)),void 0!==e.hash&&(t.hash=c(e.hash)),t},fromPartial(e){const t=Object.assign({},b);if(t.childOrder=[],void 0!==e.childOrder&&null!==e.childOrder)for(const r of e.childOrder)t.childOrder.push(r);return void 0!==e.childSize&&null!==e.childSize?t.childSize=e.childSize:t.childSize=0,void 0!==e.minPrefixLength&&null!==e.minPrefixLength?t.minPrefixLength=e.minPrefixLength:t.minPrefixLength=0,void 0!==e.maxPrefixLength&&null!==e.maxPrefixLength?t.maxPrefixLength=e.maxPrefixLength:t.maxPrefixLength=0,void 0!==e.emptyChild&&null!==e.emptyChild?t.emptyChild=e.emptyChild:t.emptyChild=new Uint8Array,void 0!==e.hash&&null!==e.hash?t.hash=e.hash:t.hash=0,t}};const y={};t.BatchProof={encode(e,r=i.default.Writer.create()){for(const n of e.entries)t.BatchEntry.encode(n,r.uint32(10).fork()).ldelim();return r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},y);for(a.entries=[];n.pos>>3==1?a.entries.push(t.BatchEntry.decode(n,n.uint32())):n.skipType(7&e)}return a},fromJSON(e){const r=Object.assign({},y);if(r.entries=[],void 0!==e.entries&&null!==e.entries)for(const n of e.entries)r.entries.push(t.BatchEntry.fromJSON(n));return r},toJSON(e){const r={};return e.entries?r.entries=e.entries.map((e=>e?t.BatchEntry.toJSON(e):void 0)):r.entries=[],r},fromPartial(e){const r=Object.assign({},y);if(r.entries=[],void 0!==e.entries&&null!==e.entries)for(const n of e.entries)r.entries.push(t.BatchEntry.fromPartial(n));return r}};const w={};t.BatchEntry={encode:(e,r=i.default.Writer.create())=>(void 0!==e.exist&&t.ExistenceProof.encode(e.exist,r.uint32(10).fork()).ldelim(),void 0!==e.nonexist&&t.NonExistenceProof.encode(e.nonexist,r.uint32(18).fork()).ldelim(),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},w);for(;n.pos>>3){case 1:a.exist=t.ExistenceProof.decode(n,n.uint32());break;case 2:a.nonexist=t.NonExistenceProof.decode(n,n.uint32());break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},w);return void 0!==e.exist&&null!==e.exist?r.exist=t.ExistenceProof.fromJSON(e.exist):r.exist=void 0,void 0!==e.nonexist&&null!==e.nonexist?r.nonexist=t.NonExistenceProof.fromJSON(e.nonexist):r.nonexist=void 0,r},toJSON(e){const r={};return void 0!==e.exist&&(r.exist=e.exist?t.ExistenceProof.toJSON(e.exist):void 0),void 0!==e.nonexist&&(r.nonexist=e.nonexist?t.NonExistenceProof.toJSON(e.nonexist):void 0),r},fromPartial(e){const r=Object.assign({},w);return void 0!==e.exist&&null!==e.exist?r.exist=t.ExistenceProof.fromPartial(e.exist):r.exist=void 0,void 0!==e.nonexist&&null!==e.nonexist?r.nonexist=t.NonExistenceProof.fromPartial(e.nonexist):r.nonexist=void 0,r}};const _={};t.CompressedBatchProof={encode(e,r=i.default.Writer.create()){for(const n of e.entries)t.CompressedBatchEntry.encode(n,r.uint32(10).fork()).ldelim();for(const n of e.lookupInners)t.InnerOp.encode(n,r.uint32(18).fork()).ldelim();return r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},_);for(a.entries=[],a.lookupInners=[];n.pos>>3){case 1:a.entries.push(t.CompressedBatchEntry.decode(n,n.uint32()));break;case 2:a.lookupInners.push(t.InnerOp.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},_);if(r.entries=[],r.lookupInners=[],void 0!==e.entries&&null!==e.entries)for(const n of e.entries)r.entries.push(t.CompressedBatchEntry.fromJSON(n));if(void 0!==e.lookupInners&&null!==e.lookupInners)for(const n of e.lookupInners)r.lookupInners.push(t.InnerOp.fromJSON(n));return r},toJSON(e){const r={};return e.entries?r.entries=e.entries.map((e=>e?t.CompressedBatchEntry.toJSON(e):void 0)):r.entries=[],e.lookupInners?r.lookupInners=e.lookupInners.map((e=>e?t.InnerOp.toJSON(e):void 0)):r.lookupInners=[],r},fromPartial(e){const r=Object.assign({},_);if(r.entries=[],r.lookupInners=[],void 0!==e.entries&&null!==e.entries)for(const n of e.entries)r.entries.push(t.CompressedBatchEntry.fromPartial(n));if(void 0!==e.lookupInners&&null!==e.lookupInners)for(const n of e.lookupInners)r.lookupInners.push(t.InnerOp.fromPartial(n));return r}};const S={};t.CompressedBatchEntry={encode:(e,r=i.default.Writer.create())=>(void 0!==e.exist&&t.CompressedExistenceProof.encode(e.exist,r.uint32(10).fork()).ldelim(),void 0!==e.nonexist&&t.CompressedNonExistenceProof.encode(e.nonexist,r.uint32(18).fork()).ldelim(),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},S);for(;n.pos>>3){case 1:a.exist=t.CompressedExistenceProof.decode(n,n.uint32());break;case 2:a.nonexist=t.CompressedNonExistenceProof.decode(n,n.uint32());break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},S);return void 0!==e.exist&&null!==e.exist?r.exist=t.CompressedExistenceProof.fromJSON(e.exist):r.exist=void 0,void 0!==e.nonexist&&null!==e.nonexist?r.nonexist=t.CompressedNonExistenceProof.fromJSON(e.nonexist):r.nonexist=void 0,r},toJSON(e){const r={};return void 0!==e.exist&&(r.exist=e.exist?t.CompressedExistenceProof.toJSON(e.exist):void 0),void 0!==e.nonexist&&(r.nonexist=e.nonexist?t.CompressedNonExistenceProof.toJSON(e.nonexist):void 0),r},fromPartial(e){const r=Object.assign({},S);return void 0!==e.exist&&null!==e.exist?r.exist=t.CompressedExistenceProof.fromPartial(e.exist):r.exist=void 0,void 0!==e.nonexist&&null!==e.nonexist?r.nonexist=t.CompressedNonExistenceProof.fromPartial(e.nonexist):r.nonexist=void 0,r}};const O={path:0};t.CompressedExistenceProof={encode(e,r=i.default.Writer.create()){0!==e.key.length&&r.uint32(10).bytes(e.key),0!==e.value.length&&r.uint32(18).bytes(e.value),void 0!==e.leaf&&t.LeafOp.encode(e.leaf,r.uint32(26).fork()).ldelim(),r.uint32(34).fork();for(const t of e.path)r.int32(t);return r.ldelim(),r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},O);for(a.path=[],a.key=new Uint8Array,a.value=new Uint8Array;n.pos>>3){case 1:a.key=n.bytes();break;case 2:a.value=n.bytes();break;case 3:a.leaf=t.LeafOp.decode(n,n.uint32());break;case 4:if(2==(7&e)){const e=n.uint32()+n.pos;for(;n.pose)):r.path=[],r},fromPartial(e){const r=Object.assign({},O);if(r.path=[],void 0!==e.key&&null!==e.key?r.key=e.key:r.key=new Uint8Array,void 0!==e.value&&null!==e.value?r.value=e.value:r.value=new Uint8Array,void 0!==e.leaf&&null!==e.leaf?r.leaf=t.LeafOp.fromPartial(e.leaf):r.leaf=void 0,void 0!==e.path&&null!==e.path)for(const t of e.path)r.path.push(t);return r}};const k={};t.CompressedNonExistenceProof={encode:(e,r=i.default.Writer.create())=>(0!==e.key.length&&r.uint32(10).bytes(e.key),void 0!==e.left&&t.CompressedExistenceProof.encode(e.left,r.uint32(18).fork()).ldelim(),void 0!==e.right&&t.CompressedExistenceProof.encode(e.right,r.uint32(26).fork()).ldelim(),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},k);for(a.key=new Uint8Array;n.pos>>3){case 1:a.key=n.bytes();break;case 2:a.left=t.CompressedExistenceProof.decode(n,n.uint32());break;case 3:a.right=t.CompressedExistenceProof.decode(n,n.uint32());break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},k);return r.key=new Uint8Array,void 0!==e.key&&null!==e.key&&(r.key=M(e.key)),void 0!==e.left&&null!==e.left?r.left=t.CompressedExistenceProof.fromJSON(e.left):r.left=void 0,void 0!==e.right&&null!==e.right?r.right=t.CompressedExistenceProof.fromJSON(e.right):r.right=void 0,r},toJSON(e){const r={};return void 0!==e.key&&(r.key=C(void 0!==e.key?e.key:new Uint8Array)),void 0!==e.left&&(r.left=e.left?t.CompressedExistenceProof.toJSON(e.left):void 0),void 0!==e.right&&(r.right=e.right?t.CompressedExistenceProof.toJSON(e.right):void 0),r},fromPartial(e){const r=Object.assign({},k);return void 0!==e.key&&null!==e.key?r.key=e.key:r.key=new Uint8Array,void 0!==e.left&&null!==e.left?r.left=t.CompressedExistenceProof.fromPartial(e.left):r.left=void 0,void 0!==e.right&&null!==e.right?r.right=t.CompressedExistenceProof.fromPartial(e.right):r.right=void 0,r}};var A=(()=>{if(void 0!==A)return A;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==r.g)return r.g;throw"Unable to locate global object"})();const P=A.atob||(e=>A.Buffer.from(e,"base64").toString("binary"));function M(e){const t=P(e),r=new Uint8Array(t.length);for(let e=0;eA.Buffer.from(e,"binary").toString("base64"));function C(e){const t=[];for(const r of e)t.push(String.fromCharCode(r));return E(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},68818:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Params=t.ModuleAccount=t.BaseAccount=t.protobufPackage=void 0;const o=n(r(24067)),i=n(r(63967)),a=r(17063);t.protobufPackage="cosmos.auth.v1beta1";const s={address:"",accountNumber:o.default.UZERO,sequence:o.default.UZERO};t.BaseAccount={encode:(e,t=i.default.Writer.create())=>(""!==e.address&&t.uint32(10).string(e.address),void 0!==e.pubKey&&a.Any.encode(e.pubKey,t.uint32(18).fork()).ldelim(),e.accountNumber.isZero()||t.uint32(24).uint64(e.accountNumber),e.sequence.isZero()||t.uint32(32).uint64(e.sequence),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},s);for(;r.pos>>3){case 1:o.address=r.string();break;case 2:o.pubKey=a.Any.decode(r,r.uint32());break;case 3:o.accountNumber=r.uint64();break;case 4:o.sequence=r.uint64();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},s);return void 0!==e.address&&null!==e.address?t.address=String(e.address):t.address="",void 0!==e.pubKey&&null!==e.pubKey?t.pubKey=a.Any.fromJSON(e.pubKey):t.pubKey=void 0,void 0!==e.accountNumber&&null!==e.accountNumber?t.accountNumber=o.default.fromString(e.accountNumber):t.accountNumber=o.default.UZERO,void 0!==e.sequence&&null!==e.sequence?t.sequence=o.default.fromString(e.sequence):t.sequence=o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.address&&(t.address=e.address),void 0!==e.pubKey&&(t.pubKey=e.pubKey?a.Any.toJSON(e.pubKey):void 0),void 0!==e.accountNumber&&(t.accountNumber=(e.accountNumber||o.default.UZERO).toString()),void 0!==e.sequence&&(t.sequence=(e.sequence||o.default.UZERO).toString()),t},fromPartial(e){const t=Object.assign({},s);return void 0!==e.address&&null!==e.address?t.address=e.address:t.address="",void 0!==e.pubKey&&null!==e.pubKey?t.pubKey=a.Any.fromPartial(e.pubKey):t.pubKey=void 0,void 0!==e.accountNumber&&null!==e.accountNumber?t.accountNumber=e.accountNumber:t.accountNumber=o.default.UZERO,void 0!==e.sequence&&null!==e.sequence?t.sequence=e.sequence:t.sequence=o.default.UZERO,t}};const u={name:"",permissions:""};t.ModuleAccount={encode(e,r=i.default.Writer.create()){void 0!==e.baseAccount&&t.BaseAccount.encode(e.baseAccount,r.uint32(10).fork()).ldelim(),""!==e.name&&r.uint32(18).string(e.name);for(const t of e.permissions)r.uint32(26).string(t);return r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},u);for(a.permissions=[];n.pos>>3){case 1:a.baseAccount=t.BaseAccount.decode(n,n.uint32());break;case 2:a.name=n.string();break;case 3:a.permissions.push(n.string());break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},u);if(r.permissions=[],void 0!==e.baseAccount&&null!==e.baseAccount?r.baseAccount=t.BaseAccount.fromJSON(e.baseAccount):r.baseAccount=void 0,void 0!==e.name&&null!==e.name?r.name=String(e.name):r.name="",void 0!==e.permissions&&null!==e.permissions)for(const t of e.permissions)r.permissions.push(String(t));return r},toJSON(e){const r={};return void 0!==e.baseAccount&&(r.baseAccount=e.baseAccount?t.BaseAccount.toJSON(e.baseAccount):void 0),void 0!==e.name&&(r.name=e.name),e.permissions?r.permissions=e.permissions.map((e=>e)):r.permissions=[],r},fromPartial(e){const r=Object.assign({},u);if(r.permissions=[],void 0!==e.baseAccount&&null!==e.baseAccount?r.baseAccount=t.BaseAccount.fromPartial(e.baseAccount):r.baseAccount=void 0,void 0!==e.name&&null!==e.name?r.name=e.name:r.name="",void 0!==e.permissions&&null!==e.permissions)for(const t of e.permissions)r.permissions.push(t);return r}};const c={maxMemoCharacters:o.default.UZERO,txSigLimit:o.default.UZERO,txSizeCostPerByte:o.default.UZERO,sigVerifyCostEd25519:o.default.UZERO,sigVerifyCostSecp256k1:o.default.UZERO};t.Params={encode:(e,t=i.default.Writer.create())=>(e.maxMemoCharacters.isZero()||t.uint32(8).uint64(e.maxMemoCharacters),e.txSigLimit.isZero()||t.uint32(16).uint64(e.txSigLimit),e.txSizeCostPerByte.isZero()||t.uint32(24).uint64(e.txSizeCostPerByte),e.sigVerifyCostEd25519.isZero()||t.uint32(32).uint64(e.sigVerifyCostEd25519),e.sigVerifyCostSecp256k1.isZero()||t.uint32(40).uint64(e.sigVerifyCostSecp256k1),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},c);for(;r.pos>>3){case 1:o.maxMemoCharacters=r.uint64();break;case 2:o.txSigLimit=r.uint64();break;case 3:o.txSizeCostPerByte=r.uint64();break;case 4:o.sigVerifyCostEd25519=r.uint64();break;case 5:o.sigVerifyCostSecp256k1=r.uint64();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},c);return void 0!==e.maxMemoCharacters&&null!==e.maxMemoCharacters?t.maxMemoCharacters=o.default.fromString(e.maxMemoCharacters):t.maxMemoCharacters=o.default.UZERO,void 0!==e.txSigLimit&&null!==e.txSigLimit?t.txSigLimit=o.default.fromString(e.txSigLimit):t.txSigLimit=o.default.UZERO,void 0!==e.txSizeCostPerByte&&null!==e.txSizeCostPerByte?t.txSizeCostPerByte=o.default.fromString(e.txSizeCostPerByte):t.txSizeCostPerByte=o.default.UZERO,void 0!==e.sigVerifyCostEd25519&&null!==e.sigVerifyCostEd25519?t.sigVerifyCostEd25519=o.default.fromString(e.sigVerifyCostEd25519):t.sigVerifyCostEd25519=o.default.UZERO,void 0!==e.sigVerifyCostSecp256k1&&null!==e.sigVerifyCostSecp256k1?t.sigVerifyCostSecp256k1=o.default.fromString(e.sigVerifyCostSecp256k1):t.sigVerifyCostSecp256k1=o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.maxMemoCharacters&&(t.maxMemoCharacters=(e.maxMemoCharacters||o.default.UZERO).toString()),void 0!==e.txSigLimit&&(t.txSigLimit=(e.txSigLimit||o.default.UZERO).toString()),void 0!==e.txSizeCostPerByte&&(t.txSizeCostPerByte=(e.txSizeCostPerByte||o.default.UZERO).toString()),void 0!==e.sigVerifyCostEd25519&&(t.sigVerifyCostEd25519=(e.sigVerifyCostEd25519||o.default.UZERO).toString()),void 0!==e.sigVerifyCostSecp256k1&&(t.sigVerifyCostSecp256k1=(e.sigVerifyCostSecp256k1||o.default.UZERO).toString()),t},fromPartial(e){const t=Object.assign({},c);return void 0!==e.maxMemoCharacters&&null!==e.maxMemoCharacters?t.maxMemoCharacters=e.maxMemoCharacters:t.maxMemoCharacters=o.default.UZERO,void 0!==e.txSigLimit&&null!==e.txSigLimit?t.txSigLimit=e.txSigLimit:t.txSigLimit=o.default.UZERO,void 0!==e.txSizeCostPerByte&&null!==e.txSizeCostPerByte?t.txSizeCostPerByte=e.txSizeCostPerByte:t.txSizeCostPerByte=o.default.UZERO,void 0!==e.sigVerifyCostEd25519&&null!==e.sigVerifyCostEd25519?t.sigVerifyCostEd25519=e.sigVerifyCostEd25519:t.sigVerifyCostEd25519=o.default.UZERO,void 0!==e.sigVerifyCostSecp256k1&&null!==e.sigVerifyCostSecp256k1?t.sigVerifyCostSecp256k1=e.sigVerifyCostSecp256k1:t.sigVerifyCostSecp256k1=o.default.UZERO,t}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},61059:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.GrantAuthorization=t.Grant=t.GenericAuthorization=t.protobufPackage=void 0;const o=n(r(24067)),i=n(r(63967)),a=r(17063),s=r(46759);t.protobufPackage="cosmos.authz.v1beta1";const u={msg:""};t.GenericAuthorization={encode:(e,t=i.default.Writer.create())=>(""!==e.msg&&t.uint32(10).string(e.msg),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},u);for(;r.pos>>3==1?o.msg=r.string():r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},u);return void 0!==e.msg&&null!==e.msg?t.msg=String(e.msg):t.msg="",t},toJSON(e){const t={};return void 0!==e.msg&&(t.msg=e.msg),t},fromPartial(e){const t=Object.assign({},u);return void 0!==e.msg&&null!==e.msg?t.msg=e.msg:t.msg="",t}};const c={};t.Grant={encode:(e,t=i.default.Writer.create())=>(void 0!==e.authorization&&a.Any.encode(e.authorization,t.uint32(10).fork()).ldelim(),void 0!==e.expiration&&s.Timestamp.encode(l(e.expiration),t.uint32(18).fork()).ldelim(),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},c);for(;r.pos>>3){case 1:o.authorization=a.Any.decode(r,r.uint32());break;case 2:o.expiration=f(s.Timestamp.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},c);return void 0!==e.authorization&&null!==e.authorization?t.authorization=a.Any.fromJSON(e.authorization):t.authorization=void 0,void 0!==e.expiration&&null!==e.expiration?t.expiration=h(e.expiration):t.expiration=void 0,t},toJSON(e){const t={};return void 0!==e.authorization&&(t.authorization=e.authorization?a.Any.toJSON(e.authorization):void 0),void 0!==e.expiration&&(t.expiration=e.expiration.toISOString()),t},fromPartial(e){const t=Object.assign({},c);return void 0!==e.authorization&&null!==e.authorization?t.authorization=a.Any.fromPartial(e.authorization):t.authorization=void 0,void 0!==e.expiration&&null!==e.expiration?t.expiration=e.expiration:t.expiration=void 0,t}};const d={granter:"",grantee:""};function l(e){var t;return{seconds:(t=e.getTime()/1e3,o.default.fromNumber(t)),nanos:e.getTime()%1e3*1e6}}function f(e){let t=1e3*e.seconds.toNumber();return t+=e.nanos/1e6,new Date(t)}function h(e){return e instanceof Date?e:"string"==typeof e?new Date(e):f(s.Timestamp.fromJSON(e))}t.GrantAuthorization={encode:(e,t=i.default.Writer.create())=>(""!==e.granter&&t.uint32(10).string(e.granter),""!==e.grantee&&t.uint32(18).string(e.grantee),void 0!==e.authorization&&a.Any.encode(e.authorization,t.uint32(26).fork()).ldelim(),void 0!==e.expiration&&s.Timestamp.encode(l(e.expiration),t.uint32(34).fork()).ldelim(),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},d);for(;r.pos>>3){case 1:o.granter=r.string();break;case 2:o.grantee=r.string();break;case 3:o.authorization=a.Any.decode(r,r.uint32());break;case 4:o.expiration=f(s.Timestamp.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},d);return void 0!==e.granter&&null!==e.granter?t.granter=String(e.granter):t.granter="",void 0!==e.grantee&&null!==e.grantee?t.grantee=String(e.grantee):t.grantee="",void 0!==e.authorization&&null!==e.authorization?t.authorization=a.Any.fromJSON(e.authorization):t.authorization=void 0,void 0!==e.expiration&&null!==e.expiration?t.expiration=h(e.expiration):t.expiration=void 0,t},toJSON(e){const t={};return void 0!==e.granter&&(t.granter=e.granter),void 0!==e.grantee&&(t.grantee=e.grantee),void 0!==e.authorization&&(t.authorization=e.authorization?a.Any.toJSON(e.authorization):void 0),void 0!==e.expiration&&(t.expiration=e.expiration.toISOString()),t},fromPartial(e){const t=Object.assign({},d);return void 0!==e.granter&&null!==e.granter?t.granter=e.granter:t.granter="",void 0!==e.grantee&&null!==e.grantee?t.grantee=e.grantee:t.grantee="",void 0!==e.authorization&&null!==e.authorization?t.authorization=a.Any.fromPartial(e.authorization):t.authorization=void 0,void 0!==e.expiration&&null!==e.expiration?t.expiration=e.expiration:t.expiration=void 0,t}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},56089:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.GrpcWebImpl=t.MsgRevokeDesc=t.MsgExecDesc=t.MsgGrantDesc=t.MsgDesc=t.MsgClientImpl=t.MsgRevokeResponse=t.MsgRevoke=t.MsgGrantResponse=t.MsgExec=t.MsgExecResponse=t.MsgGrant=t.protobufPackage=void 0;const o=n(r(24067)),i=r(66959),a=n(r(63967)),s=r(61059),u=r(62200),c=r(17063);t.protobufPackage="cosmos.authz.v1beta1";const d={granter:"",grantee:""};t.MsgGrant={encode:(e,t=a.default.Writer.create())=>(""!==e.granter&&t.uint32(10).string(e.granter),""!==e.grantee&&t.uint32(18).string(e.grantee),void 0!==e.grant&&s.Grant.encode(e.grant,t.uint32(26).fork()).ldelim(),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},d);for(;r.pos>>3){case 1:o.granter=r.string();break;case 2:o.grantee=r.string();break;case 3:o.grant=s.Grant.decode(r,r.uint32());break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},d);return void 0!==e.granter&&null!==e.granter?t.granter=String(e.granter):t.granter="",void 0!==e.grantee&&null!==e.grantee?t.grantee=String(e.grantee):t.grantee="",void 0!==e.grant&&null!==e.grant?t.grant=s.Grant.fromJSON(e.grant):t.grant=void 0,t},toJSON(e){const t={};return void 0!==e.granter&&(t.granter=e.granter),void 0!==e.grantee&&(t.grantee=e.grantee),void 0!==e.grant&&(t.grant=e.grant?s.Grant.toJSON(e.grant):void 0),t},fromPartial(e){const t=Object.assign({},d);return void 0!==e.granter&&null!==e.granter?t.granter=e.granter:t.granter="",void 0!==e.grantee&&null!==e.grantee?t.grantee=e.grantee:t.grantee="",void 0!==e.grant&&null!==e.grant?t.grant=s.Grant.fromPartial(e.grant):t.grant=void 0,t}};const l={};t.MsgExecResponse={encode(e,t=a.default.Writer.create()){for(const r of e.results)t.uint32(10).bytes(r);return t},decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},l);for(o.results=[];r.pos>>3==1?o.results.push(r.bytes()):r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},l);if(t.results=[],void 0!==e.results&&null!==e.results)for(const r of e.results)t.results.push(b(r));return t},toJSON(e){const t={};return e.results?t.results=e.results.map((e=>function(e){const t=[];for(const r of e)t.push(String.fromCharCode(r));return y(t.join(""))}(void 0!==e?e:new Uint8Array))):t.results=[],t},fromPartial(e){const t=Object.assign({},l);if(t.results=[],void 0!==e.results&&null!==e.results)for(const r of e.results)t.results.push(r);return t}};const f={grantee:""};t.MsgExec={encode(e,t=a.default.Writer.create()){""!==e.grantee&&t.uint32(10).string(e.grantee);for(const r of e.msgs)c.Any.encode(r,t.uint32(18).fork()).ldelim();return t},decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},f);for(o.msgs=[];r.pos>>3){case 1:o.grantee=r.string();break;case 2:o.msgs.push(c.Any.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},f);if(t.msgs=[],void 0!==e.grantee&&null!==e.grantee?t.grantee=String(e.grantee):t.grantee="",void 0!==e.msgs&&null!==e.msgs)for(const r of e.msgs)t.msgs.push(c.Any.fromJSON(r));return t},toJSON(e){const t={};return void 0!==e.grantee&&(t.grantee=e.grantee),e.msgs?t.msgs=e.msgs.map((e=>e?c.Any.toJSON(e):void 0)):t.msgs=[],t},fromPartial(e){const t=Object.assign({},f);if(t.msgs=[],void 0!==e.grantee&&null!==e.grantee?t.grantee=e.grantee:t.grantee="",void 0!==e.msgs&&null!==e.msgs)for(const r of e.msgs)t.msgs.push(c.Any.fromPartial(r));return t}};const h={};t.MsgGrantResponse={encode:(e,t=a.default.Writer.create())=>t,decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},h);for(;r.posObject.assign({},h),toJSON:e=>({}),fromPartial:e=>Object.assign({},h)};const p={granter:"",grantee:"",msgTypeUrl:""};t.MsgRevoke={encode:(e,t=a.default.Writer.create())=>(""!==e.granter&&t.uint32(10).string(e.granter),""!==e.grantee&&t.uint32(18).string(e.grantee),""!==e.msgTypeUrl&&t.uint32(26).string(e.msgTypeUrl),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},p);for(;r.pos>>3){case 1:o.granter=r.string();break;case 2:o.grantee=r.string();break;case 3:o.msgTypeUrl=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},p);return void 0!==e.granter&&null!==e.granter?t.granter=String(e.granter):t.granter="",void 0!==e.grantee&&null!==e.grantee?t.grantee=String(e.grantee):t.grantee="",void 0!==e.msgTypeUrl&&null!==e.msgTypeUrl?t.msgTypeUrl=String(e.msgTypeUrl):t.msgTypeUrl="",t},toJSON(e){const t={};return void 0!==e.granter&&(t.granter=e.granter),void 0!==e.grantee&&(t.grantee=e.grantee),void 0!==e.msgTypeUrl&&(t.msgTypeUrl=e.msgTypeUrl),t},fromPartial(e){const t=Object.assign({},p);return void 0!==e.granter&&null!==e.granter?t.granter=e.granter:t.granter="",void 0!==e.grantee&&null!==e.grantee?t.grantee=e.grantee:t.grantee="",void 0!==e.msgTypeUrl&&null!==e.msgTypeUrl?t.msgTypeUrl=e.msgTypeUrl:t.msgTypeUrl="",t}};const m={};t.MsgRevokeResponse={encode:(e,t=a.default.Writer.create())=>t,decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},m);for(;r.posObject.assign({},m),toJSON:e=>({}),fromPartial:e=>Object.assign({},m)},t.MsgClientImpl=class{constructor(e){this.rpc=e,this.Grant=this.Grant.bind(this),this.Exec=this.Exec.bind(this),this.Revoke=this.Revoke.bind(this)}Grant(e,r){return this.rpc.unary(t.MsgGrantDesc,t.MsgGrant.fromPartial(e),r)}Exec(e,r){return this.rpc.unary(t.MsgExecDesc,t.MsgExec.fromPartial(e),r)}Revoke(e,r){return this.rpc.unary(t.MsgRevokeDesc,t.MsgRevoke.fromPartial(e),r)}},t.MsgDesc={serviceName:"cosmos.authz.v1beta1.Msg"},t.MsgGrantDesc={methodName:"Grant",service:t.MsgDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.MsgGrant.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.MsgGrantResponse.decode(e)),{toObject(){return this}})}},t.MsgExecDesc={methodName:"Exec",service:t.MsgDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.MsgExec.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.MsgExecResponse.decode(e)),{toObject(){return this}})}},t.MsgRevokeDesc={methodName:"Revoke",service:t.MsgDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.MsgRevoke.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.MsgRevokeResponse.decode(e)),{toObject(){return this}})}},t.GrpcWebImpl=class{constructor(e,t){this.host=e,this.options=t}unary(e,t,r){var n;const o=Object.assign(Object.assign({},t),e.requestType),a=r&&this.options.metadata?new u.BrowserHeaders(Object.assign(Object.assign({},null===(n=this.options)||void 0===n?void 0:n.metadata.headersMap),null==r?void 0:r.headersMap)):r||this.options.metadata;return new Promise(((t,r)=>{i.grpc.unary(e,{request:o,host:this.host,metadata:a,transport:this.options.transport,debug:this.options.debug,onEnd:function(e){if(e.status===i.grpc.Code.OK)t(e.message);else{const t=new Error(e.statusMessage);t.code=e.status,t.metadata=e.trailers,r(t)}}})}))}};var g=(()=>{if(void 0!==g)return g;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==r.g)return r.g;throw"Unable to locate global object"})();const v=g.atob||(e=>g.Buffer.from(e,"base64").toString("binary"));function b(e){const t=v(e),r=new Uint8Array(t.length);for(let e=0;eg.Buffer.from(e,"binary").toString("base64"));a.default.util.Long!==o.default&&(a.default.util.Long=o.default,a.default.configure())},23541:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.SendAuthorization=t.protobufPackage=void 0;const o=n(r(24067)),i=n(r(63967)),a=r(49545);t.protobufPackage="cosmos.bank.v1beta1";const s={};t.SendAuthorization={encode(e,t=i.default.Writer.create()){for(const r of e.spendLimit)a.Coin.encode(r,t.uint32(10).fork()).ldelim();return t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},s);for(o.spendLimit=[];r.pos>>3==1?o.spendLimit.push(a.Coin.decode(r,r.uint32())):r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},s);if(t.spendLimit=[],void 0!==e.spendLimit&&null!==e.spendLimit)for(const r of e.spendLimit)t.spendLimit.push(a.Coin.fromJSON(r));return t},toJSON(e){const t={};return e.spendLimit?t.spendLimit=e.spendLimit.map((e=>e?a.Coin.toJSON(e):void 0)):t.spendLimit=[],t},fromPartial(e){const t=Object.assign({},s);if(t.spendLimit=[],void 0!==e.spendLimit&&null!==e.spendLimit)for(const r of e.spendLimit)t.spendLimit.push(a.Coin.fromPartial(r));return t}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},60202:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Metadata=t.DenomUnit=t.Supply=t.Output=t.Input=t.SendEnabled=t.Params=t.protobufPackage=void 0;const o=n(r(24067)),i=n(r(63967)),a=r(49545);t.protobufPackage="cosmos.bank.v1beta1";const s={defaultSendEnabled:!1};t.Params={encode(e,r=i.default.Writer.create()){for(const n of e.sendEnabled)t.SendEnabled.encode(n,r.uint32(10).fork()).ldelim();return!0===e.defaultSendEnabled&&r.uint32(16).bool(e.defaultSendEnabled),r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},s);for(a.sendEnabled=[];n.pos>>3){case 1:a.sendEnabled.push(t.SendEnabled.decode(n,n.uint32()));break;case 2:a.defaultSendEnabled=n.bool();break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},s);if(r.sendEnabled=[],void 0!==e.sendEnabled&&null!==e.sendEnabled)for(const n of e.sendEnabled)r.sendEnabled.push(t.SendEnabled.fromJSON(n));return void 0!==e.defaultSendEnabled&&null!==e.defaultSendEnabled?r.defaultSendEnabled=Boolean(e.defaultSendEnabled):r.defaultSendEnabled=!1,r},toJSON(e){const r={};return e.sendEnabled?r.sendEnabled=e.sendEnabled.map((e=>e?t.SendEnabled.toJSON(e):void 0)):r.sendEnabled=[],void 0!==e.defaultSendEnabled&&(r.defaultSendEnabled=e.defaultSendEnabled),r},fromPartial(e){const r=Object.assign({},s);if(r.sendEnabled=[],void 0!==e.sendEnabled&&null!==e.sendEnabled)for(const n of e.sendEnabled)r.sendEnabled.push(t.SendEnabled.fromPartial(n));return void 0!==e.defaultSendEnabled&&null!==e.defaultSendEnabled?r.defaultSendEnabled=e.defaultSendEnabled:r.defaultSendEnabled=!1,r}};const u={denom:"",enabled:!1};t.SendEnabled={encode:(e,t=i.default.Writer.create())=>(""!==e.denom&&t.uint32(10).string(e.denom),!0===e.enabled&&t.uint32(16).bool(e.enabled),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},u);for(;r.pos>>3){case 1:o.denom=r.string();break;case 2:o.enabled=r.bool();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},u);return void 0!==e.denom&&null!==e.denom?t.denom=String(e.denom):t.denom="",void 0!==e.enabled&&null!==e.enabled?t.enabled=Boolean(e.enabled):t.enabled=!1,t},toJSON(e){const t={};return void 0!==e.denom&&(t.denom=e.denom),void 0!==e.enabled&&(t.enabled=e.enabled),t},fromPartial(e){const t=Object.assign({},u);return void 0!==e.denom&&null!==e.denom?t.denom=e.denom:t.denom="",void 0!==e.enabled&&null!==e.enabled?t.enabled=e.enabled:t.enabled=!1,t}};const c={address:""};t.Input={encode(e,t=i.default.Writer.create()){""!==e.address&&t.uint32(10).string(e.address);for(const r of e.coins)a.Coin.encode(r,t.uint32(18).fork()).ldelim();return t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},c);for(o.coins=[];r.pos>>3){case 1:o.address=r.string();break;case 2:o.coins.push(a.Coin.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},c);if(t.coins=[],void 0!==e.address&&null!==e.address?t.address=String(e.address):t.address="",void 0!==e.coins&&null!==e.coins)for(const r of e.coins)t.coins.push(a.Coin.fromJSON(r));return t},toJSON(e){const t={};return void 0!==e.address&&(t.address=e.address),e.coins?t.coins=e.coins.map((e=>e?a.Coin.toJSON(e):void 0)):t.coins=[],t},fromPartial(e){const t=Object.assign({},c);if(t.coins=[],void 0!==e.address&&null!==e.address?t.address=e.address:t.address="",void 0!==e.coins&&null!==e.coins)for(const r of e.coins)t.coins.push(a.Coin.fromPartial(r));return t}};const d={address:""};t.Output={encode(e,t=i.default.Writer.create()){""!==e.address&&t.uint32(10).string(e.address);for(const r of e.coins)a.Coin.encode(r,t.uint32(18).fork()).ldelim();return t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},d);for(o.coins=[];r.pos>>3){case 1:o.address=r.string();break;case 2:o.coins.push(a.Coin.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},d);if(t.coins=[],void 0!==e.address&&null!==e.address?t.address=String(e.address):t.address="",void 0!==e.coins&&null!==e.coins)for(const r of e.coins)t.coins.push(a.Coin.fromJSON(r));return t},toJSON(e){const t={};return void 0!==e.address&&(t.address=e.address),e.coins?t.coins=e.coins.map((e=>e?a.Coin.toJSON(e):void 0)):t.coins=[],t},fromPartial(e){const t=Object.assign({},d);if(t.coins=[],void 0!==e.address&&null!==e.address?t.address=e.address:t.address="",void 0!==e.coins&&null!==e.coins)for(const r of e.coins)t.coins.push(a.Coin.fromPartial(r));return t}};const l={};t.Supply={encode(e,t=i.default.Writer.create()){for(const r of e.total)a.Coin.encode(r,t.uint32(10).fork()).ldelim();return t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},l);for(o.total=[];r.pos>>3==1?o.total.push(a.Coin.decode(r,r.uint32())):r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},l);if(t.total=[],void 0!==e.total&&null!==e.total)for(const r of e.total)t.total.push(a.Coin.fromJSON(r));return t},toJSON(e){const t={};return e.total?t.total=e.total.map((e=>e?a.Coin.toJSON(e):void 0)):t.total=[],t},fromPartial(e){const t=Object.assign({},l);if(t.total=[],void 0!==e.total&&null!==e.total)for(const r of e.total)t.total.push(a.Coin.fromPartial(r));return t}};const f={denom:"",exponent:0,aliases:""};t.DenomUnit={encode(e,t=i.default.Writer.create()){""!==e.denom&&t.uint32(10).string(e.denom),0!==e.exponent&&t.uint32(16).uint32(e.exponent);for(const r of e.aliases)t.uint32(26).string(r);return t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},f);for(o.aliases=[];r.pos>>3){case 1:o.denom=r.string();break;case 2:o.exponent=r.uint32();break;case 3:o.aliases.push(r.string());break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},f);if(t.aliases=[],void 0!==e.denom&&null!==e.denom?t.denom=String(e.denom):t.denom="",void 0!==e.exponent&&null!==e.exponent?t.exponent=Number(e.exponent):t.exponent=0,void 0!==e.aliases&&null!==e.aliases)for(const r of e.aliases)t.aliases.push(String(r));return t},toJSON(e){const t={};return void 0!==e.denom&&(t.denom=e.denom),void 0!==e.exponent&&(t.exponent=e.exponent),e.aliases?t.aliases=e.aliases.map((e=>e)):t.aliases=[],t},fromPartial(e){const t=Object.assign({},f);if(t.aliases=[],void 0!==e.denom&&null!==e.denom?t.denom=e.denom:t.denom="",void 0!==e.exponent&&null!==e.exponent?t.exponent=e.exponent:t.exponent=0,void 0!==e.aliases&&null!==e.aliases)for(const r of e.aliases)t.aliases.push(r);return t}};const h={description:"",base:"",display:"",name:"",symbol:""};t.Metadata={encode(e,r=i.default.Writer.create()){""!==e.description&&r.uint32(10).string(e.description);for(const n of e.denomUnits)t.DenomUnit.encode(n,r.uint32(18).fork()).ldelim();return""!==e.base&&r.uint32(26).string(e.base),""!==e.display&&r.uint32(34).string(e.display),""!==e.name&&r.uint32(42).string(e.name),""!==e.symbol&&r.uint32(50).string(e.symbol),r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},h);for(a.denomUnits=[];n.pos>>3){case 1:a.description=n.string();break;case 2:a.denomUnits.push(t.DenomUnit.decode(n,n.uint32()));break;case 3:a.base=n.string();break;case 4:a.display=n.string();break;case 5:a.name=n.string();break;case 6:a.symbol=n.string();break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},h);if(r.denomUnits=[],void 0!==e.description&&null!==e.description?r.description=String(e.description):r.description="",void 0!==e.denomUnits&&null!==e.denomUnits)for(const n of e.denomUnits)r.denomUnits.push(t.DenomUnit.fromJSON(n));return void 0!==e.base&&null!==e.base?r.base=String(e.base):r.base="",void 0!==e.display&&null!==e.display?r.display=String(e.display):r.display="",void 0!==e.name&&null!==e.name?r.name=String(e.name):r.name="",void 0!==e.symbol&&null!==e.symbol?r.symbol=String(e.symbol):r.symbol="",r},toJSON(e){const r={};return void 0!==e.description&&(r.description=e.description),e.denomUnits?r.denomUnits=e.denomUnits.map((e=>e?t.DenomUnit.toJSON(e):void 0)):r.denomUnits=[],void 0!==e.base&&(r.base=e.base),void 0!==e.display&&(r.display=e.display),void 0!==e.name&&(r.name=e.name),void 0!==e.symbol&&(r.symbol=e.symbol),r},fromPartial(e){const r=Object.assign({},h);if(r.denomUnits=[],void 0!==e.description&&null!==e.description?r.description=e.description:r.description="",void 0!==e.denomUnits&&null!==e.denomUnits)for(const n of e.denomUnits)r.denomUnits.push(t.DenomUnit.fromPartial(n));return void 0!==e.base&&null!==e.base?r.base=e.base:r.base="",void 0!==e.display&&null!==e.display?r.display=e.display:r.display="",void 0!==e.name&&null!==e.name?r.name=e.name:r.name="",void 0!==e.symbol&&null!==e.symbol?r.symbol=e.symbol:r.symbol="",r}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},79681:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.GrpcWebImpl=t.MsgMultiSendDesc=t.MsgSendDesc=t.MsgDesc=t.MsgClientImpl=t.MsgMultiSendResponse=t.MsgMultiSend=t.MsgSendResponse=t.MsgSend=t.protobufPackage=void 0;const o=n(r(24067)),i=r(66959),a=n(r(63967)),s=r(62200),u=r(49545),c=r(60202);t.protobufPackage="cosmos.bank.v1beta1";const d={fromAddress:"",toAddress:""};t.MsgSend={encode(e,t=a.default.Writer.create()){""!==e.fromAddress&&t.uint32(10).string(e.fromAddress),""!==e.toAddress&&t.uint32(18).string(e.toAddress);for(const r of e.amount)u.Coin.encode(r,t.uint32(26).fork()).ldelim();return t},decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},d);for(o.amount=[];r.pos>>3){case 1:o.fromAddress=r.string();break;case 2:o.toAddress=r.string();break;case 3:o.amount.push(u.Coin.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},d);if(t.amount=[],void 0!==e.fromAddress&&null!==e.fromAddress?t.fromAddress=String(e.fromAddress):t.fromAddress="",void 0!==e.toAddress&&null!==e.toAddress?t.toAddress=String(e.toAddress):t.toAddress="",void 0!==e.amount&&null!==e.amount)for(const r of e.amount)t.amount.push(u.Coin.fromJSON(r));return t},toJSON(e){const t={};return void 0!==e.fromAddress&&(t.fromAddress=e.fromAddress),void 0!==e.toAddress&&(t.toAddress=e.toAddress),e.amount?t.amount=e.amount.map((e=>e?u.Coin.toJSON(e):void 0)):t.amount=[],t},fromPartial(e){const t=Object.assign({},d);if(t.amount=[],void 0!==e.fromAddress&&null!==e.fromAddress?t.fromAddress=e.fromAddress:t.fromAddress="",void 0!==e.toAddress&&null!==e.toAddress?t.toAddress=e.toAddress:t.toAddress="",void 0!==e.amount&&null!==e.amount)for(const r of e.amount)t.amount.push(u.Coin.fromPartial(r));return t}};const l={};t.MsgSendResponse={encode:(e,t=a.default.Writer.create())=>t,decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},l);for(;r.posObject.assign({},l),toJSON:e=>({}),fromPartial:e=>Object.assign({},l)};const f={};t.MsgMultiSend={encode(e,t=a.default.Writer.create()){for(const r of e.inputs)c.Input.encode(r,t.uint32(10).fork()).ldelim();for(const r of e.outputs)c.Output.encode(r,t.uint32(18).fork()).ldelim();return t},decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},f);for(o.inputs=[],o.outputs=[];r.pos>>3){case 1:o.inputs.push(c.Input.decode(r,r.uint32()));break;case 2:o.outputs.push(c.Output.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},f);if(t.inputs=[],t.outputs=[],void 0!==e.inputs&&null!==e.inputs)for(const r of e.inputs)t.inputs.push(c.Input.fromJSON(r));if(void 0!==e.outputs&&null!==e.outputs)for(const r of e.outputs)t.outputs.push(c.Output.fromJSON(r));return t},toJSON(e){const t={};return e.inputs?t.inputs=e.inputs.map((e=>e?c.Input.toJSON(e):void 0)):t.inputs=[],e.outputs?t.outputs=e.outputs.map((e=>e?c.Output.toJSON(e):void 0)):t.outputs=[],t},fromPartial(e){const t=Object.assign({},f);if(t.inputs=[],t.outputs=[],void 0!==e.inputs&&null!==e.inputs)for(const r of e.inputs)t.inputs.push(c.Input.fromPartial(r));if(void 0!==e.outputs&&null!==e.outputs)for(const r of e.outputs)t.outputs.push(c.Output.fromPartial(r));return t}};const h={};t.MsgMultiSendResponse={encode:(e,t=a.default.Writer.create())=>t,decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},h);for(;r.posObject.assign({},h),toJSON:e=>({}),fromPartial:e=>Object.assign({},h)},t.MsgClientImpl=class{constructor(e){this.rpc=e,this.Send=this.Send.bind(this),this.MultiSend=this.MultiSend.bind(this)}Send(e,r){return this.rpc.unary(t.MsgSendDesc,t.MsgSend.fromPartial(e),r)}MultiSend(e,r){return this.rpc.unary(t.MsgMultiSendDesc,t.MsgMultiSend.fromPartial(e),r)}},t.MsgDesc={serviceName:"cosmos.bank.v1beta1.Msg"},t.MsgSendDesc={methodName:"Send",service:t.MsgDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.MsgSend.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.MsgSendResponse.decode(e)),{toObject(){return this}})}},t.MsgMultiSendDesc={methodName:"MultiSend",service:t.MsgDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.MsgMultiSend.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.MsgMultiSendResponse.decode(e)),{toObject(){return this}})}},t.GrpcWebImpl=class{constructor(e,t){this.host=e,this.options=t}unary(e,t,r){var n;const o=Object.assign(Object.assign({},t),e.requestType),a=r&&this.options.metadata?new s.BrowserHeaders(Object.assign(Object.assign({},null===(n=this.options)||void 0===n?void 0:n.metadata.headersMap),null==r?void 0:r.headersMap)):r||this.options.metadata;return new Promise(((t,r)=>{i.grpc.unary(e,{request:o,host:this.host,metadata:a,transport:this.options.transport,debug:this.options.debug,onEnd:function(e){if(e.status===i.grpc.Code.OK)t(e.message);else{const t=new Error(e.statusMessage);t.code=e.status,t.metadata=e.trailers,r(t)}}})}))}},a.default.util.Long!==o.default&&(a.default.util.Long=o.default,a.default.configure())},89412:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.SearchTxsResult=t.TxMsgData=t.MsgData=t.SimulationResponse=t.Result=t.GasInfo=t.Attribute=t.StringEvent=t.ABCIMessageLog=t.TxResponse=t.protobufPackage=void 0;const o=n(r(24067)),i=n(r(63967)),a=r(17063),s=r(54305);t.protobufPackage="cosmos.base.abci.v1beta1";const u={height:o.default.ZERO,txhash:"",codespace:"",code:0,data:"",rawLog:"",info:"",gasWanted:o.default.ZERO,gasUsed:o.default.ZERO,timestamp:""};t.TxResponse={encode(e,r=i.default.Writer.create()){e.height.isZero()||r.uint32(8).int64(e.height),""!==e.txhash&&r.uint32(18).string(e.txhash),""!==e.codespace&&r.uint32(26).string(e.codespace),0!==e.code&&r.uint32(32).uint32(e.code),""!==e.data&&r.uint32(42).string(e.data),""!==e.rawLog&&r.uint32(50).string(e.rawLog);for(const n of e.logs)t.ABCIMessageLog.encode(n,r.uint32(58).fork()).ldelim();""!==e.info&&r.uint32(66).string(e.info),e.gasWanted.isZero()||r.uint32(72).int64(e.gasWanted),e.gasUsed.isZero()||r.uint32(80).int64(e.gasUsed),void 0!==e.tx&&a.Any.encode(e.tx,r.uint32(90).fork()).ldelim(),""!==e.timestamp&&r.uint32(98).string(e.timestamp);for(const t of e.events)s.Event.encode(t,r.uint32(106).fork()).ldelim();return r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const c=Object.assign({},u);for(c.logs=[],c.events=[];n.pos>>3){case 1:c.height=n.int64();break;case 2:c.txhash=n.string();break;case 3:c.codespace=n.string();break;case 4:c.code=n.uint32();break;case 5:c.data=n.string();break;case 6:c.rawLog=n.string();break;case 7:c.logs.push(t.ABCIMessageLog.decode(n,n.uint32()));break;case 8:c.info=n.string();break;case 9:c.gasWanted=n.int64();break;case 10:c.gasUsed=n.int64();break;case 11:c.tx=a.Any.decode(n,n.uint32());break;case 12:c.timestamp=n.string();break;case 13:c.events.push(s.Event.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return c},fromJSON(e){const r=Object.assign({},u);if(r.logs=[],r.events=[],void 0!==e.height&&null!==e.height?r.height=o.default.fromString(e.height):r.height=o.default.ZERO,void 0!==e.txhash&&null!==e.txhash?r.txhash=String(e.txhash):r.txhash="",void 0!==e.codespace&&null!==e.codespace?r.codespace=String(e.codespace):r.codespace="",void 0!==e.code&&null!==e.code?r.code=Number(e.code):r.code=0,void 0!==e.data&&null!==e.data?r.data=String(e.data):r.data="",void 0!==e.rawLog&&null!==e.rawLog?r.rawLog=String(e.rawLog):r.rawLog="",void 0!==e.logs&&null!==e.logs)for(const n of e.logs)r.logs.push(t.ABCIMessageLog.fromJSON(n));if(void 0!==e.info&&null!==e.info?r.info=String(e.info):r.info="",void 0!==e.gasWanted&&null!==e.gasWanted?r.gasWanted=o.default.fromString(e.gasWanted):r.gasWanted=o.default.ZERO,void 0!==e.gasUsed&&null!==e.gasUsed?r.gasUsed=o.default.fromString(e.gasUsed):r.gasUsed=o.default.ZERO,void 0!==e.tx&&null!==e.tx?r.tx=a.Any.fromJSON(e.tx):r.tx=void 0,void 0!==e.timestamp&&null!==e.timestamp?r.timestamp=String(e.timestamp):r.timestamp="",void 0!==e.events&&null!==e.events)for(const t of e.events)r.events.push(s.Event.fromJSON(t));return r},toJSON(e){const r={};return void 0!==e.height&&(r.height=(e.height||o.default.ZERO).toString()),void 0!==e.txhash&&(r.txhash=e.txhash),void 0!==e.codespace&&(r.codespace=e.codespace),void 0!==e.code&&(r.code=e.code),void 0!==e.data&&(r.data=e.data),void 0!==e.rawLog&&(r.rawLog=e.rawLog),e.logs?r.logs=e.logs.map((e=>e?t.ABCIMessageLog.toJSON(e):void 0)):r.logs=[],void 0!==e.info&&(r.info=e.info),void 0!==e.gasWanted&&(r.gasWanted=(e.gasWanted||o.default.ZERO).toString()),void 0!==e.gasUsed&&(r.gasUsed=(e.gasUsed||o.default.ZERO).toString()),void 0!==e.tx&&(r.tx=e.tx?a.Any.toJSON(e.tx):void 0),void 0!==e.timestamp&&(r.timestamp=e.timestamp),e.events?r.events=e.events.map((e=>e?s.Event.toJSON(e):void 0)):r.events=[],r},fromPartial(e){const r=Object.assign({},u);if(r.logs=[],r.events=[],void 0!==e.height&&null!==e.height?r.height=e.height:r.height=o.default.ZERO,void 0!==e.txhash&&null!==e.txhash?r.txhash=e.txhash:r.txhash="",void 0!==e.codespace&&null!==e.codespace?r.codespace=e.codespace:r.codespace="",void 0!==e.code&&null!==e.code?r.code=e.code:r.code=0,void 0!==e.data&&null!==e.data?r.data=e.data:r.data="",void 0!==e.rawLog&&null!==e.rawLog?r.rawLog=e.rawLog:r.rawLog="",void 0!==e.logs&&null!==e.logs)for(const n of e.logs)r.logs.push(t.ABCIMessageLog.fromPartial(n));if(void 0!==e.info&&null!==e.info?r.info=e.info:r.info="",void 0!==e.gasWanted&&null!==e.gasWanted?r.gasWanted=e.gasWanted:r.gasWanted=o.default.ZERO,void 0!==e.gasUsed&&null!==e.gasUsed?r.gasUsed=e.gasUsed:r.gasUsed=o.default.ZERO,void 0!==e.tx&&null!==e.tx?r.tx=a.Any.fromPartial(e.tx):r.tx=void 0,void 0!==e.timestamp&&null!==e.timestamp?r.timestamp=e.timestamp:r.timestamp="",void 0!==e.events&&null!==e.events)for(const t of e.events)r.events.push(s.Event.fromPartial(t));return r}};const c={msgIndex:0,log:""};t.ABCIMessageLog={encode(e,r=i.default.Writer.create()){0!==e.msgIndex&&r.uint32(8).uint32(e.msgIndex),""!==e.log&&r.uint32(18).string(e.log);for(const n of e.events)t.StringEvent.encode(n,r.uint32(26).fork()).ldelim();return r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},c);for(a.events=[];n.pos>>3){case 1:a.msgIndex=n.uint32();break;case 2:a.log=n.string();break;case 3:a.events.push(t.StringEvent.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},c);if(r.events=[],void 0!==e.msgIndex&&null!==e.msgIndex?r.msgIndex=Number(e.msgIndex):r.msgIndex=0,void 0!==e.log&&null!==e.log?r.log=String(e.log):r.log="",void 0!==e.events&&null!==e.events)for(const n of e.events)r.events.push(t.StringEvent.fromJSON(n));return r},toJSON(e){const r={};return void 0!==e.msgIndex&&(r.msgIndex=e.msgIndex),void 0!==e.log&&(r.log=e.log),e.events?r.events=e.events.map((e=>e?t.StringEvent.toJSON(e):void 0)):r.events=[],r},fromPartial(e){const r=Object.assign({},c);if(r.events=[],void 0!==e.msgIndex&&null!==e.msgIndex?r.msgIndex=e.msgIndex:r.msgIndex=0,void 0!==e.log&&null!==e.log?r.log=e.log:r.log="",void 0!==e.events&&null!==e.events)for(const n of e.events)r.events.push(t.StringEvent.fromPartial(n));return r}};const d={type:""};t.StringEvent={encode(e,r=i.default.Writer.create()){""!==e.type&&r.uint32(10).string(e.type);for(const n of e.attributes)t.Attribute.encode(n,r.uint32(18).fork()).ldelim();return r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},d);for(a.attributes=[];n.pos>>3){case 1:a.type=n.string();break;case 2:a.attributes.push(t.Attribute.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},d);if(r.attributes=[],void 0!==e.type&&null!==e.type?r.type=String(e.type):r.type="",void 0!==e.attributes&&null!==e.attributes)for(const n of e.attributes)r.attributes.push(t.Attribute.fromJSON(n));return r},toJSON(e){const r={};return void 0!==e.type&&(r.type=e.type),e.attributes?r.attributes=e.attributes.map((e=>e?t.Attribute.toJSON(e):void 0)):r.attributes=[],r},fromPartial(e){const r=Object.assign({},d);if(r.attributes=[],void 0!==e.type&&null!==e.type?r.type=e.type:r.type="",void 0!==e.attributes&&null!==e.attributes)for(const n of e.attributes)r.attributes.push(t.Attribute.fromPartial(n));return r}};const l={key:"",value:""};t.Attribute={encode:(e,t=i.default.Writer.create())=>(""!==e.key&&t.uint32(10).string(e.key),""!==e.value&&t.uint32(18).string(e.value),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},l);for(;r.pos>>3){case 1:o.key=r.string();break;case 2:o.value=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},l);return void 0!==e.key&&null!==e.key?t.key=String(e.key):t.key="",void 0!==e.value&&null!==e.value?t.value=String(e.value):t.value="",t},toJSON(e){const t={};return void 0!==e.key&&(t.key=e.key),void 0!==e.value&&(t.value=e.value),t},fromPartial(e){const t=Object.assign({},l);return void 0!==e.key&&null!==e.key?t.key=e.key:t.key="",void 0!==e.value&&null!==e.value?t.value=e.value:t.value="",t}};const f={gasWanted:o.default.UZERO,gasUsed:o.default.UZERO};t.GasInfo={encode:(e,t=i.default.Writer.create())=>(e.gasWanted.isZero()||t.uint32(8).uint64(e.gasWanted),e.gasUsed.isZero()||t.uint32(16).uint64(e.gasUsed),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},f);for(;r.pos>>3){case 1:o.gasWanted=r.uint64();break;case 2:o.gasUsed=r.uint64();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},f);return void 0!==e.gasWanted&&null!==e.gasWanted?t.gasWanted=o.default.fromString(e.gasWanted):t.gasWanted=o.default.UZERO,void 0!==e.gasUsed&&null!==e.gasUsed?t.gasUsed=o.default.fromString(e.gasUsed):t.gasUsed=o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.gasWanted&&(t.gasWanted=(e.gasWanted||o.default.UZERO).toString()),void 0!==e.gasUsed&&(t.gasUsed=(e.gasUsed||o.default.UZERO).toString()),t},fromPartial(e){const t=Object.assign({},f);return void 0!==e.gasWanted&&null!==e.gasWanted?t.gasWanted=e.gasWanted:t.gasWanted=o.default.UZERO,void 0!==e.gasUsed&&null!==e.gasUsed?t.gasUsed=e.gasUsed:t.gasUsed=o.default.UZERO,t}};const h={log:""};t.Result={encode(e,t=i.default.Writer.create()){0!==e.data.length&&t.uint32(10).bytes(e.data),""!==e.log&&t.uint32(18).string(e.log);for(const r of e.events)s.Event.encode(r,t.uint32(26).fork()).ldelim();return t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},h);for(o.events=[],o.data=new Uint8Array;r.pos>>3){case 1:o.data=r.bytes();break;case 2:o.log=r.string();break;case 3:o.events.push(s.Event.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},h);if(t.events=[],t.data=new Uint8Array,void 0!==e.data&&null!==e.data&&(t.data=w(e.data)),void 0!==e.log&&null!==e.log?t.log=String(e.log):t.log="",void 0!==e.events&&null!==e.events)for(const r of e.events)t.events.push(s.Event.fromJSON(r));return t},toJSON(e){const t={};return void 0!==e.data&&(t.data=S(void 0!==e.data?e.data:new Uint8Array)),void 0!==e.log&&(t.log=e.log),e.events?t.events=e.events.map((e=>e?s.Event.toJSON(e):void 0)):t.events=[],t},fromPartial(e){const t=Object.assign({},h);if(t.events=[],void 0!==e.data&&null!==e.data?t.data=e.data:t.data=new Uint8Array,void 0!==e.log&&null!==e.log?t.log=e.log:t.log="",void 0!==e.events&&null!==e.events)for(const r of e.events)t.events.push(s.Event.fromPartial(r));return t}};const p={};t.SimulationResponse={encode:(e,r=i.default.Writer.create())=>(void 0!==e.gasInfo&&t.GasInfo.encode(e.gasInfo,r.uint32(10).fork()).ldelim(),void 0!==e.result&&t.Result.encode(e.result,r.uint32(18).fork()).ldelim(),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},p);for(;n.pos>>3){case 1:a.gasInfo=t.GasInfo.decode(n,n.uint32());break;case 2:a.result=t.Result.decode(n,n.uint32());break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},p);return void 0!==e.gasInfo&&null!==e.gasInfo?r.gasInfo=t.GasInfo.fromJSON(e.gasInfo):r.gasInfo=void 0,void 0!==e.result&&null!==e.result?r.result=t.Result.fromJSON(e.result):r.result=void 0,r},toJSON(e){const r={};return void 0!==e.gasInfo&&(r.gasInfo=e.gasInfo?t.GasInfo.toJSON(e.gasInfo):void 0),void 0!==e.result&&(r.result=e.result?t.Result.toJSON(e.result):void 0),r},fromPartial(e){const r=Object.assign({},p);return void 0!==e.gasInfo&&null!==e.gasInfo?r.gasInfo=t.GasInfo.fromPartial(e.gasInfo):r.gasInfo=void 0,void 0!==e.result&&null!==e.result?r.result=t.Result.fromPartial(e.result):r.result=void 0,r}};const m={msgType:""};t.MsgData={encode:(e,t=i.default.Writer.create())=>(""!==e.msgType&&t.uint32(10).string(e.msgType),0!==e.data.length&&t.uint32(18).bytes(e.data),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},m);for(o.data=new Uint8Array;r.pos>>3){case 1:o.msgType=r.string();break;case 2:o.data=r.bytes();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},m);return t.data=new Uint8Array,void 0!==e.msgType&&null!==e.msgType?t.msgType=String(e.msgType):t.msgType="",void 0!==e.data&&null!==e.data&&(t.data=w(e.data)),t},toJSON(e){const t={};return void 0!==e.msgType&&(t.msgType=e.msgType),void 0!==e.data&&(t.data=S(void 0!==e.data?e.data:new Uint8Array)),t},fromPartial(e){const t=Object.assign({},m);return void 0!==e.msgType&&null!==e.msgType?t.msgType=e.msgType:t.msgType="",void 0!==e.data&&null!==e.data?t.data=e.data:t.data=new Uint8Array,t}};const g={};t.TxMsgData={encode(e,r=i.default.Writer.create()){for(const n of e.data)t.MsgData.encode(n,r.uint32(10).fork()).ldelim();return r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},g);for(a.data=[];n.pos>>3==1?a.data.push(t.MsgData.decode(n,n.uint32())):n.skipType(7&e)}return a},fromJSON(e){const r=Object.assign({},g);if(r.data=[],void 0!==e.data&&null!==e.data)for(const n of e.data)r.data.push(t.MsgData.fromJSON(n));return r},toJSON(e){const r={};return e.data?r.data=e.data.map((e=>e?t.MsgData.toJSON(e):void 0)):r.data=[],r},fromPartial(e){const r=Object.assign({},g);if(r.data=[],void 0!==e.data&&null!==e.data)for(const n of e.data)r.data.push(t.MsgData.fromPartial(n));return r}};const v={totalCount:o.default.UZERO,count:o.default.UZERO,pageNumber:o.default.UZERO,pageTotal:o.default.UZERO,limit:o.default.UZERO};t.SearchTxsResult={encode(e,r=i.default.Writer.create()){e.totalCount.isZero()||r.uint32(8).uint64(e.totalCount),e.count.isZero()||r.uint32(16).uint64(e.count),e.pageNumber.isZero()||r.uint32(24).uint64(e.pageNumber),e.pageTotal.isZero()||r.uint32(32).uint64(e.pageTotal),e.limit.isZero()||r.uint32(40).uint64(e.limit);for(const n of e.txs)t.TxResponse.encode(n,r.uint32(50).fork()).ldelim();return r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},v);for(a.txs=[];n.pos>>3){case 1:a.totalCount=n.uint64();break;case 2:a.count=n.uint64();break;case 3:a.pageNumber=n.uint64();break;case 4:a.pageTotal=n.uint64();break;case 5:a.limit=n.uint64();break;case 6:a.txs.push(t.TxResponse.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},v);if(r.txs=[],void 0!==e.totalCount&&null!==e.totalCount?r.totalCount=o.default.fromString(e.totalCount):r.totalCount=o.default.UZERO,void 0!==e.count&&null!==e.count?r.count=o.default.fromString(e.count):r.count=o.default.UZERO,void 0!==e.pageNumber&&null!==e.pageNumber?r.pageNumber=o.default.fromString(e.pageNumber):r.pageNumber=o.default.UZERO,void 0!==e.pageTotal&&null!==e.pageTotal?r.pageTotal=o.default.fromString(e.pageTotal):r.pageTotal=o.default.UZERO,void 0!==e.limit&&null!==e.limit?r.limit=o.default.fromString(e.limit):r.limit=o.default.UZERO,void 0!==e.txs&&null!==e.txs)for(const n of e.txs)r.txs.push(t.TxResponse.fromJSON(n));return r},toJSON(e){const r={};return void 0!==e.totalCount&&(r.totalCount=(e.totalCount||o.default.UZERO).toString()),void 0!==e.count&&(r.count=(e.count||o.default.UZERO).toString()),void 0!==e.pageNumber&&(r.pageNumber=(e.pageNumber||o.default.UZERO).toString()),void 0!==e.pageTotal&&(r.pageTotal=(e.pageTotal||o.default.UZERO).toString()),void 0!==e.limit&&(r.limit=(e.limit||o.default.UZERO).toString()),e.txs?r.txs=e.txs.map((e=>e?t.TxResponse.toJSON(e):void 0)):r.txs=[],r},fromPartial(e){const r=Object.assign({},v);if(r.txs=[],void 0!==e.totalCount&&null!==e.totalCount?r.totalCount=e.totalCount:r.totalCount=o.default.UZERO,void 0!==e.count&&null!==e.count?r.count=e.count:r.count=o.default.UZERO,void 0!==e.pageNumber&&null!==e.pageNumber?r.pageNumber=e.pageNumber:r.pageNumber=o.default.UZERO,void 0!==e.pageTotal&&null!==e.pageTotal?r.pageTotal=e.pageTotal:r.pageTotal=o.default.UZERO,void 0!==e.limit&&null!==e.limit?r.limit=e.limit:r.limit=o.default.UZERO,void 0!==e.txs&&null!==e.txs)for(const n of e.txs)r.txs.push(t.TxResponse.fromPartial(n));return r}};var b=(()=>{if(void 0!==b)return b;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==r.g)return r.g;throw"Unable to locate global object"})();const y=b.atob||(e=>b.Buffer.from(e,"base64").toString("binary"));function w(e){const t=y(e),r=new Uint8Array(t.length);for(let e=0;eb.Buffer.from(e,"binary").toString("base64"));function S(e){const t=[];for(const r of e)t.push(String.fromCharCode(r));return _(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},49545:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.DecProto=t.IntProto=t.DecCoin=t.Coin=t.protobufPackage=void 0;const o=n(r(24067)),i=n(r(63967));t.protobufPackage="cosmos.base.v1beta1";const a={denom:"",amount:""};t.Coin={encode:(e,t=i.default.Writer.create())=>(""!==e.denom&&t.uint32(10).string(e.denom),""!==e.amount&&t.uint32(18).string(e.amount),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},a);for(;r.pos>>3){case 1:o.denom=r.string();break;case 2:o.amount=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},a);return void 0!==e.denom&&null!==e.denom?t.denom=String(e.denom):t.denom="",void 0!==e.amount&&null!==e.amount?t.amount=String(e.amount):t.amount="",t},toJSON(e){const t={};return void 0!==e.denom&&(t.denom=e.denom),void 0!==e.amount&&(t.amount=e.amount),t},fromPartial(e){const t=Object.assign({},a);return void 0!==e.denom&&null!==e.denom?t.denom=e.denom:t.denom="",void 0!==e.amount&&null!==e.amount?t.amount=e.amount:t.amount="",t}};const s={denom:"",amount:""};t.DecCoin={encode:(e,t=i.default.Writer.create())=>(""!==e.denom&&t.uint32(10).string(e.denom),""!==e.amount&&t.uint32(18).string(e.amount),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},s);for(;r.pos>>3){case 1:o.denom=r.string();break;case 2:o.amount=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},s);return void 0!==e.denom&&null!==e.denom?t.denom=String(e.denom):t.denom="",void 0!==e.amount&&null!==e.amount?t.amount=String(e.amount):t.amount="",t},toJSON(e){const t={};return void 0!==e.denom&&(t.denom=e.denom),void 0!==e.amount&&(t.amount=e.amount),t},fromPartial(e){const t=Object.assign({},s);return void 0!==e.denom&&null!==e.denom?t.denom=e.denom:t.denom="",void 0!==e.amount&&null!==e.amount?t.amount=e.amount:t.amount="",t}};const u={int:""};t.IntProto={encode:(e,t=i.default.Writer.create())=>(""!==e.int&&t.uint32(10).string(e.int),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},u);for(;r.pos>>3==1?o.int=r.string():r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},u);return void 0!==e.int&&null!==e.int?t.int=String(e.int):t.int="",t},toJSON(e){const t={};return void 0!==e.int&&(t.int=e.int),t},fromPartial(e){const t=Object.assign({},u);return void 0!==e.int&&null!==e.int?t.int=e.int:t.int="",t}};const c={dec:""};t.DecProto={encode:(e,t=i.default.Writer.create())=>(""!==e.dec&&t.uint32(10).string(e.dec),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},c);for(;r.pos>>3==1?o.dec=r.string():r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},c);return void 0!==e.dec&&null!==e.dec?t.dec=String(e.dec):t.dec="",t},toJSON(e){const t={};return void 0!==e.dec&&(t.dec=e.dec),t},fromPartial(e){const t=Object.assign({},c);return void 0!==e.dec&&null!==e.dec?t.dec=e.dec:t.dec="",t}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},21339:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.GrpcWebImpl=t.MsgVerifyInvariantDesc=t.MsgDesc=t.MsgClientImpl=t.MsgVerifyInvariantResponse=t.MsgVerifyInvariant=t.protobufPackage=void 0;const o=n(r(24067)),i=r(66959),a=n(r(63967)),s=r(62200);t.protobufPackage="cosmos.crisis.v1beta1";const u={sender:"",invariantModuleName:"",invariantRoute:""};t.MsgVerifyInvariant={encode:(e,t=a.default.Writer.create())=>(""!==e.sender&&t.uint32(10).string(e.sender),""!==e.invariantModuleName&&t.uint32(18).string(e.invariantModuleName),""!==e.invariantRoute&&t.uint32(26).string(e.invariantRoute),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},u);for(;r.pos>>3){case 1:o.sender=r.string();break;case 2:o.invariantModuleName=r.string();break;case 3:o.invariantRoute=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},u);return void 0!==e.sender&&null!==e.sender?t.sender=String(e.sender):t.sender="",void 0!==e.invariantModuleName&&null!==e.invariantModuleName?t.invariantModuleName=String(e.invariantModuleName):t.invariantModuleName="",void 0!==e.invariantRoute&&null!==e.invariantRoute?t.invariantRoute=String(e.invariantRoute):t.invariantRoute="",t},toJSON(e){const t={};return void 0!==e.sender&&(t.sender=e.sender),void 0!==e.invariantModuleName&&(t.invariantModuleName=e.invariantModuleName),void 0!==e.invariantRoute&&(t.invariantRoute=e.invariantRoute),t},fromPartial(e){const t=Object.assign({},u);return void 0!==e.sender&&null!==e.sender?t.sender=e.sender:t.sender="",void 0!==e.invariantModuleName&&null!==e.invariantModuleName?t.invariantModuleName=e.invariantModuleName:t.invariantModuleName="",void 0!==e.invariantRoute&&null!==e.invariantRoute?t.invariantRoute=e.invariantRoute:t.invariantRoute="",t}};const c={};t.MsgVerifyInvariantResponse={encode:(e,t=a.default.Writer.create())=>t,decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},c);for(;r.posObject.assign({},c),toJSON:e=>({}),fromPartial:e=>Object.assign({},c)},t.MsgClientImpl=class{constructor(e){this.rpc=e,this.VerifyInvariant=this.VerifyInvariant.bind(this)}VerifyInvariant(e,r){return this.rpc.unary(t.MsgVerifyInvariantDesc,t.MsgVerifyInvariant.fromPartial(e),r)}},t.MsgDesc={serviceName:"cosmos.crisis.v1beta1.Msg"},t.MsgVerifyInvariantDesc={methodName:"VerifyInvariant",service:t.MsgDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.MsgVerifyInvariant.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.MsgVerifyInvariantResponse.decode(e)),{toObject(){return this}})}},t.GrpcWebImpl=class{constructor(e,t){this.host=e,this.options=t}unary(e,t,r){var n;const o=Object.assign(Object.assign({},t),e.requestType),a=r&&this.options.metadata?new s.BrowserHeaders(Object.assign(Object.assign({},null===(n=this.options)||void 0===n?void 0:n.metadata.headersMap),null==r?void 0:r.headersMap)):r||this.options.metadata;return new Promise(((t,r)=>{i.grpc.unary(e,{request:o,host:this.host,metadata:a,transport:this.options.transport,debug:this.options.debug,onEnd:function(e){if(e.status===i.grpc.Code.OK)t(e.message);else{const t=new Error(e.statusMessage);t.code=e.status,t.metadata=e.trailers,r(t)}}})}))}},a.default.util.Long!==o.default&&(a.default.util.Long=o.default,a.default.configure())},2853:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.PrivKey=t.PubKey=t.protobufPackage=void 0;const o=n(r(24067)),i=n(r(63967));t.protobufPackage="cosmos.crypto.ed25519";const a={};t.PubKey={encode:(e,t=i.default.Writer.create())=>(0!==e.key.length&&t.uint32(10).bytes(e.key),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},a);for(o.key=new Uint8Array;r.pos>>3==1?o.key=r.bytes():r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},a);return t.key=new Uint8Array,void 0!==e.key&&null!==e.key&&(t.key=d(e.key)),t},toJSON(e){const t={};return void 0!==e.key&&(t.key=f(void 0!==e.key?e.key:new Uint8Array)),t},fromPartial(e){const t=Object.assign({},a);return void 0!==e.key&&null!==e.key?t.key=e.key:t.key=new Uint8Array,t}};const s={};t.PrivKey={encode:(e,t=i.default.Writer.create())=>(0!==e.key.length&&t.uint32(10).bytes(e.key),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},s);for(o.key=new Uint8Array;r.pos>>3==1?o.key=r.bytes():r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},s);return t.key=new Uint8Array,void 0!==e.key&&null!==e.key&&(t.key=d(e.key)),t},toJSON(e){const t={};return void 0!==e.key&&(t.key=f(void 0!==e.key?e.key:new Uint8Array)),t},fromPartial(e){const t=Object.assign({},s);return void 0!==e.key&&null!==e.key?t.key=e.key:t.key=new Uint8Array,t}};var u=(()=>{if(void 0!==u)return u;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==r.g)return r.g;throw"Unable to locate global object"})();const c=u.atob||(e=>u.Buffer.from(e,"base64").toString("binary"));function d(e){const t=c(e),r=new Uint8Array(t.length);for(let e=0;eu.Buffer.from(e,"binary").toString("base64"));function f(e){const t=[];for(const r of e)t.push(String.fromCharCode(r));return l(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},16494:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.LegacyAminoPubKey=t.protobufPackage=void 0;const o=n(r(24067)),i=n(r(63967)),a=r(17063);t.protobufPackage="cosmos.crypto.multisig";const s={threshold:0};t.LegacyAminoPubKey={encode(e,t=i.default.Writer.create()){0!==e.threshold&&t.uint32(8).uint32(e.threshold);for(const r of e.publicKeys)a.Any.encode(r,t.uint32(18).fork()).ldelim();return t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},s);for(o.publicKeys=[];r.pos>>3){case 1:o.threshold=r.uint32();break;case 2:o.publicKeys.push(a.Any.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},s);if(t.publicKeys=[],void 0!==e.threshold&&null!==e.threshold?t.threshold=Number(e.threshold):t.threshold=0,void 0!==e.publicKeys&&null!==e.publicKeys)for(const r of e.publicKeys)t.publicKeys.push(a.Any.fromJSON(r));return t},toJSON(e){const t={};return void 0!==e.threshold&&(t.threshold=e.threshold),e.publicKeys?t.publicKeys=e.publicKeys.map((e=>e?a.Any.toJSON(e):void 0)):t.publicKeys=[],t},fromPartial(e){const t=Object.assign({},s);if(t.publicKeys=[],void 0!==e.threshold&&null!==e.threshold?t.threshold=e.threshold:t.threshold=0,void 0!==e.publicKeys&&null!==e.publicKeys)for(const r of e.publicKeys)t.publicKeys.push(a.Any.fromPartial(r));return t}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},26921:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.CompactBitArray=t.MultiSignature=t.protobufPackage=void 0;const o=n(r(24067)),i=n(r(63967));t.protobufPackage="cosmos.crypto.multisig.v1beta1";const a={};t.MultiSignature={encode(e,t=i.default.Writer.create()){for(const r of e.signatures)t.uint32(10).bytes(r);return t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},a);for(o.signatures=[];r.pos>>3==1?o.signatures.push(r.bytes()):r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},a);if(t.signatures=[],void 0!==e.signatures&&null!==e.signatures)for(const r of e.signatures)t.signatures.push(d(r));return t},toJSON(e){const t={};return e.signatures?t.signatures=e.signatures.map((e=>f(void 0!==e?e:new Uint8Array))):t.signatures=[],t},fromPartial(e){const t=Object.assign({},a);if(t.signatures=[],void 0!==e.signatures&&null!==e.signatures)for(const r of e.signatures)t.signatures.push(r);return t}};const s={extraBitsStored:0};t.CompactBitArray={encode:(e,t=i.default.Writer.create())=>(0!==e.extraBitsStored&&t.uint32(8).uint32(e.extraBitsStored),0!==e.elems.length&&t.uint32(18).bytes(e.elems),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},s);for(o.elems=new Uint8Array;r.pos>>3){case 1:o.extraBitsStored=r.uint32();break;case 2:o.elems=r.bytes();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},s);return t.elems=new Uint8Array,void 0!==e.extraBitsStored&&null!==e.extraBitsStored?t.extraBitsStored=Number(e.extraBitsStored):t.extraBitsStored=0,void 0!==e.elems&&null!==e.elems&&(t.elems=d(e.elems)),t},toJSON(e){const t={};return void 0!==e.extraBitsStored&&(t.extraBitsStored=e.extraBitsStored),void 0!==e.elems&&(t.elems=f(void 0!==e.elems?e.elems:new Uint8Array)),t},fromPartial(e){const t=Object.assign({},s);return void 0!==e.extraBitsStored&&null!==e.extraBitsStored?t.extraBitsStored=e.extraBitsStored:t.extraBitsStored=0,void 0!==e.elems&&null!==e.elems?t.elems=e.elems:t.elems=new Uint8Array,t}};var u=(()=>{if(void 0!==u)return u;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==r.g)return r.g;throw"Unable to locate global object"})();const c=u.atob||(e=>u.Buffer.from(e,"base64").toString("binary"));function d(e){const t=c(e),r=new Uint8Array(t.length);for(let e=0;eu.Buffer.from(e,"binary").toString("base64"));function f(e){const t=[];for(const r of e)t.push(String.fromCharCode(r));return l(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},43857:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.PrivKey=t.PubKey=t.protobufPackage=void 0;const o=n(r(24067)),i=n(r(63967));t.protobufPackage="cosmos.crypto.secp256k1";const a={};t.PubKey={encode:(e,t=i.default.Writer.create())=>(0!==e.key.length&&t.uint32(10).bytes(e.key),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},a);for(o.key=new Uint8Array;r.pos>>3==1?o.key=r.bytes():r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},a);return t.key=new Uint8Array,void 0!==e.key&&null!==e.key&&(t.key=d(e.key)),t},toJSON(e){const t={};return void 0!==e.key&&(t.key=f(void 0!==e.key?e.key:new Uint8Array)),t},fromPartial(e){const t=Object.assign({},a);return void 0!==e.key&&null!==e.key?t.key=e.key:t.key=new Uint8Array,t}};const s={};t.PrivKey={encode:(e,t=i.default.Writer.create())=>(0!==e.key.length&&t.uint32(10).bytes(e.key),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},s);for(o.key=new Uint8Array;r.pos>>3==1?o.key=r.bytes():r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},s);return t.key=new Uint8Array,void 0!==e.key&&null!==e.key&&(t.key=d(e.key)),t},toJSON(e){const t={};return void 0!==e.key&&(t.key=f(void 0!==e.key?e.key:new Uint8Array)),t},fromPartial(e){const t=Object.assign({},s);return void 0!==e.key&&null!==e.key?t.key=e.key:t.key=new Uint8Array,t}};var u=(()=>{if(void 0!==u)return u;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==r.g)return r.g;throw"Unable to locate global object"})();const c=u.atob||(e=>u.Buffer.from(e,"base64").toString("binary"));function d(e){const t=c(e),r=new Uint8Array(t.length);for(let e=0;eu.Buffer.from(e,"binary").toString("base64"));function f(e){const t=[];for(const r of e)t.push(String.fromCharCode(r));return l(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},15027:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.CommunityPoolSpendProposalWithDeposit=t.DelegationDelegatorReward=t.DelegatorStartingInfo=t.CommunityPoolSpendProposal=t.FeePool=t.ValidatorSlashEvents=t.ValidatorSlashEvent=t.ValidatorOutstandingRewards=t.ValidatorAccumulatedCommission=t.ValidatorCurrentRewards=t.ValidatorHistoricalRewards=t.Params=t.protobufPackage=void 0;const o=n(r(24067)),i=n(r(63967)),a=r(49545);t.protobufPackage="cosmos.distribution.v1beta1";const s={communityTax:"",baseProposerReward:"",bonusProposerReward:"",withdrawAddrEnabled:!1};t.Params={encode:(e,t=i.default.Writer.create())=>(""!==e.communityTax&&t.uint32(10).string(e.communityTax),""!==e.baseProposerReward&&t.uint32(18).string(e.baseProposerReward),""!==e.bonusProposerReward&&t.uint32(26).string(e.bonusProposerReward),!0===e.withdrawAddrEnabled&&t.uint32(32).bool(e.withdrawAddrEnabled),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},s);for(;r.pos>>3){case 1:o.communityTax=r.string();break;case 2:o.baseProposerReward=r.string();break;case 3:o.bonusProposerReward=r.string();break;case 4:o.withdrawAddrEnabled=r.bool();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},s);return void 0!==e.communityTax&&null!==e.communityTax?t.communityTax=String(e.communityTax):t.communityTax="",void 0!==e.baseProposerReward&&null!==e.baseProposerReward?t.baseProposerReward=String(e.baseProposerReward):t.baseProposerReward="",void 0!==e.bonusProposerReward&&null!==e.bonusProposerReward?t.bonusProposerReward=String(e.bonusProposerReward):t.bonusProposerReward="",void 0!==e.withdrawAddrEnabled&&null!==e.withdrawAddrEnabled?t.withdrawAddrEnabled=Boolean(e.withdrawAddrEnabled):t.withdrawAddrEnabled=!1,t},toJSON(e){const t={};return void 0!==e.communityTax&&(t.communityTax=e.communityTax),void 0!==e.baseProposerReward&&(t.baseProposerReward=e.baseProposerReward),void 0!==e.bonusProposerReward&&(t.bonusProposerReward=e.bonusProposerReward),void 0!==e.withdrawAddrEnabled&&(t.withdrawAddrEnabled=e.withdrawAddrEnabled),t},fromPartial(e){const t=Object.assign({},s);return void 0!==e.communityTax&&null!==e.communityTax?t.communityTax=e.communityTax:t.communityTax="",void 0!==e.baseProposerReward&&null!==e.baseProposerReward?t.baseProposerReward=e.baseProposerReward:t.baseProposerReward="",void 0!==e.bonusProposerReward&&null!==e.bonusProposerReward?t.bonusProposerReward=e.bonusProposerReward:t.bonusProposerReward="",void 0!==e.withdrawAddrEnabled&&null!==e.withdrawAddrEnabled?t.withdrawAddrEnabled=e.withdrawAddrEnabled:t.withdrawAddrEnabled=!1,t}};const u={referenceCount:0};t.ValidatorHistoricalRewards={encode(e,t=i.default.Writer.create()){for(const r of e.cumulativeRewardRatio)a.DecCoin.encode(r,t.uint32(10).fork()).ldelim();return 0!==e.referenceCount&&t.uint32(16).uint32(e.referenceCount),t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},u);for(o.cumulativeRewardRatio=[];r.pos>>3){case 1:o.cumulativeRewardRatio.push(a.DecCoin.decode(r,r.uint32()));break;case 2:o.referenceCount=r.uint32();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},u);if(t.cumulativeRewardRatio=[],void 0!==e.cumulativeRewardRatio&&null!==e.cumulativeRewardRatio)for(const r of e.cumulativeRewardRatio)t.cumulativeRewardRatio.push(a.DecCoin.fromJSON(r));return void 0!==e.referenceCount&&null!==e.referenceCount?t.referenceCount=Number(e.referenceCount):t.referenceCount=0,t},toJSON(e){const t={};return e.cumulativeRewardRatio?t.cumulativeRewardRatio=e.cumulativeRewardRatio.map((e=>e?a.DecCoin.toJSON(e):void 0)):t.cumulativeRewardRatio=[],void 0!==e.referenceCount&&(t.referenceCount=e.referenceCount),t},fromPartial(e){const t=Object.assign({},u);if(t.cumulativeRewardRatio=[],void 0!==e.cumulativeRewardRatio&&null!==e.cumulativeRewardRatio)for(const r of e.cumulativeRewardRatio)t.cumulativeRewardRatio.push(a.DecCoin.fromPartial(r));return void 0!==e.referenceCount&&null!==e.referenceCount?t.referenceCount=e.referenceCount:t.referenceCount=0,t}};const c={period:o.default.UZERO};t.ValidatorCurrentRewards={encode(e,t=i.default.Writer.create()){for(const r of e.rewards)a.DecCoin.encode(r,t.uint32(10).fork()).ldelim();return e.period.isZero()||t.uint32(16).uint64(e.period),t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},c);for(o.rewards=[];r.pos>>3){case 1:o.rewards.push(a.DecCoin.decode(r,r.uint32()));break;case 2:o.period=r.uint64();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},c);if(t.rewards=[],void 0!==e.rewards&&null!==e.rewards)for(const r of e.rewards)t.rewards.push(a.DecCoin.fromJSON(r));return void 0!==e.period&&null!==e.period?t.period=o.default.fromString(e.period):t.period=o.default.UZERO,t},toJSON(e){const t={};return e.rewards?t.rewards=e.rewards.map((e=>e?a.DecCoin.toJSON(e):void 0)):t.rewards=[],void 0!==e.period&&(t.period=(e.period||o.default.UZERO).toString()),t},fromPartial(e){const t=Object.assign({},c);if(t.rewards=[],void 0!==e.rewards&&null!==e.rewards)for(const r of e.rewards)t.rewards.push(a.DecCoin.fromPartial(r));return void 0!==e.period&&null!==e.period?t.period=e.period:t.period=o.default.UZERO,t}};const d={};t.ValidatorAccumulatedCommission={encode(e,t=i.default.Writer.create()){for(const r of e.commission)a.DecCoin.encode(r,t.uint32(10).fork()).ldelim();return t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},d);for(o.commission=[];r.pos>>3==1?o.commission.push(a.DecCoin.decode(r,r.uint32())):r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},d);if(t.commission=[],void 0!==e.commission&&null!==e.commission)for(const r of e.commission)t.commission.push(a.DecCoin.fromJSON(r));return t},toJSON(e){const t={};return e.commission?t.commission=e.commission.map((e=>e?a.DecCoin.toJSON(e):void 0)):t.commission=[],t},fromPartial(e){const t=Object.assign({},d);if(t.commission=[],void 0!==e.commission&&null!==e.commission)for(const r of e.commission)t.commission.push(a.DecCoin.fromPartial(r));return t}};const l={};t.ValidatorOutstandingRewards={encode(e,t=i.default.Writer.create()){for(const r of e.rewards)a.DecCoin.encode(r,t.uint32(10).fork()).ldelim();return t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},l);for(o.rewards=[];r.pos>>3==1?o.rewards.push(a.DecCoin.decode(r,r.uint32())):r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},l);if(t.rewards=[],void 0!==e.rewards&&null!==e.rewards)for(const r of e.rewards)t.rewards.push(a.DecCoin.fromJSON(r));return t},toJSON(e){const t={};return e.rewards?t.rewards=e.rewards.map((e=>e?a.DecCoin.toJSON(e):void 0)):t.rewards=[],t},fromPartial(e){const t=Object.assign({},l);if(t.rewards=[],void 0!==e.rewards&&null!==e.rewards)for(const r of e.rewards)t.rewards.push(a.DecCoin.fromPartial(r));return t}};const f={validatorPeriod:o.default.UZERO,fraction:""};t.ValidatorSlashEvent={encode:(e,t=i.default.Writer.create())=>(e.validatorPeriod.isZero()||t.uint32(8).uint64(e.validatorPeriod),""!==e.fraction&&t.uint32(18).string(e.fraction),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},f);for(;r.pos>>3){case 1:o.validatorPeriod=r.uint64();break;case 2:o.fraction=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},f);return void 0!==e.validatorPeriod&&null!==e.validatorPeriod?t.validatorPeriod=o.default.fromString(e.validatorPeriod):t.validatorPeriod=o.default.UZERO,void 0!==e.fraction&&null!==e.fraction?t.fraction=String(e.fraction):t.fraction="",t},toJSON(e){const t={};return void 0!==e.validatorPeriod&&(t.validatorPeriod=(e.validatorPeriod||o.default.UZERO).toString()),void 0!==e.fraction&&(t.fraction=e.fraction),t},fromPartial(e){const t=Object.assign({},f);return void 0!==e.validatorPeriod&&null!==e.validatorPeriod?t.validatorPeriod=e.validatorPeriod:t.validatorPeriod=o.default.UZERO,void 0!==e.fraction&&null!==e.fraction?t.fraction=e.fraction:t.fraction="",t}};const h={};t.ValidatorSlashEvents={encode(e,r=i.default.Writer.create()){for(const n of e.validatorSlashEvents)t.ValidatorSlashEvent.encode(n,r.uint32(10).fork()).ldelim();return r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},h);for(a.validatorSlashEvents=[];n.pos>>3==1?a.validatorSlashEvents.push(t.ValidatorSlashEvent.decode(n,n.uint32())):n.skipType(7&e)}return a},fromJSON(e){const r=Object.assign({},h);if(r.validatorSlashEvents=[],void 0!==e.validatorSlashEvents&&null!==e.validatorSlashEvents)for(const n of e.validatorSlashEvents)r.validatorSlashEvents.push(t.ValidatorSlashEvent.fromJSON(n));return r},toJSON(e){const r={};return e.validatorSlashEvents?r.validatorSlashEvents=e.validatorSlashEvents.map((e=>e?t.ValidatorSlashEvent.toJSON(e):void 0)):r.validatorSlashEvents=[],r},fromPartial(e){const r=Object.assign({},h);if(r.validatorSlashEvents=[],void 0!==e.validatorSlashEvents&&null!==e.validatorSlashEvents)for(const n of e.validatorSlashEvents)r.validatorSlashEvents.push(t.ValidatorSlashEvent.fromPartial(n));return r}};const p={};t.FeePool={encode(e,t=i.default.Writer.create()){for(const r of e.communityPool)a.DecCoin.encode(r,t.uint32(10).fork()).ldelim();return t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},p);for(o.communityPool=[];r.pos>>3==1?o.communityPool.push(a.DecCoin.decode(r,r.uint32())):r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},p);if(t.communityPool=[],void 0!==e.communityPool&&null!==e.communityPool)for(const r of e.communityPool)t.communityPool.push(a.DecCoin.fromJSON(r));return t},toJSON(e){const t={};return e.communityPool?t.communityPool=e.communityPool.map((e=>e?a.DecCoin.toJSON(e):void 0)):t.communityPool=[],t},fromPartial(e){const t=Object.assign({},p);if(t.communityPool=[],void 0!==e.communityPool&&null!==e.communityPool)for(const r of e.communityPool)t.communityPool.push(a.DecCoin.fromPartial(r));return t}};const m={title:"",description:"",recipient:""};t.CommunityPoolSpendProposal={encode(e,t=i.default.Writer.create()){""!==e.title&&t.uint32(10).string(e.title),""!==e.description&&t.uint32(18).string(e.description),""!==e.recipient&&t.uint32(26).string(e.recipient);for(const r of e.amount)a.Coin.encode(r,t.uint32(34).fork()).ldelim();return t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},m);for(o.amount=[];r.pos>>3){case 1:o.title=r.string();break;case 2:o.description=r.string();break;case 3:o.recipient=r.string();break;case 4:o.amount.push(a.Coin.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},m);if(t.amount=[],void 0!==e.title&&null!==e.title?t.title=String(e.title):t.title="",void 0!==e.description&&null!==e.description?t.description=String(e.description):t.description="",void 0!==e.recipient&&null!==e.recipient?t.recipient=String(e.recipient):t.recipient="",void 0!==e.amount&&null!==e.amount)for(const r of e.amount)t.amount.push(a.Coin.fromJSON(r));return t},toJSON(e){const t={};return void 0!==e.title&&(t.title=e.title),void 0!==e.description&&(t.description=e.description),void 0!==e.recipient&&(t.recipient=e.recipient),e.amount?t.amount=e.amount.map((e=>e?a.Coin.toJSON(e):void 0)):t.amount=[],t},fromPartial(e){const t=Object.assign({},m);if(t.amount=[],void 0!==e.title&&null!==e.title?t.title=e.title:t.title="",void 0!==e.description&&null!==e.description?t.description=e.description:t.description="",void 0!==e.recipient&&null!==e.recipient?t.recipient=e.recipient:t.recipient="",void 0!==e.amount&&null!==e.amount)for(const r of e.amount)t.amount.push(a.Coin.fromPartial(r));return t}};const g={previousPeriod:o.default.UZERO,stake:"",height:o.default.UZERO};t.DelegatorStartingInfo={encode:(e,t=i.default.Writer.create())=>(e.previousPeriod.isZero()||t.uint32(8).uint64(e.previousPeriod),""!==e.stake&&t.uint32(18).string(e.stake),e.height.isZero()||t.uint32(24).uint64(e.height),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},g);for(;r.pos>>3){case 1:o.previousPeriod=r.uint64();break;case 2:o.stake=r.string();break;case 3:o.height=r.uint64();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},g);return void 0!==e.previousPeriod&&null!==e.previousPeriod?t.previousPeriod=o.default.fromString(e.previousPeriod):t.previousPeriod=o.default.UZERO,void 0!==e.stake&&null!==e.stake?t.stake=String(e.stake):t.stake="",void 0!==e.height&&null!==e.height?t.height=o.default.fromString(e.height):t.height=o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.previousPeriod&&(t.previousPeriod=(e.previousPeriod||o.default.UZERO).toString()),void 0!==e.stake&&(t.stake=e.stake),void 0!==e.height&&(t.height=(e.height||o.default.UZERO).toString()),t},fromPartial(e){const t=Object.assign({},g);return void 0!==e.previousPeriod&&null!==e.previousPeriod?t.previousPeriod=e.previousPeriod:t.previousPeriod=o.default.UZERO,void 0!==e.stake&&null!==e.stake?t.stake=e.stake:t.stake="",void 0!==e.height&&null!==e.height?t.height=e.height:t.height=o.default.UZERO,t}};const v={validatorAddress:""};t.DelegationDelegatorReward={encode(e,t=i.default.Writer.create()){""!==e.validatorAddress&&t.uint32(10).string(e.validatorAddress);for(const r of e.reward)a.DecCoin.encode(r,t.uint32(18).fork()).ldelim();return t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},v);for(o.reward=[];r.pos>>3){case 1:o.validatorAddress=r.string();break;case 2:o.reward.push(a.DecCoin.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},v);if(t.reward=[],void 0!==e.validatorAddress&&null!==e.validatorAddress?t.validatorAddress=String(e.validatorAddress):t.validatorAddress="",void 0!==e.reward&&null!==e.reward)for(const r of e.reward)t.reward.push(a.DecCoin.fromJSON(r));return t},toJSON(e){const t={};return void 0!==e.validatorAddress&&(t.validatorAddress=e.validatorAddress),e.reward?t.reward=e.reward.map((e=>e?a.DecCoin.toJSON(e):void 0)):t.reward=[],t},fromPartial(e){const t=Object.assign({},v);if(t.reward=[],void 0!==e.validatorAddress&&null!==e.validatorAddress?t.validatorAddress=e.validatorAddress:t.validatorAddress="",void 0!==e.reward&&null!==e.reward)for(const r of e.reward)t.reward.push(a.DecCoin.fromPartial(r));return t}};const b={title:"",description:"",recipient:"",amount:"",deposit:""};t.CommunityPoolSpendProposalWithDeposit={encode:(e,t=i.default.Writer.create())=>(""!==e.title&&t.uint32(10).string(e.title),""!==e.description&&t.uint32(18).string(e.description),""!==e.recipient&&t.uint32(26).string(e.recipient),""!==e.amount&&t.uint32(34).string(e.amount),""!==e.deposit&&t.uint32(42).string(e.deposit),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},b);for(;r.pos>>3){case 1:o.title=r.string();break;case 2:o.description=r.string();break;case 3:o.recipient=r.string();break;case 4:o.amount=r.string();break;case 5:o.deposit=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},b);return void 0!==e.title&&null!==e.title?t.title=String(e.title):t.title="",void 0!==e.description&&null!==e.description?t.description=String(e.description):t.description="",void 0!==e.recipient&&null!==e.recipient?t.recipient=String(e.recipient):t.recipient="",void 0!==e.amount&&null!==e.amount?t.amount=String(e.amount):t.amount="",void 0!==e.deposit&&null!==e.deposit?t.deposit=String(e.deposit):t.deposit="",t},toJSON(e){const t={};return void 0!==e.title&&(t.title=e.title),void 0!==e.description&&(t.description=e.description),void 0!==e.recipient&&(t.recipient=e.recipient),void 0!==e.amount&&(t.amount=e.amount),void 0!==e.deposit&&(t.deposit=e.deposit),t},fromPartial(e){const t=Object.assign({},b);return void 0!==e.title&&null!==e.title?t.title=e.title:t.title="",void 0!==e.description&&null!==e.description?t.description=e.description:t.description="",void 0!==e.recipient&&null!==e.recipient?t.recipient=e.recipient:t.recipient="",void 0!==e.amount&&null!==e.amount?t.amount=e.amount:t.amount="",void 0!==e.deposit&&null!==e.deposit?t.deposit=e.deposit:t.deposit="",t}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},16e3:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.GrpcWebImpl=t.MsgFundCommunityPoolDesc=t.MsgWithdrawValidatorCommissionDesc=t.MsgWithdrawDelegatorRewardDesc=t.MsgSetWithdrawAddressDesc=t.MsgDesc=t.MsgClientImpl=t.MsgFundCommunityPoolResponse=t.MsgFundCommunityPool=t.MsgWithdrawValidatorCommissionResponse=t.MsgWithdrawValidatorCommission=t.MsgWithdrawDelegatorRewardResponse=t.MsgWithdrawDelegatorReward=t.MsgSetWithdrawAddressResponse=t.MsgSetWithdrawAddress=t.protobufPackage=void 0;const o=n(r(24067)),i=r(66959),a=n(r(63967)),s=r(62200),u=r(49545);t.protobufPackage="cosmos.distribution.v1beta1";const c={delegatorAddress:"",withdrawAddress:""};t.MsgSetWithdrawAddress={encode:(e,t=a.default.Writer.create())=>(""!==e.delegatorAddress&&t.uint32(10).string(e.delegatorAddress),""!==e.withdrawAddress&&t.uint32(18).string(e.withdrawAddress),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},c);for(;r.pos>>3){case 1:o.delegatorAddress=r.string();break;case 2:o.withdrawAddress=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},c);return void 0!==e.delegatorAddress&&null!==e.delegatorAddress?t.delegatorAddress=String(e.delegatorAddress):t.delegatorAddress="",void 0!==e.withdrawAddress&&null!==e.withdrawAddress?t.withdrawAddress=String(e.withdrawAddress):t.withdrawAddress="",t},toJSON(e){const t={};return void 0!==e.delegatorAddress&&(t.delegatorAddress=e.delegatorAddress),void 0!==e.withdrawAddress&&(t.withdrawAddress=e.withdrawAddress),t},fromPartial(e){const t=Object.assign({},c);return void 0!==e.delegatorAddress&&null!==e.delegatorAddress?t.delegatorAddress=e.delegatorAddress:t.delegatorAddress="",void 0!==e.withdrawAddress&&null!==e.withdrawAddress?t.withdrawAddress=e.withdrawAddress:t.withdrawAddress="",t}};const d={};t.MsgSetWithdrawAddressResponse={encode:(e,t=a.default.Writer.create())=>t,decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},d);for(;r.posObject.assign({},d),toJSON:e=>({}),fromPartial:e=>Object.assign({},d)};const l={delegatorAddress:"",validatorAddress:""};t.MsgWithdrawDelegatorReward={encode:(e,t=a.default.Writer.create())=>(""!==e.delegatorAddress&&t.uint32(10).string(e.delegatorAddress),""!==e.validatorAddress&&t.uint32(18).string(e.validatorAddress),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},l);for(;r.pos>>3){case 1:o.delegatorAddress=r.string();break;case 2:o.validatorAddress=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},l);return void 0!==e.delegatorAddress&&null!==e.delegatorAddress?t.delegatorAddress=String(e.delegatorAddress):t.delegatorAddress="",void 0!==e.validatorAddress&&null!==e.validatorAddress?t.validatorAddress=String(e.validatorAddress):t.validatorAddress="",t},toJSON(e){const t={};return void 0!==e.delegatorAddress&&(t.delegatorAddress=e.delegatorAddress),void 0!==e.validatorAddress&&(t.validatorAddress=e.validatorAddress),t},fromPartial(e){const t=Object.assign({},l);return void 0!==e.delegatorAddress&&null!==e.delegatorAddress?t.delegatorAddress=e.delegatorAddress:t.delegatorAddress="",void 0!==e.validatorAddress&&null!==e.validatorAddress?t.validatorAddress=e.validatorAddress:t.validatorAddress="",t}};const f={};t.MsgWithdrawDelegatorRewardResponse={encode:(e,t=a.default.Writer.create())=>t,decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},f);for(;r.posObject.assign({},f),toJSON:e=>({}),fromPartial:e=>Object.assign({},f)};const h={validatorAddress:""};t.MsgWithdrawValidatorCommission={encode:(e,t=a.default.Writer.create())=>(""!==e.validatorAddress&&t.uint32(10).string(e.validatorAddress),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},h);for(;r.pos>>3==1?o.validatorAddress=r.string():r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},h);return void 0!==e.validatorAddress&&null!==e.validatorAddress?t.validatorAddress=String(e.validatorAddress):t.validatorAddress="",t},toJSON(e){const t={};return void 0!==e.validatorAddress&&(t.validatorAddress=e.validatorAddress),t},fromPartial(e){const t=Object.assign({},h);return void 0!==e.validatorAddress&&null!==e.validatorAddress?t.validatorAddress=e.validatorAddress:t.validatorAddress="",t}};const p={};t.MsgWithdrawValidatorCommissionResponse={encode:(e,t=a.default.Writer.create())=>t,decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},p);for(;r.posObject.assign({},p),toJSON:e=>({}),fromPartial:e=>Object.assign({},p)};const m={depositor:""};t.MsgFundCommunityPool={encode(e,t=a.default.Writer.create()){for(const r of e.amount)u.Coin.encode(r,t.uint32(10).fork()).ldelim();return""!==e.depositor&&t.uint32(18).string(e.depositor),t},decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},m);for(o.amount=[];r.pos>>3){case 1:o.amount.push(u.Coin.decode(r,r.uint32()));break;case 2:o.depositor=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},m);if(t.amount=[],void 0!==e.amount&&null!==e.amount)for(const r of e.amount)t.amount.push(u.Coin.fromJSON(r));return void 0!==e.depositor&&null!==e.depositor?t.depositor=String(e.depositor):t.depositor="",t},toJSON(e){const t={};return e.amount?t.amount=e.amount.map((e=>e?u.Coin.toJSON(e):void 0)):t.amount=[],void 0!==e.depositor&&(t.depositor=e.depositor),t},fromPartial(e){const t=Object.assign({},m);if(t.amount=[],void 0!==e.amount&&null!==e.amount)for(const r of e.amount)t.amount.push(u.Coin.fromPartial(r));return void 0!==e.depositor&&null!==e.depositor?t.depositor=e.depositor:t.depositor="",t}};const g={};t.MsgFundCommunityPoolResponse={encode:(e,t=a.default.Writer.create())=>t,decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},g);for(;r.posObject.assign({},g),toJSON:e=>({}),fromPartial:e=>Object.assign({},g)},t.MsgClientImpl=class{constructor(e){this.rpc=e,this.SetWithdrawAddress=this.SetWithdrawAddress.bind(this),this.WithdrawDelegatorReward=this.WithdrawDelegatorReward.bind(this),this.WithdrawValidatorCommission=this.WithdrawValidatorCommission.bind(this),this.FundCommunityPool=this.FundCommunityPool.bind(this)}SetWithdrawAddress(e,r){return this.rpc.unary(t.MsgSetWithdrawAddressDesc,t.MsgSetWithdrawAddress.fromPartial(e),r)}WithdrawDelegatorReward(e,r){return this.rpc.unary(t.MsgWithdrawDelegatorRewardDesc,t.MsgWithdrawDelegatorReward.fromPartial(e),r)}WithdrawValidatorCommission(e,r){return this.rpc.unary(t.MsgWithdrawValidatorCommissionDesc,t.MsgWithdrawValidatorCommission.fromPartial(e),r)}FundCommunityPool(e,r){return this.rpc.unary(t.MsgFundCommunityPoolDesc,t.MsgFundCommunityPool.fromPartial(e),r)}},t.MsgDesc={serviceName:"cosmos.distribution.v1beta1.Msg"},t.MsgSetWithdrawAddressDesc={methodName:"SetWithdrawAddress",service:t.MsgDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.MsgSetWithdrawAddress.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.MsgSetWithdrawAddressResponse.decode(e)),{toObject(){return this}})}},t.MsgWithdrawDelegatorRewardDesc={methodName:"WithdrawDelegatorReward",service:t.MsgDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.MsgWithdrawDelegatorReward.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.MsgWithdrawDelegatorRewardResponse.decode(e)),{toObject(){return this}})}},t.MsgWithdrawValidatorCommissionDesc={methodName:"WithdrawValidatorCommission",service:t.MsgDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.MsgWithdrawValidatorCommission.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.MsgWithdrawValidatorCommissionResponse.decode(e)),{toObject(){return this}})}},t.MsgFundCommunityPoolDesc={methodName:"FundCommunityPool",service:t.MsgDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.MsgFundCommunityPool.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.MsgFundCommunityPoolResponse.decode(e)),{toObject(){return this}})}},t.GrpcWebImpl=class{constructor(e,t){this.host=e,this.options=t}unary(e,t,r){var n;const o=Object.assign(Object.assign({},t),e.requestType),a=r&&this.options.metadata?new s.BrowserHeaders(Object.assign(Object.assign({},null===(n=this.options)||void 0===n?void 0:n.metadata.headersMap),null==r?void 0:r.headersMap)):r||this.options.metadata;return new Promise(((t,r)=>{i.grpc.unary(e,{request:o,host:this.host,metadata:a,transport:this.options.transport,debug:this.options.debug,onEnd:function(e){if(e.status===i.grpc.Code.OK)t(e.message);else{const t=new Error(e.statusMessage);t.code=e.status,t.metadata=e.trailers,r(t)}}})}))}},a.default.util.Long!==o.default&&(a.default.util.Long=o.default,a.default.configure())},20634:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Grant=t.AllowedMsgAllowance=t.PeriodicAllowance=t.BasicAllowance=t.protobufPackage=void 0;const o=n(r(24067)),i=n(r(63967)),a=r(54462),s=r(17063),u=r(46759),c=r(49545);t.protobufPackage="cosmos.feegrant.v1beta1";const d={};t.BasicAllowance={encode(e,t=i.default.Writer.create()){for(const r of e.spendLimit)c.Coin.encode(r,t.uint32(10).fork()).ldelim();return void 0!==e.expiration&&u.Timestamp.encode(p(e.expiration),t.uint32(18).fork()).ldelim(),t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},d);for(o.spendLimit=[];r.pos>>3){case 1:o.spendLimit.push(c.Coin.decode(r,r.uint32()));break;case 2:o.expiration=m(u.Timestamp.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},d);if(t.spendLimit=[],void 0!==e.spendLimit&&null!==e.spendLimit)for(const r of e.spendLimit)t.spendLimit.push(c.Coin.fromJSON(r));return void 0!==e.expiration&&null!==e.expiration?t.expiration=g(e.expiration):t.expiration=void 0,t},toJSON(e){const t={};return e.spendLimit?t.spendLimit=e.spendLimit.map((e=>e?c.Coin.toJSON(e):void 0)):t.spendLimit=[],void 0!==e.expiration&&(t.expiration=e.expiration.toISOString()),t},fromPartial(e){const t=Object.assign({},d);if(t.spendLimit=[],void 0!==e.spendLimit&&null!==e.spendLimit)for(const r of e.spendLimit)t.spendLimit.push(c.Coin.fromPartial(r));return void 0!==e.expiration&&null!==e.expiration?t.expiration=e.expiration:t.expiration=void 0,t}};const l={};t.PeriodicAllowance={encode(e,r=i.default.Writer.create()){void 0!==e.basic&&t.BasicAllowance.encode(e.basic,r.uint32(10).fork()).ldelim(),void 0!==e.period&&a.Duration.encode(e.period,r.uint32(18).fork()).ldelim();for(const t of e.periodSpendLimit)c.Coin.encode(t,r.uint32(26).fork()).ldelim();for(const t of e.periodCanSpend)c.Coin.encode(t,r.uint32(34).fork()).ldelim();return void 0!==e.periodReset&&u.Timestamp.encode(p(e.periodReset),r.uint32(42).fork()).ldelim(),r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const s=Object.assign({},l);for(s.periodSpendLimit=[],s.periodCanSpend=[];n.pos>>3){case 1:s.basic=t.BasicAllowance.decode(n,n.uint32());break;case 2:s.period=a.Duration.decode(n,n.uint32());break;case 3:s.periodSpendLimit.push(c.Coin.decode(n,n.uint32()));break;case 4:s.periodCanSpend.push(c.Coin.decode(n,n.uint32()));break;case 5:s.periodReset=m(u.Timestamp.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return s},fromJSON(e){const r=Object.assign({},l);if(r.periodSpendLimit=[],r.periodCanSpend=[],void 0!==e.basic&&null!==e.basic?r.basic=t.BasicAllowance.fromJSON(e.basic):r.basic=void 0,void 0!==e.period&&null!==e.period?r.period=a.Duration.fromJSON(e.period):r.period=void 0,void 0!==e.periodSpendLimit&&null!==e.periodSpendLimit)for(const t of e.periodSpendLimit)r.periodSpendLimit.push(c.Coin.fromJSON(t));if(void 0!==e.periodCanSpend&&null!==e.periodCanSpend)for(const t of e.periodCanSpend)r.periodCanSpend.push(c.Coin.fromJSON(t));return void 0!==e.periodReset&&null!==e.periodReset?r.periodReset=g(e.periodReset):r.periodReset=void 0,r},toJSON(e){const r={};return void 0!==e.basic&&(r.basic=e.basic?t.BasicAllowance.toJSON(e.basic):void 0),void 0!==e.period&&(r.period=e.period?a.Duration.toJSON(e.period):void 0),e.periodSpendLimit?r.periodSpendLimit=e.periodSpendLimit.map((e=>e?c.Coin.toJSON(e):void 0)):r.periodSpendLimit=[],e.periodCanSpend?r.periodCanSpend=e.periodCanSpend.map((e=>e?c.Coin.toJSON(e):void 0)):r.periodCanSpend=[],void 0!==e.periodReset&&(r.periodReset=e.periodReset.toISOString()),r},fromPartial(e){const r=Object.assign({},l);if(r.periodSpendLimit=[],r.periodCanSpend=[],void 0!==e.basic&&null!==e.basic?r.basic=t.BasicAllowance.fromPartial(e.basic):r.basic=void 0,void 0!==e.period&&null!==e.period?r.period=a.Duration.fromPartial(e.period):r.period=void 0,void 0!==e.periodSpendLimit&&null!==e.periodSpendLimit)for(const t of e.periodSpendLimit)r.periodSpendLimit.push(c.Coin.fromPartial(t));if(void 0!==e.periodCanSpend&&null!==e.periodCanSpend)for(const t of e.periodCanSpend)r.periodCanSpend.push(c.Coin.fromPartial(t));return void 0!==e.periodReset&&null!==e.periodReset?r.periodReset=e.periodReset:r.periodReset=void 0,r}};const f={allowedMessages:""};t.AllowedMsgAllowance={encode(e,t=i.default.Writer.create()){void 0!==e.allowance&&s.Any.encode(e.allowance,t.uint32(10).fork()).ldelim();for(const r of e.allowedMessages)t.uint32(18).string(r);return t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},f);for(o.allowedMessages=[];r.pos>>3){case 1:o.allowance=s.Any.decode(r,r.uint32());break;case 2:o.allowedMessages.push(r.string());break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},f);if(t.allowedMessages=[],void 0!==e.allowance&&null!==e.allowance?t.allowance=s.Any.fromJSON(e.allowance):t.allowance=void 0,void 0!==e.allowedMessages&&null!==e.allowedMessages)for(const r of e.allowedMessages)t.allowedMessages.push(String(r));return t},toJSON(e){const t={};return void 0!==e.allowance&&(t.allowance=e.allowance?s.Any.toJSON(e.allowance):void 0),e.allowedMessages?t.allowedMessages=e.allowedMessages.map((e=>e)):t.allowedMessages=[],t},fromPartial(e){const t=Object.assign({},f);if(t.allowedMessages=[],void 0!==e.allowance&&null!==e.allowance?t.allowance=s.Any.fromPartial(e.allowance):t.allowance=void 0,void 0!==e.allowedMessages&&null!==e.allowedMessages)for(const r of e.allowedMessages)t.allowedMessages.push(r);return t}};const h={granter:"",grantee:""};function p(e){var t;return{seconds:(t=e.getTime()/1e3,o.default.fromNumber(t)),nanos:e.getTime()%1e3*1e6}}function m(e){let t=1e3*e.seconds.toNumber();return t+=e.nanos/1e6,new Date(t)}function g(e){return e instanceof Date?e:"string"==typeof e?new Date(e):m(u.Timestamp.fromJSON(e))}t.Grant={encode:(e,t=i.default.Writer.create())=>(""!==e.granter&&t.uint32(10).string(e.granter),""!==e.grantee&&t.uint32(18).string(e.grantee),void 0!==e.allowance&&s.Any.encode(e.allowance,t.uint32(26).fork()).ldelim(),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},h);for(;r.pos>>3){case 1:o.granter=r.string();break;case 2:o.grantee=r.string();break;case 3:o.allowance=s.Any.decode(r,r.uint32());break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},h);return void 0!==e.granter&&null!==e.granter?t.granter=String(e.granter):t.granter="",void 0!==e.grantee&&null!==e.grantee?t.grantee=String(e.grantee):t.grantee="",void 0!==e.allowance&&null!==e.allowance?t.allowance=s.Any.fromJSON(e.allowance):t.allowance=void 0,t},toJSON(e){const t={};return void 0!==e.granter&&(t.granter=e.granter),void 0!==e.grantee&&(t.grantee=e.grantee),void 0!==e.allowance&&(t.allowance=e.allowance?s.Any.toJSON(e.allowance):void 0),t},fromPartial(e){const t=Object.assign({},h);return void 0!==e.granter&&null!==e.granter?t.granter=e.granter:t.granter="",void 0!==e.grantee&&null!==e.grantee?t.grantee=e.grantee:t.grantee="",void 0!==e.allowance&&null!==e.allowance?t.allowance=s.Any.fromPartial(e.allowance):t.allowance=void 0,t}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},23737:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.GrpcWebImpl=t.MsgRevokeAllowanceDesc=t.MsgGrantAllowanceDesc=t.MsgDesc=t.MsgClientImpl=t.MsgRevokeAllowanceResponse=t.MsgRevokeAllowance=t.MsgGrantAllowanceResponse=t.MsgGrantAllowance=t.protobufPackage=void 0;const o=n(r(24067)),i=r(66959),a=n(r(63967)),s=r(17063),u=r(62200);t.protobufPackage="cosmos.feegrant.v1beta1";const c={granter:"",grantee:""};t.MsgGrantAllowance={encode:(e,t=a.default.Writer.create())=>(""!==e.granter&&t.uint32(10).string(e.granter),""!==e.grantee&&t.uint32(18).string(e.grantee),void 0!==e.allowance&&s.Any.encode(e.allowance,t.uint32(26).fork()).ldelim(),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},c);for(;r.pos>>3){case 1:o.granter=r.string();break;case 2:o.grantee=r.string();break;case 3:o.allowance=s.Any.decode(r,r.uint32());break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},c);return void 0!==e.granter&&null!==e.granter?t.granter=String(e.granter):t.granter="",void 0!==e.grantee&&null!==e.grantee?t.grantee=String(e.grantee):t.grantee="",void 0!==e.allowance&&null!==e.allowance?t.allowance=s.Any.fromJSON(e.allowance):t.allowance=void 0,t},toJSON(e){const t={};return void 0!==e.granter&&(t.granter=e.granter),void 0!==e.grantee&&(t.grantee=e.grantee),void 0!==e.allowance&&(t.allowance=e.allowance?s.Any.toJSON(e.allowance):void 0),t},fromPartial(e){const t=Object.assign({},c);return void 0!==e.granter&&null!==e.granter?t.granter=e.granter:t.granter="",void 0!==e.grantee&&null!==e.grantee?t.grantee=e.grantee:t.grantee="",void 0!==e.allowance&&null!==e.allowance?t.allowance=s.Any.fromPartial(e.allowance):t.allowance=void 0,t}};const d={};t.MsgGrantAllowanceResponse={encode:(e,t=a.default.Writer.create())=>t,decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},d);for(;r.posObject.assign({},d),toJSON:e=>({}),fromPartial:e=>Object.assign({},d)};const l={granter:"",grantee:""};t.MsgRevokeAllowance={encode:(e,t=a.default.Writer.create())=>(""!==e.granter&&t.uint32(10).string(e.granter),""!==e.grantee&&t.uint32(18).string(e.grantee),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},l);for(;r.pos>>3){case 1:o.granter=r.string();break;case 2:o.grantee=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},l);return void 0!==e.granter&&null!==e.granter?t.granter=String(e.granter):t.granter="",void 0!==e.grantee&&null!==e.grantee?t.grantee=String(e.grantee):t.grantee="",t},toJSON(e){const t={};return void 0!==e.granter&&(t.granter=e.granter),void 0!==e.grantee&&(t.grantee=e.grantee),t},fromPartial(e){const t=Object.assign({},l);return void 0!==e.granter&&null!==e.granter?t.granter=e.granter:t.granter="",void 0!==e.grantee&&null!==e.grantee?t.grantee=e.grantee:t.grantee="",t}};const f={};t.MsgRevokeAllowanceResponse={encode:(e,t=a.default.Writer.create())=>t,decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},f);for(;r.posObject.assign({},f),toJSON:e=>({}),fromPartial:e=>Object.assign({},f)},t.MsgClientImpl=class{constructor(e){this.rpc=e,this.GrantAllowance=this.GrantAllowance.bind(this),this.RevokeAllowance=this.RevokeAllowance.bind(this)}GrantAllowance(e,r){return this.rpc.unary(t.MsgGrantAllowanceDesc,t.MsgGrantAllowance.fromPartial(e),r)}RevokeAllowance(e,r){return this.rpc.unary(t.MsgRevokeAllowanceDesc,t.MsgRevokeAllowance.fromPartial(e),r)}},t.MsgDesc={serviceName:"cosmos.feegrant.v1beta1.Msg"},t.MsgGrantAllowanceDesc={methodName:"GrantAllowance",service:t.MsgDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.MsgGrantAllowance.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.MsgGrantAllowanceResponse.decode(e)),{toObject(){return this}})}},t.MsgRevokeAllowanceDesc={methodName:"RevokeAllowance",service:t.MsgDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.MsgRevokeAllowance.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.MsgRevokeAllowanceResponse.decode(e)),{toObject(){return this}})}},t.GrpcWebImpl=class{constructor(e,t){this.host=e,this.options=t}unary(e,t,r){var n;const o=Object.assign(Object.assign({},t),e.requestType),a=r&&this.options.metadata?new u.BrowserHeaders(Object.assign(Object.assign({},null===(n=this.options)||void 0===n?void 0:n.metadata.headersMap),null==r?void 0:r.headersMap)):r||this.options.metadata;return new Promise(((t,r)=>{i.grpc.unary(e,{request:o,host:this.host,metadata:a,transport:this.options.transport,debug:this.options.debug,onEnd:function(e){if(e.status===i.grpc.Code.OK)t(e.message);else{const t=new Error(e.statusMessage);t.code=e.status,t.metadata=e.trailers,r(t)}}})}))}},a.default.util.Long!==o.default&&(a.default.util.Long=o.default,a.default.configure())},34431:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.TallyParams=t.VotingParams=t.DepositParams=t.Vote=t.TallyResult=t.Proposal=t.Deposit=t.TextProposal=t.WeightedVoteOption=t.proposalStatusToJSON=t.proposalStatusFromJSON=t.ProposalStatus=t.voteOptionToJSON=t.voteOptionFromJSON=t.VoteOption=t.protobufPackage=void 0;const o=n(r(24067)),i=n(r(63967)),a=r(17063),s=r(54462),u=r(46759),c=r(49545);var d,l;function f(e){switch(e){case 0:case"VOTE_OPTION_UNSPECIFIED":return d.VOTE_OPTION_UNSPECIFIED;case 1:case"VOTE_OPTION_YES":return d.VOTE_OPTION_YES;case 2:case"VOTE_OPTION_ABSTAIN":return d.VOTE_OPTION_ABSTAIN;case 3:case"VOTE_OPTION_NO":return d.VOTE_OPTION_NO;case 4:case"VOTE_OPTION_NO_WITH_VETO":return d.VOTE_OPTION_NO_WITH_VETO;default:return d.UNRECOGNIZED}}function h(e){switch(e){case d.VOTE_OPTION_UNSPECIFIED:return"VOTE_OPTION_UNSPECIFIED";case d.VOTE_OPTION_YES:return"VOTE_OPTION_YES";case d.VOTE_OPTION_ABSTAIN:return"VOTE_OPTION_ABSTAIN";case d.VOTE_OPTION_NO:return"VOTE_OPTION_NO";case d.VOTE_OPTION_NO_WITH_VETO:return"VOTE_OPTION_NO_WITH_VETO";default:return"UNKNOWN"}}function p(e){switch(e){case 0:case"PROPOSAL_STATUS_UNSPECIFIED":return l.PROPOSAL_STATUS_UNSPECIFIED;case 1:case"PROPOSAL_STATUS_DEPOSIT_PERIOD":return l.PROPOSAL_STATUS_DEPOSIT_PERIOD;case 2:case"PROPOSAL_STATUS_VOTING_PERIOD":return l.PROPOSAL_STATUS_VOTING_PERIOD;case 3:case"PROPOSAL_STATUS_PASSED":return l.PROPOSAL_STATUS_PASSED;case 4:case"PROPOSAL_STATUS_REJECTED":return l.PROPOSAL_STATUS_REJECTED;case 5:case"PROPOSAL_STATUS_FAILED":return l.PROPOSAL_STATUS_FAILED;default:return l.UNRECOGNIZED}}function m(e){switch(e){case l.PROPOSAL_STATUS_UNSPECIFIED:return"PROPOSAL_STATUS_UNSPECIFIED";case l.PROPOSAL_STATUS_DEPOSIT_PERIOD:return"PROPOSAL_STATUS_DEPOSIT_PERIOD";case l.PROPOSAL_STATUS_VOTING_PERIOD:return"PROPOSAL_STATUS_VOTING_PERIOD";case l.PROPOSAL_STATUS_PASSED:return"PROPOSAL_STATUS_PASSED";case l.PROPOSAL_STATUS_REJECTED:return"PROPOSAL_STATUS_REJECTED";case l.PROPOSAL_STATUS_FAILED:return"PROPOSAL_STATUS_FAILED";default:return"UNKNOWN"}}t.protobufPackage="cosmos.gov.v1beta1",function(e){e[e.VOTE_OPTION_UNSPECIFIED=0]="VOTE_OPTION_UNSPECIFIED",e[e.VOTE_OPTION_YES=1]="VOTE_OPTION_YES",e[e.VOTE_OPTION_ABSTAIN=2]="VOTE_OPTION_ABSTAIN",e[e.VOTE_OPTION_NO=3]="VOTE_OPTION_NO",e[e.VOTE_OPTION_NO_WITH_VETO=4]="VOTE_OPTION_NO_WITH_VETO",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(d=t.VoteOption||(t.VoteOption={})),t.voteOptionFromJSON=f,t.voteOptionToJSON=h,function(e){e[e.PROPOSAL_STATUS_UNSPECIFIED=0]="PROPOSAL_STATUS_UNSPECIFIED",e[e.PROPOSAL_STATUS_DEPOSIT_PERIOD=1]="PROPOSAL_STATUS_DEPOSIT_PERIOD",e[e.PROPOSAL_STATUS_VOTING_PERIOD=2]="PROPOSAL_STATUS_VOTING_PERIOD",e[e.PROPOSAL_STATUS_PASSED=3]="PROPOSAL_STATUS_PASSED",e[e.PROPOSAL_STATUS_REJECTED=4]="PROPOSAL_STATUS_REJECTED",e[e.PROPOSAL_STATUS_FAILED=5]="PROPOSAL_STATUS_FAILED",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(l=t.ProposalStatus||(t.ProposalStatus={})),t.proposalStatusFromJSON=p,t.proposalStatusToJSON=m;const g={option:0,weight:""};t.WeightedVoteOption={encode:(e,t=i.default.Writer.create())=>(0!==e.option&&t.uint32(8).int32(e.option),""!==e.weight&&t.uint32(18).string(e.weight),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},g);for(;r.pos>>3){case 1:o.option=r.int32();break;case 2:o.weight=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},g);return void 0!==e.option&&null!==e.option?t.option=f(e.option):t.option=0,void 0!==e.weight&&null!==e.weight?t.weight=String(e.weight):t.weight="",t},toJSON(e){const t={};return void 0!==e.option&&(t.option=h(e.option)),void 0!==e.weight&&(t.weight=e.weight),t},fromPartial(e){const t=Object.assign({},g);return void 0!==e.option&&null!==e.option?t.option=e.option:t.option=0,void 0!==e.weight&&null!==e.weight?t.weight=e.weight:t.weight="",t}};const v={title:"",description:""};t.TextProposal={encode:(e,t=i.default.Writer.create())=>(""!==e.title&&t.uint32(10).string(e.title),""!==e.description&&t.uint32(18).string(e.description),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},v);for(;r.pos>>3){case 1:o.title=r.string();break;case 2:o.description=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},v);return void 0!==e.title&&null!==e.title?t.title=String(e.title):t.title="",void 0!==e.description&&null!==e.description?t.description=String(e.description):t.description="",t},toJSON(e){const t={};return void 0!==e.title&&(t.title=e.title),void 0!==e.description&&(t.description=e.description),t},fromPartial(e){const t=Object.assign({},v);return void 0!==e.title&&null!==e.title?t.title=e.title:t.title="",void 0!==e.description&&null!==e.description?t.description=e.description:t.description="",t}};const b={proposalId:o.default.UZERO,depositor:""};t.Deposit={encode(e,t=i.default.Writer.create()){e.proposalId.isZero()||t.uint32(8).uint64(e.proposalId),""!==e.depositor&&t.uint32(18).string(e.depositor);for(const r of e.amount)c.Coin.encode(r,t.uint32(26).fork()).ldelim();return t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},b);for(o.amount=[];r.pos>>3){case 1:o.proposalId=r.uint64();break;case 2:o.depositor=r.string();break;case 3:o.amount.push(c.Coin.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},b);if(t.amount=[],void 0!==e.proposalId&&null!==e.proposalId?t.proposalId=o.default.fromString(e.proposalId):t.proposalId=o.default.UZERO,void 0!==e.depositor&&null!==e.depositor?t.depositor=String(e.depositor):t.depositor="",void 0!==e.amount&&null!==e.amount)for(const r of e.amount)t.amount.push(c.Coin.fromJSON(r));return t},toJSON(e){const t={};return void 0!==e.proposalId&&(t.proposalId=(e.proposalId||o.default.UZERO).toString()),void 0!==e.depositor&&(t.depositor=e.depositor),e.amount?t.amount=e.amount.map((e=>e?c.Coin.toJSON(e):void 0)):t.amount=[],t},fromPartial(e){const t=Object.assign({},b);if(t.amount=[],void 0!==e.proposalId&&null!==e.proposalId?t.proposalId=e.proposalId:t.proposalId=o.default.UZERO,void 0!==e.depositor&&null!==e.depositor?t.depositor=e.depositor:t.depositor="",void 0!==e.amount&&null!==e.amount)for(const r of e.amount)t.amount.push(c.Coin.fromPartial(r));return t}};const y={proposalId:o.default.UZERO,status:0};t.Proposal={encode(e,r=i.default.Writer.create()){e.proposalId.isZero()||r.uint32(8).uint64(e.proposalId),void 0!==e.content&&a.Any.encode(e.content,r.uint32(18).fork()).ldelim(),0!==e.status&&r.uint32(24).int32(e.status),void 0!==e.finalTallyResult&&t.TallyResult.encode(e.finalTallyResult,r.uint32(34).fork()).ldelim(),void 0!==e.submitTime&&u.Timestamp.encode(N(e.submitTime),r.uint32(42).fork()).ldelim(),void 0!==e.depositEndTime&&u.Timestamp.encode(N(e.depositEndTime),r.uint32(50).fork()).ldelim();for(const t of e.totalDeposit)c.Coin.encode(t,r.uint32(58).fork()).ldelim();return void 0!==e.votingStartTime&&u.Timestamp.encode(N(e.votingStartTime),r.uint32(66).fork()).ldelim(),void 0!==e.votingEndTime&&u.Timestamp.encode(N(e.votingEndTime),r.uint32(74).fork()).ldelim(),r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const s=Object.assign({},y);for(s.totalDeposit=[];n.pos>>3){case 1:s.proposalId=n.uint64();break;case 2:s.content=a.Any.decode(n,n.uint32());break;case 3:s.status=n.int32();break;case 4:s.finalTallyResult=t.TallyResult.decode(n,n.uint32());break;case 5:s.submitTime=x(u.Timestamp.decode(n,n.uint32()));break;case 6:s.depositEndTime=x(u.Timestamp.decode(n,n.uint32()));break;case 7:s.totalDeposit.push(c.Coin.decode(n,n.uint32()));break;case 8:s.votingStartTime=x(u.Timestamp.decode(n,n.uint32()));break;case 9:s.votingEndTime=x(u.Timestamp.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return s},fromJSON(e){const r=Object.assign({},y);if(r.totalDeposit=[],void 0!==e.proposalId&&null!==e.proposalId?r.proposalId=o.default.fromString(e.proposalId):r.proposalId=o.default.UZERO,void 0!==e.content&&null!==e.content?r.content=a.Any.fromJSON(e.content):r.content=void 0,void 0!==e.status&&null!==e.status?r.status=p(e.status):r.status=0,void 0!==e.finalTallyResult&&null!==e.finalTallyResult?r.finalTallyResult=t.TallyResult.fromJSON(e.finalTallyResult):r.finalTallyResult=void 0,void 0!==e.submitTime&&null!==e.submitTime?r.submitTime=R(e.submitTime):r.submitTime=void 0,void 0!==e.depositEndTime&&null!==e.depositEndTime?r.depositEndTime=R(e.depositEndTime):r.depositEndTime=void 0,void 0!==e.totalDeposit&&null!==e.totalDeposit)for(const t of e.totalDeposit)r.totalDeposit.push(c.Coin.fromJSON(t));return void 0!==e.votingStartTime&&null!==e.votingStartTime?r.votingStartTime=R(e.votingStartTime):r.votingStartTime=void 0,void 0!==e.votingEndTime&&null!==e.votingEndTime?r.votingEndTime=R(e.votingEndTime):r.votingEndTime=void 0,r},toJSON(e){const r={};return void 0!==e.proposalId&&(r.proposalId=(e.proposalId||o.default.UZERO).toString()),void 0!==e.content&&(r.content=e.content?a.Any.toJSON(e.content):void 0),void 0!==e.status&&(r.status=m(e.status)),void 0!==e.finalTallyResult&&(r.finalTallyResult=e.finalTallyResult?t.TallyResult.toJSON(e.finalTallyResult):void 0),void 0!==e.submitTime&&(r.submitTime=e.submitTime.toISOString()),void 0!==e.depositEndTime&&(r.depositEndTime=e.depositEndTime.toISOString()),e.totalDeposit?r.totalDeposit=e.totalDeposit.map((e=>e?c.Coin.toJSON(e):void 0)):r.totalDeposit=[],void 0!==e.votingStartTime&&(r.votingStartTime=e.votingStartTime.toISOString()),void 0!==e.votingEndTime&&(r.votingEndTime=e.votingEndTime.toISOString()),r},fromPartial(e){const r=Object.assign({},y);if(r.totalDeposit=[],void 0!==e.proposalId&&null!==e.proposalId?r.proposalId=e.proposalId:r.proposalId=o.default.UZERO,void 0!==e.content&&null!==e.content?r.content=a.Any.fromPartial(e.content):r.content=void 0,void 0!==e.status&&null!==e.status?r.status=e.status:r.status=0,void 0!==e.finalTallyResult&&null!==e.finalTallyResult?r.finalTallyResult=t.TallyResult.fromPartial(e.finalTallyResult):r.finalTallyResult=void 0,void 0!==e.submitTime&&null!==e.submitTime?r.submitTime=e.submitTime:r.submitTime=void 0,void 0!==e.depositEndTime&&null!==e.depositEndTime?r.depositEndTime=e.depositEndTime:r.depositEndTime=void 0,void 0!==e.totalDeposit&&null!==e.totalDeposit)for(const t of e.totalDeposit)r.totalDeposit.push(c.Coin.fromPartial(t));return void 0!==e.votingStartTime&&null!==e.votingStartTime?r.votingStartTime=e.votingStartTime:r.votingStartTime=void 0,void 0!==e.votingEndTime&&null!==e.votingEndTime?r.votingEndTime=e.votingEndTime:r.votingEndTime=void 0,r}};const w={yes:"",abstain:"",no:"",noWithVeto:""};t.TallyResult={encode:(e,t=i.default.Writer.create())=>(""!==e.yes&&t.uint32(10).string(e.yes),""!==e.abstain&&t.uint32(18).string(e.abstain),""!==e.no&&t.uint32(26).string(e.no),""!==e.noWithVeto&&t.uint32(34).string(e.noWithVeto),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},w);for(;r.pos>>3){case 1:o.yes=r.string();break;case 2:o.abstain=r.string();break;case 3:o.no=r.string();break;case 4:o.noWithVeto=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},w);return void 0!==e.yes&&null!==e.yes?t.yes=String(e.yes):t.yes="",void 0!==e.abstain&&null!==e.abstain?t.abstain=String(e.abstain):t.abstain="",void 0!==e.no&&null!==e.no?t.no=String(e.no):t.no="",void 0!==e.noWithVeto&&null!==e.noWithVeto?t.noWithVeto=String(e.noWithVeto):t.noWithVeto="",t},toJSON(e){const t={};return void 0!==e.yes&&(t.yes=e.yes),void 0!==e.abstain&&(t.abstain=e.abstain),void 0!==e.no&&(t.no=e.no),void 0!==e.noWithVeto&&(t.noWithVeto=e.noWithVeto),t},fromPartial(e){const t=Object.assign({},w);return void 0!==e.yes&&null!==e.yes?t.yes=e.yes:t.yes="",void 0!==e.abstain&&null!==e.abstain?t.abstain=e.abstain:t.abstain="",void 0!==e.no&&null!==e.no?t.no=e.no:t.no="",void 0!==e.noWithVeto&&null!==e.noWithVeto?t.noWithVeto=e.noWithVeto:t.noWithVeto="",t}};const _={proposalId:o.default.UZERO,voter:"",option:0};t.Vote={encode(e,r=i.default.Writer.create()){e.proposalId.isZero()||r.uint32(8).uint64(e.proposalId),""!==e.voter&&r.uint32(18).string(e.voter),0!==e.option&&r.uint32(24).int32(e.option);for(const n of e.options)t.WeightedVoteOption.encode(n,r.uint32(34).fork()).ldelim();return r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},_);for(a.options=[];n.pos>>3){case 1:a.proposalId=n.uint64();break;case 2:a.voter=n.string();break;case 3:a.option=n.int32();break;case 4:a.options.push(t.WeightedVoteOption.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},_);if(r.options=[],void 0!==e.proposalId&&null!==e.proposalId?r.proposalId=o.default.fromString(e.proposalId):r.proposalId=o.default.UZERO,void 0!==e.voter&&null!==e.voter?r.voter=String(e.voter):r.voter="",void 0!==e.option&&null!==e.option?r.option=f(e.option):r.option=0,void 0!==e.options&&null!==e.options)for(const n of e.options)r.options.push(t.WeightedVoteOption.fromJSON(n));return r},toJSON(e){const r={};return void 0!==e.proposalId&&(r.proposalId=(e.proposalId||o.default.UZERO).toString()),void 0!==e.voter&&(r.voter=e.voter),void 0!==e.option&&(r.option=h(e.option)),e.options?r.options=e.options.map((e=>e?t.WeightedVoteOption.toJSON(e):void 0)):r.options=[],r},fromPartial(e){const r=Object.assign({},_);if(r.options=[],void 0!==e.proposalId&&null!==e.proposalId?r.proposalId=e.proposalId:r.proposalId=o.default.UZERO,void 0!==e.voter&&null!==e.voter?r.voter=e.voter:r.voter="",void 0!==e.option&&null!==e.option?r.option=e.option:r.option=0,void 0!==e.options&&null!==e.options)for(const n of e.options)r.options.push(t.WeightedVoteOption.fromPartial(n));return r}};const S={};t.DepositParams={encode(e,t=i.default.Writer.create()){for(const r of e.minDeposit)c.Coin.encode(r,t.uint32(10).fork()).ldelim();return void 0!==e.maxDepositPeriod&&s.Duration.encode(e.maxDepositPeriod,t.uint32(18).fork()).ldelim(),t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},S);for(o.minDeposit=[];r.pos>>3){case 1:o.minDeposit.push(c.Coin.decode(r,r.uint32()));break;case 2:o.maxDepositPeriod=s.Duration.decode(r,r.uint32());break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},S);if(t.minDeposit=[],void 0!==e.minDeposit&&null!==e.minDeposit)for(const r of e.minDeposit)t.minDeposit.push(c.Coin.fromJSON(r));return void 0!==e.maxDepositPeriod&&null!==e.maxDepositPeriod?t.maxDepositPeriod=s.Duration.fromJSON(e.maxDepositPeriod):t.maxDepositPeriod=void 0,t},toJSON(e){const t={};return e.minDeposit?t.minDeposit=e.minDeposit.map((e=>e?c.Coin.toJSON(e):void 0)):t.minDeposit=[],void 0!==e.maxDepositPeriod&&(t.maxDepositPeriod=e.maxDepositPeriod?s.Duration.toJSON(e.maxDepositPeriod):void 0),t},fromPartial(e){const t=Object.assign({},S);if(t.minDeposit=[],void 0!==e.minDeposit&&null!==e.minDeposit)for(const r of e.minDeposit)t.minDeposit.push(c.Coin.fromPartial(r));return void 0!==e.maxDepositPeriod&&null!==e.maxDepositPeriod?t.maxDepositPeriod=s.Duration.fromPartial(e.maxDepositPeriod):t.maxDepositPeriod=void 0,t}};const O={};t.VotingParams={encode:(e,t=i.default.Writer.create())=>(void 0!==e.votingPeriod&&s.Duration.encode(e.votingPeriod,t.uint32(10).fork()).ldelim(),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},O);for(;r.pos>>3==1?o.votingPeriod=s.Duration.decode(r,r.uint32()):r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},O);return void 0!==e.votingPeriod&&null!==e.votingPeriod?t.votingPeriod=s.Duration.fromJSON(e.votingPeriod):t.votingPeriod=void 0,t},toJSON(e){const t={};return void 0!==e.votingPeriod&&(t.votingPeriod=e.votingPeriod?s.Duration.toJSON(e.votingPeriod):void 0),t},fromPartial(e){const t=Object.assign({},O);return void 0!==e.votingPeriod&&null!==e.votingPeriod?t.votingPeriod=s.Duration.fromPartial(e.votingPeriod):t.votingPeriod=void 0,t}};const k={};t.TallyParams={encode:(e,t=i.default.Writer.create())=>(0!==e.quorum.length&&t.uint32(10).bytes(e.quorum),0!==e.threshold.length&&t.uint32(18).bytes(e.threshold),0!==e.vetoThreshold.length&&t.uint32(26).bytes(e.vetoThreshold),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},k);for(o.quorum=new Uint8Array,o.threshold=new Uint8Array,o.vetoThreshold=new Uint8Array;r.pos>>3){case 1:o.quorum=r.bytes();break;case 2:o.threshold=r.bytes();break;case 3:o.vetoThreshold=r.bytes();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},k);return t.quorum=new Uint8Array,t.threshold=new Uint8Array,t.vetoThreshold=new Uint8Array,void 0!==e.quorum&&null!==e.quorum&&(t.quorum=M(e.quorum)),void 0!==e.threshold&&null!==e.threshold&&(t.threshold=M(e.threshold)),void 0!==e.vetoThreshold&&null!==e.vetoThreshold&&(t.vetoThreshold=M(e.vetoThreshold)),t},toJSON(e){const t={};return void 0!==e.quorum&&(t.quorum=C(void 0!==e.quorum?e.quorum:new Uint8Array)),void 0!==e.threshold&&(t.threshold=C(void 0!==e.threshold?e.threshold:new Uint8Array)),void 0!==e.vetoThreshold&&(t.vetoThreshold=C(void 0!==e.vetoThreshold?e.vetoThreshold:new Uint8Array)),t},fromPartial(e){const t=Object.assign({},k);return void 0!==e.quorum&&null!==e.quorum?t.quorum=e.quorum:t.quorum=new Uint8Array,void 0!==e.threshold&&null!==e.threshold?t.threshold=e.threshold:t.threshold=new Uint8Array,void 0!==e.vetoThreshold&&null!==e.vetoThreshold?t.vetoThreshold=e.vetoThreshold:t.vetoThreshold=new Uint8Array,t}};var A=(()=>{if(void 0!==A)return A;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==r.g)return r.g;throw"Unable to locate global object"})();const P=A.atob||(e=>A.Buffer.from(e,"base64").toString("binary"));function M(e){const t=P(e),r=new Uint8Array(t.length);for(let e=0;eA.Buffer.from(e,"binary").toString("base64"));function C(e){const t=[];for(const r of e)t.push(String.fromCharCode(r));return E(t.join(""))}function N(e){var t;return{seconds:(t=e.getTime()/1e3,o.default.fromNumber(t)),nanos:e.getTime()%1e3*1e6}}function x(e){let t=1e3*e.seconds.toNumber();return t+=e.nanos/1e6,new Date(t)}function R(e){return e instanceof Date?e:"string"==typeof e?new Date(e):x(u.Timestamp.fromJSON(e))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},63496:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.GrpcWebImpl=t.MsgDepositDesc=t.MsgVoteWeightedDesc=t.MsgVoteDesc=t.MsgSubmitProposalDesc=t.MsgDesc=t.MsgClientImpl=t.MsgDepositResponse=t.MsgDeposit=t.MsgVoteWeightedResponse=t.MsgVoteWeighted=t.MsgVoteResponse=t.MsgVote=t.MsgSubmitProposalResponse=t.MsgSubmitProposal=t.protobufPackage=void 0;const o=n(r(24067)),i=r(66959),a=n(r(63967)),s=r(17063),u=r(34431),c=r(62200),d=r(49545);t.protobufPackage="cosmos.gov.v1beta1";const l={proposer:""};t.MsgSubmitProposal={encode(e,t=a.default.Writer.create()){void 0!==e.content&&s.Any.encode(e.content,t.uint32(10).fork()).ldelim();for(const r of e.initialDeposit)d.Coin.encode(r,t.uint32(18).fork()).ldelim();return""!==e.proposer&&t.uint32(26).string(e.proposer),t},decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},l);for(o.initialDeposit=[];r.pos>>3){case 1:o.content=s.Any.decode(r,r.uint32());break;case 2:o.initialDeposit.push(d.Coin.decode(r,r.uint32()));break;case 3:o.proposer=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},l);if(t.initialDeposit=[],void 0!==e.content&&null!==e.content?t.content=s.Any.fromJSON(e.content):t.content=void 0,void 0!==e.initialDeposit&&null!==e.initialDeposit)for(const r of e.initialDeposit)t.initialDeposit.push(d.Coin.fromJSON(r));return void 0!==e.proposer&&null!==e.proposer?t.proposer=String(e.proposer):t.proposer="",t},toJSON(e){const t={};return void 0!==e.content&&(t.content=e.content?s.Any.toJSON(e.content):void 0),e.initialDeposit?t.initialDeposit=e.initialDeposit.map((e=>e?d.Coin.toJSON(e):void 0)):t.initialDeposit=[],void 0!==e.proposer&&(t.proposer=e.proposer),t},fromPartial(e){const t=Object.assign({},l);if(t.initialDeposit=[],void 0!==e.content&&null!==e.content?t.content=s.Any.fromPartial(e.content):t.content=void 0,void 0!==e.initialDeposit&&null!==e.initialDeposit)for(const r of e.initialDeposit)t.initialDeposit.push(d.Coin.fromPartial(r));return void 0!==e.proposer&&null!==e.proposer?t.proposer=e.proposer:t.proposer="",t}};const f={proposalId:o.default.UZERO};t.MsgSubmitProposalResponse={encode:(e,t=a.default.Writer.create())=>(e.proposalId.isZero()||t.uint32(8).uint64(e.proposalId),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},f);for(;r.pos>>3==1?o.proposalId=r.uint64():r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},f);return void 0!==e.proposalId&&null!==e.proposalId?t.proposalId=o.default.fromString(e.proposalId):t.proposalId=o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.proposalId&&(t.proposalId=(e.proposalId||o.default.UZERO).toString()),t},fromPartial(e){const t=Object.assign({},f);return void 0!==e.proposalId&&null!==e.proposalId?t.proposalId=e.proposalId:t.proposalId=o.default.UZERO,t}};const h={proposalId:o.default.UZERO,voter:"",option:0};t.MsgVote={encode:(e,t=a.default.Writer.create())=>(e.proposalId.isZero()||t.uint32(8).uint64(e.proposalId),""!==e.voter&&t.uint32(18).string(e.voter),0!==e.option&&t.uint32(24).int32(e.option),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},h);for(;r.pos>>3){case 1:o.proposalId=r.uint64();break;case 2:o.voter=r.string();break;case 3:o.option=r.int32();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},h);return void 0!==e.proposalId&&null!==e.proposalId?t.proposalId=o.default.fromString(e.proposalId):t.proposalId=o.default.UZERO,void 0!==e.voter&&null!==e.voter?t.voter=String(e.voter):t.voter="",void 0!==e.option&&null!==e.option?t.option=u.voteOptionFromJSON(e.option):t.option=0,t},toJSON(e){const t={};return void 0!==e.proposalId&&(t.proposalId=(e.proposalId||o.default.UZERO).toString()),void 0!==e.voter&&(t.voter=e.voter),void 0!==e.option&&(t.option=u.voteOptionToJSON(e.option)),t},fromPartial(e){const t=Object.assign({},h);return void 0!==e.proposalId&&null!==e.proposalId?t.proposalId=e.proposalId:t.proposalId=o.default.UZERO,void 0!==e.voter&&null!==e.voter?t.voter=e.voter:t.voter="",void 0!==e.option&&null!==e.option?t.option=e.option:t.option=0,t}};const p={};t.MsgVoteResponse={encode:(e,t=a.default.Writer.create())=>t,decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},p);for(;r.posObject.assign({},p),toJSON:e=>({}),fromPartial:e=>Object.assign({},p)};const m={proposalId:o.default.UZERO,voter:""};t.MsgVoteWeighted={encode(e,t=a.default.Writer.create()){e.proposalId.isZero()||t.uint32(8).uint64(e.proposalId),""!==e.voter&&t.uint32(18).string(e.voter);for(const r of e.options)u.WeightedVoteOption.encode(r,t.uint32(26).fork()).ldelim();return t},decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},m);for(o.options=[];r.pos>>3){case 1:o.proposalId=r.uint64();break;case 2:o.voter=r.string();break;case 3:o.options.push(u.WeightedVoteOption.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},m);if(t.options=[],void 0!==e.proposalId&&null!==e.proposalId?t.proposalId=o.default.fromString(e.proposalId):t.proposalId=o.default.UZERO,void 0!==e.voter&&null!==e.voter?t.voter=String(e.voter):t.voter="",void 0!==e.options&&null!==e.options)for(const r of e.options)t.options.push(u.WeightedVoteOption.fromJSON(r));return t},toJSON(e){const t={};return void 0!==e.proposalId&&(t.proposalId=(e.proposalId||o.default.UZERO).toString()),void 0!==e.voter&&(t.voter=e.voter),e.options?t.options=e.options.map((e=>e?u.WeightedVoteOption.toJSON(e):void 0)):t.options=[],t},fromPartial(e){const t=Object.assign({},m);if(t.options=[],void 0!==e.proposalId&&null!==e.proposalId?t.proposalId=e.proposalId:t.proposalId=o.default.UZERO,void 0!==e.voter&&null!==e.voter?t.voter=e.voter:t.voter="",void 0!==e.options&&null!==e.options)for(const r of e.options)t.options.push(u.WeightedVoteOption.fromPartial(r));return t}};const g={};t.MsgVoteWeightedResponse={encode:(e,t=a.default.Writer.create())=>t,decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},g);for(;r.posObject.assign({},g),toJSON:e=>({}),fromPartial:e=>Object.assign({},g)};const v={proposalId:o.default.UZERO,depositor:""};t.MsgDeposit={encode(e,t=a.default.Writer.create()){e.proposalId.isZero()||t.uint32(8).uint64(e.proposalId),""!==e.depositor&&t.uint32(18).string(e.depositor);for(const r of e.amount)d.Coin.encode(r,t.uint32(26).fork()).ldelim();return t},decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},v);for(o.amount=[];r.pos>>3){case 1:o.proposalId=r.uint64();break;case 2:o.depositor=r.string();break;case 3:o.amount.push(d.Coin.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},v);if(t.amount=[],void 0!==e.proposalId&&null!==e.proposalId?t.proposalId=o.default.fromString(e.proposalId):t.proposalId=o.default.UZERO,void 0!==e.depositor&&null!==e.depositor?t.depositor=String(e.depositor):t.depositor="",void 0!==e.amount&&null!==e.amount)for(const r of e.amount)t.amount.push(d.Coin.fromJSON(r));return t},toJSON(e){const t={};return void 0!==e.proposalId&&(t.proposalId=(e.proposalId||o.default.UZERO).toString()),void 0!==e.depositor&&(t.depositor=e.depositor),e.amount?t.amount=e.amount.map((e=>e?d.Coin.toJSON(e):void 0)):t.amount=[],t},fromPartial(e){const t=Object.assign({},v);if(t.amount=[],void 0!==e.proposalId&&null!==e.proposalId?t.proposalId=e.proposalId:t.proposalId=o.default.UZERO,void 0!==e.depositor&&null!==e.depositor?t.depositor=e.depositor:t.depositor="",void 0!==e.amount&&null!==e.amount)for(const r of e.amount)t.amount.push(d.Coin.fromPartial(r));return t}};const b={};t.MsgDepositResponse={encode:(e,t=a.default.Writer.create())=>t,decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},b);for(;r.posObject.assign({},b),toJSON:e=>({}),fromPartial:e=>Object.assign({},b)},t.MsgClientImpl=class{constructor(e){this.rpc=e,this.SubmitProposal=this.SubmitProposal.bind(this),this.Vote=this.Vote.bind(this),this.VoteWeighted=this.VoteWeighted.bind(this),this.Deposit=this.Deposit.bind(this)}SubmitProposal(e,r){return this.rpc.unary(t.MsgSubmitProposalDesc,t.MsgSubmitProposal.fromPartial(e),r)}Vote(e,r){return this.rpc.unary(t.MsgVoteDesc,t.MsgVote.fromPartial(e),r)}VoteWeighted(e,r){return this.rpc.unary(t.MsgVoteWeightedDesc,t.MsgVoteWeighted.fromPartial(e),r)}Deposit(e,r){return this.rpc.unary(t.MsgDepositDesc,t.MsgDeposit.fromPartial(e),r)}},t.MsgDesc={serviceName:"cosmos.gov.v1beta1.Msg"},t.MsgSubmitProposalDesc={methodName:"SubmitProposal",service:t.MsgDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.MsgSubmitProposal.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.MsgSubmitProposalResponse.decode(e)),{toObject(){return this}})}},t.MsgVoteDesc={methodName:"Vote",service:t.MsgDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.MsgVote.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.MsgVoteResponse.decode(e)),{toObject(){return this}})}},t.MsgVoteWeightedDesc={methodName:"VoteWeighted",service:t.MsgDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.MsgVoteWeighted.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.MsgVoteWeightedResponse.decode(e)),{toObject(){return this}})}},t.MsgDepositDesc={methodName:"Deposit",service:t.MsgDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.MsgDeposit.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.MsgDepositResponse.decode(e)),{toObject(){return this}})}},t.GrpcWebImpl=class{constructor(e,t){this.host=e,this.options=t}unary(e,t,r){var n;const o=Object.assign(Object.assign({},t),e.requestType),a=r&&this.options.metadata?new c.BrowserHeaders(Object.assign(Object.assign({},null===(n=this.options)||void 0===n?void 0:n.metadata.headersMap),null==r?void 0:r.headersMap)):r||this.options.metadata;return new Promise(((t,r)=>{i.grpc.unary(e,{request:o,host:this.host,metadata:a,transport:this.options.transport,debug:this.options.debug,onEnd:function(e){if(e.status===i.grpc.Code.OK)t(e.message);else{const t=new Error(e.statusMessage);t.code=e.status,t.metadata=e.trailers,r(t)}}})}))}},a.default.util.Long!==o.default&&(a.default.util.Long=o.default,a.default.configure())},91128:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ParamChange=t.ParameterChangeProposal=t.protobufPackage=void 0;const o=n(r(24067)),i=n(r(63967));t.protobufPackage="cosmos.params.v1beta1";const a={title:"",description:""};t.ParameterChangeProposal={encode(e,r=i.default.Writer.create()){""!==e.title&&r.uint32(10).string(e.title),""!==e.description&&r.uint32(18).string(e.description);for(const n of e.changes)t.ParamChange.encode(n,r.uint32(26).fork()).ldelim();return r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const s=Object.assign({},a);for(s.changes=[];n.pos>>3){case 1:s.title=n.string();break;case 2:s.description=n.string();break;case 3:s.changes.push(t.ParamChange.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return s},fromJSON(e){const r=Object.assign({},a);if(r.changes=[],void 0!==e.title&&null!==e.title?r.title=String(e.title):r.title="",void 0!==e.description&&null!==e.description?r.description=String(e.description):r.description="",void 0!==e.changes&&null!==e.changes)for(const n of e.changes)r.changes.push(t.ParamChange.fromJSON(n));return r},toJSON(e){const r={};return void 0!==e.title&&(r.title=e.title),void 0!==e.description&&(r.description=e.description),e.changes?r.changes=e.changes.map((e=>e?t.ParamChange.toJSON(e):void 0)):r.changes=[],r},fromPartial(e){const r=Object.assign({},a);if(r.changes=[],void 0!==e.title&&null!==e.title?r.title=e.title:r.title="",void 0!==e.description&&null!==e.description?r.description=e.description:r.description="",void 0!==e.changes&&null!==e.changes)for(const n of e.changes)r.changes.push(t.ParamChange.fromPartial(n));return r}};const s={subspace:"",key:"",value:""};t.ParamChange={encode:(e,t=i.default.Writer.create())=>(""!==e.subspace&&t.uint32(10).string(e.subspace),""!==e.key&&t.uint32(18).string(e.key),""!==e.value&&t.uint32(26).string(e.value),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},s);for(;r.pos>>3){case 1:o.subspace=r.string();break;case 2:o.key=r.string();break;case 3:o.value=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},s);return void 0!==e.subspace&&null!==e.subspace?t.subspace=String(e.subspace):t.subspace="",void 0!==e.key&&null!==e.key?t.key=String(e.key):t.key="",void 0!==e.value&&null!==e.value?t.value=String(e.value):t.value="",t},toJSON(e){const t={};return void 0!==e.subspace&&(t.subspace=e.subspace),void 0!==e.key&&(t.key=e.key),void 0!==e.value&&(t.value=e.value),t},fromPartial(e){const t=Object.assign({},s);return void 0!==e.subspace&&null!==e.subspace?t.subspace=e.subspace:t.subspace="",void 0!==e.key&&null!==e.key?t.key=e.key:t.key="",void 0!==e.value&&null!==e.value?t.value=e.value:t.value="",t}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},64753:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.GrpcWebImpl=t.MsgUnjailDesc=t.MsgDesc=t.MsgClientImpl=t.MsgUnjailResponse=t.MsgUnjail=t.protobufPackage=void 0;const o=n(r(24067)),i=r(66959),a=n(r(63967)),s=r(62200);t.protobufPackage="cosmos.slashing.v1beta1";const u={validatorAddr:""};t.MsgUnjail={encode:(e,t=a.default.Writer.create())=>(""!==e.validatorAddr&&t.uint32(10).string(e.validatorAddr),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},u);for(;r.pos>>3==1?o.validatorAddr=r.string():r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},u);return void 0!==e.validatorAddr&&null!==e.validatorAddr?t.validatorAddr=String(e.validatorAddr):t.validatorAddr="",t},toJSON(e){const t={};return void 0!==e.validatorAddr&&(t.validatorAddr=e.validatorAddr),t},fromPartial(e){const t=Object.assign({},u);return void 0!==e.validatorAddr&&null!==e.validatorAddr?t.validatorAddr=e.validatorAddr:t.validatorAddr="",t}};const c={};t.MsgUnjailResponse={encode:(e,t=a.default.Writer.create())=>t,decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},c);for(;r.posObject.assign({},c),toJSON:e=>({}),fromPartial:e=>Object.assign({},c)},t.MsgClientImpl=class{constructor(e){this.rpc=e,this.Unjail=this.Unjail.bind(this)}Unjail(e,r){return this.rpc.unary(t.MsgUnjailDesc,t.MsgUnjail.fromPartial(e),r)}},t.MsgDesc={serviceName:"cosmos.slashing.v1beta1.Msg"},t.MsgUnjailDesc={methodName:"Unjail",service:t.MsgDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.MsgUnjail.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.MsgUnjailResponse.decode(e)),{toObject(){return this}})}},t.GrpcWebImpl=class{constructor(e,t){this.host=e,this.options=t}unary(e,t,r){var n;const o=Object.assign(Object.assign({},t),e.requestType),a=r&&this.options.metadata?new s.BrowserHeaders(Object.assign(Object.assign({},null===(n=this.options)||void 0===n?void 0:n.metadata.headersMap),null==r?void 0:r.headersMap)):r||this.options.metadata;return new Promise(((t,r)=>{i.grpc.unary(e,{request:o,host:this.host,metadata:a,transport:this.options.transport,debug:this.options.debug,onEnd:function(e){if(e.status===i.grpc.Code.OK)t(e.message);else{const t=new Error(e.statusMessage);t.code=e.status,t.metadata=e.trailers,r(t)}}})}))}},a.default.util.Long!==o.default&&(a.default.util.Long=o.default,a.default.configure())},80198:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.StakeAuthorization_Validators=t.StakeAuthorization=t.authorizationTypeToJSON=t.authorizationTypeFromJSON=t.AuthorizationType=t.protobufPackage=void 0;const o=n(r(24067)),i=n(r(63967)),a=r(49545);var s;function u(e){switch(e){case 0:case"AUTHORIZATION_TYPE_UNSPECIFIED":return s.AUTHORIZATION_TYPE_UNSPECIFIED;case 1:case"AUTHORIZATION_TYPE_DELEGATE":return s.AUTHORIZATION_TYPE_DELEGATE;case 2:case"AUTHORIZATION_TYPE_UNDELEGATE":return s.AUTHORIZATION_TYPE_UNDELEGATE;case 3:case"AUTHORIZATION_TYPE_REDELEGATE":return s.AUTHORIZATION_TYPE_REDELEGATE;default:return s.UNRECOGNIZED}}function c(e){switch(e){case s.AUTHORIZATION_TYPE_UNSPECIFIED:return"AUTHORIZATION_TYPE_UNSPECIFIED";case s.AUTHORIZATION_TYPE_DELEGATE:return"AUTHORIZATION_TYPE_DELEGATE";case s.AUTHORIZATION_TYPE_UNDELEGATE:return"AUTHORIZATION_TYPE_UNDELEGATE";case s.AUTHORIZATION_TYPE_REDELEGATE:return"AUTHORIZATION_TYPE_REDELEGATE";default:return"UNKNOWN"}}t.protobufPackage="cosmos.staking.v1beta1",function(e){e[e.AUTHORIZATION_TYPE_UNSPECIFIED=0]="AUTHORIZATION_TYPE_UNSPECIFIED",e[e.AUTHORIZATION_TYPE_DELEGATE=1]="AUTHORIZATION_TYPE_DELEGATE",e[e.AUTHORIZATION_TYPE_UNDELEGATE=2]="AUTHORIZATION_TYPE_UNDELEGATE",e[e.AUTHORIZATION_TYPE_REDELEGATE=3]="AUTHORIZATION_TYPE_REDELEGATE",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(s=t.AuthorizationType||(t.AuthorizationType={})),t.authorizationTypeFromJSON=u,t.authorizationTypeToJSON=c;const d={authorizationType:0};t.StakeAuthorization={encode:(e,r=i.default.Writer.create())=>(void 0!==e.maxTokens&&a.Coin.encode(e.maxTokens,r.uint32(10).fork()).ldelim(),void 0!==e.allowList&&t.StakeAuthorization_Validators.encode(e.allowList,r.uint32(18).fork()).ldelim(),void 0!==e.denyList&&t.StakeAuthorization_Validators.encode(e.denyList,r.uint32(26).fork()).ldelim(),0!==e.authorizationType&&r.uint32(32).int32(e.authorizationType),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const s=Object.assign({},d);for(;n.pos>>3){case 1:s.maxTokens=a.Coin.decode(n,n.uint32());break;case 2:s.allowList=t.StakeAuthorization_Validators.decode(n,n.uint32());break;case 3:s.denyList=t.StakeAuthorization_Validators.decode(n,n.uint32());break;case 4:s.authorizationType=n.int32();break;default:n.skipType(7&e)}}return s},fromJSON(e){const r=Object.assign({},d);return void 0!==e.maxTokens&&null!==e.maxTokens?r.maxTokens=a.Coin.fromJSON(e.maxTokens):r.maxTokens=void 0,void 0!==e.allowList&&null!==e.allowList?r.allowList=t.StakeAuthorization_Validators.fromJSON(e.allowList):r.allowList=void 0,void 0!==e.denyList&&null!==e.denyList?r.denyList=t.StakeAuthorization_Validators.fromJSON(e.denyList):r.denyList=void 0,void 0!==e.authorizationType&&null!==e.authorizationType?r.authorizationType=u(e.authorizationType):r.authorizationType=0,r},toJSON(e){const r={};return void 0!==e.maxTokens&&(r.maxTokens=e.maxTokens?a.Coin.toJSON(e.maxTokens):void 0),void 0!==e.allowList&&(r.allowList=e.allowList?t.StakeAuthorization_Validators.toJSON(e.allowList):void 0),void 0!==e.denyList&&(r.denyList=e.denyList?t.StakeAuthorization_Validators.toJSON(e.denyList):void 0),void 0!==e.authorizationType&&(r.authorizationType=c(e.authorizationType)),r},fromPartial(e){const r=Object.assign({},d);return void 0!==e.maxTokens&&null!==e.maxTokens?r.maxTokens=a.Coin.fromPartial(e.maxTokens):r.maxTokens=void 0,void 0!==e.allowList&&null!==e.allowList?r.allowList=t.StakeAuthorization_Validators.fromPartial(e.allowList):r.allowList=void 0,void 0!==e.denyList&&null!==e.denyList?r.denyList=t.StakeAuthorization_Validators.fromPartial(e.denyList):r.denyList=void 0,void 0!==e.authorizationType&&null!==e.authorizationType?r.authorizationType=e.authorizationType:r.authorizationType=0,r}};const l={address:""};t.StakeAuthorization_Validators={encode(e,t=i.default.Writer.create()){for(const r of e.address)t.uint32(10).string(r);return t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},l);for(o.address=[];r.pos>>3==1?o.address.push(r.string()):r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},l);if(t.address=[],void 0!==e.address&&null!==e.address)for(const r of e.address)t.address.push(String(r));return t},toJSON(e){const t={};return e.address?t.address=e.address.map((e=>e)):t.address=[],t},fromPartial(e){const t=Object.assign({},l);if(t.address=[],void 0!==e.address&&null!==e.address)for(const r of e.address)t.address.push(r);return t}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},41724:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Pool=t.RedelegationResponse=t.RedelegationEntryResponse=t.DelegationResponse=t.Params=t.Redelegation=t.RedelegationEntry=t.UnbondingDelegationEntry=t.UnbondingDelegation=t.Delegation=t.DVVTriplets=t.DVVTriplet=t.DVPairs=t.DVPair=t.ValAddresses=t.Validator=t.Description=t.Commission=t.CommissionRates=t.HistoricalInfo=t.bondStatusToJSON=t.bondStatusFromJSON=t.BondStatus=t.protobufPackage=void 0;const o=n(r(24067)),i=n(r(63967)),a=r(29387),s=r(17063),u=r(54462),c=r(49545),d=r(46759);var l;function f(e){switch(e){case 0:case"BOND_STATUS_UNSPECIFIED":return l.BOND_STATUS_UNSPECIFIED;case 1:case"BOND_STATUS_UNBONDED":return l.BOND_STATUS_UNBONDED;case 2:case"BOND_STATUS_UNBONDING":return l.BOND_STATUS_UNBONDING;case 3:case"BOND_STATUS_BONDED":return l.BOND_STATUS_BONDED;default:return l.UNRECOGNIZED}}function h(e){switch(e){case l.BOND_STATUS_UNSPECIFIED:return"BOND_STATUS_UNSPECIFIED";case l.BOND_STATUS_UNBONDED:return"BOND_STATUS_UNBONDED";case l.BOND_STATUS_UNBONDING:return"BOND_STATUS_UNBONDING";case l.BOND_STATUS_BONDED:return"BOND_STATUS_BONDED";default:return"UNKNOWN"}}t.protobufPackage="cosmos.staking.v1beta1",function(e){e[e.BOND_STATUS_UNSPECIFIED=0]="BOND_STATUS_UNSPECIFIED",e[e.BOND_STATUS_UNBONDED=1]="BOND_STATUS_UNBONDED",e[e.BOND_STATUS_UNBONDING=2]="BOND_STATUS_UNBONDING",e[e.BOND_STATUS_BONDED=3]="BOND_STATUS_BONDED",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(l=t.BondStatus||(t.BondStatus={})),t.bondStatusFromJSON=f,t.bondStatusToJSON=h;const p={};t.HistoricalInfo={encode(e,r=i.default.Writer.create()){void 0!==e.header&&a.Header.encode(e.header,r.uint32(10).fork()).ldelim();for(const n of e.valset)t.Validator.encode(n,r.uint32(18).fork()).ldelim();return r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const s=Object.assign({},p);for(s.valset=[];n.pos>>3){case 1:s.header=a.Header.decode(n,n.uint32());break;case 2:s.valset.push(t.Validator.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return s},fromJSON(e){const r=Object.assign({},p);if(r.valset=[],void 0!==e.header&&null!==e.header?r.header=a.Header.fromJSON(e.header):r.header=void 0,void 0!==e.valset&&null!==e.valset)for(const n of e.valset)r.valset.push(t.Validator.fromJSON(n));return r},toJSON(e){const r={};return void 0!==e.header&&(r.header=e.header?a.Header.toJSON(e.header):void 0),e.valset?r.valset=e.valset.map((e=>e?t.Validator.toJSON(e):void 0)):r.valset=[],r},fromPartial(e){const r=Object.assign({},p);if(r.valset=[],void 0!==e.header&&null!==e.header?r.header=a.Header.fromPartial(e.header):r.header=void 0,void 0!==e.valset&&null!==e.valset)for(const n of e.valset)r.valset.push(t.Validator.fromPartial(n));return r}};const m={rate:"",maxRate:"",maxChangeRate:""};t.CommissionRates={encode:(e,t=i.default.Writer.create())=>(""!==e.rate&&t.uint32(10).string(e.rate),""!==e.maxRate&&t.uint32(18).string(e.maxRate),""!==e.maxChangeRate&&t.uint32(26).string(e.maxChangeRate),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},m);for(;r.pos>>3){case 1:o.rate=r.string();break;case 2:o.maxRate=r.string();break;case 3:o.maxChangeRate=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},m);return void 0!==e.rate&&null!==e.rate?t.rate=String(e.rate):t.rate="",void 0!==e.maxRate&&null!==e.maxRate?t.maxRate=String(e.maxRate):t.maxRate="",void 0!==e.maxChangeRate&&null!==e.maxChangeRate?t.maxChangeRate=String(e.maxChangeRate):t.maxChangeRate="",t},toJSON(e){const t={};return void 0!==e.rate&&(t.rate=e.rate),void 0!==e.maxRate&&(t.maxRate=e.maxRate),void 0!==e.maxChangeRate&&(t.maxChangeRate=e.maxChangeRate),t},fromPartial(e){const t=Object.assign({},m);return void 0!==e.rate&&null!==e.rate?t.rate=e.rate:t.rate="",void 0!==e.maxRate&&null!==e.maxRate?t.maxRate=e.maxRate:t.maxRate="",void 0!==e.maxChangeRate&&null!==e.maxChangeRate?t.maxChangeRate=e.maxChangeRate:t.maxChangeRate="",t}};const g={};t.Commission={encode:(e,r=i.default.Writer.create())=>(void 0!==e.commissionRates&&t.CommissionRates.encode(e.commissionRates,r.uint32(10).fork()).ldelim(),void 0!==e.updateTime&&d.Timestamp.encode(T(e.updateTime),r.uint32(18).fork()).ldelim(),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},g);for(;n.pos>>3){case 1:a.commissionRates=t.CommissionRates.decode(n,n.uint32());break;case 2:a.updateTime=j(d.Timestamp.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},g);return void 0!==e.commissionRates&&null!==e.commissionRates?r.commissionRates=t.CommissionRates.fromJSON(e.commissionRates):r.commissionRates=void 0,void 0!==e.updateTime&&null!==e.updateTime?r.updateTime=D(e.updateTime):r.updateTime=void 0,r},toJSON(e){const r={};return void 0!==e.commissionRates&&(r.commissionRates=e.commissionRates?t.CommissionRates.toJSON(e.commissionRates):void 0),void 0!==e.updateTime&&(r.updateTime=e.updateTime.toISOString()),r},fromPartial(e){const r=Object.assign({},g);return void 0!==e.commissionRates&&null!==e.commissionRates?r.commissionRates=t.CommissionRates.fromPartial(e.commissionRates):r.commissionRates=void 0,void 0!==e.updateTime&&null!==e.updateTime?r.updateTime=e.updateTime:r.updateTime=void 0,r}};const v={moniker:"",identity:"",website:"",securityContact:"",details:""};t.Description={encode:(e,t=i.default.Writer.create())=>(""!==e.moniker&&t.uint32(10).string(e.moniker),""!==e.identity&&t.uint32(18).string(e.identity),""!==e.website&&t.uint32(26).string(e.website),""!==e.securityContact&&t.uint32(34).string(e.securityContact),""!==e.details&&t.uint32(42).string(e.details),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},v);for(;r.pos>>3){case 1:o.moniker=r.string();break;case 2:o.identity=r.string();break;case 3:o.website=r.string();break;case 4:o.securityContact=r.string();break;case 5:o.details=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},v);return void 0!==e.moniker&&null!==e.moniker?t.moniker=String(e.moniker):t.moniker="",void 0!==e.identity&&null!==e.identity?t.identity=String(e.identity):t.identity="",void 0!==e.website&&null!==e.website?t.website=String(e.website):t.website="",void 0!==e.securityContact&&null!==e.securityContact?t.securityContact=String(e.securityContact):t.securityContact="",void 0!==e.details&&null!==e.details?t.details=String(e.details):t.details="",t},toJSON(e){const t={};return void 0!==e.moniker&&(t.moniker=e.moniker),void 0!==e.identity&&(t.identity=e.identity),void 0!==e.website&&(t.website=e.website),void 0!==e.securityContact&&(t.securityContact=e.securityContact),void 0!==e.details&&(t.details=e.details),t},fromPartial(e){const t=Object.assign({},v);return void 0!==e.moniker&&null!==e.moniker?t.moniker=e.moniker:t.moniker="",void 0!==e.identity&&null!==e.identity?t.identity=e.identity:t.identity="",void 0!==e.website&&null!==e.website?t.website=e.website:t.website="",void 0!==e.securityContact&&null!==e.securityContact?t.securityContact=e.securityContact:t.securityContact="",void 0!==e.details&&null!==e.details?t.details=e.details:t.details="",t}};const b={operatorAddress:"",jailed:!1,status:0,tokens:"",delegatorShares:"",unbondingHeight:o.default.ZERO,minSelfDelegation:""};t.Validator={encode:(e,r=i.default.Writer.create())=>(""!==e.operatorAddress&&r.uint32(10).string(e.operatorAddress),void 0!==e.consensusPubkey&&s.Any.encode(e.consensusPubkey,r.uint32(18).fork()).ldelim(),!0===e.jailed&&r.uint32(24).bool(e.jailed),0!==e.status&&r.uint32(32).int32(e.status),""!==e.tokens&&r.uint32(42).string(e.tokens),""!==e.delegatorShares&&r.uint32(50).string(e.delegatorShares),void 0!==e.description&&t.Description.encode(e.description,r.uint32(58).fork()).ldelim(),e.unbondingHeight.isZero()||r.uint32(64).int64(e.unbondingHeight),void 0!==e.unbondingTime&&d.Timestamp.encode(T(e.unbondingTime),r.uint32(74).fork()).ldelim(),void 0!==e.commission&&t.Commission.encode(e.commission,r.uint32(82).fork()).ldelim(),""!==e.minSelfDelegation&&r.uint32(90).string(e.minSelfDelegation),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},b);for(;n.pos>>3){case 1:a.operatorAddress=n.string();break;case 2:a.consensusPubkey=s.Any.decode(n,n.uint32());break;case 3:a.jailed=n.bool();break;case 4:a.status=n.int32();break;case 5:a.tokens=n.string();break;case 6:a.delegatorShares=n.string();break;case 7:a.description=t.Description.decode(n,n.uint32());break;case 8:a.unbondingHeight=n.int64();break;case 9:a.unbondingTime=j(d.Timestamp.decode(n,n.uint32()));break;case 10:a.commission=t.Commission.decode(n,n.uint32());break;case 11:a.minSelfDelegation=n.string();break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},b);return void 0!==e.operatorAddress&&null!==e.operatorAddress?r.operatorAddress=String(e.operatorAddress):r.operatorAddress="",void 0!==e.consensusPubkey&&null!==e.consensusPubkey?r.consensusPubkey=s.Any.fromJSON(e.consensusPubkey):r.consensusPubkey=void 0,void 0!==e.jailed&&null!==e.jailed?r.jailed=Boolean(e.jailed):r.jailed=!1,void 0!==e.status&&null!==e.status?r.status=f(e.status):r.status=0,void 0!==e.tokens&&null!==e.tokens?r.tokens=String(e.tokens):r.tokens="",void 0!==e.delegatorShares&&null!==e.delegatorShares?r.delegatorShares=String(e.delegatorShares):r.delegatorShares="",void 0!==e.description&&null!==e.description?r.description=t.Description.fromJSON(e.description):r.description=void 0,void 0!==e.unbondingHeight&&null!==e.unbondingHeight?r.unbondingHeight=o.default.fromString(e.unbondingHeight):r.unbondingHeight=o.default.ZERO,void 0!==e.unbondingTime&&null!==e.unbondingTime?r.unbondingTime=D(e.unbondingTime):r.unbondingTime=void 0,void 0!==e.commission&&null!==e.commission?r.commission=t.Commission.fromJSON(e.commission):r.commission=void 0,void 0!==e.minSelfDelegation&&null!==e.minSelfDelegation?r.minSelfDelegation=String(e.minSelfDelegation):r.minSelfDelegation="",r},toJSON(e){const r={};return void 0!==e.operatorAddress&&(r.operatorAddress=e.operatorAddress),void 0!==e.consensusPubkey&&(r.consensusPubkey=e.consensusPubkey?s.Any.toJSON(e.consensusPubkey):void 0),void 0!==e.jailed&&(r.jailed=e.jailed),void 0!==e.status&&(r.status=h(e.status)),void 0!==e.tokens&&(r.tokens=e.tokens),void 0!==e.delegatorShares&&(r.delegatorShares=e.delegatorShares),void 0!==e.description&&(r.description=e.description?t.Description.toJSON(e.description):void 0),void 0!==e.unbondingHeight&&(r.unbondingHeight=(e.unbondingHeight||o.default.ZERO).toString()),void 0!==e.unbondingTime&&(r.unbondingTime=e.unbondingTime.toISOString()),void 0!==e.commission&&(r.commission=e.commission?t.Commission.toJSON(e.commission):void 0),void 0!==e.minSelfDelegation&&(r.minSelfDelegation=e.minSelfDelegation),r},fromPartial(e){const r=Object.assign({},b);return void 0!==e.operatorAddress&&null!==e.operatorAddress?r.operatorAddress=e.operatorAddress:r.operatorAddress="",void 0!==e.consensusPubkey&&null!==e.consensusPubkey?r.consensusPubkey=s.Any.fromPartial(e.consensusPubkey):r.consensusPubkey=void 0,void 0!==e.jailed&&null!==e.jailed?r.jailed=e.jailed:r.jailed=!1,void 0!==e.status&&null!==e.status?r.status=e.status:r.status=0,void 0!==e.tokens&&null!==e.tokens?r.tokens=e.tokens:r.tokens="",void 0!==e.delegatorShares&&null!==e.delegatorShares?r.delegatorShares=e.delegatorShares:r.delegatorShares="",void 0!==e.description&&null!==e.description?r.description=t.Description.fromPartial(e.description):r.description=void 0,void 0!==e.unbondingHeight&&null!==e.unbondingHeight?r.unbondingHeight=e.unbondingHeight:r.unbondingHeight=o.default.ZERO,void 0!==e.unbondingTime&&null!==e.unbondingTime?r.unbondingTime=e.unbondingTime:r.unbondingTime=void 0,void 0!==e.commission&&null!==e.commission?r.commission=t.Commission.fromPartial(e.commission):r.commission=void 0,void 0!==e.minSelfDelegation&&null!==e.minSelfDelegation?r.minSelfDelegation=e.minSelfDelegation:r.minSelfDelegation="",r}};const y={addresses:""};t.ValAddresses={encode(e,t=i.default.Writer.create()){for(const r of e.addresses)t.uint32(10).string(r);return t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},y);for(o.addresses=[];r.pos>>3==1?o.addresses.push(r.string()):r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},y);if(t.addresses=[],void 0!==e.addresses&&null!==e.addresses)for(const r of e.addresses)t.addresses.push(String(r));return t},toJSON(e){const t={};return e.addresses?t.addresses=e.addresses.map((e=>e)):t.addresses=[],t},fromPartial(e){const t=Object.assign({},y);if(t.addresses=[],void 0!==e.addresses&&null!==e.addresses)for(const r of e.addresses)t.addresses.push(r);return t}};const w={delegatorAddress:"",validatorAddress:""};t.DVPair={encode:(e,t=i.default.Writer.create())=>(""!==e.delegatorAddress&&t.uint32(10).string(e.delegatorAddress),""!==e.validatorAddress&&t.uint32(18).string(e.validatorAddress),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},w);for(;r.pos>>3){case 1:o.delegatorAddress=r.string();break;case 2:o.validatorAddress=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},w);return void 0!==e.delegatorAddress&&null!==e.delegatorAddress?t.delegatorAddress=String(e.delegatorAddress):t.delegatorAddress="",void 0!==e.validatorAddress&&null!==e.validatorAddress?t.validatorAddress=String(e.validatorAddress):t.validatorAddress="",t},toJSON(e){const t={};return void 0!==e.delegatorAddress&&(t.delegatorAddress=e.delegatorAddress),void 0!==e.validatorAddress&&(t.validatorAddress=e.validatorAddress),t},fromPartial(e){const t=Object.assign({},w);return void 0!==e.delegatorAddress&&null!==e.delegatorAddress?t.delegatorAddress=e.delegatorAddress:t.delegatorAddress="",void 0!==e.validatorAddress&&null!==e.validatorAddress?t.validatorAddress=e.validatorAddress:t.validatorAddress="",t}};const _={};t.DVPairs={encode(e,r=i.default.Writer.create()){for(const n of e.pairs)t.DVPair.encode(n,r.uint32(10).fork()).ldelim();return r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},_);for(a.pairs=[];n.pos>>3==1?a.pairs.push(t.DVPair.decode(n,n.uint32())):n.skipType(7&e)}return a},fromJSON(e){const r=Object.assign({},_);if(r.pairs=[],void 0!==e.pairs&&null!==e.pairs)for(const n of e.pairs)r.pairs.push(t.DVPair.fromJSON(n));return r},toJSON(e){const r={};return e.pairs?r.pairs=e.pairs.map((e=>e?t.DVPair.toJSON(e):void 0)):r.pairs=[],r},fromPartial(e){const r=Object.assign({},_);if(r.pairs=[],void 0!==e.pairs&&null!==e.pairs)for(const n of e.pairs)r.pairs.push(t.DVPair.fromPartial(n));return r}};const S={delegatorAddress:"",validatorSrcAddress:"",validatorDstAddress:""};t.DVVTriplet={encode:(e,t=i.default.Writer.create())=>(""!==e.delegatorAddress&&t.uint32(10).string(e.delegatorAddress),""!==e.validatorSrcAddress&&t.uint32(18).string(e.validatorSrcAddress),""!==e.validatorDstAddress&&t.uint32(26).string(e.validatorDstAddress),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},S);for(;r.pos>>3){case 1:o.delegatorAddress=r.string();break;case 2:o.validatorSrcAddress=r.string();break;case 3:o.validatorDstAddress=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},S);return void 0!==e.delegatorAddress&&null!==e.delegatorAddress?t.delegatorAddress=String(e.delegatorAddress):t.delegatorAddress="",void 0!==e.validatorSrcAddress&&null!==e.validatorSrcAddress?t.validatorSrcAddress=String(e.validatorSrcAddress):t.validatorSrcAddress="",void 0!==e.validatorDstAddress&&null!==e.validatorDstAddress?t.validatorDstAddress=String(e.validatorDstAddress):t.validatorDstAddress="",t},toJSON(e){const t={};return void 0!==e.delegatorAddress&&(t.delegatorAddress=e.delegatorAddress),void 0!==e.validatorSrcAddress&&(t.validatorSrcAddress=e.validatorSrcAddress),void 0!==e.validatorDstAddress&&(t.validatorDstAddress=e.validatorDstAddress),t},fromPartial(e){const t=Object.assign({},S);return void 0!==e.delegatorAddress&&null!==e.delegatorAddress?t.delegatorAddress=e.delegatorAddress:t.delegatorAddress="",void 0!==e.validatorSrcAddress&&null!==e.validatorSrcAddress?t.validatorSrcAddress=e.validatorSrcAddress:t.validatorSrcAddress="",void 0!==e.validatorDstAddress&&null!==e.validatorDstAddress?t.validatorDstAddress=e.validatorDstAddress:t.validatorDstAddress="",t}};const O={};t.DVVTriplets={encode(e,r=i.default.Writer.create()){for(const n of e.triplets)t.DVVTriplet.encode(n,r.uint32(10).fork()).ldelim();return r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},O);for(a.triplets=[];n.pos>>3==1?a.triplets.push(t.DVVTriplet.decode(n,n.uint32())):n.skipType(7&e)}return a},fromJSON(e){const r=Object.assign({},O);if(r.triplets=[],void 0!==e.triplets&&null!==e.triplets)for(const n of e.triplets)r.triplets.push(t.DVVTriplet.fromJSON(n));return r},toJSON(e){const r={};return e.triplets?r.triplets=e.triplets.map((e=>e?t.DVVTriplet.toJSON(e):void 0)):r.triplets=[],r},fromPartial(e){const r=Object.assign({},O);if(r.triplets=[],void 0!==e.triplets&&null!==e.triplets)for(const n of e.triplets)r.triplets.push(t.DVVTriplet.fromPartial(n));return r}};const k={delegatorAddress:"",validatorAddress:"",shares:""};t.Delegation={encode:(e,t=i.default.Writer.create())=>(""!==e.delegatorAddress&&t.uint32(10).string(e.delegatorAddress),""!==e.validatorAddress&&t.uint32(18).string(e.validatorAddress),""!==e.shares&&t.uint32(26).string(e.shares),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},k);for(;r.pos>>3){case 1:o.delegatorAddress=r.string();break;case 2:o.validatorAddress=r.string();break;case 3:o.shares=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},k);return void 0!==e.delegatorAddress&&null!==e.delegatorAddress?t.delegatorAddress=String(e.delegatorAddress):t.delegatorAddress="",void 0!==e.validatorAddress&&null!==e.validatorAddress?t.validatorAddress=String(e.validatorAddress):t.validatorAddress="",void 0!==e.shares&&null!==e.shares?t.shares=String(e.shares):t.shares="",t},toJSON(e){const t={};return void 0!==e.delegatorAddress&&(t.delegatorAddress=e.delegatorAddress),void 0!==e.validatorAddress&&(t.validatorAddress=e.validatorAddress),void 0!==e.shares&&(t.shares=e.shares),t},fromPartial(e){const t=Object.assign({},k);return void 0!==e.delegatorAddress&&null!==e.delegatorAddress?t.delegatorAddress=e.delegatorAddress:t.delegatorAddress="",void 0!==e.validatorAddress&&null!==e.validatorAddress?t.validatorAddress=e.validatorAddress:t.validatorAddress="",void 0!==e.shares&&null!==e.shares?t.shares=e.shares:t.shares="",t}};const A={delegatorAddress:"",validatorAddress:""};t.UnbondingDelegation={encode(e,r=i.default.Writer.create()){""!==e.delegatorAddress&&r.uint32(10).string(e.delegatorAddress),""!==e.validatorAddress&&r.uint32(18).string(e.validatorAddress);for(const n of e.entries)t.UnbondingDelegationEntry.encode(n,r.uint32(26).fork()).ldelim();return r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},A);for(a.entries=[];n.pos>>3){case 1:a.delegatorAddress=n.string();break;case 2:a.validatorAddress=n.string();break;case 3:a.entries.push(t.UnbondingDelegationEntry.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},A);if(r.entries=[],void 0!==e.delegatorAddress&&null!==e.delegatorAddress?r.delegatorAddress=String(e.delegatorAddress):r.delegatorAddress="",void 0!==e.validatorAddress&&null!==e.validatorAddress?r.validatorAddress=String(e.validatorAddress):r.validatorAddress="",void 0!==e.entries&&null!==e.entries)for(const n of e.entries)r.entries.push(t.UnbondingDelegationEntry.fromJSON(n));return r},toJSON(e){const r={};return void 0!==e.delegatorAddress&&(r.delegatorAddress=e.delegatorAddress),void 0!==e.validatorAddress&&(r.validatorAddress=e.validatorAddress),e.entries?r.entries=e.entries.map((e=>e?t.UnbondingDelegationEntry.toJSON(e):void 0)):r.entries=[],r},fromPartial(e){const r=Object.assign({},A);if(r.entries=[],void 0!==e.delegatorAddress&&null!==e.delegatorAddress?r.delegatorAddress=e.delegatorAddress:r.delegatorAddress="",void 0!==e.validatorAddress&&null!==e.validatorAddress?r.validatorAddress=e.validatorAddress:r.validatorAddress="",void 0!==e.entries&&null!==e.entries)for(const n of e.entries)r.entries.push(t.UnbondingDelegationEntry.fromPartial(n));return r}};const P={creationHeight:o.default.ZERO,initialBalance:"",balance:""};t.UnbondingDelegationEntry={encode:(e,t=i.default.Writer.create())=>(e.creationHeight.isZero()||t.uint32(8).int64(e.creationHeight),void 0!==e.completionTime&&d.Timestamp.encode(T(e.completionTime),t.uint32(18).fork()).ldelim(),""!==e.initialBalance&&t.uint32(26).string(e.initialBalance),""!==e.balance&&t.uint32(34).string(e.balance),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},P);for(;r.pos>>3){case 1:o.creationHeight=r.int64();break;case 2:o.completionTime=j(d.Timestamp.decode(r,r.uint32()));break;case 3:o.initialBalance=r.string();break;case 4:o.balance=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},P);return void 0!==e.creationHeight&&null!==e.creationHeight?t.creationHeight=o.default.fromString(e.creationHeight):t.creationHeight=o.default.ZERO,void 0!==e.completionTime&&null!==e.completionTime?t.completionTime=D(e.completionTime):t.completionTime=void 0,void 0!==e.initialBalance&&null!==e.initialBalance?t.initialBalance=String(e.initialBalance):t.initialBalance="",void 0!==e.balance&&null!==e.balance?t.balance=String(e.balance):t.balance="",t},toJSON(e){const t={};return void 0!==e.creationHeight&&(t.creationHeight=(e.creationHeight||o.default.ZERO).toString()),void 0!==e.completionTime&&(t.completionTime=e.completionTime.toISOString()),void 0!==e.initialBalance&&(t.initialBalance=e.initialBalance),void 0!==e.balance&&(t.balance=e.balance),t},fromPartial(e){const t=Object.assign({},P);return void 0!==e.creationHeight&&null!==e.creationHeight?t.creationHeight=e.creationHeight:t.creationHeight=o.default.ZERO,void 0!==e.completionTime&&null!==e.completionTime?t.completionTime=e.completionTime:t.completionTime=void 0,void 0!==e.initialBalance&&null!==e.initialBalance?t.initialBalance=e.initialBalance:t.initialBalance="",void 0!==e.balance&&null!==e.balance?t.balance=e.balance:t.balance="",t}};const M={creationHeight:o.default.ZERO,initialBalance:"",sharesDst:""};t.RedelegationEntry={encode:(e,t=i.default.Writer.create())=>(e.creationHeight.isZero()||t.uint32(8).int64(e.creationHeight),void 0!==e.completionTime&&d.Timestamp.encode(T(e.completionTime),t.uint32(18).fork()).ldelim(),""!==e.initialBalance&&t.uint32(26).string(e.initialBalance),""!==e.sharesDst&&t.uint32(34).string(e.sharesDst),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},M);for(;r.pos>>3){case 1:o.creationHeight=r.int64();break;case 2:o.completionTime=j(d.Timestamp.decode(r,r.uint32()));break;case 3:o.initialBalance=r.string();break;case 4:o.sharesDst=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},M);return void 0!==e.creationHeight&&null!==e.creationHeight?t.creationHeight=o.default.fromString(e.creationHeight):t.creationHeight=o.default.ZERO,void 0!==e.completionTime&&null!==e.completionTime?t.completionTime=D(e.completionTime):t.completionTime=void 0,void 0!==e.initialBalance&&null!==e.initialBalance?t.initialBalance=String(e.initialBalance):t.initialBalance="",void 0!==e.sharesDst&&null!==e.sharesDst?t.sharesDst=String(e.sharesDst):t.sharesDst="",t},toJSON(e){const t={};return void 0!==e.creationHeight&&(t.creationHeight=(e.creationHeight||o.default.ZERO).toString()),void 0!==e.completionTime&&(t.completionTime=e.completionTime.toISOString()),void 0!==e.initialBalance&&(t.initialBalance=e.initialBalance),void 0!==e.sharesDst&&(t.sharesDst=e.sharesDst),t},fromPartial(e){const t=Object.assign({},M);return void 0!==e.creationHeight&&null!==e.creationHeight?t.creationHeight=e.creationHeight:t.creationHeight=o.default.ZERO,void 0!==e.completionTime&&null!==e.completionTime?t.completionTime=e.completionTime:t.completionTime=void 0,void 0!==e.initialBalance&&null!==e.initialBalance?t.initialBalance=e.initialBalance:t.initialBalance="",void 0!==e.sharesDst&&null!==e.sharesDst?t.sharesDst=e.sharesDst:t.sharesDst="",t}};const E={delegatorAddress:"",validatorSrcAddress:"",validatorDstAddress:""};t.Redelegation={encode(e,r=i.default.Writer.create()){""!==e.delegatorAddress&&r.uint32(10).string(e.delegatorAddress),""!==e.validatorSrcAddress&&r.uint32(18).string(e.validatorSrcAddress),""!==e.validatorDstAddress&&r.uint32(26).string(e.validatorDstAddress);for(const n of e.entries)t.RedelegationEntry.encode(n,r.uint32(34).fork()).ldelim();return r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},E);for(a.entries=[];n.pos>>3){case 1:a.delegatorAddress=n.string();break;case 2:a.validatorSrcAddress=n.string();break;case 3:a.validatorDstAddress=n.string();break;case 4:a.entries.push(t.RedelegationEntry.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},E);if(r.entries=[],void 0!==e.delegatorAddress&&null!==e.delegatorAddress?r.delegatorAddress=String(e.delegatorAddress):r.delegatorAddress="",void 0!==e.validatorSrcAddress&&null!==e.validatorSrcAddress?r.validatorSrcAddress=String(e.validatorSrcAddress):r.validatorSrcAddress="",void 0!==e.validatorDstAddress&&null!==e.validatorDstAddress?r.validatorDstAddress=String(e.validatorDstAddress):r.validatorDstAddress="",void 0!==e.entries&&null!==e.entries)for(const n of e.entries)r.entries.push(t.RedelegationEntry.fromJSON(n));return r},toJSON(e){const r={};return void 0!==e.delegatorAddress&&(r.delegatorAddress=e.delegatorAddress),void 0!==e.validatorSrcAddress&&(r.validatorSrcAddress=e.validatorSrcAddress),void 0!==e.validatorDstAddress&&(r.validatorDstAddress=e.validatorDstAddress),e.entries?r.entries=e.entries.map((e=>e?t.RedelegationEntry.toJSON(e):void 0)):r.entries=[],r},fromPartial(e){const r=Object.assign({},E);if(r.entries=[],void 0!==e.delegatorAddress&&null!==e.delegatorAddress?r.delegatorAddress=e.delegatorAddress:r.delegatorAddress="",void 0!==e.validatorSrcAddress&&null!==e.validatorSrcAddress?r.validatorSrcAddress=e.validatorSrcAddress:r.validatorSrcAddress="",void 0!==e.validatorDstAddress&&null!==e.validatorDstAddress?r.validatorDstAddress=e.validatorDstAddress:r.validatorDstAddress="",void 0!==e.entries&&null!==e.entries)for(const n of e.entries)r.entries.push(t.RedelegationEntry.fromPartial(n));return r}};const C={maxValidators:0,maxEntries:0,historicalEntries:0,bondDenom:""};t.Params={encode:(e,t=i.default.Writer.create())=>(void 0!==e.unbondingTime&&u.Duration.encode(e.unbondingTime,t.uint32(10).fork()).ldelim(),0!==e.maxValidators&&t.uint32(16).uint32(e.maxValidators),0!==e.maxEntries&&t.uint32(24).uint32(e.maxEntries),0!==e.historicalEntries&&t.uint32(32).uint32(e.historicalEntries),""!==e.bondDenom&&t.uint32(42).string(e.bondDenom),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},C);for(;r.pos>>3){case 1:o.unbondingTime=u.Duration.decode(r,r.uint32());break;case 2:o.maxValidators=r.uint32();break;case 3:o.maxEntries=r.uint32();break;case 4:o.historicalEntries=r.uint32();break;case 5:o.bondDenom=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},C);return void 0!==e.unbondingTime&&null!==e.unbondingTime?t.unbondingTime=u.Duration.fromJSON(e.unbondingTime):t.unbondingTime=void 0,void 0!==e.maxValidators&&null!==e.maxValidators?t.maxValidators=Number(e.maxValidators):t.maxValidators=0,void 0!==e.maxEntries&&null!==e.maxEntries?t.maxEntries=Number(e.maxEntries):t.maxEntries=0,void 0!==e.historicalEntries&&null!==e.historicalEntries?t.historicalEntries=Number(e.historicalEntries):t.historicalEntries=0,void 0!==e.bondDenom&&null!==e.bondDenom?t.bondDenom=String(e.bondDenom):t.bondDenom="",t},toJSON(e){const t={};return void 0!==e.unbondingTime&&(t.unbondingTime=e.unbondingTime?u.Duration.toJSON(e.unbondingTime):void 0),void 0!==e.maxValidators&&(t.maxValidators=e.maxValidators),void 0!==e.maxEntries&&(t.maxEntries=e.maxEntries),void 0!==e.historicalEntries&&(t.historicalEntries=e.historicalEntries),void 0!==e.bondDenom&&(t.bondDenom=e.bondDenom),t},fromPartial(e){const t=Object.assign({},C);return void 0!==e.unbondingTime&&null!==e.unbondingTime?t.unbondingTime=u.Duration.fromPartial(e.unbondingTime):t.unbondingTime=void 0,void 0!==e.maxValidators&&null!==e.maxValidators?t.maxValidators=e.maxValidators:t.maxValidators=0,void 0!==e.maxEntries&&null!==e.maxEntries?t.maxEntries=e.maxEntries:t.maxEntries=0,void 0!==e.historicalEntries&&null!==e.historicalEntries?t.historicalEntries=e.historicalEntries:t.historicalEntries=0,void 0!==e.bondDenom&&null!==e.bondDenom?t.bondDenom=e.bondDenom:t.bondDenom="",t}};const N={};t.DelegationResponse={encode:(e,r=i.default.Writer.create())=>(void 0!==e.delegation&&t.Delegation.encode(e.delegation,r.uint32(10).fork()).ldelim(),void 0!==e.balance&&c.Coin.encode(e.balance,r.uint32(18).fork()).ldelim(),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},N);for(;n.pos>>3){case 1:a.delegation=t.Delegation.decode(n,n.uint32());break;case 2:a.balance=c.Coin.decode(n,n.uint32());break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},N);return void 0!==e.delegation&&null!==e.delegation?r.delegation=t.Delegation.fromJSON(e.delegation):r.delegation=void 0,void 0!==e.balance&&null!==e.balance?r.balance=c.Coin.fromJSON(e.balance):r.balance=void 0,r},toJSON(e){const r={};return void 0!==e.delegation&&(r.delegation=e.delegation?t.Delegation.toJSON(e.delegation):void 0),void 0!==e.balance&&(r.balance=e.balance?c.Coin.toJSON(e.balance):void 0),r},fromPartial(e){const r=Object.assign({},N);return void 0!==e.delegation&&null!==e.delegation?r.delegation=t.Delegation.fromPartial(e.delegation):r.delegation=void 0,void 0!==e.balance&&null!==e.balance?r.balance=c.Coin.fromPartial(e.balance):r.balance=void 0,r}};const x={balance:""};t.RedelegationEntryResponse={encode:(e,r=i.default.Writer.create())=>(void 0!==e.redelegationEntry&&t.RedelegationEntry.encode(e.redelegationEntry,r.uint32(10).fork()).ldelim(),""!==e.balance&&r.uint32(34).string(e.balance),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},x);for(;n.pos>>3){case 1:a.redelegationEntry=t.RedelegationEntry.decode(n,n.uint32());break;case 4:a.balance=n.string();break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},x);return void 0!==e.redelegationEntry&&null!==e.redelegationEntry?r.redelegationEntry=t.RedelegationEntry.fromJSON(e.redelegationEntry):r.redelegationEntry=void 0,void 0!==e.balance&&null!==e.balance?r.balance=String(e.balance):r.balance="",r},toJSON(e){const r={};return void 0!==e.redelegationEntry&&(r.redelegationEntry=e.redelegationEntry?t.RedelegationEntry.toJSON(e.redelegationEntry):void 0),void 0!==e.balance&&(r.balance=e.balance),r},fromPartial(e){const r=Object.assign({},x);return void 0!==e.redelegationEntry&&null!==e.redelegationEntry?r.redelegationEntry=t.RedelegationEntry.fromPartial(e.redelegationEntry):r.redelegationEntry=void 0,void 0!==e.balance&&null!==e.balance?r.balance=e.balance:r.balance="",r}};const R={};t.RedelegationResponse={encode(e,r=i.default.Writer.create()){void 0!==e.redelegation&&t.Redelegation.encode(e.redelegation,r.uint32(10).fork()).ldelim();for(const n of e.entries)t.RedelegationEntryResponse.encode(n,r.uint32(18).fork()).ldelim();return r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},R);for(a.entries=[];n.pos>>3){case 1:a.redelegation=t.Redelegation.decode(n,n.uint32());break;case 2:a.entries.push(t.RedelegationEntryResponse.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},R);if(r.entries=[],void 0!==e.redelegation&&null!==e.redelegation?r.redelegation=t.Redelegation.fromJSON(e.redelegation):r.redelegation=void 0,void 0!==e.entries&&null!==e.entries)for(const n of e.entries)r.entries.push(t.RedelegationEntryResponse.fromJSON(n));return r},toJSON(e){const r={};return void 0!==e.redelegation&&(r.redelegation=e.redelegation?t.Redelegation.toJSON(e.redelegation):void 0),e.entries?r.entries=e.entries.map((e=>e?t.RedelegationEntryResponse.toJSON(e):void 0)):r.entries=[],r},fromPartial(e){const r=Object.assign({},R);if(r.entries=[],void 0!==e.redelegation&&null!==e.redelegation?r.redelegation=t.Redelegation.fromPartial(e.redelegation):r.redelegation=void 0,void 0!==e.entries&&null!==e.entries)for(const n of e.entries)r.entries.push(t.RedelegationEntryResponse.fromPartial(n));return r}};const I={notBondedTokens:"",bondedTokens:""};function T(e){var t;return{seconds:(t=e.getTime()/1e3,o.default.fromNumber(t)),nanos:e.getTime()%1e3*1e6}}function j(e){let t=1e3*e.seconds.toNumber();return t+=e.nanos/1e6,new Date(t)}function D(e){return e instanceof Date?e:"string"==typeof e?new Date(e):j(d.Timestamp.fromJSON(e))}t.Pool={encode:(e,t=i.default.Writer.create())=>(""!==e.notBondedTokens&&t.uint32(10).string(e.notBondedTokens),""!==e.bondedTokens&&t.uint32(18).string(e.bondedTokens),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},I);for(;r.pos>>3){case 1:o.notBondedTokens=r.string();break;case 2:o.bondedTokens=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},I);return void 0!==e.notBondedTokens&&null!==e.notBondedTokens?t.notBondedTokens=String(e.notBondedTokens):t.notBondedTokens="",void 0!==e.bondedTokens&&null!==e.bondedTokens?t.bondedTokens=String(e.bondedTokens):t.bondedTokens="",t},toJSON(e){const t={};return void 0!==e.notBondedTokens&&(t.notBondedTokens=e.notBondedTokens),void 0!==e.bondedTokens&&(t.bondedTokens=e.bondedTokens),t},fromPartial(e){const t=Object.assign({},I);return void 0!==e.notBondedTokens&&null!==e.notBondedTokens?t.notBondedTokens=e.notBondedTokens:t.notBondedTokens="",void 0!==e.bondedTokens&&null!==e.bondedTokens?t.bondedTokens=e.bondedTokens:t.bondedTokens="",t}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},83204:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.GrpcWebImpl=t.MsgUndelegateDesc=t.MsgBeginRedelegateDesc=t.MsgDelegateDesc=t.MsgEditValidatorDesc=t.MsgCreateValidatorDesc=t.MsgDesc=t.MsgClientImpl=t.MsgUndelegateResponse=t.MsgUndelegate=t.MsgBeginRedelegateResponse=t.MsgBeginRedelegate=t.MsgDelegateResponse=t.MsgDelegate=t.MsgEditValidatorResponse=t.MsgEditValidator=t.MsgCreateValidatorResponse=t.MsgCreateValidator=t.protobufPackage=void 0;const o=n(r(24067)),i=r(66959),a=n(r(63967)),s=r(41724),u=r(17063),c=r(49545),d=r(62200),l=r(46759);t.protobufPackage="cosmos.staking.v1beta1";const f={minSelfDelegation:"",delegatorAddress:"",validatorAddress:""};t.MsgCreateValidator={encode:(e,t=a.default.Writer.create())=>(void 0!==e.description&&s.Description.encode(e.description,t.uint32(10).fork()).ldelim(),void 0!==e.commission&&s.CommissionRates.encode(e.commission,t.uint32(18).fork()).ldelim(),""!==e.minSelfDelegation&&t.uint32(26).string(e.minSelfDelegation),""!==e.delegatorAddress&&t.uint32(34).string(e.delegatorAddress),""!==e.validatorAddress&&t.uint32(42).string(e.validatorAddress),void 0!==e.pubkey&&u.Any.encode(e.pubkey,t.uint32(50).fork()).ldelim(),void 0!==e.value&&c.Coin.encode(e.value,t.uint32(58).fork()).ldelim(),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},f);for(;r.pos>>3){case 1:o.description=s.Description.decode(r,r.uint32());break;case 2:o.commission=s.CommissionRates.decode(r,r.uint32());break;case 3:o.minSelfDelegation=r.string();break;case 4:o.delegatorAddress=r.string();break;case 5:o.validatorAddress=r.string();break;case 6:o.pubkey=u.Any.decode(r,r.uint32());break;case 7:o.value=c.Coin.decode(r,r.uint32());break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},f);return void 0!==e.description&&null!==e.description?t.description=s.Description.fromJSON(e.description):t.description=void 0,void 0!==e.commission&&null!==e.commission?t.commission=s.CommissionRates.fromJSON(e.commission):t.commission=void 0,void 0!==e.minSelfDelegation&&null!==e.minSelfDelegation?t.minSelfDelegation=String(e.minSelfDelegation):t.minSelfDelegation="",void 0!==e.delegatorAddress&&null!==e.delegatorAddress?t.delegatorAddress=String(e.delegatorAddress):t.delegatorAddress="",void 0!==e.validatorAddress&&null!==e.validatorAddress?t.validatorAddress=String(e.validatorAddress):t.validatorAddress="",void 0!==e.pubkey&&null!==e.pubkey?t.pubkey=u.Any.fromJSON(e.pubkey):t.pubkey=void 0,void 0!==e.value&&null!==e.value?t.value=c.Coin.fromJSON(e.value):t.value=void 0,t},toJSON(e){const t={};return void 0!==e.description&&(t.description=e.description?s.Description.toJSON(e.description):void 0),void 0!==e.commission&&(t.commission=e.commission?s.CommissionRates.toJSON(e.commission):void 0),void 0!==e.minSelfDelegation&&(t.minSelfDelegation=e.minSelfDelegation),void 0!==e.delegatorAddress&&(t.delegatorAddress=e.delegatorAddress),void 0!==e.validatorAddress&&(t.validatorAddress=e.validatorAddress),void 0!==e.pubkey&&(t.pubkey=e.pubkey?u.Any.toJSON(e.pubkey):void 0),void 0!==e.value&&(t.value=e.value?c.Coin.toJSON(e.value):void 0),t},fromPartial(e){const t=Object.assign({},f);return void 0!==e.description&&null!==e.description?t.description=s.Description.fromPartial(e.description):t.description=void 0,void 0!==e.commission&&null!==e.commission?t.commission=s.CommissionRates.fromPartial(e.commission):t.commission=void 0,void 0!==e.minSelfDelegation&&null!==e.minSelfDelegation?t.minSelfDelegation=e.minSelfDelegation:t.minSelfDelegation="",void 0!==e.delegatorAddress&&null!==e.delegatorAddress?t.delegatorAddress=e.delegatorAddress:t.delegatorAddress="",void 0!==e.validatorAddress&&null!==e.validatorAddress?t.validatorAddress=e.validatorAddress:t.validatorAddress="",void 0!==e.pubkey&&null!==e.pubkey?t.pubkey=u.Any.fromPartial(e.pubkey):t.pubkey=void 0,void 0!==e.value&&null!==e.value?t.value=c.Coin.fromPartial(e.value):t.value=void 0,t}};const h={};t.MsgCreateValidatorResponse={encode:(e,t=a.default.Writer.create())=>t,decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},h);for(;r.posObject.assign({},h),toJSON:e=>({}),fromPartial:e=>Object.assign({},h)};const p={validatorAddress:"",commissionRate:"",minSelfDelegation:""};t.MsgEditValidator={encode:(e,t=a.default.Writer.create())=>(void 0!==e.description&&s.Description.encode(e.description,t.uint32(10).fork()).ldelim(),""!==e.validatorAddress&&t.uint32(18).string(e.validatorAddress),""!==e.commissionRate&&t.uint32(26).string(e.commissionRate),""!==e.minSelfDelegation&&t.uint32(34).string(e.minSelfDelegation),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},p);for(;r.pos>>3){case 1:o.description=s.Description.decode(r,r.uint32());break;case 2:o.validatorAddress=r.string();break;case 3:o.commissionRate=r.string();break;case 4:o.minSelfDelegation=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},p);return void 0!==e.description&&null!==e.description?t.description=s.Description.fromJSON(e.description):t.description=void 0,void 0!==e.validatorAddress&&null!==e.validatorAddress?t.validatorAddress=String(e.validatorAddress):t.validatorAddress="",void 0!==e.commissionRate&&null!==e.commissionRate?t.commissionRate=String(e.commissionRate):t.commissionRate="",void 0!==e.minSelfDelegation&&null!==e.minSelfDelegation?t.minSelfDelegation=String(e.minSelfDelegation):t.minSelfDelegation="",t},toJSON(e){const t={};return void 0!==e.description&&(t.description=e.description?s.Description.toJSON(e.description):void 0),void 0!==e.validatorAddress&&(t.validatorAddress=e.validatorAddress),void 0!==e.commissionRate&&(t.commissionRate=e.commissionRate),void 0!==e.minSelfDelegation&&(t.minSelfDelegation=e.minSelfDelegation),t},fromPartial(e){const t=Object.assign({},p);return void 0!==e.description&&null!==e.description?t.description=s.Description.fromPartial(e.description):t.description=void 0,void 0!==e.validatorAddress&&null!==e.validatorAddress?t.validatorAddress=e.validatorAddress:t.validatorAddress="",void 0!==e.commissionRate&&null!==e.commissionRate?t.commissionRate=e.commissionRate:t.commissionRate="",void 0!==e.minSelfDelegation&&null!==e.minSelfDelegation?t.minSelfDelegation=e.minSelfDelegation:t.minSelfDelegation="",t}};const m={};t.MsgEditValidatorResponse={encode:(e,t=a.default.Writer.create())=>t,decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},m);for(;r.posObject.assign({},m),toJSON:e=>({}),fromPartial:e=>Object.assign({},m)};const g={delegatorAddress:"",validatorAddress:""};t.MsgDelegate={encode:(e,t=a.default.Writer.create())=>(""!==e.delegatorAddress&&t.uint32(10).string(e.delegatorAddress),""!==e.validatorAddress&&t.uint32(18).string(e.validatorAddress),void 0!==e.amount&&c.Coin.encode(e.amount,t.uint32(26).fork()).ldelim(),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},g);for(;r.pos>>3){case 1:o.delegatorAddress=r.string();break;case 2:o.validatorAddress=r.string();break;case 3:o.amount=c.Coin.decode(r,r.uint32());break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},g);return void 0!==e.delegatorAddress&&null!==e.delegatorAddress?t.delegatorAddress=String(e.delegatorAddress):t.delegatorAddress="",void 0!==e.validatorAddress&&null!==e.validatorAddress?t.validatorAddress=String(e.validatorAddress):t.validatorAddress="",void 0!==e.amount&&null!==e.amount?t.amount=c.Coin.fromJSON(e.amount):t.amount=void 0,t},toJSON(e){const t={};return void 0!==e.delegatorAddress&&(t.delegatorAddress=e.delegatorAddress),void 0!==e.validatorAddress&&(t.validatorAddress=e.validatorAddress),void 0!==e.amount&&(t.amount=e.amount?c.Coin.toJSON(e.amount):void 0),t},fromPartial(e){const t=Object.assign({},g);return void 0!==e.delegatorAddress&&null!==e.delegatorAddress?t.delegatorAddress=e.delegatorAddress:t.delegatorAddress="",void 0!==e.validatorAddress&&null!==e.validatorAddress?t.validatorAddress=e.validatorAddress:t.validatorAddress="",void 0!==e.amount&&null!==e.amount?t.amount=c.Coin.fromPartial(e.amount):t.amount=void 0,t}};const v={};t.MsgDelegateResponse={encode:(e,t=a.default.Writer.create())=>t,decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},v);for(;r.posObject.assign({},v),toJSON:e=>({}),fromPartial:e=>Object.assign({},v)};const b={delegatorAddress:"",validatorSrcAddress:"",validatorDstAddress:""};t.MsgBeginRedelegate={encode:(e,t=a.default.Writer.create())=>(""!==e.delegatorAddress&&t.uint32(10).string(e.delegatorAddress),""!==e.validatorSrcAddress&&t.uint32(18).string(e.validatorSrcAddress),""!==e.validatorDstAddress&&t.uint32(26).string(e.validatorDstAddress),void 0!==e.amount&&c.Coin.encode(e.amount,t.uint32(34).fork()).ldelim(),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},b);for(;r.pos>>3){case 1:o.delegatorAddress=r.string();break;case 2:o.validatorSrcAddress=r.string();break;case 3:o.validatorDstAddress=r.string();break;case 4:o.amount=c.Coin.decode(r,r.uint32());break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},b);return void 0!==e.delegatorAddress&&null!==e.delegatorAddress?t.delegatorAddress=String(e.delegatorAddress):t.delegatorAddress="",void 0!==e.validatorSrcAddress&&null!==e.validatorSrcAddress?t.validatorSrcAddress=String(e.validatorSrcAddress):t.validatorSrcAddress="",void 0!==e.validatorDstAddress&&null!==e.validatorDstAddress?t.validatorDstAddress=String(e.validatorDstAddress):t.validatorDstAddress="",void 0!==e.amount&&null!==e.amount?t.amount=c.Coin.fromJSON(e.amount):t.amount=void 0,t},toJSON(e){const t={};return void 0!==e.delegatorAddress&&(t.delegatorAddress=e.delegatorAddress),void 0!==e.validatorSrcAddress&&(t.validatorSrcAddress=e.validatorSrcAddress),void 0!==e.validatorDstAddress&&(t.validatorDstAddress=e.validatorDstAddress),void 0!==e.amount&&(t.amount=e.amount?c.Coin.toJSON(e.amount):void 0),t},fromPartial(e){const t=Object.assign({},b);return void 0!==e.delegatorAddress&&null!==e.delegatorAddress?t.delegatorAddress=e.delegatorAddress:t.delegatorAddress="",void 0!==e.validatorSrcAddress&&null!==e.validatorSrcAddress?t.validatorSrcAddress=e.validatorSrcAddress:t.validatorSrcAddress="",void 0!==e.validatorDstAddress&&null!==e.validatorDstAddress?t.validatorDstAddress=e.validatorDstAddress:t.validatorDstAddress="",void 0!==e.amount&&null!==e.amount?t.amount=c.Coin.fromPartial(e.amount):t.amount=void 0,t}};const y={};t.MsgBeginRedelegateResponse={encode:(e,t=a.default.Writer.create())=>(void 0!==e.completionTime&&l.Timestamp.encode(S(e.completionTime),t.uint32(10).fork()).ldelim(),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},y);for(;r.pos>>3==1?o.completionTime=O(l.Timestamp.decode(r,r.uint32())):r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},y);return void 0!==e.completionTime&&null!==e.completionTime?t.completionTime=k(e.completionTime):t.completionTime=void 0,t},toJSON(e){const t={};return void 0!==e.completionTime&&(t.completionTime=e.completionTime.toISOString()),t},fromPartial(e){const t=Object.assign({},y);return void 0!==e.completionTime&&null!==e.completionTime?t.completionTime=e.completionTime:t.completionTime=void 0,t}};const w={delegatorAddress:"",validatorAddress:""};t.MsgUndelegate={encode:(e,t=a.default.Writer.create())=>(""!==e.delegatorAddress&&t.uint32(10).string(e.delegatorAddress),""!==e.validatorAddress&&t.uint32(18).string(e.validatorAddress),void 0!==e.amount&&c.Coin.encode(e.amount,t.uint32(26).fork()).ldelim(),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},w);for(;r.pos>>3){case 1:o.delegatorAddress=r.string();break;case 2:o.validatorAddress=r.string();break;case 3:o.amount=c.Coin.decode(r,r.uint32());break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},w);return void 0!==e.delegatorAddress&&null!==e.delegatorAddress?t.delegatorAddress=String(e.delegatorAddress):t.delegatorAddress="",void 0!==e.validatorAddress&&null!==e.validatorAddress?t.validatorAddress=String(e.validatorAddress):t.validatorAddress="",void 0!==e.amount&&null!==e.amount?t.amount=c.Coin.fromJSON(e.amount):t.amount=void 0,t},toJSON(e){const t={};return void 0!==e.delegatorAddress&&(t.delegatorAddress=e.delegatorAddress),void 0!==e.validatorAddress&&(t.validatorAddress=e.validatorAddress),void 0!==e.amount&&(t.amount=e.amount?c.Coin.toJSON(e.amount):void 0),t},fromPartial(e){const t=Object.assign({},w);return void 0!==e.delegatorAddress&&null!==e.delegatorAddress?t.delegatorAddress=e.delegatorAddress:t.delegatorAddress="",void 0!==e.validatorAddress&&null!==e.validatorAddress?t.validatorAddress=e.validatorAddress:t.validatorAddress="",void 0!==e.amount&&null!==e.amount?t.amount=c.Coin.fromPartial(e.amount):t.amount=void 0,t}};const _={};function S(e){var t;return{seconds:(t=e.getTime()/1e3,o.default.fromNumber(t)),nanos:e.getTime()%1e3*1e6}}function O(e){let t=1e3*e.seconds.toNumber();return t+=e.nanos/1e6,new Date(t)}function k(e){return e instanceof Date?e:"string"==typeof e?new Date(e):O(l.Timestamp.fromJSON(e))}t.MsgUndelegateResponse={encode:(e,t=a.default.Writer.create())=>(void 0!==e.completionTime&&l.Timestamp.encode(S(e.completionTime),t.uint32(10).fork()).ldelim(),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},_);for(;r.pos>>3==1?o.completionTime=O(l.Timestamp.decode(r,r.uint32())):r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},_);return void 0!==e.completionTime&&null!==e.completionTime?t.completionTime=k(e.completionTime):t.completionTime=void 0,t},toJSON(e){const t={};return void 0!==e.completionTime&&(t.completionTime=e.completionTime.toISOString()),t},fromPartial(e){const t=Object.assign({},_);return void 0!==e.completionTime&&null!==e.completionTime?t.completionTime=e.completionTime:t.completionTime=void 0,t}},t.MsgClientImpl=class{constructor(e){this.rpc=e,this.CreateValidator=this.CreateValidator.bind(this),this.EditValidator=this.EditValidator.bind(this),this.Delegate=this.Delegate.bind(this),this.BeginRedelegate=this.BeginRedelegate.bind(this),this.Undelegate=this.Undelegate.bind(this)}CreateValidator(e,r){return this.rpc.unary(t.MsgCreateValidatorDesc,t.MsgCreateValidator.fromPartial(e),r)}EditValidator(e,r){return this.rpc.unary(t.MsgEditValidatorDesc,t.MsgEditValidator.fromPartial(e),r)}Delegate(e,r){return this.rpc.unary(t.MsgDelegateDesc,t.MsgDelegate.fromPartial(e),r)}BeginRedelegate(e,r){return this.rpc.unary(t.MsgBeginRedelegateDesc,t.MsgBeginRedelegate.fromPartial(e),r)}Undelegate(e,r){return this.rpc.unary(t.MsgUndelegateDesc,t.MsgUndelegate.fromPartial(e),r)}},t.MsgDesc={serviceName:"cosmos.staking.v1beta1.Msg"},t.MsgCreateValidatorDesc={methodName:"CreateValidator",service:t.MsgDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.MsgCreateValidator.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.MsgCreateValidatorResponse.decode(e)),{toObject(){return this}})}},t.MsgEditValidatorDesc={methodName:"EditValidator",service:t.MsgDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.MsgEditValidator.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.MsgEditValidatorResponse.decode(e)),{toObject(){return this}})}},t.MsgDelegateDesc={methodName:"Delegate",service:t.MsgDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.MsgDelegate.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.MsgDelegateResponse.decode(e)),{toObject(){return this}})}},t.MsgBeginRedelegateDesc={methodName:"BeginRedelegate",service:t.MsgDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.MsgBeginRedelegate.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.MsgBeginRedelegateResponse.decode(e)),{toObject(){return this}})}},t.MsgUndelegateDesc={methodName:"Undelegate",service:t.MsgDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.MsgUndelegate.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.MsgUndelegateResponse.decode(e)),{toObject(){return this}})}},t.GrpcWebImpl=class{constructor(e,t){this.host=e,this.options=t}unary(e,t,r){var n;const o=Object.assign(Object.assign({},t),e.requestType),a=r&&this.options.metadata?new d.BrowserHeaders(Object.assign(Object.assign({},null===(n=this.options)||void 0===n?void 0:n.metadata.headersMap),null==r?void 0:r.headersMap)):r||this.options.metadata;return new Promise(((t,r)=>{i.grpc.unary(e,{request:o,host:this.host,metadata:a,transport:this.options.transport,debug:this.options.debug,onEnd:function(e){if(e.status===i.grpc.Code.OK)t(e.message);else{const t=new Error(e.statusMessage);t.code=e.status,t.metadata=e.trailers,r(t)}}})}))}},a.default.util.Long!==o.default&&(a.default.util.Long=o.default,a.default.configure())},17950:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.SignatureDescriptor_Data_Multi=t.SignatureDescriptor_Data_Single=t.SignatureDescriptor_Data=t.SignatureDescriptor=t.SignatureDescriptors=t.signModeToJSON=t.signModeFromJSON=t.SignMode=t.protobufPackage=void 0;const o=n(r(24067)),i=n(r(63967)),a=r(17063),s=r(26921);var u;function c(e){switch(e){case 0:case"SIGN_MODE_UNSPECIFIED":return u.SIGN_MODE_UNSPECIFIED;case 1:case"SIGN_MODE_DIRECT":return u.SIGN_MODE_DIRECT;case 2:case"SIGN_MODE_TEXTUAL":return u.SIGN_MODE_TEXTUAL;case 127:case"SIGN_MODE_LEGACY_AMINO_JSON":return u.SIGN_MODE_LEGACY_AMINO_JSON;case 191:case"SIGN_MODE_EIP_191":return u.SIGN_MODE_EIP_191;default:return u.UNRECOGNIZED}}function d(e){switch(e){case u.SIGN_MODE_UNSPECIFIED:return"SIGN_MODE_UNSPECIFIED";case u.SIGN_MODE_DIRECT:return"SIGN_MODE_DIRECT";case u.SIGN_MODE_TEXTUAL:return"SIGN_MODE_TEXTUAL";case u.SIGN_MODE_LEGACY_AMINO_JSON:return"SIGN_MODE_LEGACY_AMINO_JSON";case u.SIGN_MODE_EIP_191:return"SIGN_MODE_EIP_191";default:return"UNKNOWN"}}t.protobufPackage="cosmos.tx.signing.v1beta1",function(e){e[e.SIGN_MODE_UNSPECIFIED=0]="SIGN_MODE_UNSPECIFIED",e[e.SIGN_MODE_DIRECT=1]="SIGN_MODE_DIRECT",e[e.SIGN_MODE_TEXTUAL=2]="SIGN_MODE_TEXTUAL",e[e.SIGN_MODE_LEGACY_AMINO_JSON=127]="SIGN_MODE_LEGACY_AMINO_JSON",e[e.SIGN_MODE_EIP_191=191]="SIGN_MODE_EIP_191",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(u=t.SignMode||(t.SignMode={})),t.signModeFromJSON=c,t.signModeToJSON=d;const l={};t.SignatureDescriptors={encode(e,r=i.default.Writer.create()){for(const n of e.signatures)t.SignatureDescriptor.encode(n,r.uint32(10).fork()).ldelim();return r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},l);for(a.signatures=[];n.pos>>3==1?a.signatures.push(t.SignatureDescriptor.decode(n,n.uint32())):n.skipType(7&e)}return a},fromJSON(e){const r=Object.assign({},l);if(r.signatures=[],void 0!==e.signatures&&null!==e.signatures)for(const n of e.signatures)r.signatures.push(t.SignatureDescriptor.fromJSON(n));return r},toJSON(e){const r={};return e.signatures?r.signatures=e.signatures.map((e=>e?t.SignatureDescriptor.toJSON(e):void 0)):r.signatures=[],r},fromPartial(e){const r=Object.assign({},l);if(r.signatures=[],void 0!==e.signatures&&null!==e.signatures)for(const n of e.signatures)r.signatures.push(t.SignatureDescriptor.fromPartial(n));return r}};const f={sequence:o.default.UZERO};t.SignatureDescriptor={encode:(e,r=i.default.Writer.create())=>(void 0!==e.publicKey&&a.Any.encode(e.publicKey,r.uint32(10).fork()).ldelim(),void 0!==e.data&&t.SignatureDescriptor_Data.encode(e.data,r.uint32(18).fork()).ldelim(),e.sequence.isZero()||r.uint32(24).uint64(e.sequence),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const s=Object.assign({},f);for(;n.pos>>3){case 1:s.publicKey=a.Any.decode(n,n.uint32());break;case 2:s.data=t.SignatureDescriptor_Data.decode(n,n.uint32());break;case 3:s.sequence=n.uint64();break;default:n.skipType(7&e)}}return s},fromJSON(e){const r=Object.assign({},f);return void 0!==e.publicKey&&null!==e.publicKey?r.publicKey=a.Any.fromJSON(e.publicKey):r.publicKey=void 0,void 0!==e.data&&null!==e.data?r.data=t.SignatureDescriptor_Data.fromJSON(e.data):r.data=void 0,void 0!==e.sequence&&null!==e.sequence?r.sequence=o.default.fromString(e.sequence):r.sequence=o.default.UZERO,r},toJSON(e){const r={};return void 0!==e.publicKey&&(r.publicKey=e.publicKey?a.Any.toJSON(e.publicKey):void 0),void 0!==e.data&&(r.data=e.data?t.SignatureDescriptor_Data.toJSON(e.data):void 0),void 0!==e.sequence&&(r.sequence=(e.sequence||o.default.UZERO).toString()),r},fromPartial(e){const r=Object.assign({},f);return void 0!==e.publicKey&&null!==e.publicKey?r.publicKey=a.Any.fromPartial(e.publicKey):r.publicKey=void 0,void 0!==e.data&&null!==e.data?r.data=t.SignatureDescriptor_Data.fromPartial(e.data):r.data=void 0,void 0!==e.sequence&&null!==e.sequence?r.sequence=e.sequence:r.sequence=o.default.UZERO,r}};const h={};t.SignatureDescriptor_Data={encode:(e,r=i.default.Writer.create())=>(void 0!==e.single&&t.SignatureDescriptor_Data_Single.encode(e.single,r.uint32(10).fork()).ldelim(),void 0!==e.multi&&t.SignatureDescriptor_Data_Multi.encode(e.multi,r.uint32(18).fork()).ldelim(),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},h);for(;n.pos>>3){case 1:a.single=t.SignatureDescriptor_Data_Single.decode(n,n.uint32());break;case 2:a.multi=t.SignatureDescriptor_Data_Multi.decode(n,n.uint32());break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},h);return void 0!==e.single&&null!==e.single?r.single=t.SignatureDescriptor_Data_Single.fromJSON(e.single):r.single=void 0,void 0!==e.multi&&null!==e.multi?r.multi=t.SignatureDescriptor_Data_Multi.fromJSON(e.multi):r.multi=void 0,r},toJSON(e){const r={};return void 0!==e.single&&(r.single=e.single?t.SignatureDescriptor_Data_Single.toJSON(e.single):void 0),void 0!==e.multi&&(r.multi=e.multi?t.SignatureDescriptor_Data_Multi.toJSON(e.multi):void 0),r},fromPartial(e){const r=Object.assign({},h);return void 0!==e.single&&null!==e.single?r.single=t.SignatureDescriptor_Data_Single.fromPartial(e.single):r.single=void 0,void 0!==e.multi&&null!==e.multi?r.multi=t.SignatureDescriptor_Data_Multi.fromPartial(e.multi):r.multi=void 0,r}};const p={mode:0};t.SignatureDescriptor_Data_Single={encode:(e,t=i.default.Writer.create())=>(0!==e.mode&&t.uint32(8).int32(e.mode),0!==e.signature.length&&t.uint32(18).bytes(e.signature),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},p);for(o.signature=new Uint8Array;r.pos>>3){case 1:o.mode=r.int32();break;case 2:o.signature=r.bytes();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},p);return t.signature=new Uint8Array,void 0!==e.mode&&null!==e.mode?t.mode=c(e.mode):t.mode=0,void 0!==e.signature&&null!==e.signature&&(t.signature=function(e){const t=v(e),r=new Uint8Array(t.length);for(let e=0;e>>3){case 1:a.bitarray=s.CompactBitArray.decode(n,n.uint32());break;case 2:a.signatures.push(t.SignatureDescriptor_Data.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},m);if(r.signatures=[],void 0!==e.bitarray&&null!==e.bitarray?r.bitarray=s.CompactBitArray.fromJSON(e.bitarray):r.bitarray=void 0,void 0!==e.signatures&&null!==e.signatures)for(const n of e.signatures)r.signatures.push(t.SignatureDescriptor_Data.fromJSON(n));return r},toJSON(e){const r={};return void 0!==e.bitarray&&(r.bitarray=e.bitarray?s.CompactBitArray.toJSON(e.bitarray):void 0),e.signatures?r.signatures=e.signatures.map((e=>e?t.SignatureDescriptor_Data.toJSON(e):void 0)):r.signatures=[],r},fromPartial(e){const r=Object.assign({},m);if(r.signatures=[],void 0!==e.bitarray&&null!==e.bitarray?r.bitarray=s.CompactBitArray.fromPartial(e.bitarray):r.bitarray=void 0,void 0!==e.signatures&&null!==e.signatures)for(const n of e.signatures)r.signatures.push(t.SignatureDescriptor_Data.fromPartial(n));return r}};var g=(()=>{if(void 0!==g)return g;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==r.g)return r.g;throw"Unable to locate global object"})();const v=g.atob||(e=>g.Buffer.from(e,"base64").toString("binary")),b=g.btoa||(e=>g.Buffer.from(e,"binary").toString("base64"));i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},98654:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Fee=t.ModeInfo_Multi=t.ModeInfo_Single=t.ModeInfo=t.SignerInfo=t.AuthInfo=t.TxBody=t.SignDoc=t.TxRaw=t.Tx=t.protobufPackage=void 0;const o=n(r(24067)),i=n(r(63967)),a=r(17063),s=r(17950),u=r(26921),c=r(49545);t.protobufPackage="cosmos.tx.v1beta1";const d={};t.Tx={encode(e,r=i.default.Writer.create()){void 0!==e.body&&t.TxBody.encode(e.body,r.uint32(10).fork()).ldelim(),void 0!==e.authInfo&&t.AuthInfo.encode(e.authInfo,r.uint32(18).fork()).ldelim();for(const t of e.signatures)r.uint32(26).bytes(t);return r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},d);for(a.signatures=[];n.pos>>3){case 1:a.body=t.TxBody.decode(n,n.uint32());break;case 2:a.authInfo=t.AuthInfo.decode(n,n.uint32());break;case 3:a.signatures.push(n.bytes());break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},d);if(r.signatures=[],void 0!==e.body&&null!==e.body?r.body=t.TxBody.fromJSON(e.body):r.body=void 0,void 0!==e.authInfo&&null!==e.authInfo?r.authInfo=t.AuthInfo.fromJSON(e.authInfo):r.authInfo=void 0,void 0!==e.signatures&&null!==e.signatures)for(const t of e.signatures)r.signatures.push(S(t));return r},toJSON(e){const r={};return void 0!==e.body&&(r.body=e.body?t.TxBody.toJSON(e.body):void 0),void 0!==e.authInfo&&(r.authInfo=e.authInfo?t.AuthInfo.toJSON(e.authInfo):void 0),e.signatures?r.signatures=e.signatures.map((e=>k(void 0!==e?e:new Uint8Array))):r.signatures=[],r},fromPartial(e){const r=Object.assign({},d);if(r.signatures=[],void 0!==e.body&&null!==e.body?r.body=t.TxBody.fromPartial(e.body):r.body=void 0,void 0!==e.authInfo&&null!==e.authInfo?r.authInfo=t.AuthInfo.fromPartial(e.authInfo):r.authInfo=void 0,void 0!==e.signatures&&null!==e.signatures)for(const t of e.signatures)r.signatures.push(t);return r}};const l={};t.TxRaw={encode(e,t=i.default.Writer.create()){0!==e.bodyBytes.length&&t.uint32(10).bytes(e.bodyBytes),0!==e.authInfoBytes.length&&t.uint32(18).bytes(e.authInfoBytes);for(const r of e.signatures)t.uint32(26).bytes(r);return t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},l);for(o.signatures=[],o.bodyBytes=new Uint8Array,o.authInfoBytes=new Uint8Array;r.pos>>3){case 1:o.bodyBytes=r.bytes();break;case 2:o.authInfoBytes=r.bytes();break;case 3:o.signatures.push(r.bytes());break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},l);if(t.signatures=[],t.bodyBytes=new Uint8Array,t.authInfoBytes=new Uint8Array,void 0!==e.bodyBytes&&null!==e.bodyBytes&&(t.bodyBytes=S(e.bodyBytes)),void 0!==e.authInfoBytes&&null!==e.authInfoBytes&&(t.authInfoBytes=S(e.authInfoBytes)),void 0!==e.signatures&&null!==e.signatures)for(const r of e.signatures)t.signatures.push(S(r));return t},toJSON(e){const t={};return void 0!==e.bodyBytes&&(t.bodyBytes=k(void 0!==e.bodyBytes?e.bodyBytes:new Uint8Array)),void 0!==e.authInfoBytes&&(t.authInfoBytes=k(void 0!==e.authInfoBytes?e.authInfoBytes:new Uint8Array)),e.signatures?t.signatures=e.signatures.map((e=>k(void 0!==e?e:new Uint8Array))):t.signatures=[],t},fromPartial(e){const t=Object.assign({},l);if(t.signatures=[],void 0!==e.bodyBytes&&null!==e.bodyBytes?t.bodyBytes=e.bodyBytes:t.bodyBytes=new Uint8Array,void 0!==e.authInfoBytes&&null!==e.authInfoBytes?t.authInfoBytes=e.authInfoBytes:t.authInfoBytes=new Uint8Array,void 0!==e.signatures&&null!==e.signatures)for(const r of e.signatures)t.signatures.push(r);return t}};const f={chainId:"",accountNumber:o.default.UZERO};t.SignDoc={encode:(e,t=i.default.Writer.create())=>(0!==e.bodyBytes.length&&t.uint32(10).bytes(e.bodyBytes),0!==e.authInfoBytes.length&&t.uint32(18).bytes(e.authInfoBytes),""!==e.chainId&&t.uint32(26).string(e.chainId),e.accountNumber.isZero()||t.uint32(32).uint64(e.accountNumber),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},f);for(o.bodyBytes=new Uint8Array,o.authInfoBytes=new Uint8Array;r.pos>>3){case 1:o.bodyBytes=r.bytes();break;case 2:o.authInfoBytes=r.bytes();break;case 3:o.chainId=r.string();break;case 4:o.accountNumber=r.uint64();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},f);return t.bodyBytes=new Uint8Array,t.authInfoBytes=new Uint8Array,void 0!==e.bodyBytes&&null!==e.bodyBytes&&(t.bodyBytes=S(e.bodyBytes)),void 0!==e.authInfoBytes&&null!==e.authInfoBytes&&(t.authInfoBytes=S(e.authInfoBytes)),void 0!==e.chainId&&null!==e.chainId?t.chainId=String(e.chainId):t.chainId="",void 0!==e.accountNumber&&null!==e.accountNumber?t.accountNumber=o.default.fromString(e.accountNumber):t.accountNumber=o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.bodyBytes&&(t.bodyBytes=k(void 0!==e.bodyBytes?e.bodyBytes:new Uint8Array)),void 0!==e.authInfoBytes&&(t.authInfoBytes=k(void 0!==e.authInfoBytes?e.authInfoBytes:new Uint8Array)),void 0!==e.chainId&&(t.chainId=e.chainId),void 0!==e.accountNumber&&(t.accountNumber=(e.accountNumber||o.default.UZERO).toString()),t},fromPartial(e){const t=Object.assign({},f);return void 0!==e.bodyBytes&&null!==e.bodyBytes?t.bodyBytes=e.bodyBytes:t.bodyBytes=new Uint8Array,void 0!==e.authInfoBytes&&null!==e.authInfoBytes?t.authInfoBytes=e.authInfoBytes:t.authInfoBytes=new Uint8Array,void 0!==e.chainId&&null!==e.chainId?t.chainId=e.chainId:t.chainId="",void 0!==e.accountNumber&&null!==e.accountNumber?t.accountNumber=e.accountNumber:t.accountNumber=o.default.UZERO,t}};const h={memo:"",timeoutHeight:o.default.UZERO};t.TxBody={encode(e,t=i.default.Writer.create()){for(const r of e.messages)a.Any.encode(r,t.uint32(10).fork()).ldelim();""!==e.memo&&t.uint32(18).string(e.memo),e.timeoutHeight.isZero()||t.uint32(24).uint64(e.timeoutHeight);for(const r of e.extensionOptions)a.Any.encode(r,t.uint32(8186).fork()).ldelim();for(const r of e.nonCriticalExtensionOptions)a.Any.encode(r,t.uint32(16378).fork()).ldelim();return t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},h);for(o.messages=[],o.extensionOptions=[],o.nonCriticalExtensionOptions=[];r.pos>>3){case 1:o.messages.push(a.Any.decode(r,r.uint32()));break;case 2:o.memo=r.string();break;case 3:o.timeoutHeight=r.uint64();break;case 1023:o.extensionOptions.push(a.Any.decode(r,r.uint32()));break;case 2047:o.nonCriticalExtensionOptions.push(a.Any.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},h);if(t.messages=[],t.extensionOptions=[],t.nonCriticalExtensionOptions=[],void 0!==e.messages&&null!==e.messages)for(const r of e.messages)t.messages.push(a.Any.fromJSON(r));if(void 0!==e.memo&&null!==e.memo?t.memo=String(e.memo):t.memo="",void 0!==e.timeoutHeight&&null!==e.timeoutHeight?t.timeoutHeight=o.default.fromString(e.timeoutHeight):t.timeoutHeight=o.default.UZERO,void 0!==e.extensionOptions&&null!==e.extensionOptions)for(const r of e.extensionOptions)t.extensionOptions.push(a.Any.fromJSON(r));if(void 0!==e.nonCriticalExtensionOptions&&null!==e.nonCriticalExtensionOptions)for(const r of e.nonCriticalExtensionOptions)t.nonCriticalExtensionOptions.push(a.Any.fromJSON(r));return t},toJSON(e){const t={};return e.messages?t.messages=e.messages.map((e=>e?a.Any.toJSON(e):void 0)):t.messages=[],void 0!==e.memo&&(t.memo=e.memo),void 0!==e.timeoutHeight&&(t.timeoutHeight=(e.timeoutHeight||o.default.UZERO).toString()),e.extensionOptions?t.extensionOptions=e.extensionOptions.map((e=>e?a.Any.toJSON(e):void 0)):t.extensionOptions=[],e.nonCriticalExtensionOptions?t.nonCriticalExtensionOptions=e.nonCriticalExtensionOptions.map((e=>e?a.Any.toJSON(e):void 0)):t.nonCriticalExtensionOptions=[],t},fromPartial(e){const t=Object.assign({},h);if(t.messages=[],t.extensionOptions=[],t.nonCriticalExtensionOptions=[],void 0!==e.messages&&null!==e.messages)for(const r of e.messages)t.messages.push(a.Any.fromPartial(r));if(void 0!==e.memo&&null!==e.memo?t.memo=e.memo:t.memo="",void 0!==e.timeoutHeight&&null!==e.timeoutHeight?t.timeoutHeight=e.timeoutHeight:t.timeoutHeight=o.default.UZERO,void 0!==e.extensionOptions&&null!==e.extensionOptions)for(const r of e.extensionOptions)t.extensionOptions.push(a.Any.fromPartial(r));if(void 0!==e.nonCriticalExtensionOptions&&null!==e.nonCriticalExtensionOptions)for(const r of e.nonCriticalExtensionOptions)t.nonCriticalExtensionOptions.push(a.Any.fromPartial(r));return t}};const p={};t.AuthInfo={encode(e,r=i.default.Writer.create()){for(const n of e.signerInfos)t.SignerInfo.encode(n,r.uint32(10).fork()).ldelim();return void 0!==e.fee&&t.Fee.encode(e.fee,r.uint32(18).fork()).ldelim(),r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},p);for(a.signerInfos=[];n.pos>>3){case 1:a.signerInfos.push(t.SignerInfo.decode(n,n.uint32()));break;case 2:a.fee=t.Fee.decode(n,n.uint32());break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},p);if(r.signerInfos=[],void 0!==e.signerInfos&&null!==e.signerInfos)for(const n of e.signerInfos)r.signerInfos.push(t.SignerInfo.fromJSON(n));return void 0!==e.fee&&null!==e.fee?r.fee=t.Fee.fromJSON(e.fee):r.fee=void 0,r},toJSON(e){const r={};return e.signerInfos?r.signerInfos=e.signerInfos.map((e=>e?t.SignerInfo.toJSON(e):void 0)):r.signerInfos=[],void 0!==e.fee&&(r.fee=e.fee?t.Fee.toJSON(e.fee):void 0),r},fromPartial(e){const r=Object.assign({},p);if(r.signerInfos=[],void 0!==e.signerInfos&&null!==e.signerInfos)for(const n of e.signerInfos)r.signerInfos.push(t.SignerInfo.fromPartial(n));return void 0!==e.fee&&null!==e.fee?r.fee=t.Fee.fromPartial(e.fee):r.fee=void 0,r}};const m={sequence:o.default.UZERO};t.SignerInfo={encode:(e,r=i.default.Writer.create())=>(void 0!==e.publicKey&&a.Any.encode(e.publicKey,r.uint32(10).fork()).ldelim(),void 0!==e.modeInfo&&t.ModeInfo.encode(e.modeInfo,r.uint32(18).fork()).ldelim(),e.sequence.isZero()||r.uint32(24).uint64(e.sequence),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const s=Object.assign({},m);for(;n.pos>>3){case 1:s.publicKey=a.Any.decode(n,n.uint32());break;case 2:s.modeInfo=t.ModeInfo.decode(n,n.uint32());break;case 3:s.sequence=n.uint64();break;default:n.skipType(7&e)}}return s},fromJSON(e){const r=Object.assign({},m);return void 0!==e.publicKey&&null!==e.publicKey?r.publicKey=a.Any.fromJSON(e.publicKey):r.publicKey=void 0,void 0!==e.modeInfo&&null!==e.modeInfo?r.modeInfo=t.ModeInfo.fromJSON(e.modeInfo):r.modeInfo=void 0,void 0!==e.sequence&&null!==e.sequence?r.sequence=o.default.fromString(e.sequence):r.sequence=o.default.UZERO,r},toJSON(e){const r={};return void 0!==e.publicKey&&(r.publicKey=e.publicKey?a.Any.toJSON(e.publicKey):void 0),void 0!==e.modeInfo&&(r.modeInfo=e.modeInfo?t.ModeInfo.toJSON(e.modeInfo):void 0),void 0!==e.sequence&&(r.sequence=(e.sequence||o.default.UZERO).toString()),r},fromPartial(e){const r=Object.assign({},m);return void 0!==e.publicKey&&null!==e.publicKey?r.publicKey=a.Any.fromPartial(e.publicKey):r.publicKey=void 0,void 0!==e.modeInfo&&null!==e.modeInfo?r.modeInfo=t.ModeInfo.fromPartial(e.modeInfo):r.modeInfo=void 0,void 0!==e.sequence&&null!==e.sequence?r.sequence=e.sequence:r.sequence=o.default.UZERO,r}};const g={};t.ModeInfo={encode:(e,r=i.default.Writer.create())=>(void 0!==e.single&&t.ModeInfo_Single.encode(e.single,r.uint32(10).fork()).ldelim(),void 0!==e.multi&&t.ModeInfo_Multi.encode(e.multi,r.uint32(18).fork()).ldelim(),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},g);for(;n.pos>>3){case 1:a.single=t.ModeInfo_Single.decode(n,n.uint32());break;case 2:a.multi=t.ModeInfo_Multi.decode(n,n.uint32());break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},g);return void 0!==e.single&&null!==e.single?r.single=t.ModeInfo_Single.fromJSON(e.single):r.single=void 0,void 0!==e.multi&&null!==e.multi?r.multi=t.ModeInfo_Multi.fromJSON(e.multi):r.multi=void 0,r},toJSON(e){const r={};return void 0!==e.single&&(r.single=e.single?t.ModeInfo_Single.toJSON(e.single):void 0),void 0!==e.multi&&(r.multi=e.multi?t.ModeInfo_Multi.toJSON(e.multi):void 0),r},fromPartial(e){const r=Object.assign({},g);return void 0!==e.single&&null!==e.single?r.single=t.ModeInfo_Single.fromPartial(e.single):r.single=void 0,void 0!==e.multi&&null!==e.multi?r.multi=t.ModeInfo_Multi.fromPartial(e.multi):r.multi=void 0,r}};const v={mode:0};t.ModeInfo_Single={encode:(e,t=i.default.Writer.create())=>(0!==e.mode&&t.uint32(8).int32(e.mode),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},v);for(;r.pos>>3==1?o.mode=r.int32():r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},v);return void 0!==e.mode&&null!==e.mode?t.mode=s.signModeFromJSON(e.mode):t.mode=0,t},toJSON(e){const t={};return void 0!==e.mode&&(t.mode=s.signModeToJSON(e.mode)),t},fromPartial(e){const t=Object.assign({},v);return void 0!==e.mode&&null!==e.mode?t.mode=e.mode:t.mode=0,t}};const b={};t.ModeInfo_Multi={encode(e,r=i.default.Writer.create()){void 0!==e.bitarray&&u.CompactBitArray.encode(e.bitarray,r.uint32(10).fork()).ldelim();for(const n of e.modeInfos)t.ModeInfo.encode(n,r.uint32(18).fork()).ldelim();return r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},b);for(a.modeInfos=[];n.pos>>3){case 1:a.bitarray=u.CompactBitArray.decode(n,n.uint32());break;case 2:a.modeInfos.push(t.ModeInfo.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},b);if(r.modeInfos=[],void 0!==e.bitarray&&null!==e.bitarray?r.bitarray=u.CompactBitArray.fromJSON(e.bitarray):r.bitarray=void 0,void 0!==e.modeInfos&&null!==e.modeInfos)for(const n of e.modeInfos)r.modeInfos.push(t.ModeInfo.fromJSON(n));return r},toJSON(e){const r={};return void 0!==e.bitarray&&(r.bitarray=e.bitarray?u.CompactBitArray.toJSON(e.bitarray):void 0),e.modeInfos?r.modeInfos=e.modeInfos.map((e=>e?t.ModeInfo.toJSON(e):void 0)):r.modeInfos=[],r},fromPartial(e){const r=Object.assign({},b);if(r.modeInfos=[],void 0!==e.bitarray&&null!==e.bitarray?r.bitarray=u.CompactBitArray.fromPartial(e.bitarray):r.bitarray=void 0,void 0!==e.modeInfos&&null!==e.modeInfos)for(const n of e.modeInfos)r.modeInfos.push(t.ModeInfo.fromPartial(n));return r}};const y={gasLimit:o.default.UZERO,payer:"",granter:""};t.Fee={encode(e,t=i.default.Writer.create()){for(const r of e.amount)c.Coin.encode(r,t.uint32(10).fork()).ldelim();return e.gasLimit.isZero()||t.uint32(16).uint64(e.gasLimit),""!==e.payer&&t.uint32(26).string(e.payer),""!==e.granter&&t.uint32(34).string(e.granter),t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},y);for(o.amount=[];r.pos>>3){case 1:o.amount.push(c.Coin.decode(r,r.uint32()));break;case 2:o.gasLimit=r.uint64();break;case 3:o.payer=r.string();break;case 4:o.granter=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},y);if(t.amount=[],void 0!==e.amount&&null!==e.amount)for(const r of e.amount)t.amount.push(c.Coin.fromJSON(r));return void 0!==e.gasLimit&&null!==e.gasLimit?t.gasLimit=o.default.fromString(e.gasLimit):t.gasLimit=o.default.UZERO,void 0!==e.payer&&null!==e.payer?t.payer=String(e.payer):t.payer="",void 0!==e.granter&&null!==e.granter?t.granter=String(e.granter):t.granter="",t},toJSON(e){const t={};return e.amount?t.amount=e.amount.map((e=>e?c.Coin.toJSON(e):void 0)):t.amount=[],void 0!==e.gasLimit&&(t.gasLimit=(e.gasLimit||o.default.UZERO).toString()),void 0!==e.payer&&(t.payer=e.payer),void 0!==e.granter&&(t.granter=e.granter),t},fromPartial(e){const t=Object.assign({},y);if(t.amount=[],void 0!==e.amount&&null!==e.amount)for(const r of e.amount)t.amount.push(c.Coin.fromPartial(r));return void 0!==e.gasLimit&&null!==e.gasLimit?t.gasLimit=e.gasLimit:t.gasLimit=o.default.UZERO,void 0!==e.payer&&null!==e.payer?t.payer=e.payer:t.payer="",void 0!==e.granter&&null!==e.granter?t.granter=e.granter:t.granter="",t}};var w=(()=>{if(void 0!==w)return w;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==r.g)return r.g;throw"Unable to locate global object"})();const _=w.atob||(e=>w.Buffer.from(e,"base64").toString("binary"));function S(e){const t=_(e),r=new Uint8Array(t.length);for(let e=0;ew.Buffer.from(e,"binary").toString("base64"));function k(e){const t=[];for(const r of e)t.push(String.fromCharCode(r));return O(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},49920:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ModuleVersion=t.CancelSoftwareUpgradeProposal=t.SoftwareUpgradeProposal=t.Plan=t.protobufPackage=void 0;const o=n(r(24067)),i=n(r(63967)),a=r(17063),s=r(46759);t.protobufPackage="cosmos.upgrade.v1beta1";const u={name:"",height:o.default.ZERO,info:""};t.Plan={encode:(e,t=i.default.Writer.create())=>{return""!==e.name&&t.uint32(10).string(e.name),void 0!==e.time&&s.Timestamp.encode((r=e.time,{seconds:(n=r.getTime()/1e3,o.default.fromNumber(n)),nanos:r.getTime()%1e3*1e6}),t.uint32(18).fork()).ldelim(),e.height.isZero()||t.uint32(24).int64(e.height),""!==e.info&&t.uint32(34).string(e.info),void 0!==e.upgradedClientState&&a.Any.encode(e.upgradedClientState,t.uint32(42).fork()).ldelim(),t;var r,n},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},u);for(;r.pos>>3){case 1:o.name=r.string();break;case 2:o.time=f(s.Timestamp.decode(r,r.uint32()));break;case 3:o.height=r.int64();break;case 4:o.info=r.string();break;case 5:o.upgradedClientState=a.Any.decode(r,r.uint32());break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},u);var r;return void 0!==e.name&&null!==e.name?t.name=String(e.name):t.name="",void 0!==e.time&&null!==e.time?t.time=(r=e.time)instanceof Date?r:"string"==typeof r?new Date(r):f(s.Timestamp.fromJSON(r)):t.time=void 0,void 0!==e.height&&null!==e.height?t.height=o.default.fromString(e.height):t.height=o.default.ZERO,void 0!==e.info&&null!==e.info?t.info=String(e.info):t.info="",void 0!==e.upgradedClientState&&null!==e.upgradedClientState?t.upgradedClientState=a.Any.fromJSON(e.upgradedClientState):t.upgradedClientState=void 0,t},toJSON(e){const t={};return void 0!==e.name&&(t.name=e.name),void 0!==e.time&&(t.time=e.time.toISOString()),void 0!==e.height&&(t.height=(e.height||o.default.ZERO).toString()),void 0!==e.info&&(t.info=e.info),void 0!==e.upgradedClientState&&(t.upgradedClientState=e.upgradedClientState?a.Any.toJSON(e.upgradedClientState):void 0),t},fromPartial(e){const t=Object.assign({},u);return void 0!==e.name&&null!==e.name?t.name=e.name:t.name="",void 0!==e.time&&null!==e.time?t.time=e.time:t.time=void 0,void 0!==e.height&&null!==e.height?t.height=e.height:t.height=o.default.ZERO,void 0!==e.info&&null!==e.info?t.info=e.info:t.info="",void 0!==e.upgradedClientState&&null!==e.upgradedClientState?t.upgradedClientState=a.Any.fromPartial(e.upgradedClientState):t.upgradedClientState=void 0,t}};const c={title:"",description:""};t.SoftwareUpgradeProposal={encode:(e,r=i.default.Writer.create())=>(""!==e.title&&r.uint32(10).string(e.title),""!==e.description&&r.uint32(18).string(e.description),void 0!==e.plan&&t.Plan.encode(e.plan,r.uint32(26).fork()).ldelim(),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},c);for(;n.pos>>3){case 1:a.title=n.string();break;case 2:a.description=n.string();break;case 3:a.plan=t.Plan.decode(n,n.uint32());break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},c);return void 0!==e.title&&null!==e.title?r.title=String(e.title):r.title="",void 0!==e.description&&null!==e.description?r.description=String(e.description):r.description="",void 0!==e.plan&&null!==e.plan?r.plan=t.Plan.fromJSON(e.plan):r.plan=void 0,r},toJSON(e){const r={};return void 0!==e.title&&(r.title=e.title),void 0!==e.description&&(r.description=e.description),void 0!==e.plan&&(r.plan=e.plan?t.Plan.toJSON(e.plan):void 0),r},fromPartial(e){const r=Object.assign({},c);return void 0!==e.title&&null!==e.title?r.title=e.title:r.title="",void 0!==e.description&&null!==e.description?r.description=e.description:r.description="",void 0!==e.plan&&null!==e.plan?r.plan=t.Plan.fromPartial(e.plan):r.plan=void 0,r}};const d={title:"",description:""};t.CancelSoftwareUpgradeProposal={encode:(e,t=i.default.Writer.create())=>(""!==e.title&&t.uint32(10).string(e.title),""!==e.description&&t.uint32(18).string(e.description),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},d);for(;r.pos>>3){case 1:o.title=r.string();break;case 2:o.description=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},d);return void 0!==e.title&&null!==e.title?t.title=String(e.title):t.title="",void 0!==e.description&&null!==e.description?t.description=String(e.description):t.description="",t},toJSON(e){const t={};return void 0!==e.title&&(t.title=e.title),void 0!==e.description&&(t.description=e.description),t},fromPartial(e){const t=Object.assign({},d);return void 0!==e.title&&null!==e.title?t.title=e.title:t.title="",void 0!==e.description&&null!==e.description?t.description=e.description:t.description="",t}};const l={name:"",version:o.default.UZERO};function f(e){let t=1e3*e.seconds.toNumber();return t+=e.nanos/1e6,new Date(t)}t.ModuleVersion={encode:(e,t=i.default.Writer.create())=>(""!==e.name&&t.uint32(10).string(e.name),e.version.isZero()||t.uint32(16).uint64(e.version),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},l);for(;r.pos>>3){case 1:o.name=r.string();break;case 2:o.version=r.uint64();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},l);return void 0!==e.name&&null!==e.name?t.name=String(e.name):t.name="",void 0!==e.version&&null!==e.version?t.version=o.default.fromString(e.version):t.version=o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.name&&(t.name=e.name),void 0!==e.version&&(t.version=(e.version||o.default.UZERO).toString()),t},fromPartial(e){const t=Object.assign({},l);return void 0!==e.name&&null!==e.name?t.name=e.name:t.name="",void 0!==e.version&&null!==e.version?t.version=e.version:t.version=o.default.UZERO,t}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},62477:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.GrpcWebImpl=t.MsgDonateAllVestingTokensDesc=t.MsgCreatePeriodicVestingAccountDesc=t.MsgCreateVestingAccountDesc=t.MsgDesc=t.MsgClientImpl=t.MsgDonateAllVestingTokensResponse=t.MsgDonateAllVestingTokens=t.MsgCreatePeriodicVestingAccountResponse=t.MsgCreatePeriodicVestingAccount=t.MsgCreateVestingAccountResponse=t.MsgCreateVestingAccount=t.protobufPackage=void 0;const o=n(r(24067)),i=r(66959),a=n(r(63967)),s=r(62200),u=r(49545),c=r(90735);t.protobufPackage="cosmos.vesting.v1beta1";const d={fromAddress:"",toAddress:"",endTime:o.default.ZERO,delayed:!1};t.MsgCreateVestingAccount={encode(e,t=a.default.Writer.create()){""!==e.fromAddress&&t.uint32(10).string(e.fromAddress),""!==e.toAddress&&t.uint32(18).string(e.toAddress);for(const r of e.amount)u.Coin.encode(r,t.uint32(26).fork()).ldelim();return e.endTime.isZero()||t.uint32(32).int64(e.endTime),!0===e.delayed&&t.uint32(40).bool(e.delayed),t},decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},d);for(o.amount=[];r.pos>>3){case 1:o.fromAddress=r.string();break;case 2:o.toAddress=r.string();break;case 3:o.amount.push(u.Coin.decode(r,r.uint32()));break;case 4:o.endTime=r.int64();break;case 5:o.delayed=r.bool();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},d);if(t.amount=[],void 0!==e.fromAddress&&null!==e.fromAddress?t.fromAddress=String(e.fromAddress):t.fromAddress="",void 0!==e.toAddress&&null!==e.toAddress?t.toAddress=String(e.toAddress):t.toAddress="",void 0!==e.amount&&null!==e.amount)for(const r of e.amount)t.amount.push(u.Coin.fromJSON(r));return void 0!==e.endTime&&null!==e.endTime?t.endTime=o.default.fromString(e.endTime):t.endTime=o.default.ZERO,void 0!==e.delayed&&null!==e.delayed?t.delayed=Boolean(e.delayed):t.delayed=!1,t},toJSON(e){const t={};return void 0!==e.fromAddress&&(t.fromAddress=e.fromAddress),void 0!==e.toAddress&&(t.toAddress=e.toAddress),e.amount?t.amount=e.amount.map((e=>e?u.Coin.toJSON(e):void 0)):t.amount=[],void 0!==e.endTime&&(t.endTime=(e.endTime||o.default.ZERO).toString()),void 0!==e.delayed&&(t.delayed=e.delayed),t},fromPartial(e){const t=Object.assign({},d);if(t.amount=[],void 0!==e.fromAddress&&null!==e.fromAddress?t.fromAddress=e.fromAddress:t.fromAddress="",void 0!==e.toAddress&&null!==e.toAddress?t.toAddress=e.toAddress:t.toAddress="",void 0!==e.amount&&null!==e.amount)for(const r of e.amount)t.amount.push(u.Coin.fromPartial(r));return void 0!==e.endTime&&null!==e.endTime?t.endTime=e.endTime:t.endTime=o.default.ZERO,void 0!==e.delayed&&null!==e.delayed?t.delayed=e.delayed:t.delayed=!1,t}};const l={};t.MsgCreateVestingAccountResponse={encode:(e,t=a.default.Writer.create())=>t,decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},l);for(;r.posObject.assign({},l),toJSON:e=>({}),fromPartial:e=>Object.assign({},l)};const f={fromAddress:"",toAddress:"",startTime:o.default.ZERO};t.MsgCreatePeriodicVestingAccount={encode(e,t=a.default.Writer.create()){""!==e.fromAddress&&t.uint32(10).string(e.fromAddress),""!==e.toAddress&&t.uint32(18).string(e.toAddress),e.startTime.isZero()||t.uint32(24).int64(e.startTime);for(const r of e.vestingPeriods)c.Period.encode(r,t.uint32(34).fork()).ldelim();return t},decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},f);for(o.vestingPeriods=[];r.pos>>3){case 1:o.fromAddress=r.string();break;case 2:o.toAddress=r.string();break;case 3:o.startTime=r.int64();break;case 4:o.vestingPeriods.push(c.Period.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},f);if(t.vestingPeriods=[],void 0!==e.fromAddress&&null!==e.fromAddress?t.fromAddress=String(e.fromAddress):t.fromAddress="",void 0!==e.toAddress&&null!==e.toAddress?t.toAddress=String(e.toAddress):t.toAddress="",void 0!==e.startTime&&null!==e.startTime?t.startTime=o.default.fromString(e.startTime):t.startTime=o.default.ZERO,void 0!==e.vestingPeriods&&null!==e.vestingPeriods)for(const r of e.vestingPeriods)t.vestingPeriods.push(c.Period.fromJSON(r));return t},toJSON(e){const t={};return void 0!==e.fromAddress&&(t.fromAddress=e.fromAddress),void 0!==e.toAddress&&(t.toAddress=e.toAddress),void 0!==e.startTime&&(t.startTime=(e.startTime||o.default.ZERO).toString()),e.vestingPeriods?t.vestingPeriods=e.vestingPeriods.map((e=>e?c.Period.toJSON(e):void 0)):t.vestingPeriods=[],t},fromPartial(e){const t=Object.assign({},f);if(t.vestingPeriods=[],void 0!==e.fromAddress&&null!==e.fromAddress?t.fromAddress=e.fromAddress:t.fromAddress="",void 0!==e.toAddress&&null!==e.toAddress?t.toAddress=e.toAddress:t.toAddress="",void 0!==e.startTime&&null!==e.startTime?t.startTime=e.startTime:t.startTime=o.default.ZERO,void 0!==e.vestingPeriods&&null!==e.vestingPeriods)for(const r of e.vestingPeriods)t.vestingPeriods.push(c.Period.fromPartial(r));return t}};const h={};t.MsgCreatePeriodicVestingAccountResponse={encode:(e,t=a.default.Writer.create())=>t,decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},h);for(;r.posObject.assign({},h),toJSON:e=>({}),fromPartial:e=>Object.assign({},h)};const p={fromAddress:""};t.MsgDonateAllVestingTokens={encode:(e,t=a.default.Writer.create())=>(""!==e.fromAddress&&t.uint32(10).string(e.fromAddress),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},p);for(;r.pos>>3==1?o.fromAddress=r.string():r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},p);return void 0!==e.fromAddress&&null!==e.fromAddress?t.fromAddress=String(e.fromAddress):t.fromAddress="",t},toJSON(e){const t={};return void 0!==e.fromAddress&&(t.fromAddress=e.fromAddress),t},fromPartial(e){const t=Object.assign({},p);return void 0!==e.fromAddress&&null!==e.fromAddress?t.fromAddress=e.fromAddress:t.fromAddress="",t}};const m={};t.MsgDonateAllVestingTokensResponse={encode:(e,t=a.default.Writer.create())=>t,decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},m);for(;r.posObject.assign({},m),toJSON:e=>({}),fromPartial:e=>Object.assign({},m)},t.MsgClientImpl=class{constructor(e){this.rpc=e,this.CreateVestingAccount=this.CreateVestingAccount.bind(this),this.CreatePeriodicVestingAccount=this.CreatePeriodicVestingAccount.bind(this),this.DonateAllVestingTokens=this.DonateAllVestingTokens.bind(this)}CreateVestingAccount(e,r){return this.rpc.unary(t.MsgCreateVestingAccountDesc,t.MsgCreateVestingAccount.fromPartial(e),r)}CreatePeriodicVestingAccount(e,r){return this.rpc.unary(t.MsgCreatePeriodicVestingAccountDesc,t.MsgCreatePeriodicVestingAccount.fromPartial(e),r)}DonateAllVestingTokens(e,r){return this.rpc.unary(t.MsgDonateAllVestingTokensDesc,t.MsgDonateAllVestingTokens.fromPartial(e),r)}},t.MsgDesc={serviceName:"cosmos.vesting.v1beta1.Msg"},t.MsgCreateVestingAccountDesc={methodName:"CreateVestingAccount",service:t.MsgDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.MsgCreateVestingAccount.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.MsgCreateVestingAccountResponse.decode(e)),{toObject(){return this}})}},t.MsgCreatePeriodicVestingAccountDesc={methodName:"CreatePeriodicVestingAccount",service:t.MsgDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.MsgCreatePeriodicVestingAccount.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.MsgCreatePeriodicVestingAccountResponse.decode(e)),{toObject(){return this}})}},t.MsgDonateAllVestingTokensDesc={methodName:"DonateAllVestingTokens",service:t.MsgDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.MsgDonateAllVestingTokens.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.MsgDonateAllVestingTokensResponse.decode(e)),{toObject(){return this}})}},t.GrpcWebImpl=class{constructor(e,t){this.host=e,this.options=t}unary(e,t,r){var n;const o=Object.assign(Object.assign({},t),e.requestType),a=r&&this.options.metadata?new s.BrowserHeaders(Object.assign(Object.assign({},null===(n=this.options)||void 0===n?void 0:n.metadata.headersMap),null==r?void 0:r.headersMap)):r||this.options.metadata;return new Promise(((t,r)=>{i.grpc.unary(e,{request:o,host:this.host,metadata:a,transport:this.options.transport,debug:this.options.debug,onEnd:function(e){if(e.status===i.grpc.Code.OK)t(e.message);else{const t=new Error(e.statusMessage);t.code=e.status,t.metadata=e.trailers,r(t)}}})}))}},a.default.util.Long!==o.default&&(a.default.util.Long=o.default,a.default.configure())},90735:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.PermanentLockedAccount=t.PeriodicVestingAccount=t.Period=t.DelayedVestingAccount=t.ContinuousVestingAccount=t.BaseVestingAccount=t.protobufPackage=void 0;const o=n(r(24067)),i=n(r(63967)),a=r(68818),s=r(49545);t.protobufPackage="cosmos.vesting.v1beta1";const u={endTime:o.default.ZERO};t.BaseVestingAccount={encode(e,t=i.default.Writer.create()){void 0!==e.baseAccount&&a.BaseAccount.encode(e.baseAccount,t.uint32(10).fork()).ldelim();for(const r of e.originalVesting)s.Coin.encode(r,t.uint32(18).fork()).ldelim();for(const r of e.delegatedFree)s.Coin.encode(r,t.uint32(26).fork()).ldelim();for(const r of e.delegatedVesting)s.Coin.encode(r,t.uint32(34).fork()).ldelim();return e.endTime.isZero()||t.uint32(40).int64(e.endTime),t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},u);for(o.originalVesting=[],o.delegatedFree=[],o.delegatedVesting=[];r.pos>>3){case 1:o.baseAccount=a.BaseAccount.decode(r,r.uint32());break;case 2:o.originalVesting.push(s.Coin.decode(r,r.uint32()));break;case 3:o.delegatedFree.push(s.Coin.decode(r,r.uint32()));break;case 4:o.delegatedVesting.push(s.Coin.decode(r,r.uint32()));break;case 5:o.endTime=r.int64();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},u);if(t.originalVesting=[],t.delegatedFree=[],t.delegatedVesting=[],void 0!==e.baseAccount&&null!==e.baseAccount?t.baseAccount=a.BaseAccount.fromJSON(e.baseAccount):t.baseAccount=void 0,void 0!==e.originalVesting&&null!==e.originalVesting)for(const r of e.originalVesting)t.originalVesting.push(s.Coin.fromJSON(r));if(void 0!==e.delegatedFree&&null!==e.delegatedFree)for(const r of e.delegatedFree)t.delegatedFree.push(s.Coin.fromJSON(r));if(void 0!==e.delegatedVesting&&null!==e.delegatedVesting)for(const r of e.delegatedVesting)t.delegatedVesting.push(s.Coin.fromJSON(r));return void 0!==e.endTime&&null!==e.endTime?t.endTime=o.default.fromString(e.endTime):t.endTime=o.default.ZERO,t},toJSON(e){const t={};return void 0!==e.baseAccount&&(t.baseAccount=e.baseAccount?a.BaseAccount.toJSON(e.baseAccount):void 0),e.originalVesting?t.originalVesting=e.originalVesting.map((e=>e?s.Coin.toJSON(e):void 0)):t.originalVesting=[],e.delegatedFree?t.delegatedFree=e.delegatedFree.map((e=>e?s.Coin.toJSON(e):void 0)):t.delegatedFree=[],e.delegatedVesting?t.delegatedVesting=e.delegatedVesting.map((e=>e?s.Coin.toJSON(e):void 0)):t.delegatedVesting=[],void 0!==e.endTime&&(t.endTime=(e.endTime||o.default.ZERO).toString()),t},fromPartial(e){const t=Object.assign({},u);if(t.originalVesting=[],t.delegatedFree=[],t.delegatedVesting=[],void 0!==e.baseAccount&&null!==e.baseAccount?t.baseAccount=a.BaseAccount.fromPartial(e.baseAccount):t.baseAccount=void 0,void 0!==e.originalVesting&&null!==e.originalVesting)for(const r of e.originalVesting)t.originalVesting.push(s.Coin.fromPartial(r));if(void 0!==e.delegatedFree&&null!==e.delegatedFree)for(const r of e.delegatedFree)t.delegatedFree.push(s.Coin.fromPartial(r));if(void 0!==e.delegatedVesting&&null!==e.delegatedVesting)for(const r of e.delegatedVesting)t.delegatedVesting.push(s.Coin.fromPartial(r));return void 0!==e.endTime&&null!==e.endTime?t.endTime=e.endTime:t.endTime=o.default.ZERO,t}};const c={startTime:o.default.ZERO};t.ContinuousVestingAccount={encode:(e,r=i.default.Writer.create())=>(void 0!==e.baseVestingAccount&&t.BaseVestingAccount.encode(e.baseVestingAccount,r.uint32(10).fork()).ldelim(),e.startTime.isZero()||r.uint32(16).int64(e.startTime),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},c);for(;n.pos>>3){case 1:a.baseVestingAccount=t.BaseVestingAccount.decode(n,n.uint32());break;case 2:a.startTime=n.int64();break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},c);return void 0!==e.baseVestingAccount&&null!==e.baseVestingAccount?r.baseVestingAccount=t.BaseVestingAccount.fromJSON(e.baseVestingAccount):r.baseVestingAccount=void 0,void 0!==e.startTime&&null!==e.startTime?r.startTime=o.default.fromString(e.startTime):r.startTime=o.default.ZERO,r},toJSON(e){const r={};return void 0!==e.baseVestingAccount&&(r.baseVestingAccount=e.baseVestingAccount?t.BaseVestingAccount.toJSON(e.baseVestingAccount):void 0),void 0!==e.startTime&&(r.startTime=(e.startTime||o.default.ZERO).toString()),r},fromPartial(e){const r=Object.assign({},c);return void 0!==e.baseVestingAccount&&null!==e.baseVestingAccount?r.baseVestingAccount=t.BaseVestingAccount.fromPartial(e.baseVestingAccount):r.baseVestingAccount=void 0,void 0!==e.startTime&&null!==e.startTime?r.startTime=e.startTime:r.startTime=o.default.ZERO,r}};const d={};t.DelayedVestingAccount={encode:(e,r=i.default.Writer.create())=>(void 0!==e.baseVestingAccount&&t.BaseVestingAccount.encode(e.baseVestingAccount,r.uint32(10).fork()).ldelim(),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},d);for(;n.pos>>3==1?a.baseVestingAccount=t.BaseVestingAccount.decode(n,n.uint32()):n.skipType(7&e)}return a},fromJSON(e){const r=Object.assign({},d);return void 0!==e.baseVestingAccount&&null!==e.baseVestingAccount?r.baseVestingAccount=t.BaseVestingAccount.fromJSON(e.baseVestingAccount):r.baseVestingAccount=void 0,r},toJSON(e){const r={};return void 0!==e.baseVestingAccount&&(r.baseVestingAccount=e.baseVestingAccount?t.BaseVestingAccount.toJSON(e.baseVestingAccount):void 0),r},fromPartial(e){const r=Object.assign({},d);return void 0!==e.baseVestingAccount&&null!==e.baseVestingAccount?r.baseVestingAccount=t.BaseVestingAccount.fromPartial(e.baseVestingAccount):r.baseVestingAccount=void 0,r}};const l={length:o.default.ZERO};t.Period={encode(e,t=i.default.Writer.create()){e.length.isZero()||t.uint32(8).int64(e.length);for(const r of e.amount)s.Coin.encode(r,t.uint32(18).fork()).ldelim();return t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},l);for(o.amount=[];r.pos>>3){case 1:o.length=r.int64();break;case 2:o.amount.push(s.Coin.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},l);if(t.amount=[],void 0!==e.length&&null!==e.length?t.length=o.default.fromString(e.length):t.length=o.default.ZERO,void 0!==e.amount&&null!==e.amount)for(const r of e.amount)t.amount.push(s.Coin.fromJSON(r));return t},toJSON(e){const t={};return void 0!==e.length&&(t.length=(e.length||o.default.ZERO).toString()),e.amount?t.amount=e.amount.map((e=>e?s.Coin.toJSON(e):void 0)):t.amount=[],t},fromPartial(e){const t=Object.assign({},l);if(t.amount=[],void 0!==e.length&&null!==e.length?t.length=e.length:t.length=o.default.ZERO,void 0!==e.amount&&null!==e.amount)for(const r of e.amount)t.amount.push(s.Coin.fromPartial(r));return t}};const f={startTime:o.default.ZERO};t.PeriodicVestingAccount={encode(e,r=i.default.Writer.create()){void 0!==e.baseVestingAccount&&t.BaseVestingAccount.encode(e.baseVestingAccount,r.uint32(10).fork()).ldelim(),e.startTime.isZero()||r.uint32(16).int64(e.startTime);for(const n of e.vestingPeriods)t.Period.encode(n,r.uint32(26).fork()).ldelim();return r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},f);for(a.vestingPeriods=[];n.pos>>3){case 1:a.baseVestingAccount=t.BaseVestingAccount.decode(n,n.uint32());break;case 2:a.startTime=n.int64();break;case 3:a.vestingPeriods.push(t.Period.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},f);if(r.vestingPeriods=[],void 0!==e.baseVestingAccount&&null!==e.baseVestingAccount?r.baseVestingAccount=t.BaseVestingAccount.fromJSON(e.baseVestingAccount):r.baseVestingAccount=void 0,void 0!==e.startTime&&null!==e.startTime?r.startTime=o.default.fromString(e.startTime):r.startTime=o.default.ZERO,void 0!==e.vestingPeriods&&null!==e.vestingPeriods)for(const n of e.vestingPeriods)r.vestingPeriods.push(t.Period.fromJSON(n));return r},toJSON(e){const r={};return void 0!==e.baseVestingAccount&&(r.baseVestingAccount=e.baseVestingAccount?t.BaseVestingAccount.toJSON(e.baseVestingAccount):void 0),void 0!==e.startTime&&(r.startTime=(e.startTime||o.default.ZERO).toString()),e.vestingPeriods?r.vestingPeriods=e.vestingPeriods.map((e=>e?t.Period.toJSON(e):void 0)):r.vestingPeriods=[],r},fromPartial(e){const r=Object.assign({},f);if(r.vestingPeriods=[],void 0!==e.baseVestingAccount&&null!==e.baseVestingAccount?r.baseVestingAccount=t.BaseVestingAccount.fromPartial(e.baseVestingAccount):r.baseVestingAccount=void 0,void 0!==e.startTime&&null!==e.startTime?r.startTime=e.startTime:r.startTime=o.default.ZERO,void 0!==e.vestingPeriods&&null!==e.vestingPeriods)for(const n of e.vestingPeriods)r.vestingPeriods.push(t.Period.fromPartial(n));return r}};const h={};t.PermanentLockedAccount={encode:(e,r=i.default.Writer.create())=>(void 0!==e.baseVestingAccount&&t.BaseVestingAccount.encode(e.baseVestingAccount,r.uint32(10).fork()).ldelim(),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},h);for(;n.pos>>3==1?a.baseVestingAccount=t.BaseVestingAccount.decode(n,n.uint32()):n.skipType(7&e)}return a},fromJSON(e){const r=Object.assign({},h);return void 0!==e.baseVestingAccount&&null!==e.baseVestingAccount?r.baseVestingAccount=t.BaseVestingAccount.fromJSON(e.baseVestingAccount):r.baseVestingAccount=void 0,r},toJSON(e){const r={};return void 0!==e.baseVestingAccount&&(r.baseVestingAccount=e.baseVestingAccount?t.BaseVestingAccount.toJSON(e.baseVestingAccount):void 0),r},fromPartial(e){const r=Object.assign({},h);return void 0!==e.baseVestingAccount&&null!==e.baseVestingAccount?r.baseVestingAccount=t.BaseVestingAccount.fromPartial(e.baseVestingAccount):r.baseVestingAccount=void 0,r}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},26265:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.UpdateInstantiateConfigProposal=t.AccessConfigUpdate=t.UnpinCodesProposal=t.PinCodesProposal=t.ClearAdminProposal=t.UpdateAdminProposal=t.ExecuteContractProposal=t.SudoContractProposal=t.MigrateContractProposal=t.InstantiateContractProposal=t.StoreCodeProposal=t.protobufPackage=void 0;const o=n(r(24067)),i=n(r(63967)),a=r(34383),s=r(49545);t.protobufPackage="cosmwasm.wasm.v1";const u={title:"",description:"",runAs:""};t.StoreCodeProposal={encode:(e,t=i.default.Writer.create())=>(""!==e.title&&t.uint32(10).string(e.title),""!==e.description&&t.uint32(18).string(e.description),""!==e.runAs&&t.uint32(26).string(e.runAs),0!==e.wasmByteCode.length&&t.uint32(34).bytes(e.wasmByteCode),void 0!==e.instantiatePermission&&a.AccessConfig.encode(e.instantiatePermission,t.uint32(58).fork()).ldelim(),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},u);for(o.wasmByteCode=new Uint8Array;r.pos>>3){case 1:o.title=r.string();break;case 2:o.description=r.string();break;case 3:o.runAs=r.string();break;case 4:o.wasmByteCode=r.bytes();break;case 7:o.instantiatePermission=a.AccessConfig.decode(r,r.uint32());break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},u);return t.wasmByteCode=new Uint8Array,void 0!==e.title&&null!==e.title?t.title=String(e.title):t.title="",void 0!==e.description&&null!==e.description?t.description=String(e.description):t.description="",void 0!==e.runAs&&null!==e.runAs?t.runAs=String(e.runAs):t.runAs="",void 0!==e.wasmByteCode&&null!==e.wasmByteCode&&(t.wasmByteCode=_(e.wasmByteCode)),void 0!==e.instantiatePermission&&null!==e.instantiatePermission?t.instantiatePermission=a.AccessConfig.fromJSON(e.instantiatePermission):t.instantiatePermission=void 0,t},toJSON(e){const t={};return void 0!==e.title&&(t.title=e.title),void 0!==e.description&&(t.description=e.description),void 0!==e.runAs&&(t.runAs=e.runAs),void 0!==e.wasmByteCode&&(t.wasmByteCode=O(void 0!==e.wasmByteCode?e.wasmByteCode:new Uint8Array)),void 0!==e.instantiatePermission&&(t.instantiatePermission=e.instantiatePermission?a.AccessConfig.toJSON(e.instantiatePermission):void 0),t},fromPartial(e){const t=Object.assign({},u);return void 0!==e.title&&null!==e.title?t.title=e.title:t.title="",void 0!==e.description&&null!==e.description?t.description=e.description:t.description="",void 0!==e.runAs&&null!==e.runAs?t.runAs=e.runAs:t.runAs="",void 0!==e.wasmByteCode&&null!==e.wasmByteCode?t.wasmByteCode=e.wasmByteCode:t.wasmByteCode=new Uint8Array,void 0!==e.instantiatePermission&&null!==e.instantiatePermission?t.instantiatePermission=a.AccessConfig.fromPartial(e.instantiatePermission):t.instantiatePermission=void 0,t}};const c={title:"",description:"",runAs:"",admin:"",codeId:o.default.UZERO,label:""};t.InstantiateContractProposal={encode(e,t=i.default.Writer.create()){""!==e.title&&t.uint32(10).string(e.title),""!==e.description&&t.uint32(18).string(e.description),""!==e.runAs&&t.uint32(26).string(e.runAs),""!==e.admin&&t.uint32(34).string(e.admin),e.codeId.isZero()||t.uint32(40).uint64(e.codeId),""!==e.label&&t.uint32(50).string(e.label),0!==e.msg.length&&t.uint32(58).bytes(e.msg);for(const r of e.funds)s.Coin.encode(r,t.uint32(66).fork()).ldelim();return t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},c);for(o.funds=[],o.msg=new Uint8Array;r.pos>>3){case 1:o.title=r.string();break;case 2:o.description=r.string();break;case 3:o.runAs=r.string();break;case 4:o.admin=r.string();break;case 5:o.codeId=r.uint64();break;case 6:o.label=r.string();break;case 7:o.msg=r.bytes();break;case 8:o.funds.push(s.Coin.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},c);if(t.funds=[],t.msg=new Uint8Array,void 0!==e.title&&null!==e.title?t.title=String(e.title):t.title="",void 0!==e.description&&null!==e.description?t.description=String(e.description):t.description="",void 0!==e.runAs&&null!==e.runAs?t.runAs=String(e.runAs):t.runAs="",void 0!==e.admin&&null!==e.admin?t.admin=String(e.admin):t.admin="",void 0!==e.codeId&&null!==e.codeId?t.codeId=o.default.fromString(e.codeId):t.codeId=o.default.UZERO,void 0!==e.label&&null!==e.label?t.label=String(e.label):t.label="",void 0!==e.msg&&null!==e.msg&&(t.msg=_(e.msg)),void 0!==e.funds&&null!==e.funds)for(const r of e.funds)t.funds.push(s.Coin.fromJSON(r));return t},toJSON(e){const t={};return void 0!==e.title&&(t.title=e.title),void 0!==e.description&&(t.description=e.description),void 0!==e.runAs&&(t.runAs=e.runAs),void 0!==e.admin&&(t.admin=e.admin),void 0!==e.codeId&&(t.codeId=(e.codeId||o.default.UZERO).toString()),void 0!==e.label&&(t.label=e.label),void 0!==e.msg&&(t.msg=O(void 0!==e.msg?e.msg:new Uint8Array)),e.funds?t.funds=e.funds.map((e=>e?s.Coin.toJSON(e):void 0)):t.funds=[],t},fromPartial(e){const t=Object.assign({},c);if(t.funds=[],void 0!==e.title&&null!==e.title?t.title=e.title:t.title="",void 0!==e.description&&null!==e.description?t.description=e.description:t.description="",void 0!==e.runAs&&null!==e.runAs?t.runAs=e.runAs:t.runAs="",void 0!==e.admin&&null!==e.admin?t.admin=e.admin:t.admin="",void 0!==e.codeId&&null!==e.codeId?t.codeId=e.codeId:t.codeId=o.default.UZERO,void 0!==e.label&&null!==e.label?t.label=e.label:t.label="",void 0!==e.msg&&null!==e.msg?t.msg=e.msg:t.msg=new Uint8Array,void 0!==e.funds&&null!==e.funds)for(const r of e.funds)t.funds.push(s.Coin.fromPartial(r));return t}};const d={title:"",description:"",contract:"",codeId:o.default.UZERO};t.MigrateContractProposal={encode:(e,t=i.default.Writer.create())=>(""!==e.title&&t.uint32(10).string(e.title),""!==e.description&&t.uint32(18).string(e.description),""!==e.contract&&t.uint32(34).string(e.contract),e.codeId.isZero()||t.uint32(40).uint64(e.codeId),0!==e.msg.length&&t.uint32(50).bytes(e.msg),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},d);for(o.msg=new Uint8Array;r.pos>>3){case 1:o.title=r.string();break;case 2:o.description=r.string();break;case 4:o.contract=r.string();break;case 5:o.codeId=r.uint64();break;case 6:o.msg=r.bytes();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},d);return t.msg=new Uint8Array,void 0!==e.title&&null!==e.title?t.title=String(e.title):t.title="",void 0!==e.description&&null!==e.description?t.description=String(e.description):t.description="",void 0!==e.contract&&null!==e.contract?t.contract=String(e.contract):t.contract="",void 0!==e.codeId&&null!==e.codeId?t.codeId=o.default.fromString(e.codeId):t.codeId=o.default.UZERO,void 0!==e.msg&&null!==e.msg&&(t.msg=_(e.msg)),t},toJSON(e){const t={};return void 0!==e.title&&(t.title=e.title),void 0!==e.description&&(t.description=e.description),void 0!==e.contract&&(t.contract=e.contract),void 0!==e.codeId&&(t.codeId=(e.codeId||o.default.UZERO).toString()),void 0!==e.msg&&(t.msg=O(void 0!==e.msg?e.msg:new Uint8Array)),t},fromPartial(e){const t=Object.assign({},d);return void 0!==e.title&&null!==e.title?t.title=e.title:t.title="",void 0!==e.description&&null!==e.description?t.description=e.description:t.description="",void 0!==e.contract&&null!==e.contract?t.contract=e.contract:t.contract="",void 0!==e.codeId&&null!==e.codeId?t.codeId=e.codeId:t.codeId=o.default.UZERO,void 0!==e.msg&&null!==e.msg?t.msg=e.msg:t.msg=new Uint8Array,t}};const l={title:"",description:"",contract:""};t.SudoContractProposal={encode:(e,t=i.default.Writer.create())=>(""!==e.title&&t.uint32(10).string(e.title),""!==e.description&&t.uint32(18).string(e.description),""!==e.contract&&t.uint32(26).string(e.contract),0!==e.msg.length&&t.uint32(34).bytes(e.msg),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},l);for(o.msg=new Uint8Array;r.pos>>3){case 1:o.title=r.string();break;case 2:o.description=r.string();break;case 3:o.contract=r.string();break;case 4:o.msg=r.bytes();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},l);return t.msg=new Uint8Array,void 0!==e.title&&null!==e.title?t.title=String(e.title):t.title="",void 0!==e.description&&null!==e.description?t.description=String(e.description):t.description="",void 0!==e.contract&&null!==e.contract?t.contract=String(e.contract):t.contract="",void 0!==e.msg&&null!==e.msg&&(t.msg=_(e.msg)),t},toJSON(e){const t={};return void 0!==e.title&&(t.title=e.title),void 0!==e.description&&(t.description=e.description),void 0!==e.contract&&(t.contract=e.contract),void 0!==e.msg&&(t.msg=O(void 0!==e.msg?e.msg:new Uint8Array)),t},fromPartial(e){const t=Object.assign({},l);return void 0!==e.title&&null!==e.title?t.title=e.title:t.title="",void 0!==e.description&&null!==e.description?t.description=e.description:t.description="",void 0!==e.contract&&null!==e.contract?t.contract=e.contract:t.contract="",void 0!==e.msg&&null!==e.msg?t.msg=e.msg:t.msg=new Uint8Array,t}};const f={title:"",description:"",runAs:"",contract:""};t.ExecuteContractProposal={encode(e,t=i.default.Writer.create()){""!==e.title&&t.uint32(10).string(e.title),""!==e.description&&t.uint32(18).string(e.description),""!==e.runAs&&t.uint32(26).string(e.runAs),""!==e.contract&&t.uint32(34).string(e.contract),0!==e.msg.length&&t.uint32(42).bytes(e.msg);for(const r of e.funds)s.Coin.encode(r,t.uint32(50).fork()).ldelim();return t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},f);for(o.funds=[],o.msg=new Uint8Array;r.pos>>3){case 1:o.title=r.string();break;case 2:o.description=r.string();break;case 3:o.runAs=r.string();break;case 4:o.contract=r.string();break;case 5:o.msg=r.bytes();break;case 6:o.funds.push(s.Coin.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},f);if(t.funds=[],t.msg=new Uint8Array,void 0!==e.title&&null!==e.title?t.title=String(e.title):t.title="",void 0!==e.description&&null!==e.description?t.description=String(e.description):t.description="",void 0!==e.runAs&&null!==e.runAs?t.runAs=String(e.runAs):t.runAs="",void 0!==e.contract&&null!==e.contract?t.contract=String(e.contract):t.contract="",void 0!==e.msg&&null!==e.msg&&(t.msg=_(e.msg)),void 0!==e.funds&&null!==e.funds)for(const r of e.funds)t.funds.push(s.Coin.fromJSON(r));return t},toJSON(e){const t={};return void 0!==e.title&&(t.title=e.title),void 0!==e.description&&(t.description=e.description),void 0!==e.runAs&&(t.runAs=e.runAs),void 0!==e.contract&&(t.contract=e.contract),void 0!==e.msg&&(t.msg=O(void 0!==e.msg?e.msg:new Uint8Array)),e.funds?t.funds=e.funds.map((e=>e?s.Coin.toJSON(e):void 0)):t.funds=[],t},fromPartial(e){const t=Object.assign({},f);if(t.funds=[],void 0!==e.title&&null!==e.title?t.title=e.title:t.title="",void 0!==e.description&&null!==e.description?t.description=e.description:t.description="",void 0!==e.runAs&&null!==e.runAs?t.runAs=e.runAs:t.runAs="",void 0!==e.contract&&null!==e.contract?t.contract=e.contract:t.contract="",void 0!==e.msg&&null!==e.msg?t.msg=e.msg:t.msg=new Uint8Array,void 0!==e.funds&&null!==e.funds)for(const r of e.funds)t.funds.push(s.Coin.fromPartial(r));return t}};const h={title:"",description:"",newAdmin:"",contract:""};t.UpdateAdminProposal={encode:(e,t=i.default.Writer.create())=>(""!==e.title&&t.uint32(10).string(e.title),""!==e.description&&t.uint32(18).string(e.description),""!==e.newAdmin&&t.uint32(26).string(e.newAdmin),""!==e.contract&&t.uint32(34).string(e.contract),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},h);for(;r.pos>>3){case 1:o.title=r.string();break;case 2:o.description=r.string();break;case 3:o.newAdmin=r.string();break;case 4:o.contract=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},h);return void 0!==e.title&&null!==e.title?t.title=String(e.title):t.title="",void 0!==e.description&&null!==e.description?t.description=String(e.description):t.description="",void 0!==e.newAdmin&&null!==e.newAdmin?t.newAdmin=String(e.newAdmin):t.newAdmin="",void 0!==e.contract&&null!==e.contract?t.contract=String(e.contract):t.contract="",t},toJSON(e){const t={};return void 0!==e.title&&(t.title=e.title),void 0!==e.description&&(t.description=e.description),void 0!==e.newAdmin&&(t.newAdmin=e.newAdmin),void 0!==e.contract&&(t.contract=e.contract),t},fromPartial(e){const t=Object.assign({},h);return void 0!==e.title&&null!==e.title?t.title=e.title:t.title="",void 0!==e.description&&null!==e.description?t.description=e.description:t.description="",void 0!==e.newAdmin&&null!==e.newAdmin?t.newAdmin=e.newAdmin:t.newAdmin="",void 0!==e.contract&&null!==e.contract?t.contract=e.contract:t.contract="",t}};const p={title:"",description:"",contract:""};t.ClearAdminProposal={encode:(e,t=i.default.Writer.create())=>(""!==e.title&&t.uint32(10).string(e.title),""!==e.description&&t.uint32(18).string(e.description),""!==e.contract&&t.uint32(26).string(e.contract),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},p);for(;r.pos>>3){case 1:o.title=r.string();break;case 2:o.description=r.string();break;case 3:o.contract=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},p);return void 0!==e.title&&null!==e.title?t.title=String(e.title):t.title="",void 0!==e.description&&null!==e.description?t.description=String(e.description):t.description="",void 0!==e.contract&&null!==e.contract?t.contract=String(e.contract):t.contract="",t},toJSON(e){const t={};return void 0!==e.title&&(t.title=e.title),void 0!==e.description&&(t.description=e.description),void 0!==e.contract&&(t.contract=e.contract),t},fromPartial(e){const t=Object.assign({},p);return void 0!==e.title&&null!==e.title?t.title=e.title:t.title="",void 0!==e.description&&null!==e.description?t.description=e.description:t.description="",void 0!==e.contract&&null!==e.contract?t.contract=e.contract:t.contract="",t}};const m={title:"",description:"",codeIds:o.default.UZERO};t.PinCodesProposal={encode(e,t=i.default.Writer.create()){""!==e.title&&t.uint32(10).string(e.title),""!==e.description&&t.uint32(18).string(e.description),t.uint32(26).fork();for(const r of e.codeIds)t.uint64(r);return t.ldelim(),t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},m);for(o.codeIds=[];r.pos>>3){case 1:o.title=r.string();break;case 2:o.description=r.string();break;case 3:if(2==(7&e)){const e=r.uint32()+r.pos;for(;r.pos(e||o.default.UZERO).toString())):t.codeIds=[],t},fromPartial(e){const t=Object.assign({},m);if(t.codeIds=[],void 0!==e.title&&null!==e.title?t.title=e.title:t.title="",void 0!==e.description&&null!==e.description?t.description=e.description:t.description="",void 0!==e.codeIds&&null!==e.codeIds)for(const r of e.codeIds)t.codeIds.push(r);return t}};const g={title:"",description:"",codeIds:o.default.UZERO};t.UnpinCodesProposal={encode(e,t=i.default.Writer.create()){""!==e.title&&t.uint32(10).string(e.title),""!==e.description&&t.uint32(18).string(e.description),t.uint32(26).fork();for(const r of e.codeIds)t.uint64(r);return t.ldelim(),t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},g);for(o.codeIds=[];r.pos>>3){case 1:o.title=r.string();break;case 2:o.description=r.string();break;case 3:if(2==(7&e)){const e=r.uint32()+r.pos;for(;r.pos(e||o.default.UZERO).toString())):t.codeIds=[],t},fromPartial(e){const t=Object.assign({},g);if(t.codeIds=[],void 0!==e.title&&null!==e.title?t.title=e.title:t.title="",void 0!==e.description&&null!==e.description?t.description=e.description:t.description="",void 0!==e.codeIds&&null!==e.codeIds)for(const r of e.codeIds)t.codeIds.push(r);return t}};const v={codeId:o.default.UZERO};t.AccessConfigUpdate={encode:(e,t=i.default.Writer.create())=>(e.codeId.isZero()||t.uint32(8).uint64(e.codeId),void 0!==e.instantiatePermission&&a.AccessConfig.encode(e.instantiatePermission,t.uint32(18).fork()).ldelim(),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},v);for(;r.pos>>3){case 1:o.codeId=r.uint64();break;case 2:o.instantiatePermission=a.AccessConfig.decode(r,r.uint32());break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},v);return void 0!==e.codeId&&null!==e.codeId?t.codeId=o.default.fromString(e.codeId):t.codeId=o.default.UZERO,void 0!==e.instantiatePermission&&null!==e.instantiatePermission?t.instantiatePermission=a.AccessConfig.fromJSON(e.instantiatePermission):t.instantiatePermission=void 0,t},toJSON(e){const t={};return void 0!==e.codeId&&(t.codeId=(e.codeId||o.default.UZERO).toString()),void 0!==e.instantiatePermission&&(t.instantiatePermission=e.instantiatePermission?a.AccessConfig.toJSON(e.instantiatePermission):void 0),t},fromPartial(e){const t=Object.assign({},v);return void 0!==e.codeId&&null!==e.codeId?t.codeId=e.codeId:t.codeId=o.default.UZERO,void 0!==e.instantiatePermission&&null!==e.instantiatePermission?t.instantiatePermission=a.AccessConfig.fromPartial(e.instantiatePermission):t.instantiatePermission=void 0,t}};const b={title:"",description:""};t.UpdateInstantiateConfigProposal={encode(e,r=i.default.Writer.create()){""!==e.title&&r.uint32(10).string(e.title),""!==e.description&&r.uint32(18).string(e.description);for(const n of e.accessConfigUpdates)t.AccessConfigUpdate.encode(n,r.uint32(26).fork()).ldelim();return r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},b);for(a.accessConfigUpdates=[];n.pos>>3){case 1:a.title=n.string();break;case 2:a.description=n.string();break;case 3:a.accessConfigUpdates.push(t.AccessConfigUpdate.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},b);if(r.accessConfigUpdates=[],void 0!==e.title&&null!==e.title?r.title=String(e.title):r.title="",void 0!==e.description&&null!==e.description?r.description=String(e.description):r.description="",void 0!==e.accessConfigUpdates&&null!==e.accessConfigUpdates)for(const n of e.accessConfigUpdates)r.accessConfigUpdates.push(t.AccessConfigUpdate.fromJSON(n));return r},toJSON(e){const r={};return void 0!==e.title&&(r.title=e.title),void 0!==e.description&&(r.description=e.description),e.accessConfigUpdates?r.accessConfigUpdates=e.accessConfigUpdates.map((e=>e?t.AccessConfigUpdate.toJSON(e):void 0)):r.accessConfigUpdates=[],r},fromPartial(e){const r=Object.assign({},b);if(r.accessConfigUpdates=[],void 0!==e.title&&null!==e.title?r.title=e.title:r.title="",void 0!==e.description&&null!==e.description?r.description=e.description:r.description="",void 0!==e.accessConfigUpdates&&null!==e.accessConfigUpdates)for(const n of e.accessConfigUpdates)r.accessConfigUpdates.push(t.AccessConfigUpdate.fromPartial(n));return r}};var y=(()=>{if(void 0!==y)return y;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==r.g)return r.g;throw"Unable to locate global object"})();const w=y.atob||(e=>y.Buffer.from(e,"base64").toString("binary"));function _(e){const t=w(e),r=new Uint8Array(t.length);for(let e=0;ey.Buffer.from(e,"binary").toString("base64"));function O(e){const t=[];for(const r of e)t.push(String.fromCharCode(r));return S(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},53200:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.GrpcWebImpl=t.MsgClearAdminDesc=t.MsgUpdateAdminDesc=t.MsgMigrateContractDesc=t.MsgExecuteContractDesc=t.MsgInstantiateContractDesc=t.MsgStoreCodeDesc=t.MsgDesc=t.MsgClientImpl=t.MsgClearAdminResponse=t.MsgClearAdmin=t.MsgUpdateAdminResponse=t.MsgUpdateAdmin=t.MsgMigrateContractResponse=t.MsgMigrateContract=t.MsgExecuteContractResponse=t.MsgExecuteContract=t.MsgInstantiateContractResponse=t.MsgInstantiateContract=t.MsgStoreCodeResponse=t.MsgStoreCode=t.protobufPackage=void 0;const o=n(r(24067)),i=r(66959),a=n(r(63967)),s=r(34383),u=r(62200),c=r(49545);t.protobufPackage="cosmwasm.wasm.v1";const d={sender:""};t.MsgStoreCode={encode:(e,t=a.default.Writer.create())=>(""!==e.sender&&t.uint32(10).string(e.sender),0!==e.wasmByteCode.length&&t.uint32(18).bytes(e.wasmByteCode),void 0!==e.instantiatePermission&&s.AccessConfig.encode(e.instantiatePermission,t.uint32(42).fork()).ldelim(),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},d);for(o.wasmByteCode=new Uint8Array;r.pos>>3){case 1:o.sender=r.string();break;case 2:o.wasmByteCode=r.bytes();break;case 5:o.instantiatePermission=s.AccessConfig.decode(r,r.uint32());break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},d);return t.wasmByteCode=new Uint8Array,void 0!==e.sender&&null!==e.sender?t.sender=String(e.sender):t.sender="",void 0!==e.wasmByteCode&&null!==e.wasmByteCode&&(t.wasmByteCode=k(e.wasmByteCode)),void 0!==e.instantiatePermission&&null!==e.instantiatePermission?t.instantiatePermission=s.AccessConfig.fromJSON(e.instantiatePermission):t.instantiatePermission=void 0,t},toJSON(e){const t={};return void 0!==e.sender&&(t.sender=e.sender),void 0!==e.wasmByteCode&&(t.wasmByteCode=P(void 0!==e.wasmByteCode?e.wasmByteCode:new Uint8Array)),void 0!==e.instantiatePermission&&(t.instantiatePermission=e.instantiatePermission?s.AccessConfig.toJSON(e.instantiatePermission):void 0),t},fromPartial(e){const t=Object.assign({},d);return void 0!==e.sender&&null!==e.sender?t.sender=e.sender:t.sender="",void 0!==e.wasmByteCode&&null!==e.wasmByteCode?t.wasmByteCode=e.wasmByteCode:t.wasmByteCode=new Uint8Array,void 0!==e.instantiatePermission&&null!==e.instantiatePermission?t.instantiatePermission=s.AccessConfig.fromPartial(e.instantiatePermission):t.instantiatePermission=void 0,t}};const l={codeId:o.default.UZERO};t.MsgStoreCodeResponse={encode:(e,t=a.default.Writer.create())=>(e.codeId.isZero()||t.uint32(8).uint64(e.codeId),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},l);for(;r.pos>>3==1?o.codeId=r.uint64():r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},l);return void 0!==e.codeId&&null!==e.codeId?t.codeId=o.default.fromString(e.codeId):t.codeId=o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.codeId&&(t.codeId=(e.codeId||o.default.UZERO).toString()),t},fromPartial(e){const t=Object.assign({},l);return void 0!==e.codeId&&null!==e.codeId?t.codeId=e.codeId:t.codeId=o.default.UZERO,t}};const f={sender:"",admin:"",codeId:o.default.UZERO,label:""};t.MsgInstantiateContract={encode(e,t=a.default.Writer.create()){""!==e.sender&&t.uint32(10).string(e.sender),""!==e.admin&&t.uint32(18).string(e.admin),e.codeId.isZero()||t.uint32(24).uint64(e.codeId),""!==e.label&&t.uint32(34).string(e.label),0!==e.msg.length&&t.uint32(42).bytes(e.msg);for(const r of e.funds)c.Coin.encode(r,t.uint32(50).fork()).ldelim();return t},decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},f);for(o.funds=[],o.msg=new Uint8Array;r.pos>>3){case 1:o.sender=r.string();break;case 2:o.admin=r.string();break;case 3:o.codeId=r.uint64();break;case 4:o.label=r.string();break;case 5:o.msg=r.bytes();break;case 6:o.funds.push(c.Coin.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},f);if(t.funds=[],t.msg=new Uint8Array,void 0!==e.sender&&null!==e.sender?t.sender=String(e.sender):t.sender="",void 0!==e.admin&&null!==e.admin?t.admin=String(e.admin):t.admin="",void 0!==e.codeId&&null!==e.codeId?t.codeId=o.default.fromString(e.codeId):t.codeId=o.default.UZERO,void 0!==e.label&&null!==e.label?t.label=String(e.label):t.label="",void 0!==e.msg&&null!==e.msg&&(t.msg=k(e.msg)),void 0!==e.funds&&null!==e.funds)for(const r of e.funds)t.funds.push(c.Coin.fromJSON(r));return t},toJSON(e){const t={};return void 0!==e.sender&&(t.sender=e.sender),void 0!==e.admin&&(t.admin=e.admin),void 0!==e.codeId&&(t.codeId=(e.codeId||o.default.UZERO).toString()),void 0!==e.label&&(t.label=e.label),void 0!==e.msg&&(t.msg=P(void 0!==e.msg?e.msg:new Uint8Array)),e.funds?t.funds=e.funds.map((e=>e?c.Coin.toJSON(e):void 0)):t.funds=[],t},fromPartial(e){const t=Object.assign({},f);if(t.funds=[],void 0!==e.sender&&null!==e.sender?t.sender=e.sender:t.sender="",void 0!==e.admin&&null!==e.admin?t.admin=e.admin:t.admin="",void 0!==e.codeId&&null!==e.codeId?t.codeId=e.codeId:t.codeId=o.default.UZERO,void 0!==e.label&&null!==e.label?t.label=e.label:t.label="",void 0!==e.msg&&null!==e.msg?t.msg=e.msg:t.msg=new Uint8Array,void 0!==e.funds&&null!==e.funds)for(const r of e.funds)t.funds.push(c.Coin.fromPartial(r));return t}};const h={address:""};t.MsgInstantiateContractResponse={encode:(e,t=a.default.Writer.create())=>(""!==e.address&&t.uint32(10).string(e.address),0!==e.data.length&&t.uint32(18).bytes(e.data),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},h);for(o.data=new Uint8Array;r.pos>>3){case 1:o.address=r.string();break;case 2:o.data=r.bytes();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},h);return t.data=new Uint8Array,void 0!==e.address&&null!==e.address?t.address=String(e.address):t.address="",void 0!==e.data&&null!==e.data&&(t.data=k(e.data)),t},toJSON(e){const t={};return void 0!==e.address&&(t.address=e.address),void 0!==e.data&&(t.data=P(void 0!==e.data?e.data:new Uint8Array)),t},fromPartial(e){const t=Object.assign({},h);return void 0!==e.address&&null!==e.address?t.address=e.address:t.address="",void 0!==e.data&&null!==e.data?t.data=e.data:t.data=new Uint8Array,t}};const p={sender:"",contract:""};t.MsgExecuteContract={encode(e,t=a.default.Writer.create()){""!==e.sender&&t.uint32(10).string(e.sender),""!==e.contract&&t.uint32(18).string(e.contract),0!==e.msg.length&&t.uint32(26).bytes(e.msg);for(const r of e.funds)c.Coin.encode(r,t.uint32(42).fork()).ldelim();return t},decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},p);for(o.funds=[],o.msg=new Uint8Array;r.pos>>3){case 1:o.sender=r.string();break;case 2:o.contract=r.string();break;case 3:o.msg=r.bytes();break;case 5:o.funds.push(c.Coin.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},p);if(t.funds=[],t.msg=new Uint8Array,void 0!==e.sender&&null!==e.sender?t.sender=String(e.sender):t.sender="",void 0!==e.contract&&null!==e.contract?t.contract=String(e.contract):t.contract="",void 0!==e.msg&&null!==e.msg&&(t.msg=k(e.msg)),void 0!==e.funds&&null!==e.funds)for(const r of e.funds)t.funds.push(c.Coin.fromJSON(r));return t},toJSON(e){const t={};return void 0!==e.sender&&(t.sender=e.sender),void 0!==e.contract&&(t.contract=e.contract),void 0!==e.msg&&(t.msg=P(void 0!==e.msg?e.msg:new Uint8Array)),e.funds?t.funds=e.funds.map((e=>e?c.Coin.toJSON(e):void 0)):t.funds=[],t},fromPartial(e){const t=Object.assign({},p);if(t.funds=[],void 0!==e.sender&&null!==e.sender?t.sender=e.sender:t.sender="",void 0!==e.contract&&null!==e.contract?t.contract=e.contract:t.contract="",void 0!==e.msg&&null!==e.msg?t.msg=e.msg:t.msg=new Uint8Array,void 0!==e.funds&&null!==e.funds)for(const r of e.funds)t.funds.push(c.Coin.fromPartial(r));return t}};const m={};t.MsgExecuteContractResponse={encode:(e,t=a.default.Writer.create())=>(0!==e.data.length&&t.uint32(10).bytes(e.data),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},m);for(o.data=new Uint8Array;r.pos>>3==1?o.data=r.bytes():r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},m);return t.data=new Uint8Array,void 0!==e.data&&null!==e.data&&(t.data=k(e.data)),t},toJSON(e){const t={};return void 0!==e.data&&(t.data=P(void 0!==e.data?e.data:new Uint8Array)),t},fromPartial(e){const t=Object.assign({},m);return void 0!==e.data&&null!==e.data?t.data=e.data:t.data=new Uint8Array,t}};const g={sender:"",contract:"",codeId:o.default.UZERO};t.MsgMigrateContract={encode:(e,t=a.default.Writer.create())=>(""!==e.sender&&t.uint32(10).string(e.sender),""!==e.contract&&t.uint32(18).string(e.contract),e.codeId.isZero()||t.uint32(24).uint64(e.codeId),0!==e.msg.length&&t.uint32(34).bytes(e.msg),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},g);for(o.msg=new Uint8Array;r.pos>>3){case 1:o.sender=r.string();break;case 2:o.contract=r.string();break;case 3:o.codeId=r.uint64();break;case 4:o.msg=r.bytes();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},g);return t.msg=new Uint8Array,void 0!==e.sender&&null!==e.sender?t.sender=String(e.sender):t.sender="",void 0!==e.contract&&null!==e.contract?t.contract=String(e.contract):t.contract="",void 0!==e.codeId&&null!==e.codeId?t.codeId=o.default.fromString(e.codeId):t.codeId=o.default.UZERO,void 0!==e.msg&&null!==e.msg&&(t.msg=k(e.msg)),t},toJSON(e){const t={};return void 0!==e.sender&&(t.sender=e.sender),void 0!==e.contract&&(t.contract=e.contract),void 0!==e.codeId&&(t.codeId=(e.codeId||o.default.UZERO).toString()),void 0!==e.msg&&(t.msg=P(void 0!==e.msg?e.msg:new Uint8Array)),t},fromPartial(e){const t=Object.assign({},g);return void 0!==e.sender&&null!==e.sender?t.sender=e.sender:t.sender="",void 0!==e.contract&&null!==e.contract?t.contract=e.contract:t.contract="",void 0!==e.codeId&&null!==e.codeId?t.codeId=e.codeId:t.codeId=o.default.UZERO,void 0!==e.msg&&null!==e.msg?t.msg=e.msg:t.msg=new Uint8Array,t}};const v={};t.MsgMigrateContractResponse={encode:(e,t=a.default.Writer.create())=>(0!==e.data.length&&t.uint32(10).bytes(e.data),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},v);for(o.data=new Uint8Array;r.pos>>3==1?o.data=r.bytes():r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},v);return t.data=new Uint8Array,void 0!==e.data&&null!==e.data&&(t.data=k(e.data)),t},toJSON(e){const t={};return void 0!==e.data&&(t.data=P(void 0!==e.data?e.data:new Uint8Array)),t},fromPartial(e){const t=Object.assign({},v);return void 0!==e.data&&null!==e.data?t.data=e.data:t.data=new Uint8Array,t}};const b={sender:"",newAdmin:"",contract:""};t.MsgUpdateAdmin={encode:(e,t=a.default.Writer.create())=>(""!==e.sender&&t.uint32(10).string(e.sender),""!==e.newAdmin&&t.uint32(18).string(e.newAdmin),""!==e.contract&&t.uint32(26).string(e.contract),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},b);for(;r.pos>>3){case 1:o.sender=r.string();break;case 2:o.newAdmin=r.string();break;case 3:o.contract=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},b);return void 0!==e.sender&&null!==e.sender?t.sender=String(e.sender):t.sender="",void 0!==e.newAdmin&&null!==e.newAdmin?t.newAdmin=String(e.newAdmin):t.newAdmin="",void 0!==e.contract&&null!==e.contract?t.contract=String(e.contract):t.contract="",t},toJSON(e){const t={};return void 0!==e.sender&&(t.sender=e.sender),void 0!==e.newAdmin&&(t.newAdmin=e.newAdmin),void 0!==e.contract&&(t.contract=e.contract),t},fromPartial(e){const t=Object.assign({},b);return void 0!==e.sender&&null!==e.sender?t.sender=e.sender:t.sender="",void 0!==e.newAdmin&&null!==e.newAdmin?t.newAdmin=e.newAdmin:t.newAdmin="",void 0!==e.contract&&null!==e.contract?t.contract=e.contract:t.contract="",t}};const y={};t.MsgUpdateAdminResponse={encode:(e,t=a.default.Writer.create())=>t,decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},y);for(;r.posObject.assign({},y),toJSON:e=>({}),fromPartial:e=>Object.assign({},y)};const w={sender:"",contract:""};t.MsgClearAdmin={encode:(e,t=a.default.Writer.create())=>(""!==e.sender&&t.uint32(10).string(e.sender),""!==e.contract&&t.uint32(26).string(e.contract),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},w);for(;r.pos>>3){case 1:o.sender=r.string();break;case 3:o.contract=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},w);return void 0!==e.sender&&null!==e.sender?t.sender=String(e.sender):t.sender="",void 0!==e.contract&&null!==e.contract?t.contract=String(e.contract):t.contract="",t},toJSON(e){const t={};return void 0!==e.sender&&(t.sender=e.sender),void 0!==e.contract&&(t.contract=e.contract),t},fromPartial(e){const t=Object.assign({},w);return void 0!==e.sender&&null!==e.sender?t.sender=e.sender:t.sender="",void 0!==e.contract&&null!==e.contract?t.contract=e.contract:t.contract="",t}};const _={};t.MsgClearAdminResponse={encode:(e,t=a.default.Writer.create())=>t,decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},_);for(;r.posObject.assign({},_),toJSON:e=>({}),fromPartial:e=>Object.assign({},_)},t.MsgClientImpl=class{constructor(e){this.rpc=e,this.StoreCode=this.StoreCode.bind(this),this.InstantiateContract=this.InstantiateContract.bind(this),this.ExecuteContract=this.ExecuteContract.bind(this),this.MigrateContract=this.MigrateContract.bind(this),this.UpdateAdmin=this.UpdateAdmin.bind(this),this.ClearAdmin=this.ClearAdmin.bind(this)}StoreCode(e,r){return this.rpc.unary(t.MsgStoreCodeDesc,t.MsgStoreCode.fromPartial(e),r)}InstantiateContract(e,r){return this.rpc.unary(t.MsgInstantiateContractDesc,t.MsgInstantiateContract.fromPartial(e),r)}ExecuteContract(e,r){return this.rpc.unary(t.MsgExecuteContractDesc,t.MsgExecuteContract.fromPartial(e),r)}MigrateContract(e,r){return this.rpc.unary(t.MsgMigrateContractDesc,t.MsgMigrateContract.fromPartial(e),r)}UpdateAdmin(e,r){return this.rpc.unary(t.MsgUpdateAdminDesc,t.MsgUpdateAdmin.fromPartial(e),r)}ClearAdmin(e,r){return this.rpc.unary(t.MsgClearAdminDesc,t.MsgClearAdmin.fromPartial(e),r)}},t.MsgDesc={serviceName:"cosmwasm.wasm.v1.Msg"},t.MsgStoreCodeDesc={methodName:"StoreCode",service:t.MsgDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.MsgStoreCode.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.MsgStoreCodeResponse.decode(e)),{toObject(){return this}})}},t.MsgInstantiateContractDesc={methodName:"InstantiateContract",service:t.MsgDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.MsgInstantiateContract.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.MsgInstantiateContractResponse.decode(e)),{toObject(){return this}})}},t.MsgExecuteContractDesc={methodName:"ExecuteContract",service:t.MsgDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.MsgExecuteContract.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.MsgExecuteContractResponse.decode(e)),{toObject(){return this}})}},t.MsgMigrateContractDesc={methodName:"MigrateContract",service:t.MsgDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.MsgMigrateContract.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.MsgMigrateContractResponse.decode(e)),{toObject(){return this}})}},t.MsgUpdateAdminDesc={methodName:"UpdateAdmin",service:t.MsgDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.MsgUpdateAdmin.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.MsgUpdateAdminResponse.decode(e)),{toObject(){return this}})}},t.MsgClearAdminDesc={methodName:"ClearAdmin",service:t.MsgDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.MsgClearAdmin.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.MsgClearAdminResponse.decode(e)),{toObject(){return this}})}},t.GrpcWebImpl=class{constructor(e,t){this.host=e,this.options=t}unary(e,t,r){var n;const o=Object.assign(Object.assign({},t),e.requestType),a=r&&this.options.metadata?new u.BrowserHeaders(Object.assign(Object.assign({},null===(n=this.options)||void 0===n?void 0:n.metadata.headersMap),null==r?void 0:r.headersMap)):r||this.options.metadata;return new Promise(((t,r)=>{i.grpc.unary(e,{request:o,host:this.host,metadata:a,transport:this.options.transport,debug:this.options.debug,onEnd:function(e){if(e.status===i.grpc.Code.OK)t(e.message);else{const t=new Error(e.statusMessage);t.code=e.status,t.metadata=e.trailers,r(t)}}})}))}};var S=(()=>{if(void 0!==S)return S;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==r.g)return r.g;throw"Unable to locate global object"})();const O=S.atob||(e=>S.Buffer.from(e,"base64").toString("binary"));function k(e){const t=O(e),r=new Uint8Array(t.length);for(let e=0;eS.Buffer.from(e,"binary").toString("base64"));function P(e){const t=[];for(const r of e)t.push(String.fromCharCode(r));return A(t.join(""))}a.default.util.Long!==o.default&&(a.default.util.Long=o.default,a.default.configure())},34383:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Model=t.AbsoluteTxPosition=t.ContractCodeHistoryEntry=t.ContractInfo=t.CodeInfo=t.Params=t.AccessConfig=t.AccessTypeParam=t.contractCodeHistoryOperationTypeToJSON=t.contractCodeHistoryOperationTypeFromJSON=t.ContractCodeHistoryOperationType=t.accessTypeToJSON=t.accessTypeFromJSON=t.AccessType=t.protobufPackage=void 0;const o=n(r(24067)),i=n(r(63967)),a=r(17063);var s,u;function c(e){switch(e){case 0:case"ACCESS_TYPE_UNSPECIFIED":return s.ACCESS_TYPE_UNSPECIFIED;case 1:case"ACCESS_TYPE_NOBODY":return s.ACCESS_TYPE_NOBODY;case 2:case"ACCESS_TYPE_ONLY_ADDRESS":return s.ACCESS_TYPE_ONLY_ADDRESS;case 3:case"ACCESS_TYPE_EVERYBODY":return s.ACCESS_TYPE_EVERYBODY;default:return s.UNRECOGNIZED}}function d(e){switch(e){case s.ACCESS_TYPE_UNSPECIFIED:return"ACCESS_TYPE_UNSPECIFIED";case s.ACCESS_TYPE_NOBODY:return"ACCESS_TYPE_NOBODY";case s.ACCESS_TYPE_ONLY_ADDRESS:return"ACCESS_TYPE_ONLY_ADDRESS";case s.ACCESS_TYPE_EVERYBODY:return"ACCESS_TYPE_EVERYBODY";default:return"UNKNOWN"}}function l(e){switch(e){case 0:case"CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED":return u.CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED;case 1:case"CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT":return u.CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT;case 2:case"CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE":return u.CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE;case 3:case"CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS":return u.CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS;default:return u.UNRECOGNIZED}}function f(e){switch(e){case u.CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED:return"CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED";case u.CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT:return"CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT";case u.CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE:return"CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE";case u.CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS:return"CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS";default:return"UNKNOWN"}}t.protobufPackage="cosmwasm.wasm.v1",function(e){e[e.ACCESS_TYPE_UNSPECIFIED=0]="ACCESS_TYPE_UNSPECIFIED",e[e.ACCESS_TYPE_NOBODY=1]="ACCESS_TYPE_NOBODY",e[e.ACCESS_TYPE_ONLY_ADDRESS=2]="ACCESS_TYPE_ONLY_ADDRESS",e[e.ACCESS_TYPE_EVERYBODY=3]="ACCESS_TYPE_EVERYBODY",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(s=t.AccessType||(t.AccessType={})),t.accessTypeFromJSON=c,t.accessTypeToJSON=d,function(e){e[e.CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED=0]="CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED",e[e.CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT=1]="CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT",e[e.CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE=2]="CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE",e[e.CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS=3]="CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(u=t.ContractCodeHistoryOperationType||(t.ContractCodeHistoryOperationType={})),t.contractCodeHistoryOperationTypeFromJSON=l,t.contractCodeHistoryOperationTypeToJSON=f;const h={value:0};t.AccessTypeParam={encode:(e,t=i.default.Writer.create())=>(0!==e.value&&t.uint32(8).int32(e.value),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},h);for(;r.pos>>3==1?o.value=r.int32():r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},h);return void 0!==e.value&&null!==e.value?t.value=c(e.value):t.value=0,t},toJSON(e){const t={};return void 0!==e.value&&(t.value=d(e.value)),t},fromPartial(e){const t=Object.assign({},h);return void 0!==e.value&&null!==e.value?t.value=e.value:t.value=0,t}};const p={permission:0,address:""};t.AccessConfig={encode:(e,t=i.default.Writer.create())=>(0!==e.permission&&t.uint32(8).int32(e.permission),""!==e.address&&t.uint32(18).string(e.address),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},p);for(;r.pos>>3){case 1:o.permission=r.int32();break;case 2:o.address=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},p);return void 0!==e.permission&&null!==e.permission?t.permission=c(e.permission):t.permission=0,void 0!==e.address&&null!==e.address?t.address=String(e.address):t.address="",t},toJSON(e){const t={};return void 0!==e.permission&&(t.permission=d(e.permission)),void 0!==e.address&&(t.address=e.address),t},fromPartial(e){const t=Object.assign({},p);return void 0!==e.permission&&null!==e.permission?t.permission=e.permission:t.permission=0,void 0!==e.address&&null!==e.address?t.address=e.address:t.address="",t}};const m={instantiateDefaultPermission:0};t.Params={encode:(e,r=i.default.Writer.create())=>(void 0!==e.codeUploadAccess&&t.AccessConfig.encode(e.codeUploadAccess,r.uint32(10).fork()).ldelim(),0!==e.instantiateDefaultPermission&&r.uint32(16).int32(e.instantiateDefaultPermission),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},m);for(;n.pos>>3){case 1:a.codeUploadAccess=t.AccessConfig.decode(n,n.uint32());break;case 2:a.instantiateDefaultPermission=n.int32();break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},m);return void 0!==e.codeUploadAccess&&null!==e.codeUploadAccess?r.codeUploadAccess=t.AccessConfig.fromJSON(e.codeUploadAccess):r.codeUploadAccess=void 0,void 0!==e.instantiateDefaultPermission&&null!==e.instantiateDefaultPermission?r.instantiateDefaultPermission=c(e.instantiateDefaultPermission):r.instantiateDefaultPermission=0,r},toJSON(e){const r={};return void 0!==e.codeUploadAccess&&(r.codeUploadAccess=e.codeUploadAccess?t.AccessConfig.toJSON(e.codeUploadAccess):void 0),void 0!==e.instantiateDefaultPermission&&(r.instantiateDefaultPermission=d(e.instantiateDefaultPermission)),r},fromPartial(e){const r=Object.assign({},m);return void 0!==e.codeUploadAccess&&null!==e.codeUploadAccess?r.codeUploadAccess=t.AccessConfig.fromPartial(e.codeUploadAccess):r.codeUploadAccess=void 0,void 0!==e.instantiateDefaultPermission&&null!==e.instantiateDefaultPermission?r.instantiateDefaultPermission=e.instantiateDefaultPermission:r.instantiateDefaultPermission=0,r}};const g={creator:""};t.CodeInfo={encode:(e,r=i.default.Writer.create())=>(0!==e.codeHash.length&&r.uint32(10).bytes(e.codeHash),""!==e.creator&&r.uint32(18).string(e.creator),void 0!==e.instantiateConfig&&t.AccessConfig.encode(e.instantiateConfig,r.uint32(42).fork()).ldelim(),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},g);for(a.codeHash=new Uint8Array;n.pos>>3){case 1:a.codeHash=n.bytes();break;case 2:a.creator=n.string();break;case 5:a.instantiateConfig=t.AccessConfig.decode(n,n.uint32());break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},g);return r.codeHash=new Uint8Array,void 0!==e.codeHash&&null!==e.codeHash&&(r.codeHash=O(e.codeHash)),void 0!==e.creator&&null!==e.creator?r.creator=String(e.creator):r.creator="",void 0!==e.instantiateConfig&&null!==e.instantiateConfig?r.instantiateConfig=t.AccessConfig.fromJSON(e.instantiateConfig):r.instantiateConfig=void 0,r},toJSON(e){const r={};return void 0!==e.codeHash&&(r.codeHash=A(void 0!==e.codeHash?e.codeHash:new Uint8Array)),void 0!==e.creator&&(r.creator=e.creator),void 0!==e.instantiateConfig&&(r.instantiateConfig=e.instantiateConfig?t.AccessConfig.toJSON(e.instantiateConfig):void 0),r},fromPartial(e){const r=Object.assign({},g);return void 0!==e.codeHash&&null!==e.codeHash?r.codeHash=e.codeHash:r.codeHash=new Uint8Array,void 0!==e.creator&&null!==e.creator?r.creator=e.creator:r.creator="",void 0!==e.instantiateConfig&&null!==e.instantiateConfig?r.instantiateConfig=t.AccessConfig.fromPartial(e.instantiateConfig):r.instantiateConfig=void 0,r}};const v={codeId:o.default.UZERO,creator:"",admin:"",label:"",ibcPortId:""};t.ContractInfo={encode:(e,r=i.default.Writer.create())=>(e.codeId.isZero()||r.uint32(8).uint64(e.codeId),""!==e.creator&&r.uint32(18).string(e.creator),""!==e.admin&&r.uint32(26).string(e.admin),""!==e.label&&r.uint32(34).string(e.label),void 0!==e.created&&t.AbsoluteTxPosition.encode(e.created,r.uint32(42).fork()).ldelim(),""!==e.ibcPortId&&r.uint32(50).string(e.ibcPortId),void 0!==e.extension&&a.Any.encode(e.extension,r.uint32(58).fork()).ldelim(),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const s=Object.assign({},v);for(;n.pos>>3){case 1:s.codeId=n.uint64();break;case 2:s.creator=n.string();break;case 3:s.admin=n.string();break;case 4:s.label=n.string();break;case 5:s.created=t.AbsoluteTxPosition.decode(n,n.uint32());break;case 6:s.ibcPortId=n.string();break;case 7:s.extension=a.Any.decode(n,n.uint32());break;default:n.skipType(7&e)}}return s},fromJSON(e){const r=Object.assign({},v);return void 0!==e.codeId&&null!==e.codeId?r.codeId=o.default.fromString(e.codeId):r.codeId=o.default.UZERO,void 0!==e.creator&&null!==e.creator?r.creator=String(e.creator):r.creator="",void 0!==e.admin&&null!==e.admin?r.admin=String(e.admin):r.admin="",void 0!==e.label&&null!==e.label?r.label=String(e.label):r.label="",void 0!==e.created&&null!==e.created?r.created=t.AbsoluteTxPosition.fromJSON(e.created):r.created=void 0,void 0!==e.ibcPortId&&null!==e.ibcPortId?r.ibcPortId=String(e.ibcPortId):r.ibcPortId="",void 0!==e.extension&&null!==e.extension?r.extension=a.Any.fromJSON(e.extension):r.extension=void 0,r},toJSON(e){const r={};return void 0!==e.codeId&&(r.codeId=(e.codeId||o.default.UZERO).toString()),void 0!==e.creator&&(r.creator=e.creator),void 0!==e.admin&&(r.admin=e.admin),void 0!==e.label&&(r.label=e.label),void 0!==e.created&&(r.created=e.created?t.AbsoluteTxPosition.toJSON(e.created):void 0),void 0!==e.ibcPortId&&(r.ibcPortId=e.ibcPortId),void 0!==e.extension&&(r.extension=e.extension?a.Any.toJSON(e.extension):void 0),r},fromPartial(e){const r=Object.assign({},v);return void 0!==e.codeId&&null!==e.codeId?r.codeId=e.codeId:r.codeId=o.default.UZERO,void 0!==e.creator&&null!==e.creator?r.creator=e.creator:r.creator="",void 0!==e.admin&&null!==e.admin?r.admin=e.admin:r.admin="",void 0!==e.label&&null!==e.label?r.label=e.label:r.label="",void 0!==e.created&&null!==e.created?r.created=t.AbsoluteTxPosition.fromPartial(e.created):r.created=void 0,void 0!==e.ibcPortId&&null!==e.ibcPortId?r.ibcPortId=e.ibcPortId:r.ibcPortId="",void 0!==e.extension&&null!==e.extension?r.extension=a.Any.fromPartial(e.extension):r.extension=void 0,r}};const b={operation:0,codeId:o.default.UZERO};t.ContractCodeHistoryEntry={encode:(e,r=i.default.Writer.create())=>(0!==e.operation&&r.uint32(8).int32(e.operation),e.codeId.isZero()||r.uint32(16).uint64(e.codeId),void 0!==e.updated&&t.AbsoluteTxPosition.encode(e.updated,r.uint32(26).fork()).ldelim(),0!==e.msg.length&&r.uint32(34).bytes(e.msg),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},b);for(a.msg=new Uint8Array;n.pos>>3){case 1:a.operation=n.int32();break;case 2:a.codeId=n.uint64();break;case 3:a.updated=t.AbsoluteTxPosition.decode(n,n.uint32());break;case 4:a.msg=n.bytes();break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},b);return r.msg=new Uint8Array,void 0!==e.operation&&null!==e.operation?r.operation=l(e.operation):r.operation=0,void 0!==e.codeId&&null!==e.codeId?r.codeId=o.default.fromString(e.codeId):r.codeId=o.default.UZERO,void 0!==e.updated&&null!==e.updated?r.updated=t.AbsoluteTxPosition.fromJSON(e.updated):r.updated=void 0,void 0!==e.msg&&null!==e.msg&&(r.msg=O(e.msg)),r},toJSON(e){const r={};return void 0!==e.operation&&(r.operation=f(e.operation)),void 0!==e.codeId&&(r.codeId=(e.codeId||o.default.UZERO).toString()),void 0!==e.updated&&(r.updated=e.updated?t.AbsoluteTxPosition.toJSON(e.updated):void 0),void 0!==e.msg&&(r.msg=A(void 0!==e.msg?e.msg:new Uint8Array)),r},fromPartial(e){const r=Object.assign({},b);return void 0!==e.operation&&null!==e.operation?r.operation=e.operation:r.operation=0,void 0!==e.codeId&&null!==e.codeId?r.codeId=e.codeId:r.codeId=o.default.UZERO,void 0!==e.updated&&null!==e.updated?r.updated=t.AbsoluteTxPosition.fromPartial(e.updated):r.updated=void 0,void 0!==e.msg&&null!==e.msg?r.msg=e.msg:r.msg=new Uint8Array,r}};const y={blockHeight:o.default.UZERO,txIndex:o.default.UZERO};t.AbsoluteTxPosition={encode:(e,t=i.default.Writer.create())=>(e.blockHeight.isZero()||t.uint32(8).uint64(e.blockHeight),e.txIndex.isZero()||t.uint32(16).uint64(e.txIndex),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},y);for(;r.pos>>3){case 1:o.blockHeight=r.uint64();break;case 2:o.txIndex=r.uint64();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},y);return void 0!==e.blockHeight&&null!==e.blockHeight?t.blockHeight=o.default.fromString(e.blockHeight):t.blockHeight=o.default.UZERO,void 0!==e.txIndex&&null!==e.txIndex?t.txIndex=o.default.fromString(e.txIndex):t.txIndex=o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.blockHeight&&(t.blockHeight=(e.blockHeight||o.default.UZERO).toString()),void 0!==e.txIndex&&(t.txIndex=(e.txIndex||o.default.UZERO).toString()),t},fromPartial(e){const t=Object.assign({},y);return void 0!==e.blockHeight&&null!==e.blockHeight?t.blockHeight=e.blockHeight:t.blockHeight=o.default.UZERO,void 0!==e.txIndex&&null!==e.txIndex?t.txIndex=e.txIndex:t.txIndex=o.default.UZERO,t}};const w={};t.Model={encode:(e,t=i.default.Writer.create())=>(0!==e.key.length&&t.uint32(10).bytes(e.key),0!==e.value.length&&t.uint32(18).bytes(e.value),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},w);for(o.key=new Uint8Array,o.value=new Uint8Array;r.pos>>3){case 1:o.key=r.bytes();break;case 2:o.value=r.bytes();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},w);return t.key=new Uint8Array,t.value=new Uint8Array,void 0!==e.key&&null!==e.key&&(t.key=O(e.key)),void 0!==e.value&&null!==e.value&&(t.value=O(e.value)),t},toJSON(e){const t={};return void 0!==e.key&&(t.key=A(void 0!==e.key?e.key:new Uint8Array)),void 0!==e.value&&(t.value=A(void 0!==e.value?e.value:new Uint8Array)),t},fromPartial(e){const t=Object.assign({},w);return void 0!==e.key&&null!==e.key?t.key=e.key:t.key=new Uint8Array,void 0!==e.value&&null!==e.value?t.value=e.value:t.value=new Uint8Array,t}};var _=(()=>{if(void 0!==_)return _;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==r.g)return r.g;throw"Unable to locate global object"})();const S=_.atob||(e=>_.Buffer.from(e,"base64").toString("binary"));function O(e){const t=S(e),r=new Uint8Array(t.length);for(let e=0;e_.Buffer.from(e,"binary").toString("base64"));function A(e){const t=[];for(const r of e)t.push(String.fromCharCode(r));return k(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},17063:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Any=t.protobufPackage=void 0;const o=n(r(24067)),i=n(r(63967));t.protobufPackage="google.protobuf";const a={typeUrl:""};t.Any={encode:(e,t=i.default.Writer.create())=>(""!==e.typeUrl&&t.uint32(10).string(e.typeUrl),0!==e.value.length&&t.uint32(18).bytes(e.value),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},a);for(o.value=new Uint8Array;r.pos>>3){case 1:o.typeUrl=r.string();break;case 2:o.value=r.bytes();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},a);return t.value=new Uint8Array,void 0!==e.typeUrl&&null!==e.typeUrl?t.typeUrl=String(e.typeUrl):t.typeUrl="",void 0!==e.value&&null!==e.value&&(t.value=function(e){const t=u(e),r=new Uint8Array(t.length);for(let e=0;e{if(void 0!==s)return s;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==r.g)return r.g;throw"Unable to locate global object"})();const u=s.atob||(e=>s.Buffer.from(e,"base64").toString("binary")),c=s.btoa||(e=>s.Buffer.from(e,"binary").toString("base64"));i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},54462:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Duration=t.protobufPackage=void 0;const o=n(r(24067)),i=n(r(63967));t.protobufPackage="google.protobuf";const a={seconds:o.default.ZERO,nanos:0};t.Duration={encode:(e,t=i.default.Writer.create())=>(e.seconds.isZero()||t.uint32(8).int64(e.seconds),0!==e.nanos&&t.uint32(16).int32(e.nanos),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},a);for(;r.pos>>3){case 1:o.seconds=r.int64();break;case 2:o.nanos=r.int32();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},a);return void 0!==e.seconds&&null!==e.seconds?t.seconds=o.default.fromString(e.seconds):t.seconds=o.default.ZERO,void 0!==e.nanos&&null!==e.nanos?t.nanos=Number(e.nanos):t.nanos=0,t},toJSON(e){const t={};return void 0!==e.seconds&&(t.seconds=(e.seconds||o.default.ZERO).toString()),void 0!==e.nanos&&(t.nanos=e.nanos),t},fromPartial(e){const t=Object.assign({},a);return void 0!==e.seconds&&null!==e.seconds?t.seconds=e.seconds:t.seconds=o.default.ZERO,void 0!==e.nanos&&null!==e.nanos?t.nanos=e.nanos:t.nanos=0,t}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},46759:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Timestamp=t.protobufPackage=void 0;const o=n(r(24067)),i=n(r(63967));t.protobufPackage="google.protobuf";const a={seconds:o.default.ZERO,nanos:0};t.Timestamp={encode:(e,t=i.default.Writer.create())=>(e.seconds.isZero()||t.uint32(8).int64(e.seconds),0!==e.nanos&&t.uint32(16).int32(e.nanos),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},a);for(;r.pos>>3){case 1:o.seconds=r.int64();break;case 2:o.nanos=r.int32();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},a);return void 0!==e.seconds&&null!==e.seconds?t.seconds=o.default.fromString(e.seconds):t.seconds=o.default.ZERO,void 0!==e.nanos&&null!==e.nanos?t.nanos=Number(e.nanos):t.nanos=0,t},toJSON(e){const t={};return void 0!==e.seconds&&(t.seconds=(e.seconds||o.default.ZERO).toString()),void 0!==e.nanos&&(t.nanos=e.nanos),t},fromPartial(e){const t=Object.assign({},a);return void 0!==e.seconds&&null!==e.seconds?t.seconds=e.seconds:t.seconds=o.default.ZERO,void 0!==e.nanos&&null!==e.nanos?t.nanos=e.nanos:t.nanos=0,t}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},17549:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Params=t.protobufPackage=void 0;const o=n(r(24067)),i=n(r(63967));t.protobufPackage="ibc.applications.interchain_accounts.host.v1";const a={hostEnabled:!1,allowMessages:""};t.Params={encode(e,t=i.default.Writer.create()){!0===e.hostEnabled&&t.uint32(8).bool(e.hostEnabled);for(const r of e.allowMessages)t.uint32(18).string(r);return t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},a);for(o.allowMessages=[];r.pos>>3){case 1:o.hostEnabled=r.bool();break;case 2:o.allowMessages.push(r.string());break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},a);if(t.allowMessages=[],void 0!==e.hostEnabled&&null!==e.hostEnabled?t.hostEnabled=Boolean(e.hostEnabled):t.hostEnabled=!1,void 0!==e.allowMessages&&null!==e.allowMessages)for(const r of e.allowMessages)t.allowMessages.push(String(r));return t},toJSON(e){const t={};return void 0!==e.hostEnabled&&(t.hostEnabled=e.hostEnabled),e.allowMessages?t.allowMessages=e.allowMessages.map((e=>e)):t.allowMessages=[],t},fromPartial(e){const t=Object.assign({},a);if(t.allowMessages=[],void 0!==e.hostEnabled&&null!==e.hostEnabled?t.hostEnabled=e.hostEnabled:t.hostEnabled=!1,void 0!==e.allowMessages&&null!==e.allowMessages)for(const r of e.allowMessages)t.allowMessages.push(r);return t}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},78272:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.GrpcWebImpl=t.MsgTransferDesc=t.MsgDesc=t.MsgClientImpl=t.MsgTransferResponse=t.MsgTransfer=t.protobufPackage=void 0;const o=n(r(24067)),i=r(66959),a=n(r(63967)),s=r(49545),u=r(23016),c=r(62200);t.protobufPackage="ibc.applications.transfer.v1";const d={sourcePort:"",sourceChannel:"",sender:"",receiver:"",timeoutTimestamp:o.default.UZERO};t.MsgTransfer={encode:(e,t=a.default.Writer.create())=>(""!==e.sourcePort&&t.uint32(10).string(e.sourcePort),""!==e.sourceChannel&&t.uint32(18).string(e.sourceChannel),void 0!==e.token&&s.Coin.encode(e.token,t.uint32(26).fork()).ldelim(),""!==e.sender&&t.uint32(34).string(e.sender),""!==e.receiver&&t.uint32(42).string(e.receiver),void 0!==e.timeoutHeight&&u.Height.encode(e.timeoutHeight,t.uint32(50).fork()).ldelim(),e.timeoutTimestamp.isZero()||t.uint32(56).uint64(e.timeoutTimestamp),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},d);for(;r.pos>>3){case 1:o.sourcePort=r.string();break;case 2:o.sourceChannel=r.string();break;case 3:o.token=s.Coin.decode(r,r.uint32());break;case 4:o.sender=r.string();break;case 5:o.receiver=r.string();break;case 6:o.timeoutHeight=u.Height.decode(r,r.uint32());break;case 7:o.timeoutTimestamp=r.uint64();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},d);return void 0!==e.sourcePort&&null!==e.sourcePort?t.sourcePort=String(e.sourcePort):t.sourcePort="",void 0!==e.sourceChannel&&null!==e.sourceChannel?t.sourceChannel=String(e.sourceChannel):t.sourceChannel="",void 0!==e.token&&null!==e.token?t.token=s.Coin.fromJSON(e.token):t.token=void 0,void 0!==e.sender&&null!==e.sender?t.sender=String(e.sender):t.sender="",void 0!==e.receiver&&null!==e.receiver?t.receiver=String(e.receiver):t.receiver="",void 0!==e.timeoutHeight&&null!==e.timeoutHeight?t.timeoutHeight=u.Height.fromJSON(e.timeoutHeight):t.timeoutHeight=void 0,void 0!==e.timeoutTimestamp&&null!==e.timeoutTimestamp?t.timeoutTimestamp=o.default.fromString(e.timeoutTimestamp):t.timeoutTimestamp=o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.sourcePort&&(t.sourcePort=e.sourcePort),void 0!==e.sourceChannel&&(t.sourceChannel=e.sourceChannel),void 0!==e.token&&(t.token=e.token?s.Coin.toJSON(e.token):void 0),void 0!==e.sender&&(t.sender=e.sender),void 0!==e.receiver&&(t.receiver=e.receiver),void 0!==e.timeoutHeight&&(t.timeoutHeight=e.timeoutHeight?u.Height.toJSON(e.timeoutHeight):void 0),void 0!==e.timeoutTimestamp&&(t.timeoutTimestamp=(e.timeoutTimestamp||o.default.UZERO).toString()),t},fromPartial(e){const t=Object.assign({},d);return void 0!==e.sourcePort&&null!==e.sourcePort?t.sourcePort=e.sourcePort:t.sourcePort="",void 0!==e.sourceChannel&&null!==e.sourceChannel?t.sourceChannel=e.sourceChannel:t.sourceChannel="",void 0!==e.token&&null!==e.token?t.token=s.Coin.fromPartial(e.token):t.token=void 0,void 0!==e.sender&&null!==e.sender?t.sender=e.sender:t.sender="",void 0!==e.receiver&&null!==e.receiver?t.receiver=e.receiver:t.receiver="",void 0!==e.timeoutHeight&&null!==e.timeoutHeight?t.timeoutHeight=u.Height.fromPartial(e.timeoutHeight):t.timeoutHeight=void 0,void 0!==e.timeoutTimestamp&&null!==e.timeoutTimestamp?t.timeoutTimestamp=e.timeoutTimestamp:t.timeoutTimestamp=o.default.UZERO,t}};const l={};t.MsgTransferResponse={encode:(e,t=a.default.Writer.create())=>t,decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},l);for(;r.posObject.assign({},l),toJSON:e=>({}),fromPartial:e=>Object.assign({},l)},t.MsgClientImpl=class{constructor(e){this.rpc=e,this.Transfer=this.Transfer.bind(this)}Transfer(e,r){return this.rpc.unary(t.MsgTransferDesc,t.MsgTransfer.fromPartial(e),r)}},t.MsgDesc={serviceName:"ibc.applications.transfer.v1.Msg"},t.MsgTransferDesc={methodName:"Transfer",service:t.MsgDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.MsgTransfer.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.MsgTransferResponse.decode(e)),{toObject(){return this}})}},t.GrpcWebImpl=class{constructor(e,t){this.host=e,this.options=t}unary(e,t,r){var n;const o=Object.assign(Object.assign({},t),e.requestType),a=r&&this.options.metadata?new c.BrowserHeaders(Object.assign(Object.assign({},null===(n=this.options)||void 0===n?void 0:n.metadata.headersMap),null==r?void 0:r.headersMap)):r||this.options.metadata;return new Promise(((t,r)=>{i.grpc.unary(e,{request:o,host:this.host,metadata:a,transport:this.options.transport,debug:this.options.debug,onEnd:function(e){if(e.status===i.grpc.Code.OK)t(e.message);else{const t=new Error(e.statusMessage);t.code=e.status,t.metadata=e.trailers,r(t)}}})}))}},a.default.util.Long!==o.default&&(a.default.util.Long=o.default,a.default.configure())},15672:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.FungibleTokenPacketData=t.protobufPackage=void 0;const o=n(r(24067)),i=n(r(63967));t.protobufPackage="ibc.applications.transfer.v2";const a={denom:"",amount:"",sender:"",receiver:""};t.FungibleTokenPacketData={encode:(e,t=i.default.Writer.create())=>(""!==e.denom&&t.uint32(10).string(e.denom),""!==e.amount&&t.uint32(18).string(e.amount),""!==e.sender&&t.uint32(26).string(e.sender),""!==e.receiver&&t.uint32(34).string(e.receiver),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},a);for(;r.pos>>3){case 1:o.denom=r.string();break;case 2:o.amount=r.string();break;case 3:o.sender=r.string();break;case 4:o.receiver=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},a);return void 0!==e.denom&&null!==e.denom?t.denom=String(e.denom):t.denom="",void 0!==e.amount&&null!==e.amount?t.amount=String(e.amount):t.amount="",void 0!==e.sender&&null!==e.sender?t.sender=String(e.sender):t.sender="",void 0!==e.receiver&&null!==e.receiver?t.receiver=String(e.receiver):t.receiver="",t},toJSON(e){const t={};return void 0!==e.denom&&(t.denom=e.denom),void 0!==e.amount&&(t.amount=e.amount),void 0!==e.sender&&(t.sender=e.sender),void 0!==e.receiver&&(t.receiver=e.receiver),t},fromPartial(e){const t=Object.assign({},a);return void 0!==e.denom&&null!==e.denom?t.denom=e.denom:t.denom="",void 0!==e.amount&&null!==e.amount?t.amount=e.amount:t.amount="",void 0!==e.sender&&null!==e.sender?t.sender=e.sender:t.sender="",void 0!==e.receiver&&null!==e.receiver?t.receiver=e.receiver:t.receiver="",t}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},50901:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Acknowledgement=t.PacketId=t.PacketState=t.Packet=t.Counterparty=t.IdentifiedChannel=t.Channel=t.orderToJSON=t.orderFromJSON=t.Order=t.stateToJSON=t.stateFromJSON=t.State=t.protobufPackage=void 0;const o=n(r(24067)),i=n(r(63967)),a=r(23016);var s,u;function c(e){switch(e){case 0:case"STATE_UNINITIALIZED_UNSPECIFIED":return s.STATE_UNINITIALIZED_UNSPECIFIED;case 1:case"STATE_INIT":return s.STATE_INIT;case 2:case"STATE_TRYOPEN":return s.STATE_TRYOPEN;case 3:case"STATE_OPEN":return s.STATE_OPEN;case 4:case"STATE_CLOSED":return s.STATE_CLOSED;default:return s.UNRECOGNIZED}}function d(e){switch(e){case s.STATE_UNINITIALIZED_UNSPECIFIED:return"STATE_UNINITIALIZED_UNSPECIFIED";case s.STATE_INIT:return"STATE_INIT";case s.STATE_TRYOPEN:return"STATE_TRYOPEN";case s.STATE_OPEN:return"STATE_OPEN";case s.STATE_CLOSED:return"STATE_CLOSED";default:return"UNKNOWN"}}function l(e){switch(e){case 0:case"ORDER_NONE_UNSPECIFIED":return u.ORDER_NONE_UNSPECIFIED;case 1:case"ORDER_UNORDERED":return u.ORDER_UNORDERED;case 2:case"ORDER_ORDERED":return u.ORDER_ORDERED;default:return u.UNRECOGNIZED}}function f(e){switch(e){case u.ORDER_NONE_UNSPECIFIED:return"ORDER_NONE_UNSPECIFIED";case u.ORDER_UNORDERED:return"ORDER_UNORDERED";case u.ORDER_ORDERED:return"ORDER_ORDERED";default:return"UNKNOWN"}}t.protobufPackage="ibc.core.channel.v1",function(e){e[e.STATE_UNINITIALIZED_UNSPECIFIED=0]="STATE_UNINITIALIZED_UNSPECIFIED",e[e.STATE_INIT=1]="STATE_INIT",e[e.STATE_TRYOPEN=2]="STATE_TRYOPEN",e[e.STATE_OPEN=3]="STATE_OPEN",e[e.STATE_CLOSED=4]="STATE_CLOSED",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(s=t.State||(t.State={})),t.stateFromJSON=c,t.stateToJSON=d,function(e){e[e.ORDER_NONE_UNSPECIFIED=0]="ORDER_NONE_UNSPECIFIED",e[e.ORDER_UNORDERED=1]="ORDER_UNORDERED",e[e.ORDER_ORDERED=2]="ORDER_ORDERED",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(u=t.Order||(t.Order={})),t.orderFromJSON=l,t.orderToJSON=f;const h={state:0,ordering:0,connectionHops:"",version:""};t.Channel={encode(e,r=i.default.Writer.create()){0!==e.state&&r.uint32(8).int32(e.state),0!==e.ordering&&r.uint32(16).int32(e.ordering),void 0!==e.counterparty&&t.Counterparty.encode(e.counterparty,r.uint32(26).fork()).ldelim();for(const t of e.connectionHops)r.uint32(34).string(t);return""!==e.version&&r.uint32(42).string(e.version),r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},h);for(a.connectionHops=[];n.pos>>3){case 1:a.state=n.int32();break;case 2:a.ordering=n.int32();break;case 3:a.counterparty=t.Counterparty.decode(n,n.uint32());break;case 4:a.connectionHops.push(n.string());break;case 5:a.version=n.string();break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},h);if(r.connectionHops=[],void 0!==e.state&&null!==e.state?r.state=c(e.state):r.state=0,void 0!==e.ordering&&null!==e.ordering?r.ordering=l(e.ordering):r.ordering=0,void 0!==e.counterparty&&null!==e.counterparty?r.counterparty=t.Counterparty.fromJSON(e.counterparty):r.counterparty=void 0,void 0!==e.connectionHops&&null!==e.connectionHops)for(const t of e.connectionHops)r.connectionHops.push(String(t));return void 0!==e.version&&null!==e.version?r.version=String(e.version):r.version="",r},toJSON(e){const r={};return void 0!==e.state&&(r.state=d(e.state)),void 0!==e.ordering&&(r.ordering=f(e.ordering)),void 0!==e.counterparty&&(r.counterparty=e.counterparty?t.Counterparty.toJSON(e.counterparty):void 0),e.connectionHops?r.connectionHops=e.connectionHops.map((e=>e)):r.connectionHops=[],void 0!==e.version&&(r.version=e.version),r},fromPartial(e){const r=Object.assign({},h);if(r.connectionHops=[],void 0!==e.state&&null!==e.state?r.state=e.state:r.state=0,void 0!==e.ordering&&null!==e.ordering?r.ordering=e.ordering:r.ordering=0,void 0!==e.counterparty&&null!==e.counterparty?r.counterparty=t.Counterparty.fromPartial(e.counterparty):r.counterparty=void 0,void 0!==e.connectionHops&&null!==e.connectionHops)for(const t of e.connectionHops)r.connectionHops.push(t);return void 0!==e.version&&null!==e.version?r.version=e.version:r.version="",r}};const p={state:0,ordering:0,connectionHops:"",version:"",portId:"",channelId:""};t.IdentifiedChannel={encode(e,r=i.default.Writer.create()){0!==e.state&&r.uint32(8).int32(e.state),0!==e.ordering&&r.uint32(16).int32(e.ordering),void 0!==e.counterparty&&t.Counterparty.encode(e.counterparty,r.uint32(26).fork()).ldelim();for(const t of e.connectionHops)r.uint32(34).string(t);return""!==e.version&&r.uint32(42).string(e.version),""!==e.portId&&r.uint32(50).string(e.portId),""!==e.channelId&&r.uint32(58).string(e.channelId),r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},p);for(a.connectionHops=[];n.pos>>3){case 1:a.state=n.int32();break;case 2:a.ordering=n.int32();break;case 3:a.counterparty=t.Counterparty.decode(n,n.uint32());break;case 4:a.connectionHops.push(n.string());break;case 5:a.version=n.string();break;case 6:a.portId=n.string();break;case 7:a.channelId=n.string();break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},p);if(r.connectionHops=[],void 0!==e.state&&null!==e.state?r.state=c(e.state):r.state=0,void 0!==e.ordering&&null!==e.ordering?r.ordering=l(e.ordering):r.ordering=0,void 0!==e.counterparty&&null!==e.counterparty?r.counterparty=t.Counterparty.fromJSON(e.counterparty):r.counterparty=void 0,void 0!==e.connectionHops&&null!==e.connectionHops)for(const t of e.connectionHops)r.connectionHops.push(String(t));return void 0!==e.version&&null!==e.version?r.version=String(e.version):r.version="",void 0!==e.portId&&null!==e.portId?r.portId=String(e.portId):r.portId="",void 0!==e.channelId&&null!==e.channelId?r.channelId=String(e.channelId):r.channelId="",r},toJSON(e){const r={};return void 0!==e.state&&(r.state=d(e.state)),void 0!==e.ordering&&(r.ordering=f(e.ordering)),void 0!==e.counterparty&&(r.counterparty=e.counterparty?t.Counterparty.toJSON(e.counterparty):void 0),e.connectionHops?r.connectionHops=e.connectionHops.map((e=>e)):r.connectionHops=[],void 0!==e.version&&(r.version=e.version),void 0!==e.portId&&(r.portId=e.portId),void 0!==e.channelId&&(r.channelId=e.channelId),r},fromPartial(e){const r=Object.assign({},p);if(r.connectionHops=[],void 0!==e.state&&null!==e.state?r.state=e.state:r.state=0,void 0!==e.ordering&&null!==e.ordering?r.ordering=e.ordering:r.ordering=0,void 0!==e.counterparty&&null!==e.counterparty?r.counterparty=t.Counterparty.fromPartial(e.counterparty):r.counterparty=void 0,void 0!==e.connectionHops&&null!==e.connectionHops)for(const t of e.connectionHops)r.connectionHops.push(t);return void 0!==e.version&&null!==e.version?r.version=e.version:r.version="",void 0!==e.portId&&null!==e.portId?r.portId=e.portId:r.portId="",void 0!==e.channelId&&null!==e.channelId?r.channelId=e.channelId:r.channelId="",r}};const m={portId:"",channelId:""};t.Counterparty={encode:(e,t=i.default.Writer.create())=>(""!==e.portId&&t.uint32(10).string(e.portId),""!==e.channelId&&t.uint32(18).string(e.channelId),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},m);for(;r.pos>>3){case 1:o.portId=r.string();break;case 2:o.channelId=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},m);return void 0!==e.portId&&null!==e.portId?t.portId=String(e.portId):t.portId="",void 0!==e.channelId&&null!==e.channelId?t.channelId=String(e.channelId):t.channelId="",t},toJSON(e){const t={};return void 0!==e.portId&&(t.portId=e.portId),void 0!==e.channelId&&(t.channelId=e.channelId),t},fromPartial(e){const t=Object.assign({},m);return void 0!==e.portId&&null!==e.portId?t.portId=e.portId:t.portId="",void 0!==e.channelId&&null!==e.channelId?t.channelId=e.channelId:t.channelId="",t}};const g={sequence:o.default.UZERO,sourcePort:"",sourceChannel:"",destinationPort:"",destinationChannel:"",timeoutTimestamp:o.default.UZERO};t.Packet={encode:(e,t=i.default.Writer.create())=>(e.sequence.isZero()||t.uint32(8).uint64(e.sequence),""!==e.sourcePort&&t.uint32(18).string(e.sourcePort),""!==e.sourceChannel&&t.uint32(26).string(e.sourceChannel),""!==e.destinationPort&&t.uint32(34).string(e.destinationPort),""!==e.destinationChannel&&t.uint32(42).string(e.destinationChannel),0!==e.data.length&&t.uint32(50).bytes(e.data),void 0!==e.timeoutHeight&&a.Height.encode(e.timeoutHeight,t.uint32(58).fork()).ldelim(),e.timeoutTimestamp.isZero()||t.uint32(64).uint64(e.timeoutTimestamp),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},g);for(o.data=new Uint8Array;r.pos>>3){case 1:o.sequence=r.uint64();break;case 2:o.sourcePort=r.string();break;case 3:o.sourceChannel=r.string();break;case 4:o.destinationPort=r.string();break;case 5:o.destinationChannel=r.string();break;case 6:o.data=r.bytes();break;case 7:o.timeoutHeight=a.Height.decode(r,r.uint32());break;case 8:o.timeoutTimestamp=r.uint64();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},g);return t.data=new Uint8Array,void 0!==e.sequence&&null!==e.sequence?t.sequence=o.default.fromString(e.sequence):t.sequence=o.default.UZERO,void 0!==e.sourcePort&&null!==e.sourcePort?t.sourcePort=String(e.sourcePort):t.sourcePort="",void 0!==e.sourceChannel&&null!==e.sourceChannel?t.sourceChannel=String(e.sourceChannel):t.sourceChannel="",void 0!==e.destinationPort&&null!==e.destinationPort?t.destinationPort=String(e.destinationPort):t.destinationPort="",void 0!==e.destinationChannel&&null!==e.destinationChannel?t.destinationChannel=String(e.destinationChannel):t.destinationChannel="",void 0!==e.data&&null!==e.data&&(t.data=S(e.data)),void 0!==e.timeoutHeight&&null!==e.timeoutHeight?t.timeoutHeight=a.Height.fromJSON(e.timeoutHeight):t.timeoutHeight=void 0,void 0!==e.timeoutTimestamp&&null!==e.timeoutTimestamp?t.timeoutTimestamp=o.default.fromString(e.timeoutTimestamp):t.timeoutTimestamp=o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.sequence&&(t.sequence=(e.sequence||o.default.UZERO).toString()),void 0!==e.sourcePort&&(t.sourcePort=e.sourcePort),void 0!==e.sourceChannel&&(t.sourceChannel=e.sourceChannel),void 0!==e.destinationPort&&(t.destinationPort=e.destinationPort),void 0!==e.destinationChannel&&(t.destinationChannel=e.destinationChannel),void 0!==e.data&&(t.data=k(void 0!==e.data?e.data:new Uint8Array)),void 0!==e.timeoutHeight&&(t.timeoutHeight=e.timeoutHeight?a.Height.toJSON(e.timeoutHeight):void 0),void 0!==e.timeoutTimestamp&&(t.timeoutTimestamp=(e.timeoutTimestamp||o.default.UZERO).toString()),t},fromPartial(e){const t=Object.assign({},g);return void 0!==e.sequence&&null!==e.sequence?t.sequence=e.sequence:t.sequence=o.default.UZERO,void 0!==e.sourcePort&&null!==e.sourcePort?t.sourcePort=e.sourcePort:t.sourcePort="",void 0!==e.sourceChannel&&null!==e.sourceChannel?t.sourceChannel=e.sourceChannel:t.sourceChannel="",void 0!==e.destinationPort&&null!==e.destinationPort?t.destinationPort=e.destinationPort:t.destinationPort="",void 0!==e.destinationChannel&&null!==e.destinationChannel?t.destinationChannel=e.destinationChannel:t.destinationChannel="",void 0!==e.data&&null!==e.data?t.data=e.data:t.data=new Uint8Array,void 0!==e.timeoutHeight&&null!==e.timeoutHeight?t.timeoutHeight=a.Height.fromPartial(e.timeoutHeight):t.timeoutHeight=void 0,void 0!==e.timeoutTimestamp&&null!==e.timeoutTimestamp?t.timeoutTimestamp=e.timeoutTimestamp:t.timeoutTimestamp=o.default.UZERO,t}};const v={portId:"",channelId:"",sequence:o.default.UZERO};t.PacketState={encode:(e,t=i.default.Writer.create())=>(""!==e.portId&&t.uint32(10).string(e.portId),""!==e.channelId&&t.uint32(18).string(e.channelId),e.sequence.isZero()||t.uint32(24).uint64(e.sequence),0!==e.data.length&&t.uint32(34).bytes(e.data),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},v);for(o.data=new Uint8Array;r.pos>>3){case 1:o.portId=r.string();break;case 2:o.channelId=r.string();break;case 3:o.sequence=r.uint64();break;case 4:o.data=r.bytes();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},v);return t.data=new Uint8Array,void 0!==e.portId&&null!==e.portId?t.portId=String(e.portId):t.portId="",void 0!==e.channelId&&null!==e.channelId?t.channelId=String(e.channelId):t.channelId="",void 0!==e.sequence&&null!==e.sequence?t.sequence=o.default.fromString(e.sequence):t.sequence=o.default.UZERO,void 0!==e.data&&null!==e.data&&(t.data=S(e.data)),t},toJSON(e){const t={};return void 0!==e.portId&&(t.portId=e.portId),void 0!==e.channelId&&(t.channelId=e.channelId),void 0!==e.sequence&&(t.sequence=(e.sequence||o.default.UZERO).toString()),void 0!==e.data&&(t.data=k(void 0!==e.data?e.data:new Uint8Array)),t},fromPartial(e){const t=Object.assign({},v);return void 0!==e.portId&&null!==e.portId?t.portId=e.portId:t.portId="",void 0!==e.channelId&&null!==e.channelId?t.channelId=e.channelId:t.channelId="",void 0!==e.sequence&&null!==e.sequence?t.sequence=e.sequence:t.sequence=o.default.UZERO,void 0!==e.data&&null!==e.data?t.data=e.data:t.data=new Uint8Array,t}};const b={portId:"",channelId:"",sequence:o.default.UZERO};t.PacketId={encode:(e,t=i.default.Writer.create())=>(""!==e.portId&&t.uint32(10).string(e.portId),""!==e.channelId&&t.uint32(18).string(e.channelId),e.sequence.isZero()||t.uint32(24).uint64(e.sequence),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},b);for(;r.pos>>3){case 1:o.portId=r.string();break;case 2:o.channelId=r.string();break;case 3:o.sequence=r.uint64();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},b);return void 0!==e.portId&&null!==e.portId?t.portId=String(e.portId):t.portId="",void 0!==e.channelId&&null!==e.channelId?t.channelId=String(e.channelId):t.channelId="",void 0!==e.sequence&&null!==e.sequence?t.sequence=o.default.fromString(e.sequence):t.sequence=o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.portId&&(t.portId=e.portId),void 0!==e.channelId&&(t.channelId=e.channelId),void 0!==e.sequence&&(t.sequence=(e.sequence||o.default.UZERO).toString()),t},fromPartial(e){const t=Object.assign({},b);return void 0!==e.portId&&null!==e.portId?t.portId=e.portId:t.portId="",void 0!==e.channelId&&null!==e.channelId?t.channelId=e.channelId:t.channelId="",void 0!==e.sequence&&null!==e.sequence?t.sequence=e.sequence:t.sequence=o.default.UZERO,t}};const y={};t.Acknowledgement={encode:(e,t=i.default.Writer.create())=>(void 0!==e.result&&t.uint32(170).bytes(e.result),void 0!==e.error&&t.uint32(178).string(e.error),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},y);for(;r.pos>>3){case 21:o.result=r.bytes();break;case 22:o.error=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},y);return void 0!==e.result&&null!==e.result&&(t.result=S(e.result)),void 0!==e.error&&null!==e.error?t.error=String(e.error):t.error=void 0,t},toJSON(e){const t={};return void 0!==e.result&&(t.result=void 0!==e.result?k(e.result):void 0),void 0!==e.error&&(t.error=e.error),t},fromPartial(e){const t=Object.assign({},y);return void 0!==e.result&&null!==e.result?t.result=e.result:t.result=void 0,void 0!==e.error&&null!==e.error?t.error=e.error:t.error=void 0,t}};var w=(()=>{if(void 0!==w)return w;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==r.g)return r.g;throw"Unable to locate global object"})();const _=w.atob||(e=>w.Buffer.from(e,"base64").toString("binary"));function S(e){const t=_(e),r=new Uint8Array(t.length);for(let e=0;ew.Buffer.from(e,"binary").toString("base64"));function k(e){const t=[];for(const r of e)t.push(String.fromCharCode(r));return O(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},33979:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.GrpcWebImpl=t.MsgAcknowledgementDesc=t.MsgTimeoutOnCloseDesc=t.MsgTimeoutDesc=t.MsgRecvPacketDesc=t.MsgChannelCloseConfirmDesc=t.MsgChannelCloseInitDesc=t.MsgChannelOpenConfirmDesc=t.MsgChannelOpenAckDesc=t.MsgChannelOpenTryDesc=t.MsgChannelOpenInitDesc=t.MsgDesc=t.MsgClientImpl=t.MsgAcknowledgementResponse=t.MsgAcknowledgement=t.MsgTimeoutOnCloseResponse=t.MsgTimeoutOnClose=t.MsgTimeoutResponse=t.MsgTimeout=t.MsgRecvPacketResponse=t.MsgRecvPacket=t.MsgChannelCloseConfirmResponse=t.MsgChannelCloseConfirm=t.MsgChannelCloseInitResponse=t.MsgChannelCloseInit=t.MsgChannelOpenConfirmResponse=t.MsgChannelOpenConfirm=t.MsgChannelOpenAckResponse=t.MsgChannelOpenAck=t.MsgChannelOpenTryResponse=t.MsgChannelOpenTry=t.MsgChannelOpenInitResponse=t.MsgChannelOpenInit=t.responseResultTypeToJSON=t.responseResultTypeFromJSON=t.ResponseResultType=t.protobufPackage=void 0;const o=n(r(24067)),i=r(66959),a=n(r(63967)),s=r(50901),u=r(23016),c=r(62200);var d;function l(e){switch(e){case 0:case"RESPONSE_RESULT_TYPE_UNSPECIFIED":return d.RESPONSE_RESULT_TYPE_UNSPECIFIED;case 1:case"RESPONSE_RESULT_TYPE_NOOP":return d.RESPONSE_RESULT_TYPE_NOOP;case 2:case"RESPONSE_RESULT_TYPE_SUCCESS":return d.RESPONSE_RESULT_TYPE_SUCCESS;default:return d.UNRECOGNIZED}}function f(e){switch(e){case d.RESPONSE_RESULT_TYPE_UNSPECIFIED:return"RESPONSE_RESULT_TYPE_UNSPECIFIED";case d.RESPONSE_RESULT_TYPE_NOOP:return"RESPONSE_RESULT_TYPE_NOOP";case d.RESPONSE_RESULT_TYPE_SUCCESS:return"RESPONSE_RESULT_TYPE_SUCCESS";default:return"UNKNOWN"}}t.protobufPackage="ibc.core.channel.v1",function(e){e[e.RESPONSE_RESULT_TYPE_UNSPECIFIED=0]="RESPONSE_RESULT_TYPE_UNSPECIFIED",e[e.RESPONSE_RESULT_TYPE_NOOP=1]="RESPONSE_RESULT_TYPE_NOOP",e[e.RESPONSE_RESULT_TYPE_SUCCESS=2]="RESPONSE_RESULT_TYPE_SUCCESS",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(d=t.ResponseResultType||(t.ResponseResultType={})),t.responseResultTypeFromJSON=l,t.responseResultTypeToJSON=f;const h={portId:"",signer:""};t.MsgChannelOpenInit={encode:(e,t=a.default.Writer.create())=>(""!==e.portId&&t.uint32(10).string(e.portId),void 0!==e.channel&&s.Channel.encode(e.channel,t.uint32(18).fork()).ldelim(),""!==e.signer&&t.uint32(26).string(e.signer),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},h);for(;r.pos>>3){case 1:o.portId=r.string();break;case 2:o.channel=s.Channel.decode(r,r.uint32());break;case 3:o.signer=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},h);return void 0!==e.portId&&null!==e.portId?t.portId=String(e.portId):t.portId="",void 0!==e.channel&&null!==e.channel?t.channel=s.Channel.fromJSON(e.channel):t.channel=void 0,void 0!==e.signer&&null!==e.signer?t.signer=String(e.signer):t.signer="",t},toJSON(e){const t={};return void 0!==e.portId&&(t.portId=e.portId),void 0!==e.channel&&(t.channel=e.channel?s.Channel.toJSON(e.channel):void 0),void 0!==e.signer&&(t.signer=e.signer),t},fromPartial(e){const t=Object.assign({},h);return void 0!==e.portId&&null!==e.portId?t.portId=e.portId:t.portId="",void 0!==e.channel&&null!==e.channel?t.channel=s.Channel.fromPartial(e.channel):t.channel=void 0,void 0!==e.signer&&null!==e.signer?t.signer=e.signer:t.signer="",t}};const p={channelId:""};t.MsgChannelOpenInitResponse={encode:(e,t=a.default.Writer.create())=>(""!==e.channelId&&t.uint32(10).string(e.channelId),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},p);for(;r.pos>>3==1?o.channelId=r.string():r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},p);return void 0!==e.channelId&&null!==e.channelId?t.channelId=String(e.channelId):t.channelId="",t},toJSON(e){const t={};return void 0!==e.channelId&&(t.channelId=e.channelId),t},fromPartial(e){const t=Object.assign({},p);return void 0!==e.channelId&&null!==e.channelId?t.channelId=e.channelId:t.channelId="",t}};const m={portId:"",previousChannelId:"",counterpartyVersion:"",signer:""};t.MsgChannelOpenTry={encode:(e,t=a.default.Writer.create())=>(""!==e.portId&&t.uint32(10).string(e.portId),""!==e.previousChannelId&&t.uint32(18).string(e.previousChannelId),void 0!==e.channel&&s.Channel.encode(e.channel,t.uint32(26).fork()).ldelim(),""!==e.counterpartyVersion&&t.uint32(34).string(e.counterpartyVersion),0!==e.proofInit.length&&t.uint32(42).bytes(e.proofInit),void 0!==e.proofHeight&&u.Height.encode(e.proofHeight,t.uint32(50).fork()).ldelim(),""!==e.signer&&t.uint32(58).string(e.signer),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},m);for(o.proofInit=new Uint8Array;r.pos>>3){case 1:o.portId=r.string();break;case 2:o.previousChannelId=r.string();break;case 3:o.channel=s.Channel.decode(r,r.uint32());break;case 4:o.counterpartyVersion=r.string();break;case 5:o.proofInit=r.bytes();break;case 6:o.proofHeight=u.Height.decode(r,r.uint32());break;case 7:o.signer=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},m);return t.proofInit=new Uint8Array,void 0!==e.portId&&null!==e.portId?t.portId=String(e.portId):t.portId="",void 0!==e.previousChannelId&&null!==e.previousChannelId?t.previousChannelId=String(e.previousChannelId):t.previousChannelId="",void 0!==e.channel&&null!==e.channel?t.channel=s.Channel.fromJSON(e.channel):t.channel=void 0,void 0!==e.counterpartyVersion&&null!==e.counterpartyVersion?t.counterpartyVersion=String(e.counterpartyVersion):t.counterpartyVersion="",void 0!==e.proofInit&&null!==e.proofInit&&(t.proofInit=j(e.proofInit)),void 0!==e.proofHeight&&null!==e.proofHeight?t.proofHeight=u.Height.fromJSON(e.proofHeight):t.proofHeight=void 0,void 0!==e.signer&&null!==e.signer?t.signer=String(e.signer):t.signer="",t},toJSON(e){const t={};return void 0!==e.portId&&(t.portId=e.portId),void 0!==e.previousChannelId&&(t.previousChannelId=e.previousChannelId),void 0!==e.channel&&(t.channel=e.channel?s.Channel.toJSON(e.channel):void 0),void 0!==e.counterpartyVersion&&(t.counterpartyVersion=e.counterpartyVersion),void 0!==e.proofInit&&(t.proofInit=B(void 0!==e.proofInit?e.proofInit:new Uint8Array)),void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?u.Height.toJSON(e.proofHeight):void 0),void 0!==e.signer&&(t.signer=e.signer),t},fromPartial(e){const t=Object.assign({},m);return void 0!==e.portId&&null!==e.portId?t.portId=e.portId:t.portId="",void 0!==e.previousChannelId&&null!==e.previousChannelId?t.previousChannelId=e.previousChannelId:t.previousChannelId="",void 0!==e.channel&&null!==e.channel?t.channel=s.Channel.fromPartial(e.channel):t.channel=void 0,void 0!==e.counterpartyVersion&&null!==e.counterpartyVersion?t.counterpartyVersion=e.counterpartyVersion:t.counterpartyVersion="",void 0!==e.proofInit&&null!==e.proofInit?t.proofInit=e.proofInit:t.proofInit=new Uint8Array,void 0!==e.proofHeight&&null!==e.proofHeight?t.proofHeight=u.Height.fromPartial(e.proofHeight):t.proofHeight=void 0,void 0!==e.signer&&null!==e.signer?t.signer=e.signer:t.signer="",t}};const g={};t.MsgChannelOpenTryResponse={encode:(e,t=a.default.Writer.create())=>t,decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},g);for(;r.posObject.assign({},g),toJSON:e=>({}),fromPartial:e=>Object.assign({},g)};const v={portId:"",channelId:"",counterpartyChannelId:"",counterpartyVersion:"",signer:""};t.MsgChannelOpenAck={encode:(e,t=a.default.Writer.create())=>(""!==e.portId&&t.uint32(10).string(e.portId),""!==e.channelId&&t.uint32(18).string(e.channelId),""!==e.counterpartyChannelId&&t.uint32(26).string(e.counterpartyChannelId),""!==e.counterpartyVersion&&t.uint32(34).string(e.counterpartyVersion),0!==e.proofTry.length&&t.uint32(42).bytes(e.proofTry),void 0!==e.proofHeight&&u.Height.encode(e.proofHeight,t.uint32(50).fork()).ldelim(),""!==e.signer&&t.uint32(58).string(e.signer),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},v);for(o.proofTry=new Uint8Array;r.pos>>3){case 1:o.portId=r.string();break;case 2:o.channelId=r.string();break;case 3:o.counterpartyChannelId=r.string();break;case 4:o.counterpartyVersion=r.string();break;case 5:o.proofTry=r.bytes();break;case 6:o.proofHeight=u.Height.decode(r,r.uint32());break;case 7:o.signer=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},v);return t.proofTry=new Uint8Array,void 0!==e.portId&&null!==e.portId?t.portId=String(e.portId):t.portId="",void 0!==e.channelId&&null!==e.channelId?t.channelId=String(e.channelId):t.channelId="",void 0!==e.counterpartyChannelId&&null!==e.counterpartyChannelId?t.counterpartyChannelId=String(e.counterpartyChannelId):t.counterpartyChannelId="",void 0!==e.counterpartyVersion&&null!==e.counterpartyVersion?t.counterpartyVersion=String(e.counterpartyVersion):t.counterpartyVersion="",void 0!==e.proofTry&&null!==e.proofTry&&(t.proofTry=j(e.proofTry)),void 0!==e.proofHeight&&null!==e.proofHeight?t.proofHeight=u.Height.fromJSON(e.proofHeight):t.proofHeight=void 0,void 0!==e.signer&&null!==e.signer?t.signer=String(e.signer):t.signer="",t},toJSON(e){const t={};return void 0!==e.portId&&(t.portId=e.portId),void 0!==e.channelId&&(t.channelId=e.channelId),void 0!==e.counterpartyChannelId&&(t.counterpartyChannelId=e.counterpartyChannelId),void 0!==e.counterpartyVersion&&(t.counterpartyVersion=e.counterpartyVersion),void 0!==e.proofTry&&(t.proofTry=B(void 0!==e.proofTry?e.proofTry:new Uint8Array)),void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?u.Height.toJSON(e.proofHeight):void 0),void 0!==e.signer&&(t.signer=e.signer),t},fromPartial(e){const t=Object.assign({},v);return void 0!==e.portId&&null!==e.portId?t.portId=e.portId:t.portId="",void 0!==e.channelId&&null!==e.channelId?t.channelId=e.channelId:t.channelId="",void 0!==e.counterpartyChannelId&&null!==e.counterpartyChannelId?t.counterpartyChannelId=e.counterpartyChannelId:t.counterpartyChannelId="",void 0!==e.counterpartyVersion&&null!==e.counterpartyVersion?t.counterpartyVersion=e.counterpartyVersion:t.counterpartyVersion="",void 0!==e.proofTry&&null!==e.proofTry?t.proofTry=e.proofTry:t.proofTry=new Uint8Array,void 0!==e.proofHeight&&null!==e.proofHeight?t.proofHeight=u.Height.fromPartial(e.proofHeight):t.proofHeight=void 0,void 0!==e.signer&&null!==e.signer?t.signer=e.signer:t.signer="",t}};const b={};t.MsgChannelOpenAckResponse={encode:(e,t=a.default.Writer.create())=>t,decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},b);for(;r.posObject.assign({},b),toJSON:e=>({}),fromPartial:e=>Object.assign({},b)};const y={portId:"",channelId:"",signer:""};t.MsgChannelOpenConfirm={encode:(e,t=a.default.Writer.create())=>(""!==e.portId&&t.uint32(10).string(e.portId),""!==e.channelId&&t.uint32(18).string(e.channelId),0!==e.proofAck.length&&t.uint32(26).bytes(e.proofAck),void 0!==e.proofHeight&&u.Height.encode(e.proofHeight,t.uint32(34).fork()).ldelim(),""!==e.signer&&t.uint32(42).string(e.signer),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},y);for(o.proofAck=new Uint8Array;r.pos>>3){case 1:o.portId=r.string();break;case 2:o.channelId=r.string();break;case 3:o.proofAck=r.bytes();break;case 4:o.proofHeight=u.Height.decode(r,r.uint32());break;case 5:o.signer=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},y);return t.proofAck=new Uint8Array,void 0!==e.portId&&null!==e.portId?t.portId=String(e.portId):t.portId="",void 0!==e.channelId&&null!==e.channelId?t.channelId=String(e.channelId):t.channelId="",void 0!==e.proofAck&&null!==e.proofAck&&(t.proofAck=j(e.proofAck)),void 0!==e.proofHeight&&null!==e.proofHeight?t.proofHeight=u.Height.fromJSON(e.proofHeight):t.proofHeight=void 0,void 0!==e.signer&&null!==e.signer?t.signer=String(e.signer):t.signer="",t},toJSON(e){const t={};return void 0!==e.portId&&(t.portId=e.portId),void 0!==e.channelId&&(t.channelId=e.channelId),void 0!==e.proofAck&&(t.proofAck=B(void 0!==e.proofAck?e.proofAck:new Uint8Array)),void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?u.Height.toJSON(e.proofHeight):void 0),void 0!==e.signer&&(t.signer=e.signer),t},fromPartial(e){const t=Object.assign({},y);return void 0!==e.portId&&null!==e.portId?t.portId=e.portId:t.portId="",void 0!==e.channelId&&null!==e.channelId?t.channelId=e.channelId:t.channelId="",void 0!==e.proofAck&&null!==e.proofAck?t.proofAck=e.proofAck:t.proofAck=new Uint8Array,void 0!==e.proofHeight&&null!==e.proofHeight?t.proofHeight=u.Height.fromPartial(e.proofHeight):t.proofHeight=void 0,void 0!==e.signer&&null!==e.signer?t.signer=e.signer:t.signer="",t}};const w={};t.MsgChannelOpenConfirmResponse={encode:(e,t=a.default.Writer.create())=>t,decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},w);for(;r.posObject.assign({},w),toJSON:e=>({}),fromPartial:e=>Object.assign({},w)};const _={portId:"",channelId:"",signer:""};t.MsgChannelCloseInit={encode:(e,t=a.default.Writer.create())=>(""!==e.portId&&t.uint32(10).string(e.portId),""!==e.channelId&&t.uint32(18).string(e.channelId),""!==e.signer&&t.uint32(26).string(e.signer),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},_);for(;r.pos>>3){case 1:o.portId=r.string();break;case 2:o.channelId=r.string();break;case 3:o.signer=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},_);return void 0!==e.portId&&null!==e.portId?t.portId=String(e.portId):t.portId="",void 0!==e.channelId&&null!==e.channelId?t.channelId=String(e.channelId):t.channelId="",void 0!==e.signer&&null!==e.signer?t.signer=String(e.signer):t.signer="",t},toJSON(e){const t={};return void 0!==e.portId&&(t.portId=e.portId),void 0!==e.channelId&&(t.channelId=e.channelId),void 0!==e.signer&&(t.signer=e.signer),t},fromPartial(e){const t=Object.assign({},_);return void 0!==e.portId&&null!==e.portId?t.portId=e.portId:t.portId="",void 0!==e.channelId&&null!==e.channelId?t.channelId=e.channelId:t.channelId="",void 0!==e.signer&&null!==e.signer?t.signer=e.signer:t.signer="",t}};const S={};t.MsgChannelCloseInitResponse={encode:(e,t=a.default.Writer.create())=>t,decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},S);for(;r.posObject.assign({},S),toJSON:e=>({}),fromPartial:e=>Object.assign({},S)};const O={portId:"",channelId:"",signer:""};t.MsgChannelCloseConfirm={encode:(e,t=a.default.Writer.create())=>(""!==e.portId&&t.uint32(10).string(e.portId),""!==e.channelId&&t.uint32(18).string(e.channelId),0!==e.proofInit.length&&t.uint32(26).bytes(e.proofInit),void 0!==e.proofHeight&&u.Height.encode(e.proofHeight,t.uint32(34).fork()).ldelim(),""!==e.signer&&t.uint32(42).string(e.signer),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},O);for(o.proofInit=new Uint8Array;r.pos>>3){case 1:o.portId=r.string();break;case 2:o.channelId=r.string();break;case 3:o.proofInit=r.bytes();break;case 4:o.proofHeight=u.Height.decode(r,r.uint32());break;case 5:o.signer=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},O);return t.proofInit=new Uint8Array,void 0!==e.portId&&null!==e.portId?t.portId=String(e.portId):t.portId="",void 0!==e.channelId&&null!==e.channelId?t.channelId=String(e.channelId):t.channelId="",void 0!==e.proofInit&&null!==e.proofInit&&(t.proofInit=j(e.proofInit)),void 0!==e.proofHeight&&null!==e.proofHeight?t.proofHeight=u.Height.fromJSON(e.proofHeight):t.proofHeight=void 0,void 0!==e.signer&&null!==e.signer?t.signer=String(e.signer):t.signer="",t},toJSON(e){const t={};return void 0!==e.portId&&(t.portId=e.portId),void 0!==e.channelId&&(t.channelId=e.channelId),void 0!==e.proofInit&&(t.proofInit=B(void 0!==e.proofInit?e.proofInit:new Uint8Array)),void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?u.Height.toJSON(e.proofHeight):void 0),void 0!==e.signer&&(t.signer=e.signer),t},fromPartial(e){const t=Object.assign({},O);return void 0!==e.portId&&null!==e.portId?t.portId=e.portId:t.portId="",void 0!==e.channelId&&null!==e.channelId?t.channelId=e.channelId:t.channelId="",void 0!==e.proofInit&&null!==e.proofInit?t.proofInit=e.proofInit:t.proofInit=new Uint8Array,void 0!==e.proofHeight&&null!==e.proofHeight?t.proofHeight=u.Height.fromPartial(e.proofHeight):t.proofHeight=void 0,void 0!==e.signer&&null!==e.signer?t.signer=e.signer:t.signer="",t}};const k={};t.MsgChannelCloseConfirmResponse={encode:(e,t=a.default.Writer.create())=>t,decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},k);for(;r.posObject.assign({},k),toJSON:e=>({}),fromPartial:e=>Object.assign({},k)};const A={signer:""};t.MsgRecvPacket={encode:(e,t=a.default.Writer.create())=>(void 0!==e.packet&&s.Packet.encode(e.packet,t.uint32(10).fork()).ldelim(),0!==e.proofCommitment.length&&t.uint32(18).bytes(e.proofCommitment),void 0!==e.proofHeight&&u.Height.encode(e.proofHeight,t.uint32(26).fork()).ldelim(),""!==e.signer&&t.uint32(34).string(e.signer),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},A);for(o.proofCommitment=new Uint8Array;r.pos>>3){case 1:o.packet=s.Packet.decode(r,r.uint32());break;case 2:o.proofCommitment=r.bytes();break;case 3:o.proofHeight=u.Height.decode(r,r.uint32());break;case 4:o.signer=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},A);return t.proofCommitment=new Uint8Array,void 0!==e.packet&&null!==e.packet?t.packet=s.Packet.fromJSON(e.packet):t.packet=void 0,void 0!==e.proofCommitment&&null!==e.proofCommitment&&(t.proofCommitment=j(e.proofCommitment)),void 0!==e.proofHeight&&null!==e.proofHeight?t.proofHeight=u.Height.fromJSON(e.proofHeight):t.proofHeight=void 0,void 0!==e.signer&&null!==e.signer?t.signer=String(e.signer):t.signer="",t},toJSON(e){const t={};return void 0!==e.packet&&(t.packet=e.packet?s.Packet.toJSON(e.packet):void 0),void 0!==e.proofCommitment&&(t.proofCommitment=B(void 0!==e.proofCommitment?e.proofCommitment:new Uint8Array)),void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?u.Height.toJSON(e.proofHeight):void 0),void 0!==e.signer&&(t.signer=e.signer),t},fromPartial(e){const t=Object.assign({},A);return void 0!==e.packet&&null!==e.packet?t.packet=s.Packet.fromPartial(e.packet):t.packet=void 0,void 0!==e.proofCommitment&&null!==e.proofCommitment?t.proofCommitment=e.proofCommitment:t.proofCommitment=new Uint8Array,void 0!==e.proofHeight&&null!==e.proofHeight?t.proofHeight=u.Height.fromPartial(e.proofHeight):t.proofHeight=void 0,void 0!==e.signer&&null!==e.signer?t.signer=e.signer:t.signer="",t}};const P={result:0};t.MsgRecvPacketResponse={encode:(e,t=a.default.Writer.create())=>(0!==e.result&&t.uint32(8).int32(e.result),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},P);for(;r.pos>>3==1?o.result=r.int32():r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},P);return void 0!==e.result&&null!==e.result?t.result=l(e.result):t.result=0,t},toJSON(e){const t={};return void 0!==e.result&&(t.result=f(e.result)),t},fromPartial(e){const t=Object.assign({},P);return void 0!==e.result&&null!==e.result?t.result=e.result:t.result=0,t}};const M={nextSequenceRecv:o.default.UZERO,signer:""};t.MsgTimeout={encode:(e,t=a.default.Writer.create())=>(void 0!==e.packet&&s.Packet.encode(e.packet,t.uint32(10).fork()).ldelim(),0!==e.proofUnreceived.length&&t.uint32(18).bytes(e.proofUnreceived),void 0!==e.proofHeight&&u.Height.encode(e.proofHeight,t.uint32(26).fork()).ldelim(),e.nextSequenceRecv.isZero()||t.uint32(32).uint64(e.nextSequenceRecv),""!==e.signer&&t.uint32(42).string(e.signer),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},M);for(o.proofUnreceived=new Uint8Array;r.pos>>3){case 1:o.packet=s.Packet.decode(r,r.uint32());break;case 2:o.proofUnreceived=r.bytes();break;case 3:o.proofHeight=u.Height.decode(r,r.uint32());break;case 4:o.nextSequenceRecv=r.uint64();break;case 5:o.signer=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},M);return t.proofUnreceived=new Uint8Array,void 0!==e.packet&&null!==e.packet?t.packet=s.Packet.fromJSON(e.packet):t.packet=void 0,void 0!==e.proofUnreceived&&null!==e.proofUnreceived&&(t.proofUnreceived=j(e.proofUnreceived)),void 0!==e.proofHeight&&null!==e.proofHeight?t.proofHeight=u.Height.fromJSON(e.proofHeight):t.proofHeight=void 0,void 0!==e.nextSequenceRecv&&null!==e.nextSequenceRecv?t.nextSequenceRecv=o.default.fromString(e.nextSequenceRecv):t.nextSequenceRecv=o.default.UZERO,void 0!==e.signer&&null!==e.signer?t.signer=String(e.signer):t.signer="",t},toJSON(e){const t={};return void 0!==e.packet&&(t.packet=e.packet?s.Packet.toJSON(e.packet):void 0),void 0!==e.proofUnreceived&&(t.proofUnreceived=B(void 0!==e.proofUnreceived?e.proofUnreceived:new Uint8Array)),void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?u.Height.toJSON(e.proofHeight):void 0),void 0!==e.nextSequenceRecv&&(t.nextSequenceRecv=(e.nextSequenceRecv||o.default.UZERO).toString()),void 0!==e.signer&&(t.signer=e.signer),t},fromPartial(e){const t=Object.assign({},M);return void 0!==e.packet&&null!==e.packet?t.packet=s.Packet.fromPartial(e.packet):t.packet=void 0,void 0!==e.proofUnreceived&&null!==e.proofUnreceived?t.proofUnreceived=e.proofUnreceived:t.proofUnreceived=new Uint8Array,void 0!==e.proofHeight&&null!==e.proofHeight?t.proofHeight=u.Height.fromPartial(e.proofHeight):t.proofHeight=void 0,void 0!==e.nextSequenceRecv&&null!==e.nextSequenceRecv?t.nextSequenceRecv=e.nextSequenceRecv:t.nextSequenceRecv=o.default.UZERO,void 0!==e.signer&&null!==e.signer?t.signer=e.signer:t.signer="",t}};const E={result:0};t.MsgTimeoutResponse={encode:(e,t=a.default.Writer.create())=>(0!==e.result&&t.uint32(8).int32(e.result),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},E);for(;r.pos>>3==1?o.result=r.int32():r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},E);return void 0!==e.result&&null!==e.result?t.result=l(e.result):t.result=0,t},toJSON(e){const t={};return void 0!==e.result&&(t.result=f(e.result)),t},fromPartial(e){const t=Object.assign({},E);return void 0!==e.result&&null!==e.result?t.result=e.result:t.result=0,t}};const C={nextSequenceRecv:o.default.UZERO,signer:""};t.MsgTimeoutOnClose={encode:(e,t=a.default.Writer.create())=>(void 0!==e.packet&&s.Packet.encode(e.packet,t.uint32(10).fork()).ldelim(),0!==e.proofUnreceived.length&&t.uint32(18).bytes(e.proofUnreceived),0!==e.proofClose.length&&t.uint32(26).bytes(e.proofClose),void 0!==e.proofHeight&&u.Height.encode(e.proofHeight,t.uint32(34).fork()).ldelim(),e.nextSequenceRecv.isZero()||t.uint32(40).uint64(e.nextSequenceRecv),""!==e.signer&&t.uint32(50).string(e.signer),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},C);for(o.proofUnreceived=new Uint8Array,o.proofClose=new Uint8Array;r.pos>>3){case 1:o.packet=s.Packet.decode(r,r.uint32());break;case 2:o.proofUnreceived=r.bytes();break;case 3:o.proofClose=r.bytes();break;case 4:o.proofHeight=u.Height.decode(r,r.uint32());break;case 5:o.nextSequenceRecv=r.uint64();break;case 6:o.signer=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},C);return t.proofUnreceived=new Uint8Array,t.proofClose=new Uint8Array,void 0!==e.packet&&null!==e.packet?t.packet=s.Packet.fromJSON(e.packet):t.packet=void 0,void 0!==e.proofUnreceived&&null!==e.proofUnreceived&&(t.proofUnreceived=j(e.proofUnreceived)),void 0!==e.proofClose&&null!==e.proofClose&&(t.proofClose=j(e.proofClose)),void 0!==e.proofHeight&&null!==e.proofHeight?t.proofHeight=u.Height.fromJSON(e.proofHeight):t.proofHeight=void 0,void 0!==e.nextSequenceRecv&&null!==e.nextSequenceRecv?t.nextSequenceRecv=o.default.fromString(e.nextSequenceRecv):t.nextSequenceRecv=o.default.UZERO,void 0!==e.signer&&null!==e.signer?t.signer=String(e.signer):t.signer="",t},toJSON(e){const t={};return void 0!==e.packet&&(t.packet=e.packet?s.Packet.toJSON(e.packet):void 0),void 0!==e.proofUnreceived&&(t.proofUnreceived=B(void 0!==e.proofUnreceived?e.proofUnreceived:new Uint8Array)),void 0!==e.proofClose&&(t.proofClose=B(void 0!==e.proofClose?e.proofClose:new Uint8Array)),void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?u.Height.toJSON(e.proofHeight):void 0),void 0!==e.nextSequenceRecv&&(t.nextSequenceRecv=(e.nextSequenceRecv||o.default.UZERO).toString()),void 0!==e.signer&&(t.signer=e.signer),t},fromPartial(e){const t=Object.assign({},C);return void 0!==e.packet&&null!==e.packet?t.packet=s.Packet.fromPartial(e.packet):t.packet=void 0,void 0!==e.proofUnreceived&&null!==e.proofUnreceived?t.proofUnreceived=e.proofUnreceived:t.proofUnreceived=new Uint8Array,void 0!==e.proofClose&&null!==e.proofClose?t.proofClose=e.proofClose:t.proofClose=new Uint8Array,void 0!==e.proofHeight&&null!==e.proofHeight?t.proofHeight=u.Height.fromPartial(e.proofHeight):t.proofHeight=void 0,void 0!==e.nextSequenceRecv&&null!==e.nextSequenceRecv?t.nextSequenceRecv=e.nextSequenceRecv:t.nextSequenceRecv=o.default.UZERO,void 0!==e.signer&&null!==e.signer?t.signer=e.signer:t.signer="",t}};const N={result:0};t.MsgTimeoutOnCloseResponse={encode:(e,t=a.default.Writer.create())=>(0!==e.result&&t.uint32(8).int32(e.result),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},N);for(;r.pos>>3==1?o.result=r.int32():r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},N);return void 0!==e.result&&null!==e.result?t.result=l(e.result):t.result=0,t},toJSON(e){const t={};return void 0!==e.result&&(t.result=f(e.result)),t},fromPartial(e){const t=Object.assign({},N);return void 0!==e.result&&null!==e.result?t.result=e.result:t.result=0,t}};const x={signer:""};t.MsgAcknowledgement={encode:(e,t=a.default.Writer.create())=>(void 0!==e.packet&&s.Packet.encode(e.packet,t.uint32(10).fork()).ldelim(),0!==e.acknowledgement.length&&t.uint32(18).bytes(e.acknowledgement),0!==e.proofAcked.length&&t.uint32(26).bytes(e.proofAcked),void 0!==e.proofHeight&&u.Height.encode(e.proofHeight,t.uint32(34).fork()).ldelim(),""!==e.signer&&t.uint32(42).string(e.signer),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},x);for(o.acknowledgement=new Uint8Array,o.proofAcked=new Uint8Array;r.pos>>3){case 1:o.packet=s.Packet.decode(r,r.uint32());break;case 2:o.acknowledgement=r.bytes();break;case 3:o.proofAcked=r.bytes();break;case 4:o.proofHeight=u.Height.decode(r,r.uint32());break;case 5:o.signer=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},x);return t.acknowledgement=new Uint8Array,t.proofAcked=new Uint8Array,void 0!==e.packet&&null!==e.packet?t.packet=s.Packet.fromJSON(e.packet):t.packet=void 0,void 0!==e.acknowledgement&&null!==e.acknowledgement&&(t.acknowledgement=j(e.acknowledgement)),void 0!==e.proofAcked&&null!==e.proofAcked&&(t.proofAcked=j(e.proofAcked)),void 0!==e.proofHeight&&null!==e.proofHeight?t.proofHeight=u.Height.fromJSON(e.proofHeight):t.proofHeight=void 0,void 0!==e.signer&&null!==e.signer?t.signer=String(e.signer):t.signer="",t},toJSON(e){const t={};return void 0!==e.packet&&(t.packet=e.packet?s.Packet.toJSON(e.packet):void 0),void 0!==e.acknowledgement&&(t.acknowledgement=B(void 0!==e.acknowledgement?e.acknowledgement:new Uint8Array)),void 0!==e.proofAcked&&(t.proofAcked=B(void 0!==e.proofAcked?e.proofAcked:new Uint8Array)),void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?u.Height.toJSON(e.proofHeight):void 0),void 0!==e.signer&&(t.signer=e.signer),t},fromPartial(e){const t=Object.assign({},x);return void 0!==e.packet&&null!==e.packet?t.packet=s.Packet.fromPartial(e.packet):t.packet=void 0,void 0!==e.acknowledgement&&null!==e.acknowledgement?t.acknowledgement=e.acknowledgement:t.acknowledgement=new Uint8Array,void 0!==e.proofAcked&&null!==e.proofAcked?t.proofAcked=e.proofAcked:t.proofAcked=new Uint8Array,void 0!==e.proofHeight&&null!==e.proofHeight?t.proofHeight=u.Height.fromPartial(e.proofHeight):t.proofHeight=void 0,void 0!==e.signer&&null!==e.signer?t.signer=e.signer:t.signer="",t}};const R={result:0};t.MsgAcknowledgementResponse={encode:(e,t=a.default.Writer.create())=>(0!==e.result&&t.uint32(8).int32(e.result),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},R);for(;r.pos>>3==1?o.result=r.int32():r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},R);return void 0!==e.result&&null!==e.result?t.result=l(e.result):t.result=0,t},toJSON(e){const t={};return void 0!==e.result&&(t.result=f(e.result)),t},fromPartial(e){const t=Object.assign({},R);return void 0!==e.result&&null!==e.result?t.result=e.result:t.result=0,t}},t.MsgClientImpl=class{constructor(e){this.rpc=e,this.ChannelOpenInit=this.ChannelOpenInit.bind(this),this.ChannelOpenTry=this.ChannelOpenTry.bind(this),this.ChannelOpenAck=this.ChannelOpenAck.bind(this),this.ChannelOpenConfirm=this.ChannelOpenConfirm.bind(this),this.ChannelCloseInit=this.ChannelCloseInit.bind(this),this.ChannelCloseConfirm=this.ChannelCloseConfirm.bind(this),this.RecvPacket=this.RecvPacket.bind(this),this.Timeout=this.Timeout.bind(this),this.TimeoutOnClose=this.TimeoutOnClose.bind(this),this.Acknowledgement=this.Acknowledgement.bind(this)}ChannelOpenInit(e,r){return this.rpc.unary(t.MsgChannelOpenInitDesc,t.MsgChannelOpenInit.fromPartial(e),r)}ChannelOpenTry(e,r){return this.rpc.unary(t.MsgChannelOpenTryDesc,t.MsgChannelOpenTry.fromPartial(e),r)}ChannelOpenAck(e,r){return this.rpc.unary(t.MsgChannelOpenAckDesc,t.MsgChannelOpenAck.fromPartial(e),r)}ChannelOpenConfirm(e,r){return this.rpc.unary(t.MsgChannelOpenConfirmDesc,t.MsgChannelOpenConfirm.fromPartial(e),r)}ChannelCloseInit(e,r){return this.rpc.unary(t.MsgChannelCloseInitDesc,t.MsgChannelCloseInit.fromPartial(e),r)}ChannelCloseConfirm(e,r){return this.rpc.unary(t.MsgChannelCloseConfirmDesc,t.MsgChannelCloseConfirm.fromPartial(e),r)}RecvPacket(e,r){return this.rpc.unary(t.MsgRecvPacketDesc,t.MsgRecvPacket.fromPartial(e),r)}Timeout(e,r){return this.rpc.unary(t.MsgTimeoutDesc,t.MsgTimeout.fromPartial(e),r)}TimeoutOnClose(e,r){return this.rpc.unary(t.MsgTimeoutOnCloseDesc,t.MsgTimeoutOnClose.fromPartial(e),r)}Acknowledgement(e,r){return this.rpc.unary(t.MsgAcknowledgementDesc,t.MsgAcknowledgement.fromPartial(e),r)}},t.MsgDesc={serviceName:"ibc.core.channel.v1.Msg"},t.MsgChannelOpenInitDesc={methodName:"ChannelOpenInit",service:t.MsgDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.MsgChannelOpenInit.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.MsgChannelOpenInitResponse.decode(e)),{toObject(){return this}})}},t.MsgChannelOpenTryDesc={methodName:"ChannelOpenTry",service:t.MsgDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.MsgChannelOpenTry.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.MsgChannelOpenTryResponse.decode(e)),{toObject(){return this}})}},t.MsgChannelOpenAckDesc={methodName:"ChannelOpenAck",service:t.MsgDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.MsgChannelOpenAck.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.MsgChannelOpenAckResponse.decode(e)),{toObject(){return this}})}},t.MsgChannelOpenConfirmDesc={methodName:"ChannelOpenConfirm",service:t.MsgDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.MsgChannelOpenConfirm.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.MsgChannelOpenConfirmResponse.decode(e)),{toObject(){return this}})}},t.MsgChannelCloseInitDesc={methodName:"ChannelCloseInit",service:t.MsgDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.MsgChannelCloseInit.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.MsgChannelCloseInitResponse.decode(e)),{toObject(){return this}})}},t.MsgChannelCloseConfirmDesc={methodName:"ChannelCloseConfirm",service:t.MsgDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.MsgChannelCloseConfirm.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.MsgChannelCloseConfirmResponse.decode(e)),{toObject(){return this}})}},t.MsgRecvPacketDesc={methodName:"RecvPacket",service:t.MsgDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.MsgRecvPacket.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.MsgRecvPacketResponse.decode(e)),{toObject(){return this}})}},t.MsgTimeoutDesc={methodName:"Timeout",service:t.MsgDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.MsgTimeout.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.MsgTimeoutResponse.decode(e)),{toObject(){return this}})}},t.MsgTimeoutOnCloseDesc={methodName:"TimeoutOnClose",service:t.MsgDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.MsgTimeoutOnClose.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.MsgTimeoutOnCloseResponse.decode(e)),{toObject(){return this}})}},t.MsgAcknowledgementDesc={methodName:"Acknowledgement",service:t.MsgDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.MsgAcknowledgement.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.MsgAcknowledgementResponse.decode(e)),{toObject(){return this}})}},t.GrpcWebImpl=class{constructor(e,t){this.host=e,this.options=t}unary(e,t,r){var n;const o=Object.assign(Object.assign({},t),e.requestType),a=r&&this.options.metadata?new c.BrowserHeaders(Object.assign(Object.assign({},null===(n=this.options)||void 0===n?void 0:n.metadata.headersMap),null==r?void 0:r.headersMap)):r||this.options.metadata;return new Promise(((t,r)=>{i.grpc.unary(e,{request:o,host:this.host,metadata:a,transport:this.options.transport,debug:this.options.debug,onEnd:function(e){if(e.status===i.grpc.Code.OK)t(e.message);else{const t=new Error(e.statusMessage);t.code=e.status,t.metadata=e.trailers,r(t)}}})}))}};var I=(()=>{if(void 0!==I)return I;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==r.g)return r.g;throw"Unable to locate global object"})();const T=I.atob||(e=>I.Buffer.from(e,"base64").toString("binary"));function j(e){const t=T(e),r=new Uint8Array(t.length);for(let e=0;eI.Buffer.from(e,"binary").toString("base64"));function B(e){const t=[];for(const r of e)t.push(String.fromCharCode(r));return D(t.join(""))}a.default.util.Long!==o.default&&(a.default.util.Long=o.default,a.default.configure())},23016:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Params=t.Height=t.UpgradeProposal=t.ClientUpdateProposal=t.ClientConsensusStates=t.ConsensusStateWithHeight=t.IdentifiedClientState=t.protobufPackage=void 0;const o=n(r(24067)),i=n(r(63967)),a=r(17063),s=r(49920);t.protobufPackage="ibc.core.client.v1";const u={clientId:""};t.IdentifiedClientState={encode:(e,t=i.default.Writer.create())=>(""!==e.clientId&&t.uint32(10).string(e.clientId),void 0!==e.clientState&&a.Any.encode(e.clientState,t.uint32(18).fork()).ldelim(),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},u);for(;r.pos>>3){case 1:o.clientId=r.string();break;case 2:o.clientState=a.Any.decode(r,r.uint32());break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},u);return void 0!==e.clientId&&null!==e.clientId?t.clientId=String(e.clientId):t.clientId="",void 0!==e.clientState&&null!==e.clientState?t.clientState=a.Any.fromJSON(e.clientState):t.clientState=void 0,t},toJSON(e){const t={};return void 0!==e.clientId&&(t.clientId=e.clientId),void 0!==e.clientState&&(t.clientState=e.clientState?a.Any.toJSON(e.clientState):void 0),t},fromPartial(e){const t=Object.assign({},u);return void 0!==e.clientId&&null!==e.clientId?t.clientId=e.clientId:t.clientId="",void 0!==e.clientState&&null!==e.clientState?t.clientState=a.Any.fromPartial(e.clientState):t.clientState=void 0,t}};const c={};t.ConsensusStateWithHeight={encode:(e,r=i.default.Writer.create())=>(void 0!==e.height&&t.Height.encode(e.height,r.uint32(10).fork()).ldelim(),void 0!==e.consensusState&&a.Any.encode(e.consensusState,r.uint32(18).fork()).ldelim(),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const s=Object.assign({},c);for(;n.pos>>3){case 1:s.height=t.Height.decode(n,n.uint32());break;case 2:s.consensusState=a.Any.decode(n,n.uint32());break;default:n.skipType(7&e)}}return s},fromJSON(e){const r=Object.assign({},c);return void 0!==e.height&&null!==e.height?r.height=t.Height.fromJSON(e.height):r.height=void 0,void 0!==e.consensusState&&null!==e.consensusState?r.consensusState=a.Any.fromJSON(e.consensusState):r.consensusState=void 0,r},toJSON(e){const r={};return void 0!==e.height&&(r.height=e.height?t.Height.toJSON(e.height):void 0),void 0!==e.consensusState&&(r.consensusState=e.consensusState?a.Any.toJSON(e.consensusState):void 0),r},fromPartial(e){const r=Object.assign({},c);return void 0!==e.height&&null!==e.height?r.height=t.Height.fromPartial(e.height):r.height=void 0,void 0!==e.consensusState&&null!==e.consensusState?r.consensusState=a.Any.fromPartial(e.consensusState):r.consensusState=void 0,r}};const d={clientId:""};t.ClientConsensusStates={encode(e,r=i.default.Writer.create()){""!==e.clientId&&r.uint32(10).string(e.clientId);for(const n of e.consensusStates)t.ConsensusStateWithHeight.encode(n,r.uint32(18).fork()).ldelim();return r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},d);for(a.consensusStates=[];n.pos>>3){case 1:a.clientId=n.string();break;case 2:a.consensusStates.push(t.ConsensusStateWithHeight.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},d);if(r.consensusStates=[],void 0!==e.clientId&&null!==e.clientId?r.clientId=String(e.clientId):r.clientId="",void 0!==e.consensusStates&&null!==e.consensusStates)for(const n of e.consensusStates)r.consensusStates.push(t.ConsensusStateWithHeight.fromJSON(n));return r},toJSON(e){const r={};return void 0!==e.clientId&&(r.clientId=e.clientId),e.consensusStates?r.consensusStates=e.consensusStates.map((e=>e?t.ConsensusStateWithHeight.toJSON(e):void 0)):r.consensusStates=[],r},fromPartial(e){const r=Object.assign({},d);if(r.consensusStates=[],void 0!==e.clientId&&null!==e.clientId?r.clientId=e.clientId:r.clientId="",void 0!==e.consensusStates&&null!==e.consensusStates)for(const n of e.consensusStates)r.consensusStates.push(t.ConsensusStateWithHeight.fromPartial(n));return r}};const l={title:"",description:"",subjectClientId:"",substituteClientId:""};t.ClientUpdateProposal={encode:(e,t=i.default.Writer.create())=>(""!==e.title&&t.uint32(10).string(e.title),""!==e.description&&t.uint32(18).string(e.description),""!==e.subjectClientId&&t.uint32(26).string(e.subjectClientId),""!==e.substituteClientId&&t.uint32(34).string(e.substituteClientId),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},l);for(;r.pos>>3){case 1:o.title=r.string();break;case 2:o.description=r.string();break;case 3:o.subjectClientId=r.string();break;case 4:o.substituteClientId=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},l);return void 0!==e.title&&null!==e.title?t.title=String(e.title):t.title="",void 0!==e.description&&null!==e.description?t.description=String(e.description):t.description="",void 0!==e.subjectClientId&&null!==e.subjectClientId?t.subjectClientId=String(e.subjectClientId):t.subjectClientId="",void 0!==e.substituteClientId&&null!==e.substituteClientId?t.substituteClientId=String(e.substituteClientId):t.substituteClientId="",t},toJSON(e){const t={};return void 0!==e.title&&(t.title=e.title),void 0!==e.description&&(t.description=e.description),void 0!==e.subjectClientId&&(t.subjectClientId=e.subjectClientId),void 0!==e.substituteClientId&&(t.substituteClientId=e.substituteClientId),t},fromPartial(e){const t=Object.assign({},l);return void 0!==e.title&&null!==e.title?t.title=e.title:t.title="",void 0!==e.description&&null!==e.description?t.description=e.description:t.description="",void 0!==e.subjectClientId&&null!==e.subjectClientId?t.subjectClientId=e.subjectClientId:t.subjectClientId="",void 0!==e.substituteClientId&&null!==e.substituteClientId?t.substituteClientId=e.substituteClientId:t.substituteClientId="",t}};const f={title:"",description:""};t.UpgradeProposal={encode:(e,t=i.default.Writer.create())=>(""!==e.title&&t.uint32(10).string(e.title),""!==e.description&&t.uint32(18).string(e.description),void 0!==e.plan&&s.Plan.encode(e.plan,t.uint32(26).fork()).ldelim(),void 0!==e.upgradedClientState&&a.Any.encode(e.upgradedClientState,t.uint32(34).fork()).ldelim(),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},f);for(;r.pos>>3){case 1:o.title=r.string();break;case 2:o.description=r.string();break;case 3:o.plan=s.Plan.decode(r,r.uint32());break;case 4:o.upgradedClientState=a.Any.decode(r,r.uint32());break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},f);return void 0!==e.title&&null!==e.title?t.title=String(e.title):t.title="",void 0!==e.description&&null!==e.description?t.description=String(e.description):t.description="",void 0!==e.plan&&null!==e.plan?t.plan=s.Plan.fromJSON(e.plan):t.plan=void 0,void 0!==e.upgradedClientState&&null!==e.upgradedClientState?t.upgradedClientState=a.Any.fromJSON(e.upgradedClientState):t.upgradedClientState=void 0,t},toJSON(e){const t={};return void 0!==e.title&&(t.title=e.title),void 0!==e.description&&(t.description=e.description),void 0!==e.plan&&(t.plan=e.plan?s.Plan.toJSON(e.plan):void 0),void 0!==e.upgradedClientState&&(t.upgradedClientState=e.upgradedClientState?a.Any.toJSON(e.upgradedClientState):void 0),t},fromPartial(e){const t=Object.assign({},f);return void 0!==e.title&&null!==e.title?t.title=e.title:t.title="",void 0!==e.description&&null!==e.description?t.description=e.description:t.description="",void 0!==e.plan&&null!==e.plan?t.plan=s.Plan.fromPartial(e.plan):t.plan=void 0,void 0!==e.upgradedClientState&&null!==e.upgradedClientState?t.upgradedClientState=a.Any.fromPartial(e.upgradedClientState):t.upgradedClientState=void 0,t}};const h={revisionNumber:o.default.UZERO,revisionHeight:o.default.UZERO};t.Height={encode:(e,t=i.default.Writer.create())=>(e.revisionNumber.isZero()||t.uint32(8).uint64(e.revisionNumber),e.revisionHeight.isZero()||t.uint32(16).uint64(e.revisionHeight),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},h);for(;r.pos>>3){case 1:o.revisionNumber=r.uint64();break;case 2:o.revisionHeight=r.uint64();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},h);return void 0!==e.revisionNumber&&null!==e.revisionNumber?t.revisionNumber=o.default.fromString(e.revisionNumber):t.revisionNumber=o.default.UZERO,void 0!==e.revisionHeight&&null!==e.revisionHeight?t.revisionHeight=o.default.fromString(e.revisionHeight):t.revisionHeight=o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.revisionNumber&&(t.revisionNumber=(e.revisionNumber||o.default.UZERO).toString()),void 0!==e.revisionHeight&&(t.revisionHeight=(e.revisionHeight||o.default.UZERO).toString()),t},fromPartial(e){const t=Object.assign({},h);return void 0!==e.revisionNumber&&null!==e.revisionNumber?t.revisionNumber=e.revisionNumber:t.revisionNumber=o.default.UZERO,void 0!==e.revisionHeight&&null!==e.revisionHeight?t.revisionHeight=e.revisionHeight:t.revisionHeight=o.default.UZERO,t}};const p={allowedClients:""};t.Params={encode(e,t=i.default.Writer.create()){for(const r of e.allowedClients)t.uint32(10).string(r);return t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},p);for(o.allowedClients=[];r.pos>>3==1?o.allowedClients.push(r.string()):r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},p);if(t.allowedClients=[],void 0!==e.allowedClients&&null!==e.allowedClients)for(const r of e.allowedClients)t.allowedClients.push(String(r));return t},toJSON(e){const t={};return e.allowedClients?t.allowedClients=e.allowedClients.map((e=>e)):t.allowedClients=[],t},fromPartial(e){const t=Object.assign({},p);if(t.allowedClients=[],void 0!==e.allowedClients&&null!==e.allowedClients)for(const r of e.allowedClients)t.allowedClients.push(r);return t}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},24191:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.GrpcWebImpl=t.MsgSubmitMisbehaviourDesc=t.MsgUpgradeClientDesc=t.MsgUpdateClientDesc=t.MsgCreateClientDesc=t.MsgDesc=t.MsgClientImpl=t.MsgSubmitMisbehaviourResponse=t.MsgSubmitMisbehaviour=t.MsgUpgradeClientResponse=t.MsgUpgradeClient=t.MsgUpdateClientResponse=t.MsgUpdateClient=t.MsgCreateClientResponse=t.MsgCreateClient=t.protobufPackage=void 0;const o=n(r(24067)),i=r(66959),a=n(r(63967)),s=r(17063),u=r(62200);t.protobufPackage="ibc.core.client.v1";const c={signer:""};t.MsgCreateClient={encode:(e,t=a.default.Writer.create())=>(void 0!==e.clientState&&s.Any.encode(e.clientState,t.uint32(10).fork()).ldelim(),void 0!==e.consensusState&&s.Any.encode(e.consensusState,t.uint32(18).fork()).ldelim(),""!==e.signer&&t.uint32(26).string(e.signer),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},c);for(;r.pos>>3){case 1:o.clientState=s.Any.decode(r,r.uint32());break;case 2:o.consensusState=s.Any.decode(r,r.uint32());break;case 3:o.signer=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},c);return void 0!==e.clientState&&null!==e.clientState?t.clientState=s.Any.fromJSON(e.clientState):t.clientState=void 0,void 0!==e.consensusState&&null!==e.consensusState?t.consensusState=s.Any.fromJSON(e.consensusState):t.consensusState=void 0,void 0!==e.signer&&null!==e.signer?t.signer=String(e.signer):t.signer="",t},toJSON(e){const t={};return void 0!==e.clientState&&(t.clientState=e.clientState?s.Any.toJSON(e.clientState):void 0),void 0!==e.consensusState&&(t.consensusState=e.consensusState?s.Any.toJSON(e.consensusState):void 0),void 0!==e.signer&&(t.signer=e.signer),t},fromPartial(e){const t=Object.assign({},c);return void 0!==e.clientState&&null!==e.clientState?t.clientState=s.Any.fromPartial(e.clientState):t.clientState=void 0,void 0!==e.consensusState&&null!==e.consensusState?t.consensusState=s.Any.fromPartial(e.consensusState):t.consensusState=void 0,void 0!==e.signer&&null!==e.signer?t.signer=e.signer:t.signer="",t}};const d={};t.MsgCreateClientResponse={encode:(e,t=a.default.Writer.create())=>t,decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},d);for(;r.posObject.assign({},d),toJSON:e=>({}),fromPartial:e=>Object.assign({},d)};const l={clientId:"",signer:""};t.MsgUpdateClient={encode:(e,t=a.default.Writer.create())=>(""!==e.clientId&&t.uint32(10).string(e.clientId),void 0!==e.header&&s.Any.encode(e.header,t.uint32(18).fork()).ldelim(),""!==e.signer&&t.uint32(26).string(e.signer),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},l);for(;r.pos>>3){case 1:o.clientId=r.string();break;case 2:o.header=s.Any.decode(r,r.uint32());break;case 3:o.signer=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},l);return void 0!==e.clientId&&null!==e.clientId?t.clientId=String(e.clientId):t.clientId="",void 0!==e.header&&null!==e.header?t.header=s.Any.fromJSON(e.header):t.header=void 0,void 0!==e.signer&&null!==e.signer?t.signer=String(e.signer):t.signer="",t},toJSON(e){const t={};return void 0!==e.clientId&&(t.clientId=e.clientId),void 0!==e.header&&(t.header=e.header?s.Any.toJSON(e.header):void 0),void 0!==e.signer&&(t.signer=e.signer),t},fromPartial(e){const t=Object.assign({},l);return void 0!==e.clientId&&null!==e.clientId?t.clientId=e.clientId:t.clientId="",void 0!==e.header&&null!==e.header?t.header=s.Any.fromPartial(e.header):t.header=void 0,void 0!==e.signer&&null!==e.signer?t.signer=e.signer:t.signer="",t}};const f={};t.MsgUpdateClientResponse={encode:(e,t=a.default.Writer.create())=>t,decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},f);for(;r.posObject.assign({},f),toJSON:e=>({}),fromPartial:e=>Object.assign({},f)};const h={clientId:"",signer:""};t.MsgUpgradeClient={encode:(e,t=a.default.Writer.create())=>(""!==e.clientId&&t.uint32(10).string(e.clientId),void 0!==e.clientState&&s.Any.encode(e.clientState,t.uint32(18).fork()).ldelim(),void 0!==e.consensusState&&s.Any.encode(e.consensusState,t.uint32(26).fork()).ldelim(),0!==e.proofUpgradeClient.length&&t.uint32(34).bytes(e.proofUpgradeClient),0!==e.proofUpgradeConsensusState.length&&t.uint32(42).bytes(e.proofUpgradeConsensusState),""!==e.signer&&t.uint32(50).string(e.signer),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},h);for(o.proofUpgradeClient=new Uint8Array,o.proofUpgradeConsensusState=new Uint8Array;r.pos>>3){case 1:o.clientId=r.string();break;case 2:o.clientState=s.Any.decode(r,r.uint32());break;case 3:o.consensusState=s.Any.decode(r,r.uint32());break;case 4:o.proofUpgradeClient=r.bytes();break;case 5:o.proofUpgradeConsensusState=r.bytes();break;case 6:o.signer=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},h);return t.proofUpgradeClient=new Uint8Array,t.proofUpgradeConsensusState=new Uint8Array,void 0!==e.clientId&&null!==e.clientId?t.clientId=String(e.clientId):t.clientId="",void 0!==e.clientState&&null!==e.clientState?t.clientState=s.Any.fromJSON(e.clientState):t.clientState=void 0,void 0!==e.consensusState&&null!==e.consensusState?t.consensusState=s.Any.fromJSON(e.consensusState):t.consensusState=void 0,void 0!==e.proofUpgradeClient&&null!==e.proofUpgradeClient&&(t.proofUpgradeClient=y(e.proofUpgradeClient)),void 0!==e.proofUpgradeConsensusState&&null!==e.proofUpgradeConsensusState&&(t.proofUpgradeConsensusState=y(e.proofUpgradeConsensusState)),void 0!==e.signer&&null!==e.signer?t.signer=String(e.signer):t.signer="",t},toJSON(e){const t={};return void 0!==e.clientId&&(t.clientId=e.clientId),void 0!==e.clientState&&(t.clientState=e.clientState?s.Any.toJSON(e.clientState):void 0),void 0!==e.consensusState&&(t.consensusState=e.consensusState?s.Any.toJSON(e.consensusState):void 0),void 0!==e.proofUpgradeClient&&(t.proofUpgradeClient=_(void 0!==e.proofUpgradeClient?e.proofUpgradeClient:new Uint8Array)),void 0!==e.proofUpgradeConsensusState&&(t.proofUpgradeConsensusState=_(void 0!==e.proofUpgradeConsensusState?e.proofUpgradeConsensusState:new Uint8Array)),void 0!==e.signer&&(t.signer=e.signer),t},fromPartial(e){const t=Object.assign({},h);return void 0!==e.clientId&&null!==e.clientId?t.clientId=e.clientId:t.clientId="",void 0!==e.clientState&&null!==e.clientState?t.clientState=s.Any.fromPartial(e.clientState):t.clientState=void 0,void 0!==e.consensusState&&null!==e.consensusState?t.consensusState=s.Any.fromPartial(e.consensusState):t.consensusState=void 0,void 0!==e.proofUpgradeClient&&null!==e.proofUpgradeClient?t.proofUpgradeClient=e.proofUpgradeClient:t.proofUpgradeClient=new Uint8Array,void 0!==e.proofUpgradeConsensusState&&null!==e.proofUpgradeConsensusState?t.proofUpgradeConsensusState=e.proofUpgradeConsensusState:t.proofUpgradeConsensusState=new Uint8Array,void 0!==e.signer&&null!==e.signer?t.signer=e.signer:t.signer="",t}};const p={};t.MsgUpgradeClientResponse={encode:(e,t=a.default.Writer.create())=>t,decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},p);for(;r.posObject.assign({},p),toJSON:e=>({}),fromPartial:e=>Object.assign({},p)};const m={clientId:"",signer:""};t.MsgSubmitMisbehaviour={encode:(e,t=a.default.Writer.create())=>(""!==e.clientId&&t.uint32(10).string(e.clientId),void 0!==e.misbehaviour&&s.Any.encode(e.misbehaviour,t.uint32(18).fork()).ldelim(),""!==e.signer&&t.uint32(26).string(e.signer),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},m);for(;r.pos>>3){case 1:o.clientId=r.string();break;case 2:o.misbehaviour=s.Any.decode(r,r.uint32());break;case 3:o.signer=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},m);return void 0!==e.clientId&&null!==e.clientId?t.clientId=String(e.clientId):t.clientId="",void 0!==e.misbehaviour&&null!==e.misbehaviour?t.misbehaviour=s.Any.fromJSON(e.misbehaviour):t.misbehaviour=void 0,void 0!==e.signer&&null!==e.signer?t.signer=String(e.signer):t.signer="",t},toJSON(e){const t={};return void 0!==e.clientId&&(t.clientId=e.clientId),void 0!==e.misbehaviour&&(t.misbehaviour=e.misbehaviour?s.Any.toJSON(e.misbehaviour):void 0),void 0!==e.signer&&(t.signer=e.signer),t},fromPartial(e){const t=Object.assign({},m);return void 0!==e.clientId&&null!==e.clientId?t.clientId=e.clientId:t.clientId="",void 0!==e.misbehaviour&&null!==e.misbehaviour?t.misbehaviour=s.Any.fromPartial(e.misbehaviour):t.misbehaviour=void 0,void 0!==e.signer&&null!==e.signer?t.signer=e.signer:t.signer="",t}};const g={};t.MsgSubmitMisbehaviourResponse={encode:(e,t=a.default.Writer.create())=>t,decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},g);for(;r.posObject.assign({},g),toJSON:e=>({}),fromPartial:e=>Object.assign({},g)},t.MsgClientImpl=class{constructor(e){this.rpc=e,this.CreateClient=this.CreateClient.bind(this),this.UpdateClient=this.UpdateClient.bind(this),this.UpgradeClient=this.UpgradeClient.bind(this),this.SubmitMisbehaviour=this.SubmitMisbehaviour.bind(this)}CreateClient(e,r){return this.rpc.unary(t.MsgCreateClientDesc,t.MsgCreateClient.fromPartial(e),r)}UpdateClient(e,r){return this.rpc.unary(t.MsgUpdateClientDesc,t.MsgUpdateClient.fromPartial(e),r)}UpgradeClient(e,r){return this.rpc.unary(t.MsgUpgradeClientDesc,t.MsgUpgradeClient.fromPartial(e),r)}SubmitMisbehaviour(e,r){return this.rpc.unary(t.MsgSubmitMisbehaviourDesc,t.MsgSubmitMisbehaviour.fromPartial(e),r)}},t.MsgDesc={serviceName:"ibc.core.client.v1.Msg"},t.MsgCreateClientDesc={methodName:"CreateClient",service:t.MsgDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.MsgCreateClient.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.MsgCreateClientResponse.decode(e)),{toObject(){return this}})}},t.MsgUpdateClientDesc={methodName:"UpdateClient",service:t.MsgDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.MsgUpdateClient.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.MsgUpdateClientResponse.decode(e)),{toObject(){return this}})}},t.MsgUpgradeClientDesc={methodName:"UpgradeClient",service:t.MsgDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.MsgUpgradeClient.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.MsgUpgradeClientResponse.decode(e)),{toObject(){return this}})}},t.MsgSubmitMisbehaviourDesc={methodName:"SubmitMisbehaviour",service:t.MsgDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.MsgSubmitMisbehaviour.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.MsgSubmitMisbehaviourResponse.decode(e)),{toObject(){return this}})}},t.GrpcWebImpl=class{constructor(e,t){this.host=e,this.options=t}unary(e,t,r){var n;const o=Object.assign(Object.assign({},t),e.requestType),a=r&&this.options.metadata?new u.BrowserHeaders(Object.assign(Object.assign({},null===(n=this.options)||void 0===n?void 0:n.metadata.headersMap),null==r?void 0:r.headersMap)):r||this.options.metadata;return new Promise(((t,r)=>{i.grpc.unary(e,{request:o,host:this.host,metadata:a,transport:this.options.transport,debug:this.options.debug,onEnd:function(e){if(e.status===i.grpc.Code.OK)t(e.message);else{const t=new Error(e.statusMessage);t.code=e.status,t.metadata=e.trailers,r(t)}}})}))}};var v=(()=>{if(void 0!==v)return v;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==r.g)return r.g;throw"Unable to locate global object"})();const b=v.atob||(e=>v.Buffer.from(e,"base64").toString("binary"));function y(e){const t=b(e),r=new Uint8Array(t.length);for(let e=0;ev.Buffer.from(e,"binary").toString("base64"));function _(e){const t=[];for(const r of e)t.push(String.fromCharCode(r));return w(t.join(""))}a.default.util.Long!==o.default&&(a.default.util.Long=o.default,a.default.configure())},24147:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.MerkleProof=t.MerklePath=t.MerklePrefix=t.MerkleRoot=t.protobufPackage=void 0;const o=n(r(24067)),i=n(r(63967)),a=r(86068);t.protobufPackage="ibc.core.commitment.v1";const s={};t.MerkleRoot={encode:(e,t=i.default.Writer.create())=>(0!==e.hash.length&&t.uint32(10).bytes(e.hash),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},s);for(o.hash=new Uint8Array;r.pos>>3==1?o.hash=r.bytes():r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},s);return t.hash=new Uint8Array,void 0!==e.hash&&null!==e.hash&&(t.hash=h(e.hash)),t},toJSON(e){const t={};return void 0!==e.hash&&(t.hash=m(void 0!==e.hash?e.hash:new Uint8Array)),t},fromPartial(e){const t=Object.assign({},s);return void 0!==e.hash&&null!==e.hash?t.hash=e.hash:t.hash=new Uint8Array,t}};const u={};t.MerklePrefix={encode:(e,t=i.default.Writer.create())=>(0!==e.keyPrefix.length&&t.uint32(10).bytes(e.keyPrefix),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},u);for(o.keyPrefix=new Uint8Array;r.pos>>3==1?o.keyPrefix=r.bytes():r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},u);return t.keyPrefix=new Uint8Array,void 0!==e.keyPrefix&&null!==e.keyPrefix&&(t.keyPrefix=h(e.keyPrefix)),t},toJSON(e){const t={};return void 0!==e.keyPrefix&&(t.keyPrefix=m(void 0!==e.keyPrefix?e.keyPrefix:new Uint8Array)),t},fromPartial(e){const t=Object.assign({},u);return void 0!==e.keyPrefix&&null!==e.keyPrefix?t.keyPrefix=e.keyPrefix:t.keyPrefix=new Uint8Array,t}};const c={keyPath:""};t.MerklePath={encode(e,t=i.default.Writer.create()){for(const r of e.keyPath)t.uint32(10).string(r);return t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},c);for(o.keyPath=[];r.pos>>3==1?o.keyPath.push(r.string()):r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},c);if(t.keyPath=[],void 0!==e.keyPath&&null!==e.keyPath)for(const r of e.keyPath)t.keyPath.push(String(r));return t},toJSON(e){const t={};return e.keyPath?t.keyPath=e.keyPath.map((e=>e)):t.keyPath=[],t},fromPartial(e){const t=Object.assign({},c);if(t.keyPath=[],void 0!==e.keyPath&&null!==e.keyPath)for(const r of e.keyPath)t.keyPath.push(r);return t}};const d={};t.MerkleProof={encode(e,t=i.default.Writer.create()){for(const r of e.proofs)a.CommitmentProof.encode(r,t.uint32(10).fork()).ldelim();return t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},d);for(o.proofs=[];r.pos>>3==1?o.proofs.push(a.CommitmentProof.decode(r,r.uint32())):r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},d);if(t.proofs=[],void 0!==e.proofs&&null!==e.proofs)for(const r of e.proofs)t.proofs.push(a.CommitmentProof.fromJSON(r));return t},toJSON(e){const t={};return e.proofs?t.proofs=e.proofs.map((e=>e?a.CommitmentProof.toJSON(e):void 0)):t.proofs=[],t},fromPartial(e){const t=Object.assign({},d);if(t.proofs=[],void 0!==e.proofs&&null!==e.proofs)for(const r of e.proofs)t.proofs.push(a.CommitmentProof.fromPartial(r));return t}};var l=(()=>{if(void 0!==l)return l;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==r.g)return r.g;throw"Unable to locate global object"})();const f=l.atob||(e=>l.Buffer.from(e,"base64").toString("binary"));function h(e){const t=f(e),r=new Uint8Array(t.length);for(let e=0;el.Buffer.from(e,"binary").toString("base64"));function m(e){const t=[];for(const r of e)t.push(String.fromCharCode(r));return p(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},31631:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Params=t.Version=t.ConnectionPaths=t.ClientPaths=t.Counterparty=t.IdentifiedConnection=t.ConnectionEnd=t.stateToJSON=t.stateFromJSON=t.State=t.protobufPackage=void 0;const o=n(r(24067)),i=n(r(63967)),a=r(24147);var s;function u(e){switch(e){case 0:case"STATE_UNINITIALIZED_UNSPECIFIED":return s.STATE_UNINITIALIZED_UNSPECIFIED;case 1:case"STATE_INIT":return s.STATE_INIT;case 2:case"STATE_TRYOPEN":return s.STATE_TRYOPEN;case 3:case"STATE_OPEN":return s.STATE_OPEN;default:return s.UNRECOGNIZED}}function c(e){switch(e){case s.STATE_UNINITIALIZED_UNSPECIFIED:return"STATE_UNINITIALIZED_UNSPECIFIED";case s.STATE_INIT:return"STATE_INIT";case s.STATE_TRYOPEN:return"STATE_TRYOPEN";case s.STATE_OPEN:return"STATE_OPEN";default:return"UNKNOWN"}}t.protobufPackage="ibc.core.connection.v1",function(e){e[e.STATE_UNINITIALIZED_UNSPECIFIED=0]="STATE_UNINITIALIZED_UNSPECIFIED",e[e.STATE_INIT=1]="STATE_INIT",e[e.STATE_TRYOPEN=2]="STATE_TRYOPEN",e[e.STATE_OPEN=3]="STATE_OPEN",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(s=t.State||(t.State={})),t.stateFromJSON=u,t.stateToJSON=c;const d={clientId:"",state:0,delayPeriod:o.default.UZERO};t.ConnectionEnd={encode(e,r=i.default.Writer.create()){""!==e.clientId&&r.uint32(10).string(e.clientId);for(const n of e.versions)t.Version.encode(n,r.uint32(18).fork()).ldelim();return 0!==e.state&&r.uint32(24).int32(e.state),void 0!==e.counterparty&&t.Counterparty.encode(e.counterparty,r.uint32(34).fork()).ldelim(),e.delayPeriod.isZero()||r.uint32(40).uint64(e.delayPeriod),r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},d);for(a.versions=[];n.pos>>3){case 1:a.clientId=n.string();break;case 2:a.versions.push(t.Version.decode(n,n.uint32()));break;case 3:a.state=n.int32();break;case 4:a.counterparty=t.Counterparty.decode(n,n.uint32());break;case 5:a.delayPeriod=n.uint64();break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},d);if(r.versions=[],void 0!==e.clientId&&null!==e.clientId?r.clientId=String(e.clientId):r.clientId="",void 0!==e.versions&&null!==e.versions)for(const n of e.versions)r.versions.push(t.Version.fromJSON(n));return void 0!==e.state&&null!==e.state?r.state=u(e.state):r.state=0,void 0!==e.counterparty&&null!==e.counterparty?r.counterparty=t.Counterparty.fromJSON(e.counterparty):r.counterparty=void 0,void 0!==e.delayPeriod&&null!==e.delayPeriod?r.delayPeriod=o.default.fromString(e.delayPeriod):r.delayPeriod=o.default.UZERO,r},toJSON(e){const r={};return void 0!==e.clientId&&(r.clientId=e.clientId),e.versions?r.versions=e.versions.map((e=>e?t.Version.toJSON(e):void 0)):r.versions=[],void 0!==e.state&&(r.state=c(e.state)),void 0!==e.counterparty&&(r.counterparty=e.counterparty?t.Counterparty.toJSON(e.counterparty):void 0),void 0!==e.delayPeriod&&(r.delayPeriod=(e.delayPeriod||o.default.UZERO).toString()),r},fromPartial(e){const r=Object.assign({},d);if(r.versions=[],void 0!==e.clientId&&null!==e.clientId?r.clientId=e.clientId:r.clientId="",void 0!==e.versions&&null!==e.versions)for(const n of e.versions)r.versions.push(t.Version.fromPartial(n));return void 0!==e.state&&null!==e.state?r.state=e.state:r.state=0,void 0!==e.counterparty&&null!==e.counterparty?r.counterparty=t.Counterparty.fromPartial(e.counterparty):r.counterparty=void 0,void 0!==e.delayPeriod&&null!==e.delayPeriod?r.delayPeriod=e.delayPeriod:r.delayPeriod=o.default.UZERO,r}};const l={id:"",clientId:"",state:0,delayPeriod:o.default.UZERO};t.IdentifiedConnection={encode(e,r=i.default.Writer.create()){""!==e.id&&r.uint32(10).string(e.id),""!==e.clientId&&r.uint32(18).string(e.clientId);for(const n of e.versions)t.Version.encode(n,r.uint32(26).fork()).ldelim();return 0!==e.state&&r.uint32(32).int32(e.state),void 0!==e.counterparty&&t.Counterparty.encode(e.counterparty,r.uint32(42).fork()).ldelim(),e.delayPeriod.isZero()||r.uint32(48).uint64(e.delayPeriod),r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},l);for(a.versions=[];n.pos>>3){case 1:a.id=n.string();break;case 2:a.clientId=n.string();break;case 3:a.versions.push(t.Version.decode(n,n.uint32()));break;case 4:a.state=n.int32();break;case 5:a.counterparty=t.Counterparty.decode(n,n.uint32());break;case 6:a.delayPeriod=n.uint64();break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},l);if(r.versions=[],void 0!==e.id&&null!==e.id?r.id=String(e.id):r.id="",void 0!==e.clientId&&null!==e.clientId?r.clientId=String(e.clientId):r.clientId="",void 0!==e.versions&&null!==e.versions)for(const n of e.versions)r.versions.push(t.Version.fromJSON(n));return void 0!==e.state&&null!==e.state?r.state=u(e.state):r.state=0,void 0!==e.counterparty&&null!==e.counterparty?r.counterparty=t.Counterparty.fromJSON(e.counterparty):r.counterparty=void 0,void 0!==e.delayPeriod&&null!==e.delayPeriod?r.delayPeriod=o.default.fromString(e.delayPeriod):r.delayPeriod=o.default.UZERO,r},toJSON(e){const r={};return void 0!==e.id&&(r.id=e.id),void 0!==e.clientId&&(r.clientId=e.clientId),e.versions?r.versions=e.versions.map((e=>e?t.Version.toJSON(e):void 0)):r.versions=[],void 0!==e.state&&(r.state=c(e.state)),void 0!==e.counterparty&&(r.counterparty=e.counterparty?t.Counterparty.toJSON(e.counterparty):void 0),void 0!==e.delayPeriod&&(r.delayPeriod=(e.delayPeriod||o.default.UZERO).toString()),r},fromPartial(e){const r=Object.assign({},l);if(r.versions=[],void 0!==e.id&&null!==e.id?r.id=e.id:r.id="",void 0!==e.clientId&&null!==e.clientId?r.clientId=e.clientId:r.clientId="",void 0!==e.versions&&null!==e.versions)for(const n of e.versions)r.versions.push(t.Version.fromPartial(n));return void 0!==e.state&&null!==e.state?r.state=e.state:r.state=0,void 0!==e.counterparty&&null!==e.counterparty?r.counterparty=t.Counterparty.fromPartial(e.counterparty):r.counterparty=void 0,void 0!==e.delayPeriod&&null!==e.delayPeriod?r.delayPeriod=e.delayPeriod:r.delayPeriod=o.default.UZERO,r}};const f={clientId:"",connectionId:""};t.Counterparty={encode:(e,t=i.default.Writer.create())=>(""!==e.clientId&&t.uint32(10).string(e.clientId),""!==e.connectionId&&t.uint32(18).string(e.connectionId),void 0!==e.prefix&&a.MerklePrefix.encode(e.prefix,t.uint32(26).fork()).ldelim(),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},f);for(;r.pos>>3){case 1:o.clientId=r.string();break;case 2:o.connectionId=r.string();break;case 3:o.prefix=a.MerklePrefix.decode(r,r.uint32());break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},f);return void 0!==e.clientId&&null!==e.clientId?t.clientId=String(e.clientId):t.clientId="",void 0!==e.connectionId&&null!==e.connectionId?t.connectionId=String(e.connectionId):t.connectionId="",void 0!==e.prefix&&null!==e.prefix?t.prefix=a.MerklePrefix.fromJSON(e.prefix):t.prefix=void 0,t},toJSON(e){const t={};return void 0!==e.clientId&&(t.clientId=e.clientId),void 0!==e.connectionId&&(t.connectionId=e.connectionId),void 0!==e.prefix&&(t.prefix=e.prefix?a.MerklePrefix.toJSON(e.prefix):void 0),t},fromPartial(e){const t=Object.assign({},f);return void 0!==e.clientId&&null!==e.clientId?t.clientId=e.clientId:t.clientId="",void 0!==e.connectionId&&null!==e.connectionId?t.connectionId=e.connectionId:t.connectionId="",void 0!==e.prefix&&null!==e.prefix?t.prefix=a.MerklePrefix.fromPartial(e.prefix):t.prefix=void 0,t}};const h={paths:""};t.ClientPaths={encode(e,t=i.default.Writer.create()){for(const r of e.paths)t.uint32(10).string(r);return t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},h);for(o.paths=[];r.pos>>3==1?o.paths.push(r.string()):r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},h);if(t.paths=[],void 0!==e.paths&&null!==e.paths)for(const r of e.paths)t.paths.push(String(r));return t},toJSON(e){const t={};return e.paths?t.paths=e.paths.map((e=>e)):t.paths=[],t},fromPartial(e){const t=Object.assign({},h);if(t.paths=[],void 0!==e.paths&&null!==e.paths)for(const r of e.paths)t.paths.push(r);return t}};const p={clientId:"",paths:""};t.ConnectionPaths={encode(e,t=i.default.Writer.create()){""!==e.clientId&&t.uint32(10).string(e.clientId);for(const r of e.paths)t.uint32(18).string(r);return t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},p);for(o.paths=[];r.pos>>3){case 1:o.clientId=r.string();break;case 2:o.paths.push(r.string());break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},p);if(t.paths=[],void 0!==e.clientId&&null!==e.clientId?t.clientId=String(e.clientId):t.clientId="",void 0!==e.paths&&null!==e.paths)for(const r of e.paths)t.paths.push(String(r));return t},toJSON(e){const t={};return void 0!==e.clientId&&(t.clientId=e.clientId),e.paths?t.paths=e.paths.map((e=>e)):t.paths=[],t},fromPartial(e){const t=Object.assign({},p);if(t.paths=[],void 0!==e.clientId&&null!==e.clientId?t.clientId=e.clientId:t.clientId="",void 0!==e.paths&&null!==e.paths)for(const r of e.paths)t.paths.push(r);return t}};const m={identifier:"",features:""};t.Version={encode(e,t=i.default.Writer.create()){""!==e.identifier&&t.uint32(10).string(e.identifier);for(const r of e.features)t.uint32(18).string(r);return t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},m);for(o.features=[];r.pos>>3){case 1:o.identifier=r.string();break;case 2:o.features.push(r.string());break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},m);if(t.features=[],void 0!==e.identifier&&null!==e.identifier?t.identifier=String(e.identifier):t.identifier="",void 0!==e.features&&null!==e.features)for(const r of e.features)t.features.push(String(r));return t},toJSON(e){const t={};return void 0!==e.identifier&&(t.identifier=e.identifier),e.features?t.features=e.features.map((e=>e)):t.features=[],t},fromPartial(e){const t=Object.assign({},m);if(t.features=[],void 0!==e.identifier&&null!==e.identifier?t.identifier=e.identifier:t.identifier="",void 0!==e.features&&null!==e.features)for(const r of e.features)t.features.push(r);return t}};const g={maxExpectedTimePerBlock:o.default.UZERO};t.Params={encode:(e,t=i.default.Writer.create())=>(e.maxExpectedTimePerBlock.isZero()||t.uint32(8).uint64(e.maxExpectedTimePerBlock),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},g);for(;r.pos>>3==1?o.maxExpectedTimePerBlock=r.uint64():r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},g);return void 0!==e.maxExpectedTimePerBlock&&null!==e.maxExpectedTimePerBlock?t.maxExpectedTimePerBlock=o.default.fromString(e.maxExpectedTimePerBlock):t.maxExpectedTimePerBlock=o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.maxExpectedTimePerBlock&&(t.maxExpectedTimePerBlock=(e.maxExpectedTimePerBlock||o.default.UZERO).toString()),t},fromPartial(e){const t=Object.assign({},g);return void 0!==e.maxExpectedTimePerBlock&&null!==e.maxExpectedTimePerBlock?t.maxExpectedTimePerBlock=e.maxExpectedTimePerBlock:t.maxExpectedTimePerBlock=o.default.UZERO,t}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},20118:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.GrpcWebImpl=t.MsgConnectionOpenConfirmDesc=t.MsgConnectionOpenAckDesc=t.MsgConnectionOpenTryDesc=t.MsgConnectionOpenInitDesc=t.MsgDesc=t.MsgClientImpl=t.MsgConnectionOpenConfirmResponse=t.MsgConnectionOpenConfirm=t.MsgConnectionOpenAckResponse=t.MsgConnectionOpenAck=t.MsgConnectionOpenTryResponse=t.MsgConnectionOpenTry=t.MsgConnectionOpenInitResponse=t.MsgConnectionOpenInit=t.protobufPackage=void 0;const o=n(r(24067)),i=r(66959),a=n(r(63967)),s=r(31631),u=r(17063),c=r(23016),d=r(62200);t.protobufPackage="ibc.core.connection.v1";const l={clientId:"",delayPeriod:o.default.UZERO,signer:""};t.MsgConnectionOpenInit={encode:(e,t=a.default.Writer.create())=>(""!==e.clientId&&t.uint32(10).string(e.clientId),void 0!==e.counterparty&&s.Counterparty.encode(e.counterparty,t.uint32(18).fork()).ldelim(),void 0!==e.version&&s.Version.encode(e.version,t.uint32(26).fork()).ldelim(),e.delayPeriod.isZero()||t.uint32(32).uint64(e.delayPeriod),""!==e.signer&&t.uint32(42).string(e.signer),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},l);for(;r.pos>>3){case 1:o.clientId=r.string();break;case 2:o.counterparty=s.Counterparty.decode(r,r.uint32());break;case 3:o.version=s.Version.decode(r,r.uint32());break;case 4:o.delayPeriod=r.uint64();break;case 5:o.signer=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},l);return void 0!==e.clientId&&null!==e.clientId?t.clientId=String(e.clientId):t.clientId="",void 0!==e.counterparty&&null!==e.counterparty?t.counterparty=s.Counterparty.fromJSON(e.counterparty):t.counterparty=void 0,void 0!==e.version&&null!==e.version?t.version=s.Version.fromJSON(e.version):t.version=void 0,void 0!==e.delayPeriod&&null!==e.delayPeriod?t.delayPeriod=o.default.fromString(e.delayPeriod):t.delayPeriod=o.default.UZERO,void 0!==e.signer&&null!==e.signer?t.signer=String(e.signer):t.signer="",t},toJSON(e){const t={};return void 0!==e.clientId&&(t.clientId=e.clientId),void 0!==e.counterparty&&(t.counterparty=e.counterparty?s.Counterparty.toJSON(e.counterparty):void 0),void 0!==e.version&&(t.version=e.version?s.Version.toJSON(e.version):void 0),void 0!==e.delayPeriod&&(t.delayPeriod=(e.delayPeriod||o.default.UZERO).toString()),void 0!==e.signer&&(t.signer=e.signer),t},fromPartial(e){const t=Object.assign({},l);return void 0!==e.clientId&&null!==e.clientId?t.clientId=e.clientId:t.clientId="",void 0!==e.counterparty&&null!==e.counterparty?t.counterparty=s.Counterparty.fromPartial(e.counterparty):t.counterparty=void 0,void 0!==e.version&&null!==e.version?t.version=s.Version.fromPartial(e.version):t.version=void 0,void 0!==e.delayPeriod&&null!==e.delayPeriod?t.delayPeriod=e.delayPeriod:t.delayPeriod=o.default.UZERO,void 0!==e.signer&&null!==e.signer?t.signer=e.signer:t.signer="",t}};const f={};t.MsgConnectionOpenInitResponse={encode:(e,t=a.default.Writer.create())=>t,decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},f);for(;r.posObject.assign({},f),toJSON:e=>({}),fromPartial:e=>Object.assign({},f)};const h={clientId:"",previousConnectionId:"",delayPeriod:o.default.UZERO,signer:""};t.MsgConnectionOpenTry={encode(e,t=a.default.Writer.create()){""!==e.clientId&&t.uint32(10).string(e.clientId),""!==e.previousConnectionId&&t.uint32(18).string(e.previousConnectionId),void 0!==e.clientState&&u.Any.encode(e.clientState,t.uint32(26).fork()).ldelim(),void 0!==e.counterparty&&s.Counterparty.encode(e.counterparty,t.uint32(34).fork()).ldelim(),e.delayPeriod.isZero()||t.uint32(40).uint64(e.delayPeriod);for(const r of e.counterpartyVersions)s.Version.encode(r,t.uint32(50).fork()).ldelim();return void 0!==e.proofHeight&&c.Height.encode(e.proofHeight,t.uint32(58).fork()).ldelim(),0!==e.proofInit.length&&t.uint32(66).bytes(e.proofInit),0!==e.proofClient.length&&t.uint32(74).bytes(e.proofClient),0!==e.proofConsensus.length&&t.uint32(82).bytes(e.proofConsensus),void 0!==e.consensusHeight&&c.Height.encode(e.consensusHeight,t.uint32(90).fork()).ldelim(),""!==e.signer&&t.uint32(98).string(e.signer),t},decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},h);for(o.counterpartyVersions=[],o.proofInit=new Uint8Array,o.proofClient=new Uint8Array,o.proofConsensus=new Uint8Array;r.pos>>3){case 1:o.clientId=r.string();break;case 2:o.previousConnectionId=r.string();break;case 3:o.clientState=u.Any.decode(r,r.uint32());break;case 4:o.counterparty=s.Counterparty.decode(r,r.uint32());break;case 5:o.delayPeriod=r.uint64();break;case 6:o.counterpartyVersions.push(s.Version.decode(r,r.uint32()));break;case 7:o.proofHeight=c.Height.decode(r,r.uint32());break;case 8:o.proofInit=r.bytes();break;case 9:o.proofClient=r.bytes();break;case 10:o.proofConsensus=r.bytes();break;case 11:o.consensusHeight=c.Height.decode(r,r.uint32());break;case 12:o.signer=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},h);if(t.counterpartyVersions=[],t.proofInit=new Uint8Array,t.proofClient=new Uint8Array,t.proofConsensus=new Uint8Array,void 0!==e.clientId&&null!==e.clientId?t.clientId=String(e.clientId):t.clientId="",void 0!==e.previousConnectionId&&null!==e.previousConnectionId?t.previousConnectionId=String(e.previousConnectionId):t.previousConnectionId="",void 0!==e.clientState&&null!==e.clientState?t.clientState=u.Any.fromJSON(e.clientState):t.clientState=void 0,void 0!==e.counterparty&&null!==e.counterparty?t.counterparty=s.Counterparty.fromJSON(e.counterparty):t.counterparty=void 0,void 0!==e.delayPeriod&&null!==e.delayPeriod?t.delayPeriod=o.default.fromString(e.delayPeriod):t.delayPeriod=o.default.UZERO,void 0!==e.counterpartyVersions&&null!==e.counterpartyVersions)for(const r of e.counterpartyVersions)t.counterpartyVersions.push(s.Version.fromJSON(r));return void 0!==e.proofHeight&&null!==e.proofHeight?t.proofHeight=c.Height.fromJSON(e.proofHeight):t.proofHeight=void 0,void 0!==e.proofInit&&null!==e.proofInit&&(t.proofInit=_(e.proofInit)),void 0!==e.proofClient&&null!==e.proofClient&&(t.proofClient=_(e.proofClient)),void 0!==e.proofConsensus&&null!==e.proofConsensus&&(t.proofConsensus=_(e.proofConsensus)),void 0!==e.consensusHeight&&null!==e.consensusHeight?t.consensusHeight=c.Height.fromJSON(e.consensusHeight):t.consensusHeight=void 0,void 0!==e.signer&&null!==e.signer?t.signer=String(e.signer):t.signer="",t},toJSON(e){const t={};return void 0!==e.clientId&&(t.clientId=e.clientId),void 0!==e.previousConnectionId&&(t.previousConnectionId=e.previousConnectionId),void 0!==e.clientState&&(t.clientState=e.clientState?u.Any.toJSON(e.clientState):void 0),void 0!==e.counterparty&&(t.counterparty=e.counterparty?s.Counterparty.toJSON(e.counterparty):void 0),void 0!==e.delayPeriod&&(t.delayPeriod=(e.delayPeriod||o.default.UZERO).toString()),e.counterpartyVersions?t.counterpartyVersions=e.counterpartyVersions.map((e=>e?s.Version.toJSON(e):void 0)):t.counterpartyVersions=[],void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?c.Height.toJSON(e.proofHeight):void 0),void 0!==e.proofInit&&(t.proofInit=O(void 0!==e.proofInit?e.proofInit:new Uint8Array)),void 0!==e.proofClient&&(t.proofClient=O(void 0!==e.proofClient?e.proofClient:new Uint8Array)),void 0!==e.proofConsensus&&(t.proofConsensus=O(void 0!==e.proofConsensus?e.proofConsensus:new Uint8Array)),void 0!==e.consensusHeight&&(t.consensusHeight=e.consensusHeight?c.Height.toJSON(e.consensusHeight):void 0),void 0!==e.signer&&(t.signer=e.signer),t},fromPartial(e){const t=Object.assign({},h);if(t.counterpartyVersions=[],void 0!==e.clientId&&null!==e.clientId?t.clientId=e.clientId:t.clientId="",void 0!==e.previousConnectionId&&null!==e.previousConnectionId?t.previousConnectionId=e.previousConnectionId:t.previousConnectionId="",void 0!==e.clientState&&null!==e.clientState?t.clientState=u.Any.fromPartial(e.clientState):t.clientState=void 0,void 0!==e.counterparty&&null!==e.counterparty?t.counterparty=s.Counterparty.fromPartial(e.counterparty):t.counterparty=void 0,void 0!==e.delayPeriod&&null!==e.delayPeriod?t.delayPeriod=e.delayPeriod:t.delayPeriod=o.default.UZERO,void 0!==e.counterpartyVersions&&null!==e.counterpartyVersions)for(const r of e.counterpartyVersions)t.counterpartyVersions.push(s.Version.fromPartial(r));return void 0!==e.proofHeight&&null!==e.proofHeight?t.proofHeight=c.Height.fromPartial(e.proofHeight):t.proofHeight=void 0,void 0!==e.proofInit&&null!==e.proofInit?t.proofInit=e.proofInit:t.proofInit=new Uint8Array,void 0!==e.proofClient&&null!==e.proofClient?t.proofClient=e.proofClient:t.proofClient=new Uint8Array,void 0!==e.proofConsensus&&null!==e.proofConsensus?t.proofConsensus=e.proofConsensus:t.proofConsensus=new Uint8Array,void 0!==e.consensusHeight&&null!==e.consensusHeight?t.consensusHeight=c.Height.fromPartial(e.consensusHeight):t.consensusHeight=void 0,void 0!==e.signer&&null!==e.signer?t.signer=e.signer:t.signer="",t}};const p={};t.MsgConnectionOpenTryResponse={encode:(e,t=a.default.Writer.create())=>t,decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},p);for(;r.posObject.assign({},p),toJSON:e=>({}),fromPartial:e=>Object.assign({},p)};const m={connectionId:"",counterpartyConnectionId:"",signer:""};t.MsgConnectionOpenAck={encode:(e,t=a.default.Writer.create())=>(""!==e.connectionId&&t.uint32(10).string(e.connectionId),""!==e.counterpartyConnectionId&&t.uint32(18).string(e.counterpartyConnectionId),void 0!==e.version&&s.Version.encode(e.version,t.uint32(26).fork()).ldelim(),void 0!==e.clientState&&u.Any.encode(e.clientState,t.uint32(34).fork()).ldelim(),void 0!==e.proofHeight&&c.Height.encode(e.proofHeight,t.uint32(42).fork()).ldelim(),0!==e.proofTry.length&&t.uint32(50).bytes(e.proofTry),0!==e.proofClient.length&&t.uint32(58).bytes(e.proofClient),0!==e.proofConsensus.length&&t.uint32(66).bytes(e.proofConsensus),void 0!==e.consensusHeight&&c.Height.encode(e.consensusHeight,t.uint32(74).fork()).ldelim(),""!==e.signer&&t.uint32(82).string(e.signer),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},m);for(o.proofTry=new Uint8Array,o.proofClient=new Uint8Array,o.proofConsensus=new Uint8Array;r.pos>>3){case 1:o.connectionId=r.string();break;case 2:o.counterpartyConnectionId=r.string();break;case 3:o.version=s.Version.decode(r,r.uint32());break;case 4:o.clientState=u.Any.decode(r,r.uint32());break;case 5:o.proofHeight=c.Height.decode(r,r.uint32());break;case 6:o.proofTry=r.bytes();break;case 7:o.proofClient=r.bytes();break;case 8:o.proofConsensus=r.bytes();break;case 9:o.consensusHeight=c.Height.decode(r,r.uint32());break;case 10:o.signer=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},m);return t.proofTry=new Uint8Array,t.proofClient=new Uint8Array,t.proofConsensus=new Uint8Array,void 0!==e.connectionId&&null!==e.connectionId?t.connectionId=String(e.connectionId):t.connectionId="",void 0!==e.counterpartyConnectionId&&null!==e.counterpartyConnectionId?t.counterpartyConnectionId=String(e.counterpartyConnectionId):t.counterpartyConnectionId="",void 0!==e.version&&null!==e.version?t.version=s.Version.fromJSON(e.version):t.version=void 0,void 0!==e.clientState&&null!==e.clientState?t.clientState=u.Any.fromJSON(e.clientState):t.clientState=void 0,void 0!==e.proofHeight&&null!==e.proofHeight?t.proofHeight=c.Height.fromJSON(e.proofHeight):t.proofHeight=void 0,void 0!==e.proofTry&&null!==e.proofTry&&(t.proofTry=_(e.proofTry)),void 0!==e.proofClient&&null!==e.proofClient&&(t.proofClient=_(e.proofClient)),void 0!==e.proofConsensus&&null!==e.proofConsensus&&(t.proofConsensus=_(e.proofConsensus)),void 0!==e.consensusHeight&&null!==e.consensusHeight?t.consensusHeight=c.Height.fromJSON(e.consensusHeight):t.consensusHeight=void 0,void 0!==e.signer&&null!==e.signer?t.signer=String(e.signer):t.signer="",t},toJSON(e){const t={};return void 0!==e.connectionId&&(t.connectionId=e.connectionId),void 0!==e.counterpartyConnectionId&&(t.counterpartyConnectionId=e.counterpartyConnectionId),void 0!==e.version&&(t.version=e.version?s.Version.toJSON(e.version):void 0),void 0!==e.clientState&&(t.clientState=e.clientState?u.Any.toJSON(e.clientState):void 0),void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?c.Height.toJSON(e.proofHeight):void 0),void 0!==e.proofTry&&(t.proofTry=O(void 0!==e.proofTry?e.proofTry:new Uint8Array)),void 0!==e.proofClient&&(t.proofClient=O(void 0!==e.proofClient?e.proofClient:new Uint8Array)),void 0!==e.proofConsensus&&(t.proofConsensus=O(void 0!==e.proofConsensus?e.proofConsensus:new Uint8Array)),void 0!==e.consensusHeight&&(t.consensusHeight=e.consensusHeight?c.Height.toJSON(e.consensusHeight):void 0),void 0!==e.signer&&(t.signer=e.signer),t},fromPartial(e){const t=Object.assign({},m);return void 0!==e.connectionId&&null!==e.connectionId?t.connectionId=e.connectionId:t.connectionId="",void 0!==e.counterpartyConnectionId&&null!==e.counterpartyConnectionId?t.counterpartyConnectionId=e.counterpartyConnectionId:t.counterpartyConnectionId="",void 0!==e.version&&null!==e.version?t.version=s.Version.fromPartial(e.version):t.version=void 0,void 0!==e.clientState&&null!==e.clientState?t.clientState=u.Any.fromPartial(e.clientState):t.clientState=void 0,void 0!==e.proofHeight&&null!==e.proofHeight?t.proofHeight=c.Height.fromPartial(e.proofHeight):t.proofHeight=void 0,void 0!==e.proofTry&&null!==e.proofTry?t.proofTry=e.proofTry:t.proofTry=new Uint8Array,void 0!==e.proofClient&&null!==e.proofClient?t.proofClient=e.proofClient:t.proofClient=new Uint8Array,void 0!==e.proofConsensus&&null!==e.proofConsensus?t.proofConsensus=e.proofConsensus:t.proofConsensus=new Uint8Array,void 0!==e.consensusHeight&&null!==e.consensusHeight?t.consensusHeight=c.Height.fromPartial(e.consensusHeight):t.consensusHeight=void 0,void 0!==e.signer&&null!==e.signer?t.signer=e.signer:t.signer="",t}};const g={};t.MsgConnectionOpenAckResponse={encode:(e,t=a.default.Writer.create())=>t,decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},g);for(;r.posObject.assign({},g),toJSON:e=>({}),fromPartial:e=>Object.assign({},g)};const v={connectionId:"",signer:""};t.MsgConnectionOpenConfirm={encode:(e,t=a.default.Writer.create())=>(""!==e.connectionId&&t.uint32(10).string(e.connectionId),0!==e.proofAck.length&&t.uint32(18).bytes(e.proofAck),void 0!==e.proofHeight&&c.Height.encode(e.proofHeight,t.uint32(26).fork()).ldelim(),""!==e.signer&&t.uint32(34).string(e.signer),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},v);for(o.proofAck=new Uint8Array;r.pos>>3){case 1:o.connectionId=r.string();break;case 2:o.proofAck=r.bytes();break;case 3:o.proofHeight=c.Height.decode(r,r.uint32());break;case 4:o.signer=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},v);return t.proofAck=new Uint8Array,void 0!==e.connectionId&&null!==e.connectionId?t.connectionId=String(e.connectionId):t.connectionId="",void 0!==e.proofAck&&null!==e.proofAck&&(t.proofAck=_(e.proofAck)),void 0!==e.proofHeight&&null!==e.proofHeight?t.proofHeight=c.Height.fromJSON(e.proofHeight):t.proofHeight=void 0,void 0!==e.signer&&null!==e.signer?t.signer=String(e.signer):t.signer="",t},toJSON(e){const t={};return void 0!==e.connectionId&&(t.connectionId=e.connectionId),void 0!==e.proofAck&&(t.proofAck=O(void 0!==e.proofAck?e.proofAck:new Uint8Array)),void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?c.Height.toJSON(e.proofHeight):void 0),void 0!==e.signer&&(t.signer=e.signer),t},fromPartial(e){const t=Object.assign({},v);return void 0!==e.connectionId&&null!==e.connectionId?t.connectionId=e.connectionId:t.connectionId="",void 0!==e.proofAck&&null!==e.proofAck?t.proofAck=e.proofAck:t.proofAck=new Uint8Array,void 0!==e.proofHeight&&null!==e.proofHeight?t.proofHeight=c.Height.fromPartial(e.proofHeight):t.proofHeight=void 0,void 0!==e.signer&&null!==e.signer?t.signer=e.signer:t.signer="",t}};const b={};t.MsgConnectionOpenConfirmResponse={encode:(e,t=a.default.Writer.create())=>t,decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},b);for(;r.posObject.assign({},b),toJSON:e=>({}),fromPartial:e=>Object.assign({},b)},t.MsgClientImpl=class{constructor(e){this.rpc=e,this.ConnectionOpenInit=this.ConnectionOpenInit.bind(this),this.ConnectionOpenTry=this.ConnectionOpenTry.bind(this),this.ConnectionOpenAck=this.ConnectionOpenAck.bind(this),this.ConnectionOpenConfirm=this.ConnectionOpenConfirm.bind(this)}ConnectionOpenInit(e,r){return this.rpc.unary(t.MsgConnectionOpenInitDesc,t.MsgConnectionOpenInit.fromPartial(e),r)}ConnectionOpenTry(e,r){return this.rpc.unary(t.MsgConnectionOpenTryDesc,t.MsgConnectionOpenTry.fromPartial(e),r)}ConnectionOpenAck(e,r){return this.rpc.unary(t.MsgConnectionOpenAckDesc,t.MsgConnectionOpenAck.fromPartial(e),r)}ConnectionOpenConfirm(e,r){return this.rpc.unary(t.MsgConnectionOpenConfirmDesc,t.MsgConnectionOpenConfirm.fromPartial(e),r)}},t.MsgDesc={serviceName:"ibc.core.connection.v1.Msg"},t.MsgConnectionOpenInitDesc={methodName:"ConnectionOpenInit",service:t.MsgDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.MsgConnectionOpenInit.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.MsgConnectionOpenInitResponse.decode(e)),{toObject(){return this}})}},t.MsgConnectionOpenTryDesc={methodName:"ConnectionOpenTry",service:t.MsgDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.MsgConnectionOpenTry.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.MsgConnectionOpenTryResponse.decode(e)),{toObject(){return this}})}},t.MsgConnectionOpenAckDesc={methodName:"ConnectionOpenAck",service:t.MsgDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.MsgConnectionOpenAck.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.MsgConnectionOpenAckResponse.decode(e)),{toObject(){return this}})}},t.MsgConnectionOpenConfirmDesc={methodName:"ConnectionOpenConfirm",service:t.MsgDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.MsgConnectionOpenConfirm.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.MsgConnectionOpenConfirmResponse.decode(e)),{toObject(){return this}})}},t.GrpcWebImpl=class{constructor(e,t){this.host=e,this.options=t}unary(e,t,r){var n;const o=Object.assign(Object.assign({},t),e.requestType),a=r&&this.options.metadata?new d.BrowserHeaders(Object.assign(Object.assign({},null===(n=this.options)||void 0===n?void 0:n.metadata.headersMap),null==r?void 0:r.headersMap)):r||this.options.metadata;return new Promise(((t,r)=>{i.grpc.unary(e,{request:o,host:this.host,metadata:a,transport:this.options.transport,debug:this.options.debug,onEnd:function(e){if(e.status===i.grpc.Code.OK)t(e.message);else{const t=new Error(e.statusMessage);t.code=e.status,t.metadata=e.trailers,r(t)}}})}))}};var y=(()=>{if(void 0!==y)return y;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==r.g)return r.g;throw"Unable to locate global object"})();const w=y.atob||(e=>y.Buffer.from(e,"base64").toString("binary"));function _(e){const t=w(e),r=new Uint8Array(t.length);for(let e=0;ey.Buffer.from(e,"binary").toString("base64"));function O(e){const t=[];for(const r of e)t.push(String.fromCharCode(r));return S(t.join(""))}a.default.util.Long!==o.default&&(a.default.util.Long=o.default,a.default.configure())},34028:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Fraction=t.Header=t.Misbehaviour=t.ConsensusState=t.ClientState=t.protobufPackage=void 0;const o=n(r(24067)),i=n(r(63967)),a=r(54462),s=r(23016),u=r(24147),c=r(29387),d=r(694),l=r(46759),f=r(86068);t.protobufPackage="ibc.lightclients.tendermint.v1";const h={chainId:"",upgradePath:"",allowUpdateAfterExpiry:!1,allowUpdateAfterMisbehaviour:!1};t.ClientState={encode(e,r=i.default.Writer.create()){""!==e.chainId&&r.uint32(10).string(e.chainId),void 0!==e.trustLevel&&t.Fraction.encode(e.trustLevel,r.uint32(18).fork()).ldelim(),void 0!==e.trustingPeriod&&a.Duration.encode(e.trustingPeriod,r.uint32(26).fork()).ldelim(),void 0!==e.unbondingPeriod&&a.Duration.encode(e.unbondingPeriod,r.uint32(34).fork()).ldelim(),void 0!==e.maxClockDrift&&a.Duration.encode(e.maxClockDrift,r.uint32(42).fork()).ldelim(),void 0!==e.frozenHeight&&s.Height.encode(e.frozenHeight,r.uint32(50).fork()).ldelim(),void 0!==e.latestHeight&&s.Height.encode(e.latestHeight,r.uint32(58).fork()).ldelim();for(const t of e.proofSpecs)f.ProofSpec.encode(t,r.uint32(66).fork()).ldelim();for(const t of e.upgradePath)r.uint32(74).string(t);return!0===e.allowUpdateAfterExpiry&&r.uint32(80).bool(e.allowUpdateAfterExpiry),!0===e.allowUpdateAfterMisbehaviour&&r.uint32(88).bool(e.allowUpdateAfterMisbehaviour),r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const u=Object.assign({},h);for(u.proofSpecs=[],u.upgradePath=[];n.pos>>3){case 1:u.chainId=n.string();break;case 2:u.trustLevel=t.Fraction.decode(n,n.uint32());break;case 3:u.trustingPeriod=a.Duration.decode(n,n.uint32());break;case 4:u.unbondingPeriod=a.Duration.decode(n,n.uint32());break;case 5:u.maxClockDrift=a.Duration.decode(n,n.uint32());break;case 6:u.frozenHeight=s.Height.decode(n,n.uint32());break;case 7:u.latestHeight=s.Height.decode(n,n.uint32());break;case 8:u.proofSpecs.push(f.ProofSpec.decode(n,n.uint32()));break;case 9:u.upgradePath.push(n.string());break;case 10:u.allowUpdateAfterExpiry=n.bool();break;case 11:u.allowUpdateAfterMisbehaviour=n.bool();break;default:n.skipType(7&e)}}return u},fromJSON(e){const r=Object.assign({},h);if(r.proofSpecs=[],r.upgradePath=[],void 0!==e.chainId&&null!==e.chainId?r.chainId=String(e.chainId):r.chainId="",void 0!==e.trustLevel&&null!==e.trustLevel?r.trustLevel=t.Fraction.fromJSON(e.trustLevel):r.trustLevel=void 0,void 0!==e.trustingPeriod&&null!==e.trustingPeriod?r.trustingPeriod=a.Duration.fromJSON(e.trustingPeriod):r.trustingPeriod=void 0,void 0!==e.unbondingPeriod&&null!==e.unbondingPeriod?r.unbondingPeriod=a.Duration.fromJSON(e.unbondingPeriod):r.unbondingPeriod=void 0,void 0!==e.maxClockDrift&&null!==e.maxClockDrift?r.maxClockDrift=a.Duration.fromJSON(e.maxClockDrift):r.maxClockDrift=void 0,void 0!==e.frozenHeight&&null!==e.frozenHeight?r.frozenHeight=s.Height.fromJSON(e.frozenHeight):r.frozenHeight=void 0,void 0!==e.latestHeight&&null!==e.latestHeight?r.latestHeight=s.Height.fromJSON(e.latestHeight):r.latestHeight=void 0,void 0!==e.proofSpecs&&null!==e.proofSpecs)for(const t of e.proofSpecs)r.proofSpecs.push(f.ProofSpec.fromJSON(t));if(void 0!==e.upgradePath&&null!==e.upgradePath)for(const t of e.upgradePath)r.upgradePath.push(String(t));return void 0!==e.allowUpdateAfterExpiry&&null!==e.allowUpdateAfterExpiry?r.allowUpdateAfterExpiry=Boolean(e.allowUpdateAfterExpiry):r.allowUpdateAfterExpiry=!1,void 0!==e.allowUpdateAfterMisbehaviour&&null!==e.allowUpdateAfterMisbehaviour?r.allowUpdateAfterMisbehaviour=Boolean(e.allowUpdateAfterMisbehaviour):r.allowUpdateAfterMisbehaviour=!1,r},toJSON(e){const r={};return void 0!==e.chainId&&(r.chainId=e.chainId),void 0!==e.trustLevel&&(r.trustLevel=e.trustLevel?t.Fraction.toJSON(e.trustLevel):void 0),void 0!==e.trustingPeriod&&(r.trustingPeriod=e.trustingPeriod?a.Duration.toJSON(e.trustingPeriod):void 0),void 0!==e.unbondingPeriod&&(r.unbondingPeriod=e.unbondingPeriod?a.Duration.toJSON(e.unbondingPeriod):void 0),void 0!==e.maxClockDrift&&(r.maxClockDrift=e.maxClockDrift?a.Duration.toJSON(e.maxClockDrift):void 0),void 0!==e.frozenHeight&&(r.frozenHeight=e.frozenHeight?s.Height.toJSON(e.frozenHeight):void 0),void 0!==e.latestHeight&&(r.latestHeight=e.latestHeight?s.Height.toJSON(e.latestHeight):void 0),e.proofSpecs?r.proofSpecs=e.proofSpecs.map((e=>e?f.ProofSpec.toJSON(e):void 0)):r.proofSpecs=[],e.upgradePath?r.upgradePath=e.upgradePath.map((e=>e)):r.upgradePath=[],void 0!==e.allowUpdateAfterExpiry&&(r.allowUpdateAfterExpiry=e.allowUpdateAfterExpiry),void 0!==e.allowUpdateAfterMisbehaviour&&(r.allowUpdateAfterMisbehaviour=e.allowUpdateAfterMisbehaviour),r},fromPartial(e){const r=Object.assign({},h);if(r.proofSpecs=[],r.upgradePath=[],void 0!==e.chainId&&null!==e.chainId?r.chainId=e.chainId:r.chainId="",void 0!==e.trustLevel&&null!==e.trustLevel?r.trustLevel=t.Fraction.fromPartial(e.trustLevel):r.trustLevel=void 0,void 0!==e.trustingPeriod&&null!==e.trustingPeriod?r.trustingPeriod=a.Duration.fromPartial(e.trustingPeriod):r.trustingPeriod=void 0,void 0!==e.unbondingPeriod&&null!==e.unbondingPeriod?r.unbondingPeriod=a.Duration.fromPartial(e.unbondingPeriod):r.unbondingPeriod=void 0,void 0!==e.maxClockDrift&&null!==e.maxClockDrift?r.maxClockDrift=a.Duration.fromPartial(e.maxClockDrift):r.maxClockDrift=void 0,void 0!==e.frozenHeight&&null!==e.frozenHeight?r.frozenHeight=s.Height.fromPartial(e.frozenHeight):r.frozenHeight=void 0,void 0!==e.latestHeight&&null!==e.latestHeight?r.latestHeight=s.Height.fromPartial(e.latestHeight):r.latestHeight=void 0,void 0!==e.proofSpecs&&null!==e.proofSpecs)for(const t of e.proofSpecs)r.proofSpecs.push(f.ProofSpec.fromPartial(t));if(void 0!==e.upgradePath&&null!==e.upgradePath)for(const t of e.upgradePath)r.upgradePath.push(t);return void 0!==e.allowUpdateAfterExpiry&&null!==e.allowUpdateAfterExpiry?r.allowUpdateAfterExpiry=e.allowUpdateAfterExpiry:r.allowUpdateAfterExpiry=!1,void 0!==e.allowUpdateAfterMisbehaviour&&null!==e.allowUpdateAfterMisbehaviour?r.allowUpdateAfterMisbehaviour=e.allowUpdateAfterMisbehaviour:r.allowUpdateAfterMisbehaviour=!1,r}};const p={};t.ConsensusState={encode:(e,t=i.default.Writer.create())=>{return void 0!==e.timestamp&&l.Timestamp.encode((r=e.timestamp,{seconds:(n=r.getTime()/1e3,o.default.fromNumber(n)),nanos:r.getTime()%1e3*1e6}),t.uint32(10).fork()).ldelim(),void 0!==e.root&&u.MerkleRoot.encode(e.root,t.uint32(18).fork()).ldelim(),0!==e.nextValidatorsHash.length&&t.uint32(26).bytes(e.nextValidatorsHash),t;var r,n},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},p);for(o.nextValidatorsHash=new Uint8Array;r.pos>>3){case 1:o.timestamp=_(l.Timestamp.decode(r,r.uint32()));break;case 2:o.root=u.MerkleRoot.decode(r,r.uint32());break;case 3:o.nextValidatorsHash=r.bytes();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},p);var r;return t.nextValidatorsHash=new Uint8Array,void 0!==e.timestamp&&null!==e.timestamp?t.timestamp=(r=e.timestamp)instanceof Date?r:"string"==typeof r?new Date(r):_(l.Timestamp.fromJSON(r)):t.timestamp=void 0,void 0!==e.root&&null!==e.root?t.root=u.MerkleRoot.fromJSON(e.root):t.root=void 0,void 0!==e.nextValidatorsHash&&null!==e.nextValidatorsHash&&(t.nextValidatorsHash=function(e){const t=y(e),r=new Uint8Array(t.length);for(let e=0;e(""!==e.clientId&&r.uint32(10).string(e.clientId),void 0!==e.header1&&t.Header.encode(e.header1,r.uint32(18).fork()).ldelim(),void 0!==e.header2&&t.Header.encode(e.header2,r.uint32(26).fork()).ldelim(),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},m);for(;n.pos>>3){case 1:a.clientId=n.string();break;case 2:a.header1=t.Header.decode(n,n.uint32());break;case 3:a.header2=t.Header.decode(n,n.uint32());break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},m);return void 0!==e.clientId&&null!==e.clientId?r.clientId=String(e.clientId):r.clientId="",void 0!==e.header1&&null!==e.header1?r.header1=t.Header.fromJSON(e.header1):r.header1=void 0,void 0!==e.header2&&null!==e.header2?r.header2=t.Header.fromJSON(e.header2):r.header2=void 0,r},toJSON(e){const r={};return void 0!==e.clientId&&(r.clientId=e.clientId),void 0!==e.header1&&(r.header1=e.header1?t.Header.toJSON(e.header1):void 0),void 0!==e.header2&&(r.header2=e.header2?t.Header.toJSON(e.header2):void 0),r},fromPartial(e){const r=Object.assign({},m);return void 0!==e.clientId&&null!==e.clientId?r.clientId=e.clientId:r.clientId="",void 0!==e.header1&&null!==e.header1?r.header1=t.Header.fromPartial(e.header1):r.header1=void 0,void 0!==e.header2&&null!==e.header2?r.header2=t.Header.fromPartial(e.header2):r.header2=void 0,r}};const g={};t.Header={encode:(e,t=i.default.Writer.create())=>(void 0!==e.signedHeader&&c.SignedHeader.encode(e.signedHeader,t.uint32(10).fork()).ldelim(),void 0!==e.validatorSet&&d.ValidatorSet.encode(e.validatorSet,t.uint32(18).fork()).ldelim(),void 0!==e.trustedHeight&&s.Height.encode(e.trustedHeight,t.uint32(26).fork()).ldelim(),void 0!==e.trustedValidators&&d.ValidatorSet.encode(e.trustedValidators,t.uint32(34).fork()).ldelim(),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},g);for(;r.pos>>3){case 1:o.signedHeader=c.SignedHeader.decode(r,r.uint32());break;case 2:o.validatorSet=d.ValidatorSet.decode(r,r.uint32());break;case 3:o.trustedHeight=s.Height.decode(r,r.uint32());break;case 4:o.trustedValidators=d.ValidatorSet.decode(r,r.uint32());break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},g);return void 0!==e.signedHeader&&null!==e.signedHeader?t.signedHeader=c.SignedHeader.fromJSON(e.signedHeader):t.signedHeader=void 0,void 0!==e.validatorSet&&null!==e.validatorSet?t.validatorSet=d.ValidatorSet.fromJSON(e.validatorSet):t.validatorSet=void 0,void 0!==e.trustedHeight&&null!==e.trustedHeight?t.trustedHeight=s.Height.fromJSON(e.trustedHeight):t.trustedHeight=void 0,void 0!==e.trustedValidators&&null!==e.trustedValidators?t.trustedValidators=d.ValidatorSet.fromJSON(e.trustedValidators):t.trustedValidators=void 0,t},toJSON(e){const t={};return void 0!==e.signedHeader&&(t.signedHeader=e.signedHeader?c.SignedHeader.toJSON(e.signedHeader):void 0),void 0!==e.validatorSet&&(t.validatorSet=e.validatorSet?d.ValidatorSet.toJSON(e.validatorSet):void 0),void 0!==e.trustedHeight&&(t.trustedHeight=e.trustedHeight?s.Height.toJSON(e.trustedHeight):void 0),void 0!==e.trustedValidators&&(t.trustedValidators=e.trustedValidators?d.ValidatorSet.toJSON(e.trustedValidators):void 0),t},fromPartial(e){const t=Object.assign({},g);return void 0!==e.signedHeader&&null!==e.signedHeader?t.signedHeader=c.SignedHeader.fromPartial(e.signedHeader):t.signedHeader=void 0,void 0!==e.validatorSet&&null!==e.validatorSet?t.validatorSet=d.ValidatorSet.fromPartial(e.validatorSet):t.validatorSet=void 0,void 0!==e.trustedHeight&&null!==e.trustedHeight?t.trustedHeight=s.Height.fromPartial(e.trustedHeight):t.trustedHeight=void 0,void 0!==e.trustedValidators&&null!==e.trustedValidators?t.trustedValidators=d.ValidatorSet.fromPartial(e.trustedValidators):t.trustedValidators=void 0,t}};const v={numerator:o.default.UZERO,denominator:o.default.UZERO};t.Fraction={encode:(e,t=i.default.Writer.create())=>(e.numerator.isZero()||t.uint32(8).uint64(e.numerator),e.denominator.isZero()||t.uint32(16).uint64(e.denominator),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},v);for(;r.pos>>3){case 1:o.numerator=r.uint64();break;case 2:o.denominator=r.uint64();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},v);return void 0!==e.numerator&&null!==e.numerator?t.numerator=o.default.fromString(e.numerator):t.numerator=o.default.UZERO,void 0!==e.denominator&&null!==e.denominator?t.denominator=o.default.fromString(e.denominator):t.denominator=o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.numerator&&(t.numerator=(e.numerator||o.default.UZERO).toString()),void 0!==e.denominator&&(t.denominator=(e.denominator||o.default.UZERO).toString()),t},fromPartial(e){const t=Object.assign({},v);return void 0!==e.numerator&&null!==e.numerator?t.numerator=e.numerator:t.numerator=o.default.UZERO,void 0!==e.denominator&&null!==e.denominator?t.denominator=e.denominator:t.denominator=o.default.UZERO,t}};var b=(()=>{if(void 0!==b)return b;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==r.g)return r.g;throw"Unable to locate global object"})();const y=b.atob||(e=>b.Buffer.from(e,"base64").toString("binary")),w=b.btoa||(e=>b.Buffer.from(e,"binary").toString("base64"));function _(e){let t=1e3*e.seconds.toNumber();return t+=e.nanos/1e6,new Date(t)}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},54305:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.GrpcWebImpl=t.ABCIApplicationApplySnapshotChunkDesc=t.ABCIApplicationLoadSnapshotChunkDesc=t.ABCIApplicationOfferSnapshotDesc=t.ABCIApplicationListSnapshotsDesc=t.ABCIApplicationEndBlockDesc=t.ABCIApplicationBeginBlockDesc=t.ABCIApplicationInitChainDesc=t.ABCIApplicationCommitDesc=t.ABCIApplicationQueryDesc=t.ABCIApplicationCheckTxDesc=t.ABCIApplicationDeliverTxDesc=t.ABCIApplicationSetOptionDesc=t.ABCIApplicationInfoDesc=t.ABCIApplicationFlushDesc=t.ABCIApplicationEchoDesc=t.ABCIApplicationDesc=t.ABCIApplicationClientImpl=t.Snapshot=t.Evidence=t.VoteInfo=t.ValidatorUpdate=t.Validator=t.TxResult=t.EventAttribute=t.Event=t.LastCommitInfo=t.BlockParams=t.ConsensusParams=t.ResponseApplySnapshotChunk=t.ResponseLoadSnapshotChunk=t.ResponseOfferSnapshot=t.ResponseListSnapshots=t.ResponseCommit=t.ResponseEndBlock=t.ResponseDeliverTx=t.ResponseCheckTx=t.ResponseBeginBlock=t.ResponseQuery=t.ResponseInitChain=t.ResponseSetOption=t.ResponseInfo=t.ResponseFlush=t.ResponseEcho=t.ResponseException=t.Response=t.RequestApplySnapshotChunk=t.RequestLoadSnapshotChunk=t.RequestOfferSnapshot=t.RequestListSnapshots=t.RequestCommit=t.RequestEndBlock=t.RequestDeliverTx=t.RequestCheckTx=t.RequestBeginBlock=t.RequestQuery=t.RequestInitChain=t.RequestSetOption=t.RequestInfo=t.RequestFlush=t.RequestEcho=t.Request=t.responseApplySnapshotChunk_ResultToJSON=t.responseApplySnapshotChunk_ResultFromJSON=t.ResponseApplySnapshotChunk_Result=t.responseOfferSnapshot_ResultToJSON=t.responseOfferSnapshot_ResultFromJSON=t.ResponseOfferSnapshot_Result=t.evidenceTypeToJSON=t.evidenceTypeFromJSON=t.EvidenceType=t.checkTxTypeToJSON=t.checkTxTypeFromJSON=t.CheckTxType=t.protobufPackage=void 0;const o=n(r(24067)),i=r(66959),a=n(r(63967)),s=r(29387),u=r(88766),c=r(97661),d=r(82107),l=r(62200),f=r(46759);var h,p,m,g;function v(e){switch(e){case 0:case"NEW":return h.NEW;case 1:case"RECHECK":return h.RECHECK;default:return h.UNRECOGNIZED}}function b(e){switch(e){case h.NEW:return"NEW";case h.RECHECK:return"RECHECK";default:return"UNKNOWN"}}function y(e){switch(e){case 0:case"UNKNOWN":return p.UNKNOWN;case 1:case"DUPLICATE_VOTE":return p.DUPLICATE_VOTE;case 2:case"LIGHT_CLIENT_ATTACK":return p.LIGHT_CLIENT_ATTACK;default:return p.UNRECOGNIZED}}function w(e){switch(e){case p.UNKNOWN:return"UNKNOWN";case p.DUPLICATE_VOTE:return"DUPLICATE_VOTE";case p.LIGHT_CLIENT_ATTACK:return"LIGHT_CLIENT_ATTACK";default:return"UNKNOWN"}}function _(e){switch(e){case 0:case"UNKNOWN":return m.UNKNOWN;case 1:case"ACCEPT":return m.ACCEPT;case 2:case"ABORT":return m.ABORT;case 3:case"REJECT":return m.REJECT;case 4:case"REJECT_FORMAT":return m.REJECT_FORMAT;case 5:case"REJECT_SENDER":return m.REJECT_SENDER;default:return m.UNRECOGNIZED}}function S(e){switch(e){case m.UNKNOWN:return"UNKNOWN";case m.ACCEPT:return"ACCEPT";case m.ABORT:return"ABORT";case m.REJECT:return"REJECT";case m.REJECT_FORMAT:return"REJECT_FORMAT";case m.REJECT_SENDER:return"REJECT_SENDER";default:return"UNKNOWN"}}function O(e){switch(e){case 0:case"UNKNOWN":return g.UNKNOWN;case 1:case"ACCEPT":return g.ACCEPT;case 2:case"ABORT":return g.ABORT;case 3:case"RETRY":return g.RETRY;case 4:case"RETRY_SNAPSHOT":return g.RETRY_SNAPSHOT;case 5:case"REJECT_SNAPSHOT":return g.REJECT_SNAPSHOT;default:return g.UNRECOGNIZED}}function k(e){switch(e){case g.UNKNOWN:return"UNKNOWN";case g.ACCEPT:return"ACCEPT";case g.ABORT:return"ABORT";case g.RETRY:return"RETRY";case g.RETRY_SNAPSHOT:return"RETRY_SNAPSHOT";case g.REJECT_SNAPSHOT:return"REJECT_SNAPSHOT";default:return"UNKNOWN"}}t.protobufPackage="tendermint.abci",function(e){e[e.NEW=0]="NEW",e[e.RECHECK=1]="RECHECK",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(h=t.CheckTxType||(t.CheckTxType={})),t.checkTxTypeFromJSON=v,t.checkTxTypeToJSON=b,function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.DUPLICATE_VOTE=1]="DUPLICATE_VOTE",e[e.LIGHT_CLIENT_ATTACK=2]="LIGHT_CLIENT_ATTACK",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(p=t.EvidenceType||(t.EvidenceType={})),t.evidenceTypeFromJSON=y,t.evidenceTypeToJSON=w,function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.ACCEPT=1]="ACCEPT",e[e.ABORT=2]="ABORT",e[e.REJECT=3]="REJECT",e[e.REJECT_FORMAT=4]="REJECT_FORMAT",e[e.REJECT_SENDER=5]="REJECT_SENDER",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(m=t.ResponseOfferSnapshot_Result||(t.ResponseOfferSnapshot_Result={})),t.responseOfferSnapshot_ResultFromJSON=_,t.responseOfferSnapshot_ResultToJSON=S,function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.ACCEPT=1]="ACCEPT",e[e.ABORT=2]="ABORT",e[e.RETRY=3]="RETRY",e[e.RETRY_SNAPSHOT=4]="RETRY_SNAPSHOT",e[e.REJECT_SNAPSHOT=5]="REJECT_SNAPSHOT",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(g=t.ResponseApplySnapshotChunk_Result||(t.ResponseApplySnapshotChunk_Result={})),t.responseApplySnapshotChunk_ResultFromJSON=O,t.responseApplySnapshotChunk_ResultToJSON=k;const A={};t.Request={encode:(e,r=a.default.Writer.create())=>(void 0!==e.echo&&t.RequestEcho.encode(e.echo,r.uint32(10).fork()).ldelim(),void 0!==e.flush&&t.RequestFlush.encode(e.flush,r.uint32(18).fork()).ldelim(),void 0!==e.info&&t.RequestInfo.encode(e.info,r.uint32(26).fork()).ldelim(),void 0!==e.setOption&&t.RequestSetOption.encode(e.setOption,r.uint32(34).fork()).ldelim(),void 0!==e.initChain&&t.RequestInitChain.encode(e.initChain,r.uint32(42).fork()).ldelim(),void 0!==e.query&&t.RequestQuery.encode(e.query,r.uint32(50).fork()).ldelim(),void 0!==e.beginBlock&&t.RequestBeginBlock.encode(e.beginBlock,r.uint32(58).fork()).ldelim(),void 0!==e.checkTx&&t.RequestCheckTx.encode(e.checkTx,r.uint32(66).fork()).ldelim(),void 0!==e.deliverTx&&t.RequestDeliverTx.encode(e.deliverTx,r.uint32(74).fork()).ldelim(),void 0!==e.endBlock&&t.RequestEndBlock.encode(e.endBlock,r.uint32(82).fork()).ldelim(),void 0!==e.commit&&t.RequestCommit.encode(e.commit,r.uint32(90).fork()).ldelim(),void 0!==e.listSnapshots&&t.RequestListSnapshots.encode(e.listSnapshots,r.uint32(98).fork()).ldelim(),void 0!==e.offerSnapshot&&t.RequestOfferSnapshot.encode(e.offerSnapshot,r.uint32(106).fork()).ldelim(),void 0!==e.loadSnapshotChunk&&t.RequestLoadSnapshotChunk.encode(e.loadSnapshotChunk,r.uint32(114).fork()).ldelim(),void 0!==e.applySnapshotChunk&&t.RequestApplySnapshotChunk.encode(e.applySnapshotChunk,r.uint32(122).fork()).ldelim(),r),decode(e,r){const n=e instanceof a.default.Reader?e:new a.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const i=Object.assign({},A);for(;n.pos>>3){case 1:i.echo=t.RequestEcho.decode(n,n.uint32());break;case 2:i.flush=t.RequestFlush.decode(n,n.uint32());break;case 3:i.info=t.RequestInfo.decode(n,n.uint32());break;case 4:i.setOption=t.RequestSetOption.decode(n,n.uint32());break;case 5:i.initChain=t.RequestInitChain.decode(n,n.uint32());break;case 6:i.query=t.RequestQuery.decode(n,n.uint32());break;case 7:i.beginBlock=t.RequestBeginBlock.decode(n,n.uint32());break;case 8:i.checkTx=t.RequestCheckTx.decode(n,n.uint32());break;case 9:i.deliverTx=t.RequestDeliverTx.decode(n,n.uint32());break;case 10:i.endBlock=t.RequestEndBlock.decode(n,n.uint32());break;case 11:i.commit=t.RequestCommit.decode(n,n.uint32());break;case 12:i.listSnapshots=t.RequestListSnapshots.decode(n,n.uint32());break;case 13:i.offerSnapshot=t.RequestOfferSnapshot.decode(n,n.uint32());break;case 14:i.loadSnapshotChunk=t.RequestLoadSnapshotChunk.decode(n,n.uint32());break;case 15:i.applySnapshotChunk=t.RequestApplySnapshotChunk.decode(n,n.uint32());break;default:n.skipType(7&e)}}return i},fromJSON(e){const r=Object.assign({},A);return void 0!==e.echo&&null!==e.echo?r.echo=t.RequestEcho.fromJSON(e.echo):r.echo=void 0,void 0!==e.flush&&null!==e.flush?r.flush=t.RequestFlush.fromJSON(e.flush):r.flush=void 0,void 0!==e.info&&null!==e.info?r.info=t.RequestInfo.fromJSON(e.info):r.info=void 0,void 0!==e.setOption&&null!==e.setOption?r.setOption=t.RequestSetOption.fromJSON(e.setOption):r.setOption=void 0,void 0!==e.initChain&&null!==e.initChain?r.initChain=t.RequestInitChain.fromJSON(e.initChain):r.initChain=void 0,void 0!==e.query&&null!==e.query?r.query=t.RequestQuery.fromJSON(e.query):r.query=void 0,void 0!==e.beginBlock&&null!==e.beginBlock?r.beginBlock=t.RequestBeginBlock.fromJSON(e.beginBlock):r.beginBlock=void 0,void 0!==e.checkTx&&null!==e.checkTx?r.checkTx=t.RequestCheckTx.fromJSON(e.checkTx):r.checkTx=void 0,void 0!==e.deliverTx&&null!==e.deliverTx?r.deliverTx=t.RequestDeliverTx.fromJSON(e.deliverTx):r.deliverTx=void 0,void 0!==e.endBlock&&null!==e.endBlock?r.endBlock=t.RequestEndBlock.fromJSON(e.endBlock):r.endBlock=void 0,void 0!==e.commit&&null!==e.commit?r.commit=t.RequestCommit.fromJSON(e.commit):r.commit=void 0,void 0!==e.listSnapshots&&null!==e.listSnapshots?r.listSnapshots=t.RequestListSnapshots.fromJSON(e.listSnapshots):r.listSnapshots=void 0,void 0!==e.offerSnapshot&&null!==e.offerSnapshot?r.offerSnapshot=t.RequestOfferSnapshot.fromJSON(e.offerSnapshot):r.offerSnapshot=void 0,void 0!==e.loadSnapshotChunk&&null!==e.loadSnapshotChunk?r.loadSnapshotChunk=t.RequestLoadSnapshotChunk.fromJSON(e.loadSnapshotChunk):r.loadSnapshotChunk=void 0,void 0!==e.applySnapshotChunk&&null!==e.applySnapshotChunk?r.applySnapshotChunk=t.RequestApplySnapshotChunk.fromJSON(e.applySnapshotChunk):r.applySnapshotChunk=void 0,r},toJSON(e){const r={};return void 0!==e.echo&&(r.echo=e.echo?t.RequestEcho.toJSON(e.echo):void 0),void 0!==e.flush&&(r.flush=e.flush?t.RequestFlush.toJSON(e.flush):void 0),void 0!==e.info&&(r.info=e.info?t.RequestInfo.toJSON(e.info):void 0),void 0!==e.setOption&&(r.setOption=e.setOption?t.RequestSetOption.toJSON(e.setOption):void 0),void 0!==e.initChain&&(r.initChain=e.initChain?t.RequestInitChain.toJSON(e.initChain):void 0),void 0!==e.query&&(r.query=e.query?t.RequestQuery.toJSON(e.query):void 0),void 0!==e.beginBlock&&(r.beginBlock=e.beginBlock?t.RequestBeginBlock.toJSON(e.beginBlock):void 0),void 0!==e.checkTx&&(r.checkTx=e.checkTx?t.RequestCheckTx.toJSON(e.checkTx):void 0),void 0!==e.deliverTx&&(r.deliverTx=e.deliverTx?t.RequestDeliverTx.toJSON(e.deliverTx):void 0),void 0!==e.endBlock&&(r.endBlock=e.endBlock?t.RequestEndBlock.toJSON(e.endBlock):void 0),void 0!==e.commit&&(r.commit=e.commit?t.RequestCommit.toJSON(e.commit):void 0),void 0!==e.listSnapshots&&(r.listSnapshots=e.listSnapshots?t.RequestListSnapshots.toJSON(e.listSnapshots):void 0),void 0!==e.offerSnapshot&&(r.offerSnapshot=e.offerSnapshot?t.RequestOfferSnapshot.toJSON(e.offerSnapshot):void 0),void 0!==e.loadSnapshotChunk&&(r.loadSnapshotChunk=e.loadSnapshotChunk?t.RequestLoadSnapshotChunk.toJSON(e.loadSnapshotChunk):void 0),void 0!==e.applySnapshotChunk&&(r.applySnapshotChunk=e.applySnapshotChunk?t.RequestApplySnapshotChunk.toJSON(e.applySnapshotChunk):void 0),r},fromPartial(e){const r=Object.assign({},A);return void 0!==e.echo&&null!==e.echo?r.echo=t.RequestEcho.fromPartial(e.echo):r.echo=void 0,void 0!==e.flush&&null!==e.flush?r.flush=t.RequestFlush.fromPartial(e.flush):r.flush=void 0,void 0!==e.info&&null!==e.info?r.info=t.RequestInfo.fromPartial(e.info):r.info=void 0,void 0!==e.setOption&&null!==e.setOption?r.setOption=t.RequestSetOption.fromPartial(e.setOption):r.setOption=void 0,void 0!==e.initChain&&null!==e.initChain?r.initChain=t.RequestInitChain.fromPartial(e.initChain):r.initChain=void 0,void 0!==e.query&&null!==e.query?r.query=t.RequestQuery.fromPartial(e.query):r.query=void 0,void 0!==e.beginBlock&&null!==e.beginBlock?r.beginBlock=t.RequestBeginBlock.fromPartial(e.beginBlock):r.beginBlock=void 0,void 0!==e.checkTx&&null!==e.checkTx?r.checkTx=t.RequestCheckTx.fromPartial(e.checkTx):r.checkTx=void 0,void 0!==e.deliverTx&&null!==e.deliverTx?r.deliverTx=t.RequestDeliverTx.fromPartial(e.deliverTx):r.deliverTx=void 0,void 0!==e.endBlock&&null!==e.endBlock?r.endBlock=t.RequestEndBlock.fromPartial(e.endBlock):r.endBlock=void 0,void 0!==e.commit&&null!==e.commit?r.commit=t.RequestCommit.fromPartial(e.commit):r.commit=void 0,void 0!==e.listSnapshots&&null!==e.listSnapshots?r.listSnapshots=t.RequestListSnapshots.fromPartial(e.listSnapshots):r.listSnapshots=void 0,void 0!==e.offerSnapshot&&null!==e.offerSnapshot?r.offerSnapshot=t.RequestOfferSnapshot.fromPartial(e.offerSnapshot):r.offerSnapshot=void 0,void 0!==e.loadSnapshotChunk&&null!==e.loadSnapshotChunk?r.loadSnapshotChunk=t.RequestLoadSnapshotChunk.fromPartial(e.loadSnapshotChunk):r.loadSnapshotChunk=void 0,void 0!==e.applySnapshotChunk&&null!==e.applySnapshotChunk?r.applySnapshotChunk=t.RequestApplySnapshotChunk.fromPartial(e.applySnapshotChunk):r.applySnapshotChunk=void 0,r}};const P={message:""};t.RequestEcho={encode:(e,t=a.default.Writer.create())=>(""!==e.message&&t.uint32(10).string(e.message),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},P);for(;r.pos>>3==1?o.message=r.string():r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},P);return void 0!==e.message&&null!==e.message?t.message=String(e.message):t.message="",t},toJSON(e){const t={};return void 0!==e.message&&(t.message=e.message),t},fromPartial(e){const t=Object.assign({},P);return void 0!==e.message&&null!==e.message?t.message=e.message:t.message="",t}};const M={};t.RequestFlush={encode:(e,t=a.default.Writer.create())=>t,decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},M);for(;r.posObject.assign({},M),toJSON:e=>({}),fromPartial:e=>Object.assign({},M)};const E={version:"",blockVersion:o.default.UZERO,p2pVersion:o.default.UZERO};t.RequestInfo={encode:(e,t=a.default.Writer.create())=>(""!==e.version&&t.uint32(10).string(e.version),e.blockVersion.isZero()||t.uint32(16).uint64(e.blockVersion),e.p2pVersion.isZero()||t.uint32(24).uint64(e.p2pVersion),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},E);for(;r.pos>>3){case 1:o.version=r.string();break;case 2:o.blockVersion=r.uint64();break;case 3:o.p2pVersion=r.uint64();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},E);return void 0!==e.version&&null!==e.version?t.version=String(e.version):t.version="",void 0!==e.blockVersion&&null!==e.blockVersion?t.blockVersion=o.default.fromString(e.blockVersion):t.blockVersion=o.default.UZERO,void 0!==e.p2pVersion&&null!==e.p2pVersion?t.p2pVersion=o.default.fromString(e.p2pVersion):t.p2pVersion=o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.version&&(t.version=e.version),void 0!==e.blockVersion&&(t.blockVersion=(e.blockVersion||o.default.UZERO).toString()),void 0!==e.p2pVersion&&(t.p2pVersion=(e.p2pVersion||o.default.UZERO).toString()),t},fromPartial(e){const t=Object.assign({},E);return void 0!==e.version&&null!==e.version?t.version=e.version:t.version="",void 0!==e.blockVersion&&null!==e.blockVersion?t.blockVersion=e.blockVersion:t.blockVersion=o.default.UZERO,void 0!==e.p2pVersion&&null!==e.p2pVersion?t.p2pVersion=e.p2pVersion:t.p2pVersion=o.default.UZERO,t}};const C={key:"",value:""};t.RequestSetOption={encode:(e,t=a.default.Writer.create())=>(""!==e.key&&t.uint32(10).string(e.key),""!==e.value&&t.uint32(18).string(e.value),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},C);for(;r.pos>>3){case 1:o.key=r.string();break;case 2:o.value=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},C);return void 0!==e.key&&null!==e.key?t.key=String(e.key):t.key="",void 0!==e.value&&null!==e.value?t.value=String(e.value):t.value="",t},toJSON(e){const t={};return void 0!==e.key&&(t.key=e.key),void 0!==e.value&&(t.value=e.value),t},fromPartial(e){const t=Object.assign({},C);return void 0!==e.key&&null!==e.key?t.key=e.key:t.key="",void 0!==e.value&&null!==e.value?t.value=e.value:t.value="",t}};const N={chainId:"",initialHeight:o.default.ZERO};t.RequestInitChain={encode(e,r=a.default.Writer.create()){void 0!==e.time&&f.Timestamp.encode(we(e.time),r.uint32(10).fork()).ldelim(),""!==e.chainId&&r.uint32(18).string(e.chainId),void 0!==e.consensusParams&&t.ConsensusParams.encode(e.consensusParams,r.uint32(26).fork()).ldelim();for(const n of e.validators)t.ValidatorUpdate.encode(n,r.uint32(34).fork()).ldelim();return 0!==e.appStateBytes.length&&r.uint32(42).bytes(e.appStateBytes),e.initialHeight.isZero()||r.uint32(48).int64(e.initialHeight),r},decode(e,r){const n=e instanceof a.default.Reader?e:new a.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const i=Object.assign({},N);for(i.validators=[],i.appStateBytes=new Uint8Array;n.pos>>3){case 1:i.time=_e(f.Timestamp.decode(n,n.uint32()));break;case 2:i.chainId=n.string();break;case 3:i.consensusParams=t.ConsensusParams.decode(n,n.uint32());break;case 4:i.validators.push(t.ValidatorUpdate.decode(n,n.uint32()));break;case 5:i.appStateBytes=n.bytes();break;case 6:i.initialHeight=n.int64();break;default:n.skipType(7&e)}}return i},fromJSON(e){const r=Object.assign({},N);if(r.validators=[],r.appStateBytes=new Uint8Array,void 0!==e.time&&null!==e.time?r.time=Se(e.time):r.time=void 0,void 0!==e.chainId&&null!==e.chainId?r.chainId=String(e.chainId):r.chainId="",void 0!==e.consensusParams&&null!==e.consensusParams?r.consensusParams=t.ConsensusParams.fromJSON(e.consensusParams):r.consensusParams=void 0,void 0!==e.validators&&null!==e.validators)for(const n of e.validators)r.validators.push(t.ValidatorUpdate.fromJSON(n));return void 0!==e.appStateBytes&&null!==e.appStateBytes&&(r.appStateBytes=ve(e.appStateBytes)),void 0!==e.initialHeight&&null!==e.initialHeight?r.initialHeight=o.default.fromString(e.initialHeight):r.initialHeight=o.default.ZERO,r},toJSON(e){const r={};return void 0!==e.time&&(r.time=e.time.toISOString()),void 0!==e.chainId&&(r.chainId=e.chainId),void 0!==e.consensusParams&&(r.consensusParams=e.consensusParams?t.ConsensusParams.toJSON(e.consensusParams):void 0),e.validators?r.validators=e.validators.map((e=>e?t.ValidatorUpdate.toJSON(e):void 0)):r.validators=[],void 0!==e.appStateBytes&&(r.appStateBytes=ye(void 0!==e.appStateBytes?e.appStateBytes:new Uint8Array)),void 0!==e.initialHeight&&(r.initialHeight=(e.initialHeight||o.default.ZERO).toString()),r},fromPartial(e){const r=Object.assign({},N);if(r.validators=[],void 0!==e.time&&null!==e.time?r.time=e.time:r.time=void 0,void 0!==e.chainId&&null!==e.chainId?r.chainId=e.chainId:r.chainId="",void 0!==e.consensusParams&&null!==e.consensusParams?r.consensusParams=t.ConsensusParams.fromPartial(e.consensusParams):r.consensusParams=void 0,void 0!==e.validators&&null!==e.validators)for(const n of e.validators)r.validators.push(t.ValidatorUpdate.fromPartial(n));return void 0!==e.appStateBytes&&null!==e.appStateBytes?r.appStateBytes=e.appStateBytes:r.appStateBytes=new Uint8Array,void 0!==e.initialHeight&&null!==e.initialHeight?r.initialHeight=e.initialHeight:r.initialHeight=o.default.ZERO,r}};const x={path:"",height:o.default.ZERO,prove:!1};t.RequestQuery={encode:(e,t=a.default.Writer.create())=>(0!==e.data.length&&t.uint32(10).bytes(e.data),""!==e.path&&t.uint32(18).string(e.path),e.height.isZero()||t.uint32(24).int64(e.height),!0===e.prove&&t.uint32(32).bool(e.prove),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},x);for(o.data=new Uint8Array;r.pos>>3){case 1:o.data=r.bytes();break;case 2:o.path=r.string();break;case 3:o.height=r.int64();break;case 4:o.prove=r.bool();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},x);return t.data=new Uint8Array,void 0!==e.data&&null!==e.data&&(t.data=ve(e.data)),void 0!==e.path&&null!==e.path?t.path=String(e.path):t.path="",void 0!==e.height&&null!==e.height?t.height=o.default.fromString(e.height):t.height=o.default.ZERO,void 0!==e.prove&&null!==e.prove?t.prove=Boolean(e.prove):t.prove=!1,t},toJSON(e){const t={};return void 0!==e.data&&(t.data=ye(void 0!==e.data?e.data:new Uint8Array)),void 0!==e.path&&(t.path=e.path),void 0!==e.height&&(t.height=(e.height||o.default.ZERO).toString()),void 0!==e.prove&&(t.prove=e.prove),t},fromPartial(e){const t=Object.assign({},x);return void 0!==e.data&&null!==e.data?t.data=e.data:t.data=new Uint8Array,void 0!==e.path&&null!==e.path?t.path=e.path:t.path="",void 0!==e.height&&null!==e.height?t.height=e.height:t.height=o.default.ZERO,void 0!==e.prove&&null!==e.prove?t.prove=e.prove:t.prove=!1,t}};const R={};t.RequestBeginBlock={encode(e,r=a.default.Writer.create()){0!==e.hash.length&&r.uint32(10).bytes(e.hash),void 0!==e.header&&s.Header.encode(e.header,r.uint32(18).fork()).ldelim(),void 0!==e.lastCommitInfo&&t.LastCommitInfo.encode(e.lastCommitInfo,r.uint32(26).fork()).ldelim();for(const n of e.byzantineValidators)t.Evidence.encode(n,r.uint32(34).fork()).ldelim();return r},decode(e,r){const n=e instanceof a.default.Reader?e:new a.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const i=Object.assign({},R);for(i.byzantineValidators=[],i.hash=new Uint8Array;n.pos>>3){case 1:i.hash=n.bytes();break;case 2:i.header=s.Header.decode(n,n.uint32());break;case 3:i.lastCommitInfo=t.LastCommitInfo.decode(n,n.uint32());break;case 4:i.byzantineValidators.push(t.Evidence.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return i},fromJSON(e){const r=Object.assign({},R);if(r.byzantineValidators=[],r.hash=new Uint8Array,void 0!==e.hash&&null!==e.hash&&(r.hash=ve(e.hash)),void 0!==e.header&&null!==e.header?r.header=s.Header.fromJSON(e.header):r.header=void 0,void 0!==e.lastCommitInfo&&null!==e.lastCommitInfo?r.lastCommitInfo=t.LastCommitInfo.fromJSON(e.lastCommitInfo):r.lastCommitInfo=void 0,void 0!==e.byzantineValidators&&null!==e.byzantineValidators)for(const n of e.byzantineValidators)r.byzantineValidators.push(t.Evidence.fromJSON(n));return r},toJSON(e){const r={};return void 0!==e.hash&&(r.hash=ye(void 0!==e.hash?e.hash:new Uint8Array)),void 0!==e.header&&(r.header=e.header?s.Header.toJSON(e.header):void 0),void 0!==e.lastCommitInfo&&(r.lastCommitInfo=e.lastCommitInfo?t.LastCommitInfo.toJSON(e.lastCommitInfo):void 0),e.byzantineValidators?r.byzantineValidators=e.byzantineValidators.map((e=>e?t.Evidence.toJSON(e):void 0)):r.byzantineValidators=[],r},fromPartial(e){const r=Object.assign({},R);if(r.byzantineValidators=[],void 0!==e.hash&&null!==e.hash?r.hash=e.hash:r.hash=new Uint8Array,void 0!==e.header&&null!==e.header?r.header=s.Header.fromPartial(e.header):r.header=void 0,void 0!==e.lastCommitInfo&&null!==e.lastCommitInfo?r.lastCommitInfo=t.LastCommitInfo.fromPartial(e.lastCommitInfo):r.lastCommitInfo=void 0,void 0!==e.byzantineValidators&&null!==e.byzantineValidators)for(const n of e.byzantineValidators)r.byzantineValidators.push(t.Evidence.fromPartial(n));return r}};const I={type:0};t.RequestCheckTx={encode:(e,t=a.default.Writer.create())=>(0!==e.tx.length&&t.uint32(10).bytes(e.tx),0!==e.type&&t.uint32(16).int32(e.type),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},I);for(o.tx=new Uint8Array;r.pos>>3){case 1:o.tx=r.bytes();break;case 2:o.type=r.int32();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},I);return t.tx=new Uint8Array,void 0!==e.tx&&null!==e.tx&&(t.tx=ve(e.tx)),void 0!==e.type&&null!==e.type?t.type=v(e.type):t.type=0,t},toJSON(e){const t={};return void 0!==e.tx&&(t.tx=ye(void 0!==e.tx?e.tx:new Uint8Array)),void 0!==e.type&&(t.type=b(e.type)),t},fromPartial(e){const t=Object.assign({},I);return void 0!==e.tx&&null!==e.tx?t.tx=e.tx:t.tx=new Uint8Array,void 0!==e.type&&null!==e.type?t.type=e.type:t.type=0,t}};const T={};t.RequestDeliverTx={encode:(e,t=a.default.Writer.create())=>(0!==e.tx.length&&t.uint32(10).bytes(e.tx),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},T);for(o.tx=new Uint8Array;r.pos>>3==1?o.tx=r.bytes():r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},T);return t.tx=new Uint8Array,void 0!==e.tx&&null!==e.tx&&(t.tx=ve(e.tx)),t},toJSON(e){const t={};return void 0!==e.tx&&(t.tx=ye(void 0!==e.tx?e.tx:new Uint8Array)),t},fromPartial(e){const t=Object.assign({},T);return void 0!==e.tx&&null!==e.tx?t.tx=e.tx:t.tx=new Uint8Array,t}};const j={height:o.default.ZERO};t.RequestEndBlock={encode:(e,t=a.default.Writer.create())=>(e.height.isZero()||t.uint32(8).int64(e.height),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},j);for(;r.pos>>3==1?o.height=r.int64():r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},j);return void 0!==e.height&&null!==e.height?t.height=o.default.fromString(e.height):t.height=o.default.ZERO,t},toJSON(e){const t={};return void 0!==e.height&&(t.height=(e.height||o.default.ZERO).toString()),t},fromPartial(e){const t=Object.assign({},j);return void 0!==e.height&&null!==e.height?t.height=e.height:t.height=o.default.ZERO,t}};const D={};t.RequestCommit={encode:(e,t=a.default.Writer.create())=>t,decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},D);for(;r.posObject.assign({},D),toJSON:e=>({}),fromPartial:e=>Object.assign({},D)};const B={};t.RequestListSnapshots={encode:(e,t=a.default.Writer.create())=>t,decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},B);for(;r.posObject.assign({},B),toJSON:e=>({}),fromPartial:e=>Object.assign({},B)};const U={};t.RequestOfferSnapshot={encode:(e,r=a.default.Writer.create())=>(void 0!==e.snapshot&&t.Snapshot.encode(e.snapshot,r.uint32(10).fork()).ldelim(),0!==e.appHash.length&&r.uint32(18).bytes(e.appHash),r),decode(e,r){const n=e instanceof a.default.Reader?e:new a.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const i=Object.assign({},U);for(i.appHash=new Uint8Array;n.pos>>3){case 1:i.snapshot=t.Snapshot.decode(n,n.uint32());break;case 2:i.appHash=n.bytes();break;default:n.skipType(7&e)}}return i},fromJSON(e){const r=Object.assign({},U);return r.appHash=new Uint8Array,void 0!==e.snapshot&&null!==e.snapshot?r.snapshot=t.Snapshot.fromJSON(e.snapshot):r.snapshot=void 0,void 0!==e.appHash&&null!==e.appHash&&(r.appHash=ve(e.appHash)),r},toJSON(e){const r={};return void 0!==e.snapshot&&(r.snapshot=e.snapshot?t.Snapshot.toJSON(e.snapshot):void 0),void 0!==e.appHash&&(r.appHash=ye(void 0!==e.appHash?e.appHash:new Uint8Array)),r},fromPartial(e){const r=Object.assign({},U);return void 0!==e.snapshot&&null!==e.snapshot?r.snapshot=t.Snapshot.fromPartial(e.snapshot):r.snapshot=void 0,void 0!==e.appHash&&null!==e.appHash?r.appHash=e.appHash:r.appHash=new Uint8Array,r}};const J={height:o.default.UZERO,format:0,chunk:0};t.RequestLoadSnapshotChunk={encode:(e,t=a.default.Writer.create())=>(e.height.isZero()||t.uint32(8).uint64(e.height),0!==e.format&&t.uint32(16).uint32(e.format),0!==e.chunk&&t.uint32(24).uint32(e.chunk),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},J);for(;r.pos>>3){case 1:o.height=r.uint64();break;case 2:o.format=r.uint32();break;case 3:o.chunk=r.uint32();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},J);return void 0!==e.height&&null!==e.height?t.height=o.default.fromString(e.height):t.height=o.default.UZERO,void 0!==e.format&&null!==e.format?t.format=Number(e.format):t.format=0,void 0!==e.chunk&&null!==e.chunk?t.chunk=Number(e.chunk):t.chunk=0,t},toJSON(e){const t={};return void 0!==e.height&&(t.height=(e.height||o.default.UZERO).toString()),void 0!==e.format&&(t.format=e.format),void 0!==e.chunk&&(t.chunk=e.chunk),t},fromPartial(e){const t=Object.assign({},J);return void 0!==e.height&&null!==e.height?t.height=e.height:t.height=o.default.UZERO,void 0!==e.format&&null!==e.format?t.format=e.format:t.format=0,void 0!==e.chunk&&null!==e.chunk?t.chunk=e.chunk:t.chunk=0,t}};const H={index:0,sender:""};t.RequestApplySnapshotChunk={encode:(e,t=a.default.Writer.create())=>(0!==e.index&&t.uint32(8).uint32(e.index),0!==e.chunk.length&&t.uint32(18).bytes(e.chunk),""!==e.sender&&t.uint32(26).string(e.sender),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},H);for(o.chunk=new Uint8Array;r.pos>>3){case 1:o.index=r.uint32();break;case 2:o.chunk=r.bytes();break;case 3:o.sender=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},H);return t.chunk=new Uint8Array,void 0!==e.index&&null!==e.index?t.index=Number(e.index):t.index=0,void 0!==e.chunk&&null!==e.chunk&&(t.chunk=ve(e.chunk)),void 0!==e.sender&&null!==e.sender?t.sender=String(e.sender):t.sender="",t},toJSON(e){const t={};return void 0!==e.index&&(t.index=e.index),void 0!==e.chunk&&(t.chunk=ye(void 0!==e.chunk?e.chunk:new Uint8Array)),void 0!==e.sender&&(t.sender=e.sender),t},fromPartial(e){const t=Object.assign({},H);return void 0!==e.index&&null!==e.index?t.index=e.index:t.index=0,void 0!==e.chunk&&null!==e.chunk?t.chunk=e.chunk:t.chunk=new Uint8Array,void 0!==e.sender&&null!==e.sender?t.sender=e.sender:t.sender="",t}};const L={};t.Response={encode:(e,r=a.default.Writer.create())=>(void 0!==e.exception&&t.ResponseException.encode(e.exception,r.uint32(10).fork()).ldelim(),void 0!==e.echo&&t.ResponseEcho.encode(e.echo,r.uint32(18).fork()).ldelim(),void 0!==e.flush&&t.ResponseFlush.encode(e.flush,r.uint32(26).fork()).ldelim(),void 0!==e.info&&t.ResponseInfo.encode(e.info,r.uint32(34).fork()).ldelim(),void 0!==e.setOption&&t.ResponseSetOption.encode(e.setOption,r.uint32(42).fork()).ldelim(),void 0!==e.initChain&&t.ResponseInitChain.encode(e.initChain,r.uint32(50).fork()).ldelim(),void 0!==e.query&&t.ResponseQuery.encode(e.query,r.uint32(58).fork()).ldelim(),void 0!==e.beginBlock&&t.ResponseBeginBlock.encode(e.beginBlock,r.uint32(66).fork()).ldelim(),void 0!==e.checkTx&&t.ResponseCheckTx.encode(e.checkTx,r.uint32(74).fork()).ldelim(),void 0!==e.deliverTx&&t.ResponseDeliverTx.encode(e.deliverTx,r.uint32(82).fork()).ldelim(),void 0!==e.endBlock&&t.ResponseEndBlock.encode(e.endBlock,r.uint32(90).fork()).ldelim(),void 0!==e.commit&&t.ResponseCommit.encode(e.commit,r.uint32(98).fork()).ldelim(),void 0!==e.listSnapshots&&t.ResponseListSnapshots.encode(e.listSnapshots,r.uint32(106).fork()).ldelim(),void 0!==e.offerSnapshot&&t.ResponseOfferSnapshot.encode(e.offerSnapshot,r.uint32(114).fork()).ldelim(),void 0!==e.loadSnapshotChunk&&t.ResponseLoadSnapshotChunk.encode(e.loadSnapshotChunk,r.uint32(122).fork()).ldelim(),void 0!==e.applySnapshotChunk&&t.ResponseApplySnapshotChunk.encode(e.applySnapshotChunk,r.uint32(130).fork()).ldelim(),r),decode(e,r){const n=e instanceof a.default.Reader?e:new a.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const i=Object.assign({},L);for(;n.pos>>3){case 1:i.exception=t.ResponseException.decode(n,n.uint32());break;case 2:i.echo=t.ResponseEcho.decode(n,n.uint32());break;case 3:i.flush=t.ResponseFlush.decode(n,n.uint32());break;case 4:i.info=t.ResponseInfo.decode(n,n.uint32());break;case 5:i.setOption=t.ResponseSetOption.decode(n,n.uint32());break;case 6:i.initChain=t.ResponseInitChain.decode(n,n.uint32());break;case 7:i.query=t.ResponseQuery.decode(n,n.uint32());break;case 8:i.beginBlock=t.ResponseBeginBlock.decode(n,n.uint32());break;case 9:i.checkTx=t.ResponseCheckTx.decode(n,n.uint32());break;case 10:i.deliverTx=t.ResponseDeliverTx.decode(n,n.uint32());break;case 11:i.endBlock=t.ResponseEndBlock.decode(n,n.uint32());break;case 12:i.commit=t.ResponseCommit.decode(n,n.uint32());break;case 13:i.listSnapshots=t.ResponseListSnapshots.decode(n,n.uint32());break;case 14:i.offerSnapshot=t.ResponseOfferSnapshot.decode(n,n.uint32());break;case 15:i.loadSnapshotChunk=t.ResponseLoadSnapshotChunk.decode(n,n.uint32());break;case 16:i.applySnapshotChunk=t.ResponseApplySnapshotChunk.decode(n,n.uint32());break;default:n.skipType(7&e)}}return i},fromJSON(e){const r=Object.assign({},L);return void 0!==e.exception&&null!==e.exception?r.exception=t.ResponseException.fromJSON(e.exception):r.exception=void 0,void 0!==e.echo&&null!==e.echo?r.echo=t.ResponseEcho.fromJSON(e.echo):r.echo=void 0,void 0!==e.flush&&null!==e.flush?r.flush=t.ResponseFlush.fromJSON(e.flush):r.flush=void 0,void 0!==e.info&&null!==e.info?r.info=t.ResponseInfo.fromJSON(e.info):r.info=void 0,void 0!==e.setOption&&null!==e.setOption?r.setOption=t.ResponseSetOption.fromJSON(e.setOption):r.setOption=void 0,void 0!==e.initChain&&null!==e.initChain?r.initChain=t.ResponseInitChain.fromJSON(e.initChain):r.initChain=void 0,void 0!==e.query&&null!==e.query?r.query=t.ResponseQuery.fromJSON(e.query):r.query=void 0,void 0!==e.beginBlock&&null!==e.beginBlock?r.beginBlock=t.ResponseBeginBlock.fromJSON(e.beginBlock):r.beginBlock=void 0,void 0!==e.checkTx&&null!==e.checkTx?r.checkTx=t.ResponseCheckTx.fromJSON(e.checkTx):r.checkTx=void 0,void 0!==e.deliverTx&&null!==e.deliverTx?r.deliverTx=t.ResponseDeliverTx.fromJSON(e.deliverTx):r.deliverTx=void 0,void 0!==e.endBlock&&null!==e.endBlock?r.endBlock=t.ResponseEndBlock.fromJSON(e.endBlock):r.endBlock=void 0,void 0!==e.commit&&null!==e.commit?r.commit=t.ResponseCommit.fromJSON(e.commit):r.commit=void 0,void 0!==e.listSnapshots&&null!==e.listSnapshots?r.listSnapshots=t.ResponseListSnapshots.fromJSON(e.listSnapshots):r.listSnapshots=void 0,void 0!==e.offerSnapshot&&null!==e.offerSnapshot?r.offerSnapshot=t.ResponseOfferSnapshot.fromJSON(e.offerSnapshot):r.offerSnapshot=void 0,void 0!==e.loadSnapshotChunk&&null!==e.loadSnapshotChunk?r.loadSnapshotChunk=t.ResponseLoadSnapshotChunk.fromJSON(e.loadSnapshotChunk):r.loadSnapshotChunk=void 0,void 0!==e.applySnapshotChunk&&null!==e.applySnapshotChunk?r.applySnapshotChunk=t.ResponseApplySnapshotChunk.fromJSON(e.applySnapshotChunk):r.applySnapshotChunk=void 0,r},toJSON(e){const r={};return void 0!==e.exception&&(r.exception=e.exception?t.ResponseException.toJSON(e.exception):void 0),void 0!==e.echo&&(r.echo=e.echo?t.ResponseEcho.toJSON(e.echo):void 0),void 0!==e.flush&&(r.flush=e.flush?t.ResponseFlush.toJSON(e.flush):void 0),void 0!==e.info&&(r.info=e.info?t.ResponseInfo.toJSON(e.info):void 0),void 0!==e.setOption&&(r.setOption=e.setOption?t.ResponseSetOption.toJSON(e.setOption):void 0),void 0!==e.initChain&&(r.initChain=e.initChain?t.ResponseInitChain.toJSON(e.initChain):void 0),void 0!==e.query&&(r.query=e.query?t.ResponseQuery.toJSON(e.query):void 0),void 0!==e.beginBlock&&(r.beginBlock=e.beginBlock?t.ResponseBeginBlock.toJSON(e.beginBlock):void 0),void 0!==e.checkTx&&(r.checkTx=e.checkTx?t.ResponseCheckTx.toJSON(e.checkTx):void 0),void 0!==e.deliverTx&&(r.deliverTx=e.deliverTx?t.ResponseDeliverTx.toJSON(e.deliverTx):void 0),void 0!==e.endBlock&&(r.endBlock=e.endBlock?t.ResponseEndBlock.toJSON(e.endBlock):void 0),void 0!==e.commit&&(r.commit=e.commit?t.ResponseCommit.toJSON(e.commit):void 0),void 0!==e.listSnapshots&&(r.listSnapshots=e.listSnapshots?t.ResponseListSnapshots.toJSON(e.listSnapshots):void 0),void 0!==e.offerSnapshot&&(r.offerSnapshot=e.offerSnapshot?t.ResponseOfferSnapshot.toJSON(e.offerSnapshot):void 0),void 0!==e.loadSnapshotChunk&&(r.loadSnapshotChunk=e.loadSnapshotChunk?t.ResponseLoadSnapshotChunk.toJSON(e.loadSnapshotChunk):void 0),void 0!==e.applySnapshotChunk&&(r.applySnapshotChunk=e.applySnapshotChunk?t.ResponseApplySnapshotChunk.toJSON(e.applySnapshotChunk):void 0),r},fromPartial(e){const r=Object.assign({},L);return void 0!==e.exception&&null!==e.exception?r.exception=t.ResponseException.fromPartial(e.exception):r.exception=void 0,void 0!==e.echo&&null!==e.echo?r.echo=t.ResponseEcho.fromPartial(e.echo):r.echo=void 0,void 0!==e.flush&&null!==e.flush?r.flush=t.ResponseFlush.fromPartial(e.flush):r.flush=void 0,void 0!==e.info&&null!==e.info?r.info=t.ResponseInfo.fromPartial(e.info):r.info=void 0,void 0!==e.setOption&&null!==e.setOption?r.setOption=t.ResponseSetOption.fromPartial(e.setOption):r.setOption=void 0,void 0!==e.initChain&&null!==e.initChain?r.initChain=t.ResponseInitChain.fromPartial(e.initChain):r.initChain=void 0,void 0!==e.query&&null!==e.query?r.query=t.ResponseQuery.fromPartial(e.query):r.query=void 0,void 0!==e.beginBlock&&null!==e.beginBlock?r.beginBlock=t.ResponseBeginBlock.fromPartial(e.beginBlock):r.beginBlock=void 0,void 0!==e.checkTx&&null!==e.checkTx?r.checkTx=t.ResponseCheckTx.fromPartial(e.checkTx):r.checkTx=void 0,void 0!==e.deliverTx&&null!==e.deliverTx?r.deliverTx=t.ResponseDeliverTx.fromPartial(e.deliverTx):r.deliverTx=void 0,void 0!==e.endBlock&&null!==e.endBlock?r.endBlock=t.ResponseEndBlock.fromPartial(e.endBlock):r.endBlock=void 0,void 0!==e.commit&&null!==e.commit?r.commit=t.ResponseCommit.fromPartial(e.commit):r.commit=void 0,void 0!==e.listSnapshots&&null!==e.listSnapshots?r.listSnapshots=t.ResponseListSnapshots.fromPartial(e.listSnapshots):r.listSnapshots=void 0,void 0!==e.offerSnapshot&&null!==e.offerSnapshot?r.offerSnapshot=t.ResponseOfferSnapshot.fromPartial(e.offerSnapshot):r.offerSnapshot=void 0,void 0!==e.loadSnapshotChunk&&null!==e.loadSnapshotChunk?r.loadSnapshotChunk=t.ResponseLoadSnapshotChunk.fromPartial(e.loadSnapshotChunk):r.loadSnapshotChunk=void 0,void 0!==e.applySnapshotChunk&&null!==e.applySnapshotChunk?r.applySnapshotChunk=t.ResponseApplySnapshotChunk.fromPartial(e.applySnapshotChunk):r.applySnapshotChunk=void 0,r}};const z={error:""};t.ResponseException={encode:(e,t=a.default.Writer.create())=>(""!==e.error&&t.uint32(10).string(e.error),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},z);for(;r.pos>>3==1?o.error=r.string():r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},z);return void 0!==e.error&&null!==e.error?t.error=String(e.error):t.error="",t},toJSON(e){const t={};return void 0!==e.error&&(t.error=e.error),t},fromPartial(e){const t=Object.assign({},z);return void 0!==e.error&&null!==e.error?t.error=e.error:t.error="",t}};const V={message:""};t.ResponseEcho={encode:(e,t=a.default.Writer.create())=>(""!==e.message&&t.uint32(10).string(e.message),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},V);for(;r.pos>>3==1?o.message=r.string():r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},V);return void 0!==e.message&&null!==e.message?t.message=String(e.message):t.message="",t},toJSON(e){const t={};return void 0!==e.message&&(t.message=e.message),t},fromPartial(e){const t=Object.assign({},V);return void 0!==e.message&&null!==e.message?t.message=e.message:t.message="",t}};const q={};t.ResponseFlush={encode:(e,t=a.default.Writer.create())=>t,decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},q);for(;r.posObject.assign({},q),toJSON:e=>({}),fromPartial:e=>Object.assign({},q)};const F={data:"",version:"",appVersion:o.default.UZERO,lastBlockHeight:o.default.ZERO};t.ResponseInfo={encode:(e,t=a.default.Writer.create())=>(""!==e.data&&t.uint32(10).string(e.data),""!==e.version&&t.uint32(18).string(e.version),e.appVersion.isZero()||t.uint32(24).uint64(e.appVersion),e.lastBlockHeight.isZero()||t.uint32(32).int64(e.lastBlockHeight),0!==e.lastBlockAppHash.length&&t.uint32(42).bytes(e.lastBlockAppHash),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},F);for(o.lastBlockAppHash=new Uint8Array;r.pos>>3){case 1:o.data=r.string();break;case 2:o.version=r.string();break;case 3:o.appVersion=r.uint64();break;case 4:o.lastBlockHeight=r.int64();break;case 5:o.lastBlockAppHash=r.bytes();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},F);return t.lastBlockAppHash=new Uint8Array,void 0!==e.data&&null!==e.data?t.data=String(e.data):t.data="",void 0!==e.version&&null!==e.version?t.version=String(e.version):t.version="",void 0!==e.appVersion&&null!==e.appVersion?t.appVersion=o.default.fromString(e.appVersion):t.appVersion=o.default.UZERO,void 0!==e.lastBlockHeight&&null!==e.lastBlockHeight?t.lastBlockHeight=o.default.fromString(e.lastBlockHeight):t.lastBlockHeight=o.default.ZERO,void 0!==e.lastBlockAppHash&&null!==e.lastBlockAppHash&&(t.lastBlockAppHash=ve(e.lastBlockAppHash)),t},toJSON(e){const t={};return void 0!==e.data&&(t.data=e.data),void 0!==e.version&&(t.version=e.version),void 0!==e.appVersion&&(t.appVersion=(e.appVersion||o.default.UZERO).toString()),void 0!==e.lastBlockHeight&&(t.lastBlockHeight=(e.lastBlockHeight||o.default.ZERO).toString()),void 0!==e.lastBlockAppHash&&(t.lastBlockAppHash=ye(void 0!==e.lastBlockAppHash?e.lastBlockAppHash:new Uint8Array)),t},fromPartial(e){const t=Object.assign({},F);return void 0!==e.data&&null!==e.data?t.data=e.data:t.data="",void 0!==e.version&&null!==e.version?t.version=e.version:t.version="",void 0!==e.appVersion&&null!==e.appVersion?t.appVersion=e.appVersion:t.appVersion=o.default.UZERO,void 0!==e.lastBlockHeight&&null!==e.lastBlockHeight?t.lastBlockHeight=e.lastBlockHeight:t.lastBlockHeight=o.default.ZERO,void 0!==e.lastBlockAppHash&&null!==e.lastBlockAppHash?t.lastBlockAppHash=e.lastBlockAppHash:t.lastBlockAppHash=new Uint8Array,t}};const Z={code:0,log:"",info:""};t.ResponseSetOption={encode:(e,t=a.default.Writer.create())=>(0!==e.code&&t.uint32(8).uint32(e.code),""!==e.log&&t.uint32(26).string(e.log),""!==e.info&&t.uint32(34).string(e.info),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},Z);for(;r.pos>>3){case 1:o.code=r.uint32();break;case 3:o.log=r.string();break;case 4:o.info=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},Z);return void 0!==e.code&&null!==e.code?t.code=Number(e.code):t.code=0,void 0!==e.log&&null!==e.log?t.log=String(e.log):t.log="",void 0!==e.info&&null!==e.info?t.info=String(e.info):t.info="",t},toJSON(e){const t={};return void 0!==e.code&&(t.code=e.code),void 0!==e.log&&(t.log=e.log),void 0!==e.info&&(t.info=e.info),t},fromPartial(e){const t=Object.assign({},Z);return void 0!==e.code&&null!==e.code?t.code=e.code:t.code=0,void 0!==e.log&&null!==e.log?t.log=e.log:t.log="",void 0!==e.info&&null!==e.info?t.info=e.info:t.info="",t}};const W={};t.ResponseInitChain={encode(e,r=a.default.Writer.create()){void 0!==e.consensusParams&&t.ConsensusParams.encode(e.consensusParams,r.uint32(10).fork()).ldelim();for(const n of e.validators)t.ValidatorUpdate.encode(n,r.uint32(18).fork()).ldelim();return 0!==e.appHash.length&&r.uint32(26).bytes(e.appHash),r},decode(e,r){const n=e instanceof a.default.Reader?e:new a.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const i=Object.assign({},W);for(i.validators=[],i.appHash=new Uint8Array;n.pos>>3){case 1:i.consensusParams=t.ConsensusParams.decode(n,n.uint32());break;case 2:i.validators.push(t.ValidatorUpdate.decode(n,n.uint32()));break;case 3:i.appHash=n.bytes();break;default:n.skipType(7&e)}}return i},fromJSON(e){const r=Object.assign({},W);if(r.validators=[],r.appHash=new Uint8Array,void 0!==e.consensusParams&&null!==e.consensusParams?r.consensusParams=t.ConsensusParams.fromJSON(e.consensusParams):r.consensusParams=void 0,void 0!==e.validators&&null!==e.validators)for(const n of e.validators)r.validators.push(t.ValidatorUpdate.fromJSON(n));return void 0!==e.appHash&&null!==e.appHash&&(r.appHash=ve(e.appHash)),r},toJSON(e){const r={};return void 0!==e.consensusParams&&(r.consensusParams=e.consensusParams?t.ConsensusParams.toJSON(e.consensusParams):void 0),e.validators?r.validators=e.validators.map((e=>e?t.ValidatorUpdate.toJSON(e):void 0)):r.validators=[],void 0!==e.appHash&&(r.appHash=ye(void 0!==e.appHash?e.appHash:new Uint8Array)),r},fromPartial(e){const r=Object.assign({},W);if(r.validators=[],void 0!==e.consensusParams&&null!==e.consensusParams?r.consensusParams=t.ConsensusParams.fromPartial(e.consensusParams):r.consensusParams=void 0,void 0!==e.validators&&null!==e.validators)for(const n of e.validators)r.validators.push(t.ValidatorUpdate.fromPartial(n));return void 0!==e.appHash&&null!==e.appHash?r.appHash=e.appHash:r.appHash=new Uint8Array,r}};const K={code:0,log:"",info:"",index:o.default.ZERO,height:o.default.ZERO,codespace:""};t.ResponseQuery={encode:(e,t=a.default.Writer.create())=>(0!==e.code&&t.uint32(8).uint32(e.code),""!==e.log&&t.uint32(26).string(e.log),""!==e.info&&t.uint32(34).string(e.info),e.index.isZero()||t.uint32(40).int64(e.index),0!==e.key.length&&t.uint32(50).bytes(e.key),0!==e.value.length&&t.uint32(58).bytes(e.value),void 0!==e.proofOps&&u.ProofOps.encode(e.proofOps,t.uint32(66).fork()).ldelim(),e.height.isZero()||t.uint32(72).int64(e.height),""!==e.codespace&&t.uint32(82).string(e.codespace),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},K);for(o.key=new Uint8Array,o.value=new Uint8Array;r.pos>>3){case 1:o.code=r.uint32();break;case 3:o.log=r.string();break;case 4:o.info=r.string();break;case 5:o.index=r.int64();break;case 6:o.key=r.bytes();break;case 7:o.value=r.bytes();break;case 8:o.proofOps=u.ProofOps.decode(r,r.uint32());break;case 9:o.height=r.int64();break;case 10:o.codespace=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},K);return t.key=new Uint8Array,t.value=new Uint8Array,void 0!==e.code&&null!==e.code?t.code=Number(e.code):t.code=0,void 0!==e.log&&null!==e.log?t.log=String(e.log):t.log="",void 0!==e.info&&null!==e.info?t.info=String(e.info):t.info="",void 0!==e.index&&null!==e.index?t.index=o.default.fromString(e.index):t.index=o.default.ZERO,void 0!==e.key&&null!==e.key&&(t.key=ve(e.key)),void 0!==e.value&&null!==e.value&&(t.value=ve(e.value)),void 0!==e.proofOps&&null!==e.proofOps?t.proofOps=u.ProofOps.fromJSON(e.proofOps):t.proofOps=void 0,void 0!==e.height&&null!==e.height?t.height=o.default.fromString(e.height):t.height=o.default.ZERO,void 0!==e.codespace&&null!==e.codespace?t.codespace=String(e.codespace):t.codespace="",t},toJSON(e){const t={};return void 0!==e.code&&(t.code=e.code),void 0!==e.log&&(t.log=e.log),void 0!==e.info&&(t.info=e.info),void 0!==e.index&&(t.index=(e.index||o.default.ZERO).toString()),void 0!==e.key&&(t.key=ye(void 0!==e.key?e.key:new Uint8Array)),void 0!==e.value&&(t.value=ye(void 0!==e.value?e.value:new Uint8Array)),void 0!==e.proofOps&&(t.proofOps=e.proofOps?u.ProofOps.toJSON(e.proofOps):void 0),void 0!==e.height&&(t.height=(e.height||o.default.ZERO).toString()),void 0!==e.codespace&&(t.codespace=e.codespace),t},fromPartial(e){const t=Object.assign({},K);return void 0!==e.code&&null!==e.code?t.code=e.code:t.code=0,void 0!==e.log&&null!==e.log?t.log=e.log:t.log="",void 0!==e.info&&null!==e.info?t.info=e.info:t.info="",void 0!==e.index&&null!==e.index?t.index=e.index:t.index=o.default.ZERO,void 0!==e.key&&null!==e.key?t.key=e.key:t.key=new Uint8Array,void 0!==e.value&&null!==e.value?t.value=e.value:t.value=new Uint8Array,void 0!==e.proofOps&&null!==e.proofOps?t.proofOps=u.ProofOps.fromPartial(e.proofOps):t.proofOps=void 0,void 0!==e.height&&null!==e.height?t.height=e.height:t.height=o.default.ZERO,void 0!==e.codespace&&null!==e.codespace?t.codespace=e.codespace:t.codespace="",t}};const G={};t.ResponseBeginBlock={encode(e,r=a.default.Writer.create()){for(const n of e.events)t.Event.encode(n,r.uint32(10).fork()).ldelim();return r},decode(e,r){const n=e instanceof a.default.Reader?e:new a.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const i=Object.assign({},G);for(i.events=[];n.pos>>3==1?i.events.push(t.Event.decode(n,n.uint32())):n.skipType(7&e)}return i},fromJSON(e){const r=Object.assign({},G);if(r.events=[],void 0!==e.events&&null!==e.events)for(const n of e.events)r.events.push(t.Event.fromJSON(n));return r},toJSON(e){const r={};return e.events?r.events=e.events.map((e=>e?t.Event.toJSON(e):void 0)):r.events=[],r},fromPartial(e){const r=Object.assign({},G);if(r.events=[],void 0!==e.events&&null!==e.events)for(const n of e.events)r.events.push(t.Event.fromPartial(n));return r}};const Y={code:0,log:"",info:"",gasWanted:o.default.ZERO,gasUsed:o.default.ZERO,codespace:""};t.ResponseCheckTx={encode(e,r=a.default.Writer.create()){0!==e.code&&r.uint32(8).uint32(e.code),0!==e.data.length&&r.uint32(18).bytes(e.data),""!==e.log&&r.uint32(26).string(e.log),""!==e.info&&r.uint32(34).string(e.info),e.gasWanted.isZero()||r.uint32(40).int64(e.gasWanted),e.gasUsed.isZero()||r.uint32(48).int64(e.gasUsed);for(const n of e.events)t.Event.encode(n,r.uint32(58).fork()).ldelim();return""!==e.codespace&&r.uint32(66).string(e.codespace),r},decode(e,r){const n=e instanceof a.default.Reader?e:new a.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const i=Object.assign({},Y);for(i.events=[],i.data=new Uint8Array;n.pos>>3){case 1:i.code=n.uint32();break;case 2:i.data=n.bytes();break;case 3:i.log=n.string();break;case 4:i.info=n.string();break;case 5:i.gasWanted=n.int64();break;case 6:i.gasUsed=n.int64();break;case 7:i.events.push(t.Event.decode(n,n.uint32()));break;case 8:i.codespace=n.string();break;default:n.skipType(7&e)}}return i},fromJSON(e){const r=Object.assign({},Y);if(r.events=[],r.data=new Uint8Array,void 0!==e.code&&null!==e.code?r.code=Number(e.code):r.code=0,void 0!==e.data&&null!==e.data&&(r.data=ve(e.data)),void 0!==e.log&&null!==e.log?r.log=String(e.log):r.log="",void 0!==e.info&&null!==e.info?r.info=String(e.info):r.info="",void 0!==e.gasWanted&&null!==e.gasWanted?r.gasWanted=o.default.fromString(e.gasWanted):r.gasWanted=o.default.ZERO,void 0!==e.gasUsed&&null!==e.gasUsed?r.gasUsed=o.default.fromString(e.gasUsed):r.gasUsed=o.default.ZERO,void 0!==e.events&&null!==e.events)for(const n of e.events)r.events.push(t.Event.fromJSON(n));return void 0!==e.codespace&&null!==e.codespace?r.codespace=String(e.codespace):r.codespace="",r},toJSON(e){const r={};return void 0!==e.code&&(r.code=e.code),void 0!==e.data&&(r.data=ye(void 0!==e.data?e.data:new Uint8Array)),void 0!==e.log&&(r.log=e.log),void 0!==e.info&&(r.info=e.info),void 0!==e.gasWanted&&(r.gasWanted=(e.gasWanted||o.default.ZERO).toString()),void 0!==e.gasUsed&&(r.gasUsed=(e.gasUsed||o.default.ZERO).toString()),e.events?r.events=e.events.map((e=>e?t.Event.toJSON(e):void 0)):r.events=[],void 0!==e.codespace&&(r.codespace=e.codespace),r},fromPartial(e){const r=Object.assign({},Y);if(r.events=[],void 0!==e.code&&null!==e.code?r.code=e.code:r.code=0,void 0!==e.data&&null!==e.data?r.data=e.data:r.data=new Uint8Array,void 0!==e.log&&null!==e.log?r.log=e.log:r.log="",void 0!==e.info&&null!==e.info?r.info=e.info:r.info="",void 0!==e.gasWanted&&null!==e.gasWanted?r.gasWanted=e.gasWanted:r.gasWanted=o.default.ZERO,void 0!==e.gasUsed&&null!==e.gasUsed?r.gasUsed=e.gasUsed:r.gasUsed=o.default.ZERO,void 0!==e.events&&null!==e.events)for(const n of e.events)r.events.push(t.Event.fromPartial(n));return void 0!==e.codespace&&null!==e.codespace?r.codespace=e.codespace:r.codespace="",r}};const $={code:0,log:"",info:"",gasWanted:o.default.ZERO,gasUsed:o.default.ZERO,codespace:""};t.ResponseDeliverTx={encode(e,r=a.default.Writer.create()){0!==e.code&&r.uint32(8).uint32(e.code),0!==e.data.length&&r.uint32(18).bytes(e.data),""!==e.log&&r.uint32(26).string(e.log),""!==e.info&&r.uint32(34).string(e.info),e.gasWanted.isZero()||r.uint32(40).int64(e.gasWanted),e.gasUsed.isZero()||r.uint32(48).int64(e.gasUsed);for(const n of e.events)t.Event.encode(n,r.uint32(58).fork()).ldelim();return""!==e.codespace&&r.uint32(66).string(e.codespace),r},decode(e,r){const n=e instanceof a.default.Reader?e:new a.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const i=Object.assign({},$);for(i.events=[],i.data=new Uint8Array;n.pos>>3){case 1:i.code=n.uint32();break;case 2:i.data=n.bytes();break;case 3:i.log=n.string();break;case 4:i.info=n.string();break;case 5:i.gasWanted=n.int64();break;case 6:i.gasUsed=n.int64();break;case 7:i.events.push(t.Event.decode(n,n.uint32()));break;case 8:i.codespace=n.string();break;default:n.skipType(7&e)}}return i},fromJSON(e){const r=Object.assign({},$);if(r.events=[],r.data=new Uint8Array,void 0!==e.code&&null!==e.code?r.code=Number(e.code):r.code=0,void 0!==e.data&&null!==e.data&&(r.data=ve(e.data)),void 0!==e.log&&null!==e.log?r.log=String(e.log):r.log="",void 0!==e.info&&null!==e.info?r.info=String(e.info):r.info="",void 0!==e.gasWanted&&null!==e.gasWanted?r.gasWanted=o.default.fromString(e.gasWanted):r.gasWanted=o.default.ZERO,void 0!==e.gasUsed&&null!==e.gasUsed?r.gasUsed=o.default.fromString(e.gasUsed):r.gasUsed=o.default.ZERO,void 0!==e.events&&null!==e.events)for(const n of e.events)r.events.push(t.Event.fromJSON(n));return void 0!==e.codespace&&null!==e.codespace?r.codespace=String(e.codespace):r.codespace="",r},toJSON(e){const r={};return void 0!==e.code&&(r.code=e.code),void 0!==e.data&&(r.data=ye(void 0!==e.data?e.data:new Uint8Array)),void 0!==e.log&&(r.log=e.log),void 0!==e.info&&(r.info=e.info),void 0!==e.gasWanted&&(r.gasWanted=(e.gasWanted||o.default.ZERO).toString()),void 0!==e.gasUsed&&(r.gasUsed=(e.gasUsed||o.default.ZERO).toString()),e.events?r.events=e.events.map((e=>e?t.Event.toJSON(e):void 0)):r.events=[],void 0!==e.codespace&&(r.codespace=e.codespace),r},fromPartial(e){const r=Object.assign({},$);if(r.events=[],void 0!==e.code&&null!==e.code?r.code=e.code:r.code=0,void 0!==e.data&&null!==e.data?r.data=e.data:r.data=new Uint8Array,void 0!==e.log&&null!==e.log?r.log=e.log:r.log="",void 0!==e.info&&null!==e.info?r.info=e.info:r.info="",void 0!==e.gasWanted&&null!==e.gasWanted?r.gasWanted=e.gasWanted:r.gasWanted=o.default.ZERO,void 0!==e.gasUsed&&null!==e.gasUsed?r.gasUsed=e.gasUsed:r.gasUsed=o.default.ZERO,void 0!==e.events&&null!==e.events)for(const n of e.events)r.events.push(t.Event.fromPartial(n));return void 0!==e.codespace&&null!==e.codespace?r.codespace=e.codespace:r.codespace="",r}};const X={};t.ResponseEndBlock={encode(e,r=a.default.Writer.create()){for(const n of e.validatorUpdates)t.ValidatorUpdate.encode(n,r.uint32(10).fork()).ldelim();void 0!==e.consensusParamUpdates&&t.ConsensusParams.encode(e.consensusParamUpdates,r.uint32(18).fork()).ldelim();for(const n of e.events)t.Event.encode(n,r.uint32(26).fork()).ldelim();return r},decode(e,r){const n=e instanceof a.default.Reader?e:new a.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const i=Object.assign({},X);for(i.validatorUpdates=[],i.events=[];n.pos>>3){case 1:i.validatorUpdates.push(t.ValidatorUpdate.decode(n,n.uint32()));break;case 2:i.consensusParamUpdates=t.ConsensusParams.decode(n,n.uint32());break;case 3:i.events.push(t.Event.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return i},fromJSON(e){const r=Object.assign({},X);if(r.validatorUpdates=[],r.events=[],void 0!==e.validatorUpdates&&null!==e.validatorUpdates)for(const n of e.validatorUpdates)r.validatorUpdates.push(t.ValidatorUpdate.fromJSON(n));if(void 0!==e.consensusParamUpdates&&null!==e.consensusParamUpdates?r.consensusParamUpdates=t.ConsensusParams.fromJSON(e.consensusParamUpdates):r.consensusParamUpdates=void 0,void 0!==e.events&&null!==e.events)for(const n of e.events)r.events.push(t.Event.fromJSON(n));return r},toJSON(e){const r={};return e.validatorUpdates?r.validatorUpdates=e.validatorUpdates.map((e=>e?t.ValidatorUpdate.toJSON(e):void 0)):r.validatorUpdates=[],void 0!==e.consensusParamUpdates&&(r.consensusParamUpdates=e.consensusParamUpdates?t.ConsensusParams.toJSON(e.consensusParamUpdates):void 0),e.events?r.events=e.events.map((e=>e?t.Event.toJSON(e):void 0)):r.events=[],r},fromPartial(e){const r=Object.assign({},X);if(r.validatorUpdates=[],r.events=[],void 0!==e.validatorUpdates&&null!==e.validatorUpdates)for(const n of e.validatorUpdates)r.validatorUpdates.push(t.ValidatorUpdate.fromPartial(n));if(void 0!==e.consensusParamUpdates&&null!==e.consensusParamUpdates?r.consensusParamUpdates=t.ConsensusParams.fromPartial(e.consensusParamUpdates):r.consensusParamUpdates=void 0,void 0!==e.events&&null!==e.events)for(const n of e.events)r.events.push(t.Event.fromPartial(n));return r}};const Q={retainHeight:o.default.ZERO};t.ResponseCommit={encode:(e,t=a.default.Writer.create())=>(0!==e.data.length&&t.uint32(18).bytes(e.data),e.retainHeight.isZero()||t.uint32(24).int64(e.retainHeight),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},Q);for(o.data=new Uint8Array;r.pos>>3){case 2:o.data=r.bytes();break;case 3:o.retainHeight=r.int64();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},Q);return t.data=new Uint8Array,void 0!==e.data&&null!==e.data&&(t.data=ve(e.data)),void 0!==e.retainHeight&&null!==e.retainHeight?t.retainHeight=o.default.fromString(e.retainHeight):t.retainHeight=o.default.ZERO,t},toJSON(e){const t={};return void 0!==e.data&&(t.data=ye(void 0!==e.data?e.data:new Uint8Array)),void 0!==e.retainHeight&&(t.retainHeight=(e.retainHeight||o.default.ZERO).toString()),t},fromPartial(e){const t=Object.assign({},Q);return void 0!==e.data&&null!==e.data?t.data=e.data:t.data=new Uint8Array,void 0!==e.retainHeight&&null!==e.retainHeight?t.retainHeight=e.retainHeight:t.retainHeight=o.default.ZERO,t}};const ee={};t.ResponseListSnapshots={encode(e,r=a.default.Writer.create()){for(const n of e.snapshots)t.Snapshot.encode(n,r.uint32(10).fork()).ldelim();return r},decode(e,r){const n=e instanceof a.default.Reader?e:new a.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const i=Object.assign({},ee);for(i.snapshots=[];n.pos>>3==1?i.snapshots.push(t.Snapshot.decode(n,n.uint32())):n.skipType(7&e)}return i},fromJSON(e){const r=Object.assign({},ee);if(r.snapshots=[],void 0!==e.snapshots&&null!==e.snapshots)for(const n of e.snapshots)r.snapshots.push(t.Snapshot.fromJSON(n));return r},toJSON(e){const r={};return e.snapshots?r.snapshots=e.snapshots.map((e=>e?t.Snapshot.toJSON(e):void 0)):r.snapshots=[],r},fromPartial(e){const r=Object.assign({},ee);if(r.snapshots=[],void 0!==e.snapshots&&null!==e.snapshots)for(const n of e.snapshots)r.snapshots.push(t.Snapshot.fromPartial(n));return r}};const te={result:0};t.ResponseOfferSnapshot={encode:(e,t=a.default.Writer.create())=>(0!==e.result&&t.uint32(8).int32(e.result),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},te);for(;r.pos>>3==1?o.result=r.int32():r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},te);return void 0!==e.result&&null!==e.result?t.result=_(e.result):t.result=0,t},toJSON(e){const t={};return void 0!==e.result&&(t.result=S(e.result)),t},fromPartial(e){const t=Object.assign({},te);return void 0!==e.result&&null!==e.result?t.result=e.result:t.result=0,t}};const re={};t.ResponseLoadSnapshotChunk={encode:(e,t=a.default.Writer.create())=>(0!==e.chunk.length&&t.uint32(10).bytes(e.chunk),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},re);for(o.chunk=new Uint8Array;r.pos>>3==1?o.chunk=r.bytes():r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},re);return t.chunk=new Uint8Array,void 0!==e.chunk&&null!==e.chunk&&(t.chunk=ve(e.chunk)),t},toJSON(e){const t={};return void 0!==e.chunk&&(t.chunk=ye(void 0!==e.chunk?e.chunk:new Uint8Array)),t},fromPartial(e){const t=Object.assign({},re);return void 0!==e.chunk&&null!==e.chunk?t.chunk=e.chunk:t.chunk=new Uint8Array,t}};const ne={result:0,refetchChunks:0,rejectSenders:""};t.ResponseApplySnapshotChunk={encode(e,t=a.default.Writer.create()){0!==e.result&&t.uint32(8).int32(e.result),t.uint32(18).fork();for(const r of e.refetchChunks)t.uint32(r);t.ldelim();for(const r of e.rejectSenders)t.uint32(26).string(r);return t},decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},ne);for(o.refetchChunks=[],o.rejectSenders=[];r.pos>>3){case 1:o.result=r.int32();break;case 2:if(2==(7&e)){const e=r.uint32()+r.pos;for(;r.pose)):t.refetchChunks=[],e.rejectSenders?t.rejectSenders=e.rejectSenders.map((e=>e)):t.rejectSenders=[],t},fromPartial(e){const t=Object.assign({},ne);if(t.refetchChunks=[],t.rejectSenders=[],void 0!==e.result&&null!==e.result?t.result=e.result:t.result=0,void 0!==e.refetchChunks&&null!==e.refetchChunks)for(const r of e.refetchChunks)t.refetchChunks.push(r);if(void 0!==e.rejectSenders&&null!==e.rejectSenders)for(const r of e.rejectSenders)t.rejectSenders.push(r);return t}};const oe={};t.ConsensusParams={encode:(e,r=a.default.Writer.create())=>(void 0!==e.block&&t.BlockParams.encode(e.block,r.uint32(10).fork()).ldelim(),void 0!==e.evidence&&c.EvidenceParams.encode(e.evidence,r.uint32(18).fork()).ldelim(),void 0!==e.validator&&c.ValidatorParams.encode(e.validator,r.uint32(26).fork()).ldelim(),void 0!==e.version&&c.VersionParams.encode(e.version,r.uint32(34).fork()).ldelim(),r),decode(e,r){const n=e instanceof a.default.Reader?e:new a.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const i=Object.assign({},oe);for(;n.pos>>3){case 1:i.block=t.BlockParams.decode(n,n.uint32());break;case 2:i.evidence=c.EvidenceParams.decode(n,n.uint32());break;case 3:i.validator=c.ValidatorParams.decode(n,n.uint32());break;case 4:i.version=c.VersionParams.decode(n,n.uint32());break;default:n.skipType(7&e)}}return i},fromJSON(e){const r=Object.assign({},oe);return void 0!==e.block&&null!==e.block?r.block=t.BlockParams.fromJSON(e.block):r.block=void 0,void 0!==e.evidence&&null!==e.evidence?r.evidence=c.EvidenceParams.fromJSON(e.evidence):r.evidence=void 0,void 0!==e.validator&&null!==e.validator?r.validator=c.ValidatorParams.fromJSON(e.validator):r.validator=void 0,void 0!==e.version&&null!==e.version?r.version=c.VersionParams.fromJSON(e.version):r.version=void 0,r},toJSON(e){const r={};return void 0!==e.block&&(r.block=e.block?t.BlockParams.toJSON(e.block):void 0),void 0!==e.evidence&&(r.evidence=e.evidence?c.EvidenceParams.toJSON(e.evidence):void 0),void 0!==e.validator&&(r.validator=e.validator?c.ValidatorParams.toJSON(e.validator):void 0),void 0!==e.version&&(r.version=e.version?c.VersionParams.toJSON(e.version):void 0),r},fromPartial(e){const r=Object.assign({},oe);return void 0!==e.block&&null!==e.block?r.block=t.BlockParams.fromPartial(e.block):r.block=void 0,void 0!==e.evidence&&null!==e.evidence?r.evidence=c.EvidenceParams.fromPartial(e.evidence):r.evidence=void 0,void 0!==e.validator&&null!==e.validator?r.validator=c.ValidatorParams.fromPartial(e.validator):r.validator=void 0,void 0!==e.version&&null!==e.version?r.version=c.VersionParams.fromPartial(e.version):r.version=void 0,r}};const ie={maxBytes:o.default.ZERO,maxGas:o.default.ZERO};t.BlockParams={encode:(e,t=a.default.Writer.create())=>(e.maxBytes.isZero()||t.uint32(8).int64(e.maxBytes),e.maxGas.isZero()||t.uint32(16).int64(e.maxGas),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},ie);for(;r.pos>>3){case 1:o.maxBytes=r.int64();break;case 2:o.maxGas=r.int64();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},ie);return void 0!==e.maxBytes&&null!==e.maxBytes?t.maxBytes=o.default.fromString(e.maxBytes):t.maxBytes=o.default.ZERO,void 0!==e.maxGas&&null!==e.maxGas?t.maxGas=o.default.fromString(e.maxGas):t.maxGas=o.default.ZERO,t},toJSON(e){const t={};return void 0!==e.maxBytes&&(t.maxBytes=(e.maxBytes||o.default.ZERO).toString()),void 0!==e.maxGas&&(t.maxGas=(e.maxGas||o.default.ZERO).toString()),t},fromPartial(e){const t=Object.assign({},ie);return void 0!==e.maxBytes&&null!==e.maxBytes?t.maxBytes=e.maxBytes:t.maxBytes=o.default.ZERO,void 0!==e.maxGas&&null!==e.maxGas?t.maxGas=e.maxGas:t.maxGas=o.default.ZERO,t}};const ae={round:0};t.LastCommitInfo={encode(e,r=a.default.Writer.create()){0!==e.round&&r.uint32(8).int32(e.round);for(const n of e.votes)t.VoteInfo.encode(n,r.uint32(18).fork()).ldelim();return r},decode(e,r){const n=e instanceof a.default.Reader?e:new a.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const i=Object.assign({},ae);for(i.votes=[];n.pos>>3){case 1:i.round=n.int32();break;case 2:i.votes.push(t.VoteInfo.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return i},fromJSON(e){const r=Object.assign({},ae);if(r.votes=[],void 0!==e.round&&null!==e.round?r.round=Number(e.round):r.round=0,void 0!==e.votes&&null!==e.votes)for(const n of e.votes)r.votes.push(t.VoteInfo.fromJSON(n));return r},toJSON(e){const r={};return void 0!==e.round&&(r.round=e.round),e.votes?r.votes=e.votes.map((e=>e?t.VoteInfo.toJSON(e):void 0)):r.votes=[],r},fromPartial(e){const r=Object.assign({},ae);if(r.votes=[],void 0!==e.round&&null!==e.round?r.round=e.round:r.round=0,void 0!==e.votes&&null!==e.votes)for(const n of e.votes)r.votes.push(t.VoteInfo.fromPartial(n));return r}};const se={type:""};t.Event={encode(e,r=a.default.Writer.create()){""!==e.type&&r.uint32(10).string(e.type);for(const n of e.attributes)t.EventAttribute.encode(n,r.uint32(18).fork()).ldelim();return r},decode(e,r){const n=e instanceof a.default.Reader?e:new a.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const i=Object.assign({},se);for(i.attributes=[];n.pos>>3){case 1:i.type=n.string();break;case 2:i.attributes.push(t.EventAttribute.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return i},fromJSON(e){const r=Object.assign({},se);if(r.attributes=[],void 0!==e.type&&null!==e.type?r.type=String(e.type):r.type="",void 0!==e.attributes&&null!==e.attributes)for(const n of e.attributes)r.attributes.push(t.EventAttribute.fromJSON(n));return r},toJSON(e){const r={};return void 0!==e.type&&(r.type=e.type),e.attributes?r.attributes=e.attributes.map((e=>e?t.EventAttribute.toJSON(e):void 0)):r.attributes=[],r},fromPartial(e){const r=Object.assign({},se);if(r.attributes=[],void 0!==e.type&&null!==e.type?r.type=e.type:r.type="",void 0!==e.attributes&&null!==e.attributes)for(const n of e.attributes)r.attributes.push(t.EventAttribute.fromPartial(n));return r}};const ue={index:!1};t.EventAttribute={encode:(e,t=a.default.Writer.create())=>(0!==e.key.length&&t.uint32(10).bytes(e.key),0!==e.value.length&&t.uint32(18).bytes(e.value),!0===e.index&&t.uint32(24).bool(e.index),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},ue);for(o.key=new Uint8Array,o.value=new Uint8Array;r.pos>>3){case 1:o.key=r.bytes();break;case 2:o.value=r.bytes();break;case 3:o.index=r.bool();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},ue);return t.key=new Uint8Array,t.value=new Uint8Array,void 0!==e.key&&null!==e.key&&(t.key=ve(e.key)),void 0!==e.value&&null!==e.value&&(t.value=ve(e.value)),void 0!==e.index&&null!==e.index?t.index=Boolean(e.index):t.index=!1,t},toJSON(e){const t={};return void 0!==e.key&&(t.key=ye(void 0!==e.key?e.key:new Uint8Array)),void 0!==e.value&&(t.value=ye(void 0!==e.value?e.value:new Uint8Array)),void 0!==e.index&&(t.index=e.index),t},fromPartial(e){const t=Object.assign({},ue);return void 0!==e.key&&null!==e.key?t.key=e.key:t.key=new Uint8Array,void 0!==e.value&&null!==e.value?t.value=e.value:t.value=new Uint8Array,void 0!==e.index&&null!==e.index?t.index=e.index:t.index=!1,t}};const ce={height:o.default.ZERO,index:0};t.TxResult={encode:(e,r=a.default.Writer.create())=>(e.height.isZero()||r.uint32(8).int64(e.height),0!==e.index&&r.uint32(16).uint32(e.index),0!==e.tx.length&&r.uint32(26).bytes(e.tx),void 0!==e.result&&t.ResponseDeliverTx.encode(e.result,r.uint32(34).fork()).ldelim(),r),decode(e,r){const n=e instanceof a.default.Reader?e:new a.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const i=Object.assign({},ce);for(i.tx=new Uint8Array;n.pos>>3){case 1:i.height=n.int64();break;case 2:i.index=n.uint32();break;case 3:i.tx=n.bytes();break;case 4:i.result=t.ResponseDeliverTx.decode(n,n.uint32());break;default:n.skipType(7&e)}}return i},fromJSON(e){const r=Object.assign({},ce);return r.tx=new Uint8Array,void 0!==e.height&&null!==e.height?r.height=o.default.fromString(e.height):r.height=o.default.ZERO,void 0!==e.index&&null!==e.index?r.index=Number(e.index):r.index=0,void 0!==e.tx&&null!==e.tx&&(r.tx=ve(e.tx)),void 0!==e.result&&null!==e.result?r.result=t.ResponseDeliverTx.fromJSON(e.result):r.result=void 0,r},toJSON(e){const r={};return void 0!==e.height&&(r.height=(e.height||o.default.ZERO).toString()),void 0!==e.index&&(r.index=e.index),void 0!==e.tx&&(r.tx=ye(void 0!==e.tx?e.tx:new Uint8Array)),void 0!==e.result&&(r.result=e.result?t.ResponseDeliverTx.toJSON(e.result):void 0),r},fromPartial(e){const r=Object.assign({},ce);return void 0!==e.height&&null!==e.height?r.height=e.height:r.height=o.default.ZERO,void 0!==e.index&&null!==e.index?r.index=e.index:r.index=0,void 0!==e.tx&&null!==e.tx?r.tx=e.tx:r.tx=new Uint8Array,void 0!==e.result&&null!==e.result?r.result=t.ResponseDeliverTx.fromPartial(e.result):r.result=void 0,r}};const de={power:o.default.ZERO};t.Validator={encode:(e,t=a.default.Writer.create())=>(0!==e.address.length&&t.uint32(10).bytes(e.address),e.power.isZero()||t.uint32(24).int64(e.power),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},de);for(o.address=new Uint8Array;r.pos>>3){case 1:o.address=r.bytes();break;case 3:o.power=r.int64();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},de);return t.address=new Uint8Array,void 0!==e.address&&null!==e.address&&(t.address=ve(e.address)),void 0!==e.power&&null!==e.power?t.power=o.default.fromString(e.power):t.power=o.default.ZERO,t},toJSON(e){const t={};return void 0!==e.address&&(t.address=ye(void 0!==e.address?e.address:new Uint8Array)),void 0!==e.power&&(t.power=(e.power||o.default.ZERO).toString()),t},fromPartial(e){const t=Object.assign({},de);return void 0!==e.address&&null!==e.address?t.address=e.address:t.address=new Uint8Array,void 0!==e.power&&null!==e.power?t.power=e.power:t.power=o.default.ZERO,t}};const le={power:o.default.ZERO};t.ValidatorUpdate={encode:(e,t=a.default.Writer.create())=>(void 0!==e.pubKey&&d.PublicKey.encode(e.pubKey,t.uint32(10).fork()).ldelim(),e.power.isZero()||t.uint32(16).int64(e.power),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},le);for(;r.pos>>3){case 1:o.pubKey=d.PublicKey.decode(r,r.uint32());break;case 2:o.power=r.int64();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},le);return void 0!==e.pubKey&&null!==e.pubKey?t.pubKey=d.PublicKey.fromJSON(e.pubKey):t.pubKey=void 0,void 0!==e.power&&null!==e.power?t.power=o.default.fromString(e.power):t.power=o.default.ZERO,t},toJSON(e){const t={};return void 0!==e.pubKey&&(t.pubKey=e.pubKey?d.PublicKey.toJSON(e.pubKey):void 0),void 0!==e.power&&(t.power=(e.power||o.default.ZERO).toString()),t},fromPartial(e){const t=Object.assign({},le);return void 0!==e.pubKey&&null!==e.pubKey?t.pubKey=d.PublicKey.fromPartial(e.pubKey):t.pubKey=void 0,void 0!==e.power&&null!==e.power?t.power=e.power:t.power=o.default.ZERO,t}};const fe={signedLastBlock:!1};t.VoteInfo={encode:(e,r=a.default.Writer.create())=>(void 0!==e.validator&&t.Validator.encode(e.validator,r.uint32(10).fork()).ldelim(),!0===e.signedLastBlock&&r.uint32(16).bool(e.signedLastBlock),r),decode(e,r){const n=e instanceof a.default.Reader?e:new a.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const i=Object.assign({},fe);for(;n.pos>>3){case 1:i.validator=t.Validator.decode(n,n.uint32());break;case 2:i.signedLastBlock=n.bool();break;default:n.skipType(7&e)}}return i},fromJSON(e){const r=Object.assign({},fe);return void 0!==e.validator&&null!==e.validator?r.validator=t.Validator.fromJSON(e.validator):r.validator=void 0,void 0!==e.signedLastBlock&&null!==e.signedLastBlock?r.signedLastBlock=Boolean(e.signedLastBlock):r.signedLastBlock=!1,r},toJSON(e){const r={};return void 0!==e.validator&&(r.validator=e.validator?t.Validator.toJSON(e.validator):void 0),void 0!==e.signedLastBlock&&(r.signedLastBlock=e.signedLastBlock),r},fromPartial(e){const r=Object.assign({},fe);return void 0!==e.validator&&null!==e.validator?r.validator=t.Validator.fromPartial(e.validator):r.validator=void 0,void 0!==e.signedLastBlock&&null!==e.signedLastBlock?r.signedLastBlock=e.signedLastBlock:r.signedLastBlock=!1,r}};const he={type:0,height:o.default.ZERO,totalVotingPower:o.default.ZERO};t.Evidence={encode:(e,r=a.default.Writer.create())=>(0!==e.type&&r.uint32(8).int32(e.type),void 0!==e.validator&&t.Validator.encode(e.validator,r.uint32(18).fork()).ldelim(),e.height.isZero()||r.uint32(24).int64(e.height),void 0!==e.time&&f.Timestamp.encode(we(e.time),r.uint32(34).fork()).ldelim(),e.totalVotingPower.isZero()||r.uint32(40).int64(e.totalVotingPower),r),decode(e,r){const n=e instanceof a.default.Reader?e:new a.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const i=Object.assign({},he);for(;n.pos>>3){case 1:i.type=n.int32();break;case 2:i.validator=t.Validator.decode(n,n.uint32());break;case 3:i.height=n.int64();break;case 4:i.time=_e(f.Timestamp.decode(n,n.uint32()));break;case 5:i.totalVotingPower=n.int64();break;default:n.skipType(7&e)}}return i},fromJSON(e){const r=Object.assign({},he);return void 0!==e.type&&null!==e.type?r.type=y(e.type):r.type=0,void 0!==e.validator&&null!==e.validator?r.validator=t.Validator.fromJSON(e.validator):r.validator=void 0,void 0!==e.height&&null!==e.height?r.height=o.default.fromString(e.height):r.height=o.default.ZERO,void 0!==e.time&&null!==e.time?r.time=Se(e.time):r.time=void 0,void 0!==e.totalVotingPower&&null!==e.totalVotingPower?r.totalVotingPower=o.default.fromString(e.totalVotingPower):r.totalVotingPower=o.default.ZERO,r},toJSON(e){const r={};return void 0!==e.type&&(r.type=w(e.type)),void 0!==e.validator&&(r.validator=e.validator?t.Validator.toJSON(e.validator):void 0),void 0!==e.height&&(r.height=(e.height||o.default.ZERO).toString()),void 0!==e.time&&(r.time=e.time.toISOString()),void 0!==e.totalVotingPower&&(r.totalVotingPower=(e.totalVotingPower||o.default.ZERO).toString()),r},fromPartial(e){const r=Object.assign({},he);return void 0!==e.type&&null!==e.type?r.type=e.type:r.type=0,void 0!==e.validator&&null!==e.validator?r.validator=t.Validator.fromPartial(e.validator):r.validator=void 0,void 0!==e.height&&null!==e.height?r.height=e.height:r.height=o.default.ZERO,void 0!==e.time&&null!==e.time?r.time=e.time:r.time=void 0,void 0!==e.totalVotingPower&&null!==e.totalVotingPower?r.totalVotingPower=e.totalVotingPower:r.totalVotingPower=o.default.ZERO,r}};const pe={height:o.default.UZERO,format:0,chunks:0};t.Snapshot={encode:(e,t=a.default.Writer.create())=>(e.height.isZero()||t.uint32(8).uint64(e.height),0!==e.format&&t.uint32(16).uint32(e.format),0!==e.chunks&&t.uint32(24).uint32(e.chunks),0!==e.hash.length&&t.uint32(34).bytes(e.hash),0!==e.metadata.length&&t.uint32(42).bytes(e.metadata),t),decode(e,t){const r=e instanceof a.default.Reader?e:new a.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},pe);for(o.hash=new Uint8Array,o.metadata=new Uint8Array;r.pos>>3){case 1:o.height=r.uint64();break;case 2:o.format=r.uint32();break;case 3:o.chunks=r.uint32();break;case 4:o.hash=r.bytes();break;case 5:o.metadata=r.bytes();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},pe);return t.hash=new Uint8Array,t.metadata=new Uint8Array,void 0!==e.height&&null!==e.height?t.height=o.default.fromString(e.height):t.height=o.default.UZERO,void 0!==e.format&&null!==e.format?t.format=Number(e.format):t.format=0,void 0!==e.chunks&&null!==e.chunks?t.chunks=Number(e.chunks):t.chunks=0,void 0!==e.hash&&null!==e.hash&&(t.hash=ve(e.hash)),void 0!==e.metadata&&null!==e.metadata&&(t.metadata=ve(e.metadata)),t},toJSON(e){const t={};return void 0!==e.height&&(t.height=(e.height||o.default.UZERO).toString()),void 0!==e.format&&(t.format=e.format),void 0!==e.chunks&&(t.chunks=e.chunks),void 0!==e.hash&&(t.hash=ye(void 0!==e.hash?e.hash:new Uint8Array)),void 0!==e.metadata&&(t.metadata=ye(void 0!==e.metadata?e.metadata:new Uint8Array)),t},fromPartial(e){const t=Object.assign({},pe);return void 0!==e.height&&null!==e.height?t.height=e.height:t.height=o.default.UZERO,void 0!==e.format&&null!==e.format?t.format=e.format:t.format=0,void 0!==e.chunks&&null!==e.chunks?t.chunks=e.chunks:t.chunks=0,void 0!==e.hash&&null!==e.hash?t.hash=e.hash:t.hash=new Uint8Array,void 0!==e.metadata&&null!==e.metadata?t.metadata=e.metadata:t.metadata=new Uint8Array,t}},t.ABCIApplicationClientImpl=class{constructor(e){this.rpc=e,this.Echo=this.Echo.bind(this),this.Flush=this.Flush.bind(this),this.Info=this.Info.bind(this),this.SetOption=this.SetOption.bind(this),this.DeliverTx=this.DeliverTx.bind(this),this.CheckTx=this.CheckTx.bind(this),this.Query=this.Query.bind(this),this.Commit=this.Commit.bind(this),this.InitChain=this.InitChain.bind(this),this.BeginBlock=this.BeginBlock.bind(this),this.EndBlock=this.EndBlock.bind(this),this.ListSnapshots=this.ListSnapshots.bind(this),this.OfferSnapshot=this.OfferSnapshot.bind(this),this.LoadSnapshotChunk=this.LoadSnapshotChunk.bind(this),this.ApplySnapshotChunk=this.ApplySnapshotChunk.bind(this)}Echo(e,r){return this.rpc.unary(t.ABCIApplicationEchoDesc,t.RequestEcho.fromPartial(e),r)}Flush(e,r){return this.rpc.unary(t.ABCIApplicationFlushDesc,t.RequestFlush.fromPartial(e),r)}Info(e,r){return this.rpc.unary(t.ABCIApplicationInfoDesc,t.RequestInfo.fromPartial(e),r)}SetOption(e,r){return this.rpc.unary(t.ABCIApplicationSetOptionDesc,t.RequestSetOption.fromPartial(e),r)}DeliverTx(e,r){return this.rpc.unary(t.ABCIApplicationDeliverTxDesc,t.RequestDeliverTx.fromPartial(e),r)}CheckTx(e,r){return this.rpc.unary(t.ABCIApplicationCheckTxDesc,t.RequestCheckTx.fromPartial(e),r)}Query(e,r){return this.rpc.unary(t.ABCIApplicationQueryDesc,t.RequestQuery.fromPartial(e),r)}Commit(e,r){return this.rpc.unary(t.ABCIApplicationCommitDesc,t.RequestCommit.fromPartial(e),r)}InitChain(e,r){return this.rpc.unary(t.ABCIApplicationInitChainDesc,t.RequestInitChain.fromPartial(e),r)}BeginBlock(e,r){return this.rpc.unary(t.ABCIApplicationBeginBlockDesc,t.RequestBeginBlock.fromPartial(e),r)}EndBlock(e,r){return this.rpc.unary(t.ABCIApplicationEndBlockDesc,t.RequestEndBlock.fromPartial(e),r)}ListSnapshots(e,r){return this.rpc.unary(t.ABCIApplicationListSnapshotsDesc,t.RequestListSnapshots.fromPartial(e),r)}OfferSnapshot(e,r){return this.rpc.unary(t.ABCIApplicationOfferSnapshotDesc,t.RequestOfferSnapshot.fromPartial(e),r)}LoadSnapshotChunk(e,r){return this.rpc.unary(t.ABCIApplicationLoadSnapshotChunkDesc,t.RequestLoadSnapshotChunk.fromPartial(e),r)}ApplySnapshotChunk(e,r){return this.rpc.unary(t.ABCIApplicationApplySnapshotChunkDesc,t.RequestApplySnapshotChunk.fromPartial(e),r)}},t.ABCIApplicationDesc={serviceName:"tendermint.abci.ABCIApplication"},t.ABCIApplicationEchoDesc={methodName:"Echo",service:t.ABCIApplicationDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.RequestEcho.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.ResponseEcho.decode(e)),{toObject(){return this}})}},t.ABCIApplicationFlushDesc={methodName:"Flush",service:t.ABCIApplicationDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.RequestFlush.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.ResponseFlush.decode(e)),{toObject(){return this}})}},t.ABCIApplicationInfoDesc={methodName:"Info",service:t.ABCIApplicationDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.RequestInfo.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.ResponseInfo.decode(e)),{toObject(){return this}})}},t.ABCIApplicationSetOptionDesc={methodName:"SetOption",service:t.ABCIApplicationDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.RequestSetOption.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.ResponseSetOption.decode(e)),{toObject(){return this}})}},t.ABCIApplicationDeliverTxDesc={methodName:"DeliverTx",service:t.ABCIApplicationDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.RequestDeliverTx.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.ResponseDeliverTx.decode(e)),{toObject(){return this}})}},t.ABCIApplicationCheckTxDesc={methodName:"CheckTx",service:t.ABCIApplicationDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.RequestCheckTx.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.ResponseCheckTx.decode(e)),{toObject(){return this}})}},t.ABCIApplicationQueryDesc={methodName:"Query",service:t.ABCIApplicationDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.RequestQuery.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.ResponseQuery.decode(e)),{toObject(){return this}})}},t.ABCIApplicationCommitDesc={methodName:"Commit",service:t.ABCIApplicationDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.RequestCommit.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.ResponseCommit.decode(e)),{toObject(){return this}})}},t.ABCIApplicationInitChainDesc={methodName:"InitChain",service:t.ABCIApplicationDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.RequestInitChain.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.ResponseInitChain.decode(e)),{toObject(){return this}})}},t.ABCIApplicationBeginBlockDesc={methodName:"BeginBlock",service:t.ABCIApplicationDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.RequestBeginBlock.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.ResponseBeginBlock.decode(e)),{toObject(){return this}})}},t.ABCIApplicationEndBlockDesc={methodName:"EndBlock",service:t.ABCIApplicationDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.RequestEndBlock.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.ResponseEndBlock.decode(e)),{toObject(){return this}})}},t.ABCIApplicationListSnapshotsDesc={methodName:"ListSnapshots",service:t.ABCIApplicationDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.RequestListSnapshots.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.ResponseListSnapshots.decode(e)),{toObject(){return this}})}},t.ABCIApplicationOfferSnapshotDesc={methodName:"OfferSnapshot",service:t.ABCIApplicationDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.RequestOfferSnapshot.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.ResponseOfferSnapshot.decode(e)),{toObject(){return this}})}},t.ABCIApplicationLoadSnapshotChunkDesc={methodName:"LoadSnapshotChunk",service:t.ABCIApplicationDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.RequestLoadSnapshotChunk.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.ResponseLoadSnapshotChunk.decode(e)),{toObject(){return this}})}},t.ABCIApplicationApplySnapshotChunkDesc={methodName:"ApplySnapshotChunk",service:t.ABCIApplicationDesc,requestStream:!1,responseStream:!1,requestType:{serializeBinary(){return t.RequestApplySnapshotChunk.encode(this).finish()}},responseType:{deserializeBinary:e=>Object.assign(Object.assign({},t.ResponseApplySnapshotChunk.decode(e)),{toObject(){return this}})}},t.GrpcWebImpl=class{constructor(e,t){this.host=e,this.options=t}unary(e,t,r){var n;const o=Object.assign(Object.assign({},t),e.requestType),a=r&&this.options.metadata?new l.BrowserHeaders(Object.assign(Object.assign({},null===(n=this.options)||void 0===n?void 0:n.metadata.headersMap),null==r?void 0:r.headersMap)):r||this.options.metadata;return new Promise(((t,r)=>{i.grpc.unary(e,{request:o,host:this.host,metadata:a,transport:this.options.transport,debug:this.options.debug,onEnd:function(e){if(e.status===i.grpc.Code.OK)t(e.message);else{const t=new Error(e.statusMessage);t.code=e.status,t.metadata=e.trailers,r(t)}}})}))}};var me=(()=>{if(void 0!==me)return me;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==r.g)return r.g;throw"Unable to locate global object"})();const ge=me.atob||(e=>me.Buffer.from(e,"base64").toString("binary"));function ve(e){const t=ge(e),r=new Uint8Array(t.length);for(let e=0;eme.Buffer.from(e,"binary").toString("base64"));function ye(e){const t=[];for(const r of e)t.push(String.fromCharCode(r));return be(t.join(""))}function we(e){var t;return{seconds:(t=e.getTime()/1e3,o.default.fromNumber(t)),nanos:e.getTime()%1e3*1e6}}function _e(e){let t=1e3*e.seconds.toNumber();return t+=e.nanos/1e6,new Date(t)}function Se(e){return e instanceof Date?e:"string"==typeof e?new Date(e):_e(f.Timestamp.fromJSON(e))}a.default.util.Long!==o.default&&(a.default.util.Long=o.default,a.default.configure())},82107:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.PublicKey=t.protobufPackage=void 0;const o=n(r(24067)),i=n(r(63967));t.protobufPackage="tendermint.crypto";const a={};t.PublicKey={encode:(e,t=i.default.Writer.create())=>(void 0!==e.ed25519&&t.uint32(10).bytes(e.ed25519),void 0!==e.secp256k1&&t.uint32(18).bytes(e.secp256k1),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},a);for(;r.pos>>3){case 1:o.ed25519=r.bytes();break;case 2:o.secp256k1=r.bytes();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},a);return void 0!==e.ed25519&&null!==e.ed25519&&(t.ed25519=c(e.ed25519)),void 0!==e.secp256k1&&null!==e.secp256k1&&(t.secp256k1=c(e.secp256k1)),t},toJSON(e){const t={};return void 0!==e.ed25519&&(t.ed25519=void 0!==e.ed25519?l(e.ed25519):void 0),void 0!==e.secp256k1&&(t.secp256k1=void 0!==e.secp256k1?l(e.secp256k1):void 0),t},fromPartial(e){const t=Object.assign({},a);return void 0!==e.ed25519&&null!==e.ed25519?t.ed25519=e.ed25519:t.ed25519=void 0,void 0!==e.secp256k1&&null!==e.secp256k1?t.secp256k1=e.secp256k1:t.secp256k1=void 0,t}};var s=(()=>{if(void 0!==s)return s;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==r.g)return r.g;throw"Unable to locate global object"})();const u=s.atob||(e=>s.Buffer.from(e,"base64").toString("binary"));function c(e){const t=u(e),r=new Uint8Array(t.length);for(let e=0;es.Buffer.from(e,"binary").toString("base64"));function l(e){const t=[];for(const r of e)t.push(String.fromCharCode(r));return d(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},88766:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ProofOps=t.ProofOp=t.DominoOp=t.ValueOp=t.Proof=t.protobufPackage=void 0;const o=n(r(24067)),i=n(r(63967));t.protobufPackage="tendermint.crypto";const a={total:o.default.ZERO,index:o.default.ZERO};t.Proof={encode(e,t=i.default.Writer.create()){e.total.isZero()||t.uint32(8).int64(e.total),e.index.isZero()||t.uint32(16).int64(e.index),0!==e.leafHash.length&&t.uint32(26).bytes(e.leafHash);for(const r of e.aunts)t.uint32(34).bytes(r);return t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},a);for(o.aunts=[],o.leafHash=new Uint8Array;r.pos>>3){case 1:o.total=r.int64();break;case 2:o.index=r.int64();break;case 3:o.leafHash=r.bytes();break;case 4:o.aunts.push(r.bytes());break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},a);if(t.aunts=[],t.leafHash=new Uint8Array,void 0!==e.total&&null!==e.total?t.total=o.default.fromString(e.total):t.total=o.default.ZERO,void 0!==e.index&&null!==e.index?t.index=o.default.fromString(e.index):t.index=o.default.ZERO,void 0!==e.leafHash&&null!==e.leafHash&&(t.leafHash=h(e.leafHash)),void 0!==e.aunts&&null!==e.aunts)for(const r of e.aunts)t.aunts.push(h(r));return t},toJSON(e){const t={};return void 0!==e.total&&(t.total=(e.total||o.default.ZERO).toString()),void 0!==e.index&&(t.index=(e.index||o.default.ZERO).toString()),void 0!==e.leafHash&&(t.leafHash=m(void 0!==e.leafHash?e.leafHash:new Uint8Array)),e.aunts?t.aunts=e.aunts.map((e=>m(void 0!==e?e:new Uint8Array))):t.aunts=[],t},fromPartial(e){const t=Object.assign({},a);if(t.aunts=[],void 0!==e.total&&null!==e.total?t.total=e.total:t.total=o.default.ZERO,void 0!==e.index&&null!==e.index?t.index=e.index:t.index=o.default.ZERO,void 0!==e.leafHash&&null!==e.leafHash?t.leafHash=e.leafHash:t.leafHash=new Uint8Array,void 0!==e.aunts&&null!==e.aunts)for(const r of e.aunts)t.aunts.push(r);return t}};const s={};t.ValueOp={encode:(e,r=i.default.Writer.create())=>(0!==e.key.length&&r.uint32(10).bytes(e.key),void 0!==e.proof&&t.Proof.encode(e.proof,r.uint32(18).fork()).ldelim(),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},s);for(a.key=new Uint8Array;n.pos>>3){case 1:a.key=n.bytes();break;case 2:a.proof=t.Proof.decode(n,n.uint32());break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},s);return r.key=new Uint8Array,void 0!==e.key&&null!==e.key&&(r.key=h(e.key)),void 0!==e.proof&&null!==e.proof?r.proof=t.Proof.fromJSON(e.proof):r.proof=void 0,r},toJSON(e){const r={};return void 0!==e.key&&(r.key=m(void 0!==e.key?e.key:new Uint8Array)),void 0!==e.proof&&(r.proof=e.proof?t.Proof.toJSON(e.proof):void 0),r},fromPartial(e){const r=Object.assign({},s);return void 0!==e.key&&null!==e.key?r.key=e.key:r.key=new Uint8Array,void 0!==e.proof&&null!==e.proof?r.proof=t.Proof.fromPartial(e.proof):r.proof=void 0,r}};const u={key:"",input:"",output:""};t.DominoOp={encode:(e,t=i.default.Writer.create())=>(""!==e.key&&t.uint32(10).string(e.key),""!==e.input&&t.uint32(18).string(e.input),""!==e.output&&t.uint32(26).string(e.output),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},u);for(;r.pos>>3){case 1:o.key=r.string();break;case 2:o.input=r.string();break;case 3:o.output=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},u);return void 0!==e.key&&null!==e.key?t.key=String(e.key):t.key="",void 0!==e.input&&null!==e.input?t.input=String(e.input):t.input="",void 0!==e.output&&null!==e.output?t.output=String(e.output):t.output="",t},toJSON(e){const t={};return void 0!==e.key&&(t.key=e.key),void 0!==e.input&&(t.input=e.input),void 0!==e.output&&(t.output=e.output),t},fromPartial(e){const t=Object.assign({},u);return void 0!==e.key&&null!==e.key?t.key=e.key:t.key="",void 0!==e.input&&null!==e.input?t.input=e.input:t.input="",void 0!==e.output&&null!==e.output?t.output=e.output:t.output="",t}};const c={type:""};t.ProofOp={encode:(e,t=i.default.Writer.create())=>(""!==e.type&&t.uint32(10).string(e.type),0!==e.key.length&&t.uint32(18).bytes(e.key),0!==e.data.length&&t.uint32(26).bytes(e.data),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},c);for(o.key=new Uint8Array,o.data=new Uint8Array;r.pos>>3){case 1:o.type=r.string();break;case 2:o.key=r.bytes();break;case 3:o.data=r.bytes();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},c);return t.key=new Uint8Array,t.data=new Uint8Array,void 0!==e.type&&null!==e.type?t.type=String(e.type):t.type="",void 0!==e.key&&null!==e.key&&(t.key=h(e.key)),void 0!==e.data&&null!==e.data&&(t.data=h(e.data)),t},toJSON(e){const t={};return void 0!==e.type&&(t.type=e.type),void 0!==e.key&&(t.key=m(void 0!==e.key?e.key:new Uint8Array)),void 0!==e.data&&(t.data=m(void 0!==e.data?e.data:new Uint8Array)),t},fromPartial(e){const t=Object.assign({},c);return void 0!==e.type&&null!==e.type?t.type=e.type:t.type="",void 0!==e.key&&null!==e.key?t.key=e.key:t.key=new Uint8Array,void 0!==e.data&&null!==e.data?t.data=e.data:t.data=new Uint8Array,t}};const d={};t.ProofOps={encode(e,r=i.default.Writer.create()){for(const n of e.ops)t.ProofOp.encode(n,r.uint32(10).fork()).ldelim();return r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},d);for(a.ops=[];n.pos>>3==1?a.ops.push(t.ProofOp.decode(n,n.uint32())):n.skipType(7&e)}return a},fromJSON(e){const r=Object.assign({},d);if(r.ops=[],void 0!==e.ops&&null!==e.ops)for(const n of e.ops)r.ops.push(t.ProofOp.fromJSON(n));return r},toJSON(e){const r={};return e.ops?r.ops=e.ops.map((e=>e?t.ProofOp.toJSON(e):void 0)):r.ops=[],r},fromPartial(e){const r=Object.assign({},d);if(r.ops=[],void 0!==e.ops&&null!==e.ops)for(const n of e.ops)r.ops.push(t.ProofOp.fromPartial(n));return r}};var l=(()=>{if(void 0!==l)return l;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==r.g)return r.g;throw"Unable to locate global object"})();const f=l.atob||(e=>l.Buffer.from(e,"base64").toString("binary"));function h(e){const t=f(e),r=new Uint8Array(t.length);for(let e=0;el.Buffer.from(e,"binary").toString("base64"));function m(e){const t=[];for(const r of e)t.push(String.fromCharCode(r));return p(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},97661:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.HashedParams=t.VersionParams=t.ValidatorParams=t.EvidenceParams=t.BlockParams=t.ConsensusParams=t.protobufPackage=void 0;const o=n(r(24067)),i=n(r(63967)),a=r(54462);t.protobufPackage="tendermint.types";const s={};t.ConsensusParams={encode:(e,r=i.default.Writer.create())=>(void 0!==e.block&&t.BlockParams.encode(e.block,r.uint32(10).fork()).ldelim(),void 0!==e.evidence&&t.EvidenceParams.encode(e.evidence,r.uint32(18).fork()).ldelim(),void 0!==e.validator&&t.ValidatorParams.encode(e.validator,r.uint32(26).fork()).ldelim(),void 0!==e.version&&t.VersionParams.encode(e.version,r.uint32(34).fork()).ldelim(),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},s);for(;n.pos>>3){case 1:a.block=t.BlockParams.decode(n,n.uint32());break;case 2:a.evidence=t.EvidenceParams.decode(n,n.uint32());break;case 3:a.validator=t.ValidatorParams.decode(n,n.uint32());break;case 4:a.version=t.VersionParams.decode(n,n.uint32());break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},s);return void 0!==e.block&&null!==e.block?r.block=t.BlockParams.fromJSON(e.block):r.block=void 0,void 0!==e.evidence&&null!==e.evidence?r.evidence=t.EvidenceParams.fromJSON(e.evidence):r.evidence=void 0,void 0!==e.validator&&null!==e.validator?r.validator=t.ValidatorParams.fromJSON(e.validator):r.validator=void 0,void 0!==e.version&&null!==e.version?r.version=t.VersionParams.fromJSON(e.version):r.version=void 0,r},toJSON(e){const r={};return void 0!==e.block&&(r.block=e.block?t.BlockParams.toJSON(e.block):void 0),void 0!==e.evidence&&(r.evidence=e.evidence?t.EvidenceParams.toJSON(e.evidence):void 0),void 0!==e.validator&&(r.validator=e.validator?t.ValidatorParams.toJSON(e.validator):void 0),void 0!==e.version&&(r.version=e.version?t.VersionParams.toJSON(e.version):void 0),r},fromPartial(e){const r=Object.assign({},s);return void 0!==e.block&&null!==e.block?r.block=t.BlockParams.fromPartial(e.block):r.block=void 0,void 0!==e.evidence&&null!==e.evidence?r.evidence=t.EvidenceParams.fromPartial(e.evidence):r.evidence=void 0,void 0!==e.validator&&null!==e.validator?r.validator=t.ValidatorParams.fromPartial(e.validator):r.validator=void 0,void 0!==e.version&&null!==e.version?r.version=t.VersionParams.fromPartial(e.version):r.version=void 0,r}};const u={maxBytes:o.default.ZERO,maxGas:o.default.ZERO,timeIotaMs:o.default.ZERO};t.BlockParams={encode:(e,t=i.default.Writer.create())=>(e.maxBytes.isZero()||t.uint32(8).int64(e.maxBytes),e.maxGas.isZero()||t.uint32(16).int64(e.maxGas),e.timeIotaMs.isZero()||t.uint32(24).int64(e.timeIotaMs),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},u);for(;r.pos>>3){case 1:o.maxBytes=r.int64();break;case 2:o.maxGas=r.int64();break;case 3:o.timeIotaMs=r.int64();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},u);return void 0!==e.maxBytes&&null!==e.maxBytes?t.maxBytes=o.default.fromString(e.maxBytes):t.maxBytes=o.default.ZERO,void 0!==e.maxGas&&null!==e.maxGas?t.maxGas=o.default.fromString(e.maxGas):t.maxGas=o.default.ZERO,void 0!==e.timeIotaMs&&null!==e.timeIotaMs?t.timeIotaMs=o.default.fromString(e.timeIotaMs):t.timeIotaMs=o.default.ZERO,t},toJSON(e){const t={};return void 0!==e.maxBytes&&(t.maxBytes=(e.maxBytes||o.default.ZERO).toString()),void 0!==e.maxGas&&(t.maxGas=(e.maxGas||o.default.ZERO).toString()),void 0!==e.timeIotaMs&&(t.timeIotaMs=(e.timeIotaMs||o.default.ZERO).toString()),t},fromPartial(e){const t=Object.assign({},u);return void 0!==e.maxBytes&&null!==e.maxBytes?t.maxBytes=e.maxBytes:t.maxBytes=o.default.ZERO,void 0!==e.maxGas&&null!==e.maxGas?t.maxGas=e.maxGas:t.maxGas=o.default.ZERO,void 0!==e.timeIotaMs&&null!==e.timeIotaMs?t.timeIotaMs=e.timeIotaMs:t.timeIotaMs=o.default.ZERO,t}};const c={maxAgeNumBlocks:o.default.ZERO,maxBytes:o.default.ZERO};t.EvidenceParams={encode:(e,t=i.default.Writer.create())=>(e.maxAgeNumBlocks.isZero()||t.uint32(8).int64(e.maxAgeNumBlocks),void 0!==e.maxAgeDuration&&a.Duration.encode(e.maxAgeDuration,t.uint32(18).fork()).ldelim(),e.maxBytes.isZero()||t.uint32(24).int64(e.maxBytes),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},c);for(;r.pos>>3){case 1:o.maxAgeNumBlocks=r.int64();break;case 2:o.maxAgeDuration=a.Duration.decode(r,r.uint32());break;case 3:o.maxBytes=r.int64();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},c);return void 0!==e.maxAgeNumBlocks&&null!==e.maxAgeNumBlocks?t.maxAgeNumBlocks=o.default.fromString(e.maxAgeNumBlocks):t.maxAgeNumBlocks=o.default.ZERO,void 0!==e.maxAgeDuration&&null!==e.maxAgeDuration?t.maxAgeDuration=a.Duration.fromJSON(e.maxAgeDuration):t.maxAgeDuration=void 0,void 0!==e.maxBytes&&null!==e.maxBytes?t.maxBytes=o.default.fromString(e.maxBytes):t.maxBytes=o.default.ZERO,t},toJSON(e){const t={};return void 0!==e.maxAgeNumBlocks&&(t.maxAgeNumBlocks=(e.maxAgeNumBlocks||o.default.ZERO).toString()),void 0!==e.maxAgeDuration&&(t.maxAgeDuration=e.maxAgeDuration?a.Duration.toJSON(e.maxAgeDuration):void 0),void 0!==e.maxBytes&&(t.maxBytes=(e.maxBytes||o.default.ZERO).toString()),t},fromPartial(e){const t=Object.assign({},c);return void 0!==e.maxAgeNumBlocks&&null!==e.maxAgeNumBlocks?t.maxAgeNumBlocks=e.maxAgeNumBlocks:t.maxAgeNumBlocks=o.default.ZERO,void 0!==e.maxAgeDuration&&null!==e.maxAgeDuration?t.maxAgeDuration=a.Duration.fromPartial(e.maxAgeDuration):t.maxAgeDuration=void 0,void 0!==e.maxBytes&&null!==e.maxBytes?t.maxBytes=e.maxBytes:t.maxBytes=o.default.ZERO,t}};const d={pubKeyTypes:""};t.ValidatorParams={encode(e,t=i.default.Writer.create()){for(const r of e.pubKeyTypes)t.uint32(10).string(r);return t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},d);for(o.pubKeyTypes=[];r.pos>>3==1?o.pubKeyTypes.push(r.string()):r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},d);if(t.pubKeyTypes=[],void 0!==e.pubKeyTypes&&null!==e.pubKeyTypes)for(const r of e.pubKeyTypes)t.pubKeyTypes.push(String(r));return t},toJSON(e){const t={};return e.pubKeyTypes?t.pubKeyTypes=e.pubKeyTypes.map((e=>e)):t.pubKeyTypes=[],t},fromPartial(e){const t=Object.assign({},d);if(t.pubKeyTypes=[],void 0!==e.pubKeyTypes&&null!==e.pubKeyTypes)for(const r of e.pubKeyTypes)t.pubKeyTypes.push(r);return t}};const l={appVersion:o.default.UZERO};t.VersionParams={encode:(e,t=i.default.Writer.create())=>(e.appVersion.isZero()||t.uint32(8).uint64(e.appVersion),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},l);for(;r.pos>>3==1?o.appVersion=r.uint64():r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},l);return void 0!==e.appVersion&&null!==e.appVersion?t.appVersion=o.default.fromString(e.appVersion):t.appVersion=o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.appVersion&&(t.appVersion=(e.appVersion||o.default.UZERO).toString()),t},fromPartial(e){const t=Object.assign({},l);return void 0!==e.appVersion&&null!==e.appVersion?t.appVersion=e.appVersion:t.appVersion=o.default.UZERO,t}};const f={blockMaxBytes:o.default.ZERO,blockMaxGas:o.default.ZERO};t.HashedParams={encode:(e,t=i.default.Writer.create())=>(e.blockMaxBytes.isZero()||t.uint32(8).int64(e.blockMaxBytes),e.blockMaxGas.isZero()||t.uint32(16).int64(e.blockMaxGas),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},f);for(;r.pos>>3){case 1:o.blockMaxBytes=r.int64();break;case 2:o.blockMaxGas=r.int64();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},f);return void 0!==e.blockMaxBytes&&null!==e.blockMaxBytes?t.blockMaxBytes=o.default.fromString(e.blockMaxBytes):t.blockMaxBytes=o.default.ZERO,void 0!==e.blockMaxGas&&null!==e.blockMaxGas?t.blockMaxGas=o.default.fromString(e.blockMaxGas):t.blockMaxGas=o.default.ZERO,t},toJSON(e){const t={};return void 0!==e.blockMaxBytes&&(t.blockMaxBytes=(e.blockMaxBytes||o.default.ZERO).toString()),void 0!==e.blockMaxGas&&(t.blockMaxGas=(e.blockMaxGas||o.default.ZERO).toString()),t},fromPartial(e){const t=Object.assign({},f);return void 0!==e.blockMaxBytes&&null!==e.blockMaxBytes?t.blockMaxBytes=e.blockMaxBytes:t.blockMaxBytes=o.default.ZERO,void 0!==e.blockMaxGas&&null!==e.blockMaxGas?t.blockMaxGas=e.blockMaxGas:t.blockMaxGas=o.default.ZERO,t}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},29387:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.TxProof=t.BlockMeta=t.LightBlock=t.SignedHeader=t.Proposal=t.CommitSig=t.Commit=t.Vote=t.Data=t.Header=t.BlockID=t.Part=t.PartSetHeader=t.signedMsgTypeToJSON=t.signedMsgTypeFromJSON=t.SignedMsgType=t.blockIDFlagToJSON=t.blockIDFlagFromJSON=t.BlockIDFlag=t.protobufPackage=void 0;const o=n(r(24067)),i=n(r(63967)),a=r(88766),s=r(69924),u=r(694),c=r(46759);var d,l;function f(e){switch(e){case 0:case"BLOCK_ID_FLAG_UNKNOWN":return d.BLOCK_ID_FLAG_UNKNOWN;case 1:case"BLOCK_ID_FLAG_ABSENT":return d.BLOCK_ID_FLAG_ABSENT;case 2:case"BLOCK_ID_FLAG_COMMIT":return d.BLOCK_ID_FLAG_COMMIT;case 3:case"BLOCK_ID_FLAG_NIL":return d.BLOCK_ID_FLAG_NIL;default:return d.UNRECOGNIZED}}function h(e){switch(e){case d.BLOCK_ID_FLAG_UNKNOWN:return"BLOCK_ID_FLAG_UNKNOWN";case d.BLOCK_ID_FLAG_ABSENT:return"BLOCK_ID_FLAG_ABSENT";case d.BLOCK_ID_FLAG_COMMIT:return"BLOCK_ID_FLAG_COMMIT";case d.BLOCK_ID_FLAG_NIL:return"BLOCK_ID_FLAG_NIL";default:return"UNKNOWN"}}function p(e){switch(e){case 0:case"SIGNED_MSG_TYPE_UNKNOWN":return l.SIGNED_MSG_TYPE_UNKNOWN;case 1:case"SIGNED_MSG_TYPE_PREVOTE":return l.SIGNED_MSG_TYPE_PREVOTE;case 2:case"SIGNED_MSG_TYPE_PRECOMMIT":return l.SIGNED_MSG_TYPE_PRECOMMIT;case 32:case"SIGNED_MSG_TYPE_PROPOSAL":return l.SIGNED_MSG_TYPE_PROPOSAL;default:return l.UNRECOGNIZED}}function m(e){switch(e){case l.SIGNED_MSG_TYPE_UNKNOWN:return"SIGNED_MSG_TYPE_UNKNOWN";case l.SIGNED_MSG_TYPE_PREVOTE:return"SIGNED_MSG_TYPE_PREVOTE";case l.SIGNED_MSG_TYPE_PRECOMMIT:return"SIGNED_MSG_TYPE_PRECOMMIT";case l.SIGNED_MSG_TYPE_PROPOSAL:return"SIGNED_MSG_TYPE_PROPOSAL";default:return"UNKNOWN"}}t.protobufPackage="tendermint.types",function(e){e[e.BLOCK_ID_FLAG_UNKNOWN=0]="BLOCK_ID_FLAG_UNKNOWN",e[e.BLOCK_ID_FLAG_ABSENT=1]="BLOCK_ID_FLAG_ABSENT",e[e.BLOCK_ID_FLAG_COMMIT=2]="BLOCK_ID_FLAG_COMMIT",e[e.BLOCK_ID_FLAG_NIL=3]="BLOCK_ID_FLAG_NIL",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(d=t.BlockIDFlag||(t.BlockIDFlag={})),t.blockIDFlagFromJSON=f,t.blockIDFlagToJSON=h,function(e){e[e.SIGNED_MSG_TYPE_UNKNOWN=0]="SIGNED_MSG_TYPE_UNKNOWN",e[e.SIGNED_MSG_TYPE_PREVOTE=1]="SIGNED_MSG_TYPE_PREVOTE",e[e.SIGNED_MSG_TYPE_PRECOMMIT=2]="SIGNED_MSG_TYPE_PRECOMMIT",e[e.SIGNED_MSG_TYPE_PROPOSAL=32]="SIGNED_MSG_TYPE_PROPOSAL",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(l=t.SignedMsgType||(t.SignedMsgType={})),t.signedMsgTypeFromJSON=p,t.signedMsgTypeToJSON=m;const g={total:0};t.PartSetHeader={encode:(e,t=i.default.Writer.create())=>(0!==e.total&&t.uint32(8).uint32(e.total),0!==e.hash.length&&t.uint32(18).bytes(e.hash),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},g);for(o.hash=new Uint8Array;r.pos>>3){case 1:o.total=r.uint32();break;case 2:o.hash=r.bytes();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},g);return t.hash=new Uint8Array,void 0!==e.total&&null!==e.total?t.total=Number(e.total):t.total=0,void 0!==e.hash&&null!==e.hash&&(t.hash=x(e.hash)),t},toJSON(e){const t={};return void 0!==e.total&&(t.total=e.total),void 0!==e.hash&&(t.hash=I(void 0!==e.hash?e.hash:new Uint8Array)),t},fromPartial(e){const t=Object.assign({},g);return void 0!==e.total&&null!==e.total?t.total=e.total:t.total=0,void 0!==e.hash&&null!==e.hash?t.hash=e.hash:t.hash=new Uint8Array,t}};const v={index:0};t.Part={encode:(e,t=i.default.Writer.create())=>(0!==e.index&&t.uint32(8).uint32(e.index),0!==e.bytes.length&&t.uint32(18).bytes(e.bytes),void 0!==e.proof&&a.Proof.encode(e.proof,t.uint32(26).fork()).ldelim(),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},v);for(o.bytes=new Uint8Array;r.pos>>3){case 1:o.index=r.uint32();break;case 2:o.bytes=r.bytes();break;case 3:o.proof=a.Proof.decode(r,r.uint32());break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},v);return t.bytes=new Uint8Array,void 0!==e.index&&null!==e.index?t.index=Number(e.index):t.index=0,void 0!==e.bytes&&null!==e.bytes&&(t.bytes=x(e.bytes)),void 0!==e.proof&&null!==e.proof?t.proof=a.Proof.fromJSON(e.proof):t.proof=void 0,t},toJSON(e){const t={};return void 0!==e.index&&(t.index=e.index),void 0!==e.bytes&&(t.bytes=I(void 0!==e.bytes?e.bytes:new Uint8Array)),void 0!==e.proof&&(t.proof=e.proof?a.Proof.toJSON(e.proof):void 0),t},fromPartial(e){const t=Object.assign({},v);return void 0!==e.index&&null!==e.index?t.index=e.index:t.index=0,void 0!==e.bytes&&null!==e.bytes?t.bytes=e.bytes:t.bytes=new Uint8Array,void 0!==e.proof&&null!==e.proof?t.proof=a.Proof.fromPartial(e.proof):t.proof=void 0,t}};const b={};t.BlockID={encode:(e,r=i.default.Writer.create())=>(0!==e.hash.length&&r.uint32(10).bytes(e.hash),void 0!==e.partSetHeader&&t.PartSetHeader.encode(e.partSetHeader,r.uint32(18).fork()).ldelim(),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},b);for(a.hash=new Uint8Array;n.pos>>3){case 1:a.hash=n.bytes();break;case 2:a.partSetHeader=t.PartSetHeader.decode(n,n.uint32());break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},b);return r.hash=new Uint8Array,void 0!==e.hash&&null!==e.hash&&(r.hash=x(e.hash)),void 0!==e.partSetHeader&&null!==e.partSetHeader?r.partSetHeader=t.PartSetHeader.fromJSON(e.partSetHeader):r.partSetHeader=void 0,r},toJSON(e){const r={};return void 0!==e.hash&&(r.hash=I(void 0!==e.hash?e.hash:new Uint8Array)),void 0!==e.partSetHeader&&(r.partSetHeader=e.partSetHeader?t.PartSetHeader.toJSON(e.partSetHeader):void 0),r},fromPartial(e){const r=Object.assign({},b);return void 0!==e.hash&&null!==e.hash?r.hash=e.hash:r.hash=new Uint8Array,void 0!==e.partSetHeader&&null!==e.partSetHeader?r.partSetHeader=t.PartSetHeader.fromPartial(e.partSetHeader):r.partSetHeader=void 0,r}};const y={chainId:"",height:o.default.ZERO};t.Header={encode:(e,r=i.default.Writer.create())=>(void 0!==e.version&&s.Consensus.encode(e.version,r.uint32(10).fork()).ldelim(),""!==e.chainId&&r.uint32(18).string(e.chainId),e.height.isZero()||r.uint32(24).int64(e.height),void 0!==e.time&&c.Timestamp.encode(T(e.time),r.uint32(34).fork()).ldelim(),void 0!==e.lastBlockId&&t.BlockID.encode(e.lastBlockId,r.uint32(42).fork()).ldelim(),0!==e.lastCommitHash.length&&r.uint32(50).bytes(e.lastCommitHash),0!==e.dataHash.length&&r.uint32(58).bytes(e.dataHash),0!==e.validatorsHash.length&&r.uint32(66).bytes(e.validatorsHash),0!==e.nextValidatorsHash.length&&r.uint32(74).bytes(e.nextValidatorsHash),0!==e.consensusHash.length&&r.uint32(82).bytes(e.consensusHash),0!==e.appHash.length&&r.uint32(90).bytes(e.appHash),0!==e.lastResultsHash.length&&r.uint32(98).bytes(e.lastResultsHash),0!==e.evidenceHash.length&&r.uint32(106).bytes(e.evidenceHash),0!==e.proposerAddress.length&&r.uint32(114).bytes(e.proposerAddress),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},y);for(a.lastCommitHash=new Uint8Array,a.dataHash=new Uint8Array,a.validatorsHash=new Uint8Array,a.nextValidatorsHash=new Uint8Array,a.consensusHash=new Uint8Array,a.appHash=new Uint8Array,a.lastResultsHash=new Uint8Array,a.evidenceHash=new Uint8Array,a.proposerAddress=new Uint8Array;n.pos>>3){case 1:a.version=s.Consensus.decode(n,n.uint32());break;case 2:a.chainId=n.string();break;case 3:a.height=n.int64();break;case 4:a.time=j(c.Timestamp.decode(n,n.uint32()));break;case 5:a.lastBlockId=t.BlockID.decode(n,n.uint32());break;case 6:a.lastCommitHash=n.bytes();break;case 7:a.dataHash=n.bytes();break;case 8:a.validatorsHash=n.bytes();break;case 9:a.nextValidatorsHash=n.bytes();break;case 10:a.consensusHash=n.bytes();break;case 11:a.appHash=n.bytes();break;case 12:a.lastResultsHash=n.bytes();break;case 13:a.evidenceHash=n.bytes();break;case 14:a.proposerAddress=n.bytes();break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},y);return r.lastCommitHash=new Uint8Array,r.dataHash=new Uint8Array,r.validatorsHash=new Uint8Array,r.nextValidatorsHash=new Uint8Array,r.consensusHash=new Uint8Array,r.appHash=new Uint8Array,r.lastResultsHash=new Uint8Array,r.evidenceHash=new Uint8Array,r.proposerAddress=new Uint8Array,void 0!==e.version&&null!==e.version?r.version=s.Consensus.fromJSON(e.version):r.version=void 0,void 0!==e.chainId&&null!==e.chainId?r.chainId=String(e.chainId):r.chainId="",void 0!==e.height&&null!==e.height?r.height=o.default.fromString(e.height):r.height=o.default.ZERO,void 0!==e.time&&null!==e.time?r.time=D(e.time):r.time=void 0,void 0!==e.lastBlockId&&null!==e.lastBlockId?r.lastBlockId=t.BlockID.fromJSON(e.lastBlockId):r.lastBlockId=void 0,void 0!==e.lastCommitHash&&null!==e.lastCommitHash&&(r.lastCommitHash=x(e.lastCommitHash)),void 0!==e.dataHash&&null!==e.dataHash&&(r.dataHash=x(e.dataHash)),void 0!==e.validatorsHash&&null!==e.validatorsHash&&(r.validatorsHash=x(e.validatorsHash)),void 0!==e.nextValidatorsHash&&null!==e.nextValidatorsHash&&(r.nextValidatorsHash=x(e.nextValidatorsHash)),void 0!==e.consensusHash&&null!==e.consensusHash&&(r.consensusHash=x(e.consensusHash)),void 0!==e.appHash&&null!==e.appHash&&(r.appHash=x(e.appHash)),void 0!==e.lastResultsHash&&null!==e.lastResultsHash&&(r.lastResultsHash=x(e.lastResultsHash)),void 0!==e.evidenceHash&&null!==e.evidenceHash&&(r.evidenceHash=x(e.evidenceHash)),void 0!==e.proposerAddress&&null!==e.proposerAddress&&(r.proposerAddress=x(e.proposerAddress)),r},toJSON(e){const r={};return void 0!==e.version&&(r.version=e.version?s.Consensus.toJSON(e.version):void 0),void 0!==e.chainId&&(r.chainId=e.chainId),void 0!==e.height&&(r.height=(e.height||o.default.ZERO).toString()),void 0!==e.time&&(r.time=e.time.toISOString()),void 0!==e.lastBlockId&&(r.lastBlockId=e.lastBlockId?t.BlockID.toJSON(e.lastBlockId):void 0),void 0!==e.lastCommitHash&&(r.lastCommitHash=I(void 0!==e.lastCommitHash?e.lastCommitHash:new Uint8Array)),void 0!==e.dataHash&&(r.dataHash=I(void 0!==e.dataHash?e.dataHash:new Uint8Array)),void 0!==e.validatorsHash&&(r.validatorsHash=I(void 0!==e.validatorsHash?e.validatorsHash:new Uint8Array)),void 0!==e.nextValidatorsHash&&(r.nextValidatorsHash=I(void 0!==e.nextValidatorsHash?e.nextValidatorsHash:new Uint8Array)),void 0!==e.consensusHash&&(r.consensusHash=I(void 0!==e.consensusHash?e.consensusHash:new Uint8Array)),void 0!==e.appHash&&(r.appHash=I(void 0!==e.appHash?e.appHash:new Uint8Array)),void 0!==e.lastResultsHash&&(r.lastResultsHash=I(void 0!==e.lastResultsHash?e.lastResultsHash:new Uint8Array)),void 0!==e.evidenceHash&&(r.evidenceHash=I(void 0!==e.evidenceHash?e.evidenceHash:new Uint8Array)),void 0!==e.proposerAddress&&(r.proposerAddress=I(void 0!==e.proposerAddress?e.proposerAddress:new Uint8Array)),r},fromPartial(e){const r=Object.assign({},y);return void 0!==e.version&&null!==e.version?r.version=s.Consensus.fromPartial(e.version):r.version=void 0,void 0!==e.chainId&&null!==e.chainId?r.chainId=e.chainId:r.chainId="",void 0!==e.height&&null!==e.height?r.height=e.height:r.height=o.default.ZERO,void 0!==e.time&&null!==e.time?r.time=e.time:r.time=void 0,void 0!==e.lastBlockId&&null!==e.lastBlockId?r.lastBlockId=t.BlockID.fromPartial(e.lastBlockId):r.lastBlockId=void 0,void 0!==e.lastCommitHash&&null!==e.lastCommitHash?r.lastCommitHash=e.lastCommitHash:r.lastCommitHash=new Uint8Array,void 0!==e.dataHash&&null!==e.dataHash?r.dataHash=e.dataHash:r.dataHash=new Uint8Array,void 0!==e.validatorsHash&&null!==e.validatorsHash?r.validatorsHash=e.validatorsHash:r.validatorsHash=new Uint8Array,void 0!==e.nextValidatorsHash&&null!==e.nextValidatorsHash?r.nextValidatorsHash=e.nextValidatorsHash:r.nextValidatorsHash=new Uint8Array,void 0!==e.consensusHash&&null!==e.consensusHash?r.consensusHash=e.consensusHash:r.consensusHash=new Uint8Array,void 0!==e.appHash&&null!==e.appHash?r.appHash=e.appHash:r.appHash=new Uint8Array,void 0!==e.lastResultsHash&&null!==e.lastResultsHash?r.lastResultsHash=e.lastResultsHash:r.lastResultsHash=new Uint8Array,void 0!==e.evidenceHash&&null!==e.evidenceHash?r.evidenceHash=e.evidenceHash:r.evidenceHash=new Uint8Array,void 0!==e.proposerAddress&&null!==e.proposerAddress?r.proposerAddress=e.proposerAddress:r.proposerAddress=new Uint8Array,r}};const w={};t.Data={encode(e,t=i.default.Writer.create()){for(const r of e.txs)t.uint32(10).bytes(r);return t},decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},w);for(o.txs=[];r.pos>>3==1?o.txs.push(r.bytes()):r.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},w);if(t.txs=[],void 0!==e.txs&&null!==e.txs)for(const r of e.txs)t.txs.push(x(r));return t},toJSON(e){const t={};return e.txs?t.txs=e.txs.map((e=>I(void 0!==e?e:new Uint8Array))):t.txs=[],t},fromPartial(e){const t=Object.assign({},w);if(t.txs=[],void 0!==e.txs&&null!==e.txs)for(const r of e.txs)t.txs.push(r);return t}};const _={type:0,height:o.default.ZERO,round:0,validatorIndex:0};t.Vote={encode:(e,r=i.default.Writer.create())=>(0!==e.type&&r.uint32(8).int32(e.type),e.height.isZero()||r.uint32(16).int64(e.height),0!==e.round&&r.uint32(24).int32(e.round),void 0!==e.blockId&&t.BlockID.encode(e.blockId,r.uint32(34).fork()).ldelim(),void 0!==e.timestamp&&c.Timestamp.encode(T(e.timestamp),r.uint32(42).fork()).ldelim(),0!==e.validatorAddress.length&&r.uint32(50).bytes(e.validatorAddress),0!==e.validatorIndex&&r.uint32(56).int32(e.validatorIndex),0!==e.signature.length&&r.uint32(66).bytes(e.signature),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},_);for(a.validatorAddress=new Uint8Array,a.signature=new Uint8Array;n.pos>>3){case 1:a.type=n.int32();break;case 2:a.height=n.int64();break;case 3:a.round=n.int32();break;case 4:a.blockId=t.BlockID.decode(n,n.uint32());break;case 5:a.timestamp=j(c.Timestamp.decode(n,n.uint32()));break;case 6:a.validatorAddress=n.bytes();break;case 7:a.validatorIndex=n.int32();break;case 8:a.signature=n.bytes();break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},_);return r.validatorAddress=new Uint8Array,r.signature=new Uint8Array,void 0!==e.type&&null!==e.type?r.type=p(e.type):r.type=0,void 0!==e.height&&null!==e.height?r.height=o.default.fromString(e.height):r.height=o.default.ZERO,void 0!==e.round&&null!==e.round?r.round=Number(e.round):r.round=0,void 0!==e.blockId&&null!==e.blockId?r.blockId=t.BlockID.fromJSON(e.blockId):r.blockId=void 0,void 0!==e.timestamp&&null!==e.timestamp?r.timestamp=D(e.timestamp):r.timestamp=void 0,void 0!==e.validatorAddress&&null!==e.validatorAddress&&(r.validatorAddress=x(e.validatorAddress)),void 0!==e.validatorIndex&&null!==e.validatorIndex?r.validatorIndex=Number(e.validatorIndex):r.validatorIndex=0,void 0!==e.signature&&null!==e.signature&&(r.signature=x(e.signature)),r},toJSON(e){const r={};return void 0!==e.type&&(r.type=m(e.type)),void 0!==e.height&&(r.height=(e.height||o.default.ZERO).toString()),void 0!==e.round&&(r.round=e.round),void 0!==e.blockId&&(r.blockId=e.blockId?t.BlockID.toJSON(e.blockId):void 0),void 0!==e.timestamp&&(r.timestamp=e.timestamp.toISOString()),void 0!==e.validatorAddress&&(r.validatorAddress=I(void 0!==e.validatorAddress?e.validatorAddress:new Uint8Array)),void 0!==e.validatorIndex&&(r.validatorIndex=e.validatorIndex),void 0!==e.signature&&(r.signature=I(void 0!==e.signature?e.signature:new Uint8Array)),r},fromPartial(e){const r=Object.assign({},_);return void 0!==e.type&&null!==e.type?r.type=e.type:r.type=0,void 0!==e.height&&null!==e.height?r.height=e.height:r.height=o.default.ZERO,void 0!==e.round&&null!==e.round?r.round=e.round:r.round=0,void 0!==e.blockId&&null!==e.blockId?r.blockId=t.BlockID.fromPartial(e.blockId):r.blockId=void 0,void 0!==e.timestamp&&null!==e.timestamp?r.timestamp=e.timestamp:r.timestamp=void 0,void 0!==e.validatorAddress&&null!==e.validatorAddress?r.validatorAddress=e.validatorAddress:r.validatorAddress=new Uint8Array,void 0!==e.validatorIndex&&null!==e.validatorIndex?r.validatorIndex=e.validatorIndex:r.validatorIndex=0,void 0!==e.signature&&null!==e.signature?r.signature=e.signature:r.signature=new Uint8Array,r}};const S={height:o.default.ZERO,round:0};t.Commit={encode(e,r=i.default.Writer.create()){e.height.isZero()||r.uint32(8).int64(e.height),0!==e.round&&r.uint32(16).int32(e.round),void 0!==e.blockId&&t.BlockID.encode(e.blockId,r.uint32(26).fork()).ldelim();for(const n of e.signatures)t.CommitSig.encode(n,r.uint32(34).fork()).ldelim();return r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},S);for(a.signatures=[];n.pos>>3){case 1:a.height=n.int64();break;case 2:a.round=n.int32();break;case 3:a.blockId=t.BlockID.decode(n,n.uint32());break;case 4:a.signatures.push(t.CommitSig.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},S);if(r.signatures=[],void 0!==e.height&&null!==e.height?r.height=o.default.fromString(e.height):r.height=o.default.ZERO,void 0!==e.round&&null!==e.round?r.round=Number(e.round):r.round=0,void 0!==e.blockId&&null!==e.blockId?r.blockId=t.BlockID.fromJSON(e.blockId):r.blockId=void 0,void 0!==e.signatures&&null!==e.signatures)for(const n of e.signatures)r.signatures.push(t.CommitSig.fromJSON(n));return r},toJSON(e){const r={};return void 0!==e.height&&(r.height=(e.height||o.default.ZERO).toString()),void 0!==e.round&&(r.round=e.round),void 0!==e.blockId&&(r.blockId=e.blockId?t.BlockID.toJSON(e.blockId):void 0),e.signatures?r.signatures=e.signatures.map((e=>e?t.CommitSig.toJSON(e):void 0)):r.signatures=[],r},fromPartial(e){const r=Object.assign({},S);if(r.signatures=[],void 0!==e.height&&null!==e.height?r.height=e.height:r.height=o.default.ZERO,void 0!==e.round&&null!==e.round?r.round=e.round:r.round=0,void 0!==e.blockId&&null!==e.blockId?r.blockId=t.BlockID.fromPartial(e.blockId):r.blockId=void 0,void 0!==e.signatures&&null!==e.signatures)for(const n of e.signatures)r.signatures.push(t.CommitSig.fromPartial(n));return r}};const O={blockIdFlag:0};t.CommitSig={encode:(e,t=i.default.Writer.create())=>(0!==e.blockIdFlag&&t.uint32(8).int32(e.blockIdFlag),0!==e.validatorAddress.length&&t.uint32(18).bytes(e.validatorAddress),void 0!==e.timestamp&&c.Timestamp.encode(T(e.timestamp),t.uint32(26).fork()).ldelim(),0!==e.signature.length&&t.uint32(34).bytes(e.signature),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},O);for(o.validatorAddress=new Uint8Array,o.signature=new Uint8Array;r.pos>>3){case 1:o.blockIdFlag=r.int32();break;case 2:o.validatorAddress=r.bytes();break;case 3:o.timestamp=j(c.Timestamp.decode(r,r.uint32()));break;case 4:o.signature=r.bytes();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},O);return t.validatorAddress=new Uint8Array,t.signature=new Uint8Array,void 0!==e.blockIdFlag&&null!==e.blockIdFlag?t.blockIdFlag=f(e.blockIdFlag):t.blockIdFlag=0,void 0!==e.validatorAddress&&null!==e.validatorAddress&&(t.validatorAddress=x(e.validatorAddress)),void 0!==e.timestamp&&null!==e.timestamp?t.timestamp=D(e.timestamp):t.timestamp=void 0,void 0!==e.signature&&null!==e.signature&&(t.signature=x(e.signature)),t},toJSON(e){const t={};return void 0!==e.blockIdFlag&&(t.blockIdFlag=h(e.blockIdFlag)),void 0!==e.validatorAddress&&(t.validatorAddress=I(void 0!==e.validatorAddress?e.validatorAddress:new Uint8Array)),void 0!==e.timestamp&&(t.timestamp=e.timestamp.toISOString()),void 0!==e.signature&&(t.signature=I(void 0!==e.signature?e.signature:new Uint8Array)),t},fromPartial(e){const t=Object.assign({},O);return void 0!==e.blockIdFlag&&null!==e.blockIdFlag?t.blockIdFlag=e.blockIdFlag:t.blockIdFlag=0,void 0!==e.validatorAddress&&null!==e.validatorAddress?t.validatorAddress=e.validatorAddress:t.validatorAddress=new Uint8Array,void 0!==e.timestamp&&null!==e.timestamp?t.timestamp=e.timestamp:t.timestamp=void 0,void 0!==e.signature&&null!==e.signature?t.signature=e.signature:t.signature=new Uint8Array,t}};const k={type:0,height:o.default.ZERO,round:0,polRound:0};t.Proposal={encode:(e,r=i.default.Writer.create())=>(0!==e.type&&r.uint32(8).int32(e.type),e.height.isZero()||r.uint32(16).int64(e.height),0!==e.round&&r.uint32(24).int32(e.round),0!==e.polRound&&r.uint32(32).int32(e.polRound),void 0!==e.blockId&&t.BlockID.encode(e.blockId,r.uint32(42).fork()).ldelim(),void 0!==e.timestamp&&c.Timestamp.encode(T(e.timestamp),r.uint32(50).fork()).ldelim(),0!==e.signature.length&&r.uint32(58).bytes(e.signature),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},k);for(a.signature=new Uint8Array;n.pos>>3){case 1:a.type=n.int32();break;case 2:a.height=n.int64();break;case 3:a.round=n.int32();break;case 4:a.polRound=n.int32();break;case 5:a.blockId=t.BlockID.decode(n,n.uint32());break;case 6:a.timestamp=j(c.Timestamp.decode(n,n.uint32()));break;case 7:a.signature=n.bytes();break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},k);return r.signature=new Uint8Array,void 0!==e.type&&null!==e.type?r.type=p(e.type):r.type=0,void 0!==e.height&&null!==e.height?r.height=o.default.fromString(e.height):r.height=o.default.ZERO,void 0!==e.round&&null!==e.round?r.round=Number(e.round):r.round=0,void 0!==e.polRound&&null!==e.polRound?r.polRound=Number(e.polRound):r.polRound=0,void 0!==e.blockId&&null!==e.blockId?r.blockId=t.BlockID.fromJSON(e.blockId):r.blockId=void 0,void 0!==e.timestamp&&null!==e.timestamp?r.timestamp=D(e.timestamp):r.timestamp=void 0,void 0!==e.signature&&null!==e.signature&&(r.signature=x(e.signature)),r},toJSON(e){const r={};return void 0!==e.type&&(r.type=m(e.type)),void 0!==e.height&&(r.height=(e.height||o.default.ZERO).toString()),void 0!==e.round&&(r.round=e.round),void 0!==e.polRound&&(r.polRound=e.polRound),void 0!==e.blockId&&(r.blockId=e.blockId?t.BlockID.toJSON(e.blockId):void 0),void 0!==e.timestamp&&(r.timestamp=e.timestamp.toISOString()),void 0!==e.signature&&(r.signature=I(void 0!==e.signature?e.signature:new Uint8Array)),r},fromPartial(e){const r=Object.assign({},k);return void 0!==e.type&&null!==e.type?r.type=e.type:r.type=0,void 0!==e.height&&null!==e.height?r.height=e.height:r.height=o.default.ZERO,void 0!==e.round&&null!==e.round?r.round=e.round:r.round=0,void 0!==e.polRound&&null!==e.polRound?r.polRound=e.polRound:r.polRound=0,void 0!==e.blockId&&null!==e.blockId?r.blockId=t.BlockID.fromPartial(e.blockId):r.blockId=void 0,void 0!==e.timestamp&&null!==e.timestamp?r.timestamp=e.timestamp:r.timestamp=void 0,void 0!==e.signature&&null!==e.signature?r.signature=e.signature:r.signature=new Uint8Array,r}};const A={};t.SignedHeader={encode:(e,r=i.default.Writer.create())=>(void 0!==e.header&&t.Header.encode(e.header,r.uint32(10).fork()).ldelim(),void 0!==e.commit&&t.Commit.encode(e.commit,r.uint32(18).fork()).ldelim(),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},A);for(;n.pos>>3){case 1:a.header=t.Header.decode(n,n.uint32());break;case 2:a.commit=t.Commit.decode(n,n.uint32());break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},A);return void 0!==e.header&&null!==e.header?r.header=t.Header.fromJSON(e.header):r.header=void 0,void 0!==e.commit&&null!==e.commit?r.commit=t.Commit.fromJSON(e.commit):r.commit=void 0,r},toJSON(e){const r={};return void 0!==e.header&&(r.header=e.header?t.Header.toJSON(e.header):void 0),void 0!==e.commit&&(r.commit=e.commit?t.Commit.toJSON(e.commit):void 0),r},fromPartial(e){const r=Object.assign({},A);return void 0!==e.header&&null!==e.header?r.header=t.Header.fromPartial(e.header):r.header=void 0,void 0!==e.commit&&null!==e.commit?r.commit=t.Commit.fromPartial(e.commit):r.commit=void 0,r}};const P={};t.LightBlock={encode:(e,r=i.default.Writer.create())=>(void 0!==e.signedHeader&&t.SignedHeader.encode(e.signedHeader,r.uint32(10).fork()).ldelim(),void 0!==e.validatorSet&&u.ValidatorSet.encode(e.validatorSet,r.uint32(18).fork()).ldelim(),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},P);for(;n.pos>>3){case 1:a.signedHeader=t.SignedHeader.decode(n,n.uint32());break;case 2:a.validatorSet=u.ValidatorSet.decode(n,n.uint32());break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},P);return void 0!==e.signedHeader&&null!==e.signedHeader?r.signedHeader=t.SignedHeader.fromJSON(e.signedHeader):r.signedHeader=void 0,void 0!==e.validatorSet&&null!==e.validatorSet?r.validatorSet=u.ValidatorSet.fromJSON(e.validatorSet):r.validatorSet=void 0,r},toJSON(e){const r={};return void 0!==e.signedHeader&&(r.signedHeader=e.signedHeader?t.SignedHeader.toJSON(e.signedHeader):void 0),void 0!==e.validatorSet&&(r.validatorSet=e.validatorSet?u.ValidatorSet.toJSON(e.validatorSet):void 0),r},fromPartial(e){const r=Object.assign({},P);return void 0!==e.signedHeader&&null!==e.signedHeader?r.signedHeader=t.SignedHeader.fromPartial(e.signedHeader):r.signedHeader=void 0,void 0!==e.validatorSet&&null!==e.validatorSet?r.validatorSet=u.ValidatorSet.fromPartial(e.validatorSet):r.validatorSet=void 0,r}};const M={blockSize:o.default.ZERO,numTxs:o.default.ZERO};t.BlockMeta={encode:(e,r=i.default.Writer.create())=>(void 0!==e.blockId&&t.BlockID.encode(e.blockId,r.uint32(10).fork()).ldelim(),e.blockSize.isZero()||r.uint32(16).int64(e.blockSize),void 0!==e.header&&t.Header.encode(e.header,r.uint32(26).fork()).ldelim(),e.numTxs.isZero()||r.uint32(32).int64(e.numTxs),r),decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},M);for(;n.pos>>3){case 1:a.blockId=t.BlockID.decode(n,n.uint32());break;case 2:a.blockSize=n.int64();break;case 3:a.header=t.Header.decode(n,n.uint32());break;case 4:a.numTxs=n.int64();break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},M);return void 0!==e.blockId&&null!==e.blockId?r.blockId=t.BlockID.fromJSON(e.blockId):r.blockId=void 0,void 0!==e.blockSize&&null!==e.blockSize?r.blockSize=o.default.fromString(e.blockSize):r.blockSize=o.default.ZERO,void 0!==e.header&&null!==e.header?r.header=t.Header.fromJSON(e.header):r.header=void 0,void 0!==e.numTxs&&null!==e.numTxs?r.numTxs=o.default.fromString(e.numTxs):r.numTxs=o.default.ZERO,r},toJSON(e){const r={};return void 0!==e.blockId&&(r.blockId=e.blockId?t.BlockID.toJSON(e.blockId):void 0),void 0!==e.blockSize&&(r.blockSize=(e.blockSize||o.default.ZERO).toString()),void 0!==e.header&&(r.header=e.header?t.Header.toJSON(e.header):void 0),void 0!==e.numTxs&&(r.numTxs=(e.numTxs||o.default.ZERO).toString()),r},fromPartial(e){const r=Object.assign({},M);return void 0!==e.blockId&&null!==e.blockId?r.blockId=t.BlockID.fromPartial(e.blockId):r.blockId=void 0,void 0!==e.blockSize&&null!==e.blockSize?r.blockSize=e.blockSize:r.blockSize=o.default.ZERO,void 0!==e.header&&null!==e.header?r.header=t.Header.fromPartial(e.header):r.header=void 0,void 0!==e.numTxs&&null!==e.numTxs?r.numTxs=e.numTxs:r.numTxs=o.default.ZERO,r}};const E={};t.TxProof={encode:(e,t=i.default.Writer.create())=>(0!==e.rootHash.length&&t.uint32(10).bytes(e.rootHash),0!==e.data.length&&t.uint32(18).bytes(e.data),void 0!==e.proof&&a.Proof.encode(e.proof,t.uint32(26).fork()).ldelim(),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},E);for(o.rootHash=new Uint8Array,o.data=new Uint8Array;r.pos>>3){case 1:o.rootHash=r.bytes();break;case 2:o.data=r.bytes();break;case 3:o.proof=a.Proof.decode(r,r.uint32());break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},E);return t.rootHash=new Uint8Array,t.data=new Uint8Array,void 0!==e.rootHash&&null!==e.rootHash&&(t.rootHash=x(e.rootHash)),void 0!==e.data&&null!==e.data&&(t.data=x(e.data)),void 0!==e.proof&&null!==e.proof?t.proof=a.Proof.fromJSON(e.proof):t.proof=void 0,t},toJSON(e){const t={};return void 0!==e.rootHash&&(t.rootHash=I(void 0!==e.rootHash?e.rootHash:new Uint8Array)),void 0!==e.data&&(t.data=I(void 0!==e.data?e.data:new Uint8Array)),void 0!==e.proof&&(t.proof=e.proof?a.Proof.toJSON(e.proof):void 0),t},fromPartial(e){const t=Object.assign({},E);return void 0!==e.rootHash&&null!==e.rootHash?t.rootHash=e.rootHash:t.rootHash=new Uint8Array,void 0!==e.data&&null!==e.data?t.data=e.data:t.data=new Uint8Array,void 0!==e.proof&&null!==e.proof?t.proof=a.Proof.fromPartial(e.proof):t.proof=void 0,t}};var C=(()=>{if(void 0!==C)return C;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==r.g)return r.g;throw"Unable to locate global object"})();const N=C.atob||(e=>C.Buffer.from(e,"base64").toString("binary"));function x(e){const t=N(e),r=new Uint8Array(t.length);for(let e=0;eC.Buffer.from(e,"binary").toString("base64"));function I(e){const t=[];for(const r of e)t.push(String.fromCharCode(r));return R(t.join(""))}function T(e){var t;return{seconds:(t=e.getTime()/1e3,o.default.fromNumber(t)),nanos:e.getTime()%1e3*1e6}}function j(e){let t=1e3*e.seconds.toNumber();return t+=e.nanos/1e6,new Date(t)}function D(e){return e instanceof Date?e:"string"==typeof e?new Date(e):j(c.Timestamp.fromJSON(e))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},694:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.SimpleValidator=t.Validator=t.ValidatorSet=t.protobufPackage=void 0;const o=n(r(24067)),i=n(r(63967)),a=r(82107);t.protobufPackage="tendermint.types";const s={totalVotingPower:o.default.ZERO};t.ValidatorSet={encode(e,r=i.default.Writer.create()){for(const n of e.validators)t.Validator.encode(n,r.uint32(10).fork()).ldelim();return void 0!==e.proposer&&t.Validator.encode(e.proposer,r.uint32(18).fork()).ldelim(),e.totalVotingPower.isZero()||r.uint32(24).int64(e.totalVotingPower),r},decode(e,r){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===r?n.len:n.pos+r;const a=Object.assign({},s);for(a.validators=[];n.pos>>3){case 1:a.validators.push(t.Validator.decode(n,n.uint32()));break;case 2:a.proposer=t.Validator.decode(n,n.uint32());break;case 3:a.totalVotingPower=n.int64();break;default:n.skipType(7&e)}}return a},fromJSON(e){const r=Object.assign({},s);if(r.validators=[],void 0!==e.validators&&null!==e.validators)for(const n of e.validators)r.validators.push(t.Validator.fromJSON(n));return void 0!==e.proposer&&null!==e.proposer?r.proposer=t.Validator.fromJSON(e.proposer):r.proposer=void 0,void 0!==e.totalVotingPower&&null!==e.totalVotingPower?r.totalVotingPower=o.default.fromString(e.totalVotingPower):r.totalVotingPower=o.default.ZERO,r},toJSON(e){const r={};return e.validators?r.validators=e.validators.map((e=>e?t.Validator.toJSON(e):void 0)):r.validators=[],void 0!==e.proposer&&(r.proposer=e.proposer?t.Validator.toJSON(e.proposer):void 0),void 0!==e.totalVotingPower&&(r.totalVotingPower=(e.totalVotingPower||o.default.ZERO).toString()),r},fromPartial(e){const r=Object.assign({},s);if(r.validators=[],void 0!==e.validators&&null!==e.validators)for(const n of e.validators)r.validators.push(t.Validator.fromPartial(n));return void 0!==e.proposer&&null!==e.proposer?r.proposer=t.Validator.fromPartial(e.proposer):r.proposer=void 0,void 0!==e.totalVotingPower&&null!==e.totalVotingPower?r.totalVotingPower=e.totalVotingPower:r.totalVotingPower=o.default.ZERO,r}};const u={votingPower:o.default.ZERO,proposerPriority:o.default.ZERO};t.Validator={encode:(e,t=i.default.Writer.create())=>(0!==e.address.length&&t.uint32(10).bytes(e.address),void 0!==e.pubKey&&a.PublicKey.encode(e.pubKey,t.uint32(18).fork()).ldelim(),e.votingPower.isZero()||t.uint32(24).int64(e.votingPower),e.proposerPriority.isZero()||t.uint32(32).int64(e.proposerPriority),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},u);for(o.address=new Uint8Array;r.pos>>3){case 1:o.address=r.bytes();break;case 2:o.pubKey=a.PublicKey.decode(r,r.uint32());break;case 3:o.votingPower=r.int64();break;case 4:o.proposerPriority=r.int64();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},u);return t.address=new Uint8Array,void 0!==e.address&&null!==e.address&&(t.address=function(e){const t=l(e),r=new Uint8Array(t.length);for(let e=0;e(void 0!==e.pubKey&&a.PublicKey.encode(e.pubKey,t.uint32(10).fork()).ldelim(),e.votingPower.isZero()||t.uint32(16).int64(e.votingPower),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},c);for(;r.pos>>3){case 1:o.pubKey=a.PublicKey.decode(r,r.uint32());break;case 2:o.votingPower=r.int64();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},c);return void 0!==e.pubKey&&null!==e.pubKey?t.pubKey=a.PublicKey.fromJSON(e.pubKey):t.pubKey=void 0,void 0!==e.votingPower&&null!==e.votingPower?t.votingPower=o.default.fromString(e.votingPower):t.votingPower=o.default.ZERO,t},toJSON(e){const t={};return void 0!==e.pubKey&&(t.pubKey=e.pubKey?a.PublicKey.toJSON(e.pubKey):void 0),void 0!==e.votingPower&&(t.votingPower=(e.votingPower||o.default.ZERO).toString()),t},fromPartial(e){const t=Object.assign({},c);return void 0!==e.pubKey&&null!==e.pubKey?t.pubKey=a.PublicKey.fromPartial(e.pubKey):t.pubKey=void 0,void 0!==e.votingPower&&null!==e.votingPower?t.votingPower=e.votingPower:t.votingPower=o.default.ZERO,t}};var d=(()=>{if(void 0!==d)return d;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==r.g)return r.g;throw"Unable to locate global object"})();const l=d.atob||(e=>d.Buffer.from(e,"base64").toString("binary")),f=d.btoa||(e=>d.Buffer.from(e,"binary").toString("base64"));i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},69924:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Consensus=t.App=t.protobufPackage=void 0;const o=n(r(24067)),i=n(r(63967));t.protobufPackage="tendermint.version";const a={protocol:o.default.UZERO,software:""};t.App={encode:(e,t=i.default.Writer.create())=>(e.protocol.isZero()||t.uint32(8).uint64(e.protocol),""!==e.software&&t.uint32(18).string(e.software),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},a);for(;r.pos>>3){case 1:o.protocol=r.uint64();break;case 2:o.software=r.string();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},a);return void 0!==e.protocol&&null!==e.protocol?t.protocol=o.default.fromString(e.protocol):t.protocol=o.default.UZERO,void 0!==e.software&&null!==e.software?t.software=String(e.software):t.software="",t},toJSON(e){const t={};return void 0!==e.protocol&&(t.protocol=(e.protocol||o.default.UZERO).toString()),void 0!==e.software&&(t.software=e.software),t},fromPartial(e){const t=Object.assign({},a);return void 0!==e.protocol&&null!==e.protocol?t.protocol=e.protocol:t.protocol=o.default.UZERO,void 0!==e.software&&null!==e.software?t.software=e.software:t.software="",t}};const s={block:o.default.UZERO,app:o.default.UZERO};t.Consensus={encode:(e,t=i.default.Writer.create())=>(e.block.isZero()||t.uint32(8).uint64(e.block),e.app.isZero()||t.uint32(16).uint64(e.app),t),decode(e,t){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let n=void 0===t?r.len:r.pos+t;const o=Object.assign({},s);for(;r.pos>>3){case 1:o.block=r.uint64();break;case 2:o.app=r.uint64();break;default:r.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},s);return void 0!==e.block&&null!==e.block?t.block=o.default.fromString(e.block):t.block=o.default.UZERO,void 0!==e.app&&null!==e.app?t.app=o.default.fromString(e.app):t.app=o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.block&&(t.block=(e.block||o.default.UZERO).toString()),void 0!==e.app&&(t.app=(e.app||o.default.UZERO).toString()),t},fromPartial(e){const t=Object.assign({},s);return void 0!==e.block&&null!==e.block?t.block=e.block:t.block=o.default.UZERO,void 0!==e.app&&null!==e.app?t.app=e.app:t.app=o.default.UZERO,t}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},62200:function(e){var t;t=function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.i=function(e){return e},r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:n})},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=1)}([function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(3),o=function(){function e(e,t){void 0===e&&(e={}),void 0===t&&(t={splitValues:!1});var r,o=this;this.headersMap={},e&&("undefined"!=typeof Headers&&e instanceof Headers?n.getHeaderKeys(e).forEach((function(r){n.getHeaderValues(e,r).forEach((function(e){t.splitValues?o.append(r,n.splitHeaderValue(e)):o.append(r,e)}))})):"object"==typeof(r=e)&&"object"==typeof r.headersMap&&"function"==typeof r.forEach?e.forEach((function(e,t){o.append(e,t)})):"undefined"!=typeof Map&&e instanceof Map?e.forEach((function(e,t){o.append(t,e)})):"string"==typeof e?this.appendFromString(e):"object"==typeof e&&Object.getOwnPropertyNames(e).forEach((function(t){var r=e[t];Array.isArray(r)?r.forEach((function(e){o.append(t,e)})):o.append(t,r)})))}return e.prototype.appendFromString=function(e){for(var t=e.split("\r\n"),r=0;r0){var i=n.substring(0,o).trim(),a=n.substring(o+1).trim();this.append(i,a)}}},e.prototype.delete=function(e,t){var r=n.normalizeName(e);if(void 0===t)delete this.headersMap[r];else{var o=this.headersMap[r];if(o){var i=o.indexOf(t);i>=0&&o.splice(i,1),0===o.length&&delete this.headersMap[r]}}},e.prototype.append=function(e,t){var r=this,o=n.normalizeName(e);Array.isArray(this.headersMap[o])||(this.headersMap[o]=[]),Array.isArray(t)?t.forEach((function(e){r.headersMap[o].push(n.normalizeValue(e))})):this.headersMap[o].push(n.normalizeValue(t))},e.prototype.set=function(e,t){var r=n.normalizeName(e);if(Array.isArray(t)){var o=[];t.forEach((function(e){o.push(n.normalizeValue(e))})),this.headersMap[r]=o}else this.headersMap[r]=[n.normalizeValue(t)]},e.prototype.has=function(e,t){var r=this.headersMap[n.normalizeName(e)];if(!Array.isArray(r))return!1;if(void 0!==t){var o=n.normalizeValue(t);return r.indexOf(o)>=0}return!0},e.prototype.get=function(e){var t=this.headersMap[n.normalizeName(e)];return void 0!==t?t.concat():[]},e.prototype.forEach=function(e){var t=this;Object.getOwnPropertyNames(this.headersMap).forEach((function(r){e(r,t.headersMap[r])}),this)},e.prototype.toHeaders=function(){if("undefined"!=typeof Headers){var e=new Headers;return this.forEach((function(t,r){r.forEach((function(r){e.append(t,r)}))})),e}throw new Error("Headers class is not defined")},e}();t.BrowserHeaders=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(0);t.BrowserHeaders=n.BrowserHeaders},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.iterateHeaders=function(e,t){for(var r=e[Symbol.iterator](),n=r.next();!n.done;)t(n.value[0]),n=r.next()},t.iterateHeadersKeys=function(e,t){for(var r=e.keys(),n=r.next();!n.done;)t(n.value),n=r.next()}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(2);t.normalizeName=function(e){if("string"!=typeof e&&(e=String(e)),/[^a-z0-9\-#$%&'*+.\^_`|~]/i.test(e))throw new TypeError("Invalid character in header field name");return e.toLowerCase()},t.normalizeValue=function(e){return"string"!=typeof e&&(e=String(e)),e},t.getHeaderValues=function(e,t){var r=e;if(r instanceof Headers&&r.getAll)return r.getAll(t);var n=r.get(t);return n&&"string"==typeof n?[n]:n},t.getHeaderKeys=function(e){var t=e,r={},o=[];return t.keys?n.iterateHeadersKeys(t,(function(e){r[e]||(r[e]=!0,o.push(e))})):t.forEach?t.forEach((function(e,t){r[t]||(r[t]=!0,o.push(t))})):n.iterateHeaders(t,(function(e){var t=e[0];r[t]||(r[t]=!0,o.push(t))})),o},t.splitHeaderValue=function(e){var t=[];return e.split(", ").forEach((function(e){e.split(",").forEach((function(e){t.push(e)}))})),t}}])},e.exports=t()},24067:e=>{e.exports=r;var t=null;try{t=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch(e){}function r(e,t,r){this.low=0|e,this.high=0|t,this.unsigned=!!r}function n(e){return!0===(e&&e.__isLong__)}r.prototype.__isLong__,Object.defineProperty(r.prototype,"__isLong__",{value:!0}),r.isLong=n;var o={},i={};function a(e,t){var r,n,a;return t?(a=0<=(e>>>=0)&&e<256)&&(n=i[e])?n:(r=u(e,(0|e)<0?-1:0,!0),a&&(i[e]=r),r):(a=-128<=(e|=0)&&e<128)&&(n=o[e])?n:(r=u(e,e<0?-1:0,!1),a&&(o[e]=r),r)}function s(e,t){if(isNaN(e))return t?v:g;if(t){if(e<0)return v;if(e>=h)return S}else{if(e<=-p)return O;if(e+1>=p)return _}return e<0?s(-e,t).neg():u(e%f|0,e/f|0,t)}function u(e,t,n){return new r(e,t,n)}r.fromInt=a,r.fromNumber=s,r.fromBits=u;var c=Math.pow;function d(e,t,r){if(0===e.length)throw Error("empty string");if("NaN"===e||"Infinity"===e||"+Infinity"===e||"-Infinity"===e)return g;if("number"==typeof t?(r=t,t=!1):t=!!t,(r=r||10)<2||360)throw Error("interior hyphen");if(0===n)return d(e.substring(1),t,r).neg();for(var o=s(c(r,8)),i=g,a=0;a>>0:this.low},k.toNumber=function(){return this.unsigned?(this.high>>>0)*f+(this.low>>>0):this.high*f+(this.low>>>0)},k.toString=function(e){if((e=e||10)<2||36>>0).toString(e);if((i=u).isZero())return d+a;for(;d.length<6;)d="0"+d;a=""+d+a}},k.getHighBits=function(){return this.high},k.getHighBitsUnsigned=function(){return this.high>>>0},k.getLowBits=function(){return this.low},k.getLowBitsUnsigned=function(){return this.low>>>0},k.getNumBitsAbs=function(){if(this.isNegative())return this.eq(O)?64:this.neg().getNumBitsAbs();for(var e=0!=this.high?this.high:this.low,t=31;t>0&&0==(e&1<=0},k.isOdd=function(){return 1==(1&this.low)},k.isEven=function(){return 0==(1&this.low)},k.equals=function(e){return n(e)||(e=l(e)),(this.unsigned===e.unsigned||this.high>>>31!=1||e.high>>>31!=1)&&this.high===e.high&&this.low===e.low},k.eq=k.equals,k.notEquals=function(e){return!this.eq(e)},k.neq=k.notEquals,k.ne=k.notEquals,k.lessThan=function(e){return this.comp(e)<0},k.lt=k.lessThan,k.lessThanOrEqual=function(e){return this.comp(e)<=0},k.lte=k.lessThanOrEqual,k.le=k.lessThanOrEqual,k.greaterThan=function(e){return this.comp(e)>0},k.gt=k.greaterThan,k.greaterThanOrEqual=function(e){return this.comp(e)>=0},k.gte=k.greaterThanOrEqual,k.ge=k.greaterThanOrEqual,k.compare=function(e){if(n(e)||(e=l(e)),this.eq(e))return 0;var t=this.isNegative(),r=e.isNegative();return t&&!r?-1:!t&&r?1:this.unsigned?e.high>>>0>this.high>>>0||e.high===this.high&&e.low>>>0>this.low>>>0?-1:1:this.sub(e).isNegative()?-1:1},k.comp=k.compare,k.negate=function(){return!this.unsigned&&this.eq(O)?O:this.not().add(b)},k.neg=k.negate,k.add=function(e){n(e)||(e=l(e));var t=this.high>>>16,r=65535&this.high,o=this.low>>>16,i=65535&this.low,a=e.high>>>16,s=65535&e.high,c=e.low>>>16,d=0,f=0,h=0,p=0;return h+=(p+=i+(65535&e.low))>>>16,f+=(h+=o+c)>>>16,d+=(f+=r+s)>>>16,d+=t+a,u((h&=65535)<<16|(p&=65535),(d&=65535)<<16|(f&=65535),this.unsigned)},k.subtract=function(e){return n(e)||(e=l(e)),this.add(e.neg())},k.sub=k.subtract,k.multiply=function(e){if(this.isZero())return g;if(n(e)||(e=l(e)),t)return u(t.mul(this.low,this.high,e.low,e.high),t.get_high(),this.unsigned);if(e.isZero())return g;if(this.eq(O))return e.isOdd()?O:g;if(e.eq(O))return this.isOdd()?O:g;if(this.isNegative())return e.isNegative()?this.neg().mul(e.neg()):this.neg().mul(e).neg();if(e.isNegative())return this.mul(e.neg()).neg();if(this.lt(m)&&e.lt(m))return s(this.toNumber()*e.toNumber(),this.unsigned);var r=this.high>>>16,o=65535&this.high,i=this.low>>>16,a=65535&this.low,c=e.high>>>16,d=65535&e.high,f=e.low>>>16,h=65535&e.low,p=0,v=0,b=0,y=0;return b+=(y+=a*h)>>>16,v+=(b+=i*h)>>>16,b&=65535,v+=(b+=a*f)>>>16,p+=(v+=o*h)>>>16,v&=65535,p+=(v+=i*f)>>>16,v&=65535,p+=(v+=a*d)>>>16,p+=r*h+o*f+i*d+a*c,u((b&=65535)<<16|(y&=65535),(p&=65535)<<16|(v&=65535),this.unsigned)},k.mul=k.multiply,k.divide=function(e){if(n(e)||(e=l(e)),e.isZero())throw Error("division by zero");var r,o,i;if(t)return this.unsigned||-2147483648!==this.high||-1!==e.low||-1!==e.high?u((this.unsigned?t.div_u:t.div_s)(this.low,this.high,e.low,e.high),t.get_high(),this.unsigned):this;if(this.isZero())return this.unsigned?v:g;if(this.unsigned){if(e.unsigned||(e=e.toUnsigned()),e.gt(this))return v;if(e.gt(this.shru(1)))return y;i=v}else{if(this.eq(O))return e.eq(b)||e.eq(w)?O:e.eq(O)?b:(r=this.shr(1).div(e).shl(1)).eq(g)?e.isNegative()?b:w:(o=this.sub(e.mul(r)),i=r.add(o.div(e)));if(e.eq(O))return this.unsigned?v:g;if(this.isNegative())return e.isNegative()?this.neg().div(e.neg()):this.neg().div(e).neg();if(e.isNegative())return this.div(e.neg()).neg();i=g}for(o=this;o.gte(e);){r=Math.max(1,Math.floor(o.toNumber()/e.toNumber()));for(var a=Math.ceil(Math.log(r)/Math.LN2),d=a<=48?1:c(2,a-48),f=s(r),h=f.mul(e);h.isNegative()||h.gt(o);)h=(f=s(r-=d,this.unsigned)).mul(e);f.isZero()&&(f=b),i=i.add(f),o=o.sub(h)}return i},k.div=k.divide,k.modulo=function(e){return n(e)||(e=l(e)),t?u((this.unsigned?t.rem_u:t.rem_s)(this.low,this.high,e.low,e.high),t.get_high(),this.unsigned):this.sub(this.div(e).mul(e))},k.mod=k.modulo,k.rem=k.modulo,k.not=function(){return u(~this.low,~this.high,this.unsigned)},k.and=function(e){return n(e)||(e=l(e)),u(this.low&e.low,this.high&e.high,this.unsigned)},k.or=function(e){return n(e)||(e=l(e)),u(this.low|e.low,this.high|e.high,this.unsigned)},k.xor=function(e){return n(e)||(e=l(e)),u(this.low^e.low,this.high^e.high,this.unsigned)},k.shiftLeft=function(e){return n(e)&&(e=e.toInt()),0==(e&=63)?this:e<32?u(this.low<>>32-e,this.unsigned):u(0,this.low<>>e|this.high<<32-e,this.high>>e,this.unsigned):u(this.high>>e-32,this.high>=0?0:-1,this.unsigned)},k.shr=k.shiftRight,k.shiftRightUnsigned=function(e){if(n(e)&&(e=e.toInt()),0==(e&=63))return this;var t=this.high;return e<32?u(this.low>>>e|t<<32-e,t>>>e,this.unsigned):u(32===e?t:t>>>e-32,0,this.unsigned)},k.shru=k.shiftRightUnsigned,k.shr_u=k.shiftRightUnsigned,k.toSigned=function(){return this.unsigned?u(this.low,this.high,!1):this},k.toUnsigned=function(){return this.unsigned?this:u(this.low,this.high,!0)},k.toBytes=function(e){return e?this.toBytesLE():this.toBytesBE()},k.toBytesLE=function(){var e=this.high,t=this.low;return[255&t,t>>>8&255,t>>>16&255,t>>>24,255&e,e>>>8&255,e>>>16&255,e>>>24]},k.toBytesBE=function(){var e=this.high,t=this.low;return[e>>>24,e>>>16&255,e>>>8&255,255&e,t>>>24,t>>>16&255,t>>>8&255,255&t]},r.fromBytes=function(e,t,n){return n?r.fromBytesLE(e,t):r.fromBytesBE(e,t)},r.fromBytesLE=function(e,t){return new r(e[0]|e[1]<<8|e[2]<<16|e[3]<<24,e[4]|e[5]<<8|e[6]<<16|e[7]<<24,t)},r.fromBytesBE=function(e,t){return new r(e[4]<<24|e[5]<<16|e[6]<<8|e[7],e[0]<<24|e[1]<<16|e[2]<<8|e[3],t)}},63967:(e,t,r)=>{"use strict";e.exports=r(34365)},34365:(e,t,r)=>{"use strict";var n=t;function o(){n.util._configure(),n.Writer._configure(n.BufferWriter),n.Reader._configure(n.BufferReader)}n.build="minimal",n.Writer=r(22147),n.BufferWriter=r(85055),n.Reader=r(12074),n.BufferReader=r(70069),n.util=r(28835),n.rpc=r(97876),n.roots=r(44007),n.configure=o,o()},12074:(e,t,r)=>{"use strict";e.exports=u;var n,o=r(28835),i=o.LongBits,a=o.utf8;function s(e,t){return RangeError("index out of range: "+e.pos+" + "+(t||1)+" > "+e.len)}function u(e){this.buf=e,this.pos=0,this.len=e.length}var c,d="undefined"!=typeof Uint8Array?function(e){if(e instanceof Uint8Array||Array.isArray(e))return new u(e);throw Error("illegal buffer")}:function(e){if(Array.isArray(e))return new u(e);throw Error("illegal buffer")},l=function(){return o.Buffer?function(e){return(u.create=function(e){return o.Buffer.isBuffer(e)?new n(e):d(e)})(e)}:d};function f(){var e=new i(0,0),t=0;if(!(this.len-this.pos>4)){for(;t<3;++t){if(this.pos>=this.len)throw s(this);if(e.lo=(e.lo|(127&this.buf[this.pos])<<7*t)>>>0,this.buf[this.pos++]<128)return e}return e.lo=(e.lo|(127&this.buf[this.pos++])<<7*t)>>>0,e}for(;t<4;++t)if(e.lo=(e.lo|(127&this.buf[this.pos])<<7*t)>>>0,this.buf[this.pos++]<128)return e;if(e.lo=(e.lo|(127&this.buf[this.pos])<<28)>>>0,e.hi=(e.hi|(127&this.buf[this.pos])>>4)>>>0,this.buf[this.pos++]<128)return e;if(t=0,this.len-this.pos>4){for(;t<5;++t)if(e.hi=(e.hi|(127&this.buf[this.pos])<<7*t+3)>>>0,this.buf[this.pos++]<128)return e}else for(;t<5;++t){if(this.pos>=this.len)throw s(this);if(e.hi=(e.hi|(127&this.buf[this.pos])<<7*t+3)>>>0,this.buf[this.pos++]<128)return e}throw Error("invalid varint encoding")}function h(e,t){return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0}function p(){if(this.pos+8>this.len)throw s(this,8);return new i(h(this.buf,this.pos+=4),h(this.buf,this.pos+=4))}u.create=l(),u.prototype._slice=o.Array.prototype.subarray||o.Array.prototype.slice,u.prototype.uint32=(c=4294967295,function(){if(c=(127&this.buf[this.pos])>>>0,this.buf[this.pos++]<128)return c;if(c=(c|(127&this.buf[this.pos])<<7)>>>0,this.buf[this.pos++]<128)return c;if(c=(c|(127&this.buf[this.pos])<<14)>>>0,this.buf[this.pos++]<128)return c;if(c=(c|(127&this.buf[this.pos])<<21)>>>0,this.buf[this.pos++]<128)return c;if(c=(c|(15&this.buf[this.pos])<<28)>>>0,this.buf[this.pos++]<128)return c;if((this.pos+=5)>this.len)throw this.pos=this.len,s(this,10);return c}),u.prototype.int32=function(){return 0|this.uint32()},u.prototype.sint32=function(){var e=this.uint32();return e>>>1^-(1&e)|0},u.prototype.bool=function(){return 0!==this.uint32()},u.prototype.fixed32=function(){if(this.pos+4>this.len)throw s(this,4);return h(this.buf,this.pos+=4)},u.prototype.sfixed32=function(){if(this.pos+4>this.len)throw s(this,4);return 0|h(this.buf,this.pos+=4)},u.prototype.float=function(){if(this.pos+4>this.len)throw s(this,4);var e=o.float.readFloatLE(this.buf,this.pos);return this.pos+=4,e},u.prototype.double=function(){if(this.pos+8>this.len)throw s(this,4);var e=o.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,e},u.prototype.bytes=function(){var e=this.uint32(),t=this.pos,r=this.pos+e;if(r>this.len)throw s(this,e);return this.pos+=e,Array.isArray(this.buf)?this.buf.slice(t,r):t===r?new this.buf.constructor(0):this._slice.call(this.buf,t,r)},u.prototype.string=function(){var e=this.bytes();return a.read(e,0,e.length)},u.prototype.skip=function(e){if("number"==typeof e){if(this.pos+e>this.len)throw s(this,e);this.pos+=e}else do{if(this.pos>=this.len)throw s(this)}while(128&this.buf[this.pos++]);return this},u.prototype.skipType=function(e){switch(e){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;4!=(e=7&this.uint32());)this.skipType(e);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+e+" at offset "+this.pos)}return this},u._configure=function(e){n=e,u.create=l(),n._configure();var t=o.Long?"toLong":"toNumber";o.merge(u.prototype,{int64:function(){return f.call(this)[t](!1)},uint64:function(){return f.call(this)[t](!0)},sint64:function(){return f.call(this).zzDecode()[t](!1)},fixed64:function(){return p.call(this)[t](!0)},sfixed64:function(){return p.call(this)[t](!1)}})}},70069:(e,t,r)=>{"use strict";e.exports=i;var n=r(12074);(i.prototype=Object.create(n.prototype)).constructor=i;var o=r(28835);function i(e){n.call(this,e)}i._configure=function(){o.Buffer&&(i.prototype._slice=o.Buffer.prototype.slice)},i.prototype.string=function(){var e=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+e,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+e,this.len))},i._configure()},44007:e=>{"use strict";e.exports={}},97876:(e,t,r)=>{"use strict";t.Service=r(51380)},51380:(e,t,r)=>{"use strict";e.exports=o;var n=r(28835);function o(e,t,r){if("function"!=typeof e)throw TypeError("rpcImpl must be a function");n.EventEmitter.call(this),this.rpcImpl=e,this.requestDelimited=Boolean(t),this.responseDelimited=Boolean(r)}(o.prototype=Object.create(n.EventEmitter.prototype)).constructor=o,o.prototype.rpcCall=function e(t,r,o,i,a){if(!i)throw TypeError("request must be specified");var s=this;if(!a)return n.asPromise(e,s,t,r,o,i);if(s.rpcImpl)try{return s.rpcImpl(t,r[s.requestDelimited?"encodeDelimited":"encode"](i).finish(),(function(e,r){if(e)return s.emit("error",e,t),a(e);if(null!==r){if(!(r instanceof o))try{r=o[s.responseDelimited?"decodeDelimited":"decode"](r)}catch(e){return s.emit("error",e,t),a(e)}return s.emit("data",r,t),a(null,r)}s.end(!0)}))}catch(e){return s.emit("error",e,t),void setTimeout((function(){a(e)}),0)}else setTimeout((function(){a(Error("already ended"))}),0)},o.prototype.end=function(e){return this.rpcImpl&&(e||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this}},54600:(e,t,r)=>{"use strict";e.exports=o;var n=r(28835);function o(e,t){this.lo=e>>>0,this.hi=t>>>0}var i=o.zero=new o(0,0);i.toNumber=function(){return 0},i.zzEncode=i.zzDecode=function(){return this},i.length=function(){return 1};var a=o.zeroHash="\0\0\0\0\0\0\0\0";o.fromNumber=function(e){if(0===e)return i;var t=e<0;t&&(e=-e);var r=e>>>0,n=(e-r)/4294967296>>>0;return t&&(n=~n>>>0,r=~r>>>0,++r>4294967295&&(r=0,++n>4294967295&&(n=0))),new o(r,n)},o.from=function(e){if("number"==typeof e)return o.fromNumber(e);if(n.isString(e)){if(!n.Long)return o.fromNumber(parseInt(e,10));e=n.Long.fromString(e)}return e.low||e.high?new o(e.low>>>0,e.high>>>0):i},o.prototype.toNumber=function(e){if(!e&&this.hi>>>31){var t=1+~this.lo>>>0,r=~this.hi>>>0;return t||(r=r+1>>>0),-(t+4294967296*r)}return this.lo+4294967296*this.hi},o.prototype.toLong=function(e){return n.Long?new n.Long(0|this.lo,0|this.hi,Boolean(e)):{low:0|this.lo,high:0|this.hi,unsigned:Boolean(e)}};var s=String.prototype.charCodeAt;o.fromHash=function(e){return e===a?i:new o((s.call(e,0)|s.call(e,1)<<8|s.call(e,2)<<16|s.call(e,3)<<24)>>>0,(s.call(e,4)|s.call(e,5)<<8|s.call(e,6)<<16|s.call(e,7)<<24)>>>0)},o.prototype.toHash=function(){return String.fromCharCode(255&this.lo,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,255&this.hi,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)},o.prototype.zzEncode=function(){var e=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^e)>>>0,this.lo=(this.lo<<1^e)>>>0,this},o.prototype.zzDecode=function(){var e=-(1&this.lo);return this.lo=((this.lo>>>1|this.hi<<31)^e)>>>0,this.hi=(this.hi>>>1^e)>>>0,this},o.prototype.length=function(){var e=this.lo,t=(this.lo>>>28|this.hi<<4)>>>0,r=this.hi>>>24;return 0===r?0===t?e<16384?e<128?1:2:e<2097152?3:4:t<16384?t<128?5:6:t<2097152?7:8:r<128?9:10}},28835:function(e,t,r){"use strict";var n=t;function o(e,t,r){for(var n=Object.keys(t),o=0;o0)},n.Buffer=function(){try{var e=n.inquire("buffer").Buffer;return e.prototype.utf8Write?e:null}catch(e){return null}}(),n._Buffer_from=null,n._Buffer_allocUnsafe=null,n.newBuffer=function(e){return"number"==typeof e?n.Buffer?n._Buffer_allocUnsafe(e):new n.Array(e):n.Buffer?n._Buffer_from(e):"undefined"==typeof Uint8Array?e:new Uint8Array(e)},n.Array="undefined"!=typeof Uint8Array?Uint8Array:Array,n.Long=n.global.dcodeIO&&n.global.dcodeIO.Long||n.global.Long||n.inquire("long"),n.key2Re=/^true|false|0|1$/,n.key32Re=/^-?(?:0|[1-9][0-9]*)$/,n.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/,n.longToHash=function(e){return e?n.LongBits.from(e).toHash():n.LongBits.zeroHash},n.longFromHash=function(e,t){var r=n.LongBits.fromHash(e);return n.Long?n.Long.fromBits(r.lo,r.hi,t):r.toNumber(Boolean(t))},n.merge=o,n.lcFirst=function(e){return e.charAt(0).toLowerCase()+e.substring(1)},n.newError=i,n.ProtocolError=i("ProtocolError"),n.oneOfGetter=function(e){for(var t={},r=0;r-1;--r)if(1===t[e[r]]&&void 0!==this[e[r]]&&null!==this[e[r]])return e[r]}},n.oneOfSetter=function(e){return function(t){for(var r=0;r{"use strict";e.exports=l;var n,o=r(28835),i=o.LongBits,a=o.base64,s=o.utf8;function u(e,t,r){this.fn=e,this.len=t,this.next=void 0,this.val=r}function c(){}function d(e){this.head=e.head,this.tail=e.tail,this.len=e.len,this.next=e.states}function l(){this.len=0,this.head=new u(c,0,0),this.tail=this.head,this.states=null}var f=function(){return o.Buffer?function(){return(l.create=function(){return new n})()}:function(){return new l}};function h(e,t,r){t[r]=255&e}function p(e,t){this.len=e,this.next=void 0,this.val=t}function m(e,t,r){for(;e.hi;)t[r++]=127&e.lo|128,e.lo=(e.lo>>>7|e.hi<<25)>>>0,e.hi>>>=7;for(;e.lo>127;)t[r++]=127&e.lo|128,e.lo=e.lo>>>7;t[r++]=e.lo}function g(e,t,r){t[r]=255&e,t[r+1]=e>>>8&255,t[r+2]=e>>>16&255,t[r+3]=e>>>24}l.create=f(),l.alloc=function(e){return new o.Array(e)},o.Array!==Array&&(l.alloc=o.pool(l.alloc,o.Array.prototype.subarray)),l.prototype._push=function(e,t,r){return this.tail=this.tail.next=new u(e,t,r),this.len+=t,this},p.prototype=Object.create(u.prototype),p.prototype.fn=function(e,t,r){for(;e>127;)t[r++]=127&e|128,e>>>=7;t[r]=e},l.prototype.uint32=function(e){return this.len+=(this.tail=this.tail.next=new p((e>>>=0)<128?1:e<16384?2:e<2097152?3:e<268435456?4:5,e)).len,this},l.prototype.int32=function(e){return e<0?this._push(m,10,i.fromNumber(e)):this.uint32(e)},l.prototype.sint32=function(e){return this.uint32((e<<1^e>>31)>>>0)},l.prototype.uint64=function(e){var t=i.from(e);return this._push(m,t.length(),t)},l.prototype.int64=l.prototype.uint64,l.prototype.sint64=function(e){var t=i.from(e).zzEncode();return this._push(m,t.length(),t)},l.prototype.bool=function(e){return this._push(h,1,e?1:0)},l.prototype.fixed32=function(e){return this._push(g,4,e>>>0)},l.prototype.sfixed32=l.prototype.fixed32,l.prototype.fixed64=function(e){var t=i.from(e);return this._push(g,4,t.lo)._push(g,4,t.hi)},l.prototype.sfixed64=l.prototype.fixed64,l.prototype.float=function(e){return this._push(o.float.writeFloatLE,4,e)},l.prototype.double=function(e){return this._push(o.float.writeDoubleLE,8,e)};var v=o.Array.prototype.set?function(e,t,r){t.set(e,r)}:function(e,t,r){for(var n=0;n>>0;if(!t)return this._push(h,1,0);if(o.isString(e)){var r=l.alloc(t=a.length(e));a.decode(e,r,0),e=r}return this.uint32(t)._push(v,t,e)},l.prototype.string=function(e){var t=s.length(e);return t?this.uint32(t)._push(s.write,t,e):this._push(h,1,0)},l.prototype.fork=function(){return this.states=new d(this),this.head=this.tail=new u(c,0,0),this.len=0,this},l.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new u(c,0,0),this.len=0),this},l.prototype.ldelim=function(){var e=this.head,t=this.tail,r=this.len;return this.reset().uint32(r),r&&(this.tail.next=e.next,this.tail=t,this.len+=r),this},l.prototype.finish=function(){for(var e=this.head.next,t=this.constructor.alloc(this.len),r=0;e;)e.fn(e.val,t,r),r+=e.len,e=e.next;return t},l._configure=function(e){n=e,l.create=f(),n._configure()}},85055:(e,t,r)=>{"use strict";e.exports=i;var n=r(22147);(i.prototype=Object.create(n.prototype)).constructor=i;var o=r(28835);function i(){n.call(this)}function a(e,t,r){e.length<40?o.utf8.write(e,t,r):t.utf8Write?t.utf8Write(e,r):t.write(e,r)}i._configure=function(){i.alloc=o._Buffer_allocUnsafe,i.writeBytesBuffer=o.Buffer&&o.Buffer.prototype instanceof Uint8Array&&"set"===o.Buffer.prototype.set.name?function(e,t,r){t.set(e,r)}:function(e,t,r){if(e.copy)e.copy(t,r,0,e.length);else for(var n=0;n>>0;return this.uint32(t),t&&this._push(i.writeBytesBuffer,t,e),this},i.prototype.string=function(e){var t=o.Buffer.byteLength(e);return this.uint32(t),t&&this._push(a,t,e),this},i._configure()},69159:()=>{},80950:()=>{},46601:()=>{},89214:()=>{},8623:()=>{},7748:()=>{},85568:()=>{},34845:()=>{},56619:()=>{},77108:()=>{},52361:()=>{},94616:()=>{},46996:e=>{"use strict";e.exports=JSON.parse('["的","一","是","在","不","了","有","和","人","这","中","大","为","上","个","国","我","以","要","他","时","来","用","们","生","到","作","地","于","出","就","分","对","成","会","可","主","发","年","动","同","工","也","能","下","过","子","说","产","种","面","而","方","后","多","定","行","学","法","所","民","得","经","十","三","之","进","着","等","部","度","家","电","力","里","如","水","化","高","自","二","理","起","小","物","现","实","加","量","都","两","体","制","机","当","使","点","从","业","本","去","把","性","好","应","开","它","合","还","因","由","其","些","然","前","外","天","政","四","日","那","社","义","事","平","形","相","全","表","间","样","与","关","各","重","新","线","内","数","正","心","反","你","明","看","原","又","么","利","比","或","但","质","气","第","向","道","命","此","变","条","只","没","结","解","问","意","建","月","公","无","系","军","很","情","者","最","立","代","想","已","通","并","提","直","题","党","程","展","五","果","料","象","员","革","位","入","常","文","总","次","品","式","活","设","及","管","特","件","长","求","老","头","基","资","边","流","路","级","少","图","山","统","接","知","较","将","组","见","计","别","她","手","角","期","根","论","运","农","指","几","九","区","强","放","决","西","被","干","做","必","战","先","回","则","任","取","据","处","队","南","给","色","光","门","即","保","治","北","造","百","规","热","领","七","海","口","东","导","器","压","志","世","金","增","争","济","阶","油","思","术","极","交","受","联","什","认","六","共","权","收","证","改","清","美","再","采","转","更","单","风","切","打","白","教","速","花","带","安","场","身","车","例","真","务","具","万","每","目","至","达","走","积","示","议","声","报","斗","完","类","八","离","华","名","确","才","科","张","信","马","节","话","米","整","空","元","况","今","集","温","传","土","许","步","群","广","石","记","需","段","研","界","拉","林","律","叫","且","究","观","越","织","装","影","算","低","持","音","众","书","布","复","容","儿","须","际","商","非","验","连","断","深","难","近","矿","千","周","委","素","技","备","半","办","青","省","列","习","响","约","支","般","史","感","劳","便","团","往","酸","历","市","克","何","除","消","构","府","称","太","准","精","值","号","率","族","维","划","选","标","写","存","候","毛","亲","快","效","斯","院","查","江","型","眼","王","按","格","养","易","置","派","层","片","始","却","专","状","育","厂","京","识","适","属","圆","包","火","住","调","满","县","局","照","参","红","细","引","听","该","铁","价","严","首","底","液","官","德","随","病","苏","失","尔","死","讲","配","女","黄","推","显","谈","罪","神","艺","呢","席","含","企","望","密","批","营","项","防","举","球","英","氧","势","告","李","台","落","木","帮","轮","破","亚","师","围","注","远","字","材","排","供","河","态","封","另","施","减","树","溶","怎","止","案","言","士","均","武","固","叶","鱼","波","视","仅","费","紧","爱","左","章","早","朝","害","续","轻","服","试","食","充","兵","源","判","护","司","足","某","练","差","致","板","田","降","黑","犯","负","击","范","继","兴","似","余","坚","曲","输","修","故","城","夫","够","送","笔","船","占","右","财","吃","富","春","职","觉","汉","画","功","巴","跟","虽","杂","飞","检","吸","助","升","阳","互","初","创","抗","考","投","坏","策","古","径","换","未","跑","留","钢","曾","端","责","站","简","述","钱","副","尽","帝","射","草","冲","承","独","令","限","阿","宣","环","双","请","超","微","让","控","州","良","轴","找","否","纪","益","依","优","顶","础","载","倒","房","突","坐","粉","敌","略","客","袁","冷","胜","绝","析","块","剂","测","丝","协","诉","念","陈","仍","罗","盐","友","洋","错","苦","夜","刑","移","频","逐","靠","混","母","短","皮","终","聚","汽","村","云","哪","既","距","卫","停","烈","央","察","烧","迅","境","若","印","洲","刻","括","激","孔","搞","甚","室","待","核","校","散","侵","吧","甲","游","久","菜","味","旧","模","湖","货","损","预","阻","毫","普","稳","乙","妈","植","息","扩","银","语","挥","酒","守","拿","序","纸","医","缺","雨","吗","针","刘","啊","急","唱","误","训","愿","审","附","获","茶","鲜","粮","斤","孩","脱","硫","肥","善","龙","演","父","渐","血","欢","械","掌","歌","沙","刚","攻","谓","盾","讨","晚","粒","乱","燃","矛","乎","杀","药","宁","鲁","贵","钟","煤","读","班","伯","香","介","迫","句","丰","培","握","兰","担","弦","蛋","沉","假","穿","执","答","乐","谁","顺","烟","缩","征","脸","喜","松","脚","困","异","免","背","星","福","买","染","井","概","慢","怕","磁","倍","祖","皇","促","静","补","评","翻","肉","践","尼","衣","宽","扬","棉","希","伤","操","垂","秋","宜","氢","套","督","振","架","亮","末","宪","庆","编","牛","触","映","雷","销","诗","座","居","抓","裂","胞","呼","娘","景","威","绿","晶","厚","盟","衡","鸡","孙","延","危","胶","屋","乡","临","陆","顾","掉","呀","灯","岁","措","束","耐","剧","玉","赵","跳","哥","季","课","凯","胡","额","款","绍","卷","齐","伟","蒸","殖","永","宗","苗","川","炉","岩","弱","零","杨","奏","沿","露","杆","探","滑","镇","饭","浓","航","怀","赶","库","夺","伊","灵","税","途","灭","赛","归","召","鼓","播","盘","裁","险","康","唯","录","菌","纯","借","糖","盖","横","符","私","努","堂","域","枪","润","幅","哈","竟","熟","虫","泽","脑","壤","碳","欧","遍","侧","寨","敢","彻","虑","斜","薄","庭","纳","弹","饲","伸","折","麦","湿","暗","荷","瓦","塞","床","筑","恶","户","访","塔","奇","透","梁","刀","旋","迹","卡","氯","遇","份","毒","泥","退","洗","摆","灰","彩","卖","耗","夏","择","忙","铜","献","硬","予","繁","圈","雪","函","亦","抽","篇","阵","阴","丁","尺","追","堆","雄","迎","泛","爸","楼","避","谋","吨","野","猪","旗","累","偏","典","馆","索","秦","脂","潮","爷","豆","忽","托","惊","塑","遗","愈","朱","替","纤","粗","倾","尚","痛","楚","谢","奋","购","磨","君","池","旁","碎","骨","监","捕","弟","暴","割","贯","殊","释","词","亡","壁","顿","宝","午","尘","闻","揭","炮","残","冬","桥","妇","警","综","招","吴","付","浮","遭","徐","您","摇","谷","赞","箱","隔","订","男","吹","园","纷","唐","败","宋","玻","巨","耕","坦","荣","闭","湾","键","凡","驻","锅","救","恩","剥","凝","碱","齿","截","炼","麻","纺","禁","废","盛","版","缓","净","睛","昌","婚","涉","筒","嘴","插","岸","朗","庄","街","藏","姑","贸","腐","奴","啦","惯","乘","伙","恢","匀","纱","扎","辩","耳","彪","臣","亿","璃","抵","脉","秀","萨","俄","网","舞","店","喷","纵","寸","汗","挂","洪","贺","闪","柬","爆","烯","津","稻","墙","软","勇","像","滚","厘","蒙","芳","肯","坡","柱","荡","腿","仪","旅","尾","轧","冰","贡","登","黎","削","钻","勒","逃","障","氨","郭","峰","币","港","伏","轨","亩","毕","擦","莫","刺","浪","秘","援","株","健","售","股","岛","甘","泡","睡","童","铸","汤","阀","休","汇","舍","牧","绕","炸","哲","磷","绩","朋","淡","尖","启","陷","柴","呈","徒","颜","泪","稍","忘","泵","蓝","拖","洞","授","镜","辛","壮","锋","贫","虚","弯","摩","泰","幼","廷","尊","窗","纲","弄","隶","疑","氏","宫","姐","震","瑞","怪","尤","琴","循","描","膜","违","夹","腰","缘","珠","穷","森","枝","竹","沟","催","绳","忆","邦","剩","幸","浆","栏","拥","牙","贮","礼","滤","钠","纹","罢","拍","咱","喊","袖","埃","勤","罚","焦","潜","伍","墨","欲","缝","姓","刊","饱","仿","奖","铝","鬼","丽","跨","默","挖","链","扫","喝","袋","炭","污","幕","诸","弧","励","梅","奶","洁","灾","舟","鉴","苯","讼","抱","毁","懂","寒","智","埔","寄","届","跃","渡","挑","丹","艰","贝","碰","拔","爹","戴","码","梦","芽","熔","赤","渔","哭","敬","颗","奔","铅","仲","虎","稀","妹","乏","珍","申","桌","遵","允","隆","螺","仓","魏","锐","晓","氮","兼","隐","碍","赫","拨","忠","肃","缸","牵","抢","博","巧","壳","兄","杜","讯","诚","碧","祥","柯","页","巡","矩","悲","灌","龄","伦","票","寻","桂","铺","圣","恐","恰","郑","趣","抬","荒","腾","贴","柔","滴","猛","阔","辆","妻","填","撤","储","签","闹","扰","紫","砂","递","戏","吊","陶","伐","喂","疗","瓶","婆","抚","臂","摸","忍","虾","蜡","邻","胸","巩","挤","偶","弃","槽","劲","乳","邓","吉","仁","烂","砖","租","乌","舰","伴","瓜","浅","丙","暂","燥","橡","柳","迷","暖","牌","秧","胆","详","簧","踏","瓷","谱","呆","宾","糊","洛","辉","愤","竞","隙","怒","粘","乃","绪","肩","籍","敏","涂","熙","皆","侦","悬","掘","享","纠","醒","狂","锁","淀","恨","牲","霸","爬","赏","逆","玩","陵","祝","秒","浙","貌","役","彼","悉","鸭","趋","凤","晨","畜","辈","秩","卵","署","梯","炎","滩","棋","驱","筛","峡","冒","啥","寿","译","浸","泉","帽","迟","硅","疆","贷","漏","稿","冠","嫩","胁","芯","牢","叛","蚀","奥","鸣","岭","羊","凭","串","塘","绘","酵","融","盆","锡","庙","筹","冻","辅","摄","袭","筋","拒","僚","旱","钾","鸟","漆","沈","眉","疏","添","棒","穗","硝","韩","逼","扭","侨","凉","挺","碗","栽","炒","杯","患","馏","劝","豪","辽","勃","鸿","旦","吏","拜","狗","埋","辊","掩","饮","搬","骂","辞","勾","扣","估","蒋","绒","雾","丈","朵","姆","拟","宇","辑","陕","雕","偿","蓄","崇","剪","倡","厅","咬","驶","薯","刷","斥","番","赋","奉","佛","浇","漫","曼","扇","钙","桃","扶","仔","返","俗","亏","腔","鞋","棱","覆","框","悄","叔","撞","骗","勘","旺","沸","孤","吐","孟","渠","屈","疾","妙","惜","仰","狠","胀","谐","抛","霉","桑","岗","嘛","衰","盗","渗","脏","赖","涌","甜","曹","阅","肌","哩","厉","烃","纬","毅","昨","伪","症","煮","叹","钉","搭","茎","笼","酷","偷","弓","锥","恒","杰","坑","鼻","翼","纶","叙","狱","逮","罐","络","棚","抑","膨","蔬","寺","骤","穆","冶","枯","册","尸","凸","绅","坯","牺","焰","轰","欣","晋","瘦","御","锭","锦","丧","旬","锻","垄","搜","扑","邀","亭","酯","迈","舒","脆","酶","闲","忧","酚","顽","羽","涨","卸","仗","陪","辟","惩","杭","姚","肚","捉","飘","漂","昆","欺","吾","郎","烷","汁","呵","饰","萧","雅","邮","迁","燕","撒","姻","赴","宴","烦","债","帐","斑","铃","旨","醇","董","饼","雏","姿","拌","傅","腹","妥","揉","贤","拆","歪","葡","胺","丢","浩","徽","昂","垫","挡","览","贪","慰","缴","汪","慌","冯","诺","姜","谊","凶","劣","诬","耀","昏","躺","盈","骑","乔","溪","丛","卢","抹","闷","咨","刮","驾","缆","悟","摘","铒","掷","颇","幻","柄","惠","惨","佳","仇","腊","窝","涤","剑","瞧","堡","泼","葱","罩","霍","捞","胎","苍","滨","俩","捅","湘","砍","霞","邵","萄","疯","淮","遂","熊","粪","烘","宿","档","戈","驳","嫂","裕","徙","箭","捐","肠","撑","晒","辨","殿","莲","摊","搅","酱","屏","疫","哀","蔡","堵","沫","皱","畅","叠","阁","莱","敲","辖","钩","痕","坝","巷","饿","祸","丘","玄","溜","曰","逻","彭","尝","卿","妨","艇","吞","韦","怨","矮","歇"]')},4262:e=>{"use strict";e.exports=JSON.parse('["的","一","是","在","不","了","有","和","人","這","中","大","為","上","個","國","我","以","要","他","時","來","用","們","生","到","作","地","於","出","就","分","對","成","會","可","主","發","年","動","同","工","也","能","下","過","子","說","產","種","面","而","方","後","多","定","行","學","法","所","民","得","經","十","三","之","進","著","等","部","度","家","電","力","裡","如","水","化","高","自","二","理","起","小","物","現","實","加","量","都","兩","體","制","機","當","使","點","從","業","本","去","把","性","好","應","開","它","合","還","因","由","其","些","然","前","外","天","政","四","日","那","社","義","事","平","形","相","全","表","間","樣","與","關","各","重","新","線","內","數","正","心","反","你","明","看","原","又","麼","利","比","或","但","質","氣","第","向","道","命","此","變","條","只","沒","結","解","問","意","建","月","公","無","系","軍","很","情","者","最","立","代","想","已","通","並","提","直","題","黨","程","展","五","果","料","象","員","革","位","入","常","文","總","次","品","式","活","設","及","管","特","件","長","求","老","頭","基","資","邊","流","路","級","少","圖","山","統","接","知","較","將","組","見","計","別","她","手","角","期","根","論","運","農","指","幾","九","區","強","放","決","西","被","幹","做","必","戰","先","回","則","任","取","據","處","隊","南","給","色","光","門","即","保","治","北","造","百","規","熱","領","七","海","口","東","導","器","壓","志","世","金","增","爭","濟","階","油","思","術","極","交","受","聯","什","認","六","共","權","收","證","改","清","美","再","採","轉","更","單","風","切","打","白","教","速","花","帶","安","場","身","車","例","真","務","具","萬","每","目","至","達","走","積","示","議","聲","報","鬥","完","類","八","離","華","名","確","才","科","張","信","馬","節","話","米","整","空","元","況","今","集","溫","傳","土","許","步","群","廣","石","記","需","段","研","界","拉","林","律","叫","且","究","觀","越","織","裝","影","算","低","持","音","眾","書","布","复","容","兒","須","際","商","非","驗","連","斷","深","難","近","礦","千","週","委","素","技","備","半","辦","青","省","列","習","響","約","支","般","史","感","勞","便","團","往","酸","歷","市","克","何","除","消","構","府","稱","太","準","精","值","號","率","族","維","劃","選","標","寫","存","候","毛","親","快","效","斯","院","查","江","型","眼","王","按","格","養","易","置","派","層","片","始","卻","專","狀","育","廠","京","識","適","屬","圓","包","火","住","調","滿","縣","局","照","參","紅","細","引","聽","該","鐵","價","嚴","首","底","液","官","德","隨","病","蘇","失","爾","死","講","配","女","黃","推","顯","談","罪","神","藝","呢","席","含","企","望","密","批","營","項","防","舉","球","英","氧","勢","告","李","台","落","木","幫","輪","破","亞","師","圍","注","遠","字","材","排","供","河","態","封","另","施","減","樹","溶","怎","止","案","言","士","均","武","固","葉","魚","波","視","僅","費","緊","愛","左","章","早","朝","害","續","輕","服","試","食","充","兵","源","判","護","司","足","某","練","差","致","板","田","降","黑","犯","負","擊","范","繼","興","似","餘","堅","曲","輸","修","故","城","夫","夠","送","筆","船","佔","右","財","吃","富","春","職","覺","漢","畫","功","巴","跟","雖","雜","飛","檢","吸","助","昇","陽","互","初","創","抗","考","投","壞","策","古","徑","換","未","跑","留","鋼","曾","端","責","站","簡","述","錢","副","盡","帝","射","草","衝","承","獨","令","限","阿","宣","環","雙","請","超","微","讓","控","州","良","軸","找","否","紀","益","依","優","頂","礎","載","倒","房","突","坐","粉","敵","略","客","袁","冷","勝","絕","析","塊","劑","測","絲","協","訴","念","陳","仍","羅","鹽","友","洋","錯","苦","夜","刑","移","頻","逐","靠","混","母","短","皮","終","聚","汽","村","雲","哪","既","距","衛","停","烈","央","察","燒","迅","境","若","印","洲","刻","括","激","孔","搞","甚","室","待","核","校","散","侵","吧","甲","遊","久","菜","味","舊","模","湖","貨","損","預","阻","毫","普","穩","乙","媽","植","息","擴","銀","語","揮","酒","守","拿","序","紙","醫","缺","雨","嗎","針","劉","啊","急","唱","誤","訓","願","審","附","獲","茶","鮮","糧","斤","孩","脫","硫","肥","善","龍","演","父","漸","血","歡","械","掌","歌","沙","剛","攻","謂","盾","討","晚","粒","亂","燃","矛","乎","殺","藥","寧","魯","貴","鐘","煤","讀","班","伯","香","介","迫","句","豐","培","握","蘭","擔","弦","蛋","沉","假","穿","執","答","樂","誰","順","煙","縮","徵","臉","喜","松","腳","困","異","免","背","星","福","買","染","井","概","慢","怕","磁","倍","祖","皇","促","靜","補","評","翻","肉","踐","尼","衣","寬","揚","棉","希","傷","操","垂","秋","宜","氫","套","督","振","架","亮","末","憲","慶","編","牛","觸","映","雷","銷","詩","座","居","抓","裂","胞","呼","娘","景","威","綠","晶","厚","盟","衡","雞","孫","延","危","膠","屋","鄉","臨","陸","顧","掉","呀","燈","歲","措","束","耐","劇","玉","趙","跳","哥","季","課","凱","胡","額","款","紹","卷","齊","偉","蒸","殖","永","宗","苗","川","爐","岩","弱","零","楊","奏","沿","露","桿","探","滑","鎮","飯","濃","航","懷","趕","庫","奪","伊","靈","稅","途","滅","賽","歸","召","鼓","播","盤","裁","險","康","唯","錄","菌","純","借","糖","蓋","橫","符","私","努","堂","域","槍","潤","幅","哈","竟","熟","蟲","澤","腦","壤","碳","歐","遍","側","寨","敢","徹","慮","斜","薄","庭","納","彈","飼","伸","折","麥","濕","暗","荷","瓦","塞","床","築","惡","戶","訪","塔","奇","透","梁","刀","旋","跡","卡","氯","遇","份","毒","泥","退","洗","擺","灰","彩","賣","耗","夏","擇","忙","銅","獻","硬","予","繁","圈","雪","函","亦","抽","篇","陣","陰","丁","尺","追","堆","雄","迎","泛","爸","樓","避","謀","噸","野","豬","旗","累","偏","典","館","索","秦","脂","潮","爺","豆","忽","托","驚","塑","遺","愈","朱","替","纖","粗","傾","尚","痛","楚","謝","奮","購","磨","君","池","旁","碎","骨","監","捕","弟","暴","割","貫","殊","釋","詞","亡","壁","頓","寶","午","塵","聞","揭","炮","殘","冬","橋","婦","警","綜","招","吳","付","浮","遭","徐","您","搖","谷","贊","箱","隔","訂","男","吹","園","紛","唐","敗","宋","玻","巨","耕","坦","榮","閉","灣","鍵","凡","駐","鍋","救","恩","剝","凝","鹼","齒","截","煉","麻","紡","禁","廢","盛","版","緩","淨","睛","昌","婚","涉","筒","嘴","插","岸","朗","莊","街","藏","姑","貿","腐","奴","啦","慣","乘","夥","恢","勻","紗","扎","辯","耳","彪","臣","億","璃","抵","脈","秀","薩","俄","網","舞","店","噴","縱","寸","汗","掛","洪","賀","閃","柬","爆","烯","津","稻","牆","軟","勇","像","滾","厘","蒙","芳","肯","坡","柱","盪","腿","儀","旅","尾","軋","冰","貢","登","黎","削","鑽","勒","逃","障","氨","郭","峰","幣","港","伏","軌","畝","畢","擦","莫","刺","浪","秘","援","株","健","售","股","島","甘","泡","睡","童","鑄","湯","閥","休","匯","舍","牧","繞","炸","哲","磷","績","朋","淡","尖","啟","陷","柴","呈","徒","顏","淚","稍","忘","泵","藍","拖","洞","授","鏡","辛","壯","鋒","貧","虛","彎","摩","泰","幼","廷","尊","窗","綱","弄","隸","疑","氏","宮","姐","震","瑞","怪","尤","琴","循","描","膜","違","夾","腰","緣","珠","窮","森","枝","竹","溝","催","繩","憶","邦","剩","幸","漿","欄","擁","牙","貯","禮","濾","鈉","紋","罷","拍","咱","喊","袖","埃","勤","罰","焦","潛","伍","墨","欲","縫","姓","刊","飽","仿","獎","鋁","鬼","麗","跨","默","挖","鏈","掃","喝","袋","炭","污","幕","諸","弧","勵","梅","奶","潔","災","舟","鑑","苯","訟","抱","毀","懂","寒","智","埔","寄","屆","躍","渡","挑","丹","艱","貝","碰","拔","爹","戴","碼","夢","芽","熔","赤","漁","哭","敬","顆","奔","鉛","仲","虎","稀","妹","乏","珍","申","桌","遵","允","隆","螺","倉","魏","銳","曉","氮","兼","隱","礙","赫","撥","忠","肅","缸","牽","搶","博","巧","殼","兄","杜","訊","誠","碧","祥","柯","頁","巡","矩","悲","灌","齡","倫","票","尋","桂","鋪","聖","恐","恰","鄭","趣","抬","荒","騰","貼","柔","滴","猛","闊","輛","妻","填","撤","儲","簽","鬧","擾","紫","砂","遞","戲","吊","陶","伐","餵","療","瓶","婆","撫","臂","摸","忍","蝦","蠟","鄰","胸","鞏","擠","偶","棄","槽","勁","乳","鄧","吉","仁","爛","磚","租","烏","艦","伴","瓜","淺","丙","暫","燥","橡","柳","迷","暖","牌","秧","膽","詳","簧","踏","瓷","譜","呆","賓","糊","洛","輝","憤","競","隙","怒","粘","乃","緒","肩","籍","敏","塗","熙","皆","偵","懸","掘","享","糾","醒","狂","鎖","淀","恨","牲","霸","爬","賞","逆","玩","陵","祝","秒","浙","貌","役","彼","悉","鴨","趨","鳳","晨","畜","輩","秩","卵","署","梯","炎","灘","棋","驅","篩","峽","冒","啥","壽","譯","浸","泉","帽","遲","矽","疆","貸","漏","稿","冠","嫩","脅","芯","牢","叛","蝕","奧","鳴","嶺","羊","憑","串","塘","繪","酵","融","盆","錫","廟","籌","凍","輔","攝","襲","筋","拒","僚","旱","鉀","鳥","漆","沈","眉","疏","添","棒","穗","硝","韓","逼","扭","僑","涼","挺","碗","栽","炒","杯","患","餾","勸","豪","遼","勃","鴻","旦","吏","拜","狗","埋","輥","掩","飲","搬","罵","辭","勾","扣","估","蔣","絨","霧","丈","朵","姆","擬","宇","輯","陝","雕","償","蓄","崇","剪","倡","廳","咬","駛","薯","刷","斥","番","賦","奉","佛","澆","漫","曼","扇","鈣","桃","扶","仔","返","俗","虧","腔","鞋","棱","覆","框","悄","叔","撞","騙","勘","旺","沸","孤","吐","孟","渠","屈","疾","妙","惜","仰","狠","脹","諧","拋","黴","桑","崗","嘛","衰","盜","滲","臟","賴","湧","甜","曹","閱","肌","哩","厲","烴","緯","毅","昨","偽","症","煮","嘆","釘","搭","莖","籠","酷","偷","弓","錐","恆","傑","坑","鼻","翼","綸","敘","獄","逮","罐","絡","棚","抑","膨","蔬","寺","驟","穆","冶","枯","冊","屍","凸","紳","坯","犧","焰","轟","欣","晉","瘦","禦","錠","錦","喪","旬","鍛","壟","搜","撲","邀","亭","酯","邁","舒","脆","酶","閒","憂","酚","頑","羽","漲","卸","仗","陪","闢","懲","杭","姚","肚","捉","飄","漂","昆","欺","吾","郎","烷","汁","呵","飾","蕭","雅","郵","遷","燕","撒","姻","赴","宴","煩","債","帳","斑","鈴","旨","醇","董","餅","雛","姿","拌","傅","腹","妥","揉","賢","拆","歪","葡","胺","丟","浩","徽","昂","墊","擋","覽","貪","慰","繳","汪","慌","馮","諾","姜","誼","兇","劣","誣","耀","昏","躺","盈","騎","喬","溪","叢","盧","抹","悶","諮","刮","駕","纜","悟","摘","鉺","擲","頗","幻","柄","惠","慘","佳","仇","臘","窩","滌","劍","瞧","堡","潑","蔥","罩","霍","撈","胎","蒼","濱","倆","捅","湘","砍","霞","邵","萄","瘋","淮","遂","熊","糞","烘","宿","檔","戈","駁","嫂","裕","徙","箭","捐","腸","撐","曬","辨","殿","蓮","攤","攪","醬","屏","疫","哀","蔡","堵","沫","皺","暢","疊","閣","萊","敲","轄","鉤","痕","壩","巷","餓","禍","丘","玄","溜","曰","邏","彭","嘗","卿","妨","艇","吞","韋","怨","矮","歇"]')},40032:e=>{"use strict";e.exports=JSON.parse('["abdikace","abeceda","adresa","agrese","akce","aktovka","alej","alkohol","amputace","ananas","andulka","anekdota","anketa","antika","anulovat","archa","arogance","asfalt","asistent","aspirace","astma","astronom","atlas","atletika","atol","autobus","azyl","babka","bachor","bacil","baculka","badatel","bageta","bagr","bahno","bakterie","balada","baletka","balkon","balonek","balvan","balza","bambus","bankomat","barbar","baret","barman","baroko","barva","baterka","batoh","bavlna","bazalka","bazilika","bazuka","bedna","beran","beseda","bestie","beton","bezinka","bezmoc","beztak","bicykl","bidlo","biftek","bikiny","bilance","biograf","biolog","bitva","bizon","blahobyt","blatouch","blecha","bledule","blesk","blikat","blizna","blokovat","bloudit","blud","bobek","bobr","bodlina","bodnout","bohatost","bojkot","bojovat","bokorys","bolest","borec","borovice","bota","boubel","bouchat","bouda","boule","bourat","boxer","bradavka","brambora","branka","bratr","brepta","briketa","brko","brloh","bronz","broskev","brunetka","brusinka","brzda","brzy","bublina","bubnovat","buchta","buditel","budka","budova","bufet","bujarost","bukvice","buldok","bulva","bunda","bunkr","burza","butik","buvol","buzola","bydlet","bylina","bytovka","bzukot","capart","carevna","cedr","cedule","cejch","cejn","cela","celer","celkem","celnice","cenina","cennost","cenovka","centrum","cenzor","cestopis","cetka","chalupa","chapadlo","charita","chata","chechtat","chemie","chichot","chirurg","chlad","chleba","chlubit","chmel","chmura","chobot","chochol","chodba","cholera","chomout","chopit","choroba","chov","chrapot","chrlit","chrt","chrup","chtivost","chudina","chutnat","chvat","chvilka","chvost","chyba","chystat","chytit","cibule","cigareta","cihelna","cihla","cinkot","cirkus","cisterna","citace","citrus","cizinec","cizost","clona","cokoliv","couvat","ctitel","ctnost","cudnost","cuketa","cukr","cupot","cvaknout","cval","cvik","cvrkot","cyklista","daleko","dareba","datel","datum","dcera","debata","dechovka","decibel","deficit","deflace","dekl","dekret","demokrat","deprese","derby","deska","detektiv","dikobraz","diktovat","dioda","diplom","disk","displej","divadlo","divoch","dlaha","dlouho","dluhopis","dnes","dobro","dobytek","docent","dochutit","dodnes","dohled","dohoda","dohra","dojem","dojnice","doklad","dokola","doktor","dokument","dolar","doleva","dolina","doma","dominant","domluvit","domov","donutit","dopad","dopis","doplnit","doposud","doprovod","dopustit","dorazit","dorost","dort","dosah","doslov","dostatek","dosud","dosyta","dotaz","dotek","dotknout","doufat","doutnat","dovozce","dozadu","doznat","dozorce","drahota","drak","dramatik","dravec","draze","drdol","drobnost","drogerie","drozd","drsnost","drtit","drzost","duben","duchovno","dudek","duha","duhovka","dusit","dusno","dutost","dvojice","dvorec","dynamit","ekolog","ekonomie","elektron","elipsa","email","emise","emoce","empatie","epizoda","epocha","epopej","epos","esej","esence","eskorta","eskymo","etiketa","euforie","evoluce","exekuce","exkurze","expedice","exploze","export","extrakt","facka","fajfka","fakulta","fanatik","fantazie","farmacie","favorit","fazole","federace","fejeton","fenka","fialka","figurant","filozof","filtr","finance","finta","fixace","fjord","flanel","flirt","flotila","fond","fosfor","fotbal","fotka","foton","frakce","freska","fronta","fukar","funkce","fyzika","galeje","garant","genetika","geolog","gilotina","glazura","glejt","golem","golfista","gotika","graf","gramofon","granule","grep","gril","grog","groteska","guma","hadice","hadr","hala","halenka","hanba","hanopis","harfa","harpuna","havran","hebkost","hejkal","hejno","hejtman","hektar","helma","hematom","herec","herna","heslo","hezky","historik","hladovka","hlasivky","hlava","hledat","hlen","hlodavec","hloh","hloupost","hltat","hlubina","hluchota","hmat","hmota","hmyz","hnis","hnojivo","hnout","hoblina","hoboj","hoch","hodiny","hodlat","hodnota","hodovat","hojnost","hokej","holinka","holka","holub","homole","honitba","honorace","horal","horda","horizont","horko","horlivec","hormon","hornina","horoskop","horstvo","hospoda","hostina","hotovost","houba","houf","houpat","houska","hovor","hradba","hranice","hravost","hrazda","hrbolek","hrdina","hrdlo","hrdost","hrnek","hrobka","hromada","hrot","hrouda","hrozen","hrstka","hrubost","hryzat","hubenost","hubnout","hudba","hukot","humr","husita","hustota","hvozd","hybnost","hydrant","hygiena","hymna","hysterik","idylka","ihned","ikona","iluze","imunita","infekce","inflace","inkaso","inovace","inspekce","internet","invalida","investor","inzerce","ironie","jablko","jachta","jahoda","jakmile","jakost","jalovec","jantar","jarmark","jaro","jasan","jasno","jatka","javor","jazyk","jedinec","jedle","jednatel","jehlan","jekot","jelen","jelito","jemnost","jenom","jepice","jeseter","jevit","jezdec","jezero","jinak","jindy","jinoch","jiskra","jistota","jitrnice","jizva","jmenovat","jogurt","jurta","kabaret","kabel","kabinet","kachna","kadet","kadidlo","kahan","kajak","kajuta","kakao","kaktus","kalamita","kalhoty","kalibr","kalnost","kamera","kamkoliv","kamna","kanibal","kanoe","kantor","kapalina","kapela","kapitola","kapka","kaple","kapota","kapr","kapusta","kapybara","karamel","karotka","karton","kasa","katalog","katedra","kauce","kauza","kavalec","kazajka","kazeta","kazivost","kdekoliv","kdesi","kedluben","kemp","keramika","kino","klacek","kladivo","klam","klapot","klasika","klaun","klec","klenba","klepat","klesnout","klid","klima","klisna","klobouk","klokan","klopa","kloub","klubovna","klusat","kluzkost","kmen","kmitat","kmotr","kniha","knot","koalice","koberec","kobka","kobliha","kobyla","kocour","kohout","kojenec","kokos","koktejl","kolaps","koleda","kolize","kolo","komando","kometa","komik","komnata","komora","kompas","komunita","konat","koncept","kondice","konec","konfese","kongres","konina","konkurs","kontakt","konzerva","kopanec","kopie","kopnout","koprovka","korbel","korektor","kormidlo","koroptev","korpus","koruna","koryto","korzet","kosatec","kostka","kotel","kotleta","kotoul","koukat","koupelna","kousek","kouzlo","kovboj","koza","kozoroh","krabice","krach","krajina","kralovat","krasopis","kravata","kredit","krejcar","kresba","kreveta","kriket","kritik","krize","krkavec","krmelec","krmivo","krocan","krok","kronika","kropit","kroupa","krovka","krtek","kruhadlo","krupice","krutost","krvinka","krychle","krypta","krystal","kryt","kudlanka","kufr","kujnost","kukla","kulajda","kulich","kulka","kulomet","kultura","kuna","kupodivu","kurt","kurzor","kutil","kvalita","kvasinka","kvestor","kynolog","kyselina","kytara","kytice","kytka","kytovec","kyvadlo","labrador","lachtan","ladnost","laik","lakomec","lamela","lampa","lanovka","lasice","laso","lastura","latinka","lavina","lebka","leckdy","leden","lednice","ledovka","ledvina","legenda","legie","legrace","lehce","lehkost","lehnout","lektvar","lenochod","lentilka","lepenka","lepidlo","letadlo","letec","letmo","letokruh","levhart","levitace","levobok","libra","lichotka","lidojed","lidskost","lihovina","lijavec","lilek","limetka","linie","linka","linoleum","listopad","litina","litovat","lobista","lodivod","logika","logoped","lokalita","loket","lomcovat","lopata","lopuch","lord","losos","lotr","loudal","louh","louka","louskat","lovec","lstivost","lucerna","lucifer","lump","lusk","lustrace","lvice","lyra","lyrika","lysina","madam","madlo","magistr","mahagon","majetek","majitel","majorita","makak","makovice","makrela","malba","malina","malovat","malvice","maminka","mandle","manko","marnost","masakr","maskot","masopust","matice","matrika","maturita","mazanec","mazivo","mazlit","mazurka","mdloba","mechanik","meditace","medovina","melasa","meloun","mentolka","metla","metoda","metr","mezera","migrace","mihnout","mihule","mikina","mikrofon","milenec","milimetr","milost","mimika","mincovna","minibar","minomet","minulost","miska","mistr","mixovat","mladost","mlha","mlhovina","mlok","mlsat","mluvit","mnich","mnohem","mobil","mocnost","modelka","modlitba","mohyla","mokro","molekula","momentka","monarcha","monokl","monstrum","montovat","monzun","mosaz","moskyt","most","motivace","motorka","motyka","moucha","moudrost","mozaika","mozek","mozol","mramor","mravenec","mrkev","mrtvola","mrzet","mrzutost","mstitel","mudrc","muflon","mulat","mumie","munice","muset","mutace","muzeum","muzikant","myslivec","mzda","nabourat","nachytat","nadace","nadbytek","nadhoz","nadobro","nadpis","nahlas","nahnat","nahodile","nahradit","naivita","najednou","najisto","najmout","naklonit","nakonec","nakrmit","nalevo","namazat","namluvit","nanometr","naoko","naopak","naostro","napadat","napevno","naplnit","napnout","naposled","naprosto","narodit","naruby","narychlo","nasadit","nasekat","naslepo","nastat","natolik","navenek","navrch","navzdory","nazvat","nebe","nechat","necky","nedaleko","nedbat","neduh","negace","nehet","nehoda","nejen","nejprve","neklid","nelibost","nemilost","nemoc","neochota","neonka","nepokoj","nerost","nerv","nesmysl","nesoulad","netvor","neuron","nevina","nezvykle","nicota","nijak","nikam","nikdy","nikl","nikterak","nitro","nocleh","nohavice","nominace","nora","norek","nositel","nosnost","nouze","noviny","novota","nozdra","nuda","nudle","nuget","nutit","nutnost","nutrie","nymfa","obal","obarvit","obava","obdiv","obec","obehnat","obejmout","obezita","obhajoba","obilnice","objasnit","objekt","obklopit","oblast","oblek","obliba","obloha","obluda","obnos","obohatit","obojek","obout","obrazec","obrna","obruba","obrys","obsah","obsluha","obstarat","obuv","obvaz","obvinit","obvod","obvykle","obyvatel","obzor","ocas","ocel","ocenit","ochladit","ochota","ochrana","ocitnout","odboj","odbyt","odchod","odcizit","odebrat","odeslat","odevzdat","odezva","odhadce","odhodit","odjet","odjinud","odkaz","odkoupit","odliv","odluka","odmlka","odolnost","odpad","odpis","odplout","odpor","odpustit","odpykat","odrazka","odsoudit","odstup","odsun","odtok","odtud","odvaha","odveta","odvolat","odvracet","odznak","ofina","ofsajd","ohlas","ohnisko","ohrada","ohrozit","ohryzek","okap","okenice","oklika","okno","okouzlit","okovy","okrasa","okres","okrsek","okruh","okupant","okurka","okusit","olejnina","olizovat","omak","omeleta","omezit","omladina","omlouvat","omluva","omyl","onehdy","opakovat","opasek","operace","opice","opilost","opisovat","opora","opozice","opravdu","oproti","orbital","orchestr","orgie","orlice","orloj","ortel","osada","oschnout","osika","osivo","oslava","oslepit","oslnit","oslovit","osnova","osoba","osolit","ospalec","osten","ostraha","ostuda","ostych","osvojit","oteplit","otisk","otop","otrhat","otrlost","otrok","otruby","otvor","ovanout","ovar","oves","ovlivnit","ovoce","oxid","ozdoba","pachatel","pacient","padouch","pahorek","pakt","palanda","palec","palivo","paluba","pamflet","pamlsek","panenka","panika","panna","panovat","panstvo","pantofle","paprika","parketa","parodie","parta","paruka","paryba","paseka","pasivita","pastelka","patent","patrona","pavouk","pazneht","pazourek","pecka","pedagog","pejsek","peklo","peloton","penalta","pendrek","penze","periskop","pero","pestrost","petarda","petice","petrolej","pevnina","pexeso","pianista","piha","pijavice","pikle","piknik","pilina","pilnost","pilulka","pinzeta","pipeta","pisatel","pistole","pitevna","pivnice","pivovar","placenta","plakat","plamen","planeta","plastika","platit","plavidlo","plaz","plech","plemeno","plenta","ples","pletivo","plevel","plivat","plnit","plno","plocha","plodina","plomba","plout","pluk","plyn","pobavit","pobyt","pochod","pocit","poctivec","podat","podcenit","podepsat","podhled","podivit","podklad","podmanit","podnik","podoba","podpora","podraz","podstata","podvod","podzim","poezie","pohanka","pohnutka","pohovor","pohroma","pohyb","pointa","pojistka","pojmout","pokazit","pokles","pokoj","pokrok","pokuta","pokyn","poledne","polibek","polknout","poloha","polynom","pomalu","pominout","pomlka","pomoc","pomsta","pomyslet","ponechat","ponorka","ponurost","popadat","popel","popisek","poplach","poprosit","popsat","popud","poradce","porce","porod","porucha","poryv","posadit","posed","posila","poskok","poslanec","posoudit","pospolu","postava","posudek","posyp","potah","potkan","potlesk","potomek","potrava","potupa","potvora","poukaz","pouto","pouzdro","povaha","povidla","povlak","povoz","povrch","povstat","povyk","povzdech","pozdrav","pozemek","poznatek","pozor","pozvat","pracovat","prahory","praktika","prales","praotec","praporek","prase","pravda","princip","prkno","probudit","procento","prodej","profese","prohra","projekt","prolomit","promile","pronikat","propad","prorok","prosba","proton","proutek","provaz","prskavka","prsten","prudkost","prut","prvek","prvohory","psanec","psovod","pstruh","ptactvo","puberta","puch","pudl","pukavec","puklina","pukrle","pult","pumpa","punc","pupen","pusa","pusinka","pustina","putovat","putyka","pyramida","pysk","pytel","racek","rachot","radiace","radnice","radon","raft","ragby","raketa","rakovina","rameno","rampouch","rande","rarach","rarita","rasovna","rastr","ratolest","razance","razidlo","reagovat","reakce","recept","redaktor","referent","reflex","rejnok","reklama","rekord","rekrut","rektor","reputace","revize","revma","revolver","rezerva","riskovat","riziko","robotika","rodokmen","rohovka","rokle","rokoko","romaneto","ropovod","ropucha","rorejs","rosol","rostlina","rotmistr","rotoped","rotunda","roubenka","roucho","roup","roura","rovina","rovnice","rozbor","rozchod","rozdat","rozeznat","rozhodce","rozinka","rozjezd","rozkaz","rozloha","rozmar","rozpad","rozruch","rozsah","roztok","rozum","rozvod","rubrika","ruchadlo","rukavice","rukopis","ryba","rybolov","rychlost","rydlo","rypadlo","rytina","ryzost","sadista","sahat","sako","samec","samizdat","samota","sanitka","sardinka","sasanka","satelit","sazba","sazenice","sbor","schovat","sebranka","secese","sedadlo","sediment","sedlo","sehnat","sejmout","sekera","sekta","sekunda","sekvoje","semeno","seno","servis","sesadit","seshora","seskok","seslat","sestra","sesuv","sesypat","setba","setina","setkat","setnout","setrvat","sever","seznam","shoda","shrnout","sifon","silnice","sirka","sirotek","sirup","situace","skafandr","skalisko","skanzen","skaut","skeptik","skica","skladba","sklenice","sklo","skluz","skoba","skokan","skoro","skripta","skrz","skupina","skvost","skvrna","slabika","sladidlo","slanina","slast","slavnost","sledovat","slepec","sleva","slezina","slib","slina","sliznice","slon","sloupek","slovo","sluch","sluha","slunce","slupka","slza","smaragd","smetana","smilstvo","smlouva","smog","smrad","smrk","smrtka","smutek","smysl","snad","snaha","snob","sobota","socha","sodovka","sokol","sopka","sotva","souboj","soucit","soudce","souhlas","soulad","soumrak","souprava","soused","soutok","souviset","spalovna","spasitel","spis","splav","spodek","spojenec","spolu","sponzor","spornost","spousta","sprcha","spustit","sranda","sraz","srdce","srna","srnec","srovnat","srpen","srst","srub","stanice","starosta","statika","stavba","stehno","stezka","stodola","stolek","stopa","storno","stoupat","strach","stres","strhnout","strom","struna","studna","stupnice","stvol","styk","subjekt","subtropy","suchar","sudost","sukno","sundat","sunout","surikata","surovina","svah","svalstvo","svetr","svatba","svazek","svisle","svitek","svoboda","svodidlo","svorka","svrab","sykavka","sykot","synek","synovec","sypat","sypkost","syrovost","sysel","sytost","tabletka","tabule","tahoun","tajemno","tajfun","tajga","tajit","tajnost","taktika","tamhle","tampon","tancovat","tanec","tanker","tapeta","tavenina","tazatel","technika","tehdy","tekutina","telefon","temnota","tendence","tenista","tenor","teplota","tepna","teprve","terapie","termoska","textil","ticho","tiskopis","titulek","tkadlec","tkanina","tlapka","tleskat","tlukot","tlupa","tmel","toaleta","topinka","topol","torzo","touha","toulec","tradice","traktor","tramp","trasa","traverza","trefit","trest","trezor","trhavina","trhlina","trochu","trojice","troska","trouba","trpce","trpitel","trpkost","trubec","truchlit","truhlice","trus","trvat","tudy","tuhnout","tuhost","tundra","turista","turnaj","tuzemsko","tvaroh","tvorba","tvrdost","tvrz","tygr","tykev","ubohost","uboze","ubrat","ubrousek","ubrus","ubytovna","ucho","uctivost","udivit","uhradit","ujednat","ujistit","ujmout","ukazatel","uklidnit","uklonit","ukotvit","ukrojit","ulice","ulita","ulovit","umyvadlo","unavit","uniforma","uniknout","upadnout","uplatnit","uplynout","upoutat","upravit","uran","urazit","usednout","usilovat","usmrtit","usnadnit","usnout","usoudit","ustlat","ustrnout","utahovat","utkat","utlumit","utonout","utopenec","utrousit","uvalit","uvolnit","uvozovka","uzdravit","uzel","uzenina","uzlina","uznat","vagon","valcha","valoun","vana","vandal","vanilka","varan","varhany","varovat","vcelku","vchod","vdova","vedro","vegetace","vejce","velbloud","veletrh","velitel","velmoc","velryba","venkov","veranda","verze","veselka","veskrze","vesnice","vespodu","vesta","veterina","veverka","vibrace","vichr","videohra","vidina","vidle","vila","vinice","viset","vitalita","vize","vizitka","vjezd","vklad","vkus","vlajka","vlak","vlasec","vlevo","vlhkost","vliv","vlnovka","vloupat","vnucovat","vnuk","voda","vodivost","vodoznak","vodstvo","vojensky","vojna","vojsko","volant","volba","volit","volno","voskovka","vozidlo","vozovna","vpravo","vrabec","vracet","vrah","vrata","vrba","vrcholek","vrhat","vrstva","vrtule","vsadit","vstoupit","vstup","vtip","vybavit","vybrat","vychovat","vydat","vydra","vyfotit","vyhledat","vyhnout","vyhodit","vyhradit","vyhubit","vyjasnit","vyjet","vyjmout","vyklopit","vykonat","vylekat","vymazat","vymezit","vymizet","vymyslet","vynechat","vynikat","vynutit","vypadat","vyplatit","vypravit","vypustit","vyrazit","vyrovnat","vyrvat","vyslovit","vysoko","vystavit","vysunout","vysypat","vytasit","vytesat","vytratit","vyvinout","vyvolat","vyvrhel","vyzdobit","vyznat","vzadu","vzbudit","vzchopit","vzdor","vzduch","vzdychat","vzestup","vzhledem","vzkaz","vzlykat","vznik","vzorek","vzpoura","vztah","vztek","xylofon","zabrat","zabydlet","zachovat","zadarmo","zadusit","zafoukat","zahltit","zahodit","zahrada","zahynout","zajatec","zajet","zajistit","zaklepat","zakoupit","zalepit","zamezit","zamotat","zamyslet","zanechat","zanikat","zaplatit","zapojit","zapsat","zarazit","zastavit","zasunout","zatajit","zatemnit","zatknout","zaujmout","zavalit","zavelet","zavinit","zavolat","zavrtat","zazvonit","zbavit","zbrusu","zbudovat","zbytek","zdaleka","zdarma","zdatnost","zdivo","zdobit","zdroj","zdvih","zdymadlo","zelenina","zeman","zemina","zeptat","zezadu","zezdola","zhatit","zhltnout","zhluboka","zhotovit","zhruba","zima","zimnice","zjemnit","zklamat","zkoumat","zkratka","zkumavka","zlato","zlehka","zloba","zlom","zlost","zlozvyk","zmapovat","zmar","zmatek","zmije","zmizet","zmocnit","zmodrat","zmrzlina","zmutovat","znak","znalost","znamenat","znovu","zobrazit","zotavit","zoubek","zoufale","zplodit","zpomalit","zprava","zprostit","zprudka","zprvu","zrada","zranit","zrcadlo","zrnitost","zrno","zrovna","zrychlit","zrzavost","zticha","ztratit","zubovina","zubr","zvednout","zvenku","zvesela","zvon","zvrat","zvukovod","zvyk"]')},24573:e=>{"use strict";e.exports=JSON.parse('["abandon","ability","able","about","above","absent","absorb","abstract","absurd","abuse","access","accident","account","accuse","achieve","acid","acoustic","acquire","across","act","action","actor","actress","actual","adapt","add","addict","address","adjust","admit","adult","advance","advice","aerobic","affair","afford","afraid","again","age","agent","agree","ahead","aim","air","airport","aisle","alarm","album","alcohol","alert","alien","all","alley","allow","almost","alone","alpha","already","also","alter","always","amateur","amazing","among","amount","amused","analyst","anchor","ancient","anger","angle","angry","animal","ankle","announce","annual","another","answer","antenna","antique","anxiety","any","apart","apology","appear","apple","approve","april","arch","arctic","area","arena","argue","arm","armed","armor","army","around","arrange","arrest","arrive","arrow","art","artefact","artist","artwork","ask","aspect","assault","asset","assist","assume","asthma","athlete","atom","attack","attend","attitude","attract","auction","audit","august","aunt","author","auto","autumn","average","avocado","avoid","awake","aware","away","awesome","awful","awkward","axis","baby","bachelor","bacon","badge","bag","balance","balcony","ball","bamboo","banana","banner","bar","barely","bargain","barrel","base","basic","basket","battle","beach","bean","beauty","because","become","beef","before","begin","behave","behind","believe","below","belt","bench","benefit","best","betray","better","between","beyond","bicycle","bid","bike","bind","biology","bird","birth","bitter","black","blade","blame","blanket","blast","bleak","bless","blind","blood","blossom","blouse","blue","blur","blush","board","boat","body","boil","bomb","bone","bonus","book","boost","border","boring","borrow","boss","bottom","bounce","box","boy","bracket","brain","brand","brass","brave","bread","breeze","brick","bridge","brief","bright","bring","brisk","broccoli","broken","bronze","broom","brother","brown","brush","bubble","buddy","budget","buffalo","build","bulb","bulk","bullet","bundle","bunker","burden","burger","burst","bus","business","busy","butter","buyer","buzz","cabbage","cabin","cable","cactus","cage","cake","call","calm","camera","camp","can","canal","cancel","candy","cannon","canoe","canvas","canyon","capable","capital","captain","car","carbon","card","cargo","carpet","carry","cart","case","cash","casino","castle","casual","cat","catalog","catch","category","cattle","caught","cause","caution","cave","ceiling","celery","cement","census","century","cereal","certain","chair","chalk","champion","change","chaos","chapter","charge","chase","chat","cheap","check","cheese","chef","cherry","chest","chicken","chief","child","chimney","choice","choose","chronic","chuckle","chunk","churn","cigar","cinnamon","circle","citizen","city","civil","claim","clap","clarify","claw","clay","clean","clerk","clever","click","client","cliff","climb","clinic","clip","clock","clog","close","cloth","cloud","clown","club","clump","cluster","clutch","coach","coast","coconut","code","coffee","coil","coin","collect","color","column","combine","come","comfort","comic","common","company","concert","conduct","confirm","congress","connect","consider","control","convince","cook","cool","copper","copy","coral","core","corn","correct","cost","cotton","couch","country","couple","course","cousin","cover","coyote","crack","cradle","craft","cram","crane","crash","crater","crawl","crazy","cream","credit","creek","crew","cricket","crime","crisp","critic","crop","cross","crouch","crowd","crucial","cruel","cruise","crumble","crunch","crush","cry","crystal","cube","culture","cup","cupboard","curious","current","curtain","curve","cushion","custom","cute","cycle","dad","damage","damp","dance","danger","daring","dash","daughter","dawn","day","deal","debate","debris","decade","december","decide","decline","decorate","decrease","deer","defense","define","defy","degree","delay","deliver","demand","demise","denial","dentist","deny","depart","depend","deposit","depth","deputy","derive","describe","desert","design","desk","despair","destroy","detail","detect","develop","device","devote","diagram","dial","diamond","diary","dice","diesel","diet","differ","digital","dignity","dilemma","dinner","dinosaur","direct","dirt","disagree","discover","disease","dish","dismiss","disorder","display","distance","divert","divide","divorce","dizzy","doctor","document","dog","doll","dolphin","domain","donate","donkey","donor","door","dose","double","dove","draft","dragon","drama","drastic","draw","dream","dress","drift","drill","drink","drip","drive","drop","drum","dry","duck","dumb","dune","during","dust","dutch","duty","dwarf","dynamic","eager","eagle","early","earn","earth","easily","east","easy","echo","ecology","economy","edge","edit","educate","effort","egg","eight","either","elbow","elder","electric","elegant","element","elephant","elevator","elite","else","embark","embody","embrace","emerge","emotion","employ","empower","empty","enable","enact","end","endless","endorse","enemy","energy","enforce","engage","engine","enhance","enjoy","enlist","enough","enrich","enroll","ensure","enter","entire","entry","envelope","episode","equal","equip","era","erase","erode","erosion","error","erupt","escape","essay","essence","estate","eternal","ethics","evidence","evil","evoke","evolve","exact","example","excess","exchange","excite","exclude","excuse","execute","exercise","exhaust","exhibit","exile","exist","exit","exotic","expand","expect","expire","explain","expose","express","extend","extra","eye","eyebrow","fabric","face","faculty","fade","faint","faith","fall","false","fame","family","famous","fan","fancy","fantasy","farm","fashion","fat","fatal","father","fatigue","fault","favorite","feature","february","federal","fee","feed","feel","female","fence","festival","fetch","fever","few","fiber","fiction","field","figure","file","film","filter","final","find","fine","finger","finish","fire","firm","first","fiscal","fish","fit","fitness","fix","flag","flame","flash","flat","flavor","flee","flight","flip","float","flock","floor","flower","fluid","flush","fly","foam","focus","fog","foil","fold","follow","food","foot","force","forest","forget","fork","fortune","forum","forward","fossil","foster","found","fox","fragile","frame","frequent","fresh","friend","fringe","frog","front","frost","frown","frozen","fruit","fuel","fun","funny","furnace","fury","future","gadget","gain","galaxy","gallery","game","gap","garage","garbage","garden","garlic","garment","gas","gasp","gate","gather","gauge","gaze","general","genius","genre","gentle","genuine","gesture","ghost","giant","gift","giggle","ginger","giraffe","girl","give","glad","glance","glare","glass","glide","glimpse","globe","gloom","glory","glove","glow","glue","goat","goddess","gold","good","goose","gorilla","gospel","gossip","govern","gown","grab","grace","grain","grant","grape","grass","gravity","great","green","grid","grief","grit","grocery","group","grow","grunt","guard","guess","guide","guilt","guitar","gun","gym","habit","hair","half","hammer","hamster","hand","happy","harbor","hard","harsh","harvest","hat","have","hawk","hazard","head","health","heart","heavy","hedgehog","height","hello","helmet","help","hen","hero","hidden","high","hill","hint","hip","hire","history","hobby","hockey","hold","hole","holiday","hollow","home","honey","hood","hope","horn","horror","horse","hospital","host","hotel","hour","hover","hub","huge","human","humble","humor","hundred","hungry","hunt","hurdle","hurry","hurt","husband","hybrid","ice","icon","idea","identify","idle","ignore","ill","illegal","illness","image","imitate","immense","immune","impact","impose","improve","impulse","inch","include","income","increase","index","indicate","indoor","industry","infant","inflict","inform","inhale","inherit","initial","inject","injury","inmate","inner","innocent","input","inquiry","insane","insect","inside","inspire","install","intact","interest","into","invest","invite","involve","iron","island","isolate","issue","item","ivory","jacket","jaguar","jar","jazz","jealous","jeans","jelly","jewel","job","join","joke","journey","joy","judge","juice","jump","jungle","junior","junk","just","kangaroo","keen","keep","ketchup","key","kick","kid","kidney","kind","kingdom","kiss","kit","kitchen","kite","kitten","kiwi","knee","knife","knock","know","lab","label","labor","ladder","lady","lake","lamp","language","laptop","large","later","latin","laugh","laundry","lava","law","lawn","lawsuit","layer","lazy","leader","leaf","learn","leave","lecture","left","leg","legal","legend","leisure","lemon","lend","length","lens","leopard","lesson","letter","level","liar","liberty","library","license","life","lift","light","like","limb","limit","link","lion","liquid","list","little","live","lizard","load","loan","lobster","local","lock","logic","lonely","long","loop","lottery","loud","lounge","love","loyal","lucky","luggage","lumber","lunar","lunch","luxury","lyrics","machine","mad","magic","magnet","maid","mail","main","major","make","mammal","man","manage","mandate","mango","mansion","manual","maple","marble","march","margin","marine","market","marriage","mask","mass","master","match","material","math","matrix","matter","maximum","maze","meadow","mean","measure","meat","mechanic","medal","media","melody","melt","member","memory","mention","menu","mercy","merge","merit","merry","mesh","message","metal","method","middle","midnight","milk","million","mimic","mind","minimum","minor","minute","miracle","mirror","misery","miss","mistake","mix","mixed","mixture","mobile","model","modify","mom","moment","monitor","monkey","monster","month","moon","moral","more","morning","mosquito","mother","motion","motor","mountain","mouse","move","movie","much","muffin","mule","multiply","muscle","museum","mushroom","music","must","mutual","myself","mystery","myth","naive","name","napkin","narrow","nasty","nation","nature","near","neck","need","negative","neglect","neither","nephew","nerve","nest","net","network","neutral","never","news","next","nice","night","noble","noise","nominee","noodle","normal","north","nose","notable","note","nothing","notice","novel","now","nuclear","number","nurse","nut","oak","obey","object","oblige","obscure","observe","obtain","obvious","occur","ocean","october","odor","off","offer","office","often","oil","okay","old","olive","olympic","omit","once","one","onion","online","only","open","opera","opinion","oppose","option","orange","orbit","orchard","order","ordinary","organ","orient","original","orphan","ostrich","other","outdoor","outer","output","outside","oval","oven","over","own","owner","oxygen","oyster","ozone","pact","paddle","page","pair","palace","palm","panda","panel","panic","panther","paper","parade","parent","park","parrot","party","pass","patch","path","patient","patrol","pattern","pause","pave","payment","peace","peanut","pear","peasant","pelican","pen","penalty","pencil","people","pepper","perfect","permit","person","pet","phone","photo","phrase","physical","piano","picnic","picture","piece","pig","pigeon","pill","pilot","pink","pioneer","pipe","pistol","pitch","pizza","place","planet","plastic","plate","play","please","pledge","pluck","plug","plunge","poem","poet","point","polar","pole","police","pond","pony","pool","popular","portion","position","possible","post","potato","pottery","poverty","powder","power","practice","praise","predict","prefer","prepare","present","pretty","prevent","price","pride","primary","print","priority","prison","private","prize","problem","process","produce","profit","program","project","promote","proof","property","prosper","protect","proud","provide","public","pudding","pull","pulp","pulse","pumpkin","punch","pupil","puppy","purchase","purity","purpose","purse","push","put","puzzle","pyramid","quality","quantum","quarter","question","quick","quit","quiz","quote","rabbit","raccoon","race","rack","radar","radio","rail","rain","raise","rally","ramp","ranch","random","range","rapid","rare","rate","rather","raven","raw","razor","ready","real","reason","rebel","rebuild","recall","receive","recipe","record","recycle","reduce","reflect","reform","refuse","region","regret","regular","reject","relax","release","relief","rely","remain","remember","remind","remove","render","renew","rent","reopen","repair","repeat","replace","report","require","rescue","resemble","resist","resource","response","result","retire","retreat","return","reunion","reveal","review","reward","rhythm","rib","ribbon","rice","rich","ride","ridge","rifle","right","rigid","ring","riot","ripple","risk","ritual","rival","river","road","roast","robot","robust","rocket","romance","roof","rookie","room","rose","rotate","rough","round","route","royal","rubber","rude","rug","rule","run","runway","rural","sad","saddle","sadness","safe","sail","salad","salmon","salon","salt","salute","same","sample","sand","satisfy","satoshi","sauce","sausage","save","say","scale","scan","scare","scatter","scene","scheme","school","science","scissors","scorpion","scout","scrap","screen","script","scrub","sea","search","season","seat","second","secret","section","security","seed","seek","segment","select","sell","seminar","senior","sense","sentence","series","service","session","settle","setup","seven","shadow","shaft","shallow","share","shed","shell","sheriff","shield","shift","shine","ship","shiver","shock","shoe","shoot","shop","short","shoulder","shove","shrimp","shrug","shuffle","shy","sibling","sick","side","siege","sight","sign","silent","silk","silly","silver","similar","simple","since","sing","siren","sister","situate","six","size","skate","sketch","ski","skill","skin","skirt","skull","slab","slam","sleep","slender","slice","slide","slight","slim","slogan","slot","slow","slush","small","smart","smile","smoke","smooth","snack","snake","snap","sniff","snow","soap","soccer","social","sock","soda","soft","solar","soldier","solid","solution","solve","someone","song","soon","sorry","sort","soul","sound","soup","source","south","space","spare","spatial","spawn","speak","special","speed","spell","spend","sphere","spice","spider","spike","spin","spirit","split","spoil","sponsor","spoon","sport","spot","spray","spread","spring","spy","square","squeeze","squirrel","stable","stadium","staff","stage","stairs","stamp","stand","start","state","stay","steak","steel","stem","step","stereo","stick","still","sting","stock","stomach","stone","stool","story","stove","strategy","street","strike","strong","struggle","student","stuff","stumble","style","subject","submit","subway","success","such","sudden","suffer","sugar","suggest","suit","summer","sun","sunny","sunset","super","supply","supreme","sure","surface","surge","surprise","surround","survey","suspect","sustain","swallow","swamp","swap","swarm","swear","sweet","swift","swim","swing","switch","sword","symbol","symptom","syrup","system","table","tackle","tag","tail","talent","talk","tank","tape","target","task","taste","tattoo","taxi","teach","team","tell","ten","tenant","tennis","tent","term","test","text","thank","that","theme","then","theory","there","they","thing","this","thought","three","thrive","throw","thumb","thunder","ticket","tide","tiger","tilt","timber","time","tiny","tip","tired","tissue","title","toast","tobacco","today","toddler","toe","together","toilet","token","tomato","tomorrow","tone","tongue","tonight","tool","tooth","top","topic","topple","torch","tornado","tortoise","toss","total","tourist","toward","tower","town","toy","track","trade","traffic","tragic","train","transfer","trap","trash","travel","tray","treat","tree","trend","trial","tribe","trick","trigger","trim","trip","trophy","trouble","truck","true","truly","trumpet","trust","truth","try","tube","tuition","tumble","tuna","tunnel","turkey","turn","turtle","twelve","twenty","twice","twin","twist","two","type","typical","ugly","umbrella","unable","unaware","uncle","uncover","under","undo","unfair","unfold","unhappy","uniform","unique","unit","universe","unknown","unlock","until","unusual","unveil","update","upgrade","uphold","upon","upper","upset","urban","urge","usage","use","used","useful","useless","usual","utility","vacant","vacuum","vague","valid","valley","valve","van","vanish","vapor","various","vast","vault","vehicle","velvet","vendor","venture","venue","verb","verify","version","very","vessel","veteran","viable","vibrant","vicious","victory","video","view","village","vintage","violin","virtual","virus","visa","visit","visual","vital","vivid","vocal","voice","void","volcano","volume","vote","voyage","wage","wagon","wait","walk","wall","walnut","want","warfare","warm","warrior","wash","wasp","waste","water","wave","way","wealth","weapon","wear","weasel","weather","web","wedding","weekend","weird","welcome","west","wet","whale","what","wheat","wheel","when","where","whip","whisper","wide","width","wife","wild","will","win","window","wine","wing","wink","winner","winter","wire","wisdom","wise","wish","witness","wolf","woman","wonder","wood","wool","word","work","world","worry","worth","wrap","wreck","wrestle","wrist","write","wrong","yard","year","yellow","you","young","youth","zebra","zero","zone","zoo"]')},11848:e=>{"use strict";e.exports=JSON.parse('["abaisser","abandon","abdiquer","abeille","abolir","aborder","aboutir","aboyer","abrasif","abreuver","abriter","abroger","abrupt","absence","absolu","absurde","abusif","abyssal","académie","acajou","acarien","accabler","accepter","acclamer","accolade","accroche","accuser","acerbe","achat","acheter","aciduler","acier","acompte","acquérir","acronyme","acteur","actif","actuel","adepte","adéquat","adhésif","adjectif","adjuger","admettre","admirer","adopter","adorer","adoucir","adresse","adroit","adulte","adverbe","aérer","aéronef","affaire","affecter","affiche","affreux","affubler","agacer","agencer","agile","agiter","agrafer","agréable","agrume","aider","aiguille","ailier","aimable","aisance","ajouter","ajuster","alarmer","alchimie","alerte","algèbre","algue","aliéner","aliment","alléger","alliage","allouer","allumer","alourdir","alpaga","altesse","alvéole","amateur","ambigu","ambre","aménager","amertume","amidon","amiral","amorcer","amour","amovible","amphibie","ampleur","amusant","analyse","anaphore","anarchie","anatomie","ancien","anéantir","angle","angoisse","anguleux","animal","annexer","annonce","annuel","anodin","anomalie","anonyme","anormal","antenne","antidote","anxieux","apaiser","apéritif","aplanir","apologie","appareil","appeler","apporter","appuyer","aquarium","aqueduc","arbitre","arbuste","ardeur","ardoise","argent","arlequin","armature","armement","armoire","armure","arpenter","arracher","arriver","arroser","arsenic","artériel","article","aspect","asphalte","aspirer","assaut","asservir","assiette","associer","assurer","asticot","astre","astuce","atelier","atome","atrium","atroce","attaque","attentif","attirer","attraper","aubaine","auberge","audace","audible","augurer","aurore","automne","autruche","avaler","avancer","avarice","avenir","averse","aveugle","aviateur","avide","avion","aviser","avoine","avouer","avril","axial","axiome","badge","bafouer","bagage","baguette","baignade","balancer","balcon","baleine","balisage","bambin","bancaire","bandage","banlieue","bannière","banquier","barbier","baril","baron","barque","barrage","bassin","bastion","bataille","bateau","batterie","baudrier","bavarder","belette","bélier","belote","bénéfice","berceau","berger","berline","bermuda","besace","besogne","bétail","beurre","biberon","bicycle","bidule","bijou","bilan","bilingue","billard","binaire","biologie","biopsie","biotype","biscuit","bison","bistouri","bitume","bizarre","blafard","blague","blanchir","blessant","blinder","blond","bloquer","blouson","bobard","bobine","boire","boiser","bolide","bonbon","bondir","bonheur","bonifier","bonus","bordure","borne","botte","boucle","boueux","bougie","boulon","bouquin","bourse","boussole","boutique","boxeur","branche","brasier","brave","brebis","brèche","breuvage","bricoler","brigade","brillant","brioche","brique","brochure","broder","bronzer","brousse","broyeur","brume","brusque","brutal","bruyant","buffle","buisson","bulletin","bureau","burin","bustier","butiner","butoir","buvable","buvette","cabanon","cabine","cachette","cadeau","cadre","caféine","caillou","caisson","calculer","calepin","calibre","calmer","calomnie","calvaire","camarade","caméra","camion","campagne","canal","caneton","canon","cantine","canular","capable","caporal","caprice","capsule","capter","capuche","carabine","carbone","caresser","caribou","carnage","carotte","carreau","carton","cascade","casier","casque","cassure","causer","caution","cavalier","caverne","caviar","cédille","ceinture","céleste","cellule","cendrier","censurer","central","cercle","cérébral","cerise","cerner","cerveau","cesser","chagrin","chaise","chaleur","chambre","chance","chapitre","charbon","chasseur","chaton","chausson","chavirer","chemise","chenille","chéquier","chercher","cheval","chien","chiffre","chignon","chimère","chiot","chlorure","chocolat","choisir","chose","chouette","chrome","chute","cigare","cigogne","cimenter","cinéma","cintrer","circuler","cirer","cirque","citerne","citoyen","citron","civil","clairon","clameur","claquer","classe","clavier","client","cligner","climat","clivage","cloche","clonage","cloporte","cobalt","cobra","cocasse","cocotier","coder","codifier","coffre","cogner","cohésion","coiffer","coincer","colère","colibri","colline","colmater","colonel","combat","comédie","commande","compact","concert","conduire","confier","congeler","connoter","consonne","contact","convexe","copain","copie","corail","corbeau","cordage","corniche","corpus","correct","cortège","cosmique","costume","coton","coude","coupure","courage","couteau","couvrir","coyote","crabe","crainte","cravate","crayon","créature","créditer","crémeux","creuser","crevette","cribler","crier","cristal","critère","croire","croquer","crotale","crucial","cruel","crypter","cubique","cueillir","cuillère","cuisine","cuivre","culminer","cultiver","cumuler","cupide","curatif","curseur","cyanure","cycle","cylindre","cynique","daigner","damier","danger","danseur","dauphin","débattre","débiter","déborder","débrider","débutant","décaler","décembre","déchirer","décider","déclarer","décorer","décrire","décupler","dédale","déductif","déesse","défensif","défiler","défrayer","dégager","dégivrer","déglutir","dégrafer","déjeuner","délice","déloger","demander","demeurer","démolir","dénicher","dénouer","dentelle","dénuder","départ","dépenser","déphaser","déplacer","déposer","déranger","dérober","désastre","descente","désert","désigner","désobéir","dessiner","destrier","détacher","détester","détourer","détresse","devancer","devenir","deviner","devoir","diable","dialogue","diamant","dicter","différer","digérer","digital","digne","diluer","dimanche","diminuer","dioxyde","directif","diriger","discuter","disposer","dissiper","distance","divertir","diviser","docile","docteur","dogme","doigt","domaine","domicile","dompter","donateur","donjon","donner","dopamine","dortoir","dorure","dosage","doseur","dossier","dotation","douanier","double","douceur","douter","doyen","dragon","draper","dresser","dribbler","droiture","duperie","duplexe","durable","durcir","dynastie","éblouir","écarter","écharpe","échelle","éclairer","éclipse","éclore","écluse","école","économie","écorce","écouter","écraser","écrémer","écrivain","écrou","écume","écureuil","édifier","éduquer","effacer","effectif","effigie","effort","effrayer","effusion","égaliser","égarer","éjecter","élaborer","élargir","électron","élégant","éléphant","élève","éligible","élitisme","éloge","élucider","éluder","emballer","embellir","embryon","émeraude","émission","emmener","émotion","émouvoir","empereur","employer","emporter","emprise","émulsion","encadrer","enchère","enclave","encoche","endiguer","endosser","endroit","enduire","énergie","enfance","enfermer","enfouir","engager","engin","englober","énigme","enjamber","enjeu","enlever","ennemi","ennuyeux","enrichir","enrobage","enseigne","entasser","entendre","entier","entourer","entraver","énumérer","envahir","enviable","envoyer","enzyme","éolien","épaissir","épargne","épatant","épaule","épicerie","épidémie","épier","épilogue","épine","épisode","épitaphe","époque","épreuve","éprouver","épuisant","équerre","équipe","ériger","érosion","erreur","éruption","escalier","espadon","espèce","espiègle","espoir","esprit","esquiver","essayer","essence","essieu","essorer","estime","estomac","estrade","étagère","étaler","étanche","étatique","éteindre","étendoir","éternel","éthanol","éthique","ethnie","étirer","étoffer","étoile","étonnant","étourdir","étrange","étroit","étude","euphorie","évaluer","évasion","éventail","évidence","éviter","évolutif","évoquer","exact","exagérer","exaucer","exceller","excitant","exclusif","excuse","exécuter","exemple","exercer","exhaler","exhorter","exigence","exiler","exister","exotique","expédier","explorer","exposer","exprimer","exquis","extensif","extraire","exulter","fable","fabuleux","facette","facile","facture","faiblir","falaise","fameux","famille","farceur","farfelu","farine","farouche","fasciner","fatal","fatigue","faucon","fautif","faveur","favori","fébrile","féconder","fédérer","félin","femme","fémur","fendoir","féodal","fermer","féroce","ferveur","festival","feuille","feutre","février","fiasco","ficeler","fictif","fidèle","figure","filature","filetage","filière","filleul","filmer","filou","filtrer","financer","finir","fiole","firme","fissure","fixer","flairer","flamme","flasque","flatteur","fléau","flèche","fleur","flexion","flocon","flore","fluctuer","fluide","fluvial","folie","fonderie","fongible","fontaine","forcer","forgeron","formuler","fortune","fossile","foudre","fougère","fouiller","foulure","fourmi","fragile","fraise","franchir","frapper","frayeur","frégate","freiner","frelon","frémir","frénésie","frère","friable","friction","frisson","frivole","froid","fromage","frontal","frotter","fruit","fugitif","fuite","fureur","furieux","furtif","fusion","futur","gagner","galaxie","galerie","gambader","garantir","gardien","garnir","garrigue","gazelle","gazon","géant","gélatine","gélule","gendarme","général","génie","genou","gentil","géologie","géomètre","géranium","germe","gestuel","geyser","gibier","gicler","girafe","givre","glace","glaive","glisser","globe","gloire","glorieux","golfeur","gomme","gonfler","gorge","gorille","goudron","gouffre","goulot","goupille","gourmand","goutte","graduel","graffiti","graine","grand","grappin","gratuit","gravir","grenat","griffure","griller","grimper","grogner","gronder","grotte","groupe","gruger","grutier","gruyère","guépard","guerrier","guide","guimauve","guitare","gustatif","gymnaste","gyrostat","habitude","hachoir","halte","hameau","hangar","hanneton","haricot","harmonie","harpon","hasard","hélium","hématome","herbe","hérisson","hermine","héron","hésiter","heureux","hiberner","hibou","hilarant","histoire","hiver","homard","hommage","homogène","honneur","honorer","honteux","horde","horizon","horloge","hormone","horrible","houleux","housse","hublot","huileux","humain","humble","humide","humour","hurler","hydromel","hygiène","hymne","hypnose","idylle","ignorer","iguane","illicite","illusion","image","imbiber","imiter","immense","immobile","immuable","impact","impérial","implorer","imposer","imprimer","imputer","incarner","incendie","incident","incliner","incolore","indexer","indice","inductif","inédit","ineptie","inexact","infini","infliger","informer","infusion","ingérer","inhaler","inhiber","injecter","injure","innocent","inoculer","inonder","inscrire","insecte","insigne","insolite","inspirer","instinct","insulter","intact","intense","intime","intrigue","intuitif","inutile","invasion","inventer","inviter","invoquer","ironique","irradier","irréel","irriter","isoler","ivoire","ivresse","jaguar","jaillir","jambe","janvier","jardin","jauger","jaune","javelot","jetable","jeton","jeudi","jeunesse","joindre","joncher","jongler","joueur","jouissif","journal","jovial","joyau","joyeux","jubiler","jugement","junior","jupon","juriste","justice","juteux","juvénile","kayak","kimono","kiosque","label","labial","labourer","lacérer","lactose","lagune","laine","laisser","laitier","lambeau","lamelle","lampe","lanceur","langage","lanterne","lapin","largeur","larme","laurier","lavabo","lavoir","lecture","légal","léger","légume","lessive","lettre","levier","lexique","lézard","liasse","libérer","libre","licence","licorne","liège","lièvre","ligature","ligoter","ligue","limer","limite","limonade","limpide","linéaire","lingot","lionceau","liquide","lisière","lister","lithium","litige","littoral","livreur","logique","lointain","loisir","lombric","loterie","louer","lourd","loutre","louve","loyal","lubie","lucide","lucratif","lueur","lugubre","luisant","lumière","lunaire","lundi","luron","lutter","luxueux","machine","magasin","magenta","magique","maigre","maillon","maintien","mairie","maison","majorer","malaxer","maléfice","malheur","malice","mallette","mammouth","mandater","maniable","manquant","manteau","manuel","marathon","marbre","marchand","mardi","maritime","marqueur","marron","marteler","mascotte","massif","matériel","matière","matraque","maudire","maussade","mauve","maximal","méchant","méconnu","médaille","médecin","méditer","méduse","meilleur","mélange","mélodie","membre","mémoire","menacer","mener","menhir","mensonge","mentor","mercredi","mérite","merle","messager","mesure","métal","météore","méthode","métier","meuble","miauler","microbe","miette","mignon","migrer","milieu","million","mimique","mince","minéral","minimal","minorer","minute","miracle","miroiter","missile","mixte","mobile","moderne","moelleux","mondial","moniteur","monnaie","monotone","monstre","montagne","monument","moqueur","morceau","morsure","mortier","moteur","motif","mouche","moufle","moulin","mousson","mouton","mouvant","multiple","munition","muraille","murène","murmure","muscle","muséum","musicien","mutation","muter","mutuel","myriade","myrtille","mystère","mythique","nageur","nappe","narquois","narrer","natation","nation","nature","naufrage","nautique","navire","nébuleux","nectar","néfaste","négation","négliger","négocier","neige","nerveux","nettoyer","neurone","neutron","neveu","niche","nickel","nitrate","niveau","noble","nocif","nocturne","noirceur","noisette","nomade","nombreux","nommer","normatif","notable","notifier","notoire","nourrir","nouveau","novateur","novembre","novice","nuage","nuancer","nuire","nuisible","numéro","nuptial","nuque","nutritif","obéir","objectif","obliger","obscur","observer","obstacle","obtenir","obturer","occasion","occuper","océan","octobre","octroyer","octupler","oculaire","odeur","odorant","offenser","officier","offrir","ogive","oiseau","oisillon","olfactif","olivier","ombrage","omettre","onctueux","onduler","onéreux","onirique","opale","opaque","opérer","opinion","opportun","opprimer","opter","optique","orageux","orange","orbite","ordonner","oreille","organe","orgueil","orifice","ornement","orque","ortie","osciller","osmose","ossature","otarie","ouragan","ourson","outil","outrager","ouvrage","ovation","oxyde","oxygène","ozone","paisible","palace","palmarès","palourde","palper","panache","panda","pangolin","paniquer","panneau","panorama","pantalon","papaye","papier","papoter","papyrus","paradoxe","parcelle","paresse","parfumer","parler","parole","parrain","parsemer","partager","parure","parvenir","passion","pastèque","paternel","patience","patron","pavillon","pavoiser","payer","paysage","peigne","peintre","pelage","pélican","pelle","pelouse","peluche","pendule","pénétrer","pénible","pensif","pénurie","pépite","péplum","perdrix","perforer","période","permuter","perplexe","persil","perte","peser","pétale","petit","pétrir","peuple","pharaon","phobie","phoque","photon","phrase","physique","piano","pictural","pièce","pierre","pieuvre","pilote","pinceau","pipette","piquer","pirogue","piscine","piston","pivoter","pixel","pizza","placard","plafond","plaisir","planer","plaque","plastron","plateau","pleurer","plexus","pliage","plomb","plonger","pluie","plumage","pochette","poésie","poète","pointe","poirier","poisson","poivre","polaire","policier","pollen","polygone","pommade","pompier","ponctuel","pondérer","poney","portique","position","posséder","posture","potager","poteau","potion","pouce","poulain","poumon","pourpre","poussin","pouvoir","prairie","pratique","précieux","prédire","préfixe","prélude","prénom","présence","prétexte","prévoir","primitif","prince","prison","priver","problème","procéder","prodige","profond","progrès","proie","projeter","prologue","promener","propre","prospère","protéger","prouesse","proverbe","prudence","pruneau","psychose","public","puceron","puiser","pulpe","pulsar","punaise","punitif","pupitre","purifier","puzzle","pyramide","quasar","querelle","question","quiétude","quitter","quotient","racine","raconter","radieux","ragondin","raideur","raisin","ralentir","rallonge","ramasser","rapide","rasage","ratisser","ravager","ravin","rayonner","réactif","réagir","réaliser","réanimer","recevoir","réciter","réclamer","récolter","recruter","reculer","recycler","rédiger","redouter","refaire","réflexe","réformer","refrain","refuge","régalien","région","réglage","régulier","réitérer","rejeter","rejouer","relatif","relever","relief","remarque","remède","remise","remonter","remplir","remuer","renard","renfort","renifler","renoncer","rentrer","renvoi","replier","reporter","reprise","reptile","requin","réserve","résineux","résoudre","respect","rester","résultat","rétablir","retenir","réticule","retomber","retracer","réunion","réussir","revanche","revivre","révolte","révulsif","richesse","rideau","rieur","rigide","rigoler","rincer","riposter","risible","risque","rituel","rival","rivière","rocheux","romance","rompre","ronce","rondin","roseau","rosier","rotatif","rotor","rotule","rouge","rouille","rouleau","routine","royaume","ruban","rubis","ruche","ruelle","rugueux","ruiner","ruisseau","ruser","rustique","rythme","sabler","saboter","sabre","sacoche","safari","sagesse","saisir","salade","salive","salon","saluer","samedi","sanction","sanglier","sarcasme","sardine","saturer","saugrenu","saumon","sauter","sauvage","savant","savonner","scalpel","scandale","scélérat","scénario","sceptre","schéma","science","scinder","score","scrutin","sculpter","séance","sécable","sécher","secouer","sécréter","sédatif","séduire","seigneur","séjour","sélectif","semaine","sembler","semence","séminal","sénateur","sensible","sentence","séparer","séquence","serein","sergent","sérieux","serrure","sérum","service","sésame","sévir","sevrage","sextuple","sidéral","siècle","siéger","siffler","sigle","signal","silence","silicium","simple","sincère","sinistre","siphon","sirop","sismique","situer","skier","social","socle","sodium","soigneux","soldat","soleil","solitude","soluble","sombre","sommeil","somnoler","sonde","songeur","sonnette","sonore","sorcier","sortir","sosie","sottise","soucieux","soudure","souffle","soulever","soupape","source","soutirer","souvenir","spacieux","spatial","spécial","sphère","spiral","stable","station","sternum","stimulus","stipuler","strict","studieux","stupeur","styliste","sublime","substrat","subtil","subvenir","succès","sucre","suffixe","suggérer","suiveur","sulfate","superbe","supplier","surface","suricate","surmener","surprise","sursaut","survie","suspect","syllabe","symbole","symétrie","synapse","syntaxe","système","tabac","tablier","tactile","tailler","talent","talisman","talonner","tambour","tamiser","tangible","tapis","taquiner","tarder","tarif","tartine","tasse","tatami","tatouage","taupe","taureau","taxer","témoin","temporel","tenaille","tendre","teneur","tenir","tension","terminer","terne","terrible","tétine","texte","thème","théorie","thérapie","thorax","tibia","tiède","timide","tirelire","tiroir","tissu","titane","titre","tituber","toboggan","tolérant","tomate","tonique","tonneau","toponyme","torche","tordre","tornade","torpille","torrent","torse","tortue","totem","toucher","tournage","tousser","toxine","traction","trafic","tragique","trahir","train","trancher","travail","trèfle","tremper","trésor","treuil","triage","tribunal","tricoter","trilogie","triomphe","tripler","triturer","trivial","trombone","tronc","tropical","troupeau","tuile","tulipe","tumulte","tunnel","turbine","tuteur","tutoyer","tuyau","tympan","typhon","typique","tyran","ubuesque","ultime","ultrason","unanime","unifier","union","unique","unitaire","univers","uranium","urbain","urticant","usage","usine","usuel","usure","utile","utopie","vacarme","vaccin","vagabond","vague","vaillant","vaincre","vaisseau","valable","valise","vallon","valve","vampire","vanille","vapeur","varier","vaseux","vassal","vaste","vecteur","vedette","végétal","véhicule","veinard","véloce","vendredi","vénérer","venger","venimeux","ventouse","verdure","vérin","vernir","verrou","verser","vertu","veston","vétéran","vétuste","vexant","vexer","viaduc","viande","victoire","vidange","vidéo","vignette","vigueur","vilain","village","vinaigre","violon","vipère","virement","virtuose","virus","visage","viseur","vision","visqueux","visuel","vital","vitesse","viticole","vitrine","vivace","vivipare","vocation","voguer","voile","voisin","voiture","volaille","volcan","voltiger","volume","vorace","vortex","voter","vouloir","voyage","voyelle","wagon","xénon","yacht","zèbre","zénith","zeste","zoologie"]')},72841:e=>{"use strict";e.exports=JSON.parse('["abaco","abbaglio","abbinato","abete","abisso","abolire","abrasivo","abrogato","accadere","accenno","accusato","acetone","achille","acido","acqua","acre","acrilico","acrobata","acuto","adagio","addebito","addome","adeguato","aderire","adipe","adottare","adulare","affabile","affetto","affisso","affranto","aforisma","afoso","africano","agave","agente","agevole","aggancio","agire","agitare","agonismo","agricolo","agrumeto","aguzzo","alabarda","alato","albatro","alberato","albo","albume","alce","alcolico","alettone","alfa","algebra","aliante","alibi","alimento","allagato","allegro","allievo","allodola","allusivo","almeno","alogeno","alpaca","alpestre","altalena","alterno","alticcio","altrove","alunno","alveolo","alzare","amalgama","amanita","amarena","ambito","ambrato","ameba","america","ametista","amico","ammasso","ammenda","ammirare","ammonito","amore","ampio","ampliare","amuleto","anacardo","anagrafe","analista","anarchia","anatra","anca","ancella","ancora","andare","andrea","anello","angelo","angolare","angusto","anima","annegare","annidato","anno","annuncio","anonimo","anticipo","anzi","apatico","apertura","apode","apparire","appetito","appoggio","approdo","appunto","aprile","arabica","arachide","aragosta","araldica","arancio","aratura","arazzo","arbitro","archivio","ardito","arenile","argento","argine","arguto","aria","armonia","arnese","arredato","arringa","arrosto","arsenico","arso","artefice","arzillo","asciutto","ascolto","asepsi","asettico","asfalto","asino","asola","aspirato","aspro","assaggio","asse","assoluto","assurdo","asta","astenuto","astice","astratto","atavico","ateismo","atomico","atono","attesa","attivare","attorno","attrito","attuale","ausilio","austria","autista","autonomo","autunno","avanzato","avere","avvenire","avviso","avvolgere","azione","azoto","azzimo","azzurro","babele","baccano","bacino","baco","badessa","badilata","bagnato","baita","balcone","baldo","balena","ballata","balzano","bambino","bandire","baraonda","barbaro","barca","baritono","barlume","barocco","basilico","basso","batosta","battuto","baule","bava","bavosa","becco","beffa","belgio","belva","benda","benevole","benigno","benzina","bere","berlina","beta","bibita","bici","bidone","bifido","biga","bilancia","bimbo","binocolo","biologo","bipede","bipolare","birbante","birra","biscotto","bisesto","bisnonno","bisonte","bisturi","bizzarro","blando","blatta","bollito","bonifico","bordo","bosco","botanico","bottino","bozzolo","braccio","bradipo","brama","branca","bravura","bretella","brevetto","brezza","briglia","brillante","brindare","broccolo","brodo","bronzina","brullo","bruno","bubbone","buca","budino","buffone","buio","bulbo","buono","burlone","burrasca","bussola","busta","cadetto","caduco","calamaro","calcolo","calesse","calibro","calmo","caloria","cambusa","camerata","camicia","cammino","camola","campale","canapa","candela","cane","canino","canotto","cantina","capace","capello","capitolo","capogiro","cappero","capra","capsula","carapace","carcassa","cardo","carisma","carovana","carretto","cartolina","casaccio","cascata","caserma","caso","cassone","castello","casuale","catasta","catena","catrame","cauto","cavillo","cedibile","cedrata","cefalo","celebre","cellulare","cena","cenone","centesimo","ceramica","cercare","certo","cerume","cervello","cesoia","cespo","ceto","chela","chiaro","chicca","chiedere","chimera","china","chirurgo","chitarra","ciao","ciclismo","cifrare","cigno","cilindro","ciottolo","circa","cirrosi","citrico","cittadino","ciuffo","civetta","civile","classico","clinica","cloro","cocco","codardo","codice","coerente","cognome","collare","colmato","colore","colposo","coltivato","colza","coma","cometa","commando","comodo","computer","comune","conciso","condurre","conferma","congelare","coniuge","connesso","conoscere","consumo","continuo","convegno","coperto","copione","coppia","copricapo","corazza","cordata","coricato","cornice","corolla","corpo","corredo","corsia","cortese","cosmico","costante","cottura","covato","cratere","cravatta","creato","credere","cremoso","crescita","creta","criceto","crinale","crisi","critico","croce","cronaca","crostata","cruciale","crusca","cucire","cuculo","cugino","cullato","cupola","curatore","cursore","curvo","cuscino","custode","dado","daino","dalmata","damerino","daniela","dannoso","danzare","datato","davanti","davvero","debutto","decennio","deciso","declino","decollo","decreto","dedicato","definito","deforme","degno","delegare","delfino","delirio","delta","demenza","denotato","dentro","deposito","derapata","derivare","deroga","descritto","deserto","desiderio","desumere","detersivo","devoto","diametro","dicembre","diedro","difeso","diffuso","digerire","digitale","diluvio","dinamico","dinnanzi","dipinto","diploma","dipolo","diradare","dire","dirotto","dirupo","disagio","discreto","disfare","disgelo","disposto","distanza","disumano","dito","divano","divelto","dividere","divorato","doblone","docente","doganale","dogma","dolce","domato","domenica","dominare","dondolo","dono","dormire","dote","dottore","dovuto","dozzina","drago","druido","dubbio","dubitare","ducale","duna","duomo","duplice","duraturo","ebano","eccesso","ecco","eclissi","economia","edera","edicola","edile","editoria","educare","egemonia","egli","egoismo","egregio","elaborato","elargire","elegante","elencato","eletto","elevare","elfico","elica","elmo","elsa","eluso","emanato","emblema","emesso","emiro","emotivo","emozione","empirico","emulo","endemico","enduro","energia","enfasi","enoteca","entrare","enzima","epatite","epilogo","episodio","epocale","eppure","equatore","erario","erba","erboso","erede","eremita","erigere","ermetico","eroe","erosivo","errante","esagono","esame","esanime","esaudire","esca","esempio","esercito","esibito","esigente","esistere","esito","esofago","esortato","esoso","espanso","espresso","essenza","esso","esteso","estimare","estonia","estroso","esultare","etilico","etnico","etrusco","etto","euclideo","europa","evaso","evidenza","evitato","evoluto","evviva","fabbrica","faccenda","fachiro","falco","famiglia","fanale","fanfara","fango","fantasma","fare","farfalla","farinoso","farmaco","fascia","fastoso","fasullo","faticare","fato","favoloso","febbre","fecola","fede","fegato","felpa","feltro","femmina","fendere","fenomeno","fermento","ferro","fertile","fessura","festivo","fetta","feudo","fiaba","fiducia","fifa","figurato","filo","finanza","finestra","finire","fiore","fiscale","fisico","fiume","flacone","flamenco","flebo","flemma","florido","fluente","fluoro","fobico","focaccia","focoso","foderato","foglio","folata","folclore","folgore","fondente","fonetico","fonia","fontana","forbito","forchetta","foresta","formica","fornaio","foro","fortezza","forzare","fosfato","fosso","fracasso","frana","frassino","fratello","freccetta","frenata","fresco","frigo","frollino","fronde","frugale","frutta","fucilata","fucsia","fuggente","fulmine","fulvo","fumante","fumetto","fumoso","fune","funzione","fuoco","furbo","furgone","furore","fuso","futile","gabbiano","gaffe","galateo","gallina","galoppo","gambero","gamma","garanzia","garbo","garofano","garzone","gasdotto","gasolio","gastrico","gatto","gaudio","gazebo","gazzella","geco","gelatina","gelso","gemello","gemmato","gene","genitore","gennaio","genotipo","gergo","ghepardo","ghiaccio","ghisa","giallo","gilda","ginepro","giocare","gioiello","giorno","giove","girato","girone","gittata","giudizio","giurato","giusto","globulo","glutine","gnomo","gobba","golf","gomito","gommone","gonfio","gonna","governo","gracile","grado","grafico","grammo","grande","grattare","gravoso","grazia","greca","gregge","grifone","grigio","grinza","grotta","gruppo","guadagno","guaio","guanto","guardare","gufo","guidare","ibernato","icona","identico","idillio","idolo","idra","idrico","idrogeno","igiene","ignaro","ignorato","ilare","illeso","illogico","illudere","imballo","imbevuto","imbocco","imbuto","immane","immerso","immolato","impacco","impeto","impiego","importo","impronta","inalare","inarcare","inattivo","incanto","incendio","inchino","incisivo","incluso","incontro","incrocio","incubo","indagine","india","indole","inedito","infatti","infilare","inflitto","ingaggio","ingegno","inglese","ingordo","ingrosso","innesco","inodore","inoltrare","inondato","insano","insetto","insieme","insonnia","insulina","intasato","intero","intonaco","intuito","inumidire","invalido","invece","invito","iperbole","ipnotico","ipotesi","ippica","iride","irlanda","ironico","irrigato","irrorare","isolato","isotopo","isterico","istituto","istrice","italia","iterare","labbro","labirinto","lacca","lacerato","lacrima","lacuna","laddove","lago","lampo","lancetta","lanterna","lardoso","larga","laringe","lastra","latenza","latino","lattuga","lavagna","lavoro","legale","leggero","lembo","lentezza","lenza","leone","lepre","lesivo","lessato","lesto","letterale","leva","levigato","libero","lido","lievito","lilla","limatura","limitare","limpido","lineare","lingua","liquido","lira","lirica","lisca","lite","litigio","livrea","locanda","lode","logica","lombare","londra","longevo","loquace","lorenzo","loto","lotteria","luce","lucidato","lumaca","luminoso","lungo","lupo","luppolo","lusinga","lusso","lutto","macabro","macchina","macero","macinato","madama","magico","maglia","magnete","magro","maiolica","malafede","malgrado","malinteso","malsano","malto","malumore","mana","mancia","mandorla","mangiare","manifesto","mannaro","manovra","mansarda","mantide","manubrio","mappa","maratona","marcire","maretta","marmo","marsupio","maschera","massaia","mastino","materasso","matricola","mattone","maturo","mazurca","meandro","meccanico","mecenate","medesimo","meditare","mega","melassa","melis","melodia","meninge","meno","mensola","mercurio","merenda","merlo","meschino","mese","messere","mestolo","metallo","metodo","mettere","miagolare","mica","micelio","michele","microbo","midollo","miele","migliore","milano","milite","mimosa","minerale","mini","minore","mirino","mirtillo","miscela","missiva","misto","misurare","mitezza","mitigare","mitra","mittente","mnemonico","modello","modifica","modulo","mogano","mogio","mole","molosso","monastero","monco","mondina","monetario","monile","monotono","monsone","montato","monviso","mora","mordere","morsicato","mostro","motivato","motosega","motto","movenza","movimento","mozzo","mucca","mucosa","muffa","mughetto","mugnaio","mulatto","mulinello","multiplo","mummia","munto","muovere","murale","musa","muscolo","musica","mutevole","muto","nababbo","nafta","nanometro","narciso","narice","narrato","nascere","nastrare","naturale","nautica","naviglio","nebulosa","necrosi","negativo","negozio","nemmeno","neofita","neretto","nervo","nessuno","nettuno","neutrale","neve","nevrotico","nicchia","ninfa","nitido","nobile","nocivo","nodo","nome","nomina","nordico","normale","norvegese","nostrano","notare","notizia","notturno","novella","nucleo","nulla","numero","nuovo","nutrire","nuvola","nuziale","oasi","obbedire","obbligo","obelisco","oblio","obolo","obsoleto","occasione","occhio","occidente","occorrere","occultare","ocra","oculato","odierno","odorare","offerta","offrire","offuscato","oggetto","oggi","ognuno","olandese","olfatto","oliato","oliva","ologramma","oltre","omaggio","ombelico","ombra","omega","omissione","ondoso","onere","onice","onnivoro","onorevole","onta","operato","opinione","opposto","oracolo","orafo","ordine","orecchino","orefice","orfano","organico","origine","orizzonte","orma","ormeggio","ornativo","orologio","orrendo","orribile","ortensia","ortica","orzata","orzo","osare","oscurare","osmosi","ospedale","ospite","ossa","ossidare","ostacolo","oste","otite","otre","ottagono","ottimo","ottobre","ovale","ovest","ovino","oviparo","ovocito","ovunque","ovviare","ozio","pacchetto","pace","pacifico","padella","padrone","paese","paga","pagina","palazzina","palesare","pallido","palo","palude","pandoro","pannello","paolo","paonazzo","paprica","parabola","parcella","parere","pargolo","pari","parlato","parola","partire","parvenza","parziale","passivo","pasticca","patacca","patologia","pattume","pavone","peccato","pedalare","pedonale","peggio","peloso","penare","pendice","penisola","pennuto","penombra","pensare","pentola","pepe","pepita","perbene","percorso","perdonato","perforare","pergamena","periodo","permesso","perno","perplesso","persuaso","pertugio","pervaso","pesatore","pesista","peso","pestifero","petalo","pettine","petulante","pezzo","piacere","pianta","piattino","piccino","picozza","piega","pietra","piffero","pigiama","pigolio","pigro","pila","pilifero","pillola","pilota","pimpante","pineta","pinna","pinolo","pioggia","piombo","piramide","piretico","pirite","pirolisi","pitone","pizzico","placebo","planare","plasma","platano","plenario","pochezza","poderoso","podismo","poesia","poggiare","polenta","poligono","pollice","polmonite","polpetta","polso","poltrona","polvere","pomice","pomodoro","ponte","popoloso","porfido","poroso","porpora","porre","portata","posa","positivo","possesso","postulato","potassio","potere","pranzo","prassi","pratica","precluso","predica","prefisso","pregiato","prelievo","premere","prenotare","preparato","presenza","pretesto","prevalso","prima","principe","privato","problema","procura","produrre","profumo","progetto","prolunga","promessa","pronome","proposta","proroga","proteso","prova","prudente","prugna","prurito","psiche","pubblico","pudica","pugilato","pugno","pulce","pulito","pulsante","puntare","pupazzo","pupilla","puro","quadro","qualcosa","quasi","querela","quota","raccolto","raddoppio","radicale","radunato","raffica","ragazzo","ragione","ragno","ramarro","ramingo","ramo","randagio","rantolare","rapato","rapina","rappreso","rasatura","raschiato","rasente","rassegna","rastrello","rata","ravveduto","reale","recepire","recinto","recluta","recondito","recupero","reddito","redimere","regalato","registro","regola","regresso","relazione","remare","remoto","renna","replica","reprimere","reputare","resa","residente","responso","restauro","rete","retina","retorica","rettifica","revocato","riassunto","ribadire","ribelle","ribrezzo","ricarica","ricco","ricevere","riciclato","ricordo","ricreduto","ridicolo","ridurre","rifasare","riflesso","riforma","rifugio","rigare","rigettato","righello","rilassato","rilevato","rimanere","rimbalzo","rimedio","rimorchio","rinascita","rincaro","rinforzo","rinnovo","rinomato","rinsavito","rintocco","rinuncia","rinvenire","riparato","ripetuto","ripieno","riportare","ripresa","ripulire","risata","rischio","riserva","risibile","riso","rispetto","ristoro","risultato","risvolto","ritardo","ritegno","ritmico","ritrovo","riunione","riva","riverso","rivincita","rivolto","rizoma","roba","robotico","robusto","roccia","roco","rodaggio","rodere","roditore","rogito","rollio","romantico","rompere","ronzio","rosolare","rospo","rotante","rotondo","rotula","rovescio","rubizzo","rubrica","ruga","rullino","rumine","rumoroso","ruolo","rupe","russare","rustico","sabato","sabbiare","sabotato","sagoma","salasso","saldatura","salgemma","salivare","salmone","salone","saltare","saluto","salvo","sapere","sapido","saporito","saraceno","sarcasmo","sarto","sassoso","satellite","satira","satollo","saturno","savana","savio","saziato","sbadiglio","sbalzo","sbancato","sbarra","sbattere","sbavare","sbendare","sbirciare","sbloccato","sbocciato","sbrinare","sbruffone","sbuffare","scabroso","scadenza","scala","scambiare","scandalo","scapola","scarso","scatenare","scavato","scelto","scenico","scettro","scheda","schiena","sciarpa","scienza","scindere","scippo","sciroppo","scivolo","sclerare","scodella","scolpito","scomparto","sconforto","scoprire","scorta","scossone","scozzese","scriba","scrollare","scrutinio","scuderia","scultore","scuola","scuro","scusare","sdebitare","sdoganare","seccatura","secondo","sedano","seggiola","segnalato","segregato","seguito","selciato","selettivo","sella","selvaggio","semaforo","sembrare","seme","seminato","sempre","senso","sentire","sepolto","sequenza","serata","serbato","sereno","serio","serpente","serraglio","servire","sestina","setola","settimana","sfacelo","sfaldare","sfamato","sfarzoso","sfaticato","sfera","sfida","sfilato","sfinge","sfocato","sfoderare","sfogo","sfoltire","sforzato","sfratto","sfruttato","sfuggito","sfumare","sfuso","sgabello","sgarbato","sgonfiare","sgorbio","sgrassato","sguardo","sibilo","siccome","sierra","sigla","signore","silenzio","sillaba","simbolo","simpatico","simulato","sinfonia","singolo","sinistro","sino","sintesi","sinusoide","sipario","sisma","sistole","situato","slitta","slogatura","sloveno","smarrito","smemorato","smentito","smeraldo","smilzo","smontare","smottato","smussato","snellire","snervato","snodo","sobbalzo","sobrio","soccorso","sociale","sodale","soffitto","sogno","soldato","solenne","solido","sollazzo","solo","solubile","solvente","somatico","somma","sonda","sonetto","sonnifero","sopire","soppeso","sopra","sorgere","sorpasso","sorriso","sorso","sorteggio","sorvolato","sospiro","sosta","sottile","spada","spalla","spargere","spatola","spavento","spazzola","specie","spedire","spegnere","spelatura","speranza","spessore","spettrale","spezzato","spia","spigoloso","spillato","spinoso","spirale","splendido","sportivo","sposo","spranga","sprecare","spronato","spruzzo","spuntino","squillo","sradicare","srotolato","stabile","stacco","staffa","stagnare","stampato","stantio","starnuto","stasera","statuto","stelo","steppa","sterzo","stiletto","stima","stirpe","stivale","stizzoso","stonato","storico","strappo","stregato","stridulo","strozzare","strutto","stuccare","stufo","stupendo","subentro","succoso","sudore","suggerito","sugo","sultano","suonare","superbo","supporto","surgelato","surrogato","sussurro","sutura","svagare","svedese","sveglio","svelare","svenuto","svezia","sviluppo","svista","svizzera","svolta","svuotare","tabacco","tabulato","tacciare","taciturno","tale","talismano","tampone","tannino","tara","tardivo","targato","tariffa","tarpare","tartaruga","tasto","tattico","taverna","tavolata","tazza","teca","tecnico","telefono","temerario","tempo","temuto","tendone","tenero","tensione","tentacolo","teorema","terme","terrazzo","terzetto","tesi","tesserato","testato","tetro","tettoia","tifare","tigella","timbro","tinto","tipico","tipografo","tiraggio","tiro","titanio","titolo","titubante","tizio","tizzone","toccare","tollerare","tolto","tombola","tomo","tonfo","tonsilla","topazio","topologia","toppa","torba","tornare","torrone","tortora","toscano","tossire","tostatura","totano","trabocco","trachea","trafila","tragedia","tralcio","tramonto","transito","trapano","trarre","trasloco","trattato","trave","treccia","tremolio","trespolo","tributo","tricheco","trifoglio","trillo","trincea","trio","tristezza","triturato","trivella","tromba","trono","troppo","trottola","trovare","truccato","tubatura","tuffato","tulipano","tumulto","tunisia","turbare","turchino","tuta","tutela","ubicato","uccello","uccisore","udire","uditivo","uffa","ufficio","uguale","ulisse","ultimato","umano","umile","umorismo","uncinetto","ungere","ungherese","unicorno","unificato","unisono","unitario","unte","uovo","upupa","uragano","urgenza","urlo","usanza","usato","uscito","usignolo","usuraio","utensile","utilizzo","utopia","vacante","vaccinato","vagabondo","vagliato","valanga","valgo","valico","valletta","valoroso","valutare","valvola","vampata","vangare","vanitoso","vano","vantaggio","vanvera","vapore","varano","varcato","variante","vasca","vedetta","vedova","veduto","vegetale","veicolo","velcro","velina","velluto","veloce","venato","vendemmia","vento","verace","verbale","vergogna","verifica","vero","verruca","verticale","vescica","vessillo","vestale","veterano","vetrina","vetusto","viandante","vibrante","vicenda","vichingo","vicinanza","vidimare","vigilia","vigneto","vigore","vile","villano","vimini","vincitore","viola","vipera","virgola","virologo","virulento","viscoso","visione","vispo","vissuto","visura","vita","vitello","vittima","vivanda","vivido","viziare","voce","voga","volatile","volere","volpe","voragine","vulcano","zampogna","zanna","zappato","zattera","zavorra","zefiro","zelante","zelo","zenzero","zerbino","zibetto","zinco","zircone","zitto","zolla","zotico","zucchero","zufolo","zulu","zuppa"]')},94472:e=>{"use strict";e.exports=JSON.parse('["あいこくしん","あいさつ","あいだ","あおぞら","あかちゃん","あきる","あけがた","あける","あこがれる","あさい","あさひ","あしあと","あじわう","あずかる","あずき","あそぶ","あたえる","あたためる","あたりまえ","あたる","あつい","あつかう","あっしゅく","あつまり","あつめる","あてな","あてはまる","あひる","あぶら","あぶる","あふれる","あまい","あまど","あまやかす","あまり","あみもの","あめりか","あやまる","あゆむ","あらいぐま","あらし","あらすじ","あらためる","あらゆる","あらわす","ありがとう","あわせる","あわてる","あんい","あんがい","あんこ","あんぜん","あんてい","あんない","あんまり","いいだす","いおん","いがい","いがく","いきおい","いきなり","いきもの","いきる","いくじ","いくぶん","いけばな","いけん","いこう","いこく","いこつ","いさましい","いさん","いしき","いじゅう","いじょう","いじわる","いずみ","いずれ","いせい","いせえび","いせかい","いせき","いぜん","いそうろう","いそがしい","いだい","いだく","いたずら","いたみ","いたりあ","いちおう","いちじ","いちど","いちば","いちぶ","いちりゅう","いつか","いっしゅん","いっせい","いっそう","いったん","いっち","いってい","いっぽう","いてざ","いてん","いどう","いとこ","いない","いなか","いねむり","いのち","いのる","いはつ","いばる","いはん","いびき","いひん","いふく","いへん","いほう","いみん","いもうと","いもたれ","いもり","いやがる","いやす","いよかん","いよく","いらい","いらすと","いりぐち","いりょう","いれい","いれもの","いれる","いろえんぴつ","いわい","いわう","いわかん","いわば","いわゆる","いんげんまめ","いんさつ","いんしょう","いんよう","うえき","うえる","うおざ","うがい","うかぶ","うかべる","うきわ","うくらいな","うくれれ","うけたまわる","うけつけ","うけとる","うけもつ","うける","うごかす","うごく","うこん","うさぎ","うしなう","うしろがみ","うすい","うすぎ","うすぐらい","うすめる","うせつ","うちあわせ","うちがわ","うちき","うちゅう","うっかり","うつくしい","うったえる","うつる","うどん","うなぎ","うなじ","うなずく","うなる","うねる","うのう","うぶげ","うぶごえ","うまれる","うめる","うもう","うやまう","うよく","うらがえす","うらぐち","うらない","うりあげ","うりきれ","うるさい","うれしい","うれゆき","うれる","うろこ","うわき","うわさ","うんこう","うんちん","うんてん","うんどう","えいえん","えいが","えいきょう","えいご","えいせい","えいぶん","えいよう","えいわ","えおり","えがお","えがく","えきたい","えくせる","えしゃく","えすて","えつらん","えのぐ","えほうまき","えほん","えまき","えもじ","えもの","えらい","えらぶ","えりあ","えんえん","えんかい","えんぎ","えんげき","えんしゅう","えんぜつ","えんそく","えんちょう","えんとつ","おいかける","おいこす","おいしい","おいつく","おうえん","おうさま","おうじ","おうせつ","おうたい","おうふく","おうべい","おうよう","おえる","おおい","おおう","おおどおり","おおや","おおよそ","おかえり","おかず","おがむ","おかわり","おぎなう","おきる","おくさま","おくじょう","おくりがな","おくる","おくれる","おこす","おこなう","おこる","おさえる","おさない","おさめる","おしいれ","おしえる","おじぎ","おじさん","おしゃれ","おそらく","おそわる","おたがい","おたく","おだやか","おちつく","おっと","おつり","おでかけ","おとしもの","おとなしい","おどり","おどろかす","おばさん","おまいり","おめでとう","おもいで","おもう","おもたい","おもちゃ","おやつ","おやゆび","およぼす","おらんだ","おろす","おんがく","おんけい","おんしゃ","おんせん","おんだん","おんちゅう","おんどけい","かあつ","かいが","がいき","がいけん","がいこう","かいさつ","かいしゃ","かいすいよく","かいぜん","かいぞうど","かいつう","かいてん","かいとう","かいふく","がいへき","かいほう","かいよう","がいらい","かいわ","かえる","かおり","かかえる","かがく","かがし","かがみ","かくご","かくとく","かざる","がぞう","かたい","かたち","がちょう","がっきゅう","がっこう","がっさん","がっしょう","かなざわし","かのう","がはく","かぶか","かほう","かほご","かまう","かまぼこ","かめれおん","かゆい","かようび","からい","かるい","かろう","かわく","かわら","がんか","かんけい","かんこう","かんしゃ","かんそう","かんたん","かんち","がんばる","きあい","きあつ","きいろ","ぎいん","きうい","きうん","きえる","きおう","きおく","きおち","きおん","きかい","きかく","きかんしゃ","ききて","きくばり","きくらげ","きけんせい","きこう","きこえる","きこく","きさい","きさく","きさま","きさらぎ","ぎじかがく","ぎしき","ぎじたいけん","ぎじにってい","ぎじゅつしゃ","きすう","きせい","きせき","きせつ","きそう","きぞく","きぞん","きたえる","きちょう","きつえん","ぎっちり","きつつき","きつね","きてい","きどう","きどく","きない","きなが","きなこ","きぬごし","きねん","きのう","きのした","きはく","きびしい","きひん","きふく","きぶん","きぼう","きほん","きまる","きみつ","きむずかしい","きめる","きもだめし","きもち","きもの","きゃく","きやく","ぎゅうにく","きよう","きょうりゅう","きらい","きらく","きりん","きれい","きれつ","きろく","ぎろん","きわめる","ぎんいろ","きんかくじ","きんじょ","きんようび","ぐあい","くいず","くうかん","くうき","くうぐん","くうこう","ぐうせい","くうそう","ぐうたら","くうふく","くうぼ","くかん","くきょう","くげん","ぐこう","くさい","くさき","くさばな","くさる","くしゃみ","くしょう","くすのき","くすりゆび","くせげ","くせん","ぐたいてき","くださる","くたびれる","くちこみ","くちさき","くつした","ぐっすり","くつろぐ","くとうてん","くどく","くなん","くねくね","くのう","くふう","くみあわせ","くみたてる","くめる","くやくしょ","くらす","くらべる","くるま","くれる","くろう","くわしい","ぐんかん","ぐんしょく","ぐんたい","ぐんて","けあな","けいかく","けいけん","けいこ","けいさつ","げいじゅつ","けいたい","げいのうじん","けいれき","けいろ","けおとす","けおりもの","げきか","げきげん","げきだん","げきちん","げきとつ","げきは","げきやく","げこう","げこくじょう","げざい","けさき","げざん","けしき","けしごむ","けしょう","げすと","けたば","けちゃっぷ","けちらす","けつあつ","けつい","けつえき","けっこん","けつじょ","けっせき","けってい","けつまつ","げつようび","げつれい","けつろん","げどく","けとばす","けとる","けなげ","けなす","けなみ","けぬき","げねつ","けねん","けはい","げひん","けぶかい","げぼく","けまり","けみかる","けむし","けむり","けもの","けらい","けろけろ","けわしい","けんい","けんえつ","けんお","けんか","げんき","けんげん","けんこう","けんさく","けんしゅう","けんすう","げんそう","けんちく","けんてい","けんとう","けんない","けんにん","げんぶつ","けんま","けんみん","けんめい","けんらん","けんり","こあくま","こいぬ","こいびと","ごうい","こうえん","こうおん","こうかん","ごうきゅう","ごうけい","こうこう","こうさい","こうじ","こうすい","ごうせい","こうそく","こうたい","こうちゃ","こうつう","こうてい","こうどう","こうない","こうはい","ごうほう","ごうまん","こうもく","こうりつ","こえる","こおり","ごかい","ごがつ","ごかん","こくご","こくさい","こくとう","こくない","こくはく","こぐま","こけい","こける","ここのか","こころ","こさめ","こしつ","こすう","こせい","こせき","こぜん","こそだて","こたい","こたえる","こたつ","こちょう","こっか","こつこつ","こつばん","こつぶ","こてい","こてん","ことがら","ことし","ことば","ことり","こなごな","こねこね","このまま","このみ","このよ","ごはん","こひつじ","こふう","こふん","こぼれる","ごまあぶら","こまかい","ごますり","こまつな","こまる","こむぎこ","こもじ","こもち","こもの","こもん","こやく","こやま","こゆう","こゆび","こよい","こよう","こりる","これくしょん","ころっけ","こわもて","こわれる","こんいん","こんかい","こんき","こんしゅう","こんすい","こんだて","こんとん","こんなん","こんびに","こんぽん","こんまけ","こんや","こんれい","こんわく","ざいえき","さいかい","さいきん","ざいげん","ざいこ","さいしょ","さいせい","ざいたく","ざいちゅう","さいてき","ざいりょう","さうな","さかいし","さがす","さかな","さかみち","さがる","さぎょう","さくし","さくひん","さくら","さこく","さこつ","さずかる","ざせき","さたん","さつえい","ざつおん","ざっか","ざつがく","さっきょく","ざっし","さつじん","ざっそう","さつたば","さつまいも","さてい","さといも","さとう","さとおや","さとし","さとる","さのう","さばく","さびしい","さべつ","さほう","さほど","さます","さみしい","さみだれ","さむけ","さめる","さやえんどう","さゆう","さよう","さよく","さらだ","ざるそば","さわやか","さわる","さんいん","さんか","さんきゃく","さんこう","さんさい","ざんしょ","さんすう","さんせい","さんそ","さんち","さんま","さんみ","さんらん","しあい","しあげ","しあさって","しあわせ","しいく","しいん","しうち","しえい","しおけ","しかい","しかく","じかん","しごと","しすう","じだい","したうけ","したぎ","したて","したみ","しちょう","しちりん","しっかり","しつじ","しつもん","してい","してき","してつ","じてん","じどう","しなぎれ","しなもの","しなん","しねま","しねん","しのぐ","しのぶ","しはい","しばかり","しはつ","しはらい","しはん","しひょう","しふく","じぶん","しへい","しほう","しほん","しまう","しまる","しみん","しむける","じむしょ","しめい","しめる","しもん","しゃいん","しゃうん","しゃおん","じゃがいも","しやくしょ","しゃくほう","しゃけん","しゃこ","しゃざい","しゃしん","しゃせん","しゃそう","しゃたい","しゃちょう","しゃっきん","じゃま","しゃりん","しゃれい","じゆう","じゅうしょ","しゅくはく","じゅしん","しゅっせき","しゅみ","しゅらば","じゅんばん","しょうかい","しょくたく","しょっけん","しょどう","しょもつ","しらせる","しらべる","しんか","しんこう","じんじゃ","しんせいじ","しんちく","しんりん","すあげ","すあし","すあな","ずあん","すいえい","すいか","すいとう","ずいぶん","すいようび","すうがく","すうじつ","すうせん","すおどり","すきま","すくう","すくない","すける","すごい","すこし","ずさん","すずしい","すすむ","すすめる","すっかり","ずっしり","ずっと","すてき","すてる","すねる","すのこ","すはだ","すばらしい","ずひょう","ずぶぬれ","すぶり","すふれ","すべて","すべる","ずほう","すぼん","すまい","すめし","すもう","すやき","すらすら","するめ","すれちがう","すろっと","すわる","すんぜん","すんぽう","せあぶら","せいかつ","せいげん","せいじ","せいよう","せおう","せかいかん","せきにん","せきむ","せきゆ","せきらんうん","せけん","せこう","せすじ","せたい","せたけ","せっかく","せっきゃく","ぜっく","せっけん","せっこつ","せっさたくま","せつぞく","せつだん","せつでん","せっぱん","せつび","せつぶん","せつめい","せつりつ","せなか","せのび","せはば","せびろ","せぼね","せまい","せまる","せめる","せもたれ","せりふ","ぜんあく","せんい","せんえい","せんか","せんきょ","せんく","せんげん","ぜんご","せんさい","せんしゅ","せんすい","せんせい","せんぞ","せんたく","せんちょう","せんてい","せんとう","せんぬき","せんねん","せんぱい","ぜんぶ","ぜんぽう","せんむ","せんめんじょ","せんもん","せんやく","せんゆう","せんよう","ぜんら","ぜんりゃく","せんれい","せんろ","そあく","そいとげる","そいね","そうがんきょう","そうき","そうご","そうしん","そうだん","そうなん","そうび","そうめん","そうり","そえもの","そえん","そがい","そげき","そこう","そこそこ","そざい","そしな","そせい","そせん","そそぐ","そだてる","そつう","そつえん","そっかん","そつぎょう","そっけつ","そっこう","そっせん","そっと","そとがわ","そとづら","そなえる","そなた","そふぼ","そぼく","そぼろ","そまつ","そまる","そむく","そむりえ","そめる","そもそも","そよかぜ","そらまめ","そろう","そんかい","そんけい","そんざい","そんしつ","そんぞく","そんちょう","ぞんび","ぞんぶん","そんみん","たあい","たいいん","たいうん","たいえき","たいおう","だいがく","たいき","たいぐう","たいけん","たいこ","たいざい","だいじょうぶ","だいすき","たいせつ","たいそう","だいたい","たいちょう","たいてい","だいどころ","たいない","たいねつ","たいのう","たいはん","だいひょう","たいふう","たいへん","たいほ","たいまつばな","たいみんぐ","たいむ","たいめん","たいやき","たいよう","たいら","たいりょく","たいる","たいわん","たうえ","たえる","たおす","たおる","たおれる","たかい","たかね","たきび","たくさん","たこく","たこやき","たさい","たしざん","だじゃれ","たすける","たずさわる","たそがれ","たたかう","たたく","ただしい","たたみ","たちばな","だっかい","だっきゃく","だっこ","だっしゅつ","だったい","たてる","たとえる","たなばた","たにん","たぬき","たのしみ","たはつ","たぶん","たべる","たぼう","たまご","たまる","だむる","ためいき","ためす","ためる","たもつ","たやすい","たよる","たらす","たりきほんがん","たりょう","たりる","たると","たれる","たれんと","たろっと","たわむれる","だんあつ","たんい","たんおん","たんか","たんき","たんけん","たんご","たんさん","たんじょうび","だんせい","たんそく","たんたい","だんち","たんてい","たんとう","だんな","たんにん","だんねつ","たんのう","たんぴん","だんぼう","たんまつ","たんめい","だんれつ","だんろ","だんわ","ちあい","ちあん","ちいき","ちいさい","ちえん","ちかい","ちから","ちきゅう","ちきん","ちけいず","ちけん","ちこく","ちさい","ちしき","ちしりょう","ちせい","ちそう","ちたい","ちたん","ちちおや","ちつじょ","ちてき","ちてん","ちぬき","ちぬり","ちのう","ちひょう","ちへいせん","ちほう","ちまた","ちみつ","ちみどろ","ちめいど","ちゃんこなべ","ちゅうい","ちゆりょく","ちょうし","ちょさくけん","ちらし","ちらみ","ちりがみ","ちりょう","ちるど","ちわわ","ちんたい","ちんもく","ついか","ついたち","つうか","つうじょう","つうはん","つうわ","つかう","つかれる","つくね","つくる","つけね","つける","つごう","つたえる","つづく","つつじ","つつむ","つとめる","つながる","つなみ","つねづね","つのる","つぶす","つまらない","つまる","つみき","つめたい","つもり","つもる","つよい","つるぼ","つるみく","つわもの","つわり","てあし","てあて","てあみ","ていおん","ていか","ていき","ていけい","ていこく","ていさつ","ていし","ていせい","ていたい","ていど","ていねい","ていひょう","ていへん","ていぼう","てうち","ておくれ","てきとう","てくび","でこぼこ","てさぎょう","てさげ","てすり","てそう","てちがい","てちょう","てつがく","てつづき","でっぱ","てつぼう","てつや","でぬかえ","てぬき","てぬぐい","てのひら","てはい","てぶくろ","てふだ","てほどき","てほん","てまえ","てまきずし","てみじか","てみやげ","てらす","てれび","てわけ","てわたし","でんあつ","てんいん","てんかい","てんき","てんぐ","てんけん","てんごく","てんさい","てんし","てんすう","でんち","てんてき","てんとう","てんない","てんぷら","てんぼうだい","てんめつ","てんらんかい","でんりょく","でんわ","どあい","といれ","どうかん","とうきゅう","どうぐ","とうし","とうむぎ","とおい","とおか","とおく","とおす","とおる","とかい","とかす","ときおり","ときどき","とくい","とくしゅう","とくてん","とくに","とくべつ","とけい","とける","とこや","とさか","としょかん","とそう","とたん","とちゅう","とっきゅう","とっくん","とつぜん","とつにゅう","とどける","ととのえる","とない","となえる","となり","とのさま","とばす","どぶがわ","とほう","とまる","とめる","ともだち","ともる","どようび","とらえる","とんかつ","どんぶり","ないかく","ないこう","ないしょ","ないす","ないせん","ないそう","なおす","ながい","なくす","なげる","なこうど","なさけ","なたでここ","なっとう","なつやすみ","ななおし","なにごと","なにもの","なにわ","なのか","なふだ","なまいき","なまえ","なまみ","なみだ","なめらか","なめる","なやむ","ならう","ならび","ならぶ","なれる","なわとび","なわばり","にあう","にいがた","にうけ","におい","にかい","にがて","にきび","にくしみ","にくまん","にげる","にさんかたんそ","にしき","にせもの","にちじょう","にちようび","にっか","にっき","にっけい","にっこう","にっさん","にっしょく","にっすう","にっせき","にってい","になう","にほん","にまめ","にもつ","にやり","にゅういん","にりんしゃ","にわとり","にんい","にんか","にんき","にんげん","にんしき","にんずう","にんそう","にんたい","にんち","にんてい","にんにく","にんぷ","にんまり","にんむ","にんめい","にんよう","ぬいくぎ","ぬかす","ぬぐいとる","ぬぐう","ぬくもり","ぬすむ","ぬまえび","ぬめり","ぬらす","ぬんちゃく","ねあげ","ねいき","ねいる","ねいろ","ねぐせ","ねくたい","ねくら","ねこぜ","ねこむ","ねさげ","ねすごす","ねそべる","ねだん","ねつい","ねっしん","ねつぞう","ねったいぎょ","ねぶそく","ねふだ","ねぼう","ねほりはほり","ねまき","ねまわし","ねみみ","ねむい","ねむたい","ねもと","ねらう","ねわざ","ねんいり","ねんおし","ねんかん","ねんきん","ねんぐ","ねんざ","ねんし","ねんちゃく","ねんど","ねんぴ","ねんぶつ","ねんまつ","ねんりょう","ねんれい","のいず","のおづま","のがす","のきなみ","のこぎり","のこす","のこる","のせる","のぞく","のぞむ","のたまう","のちほど","のっく","のばす","のはら","のべる","のぼる","のみもの","のやま","のらいぬ","のらねこ","のりもの","のりゆき","のれん","のんき","ばあい","はあく","ばあさん","ばいか","ばいく","はいけん","はいご","はいしん","はいすい","はいせん","はいそう","はいち","ばいばい","はいれつ","はえる","はおる","はかい","ばかり","はかる","はくしゅ","はけん","はこぶ","はさみ","はさん","はしご","ばしょ","はしる","はせる","ぱそこん","はそん","はたん","はちみつ","はつおん","はっかく","はづき","はっきり","はっくつ","はっけん","はっこう","はっさん","はっしん","はったつ","はっちゅう","はってん","はっぴょう","はっぽう","はなす","はなび","はにかむ","はぶらし","はみがき","はむかう","はめつ","はやい","はやし","はらう","はろうぃん","はわい","はんい","はんえい","はんおん","はんかく","はんきょう","ばんぐみ","はんこ","はんしゃ","はんすう","はんだん","ぱんち","ぱんつ","はんてい","はんとし","はんのう","はんぱ","はんぶん","はんぺん","はんぼうき","はんめい","はんらん","はんろん","ひいき","ひうん","ひえる","ひかく","ひかり","ひかる","ひかん","ひくい","ひけつ","ひこうき","ひこく","ひさい","ひさしぶり","ひさん","びじゅつかん","ひしょ","ひそか","ひそむ","ひたむき","ひだり","ひたる","ひつぎ","ひっこし","ひっし","ひつじゅひん","ひっす","ひつぜん","ぴったり","ぴっちり","ひつよう","ひてい","ひとごみ","ひなまつり","ひなん","ひねる","ひはん","ひびく","ひひょう","ひほう","ひまわり","ひまん","ひみつ","ひめい","ひめじし","ひやけ","ひやす","ひよう","びょうき","ひらがな","ひらく","ひりつ","ひりょう","ひるま","ひるやすみ","ひれい","ひろい","ひろう","ひろき","ひろゆき","ひんかく","ひんけつ","ひんこん","ひんしゅ","ひんそう","ぴんち","ひんぱん","びんぼう","ふあん","ふいうち","ふうけい","ふうせん","ぷうたろう","ふうとう","ふうふ","ふえる","ふおん","ふかい","ふきん","ふくざつ","ふくぶくろ","ふこう","ふさい","ふしぎ","ふじみ","ふすま","ふせい","ふせぐ","ふそく","ぶたにく","ふたん","ふちょう","ふつう","ふつか","ふっかつ","ふっき","ふっこく","ぶどう","ふとる","ふとん","ふのう","ふはい","ふひょう","ふへん","ふまん","ふみん","ふめつ","ふめん","ふよう","ふりこ","ふりる","ふるい","ふんいき","ぶんがく","ぶんぐ","ふんしつ","ぶんせき","ふんそう","ぶんぽう","へいあん","へいおん","へいがい","へいき","へいげん","へいこう","へいさ","へいしゃ","へいせつ","へいそ","へいたく","へいてん","へいねつ","へいわ","へきが","へこむ","べにいろ","べにしょうが","へらす","へんかん","べんきょう","べんごし","へんさい","へんたい","べんり","ほあん","ほいく","ぼうぎょ","ほうこく","ほうそう","ほうほう","ほうもん","ほうりつ","ほえる","ほおん","ほかん","ほきょう","ぼきん","ほくろ","ほけつ","ほけん","ほこう","ほこる","ほしい","ほしつ","ほしゅ","ほしょう","ほせい","ほそい","ほそく","ほたて","ほたる","ぽちぶくろ","ほっきょく","ほっさ","ほったん","ほとんど","ほめる","ほんい","ほんき","ほんけ","ほんしつ","ほんやく","まいにち","まかい","まかせる","まがる","まける","まこと","まさつ","まじめ","ますく","まぜる","まつり","まとめ","まなぶ","まぬけ","まねく","まほう","まもる","まゆげ","まよう","まろやか","まわす","まわり","まわる","まんが","まんきつ","まんぞく","まんなか","みいら","みうち","みえる","みがく","みかた","みかん","みけん","みこん","みじかい","みすい","みすえる","みせる","みっか","みつかる","みつける","みてい","みとめる","みなと","みなみかさい","みねらる","みのう","みのがす","みほん","みもと","みやげ","みらい","みりょく","みわく","みんか","みんぞく","むいか","むえき","むえん","むかい","むかう","むかえ","むかし","むぎちゃ","むける","むげん","むさぼる","むしあつい","むしば","むじゅん","むしろ","むすう","むすこ","むすぶ","むすめ","むせる","むせん","むちゅう","むなしい","むのう","むやみ","むよう","むらさき","むりょう","むろん","めいあん","めいうん","めいえん","めいかく","めいきょく","めいさい","めいし","めいそう","めいぶつ","めいれい","めいわく","めぐまれる","めざす","めした","めずらしい","めだつ","めまい","めやす","めんきょ","めんせき","めんどう","もうしあげる","もうどうけん","もえる","もくし","もくてき","もくようび","もちろん","もどる","もらう","もんく","もんだい","やおや","やける","やさい","やさしい","やすい","やすたろう","やすみ","やせる","やそう","やたい","やちん","やっと","やっぱり","やぶる","やめる","ややこしい","やよい","やわらかい","ゆうき","ゆうびんきょく","ゆうべ","ゆうめい","ゆけつ","ゆしゅつ","ゆせん","ゆそう","ゆたか","ゆちゃく","ゆでる","ゆにゅう","ゆびわ","ゆらい","ゆれる","ようい","ようか","ようきゅう","ようじ","ようす","ようちえん","よかぜ","よかん","よきん","よくせい","よくぼう","よけい","よごれる","よさん","よしゅう","よそう","よそく","よっか","よてい","よどがわく","よねつ","よやく","よゆう","よろこぶ","よろしい","らいう","らくがき","らくご","らくさつ","らくだ","らしんばん","らせん","らぞく","らたい","らっか","られつ","りえき","りかい","りきさく","りきせつ","りくぐん","りくつ","りけん","りこう","りせい","りそう","りそく","りてん","りねん","りゆう","りゅうがく","りよう","りょうり","りょかん","りょくちゃ","りょこう","りりく","りれき","りろん","りんご","るいけい","るいさい","るいじ","るいせき","るすばん","るりがわら","れいかん","れいぎ","れいせい","れいぞうこ","れいとう","れいぼう","れきし","れきだい","れんあい","れんけい","れんこん","れんさい","れんしゅう","れんぞく","れんらく","ろうか","ろうご","ろうじん","ろうそく","ろくが","ろこつ","ろじうら","ろしゅつ","ろせん","ろてん","ろめん","ろれつ","ろんぎ","ろんぱ","ろんぶん","ろんり","わかす","わかめ","わかやま","わかれる","わしつ","わじまし","わすれもの","わらう","われる"]')},8013:e=>{"use strict";e.exports=JSON.parse('["가격","가끔","가난","가능","가득","가르침","가뭄","가방","가상","가슴","가운데","가을","가이드","가입","가장","가정","가족","가죽","각오","각자","간격","간부","간섭","간장","간접","간판","갈등","갈비","갈색","갈증","감각","감기","감소","감수성","감자","감정","갑자기","강남","강당","강도","강력히","강변","강북","강사","강수량","강아지","강원도","강의","강제","강조","같이","개구리","개나리","개방","개별","개선","개성","개인","객관적","거실","거액","거울","거짓","거품","걱정","건강","건물","건설","건조","건축","걸음","검사","검토","게시판","게임","겨울","견해","결과","결국","결론","결석","결승","결심","결정","결혼","경계","경고","경기","경력","경복궁","경비","경상도","경영","경우","경쟁","경제","경주","경찰","경치","경향","경험","계곡","계단","계란","계산","계속","계약","계절","계층","계획","고객","고구려","고궁","고급","고등학생","고무신","고민","고양이","고장","고전","고집","고춧가루","고통","고향","곡식","골목","골짜기","골프","공간","공개","공격","공군","공급","공기","공동","공무원","공부","공사","공식","공업","공연","공원","공장","공짜","공책","공통","공포","공항","공휴일","과목","과일","과장","과정","과학","관객","관계","관광","관념","관람","관련","관리","관습","관심","관점","관찰","광경","광고","광장","광주","괴로움","굉장히","교과서","교문","교복","교실","교양","교육","교장","교직","교통","교환","교훈","구경","구름","구멍","구별","구분","구석","구성","구속","구역","구입","구청","구체적","국가","국기","국내","국립","국물","국민","국수","국어","국왕","국적","국제","국회","군대","군사","군인","궁극적","권리","권위","권투","귀국","귀신","규정","규칙","균형","그날","그냥","그늘","그러나","그룹","그릇","그림","그제서야","그토록","극복","극히","근거","근교","근래","근로","근무","근본","근원","근육","근처","글씨","글자","금강산","금고","금년","금메달","금액","금연","금요일","금지","긍정적","기간","기관","기념","기능","기독교","기둥","기록","기름","기법","기본","기분","기쁨","기숙사","기술","기억","기업","기온","기운","기원","기적","기준","기침","기혼","기획","긴급","긴장","길이","김밥","김치","김포공항","깍두기","깜빡","깨달음","깨소금","껍질","꼭대기","꽃잎","나들이","나란히","나머지","나물","나침반","나흘","낙엽","난방","날개","날씨","날짜","남녀","남대문","남매","남산","남자","남편","남학생","낭비","낱말","내년","내용","내일","냄비","냄새","냇물","냉동","냉면","냉방","냉장고","넥타이","넷째","노동","노란색","노력","노인","녹음","녹차","녹화","논리","논문","논쟁","놀이","농구","농담","농민","농부","농업","농장","농촌","높이","눈동자","눈물","눈썹","뉴욕","느낌","늑대","능동적","능력","다방","다양성","다음","다이어트","다행","단계","단골","단독","단맛","단순","단어","단위","단점","단체","단추","단편","단풍","달걀","달러","달력","달리","닭고기","담당","담배","담요","담임","답변","답장","당근","당분간","당연히","당장","대규모","대낮","대단히","대답","대도시","대략","대량","대륙","대문","대부분","대신","대응","대장","대전","대접","대중","대책","대출","대충","대통령","대학","대한민국","대합실","대형","덩어리","데이트","도대체","도덕","도둑","도망","도서관","도심","도움","도입","도자기","도저히","도전","도중","도착","독감","독립","독서","독일","독창적","동화책","뒷모습","뒷산","딸아이","마누라","마늘","마당","마라톤","마련","마무리","마사지","마약","마요네즈","마을","마음","마이크","마중","마지막","마찬가지","마찰","마흔","막걸리","막내","막상","만남","만두","만세","만약","만일","만점","만족","만화","많이","말기","말씀","말투","맘대로","망원경","매년","매달","매력","매번","매스컴","매일","매장","맥주","먹이","먼저","먼지","멀리","메일","며느리","며칠","면담","멸치","명단","명령","명예","명의","명절","명칭","명함","모금","모니터","모델","모든","모범","모습","모양","모임","모조리","모집","모퉁이","목걸이","목록","목사","목소리","목숨","목적","목표","몰래","몸매","몸무게","몸살","몸속","몸짓","몸통","몹시","무관심","무궁화","무더위","무덤","무릎","무슨","무엇","무역","무용","무조건","무지개","무척","문구","문득","문법","문서","문제","문학","문화","물가","물건","물결","물고기","물론","물리학","물음","물질","물체","미국","미디어","미사일","미술","미역","미용실","미움","미인","미팅","미혼","민간","민족","민주","믿음","밀가루","밀리미터","밑바닥","바가지","바구니","바나나","바늘","바닥","바닷가","바람","바이러스","바탕","박물관","박사","박수","반대","반드시","반말","반발","반성","반응","반장","반죽","반지","반찬","받침","발가락","발걸음","발견","발달","발레","발목","발바닥","발생","발음","발자국","발전","발톱","발표","밤하늘","밥그릇","밥맛","밥상","밥솥","방금","방면","방문","방바닥","방법","방송","방식","방안","방울","방지","방학","방해","방향","배경","배꼽","배달","배드민턴","백두산","백색","백성","백인","백제","백화점","버릇","버섯","버튼","번개","번역","번지","번호","벌금","벌레","벌써","범위","범인","범죄","법률","법원","법적","법칙","베이징","벨트","변경","변동","변명","변신","변호사","변화","별도","별명","별일","병실","병아리","병원","보관","보너스","보라색","보람","보름","보상","보안","보자기","보장","보전","보존","보통","보편적","보험","복도","복사","복숭아","복습","볶음","본격적","본래","본부","본사","본성","본인","본질","볼펜","봉사","봉지","봉투","부근","부끄러움","부담","부동산","부문","부분","부산","부상","부엌","부인","부작용","부장","부정","부족","부지런히","부친","부탁","부품","부회장","북부","북한","분노","분량","분리","분명","분석","분야","분위기","분필","분홍색","불고기","불과","불교","불꽃","불만","불법","불빛","불안","불이익","불행","브랜드","비극","비난","비닐","비둘기","비디오","비로소","비만","비명","비밀","비바람","비빔밥","비상","비용","비율","비중","비타민","비판","빌딩","빗물","빗방울","빗줄기","빛깔","빨간색","빨래","빨리","사건","사계절","사나이","사냥","사람","사랑","사립","사모님","사물","사방","사상","사생활","사설","사슴","사실","사업","사용","사월","사장","사전","사진","사촌","사춘기","사탕","사투리","사흘","산길","산부인과","산업","산책","살림","살인","살짝","삼계탕","삼국","삼십","삼월","삼촌","상관","상금","상대","상류","상반기","상상","상식","상업","상인","상자","상점","상처","상추","상태","상표","상품","상황","새벽","색깔","색연필","생각","생명","생물","생방송","생산","생선","생신","생일","생활","서랍","서른","서명","서민","서비스","서양","서울","서적","서점","서쪽","서클","석사","석유","선거","선물","선배","선생","선수","선원","선장","선전","선택","선풍기","설거지","설날","설렁탕","설명","설문","설사","설악산","설치","설탕","섭씨","성공","성당","성명","성별","성인","성장","성적","성질","성함","세금","세미나","세상","세월","세종대왕","세탁","센터","센티미터","셋째","소규모","소극적","소금","소나기","소년","소득","소망","소문","소설","소속","소아과","소용","소원","소음","소중히","소지품","소질","소풍","소형","속담","속도","속옷","손가락","손길","손녀","손님","손등","손목","손뼉","손실","손질","손톱","손해","솔직히","솜씨","송아지","송이","송편","쇠고기","쇼핑","수건","수년","수단","수돗물","수동적","수면","수명","수박","수상","수석","수술","수시로","수업","수염","수영","수입","수준","수집","수출","수컷","수필","수학","수험생","수화기","숙녀","숙소","숙제","순간","순서","순수","순식간","순위","숟가락","술병","술집","숫자","스님","스물","스스로","스승","스웨터","스위치","스케이트","스튜디오","스트레스","스포츠","슬쩍","슬픔","습관","습기","승객","승리","승부","승용차","승진","시각","시간","시골","시금치","시나리오","시댁","시리즈","시멘트","시민","시부모","시선","시설","시스템","시아버지","시어머니","시월","시인","시일","시작","시장","시절","시점","시중","시즌","시집","시청","시합","시험","식구","식기","식당","식량","식료품","식물","식빵","식사","식생활","식초","식탁","식품","신고","신규","신념","신문","신발","신비","신사","신세","신용","신제품","신청","신체","신화","실감","실내","실력","실례","실망","실수","실습","실시","실장","실정","실질적","실천","실체","실컷","실태","실패","실험","실현","심리","심부름","심사","심장","심정","심판","쌍둥이","씨름","씨앗","아가씨","아나운서","아드님","아들","아쉬움","아스팔트","아시아","아울러","아저씨","아줌마","아직","아침","아파트","아프리카","아픔","아홉","아흔","악기","악몽","악수","안개","안경","안과","안내","안녕","안동","안방","안부","안주","알루미늄","알코올","암시","암컷","압력","앞날","앞문","애인","애정","액수","앨범","야간","야단","야옹","약간","약국","약속","약수","약점","약품","약혼녀","양념","양력","양말","양배추","양주","양파","어둠","어려움","어른","어젯밤","어쨌든","어쩌다가","어쩐지","언니","언덕","언론","언어","얼굴","얼른","얼음","얼핏","엄마","업무","업종","업체","엉덩이","엉망","엉터리","엊그제","에너지","에어컨","엔진","여건","여고생","여관","여군","여권","여대생","여덟","여동생","여든","여론","여름","여섯","여성","여왕","여인","여전히","여직원","여학생","여행","역사","역시","역할","연결","연구","연극","연기","연락","연설","연세","연속","연습","연애","연예인","연인","연장","연주","연출","연필","연합","연휴","열기","열매","열쇠","열심히","열정","열차","열흘","염려","엽서","영국","영남","영상","영양","영역","영웅","영원히","영하","영향","영혼","영화","옆구리","옆방","옆집","예감","예금","예방","예산","예상","예선","예술","예습","예식장","예약","예전","예절","예정","예컨대","옛날","오늘","오락","오랫동안","오렌지","오로지","오른발","오븐","오십","오염","오월","오전","오직","오징어","오페라","오피스텔","오히려","옥상","옥수수","온갖","온라인","온몸","온종일","온통","올가을","올림픽","올해","옷차림","와이셔츠","와인","완성","완전","왕비","왕자","왜냐하면","왠지","외갓집","외국","외로움","외삼촌","외출","외침","외할머니","왼발","왼손","왼쪽","요금","요일","요즘","요청","용기","용서","용어","우산","우선","우승","우연히","우정","우체국","우편","운동","운명","운반","운전","운행","울산","울음","움직임","웃어른","웃음","워낙","원고","원래","원서","원숭이","원인","원장","원피스","월급","월드컵","월세","월요일","웨이터","위반","위법","위성","위원","위험","위협","윗사람","유난히","유럽","유명","유물","유산","유적","유치원","유학","유행","유형","육군","육상","육십","육체","은행","음력","음료","음반","음성","음식","음악","음주","의견","의논","의문","의복","의식","의심","의외로","의욕","의원","의학","이것","이곳","이념","이놈","이달","이대로","이동","이렇게","이력서","이론적","이름","이민","이발소","이별","이불","이빨","이상","이성","이슬","이야기","이용","이웃","이월","이윽고","이익","이전","이중","이튿날","이틀","이혼","인간","인격","인공","인구","인근","인기","인도","인류","인물","인생","인쇄","인연","인원","인재","인종","인천","인체","인터넷","인하","인형","일곱","일기","일단","일대","일등","일반","일본","일부","일상","일생","일손","일요일","일월","일정","일종","일주일","일찍","일체","일치","일행","일회용","임금","임무","입대","입력","입맛","입사","입술","입시","입원","입장","입학","자가용","자격","자극","자동","자랑","자부심","자식","자신","자연","자원","자율","자전거","자정","자존심","자판","작가","작년","작성","작업","작용","작은딸","작품","잔디","잔뜩","잔치","잘못","잠깐","잠수함","잠시","잠옷","잠자리","잡지","장관","장군","장기간","장래","장례","장르","장마","장면","장모","장미","장비","장사","장소","장식","장애인","장인","장점","장차","장학금","재능","재빨리","재산","재생","재작년","재정","재채기","재판","재학","재활용","저것","저고리","저곳","저녁","저런","저렇게","저번","저울","저절로","저축","적극","적당히","적성","적용","적응","전개","전공","전기","전달","전라도","전망","전문","전반","전부","전세","전시","전용","전자","전쟁","전주","전철","전체","전통","전혀","전후","절대","절망","절반","절약","절차","점검","점수","점심","점원","점점","점차","접근","접시","접촉","젓가락","정거장","정도","정류장","정리","정말","정면","정문","정반대","정보","정부","정비","정상","정성","정오","정원","정장","정지","정치","정확히","제공","제과점","제대로","제목","제발","제법","제삿날","제안","제일","제작","제주도","제출","제품","제한","조각","조건","조금","조깅","조명","조미료","조상","조선","조용히","조절","조정","조직","존댓말","존재","졸업","졸음","종교","종로","종류","종소리","종업원","종종","종합","좌석","죄인","주관적","주름","주말","주머니","주먹","주문","주민","주방","주변","주식","주인","주일","주장","주전자","주택","준비","줄거리","줄기","줄무늬","중간","중계방송","중국","중년","중단","중독","중반","중부","중세","중소기업","중순","중앙","중요","중학교","즉석","즉시","즐거움","증가","증거","증권","증상","증세","지각","지갑","지경","지극히","지금","지급","지능","지름길","지리산","지방","지붕","지식","지역","지우개","지원","지적","지점","지진","지출","직선","직업","직원","직장","진급","진동","진로","진료","진리","진짜","진찰","진출","진통","진행","질문","질병","질서","짐작","집단","집안","집중","짜증","찌꺼기","차남","차라리","차량","차림","차별","차선","차츰","착각","찬물","찬성","참가","참기름","참새","참석","참여","참외","참조","찻잔","창가","창고","창구","창문","창밖","창작","창조","채널","채점","책가방","책방","책상","책임","챔피언","처벌","처음","천국","천둥","천장","천재","천천히","철도","철저히","철학","첫날","첫째","청년","청바지","청소","청춘","체계","체력","체온","체육","체중","체험","초등학생","초반","초밥","초상화","초순","초여름","초원","초저녁","초점","초청","초콜릿","촛불","총각","총리","총장","촬영","최근","최상","최선","최신","최악","최종","추석","추억","추진","추천","추측","축구","축소","축제","축하","출근","출발","출산","출신","출연","출입","출장","출판","충격","충고","충돌","충분히","충청도","취업","취직","취향","치약","친구","친척","칠십","칠월","칠판","침대","침묵","침실","칫솔","칭찬","카메라","카운터","칼국수","캐릭터","캠퍼스","캠페인","커튼","컨디션","컬러","컴퓨터","코끼리","코미디","콘서트","콜라","콤플렉스","콩나물","쾌감","쿠데타","크림","큰길","큰딸","큰소리","큰아들","큰어머니","큰일","큰절","클래식","클럽","킬로","타입","타자기","탁구","탁자","탄생","태권도","태양","태풍","택시","탤런트","터널","터미널","테니스","테스트","테이블","텔레비전","토론","토마토","토요일","통계","통과","통로","통신","통역","통일","통장","통제","통증","통합","통화","퇴근","퇴원","퇴직금","튀김","트럭","특급","특별","특성","특수","특징","특히","튼튼히","티셔츠","파란색","파일","파출소","판결","판단","판매","판사","팔십","팔월","팝송","패션","팩스","팩시밀리","팬티","퍼센트","페인트","편견","편의","편지","편히","평가","평균","평생","평소","평양","평일","평화","포스터","포인트","포장","포함","표면","표정","표준","표현","품목","품질","풍경","풍속","풍습","프랑스","프린터","플라스틱","피곤","피망","피아노","필름","필수","필요","필자","필통","핑계","하느님","하늘","하드웨어","하룻밤","하반기","하숙집","하순","하여튼","하지만","하천","하품","하필","학과","학교","학급","학기","학년","학력","학번","학부모","학비","학생","학술","학습","학용품","학원","학위","학자","학점","한계","한글","한꺼번에","한낮","한눈","한동안","한때","한라산","한마디","한문","한번","한복","한식","한여름","한쪽","할머니","할아버지","할인","함께","함부로","합격","합리적","항공","항구","항상","항의","해결","해군","해답","해당","해물","해석","해설","해수욕장","해안","핵심","핸드백","햄버거","햇볕","햇살","행동","행복","행사","행운","행위","향기","향상","향수","허락","허용","헬기","현관","현금","현대","현상","현실","현장","현재","현지","혈액","협력","형부","형사","형수","형식","형제","형태","형편","혜택","호기심","호남","호랑이","호박","호텔","호흡","혹시","홀로","홈페이지","홍보","홍수","홍차","화면","화분","화살","화요일","화장","화학","확보","확인","확장","확정","환갑","환경","환영","환율","환자","활기","활동","활발히","활용","활짝","회견","회관","회복","회색","회원","회장","회전","횟수","횡단보도","효율적","후반","후춧가루","훈련","훨씬","휴식","휴일","흉내","흐름","흑백","흑인","흔적","흔히","흥미","흥분","희곡","희망","희생","흰색","힘껏"]')},71945:e=>{"use strict";e.exports=JSON.parse('["abacate","abaixo","abalar","abater","abduzir","abelha","aberto","abismo","abotoar","abranger","abreviar","abrigar","abrupto","absinto","absoluto","absurdo","abutre","acabado","acalmar","acampar","acanhar","acaso","aceitar","acelerar","acenar","acervo","acessar","acetona","achatar","acidez","acima","acionado","acirrar","aclamar","aclive","acolhida","acomodar","acoplar","acordar","acumular","acusador","adaptar","adega","adentro","adepto","adequar","aderente","adesivo","adeus","adiante","aditivo","adjetivo","adjunto","admirar","adorar","adquirir","adubo","adverso","advogado","aeronave","afastar","aferir","afetivo","afinador","afivelar","aflito","afluente","afrontar","agachar","agarrar","agasalho","agenciar","agilizar","agiota","agitado","agora","agradar","agreste","agrupar","aguardar","agulha","ajoelhar","ajudar","ajustar","alameda","alarme","alastrar","alavanca","albergue","albino","alcatra","aldeia","alecrim","alegria","alertar","alface","alfinete","algum","alheio","aliar","alicate","alienar","alinhar","aliviar","almofada","alocar","alpiste","alterar","altitude","alucinar","alugar","aluno","alusivo","alvo","amaciar","amador","amarelo","amassar","ambas","ambiente","ameixa","amenizar","amido","amistoso","amizade","amolador","amontoar","amoroso","amostra","amparar","ampliar","ampola","anagrama","analisar","anarquia","anatomia","andaime","anel","anexo","angular","animar","anjo","anomalia","anotado","ansioso","anterior","anuidade","anunciar","anzol","apagador","apalpar","apanhado","apego","apelido","apertada","apesar","apetite","apito","aplauso","aplicada","apoio","apontar","aposta","aprendiz","aprovar","aquecer","arame","aranha","arara","arcada","ardente","areia","arejar","arenito","aresta","argiloso","argola","arma","arquivo","arraial","arrebate","arriscar","arroba","arrumar","arsenal","arterial","artigo","arvoredo","asfaltar","asilado","aspirar","assador","assinar","assoalho","assunto","astral","atacado","atadura","atalho","atarefar","atear","atender","aterro","ateu","atingir","atirador","ativo","atoleiro","atracar","atrevido","atriz","atual","atum","auditor","aumentar","aura","aurora","autismo","autoria","autuar","avaliar","avante","avaria","avental","avesso","aviador","avisar","avulso","axila","azarar","azedo","azeite","azulejo","babar","babosa","bacalhau","bacharel","bacia","bagagem","baiano","bailar","baioneta","bairro","baixista","bajular","baleia","baliza","balsa","banal","bandeira","banho","banir","banquete","barato","barbado","baronesa","barraca","barulho","baseado","bastante","batata","batedor","batida","batom","batucar","baunilha","beber","beijo","beirada","beisebol","beldade","beleza","belga","beliscar","bendito","bengala","benzer","berimbau","berlinda","berro","besouro","bexiga","bezerro","bico","bicudo","bienal","bifocal","bifurcar","bigorna","bilhete","bimestre","bimotor","biologia","biombo","biosfera","bipolar","birrento","biscoito","bisneto","bispo","bissexto","bitola","bizarro","blindado","bloco","bloquear","boato","bobagem","bocado","bocejo","bochecha","boicotar","bolada","boletim","bolha","bolo","bombeiro","bonde","boneco","bonita","borbulha","borda","boreal","borracha","bovino","boxeador","branco","brasa","braveza","breu","briga","brilho","brincar","broa","brochura","bronzear","broto","bruxo","bucha","budismo","bufar","bule","buraco","busca","busto","buzina","cabana","cabelo","cabide","cabo","cabrito","cacau","cacetada","cachorro","cacique","cadastro","cadeado","cafezal","caiaque","caipira","caixote","cajado","caju","calafrio","calcular","caldeira","calibrar","calmante","calota","camada","cambista","camisa","camomila","campanha","camuflar","canavial","cancelar","caneta","canguru","canhoto","canivete","canoa","cansado","cantar","canudo","capacho","capela","capinar","capotar","capricho","captador","capuz","caracol","carbono","cardeal","careca","carimbar","carneiro","carpete","carreira","cartaz","carvalho","casaco","casca","casebre","castelo","casulo","catarata","cativar","caule","causador","cautelar","cavalo","caverna","cebola","cedilha","cegonha","celebrar","celular","cenoura","censo","centeio","cercar","cerrado","certeiro","cerveja","cetim","cevada","chacota","chaleira","chamado","chapada","charme","chatice","chave","chefe","chegada","cheiro","cheque","chicote","chifre","chinelo","chocalho","chover","chumbo","chutar","chuva","cicatriz","ciclone","cidade","cidreira","ciente","cigana","cimento","cinto","cinza","ciranda","circuito","cirurgia","citar","clareza","clero","clicar","clone","clube","coado","coagir","cobaia","cobertor","cobrar","cocada","coelho","coentro","coeso","cogumelo","coibir","coifa","coiote","colar","coleira","colher","colidir","colmeia","colono","coluna","comando","combinar","comentar","comitiva","comover","complexo","comum","concha","condor","conectar","confuso","congelar","conhecer","conjugar","consumir","contrato","convite","cooperar","copeiro","copiador","copo","coquetel","coragem","cordial","corneta","coronha","corporal","correio","cortejo","coruja","corvo","cosseno","costela","cotonete","couro","couve","covil","cozinha","cratera","cravo","creche","credor","creme","crer","crespo","criada","criminal","crioulo","crise","criticar","crosta","crua","cruzeiro","cubano","cueca","cuidado","cujo","culatra","culminar","culpar","cultura","cumprir","cunhado","cupido","curativo","curral","cursar","curto","cuspir","custear","cutelo","damasco","datar","debater","debitar","deboche","debulhar","decalque","decimal","declive","decote","decretar","dedal","dedicado","deduzir","defesa","defumar","degelo","degrau","degustar","deitado","deixar","delator","delegado","delinear","delonga","demanda","demitir","demolido","dentista","depenado","depilar","depois","depressa","depurar","deriva","derramar","desafio","desbotar","descanso","desenho","desfiado","desgaste","desigual","deslize","desmamar","desova","despesa","destaque","desviar","detalhar","detentor","detonar","detrito","deusa","dever","devido","devotado","dezena","diagrama","dialeto","didata","difuso","digitar","dilatado","diluente","diminuir","dinastia","dinheiro","diocese","direto","discreta","disfarce","disparo","disquete","dissipar","distante","ditador","diurno","diverso","divisor","divulgar","dizer","dobrador","dolorido","domador","dominado","donativo","donzela","dormente","dorsal","dosagem","dourado","doutor","drenagem","drible","drogaria","duelar","duende","dueto","duplo","duquesa","durante","duvidoso","eclodir","ecoar","ecologia","edificar","edital","educado","efeito","efetivar","ejetar","elaborar","eleger","eleitor","elenco","elevador","eliminar","elogiar","embargo","embolado","embrulho","embutido","emenda","emergir","emissor","empatia","empenho","empinado","empolgar","emprego","empurrar","emulador","encaixe","encenado","enchente","encontro","endeusar","endossar","enfaixar","enfeite","enfim","engajado","engenho","englobar","engomado","engraxar","enguia","enjoar","enlatar","enquanto","enraizar","enrolado","enrugar","ensaio","enseada","ensino","ensopado","entanto","enteado","entidade","entortar","entrada","entulho","envergar","enviado","envolver","enxame","enxerto","enxofre","enxuto","epiderme","equipar","ereto","erguido","errata","erva","ervilha","esbanjar","esbelto","escama","escola","escrita","escuta","esfinge","esfolar","esfregar","esfumado","esgrima","esmalte","espanto","espelho","espiga","esponja","espreita","espumar","esquerda","estaca","esteira","esticar","estofado","estrela","estudo","esvaziar","etanol","etiqueta","euforia","europeu","evacuar","evaporar","evasivo","eventual","evidente","evoluir","exagero","exalar","examinar","exato","exausto","excesso","excitar","exclamar","executar","exemplo","exibir","exigente","exonerar","expandir","expelir","expirar","explanar","exposto","expresso","expulsar","externo","extinto","extrato","fabricar","fabuloso","faceta","facial","fada","fadiga","faixa","falar","falta","familiar","fandango","fanfarra","fantoche","fardado","farelo","farinha","farofa","farpa","fartura","fatia","fator","favorita","faxina","fazenda","fechado","feijoada","feirante","felino","feminino","fenda","feno","fera","feriado","ferrugem","ferver","festejar","fetal","feudal","fiapo","fibrose","ficar","ficheiro","figurado","fileira","filho","filme","filtrar","firmeza","fisgada","fissura","fita","fivela","fixador","fixo","flacidez","flamingo","flanela","flechada","flora","flutuar","fluxo","focal","focinho","fofocar","fogo","foguete","foice","folgado","folheto","forjar","formiga","forno","forte","fosco","fossa","fragata","fralda","frango","frasco","fraterno","freira","frente","fretar","frieza","friso","fritura","fronha","frustrar","fruteira","fugir","fulano","fuligem","fundar","fungo","funil","furador","furioso","futebol","gabarito","gabinete","gado","gaiato","gaiola","gaivota","galega","galho","galinha","galocha","ganhar","garagem","garfo","gargalo","garimpo","garoupa","garrafa","gasoduto","gasto","gata","gatilho","gaveta","gazela","gelado","geleia","gelo","gemada","gemer","gemido","generoso","gengiva","genial","genoma","genro","geologia","gerador","germinar","gesso","gestor","ginasta","gincana","gingado","girafa","girino","glacial","glicose","global","glorioso","goela","goiaba","golfe","golpear","gordura","gorjeta","gorro","gostoso","goteira","governar","gracejo","gradual","grafite","gralha","grampo","granada","gratuito","graveto","graxa","grego","grelhar","greve","grilo","grisalho","gritaria","grosso","grotesco","grudado","grunhido","gruta","guache","guarani","guaxinim","guerrear","guiar","guincho","guisado","gula","guloso","guru","habitar","harmonia","haste","haver","hectare","herdar","heresia","hesitar","hiato","hibernar","hidratar","hiena","hino","hipismo","hipnose","hipoteca","hoje","holofote","homem","honesto","honrado","hormonal","hospedar","humorado","iate","ideia","idoso","ignorado","igreja","iguana","ileso","ilha","iludido","iluminar","ilustrar","imagem","imediato","imenso","imersivo","iminente","imitador","imortal","impacto","impedir","implante","impor","imprensa","impune","imunizar","inalador","inapto","inativo","incenso","inchar","incidir","incluir","incolor","indeciso","indireto","indutor","ineficaz","inerente","infantil","infestar","infinito","inflamar","informal","infrator","ingerir","inibido","inicial","inimigo","injetar","inocente","inodoro","inovador","inox","inquieto","inscrito","inseto","insistir","inspetor","instalar","insulto","intacto","integral","intimar","intocado","intriga","invasor","inverno","invicto","invocar","iogurte","iraniano","ironizar","irreal","irritado","isca","isento","isolado","isqueiro","italiano","janeiro","jangada","janta","jararaca","jardim","jarro","jasmim","jato","javali","jazida","jejum","joaninha","joelhada","jogador","joia","jornal","jorrar","jovem","juba","judeu","judoca","juiz","julgador","julho","jurado","jurista","juro","justa","labareda","laboral","lacre","lactante","ladrilho","lagarta","lagoa","laje","lamber","lamentar","laminar","lampejo","lanche","lapidar","lapso","laranja","lareira","largura","lasanha","lastro","lateral","latido","lavanda","lavoura","lavrador","laxante","lazer","lealdade","lebre","legado","legendar","legista","leigo","leiloar","leitura","lembrete","leme","lenhador","lentilha","leoa","lesma","leste","letivo","letreiro","levar","leveza","levitar","liberal","libido","liderar","ligar","ligeiro","limitar","limoeiro","limpador","linda","linear","linhagem","liquidez","listagem","lisura","litoral","livro","lixa","lixeira","locador","locutor","lojista","lombo","lona","longe","lontra","lorde","lotado","loteria","loucura","lousa","louvar","luar","lucidez","lucro","luneta","lustre","lutador","luva","macaco","macete","machado","macio","madeira","madrinha","magnata","magreza","maior","mais","malandro","malha","malote","maluco","mamilo","mamoeiro","mamute","manada","mancha","mandato","manequim","manhoso","manivela","manobrar","mansa","manter","manusear","mapeado","maquinar","marcador","maresia","marfim","margem","marinho","marmita","maroto","marquise","marreco","martelo","marujo","mascote","masmorra","massagem","mastigar","matagal","materno","matinal","matutar","maxilar","medalha","medida","medusa","megafone","meiga","melancia","melhor","membro","memorial","menino","menos","mensagem","mental","merecer","mergulho","mesada","mesclar","mesmo","mesquita","mestre","metade","meteoro","metragem","mexer","mexicano","micro","migalha","migrar","milagre","milenar","milhar","mimado","minerar","minhoca","ministro","minoria","miolo","mirante","mirtilo","misturar","mocidade","moderno","modular","moeda","moer","moinho","moita","moldura","moleza","molho","molinete","molusco","montanha","moqueca","morango","morcego","mordomo","morena","mosaico","mosquete","mostarda","motel","motim","moto","motriz","muda","muito","mulata","mulher","multar","mundial","munido","muralha","murcho","muscular","museu","musical","nacional","nadador","naja","namoro","narina","narrado","nascer","nativa","natureza","navalha","navegar","navio","neblina","nebuloso","negativa","negociar","negrito","nervoso","neta","neural","nevasca","nevoeiro","ninar","ninho","nitidez","nivelar","nobreza","noite","noiva","nomear","nominal","nordeste","nortear","notar","noticiar","noturno","novelo","novilho","novo","nublado","nudez","numeral","nupcial","nutrir","nuvem","obcecado","obedecer","objetivo","obrigado","obscuro","obstetra","obter","obturar","ocidente","ocioso","ocorrer","oculista","ocupado","ofegante","ofensiva","oferenda","oficina","ofuscado","ogiva","olaria","oleoso","olhar","oliveira","ombro","omelete","omisso","omitir","ondulado","oneroso","ontem","opcional","operador","oponente","oportuno","oposto","orar","orbitar","ordem","ordinal","orfanato","orgasmo","orgulho","oriental","origem","oriundo","orla","ortodoxo","orvalho","oscilar","ossada","osso","ostentar","otimismo","ousadia","outono","outubro","ouvido","ovelha","ovular","oxidar","oxigenar","pacato","paciente","pacote","pactuar","padaria","padrinho","pagar","pagode","painel","pairar","paisagem","palavra","palestra","palheta","palito","palmada","palpitar","pancada","panela","panfleto","panqueca","pantanal","papagaio","papelada","papiro","parafina","parcial","pardal","parede","partida","pasmo","passado","pastel","patamar","patente","patinar","patrono","paulada","pausar","peculiar","pedalar","pedestre","pediatra","pedra","pegada","peitoral","peixe","pele","pelicano","penca","pendurar","peneira","penhasco","pensador","pente","perceber","perfeito","pergunta","perito","permitir","perna","perplexo","persiana","pertence","peruca","pescado","pesquisa","pessoa","petiscar","piada","picado","piedade","pigmento","pilastra","pilhado","pilotar","pimenta","pincel","pinguim","pinha","pinote","pintar","pioneiro","pipoca","piquete","piranha","pires","pirueta","piscar","pistola","pitanga","pivete","planta","plaqueta","platina","plebeu","plumagem","pluvial","pneu","poda","poeira","poetisa","polegada","policiar","poluente","polvilho","pomar","pomba","ponderar","pontaria","populoso","porta","possuir","postal","pote","poupar","pouso","povoar","praia","prancha","prato","praxe","prece","predador","prefeito","premiar","prensar","preparar","presilha","pretexto","prevenir","prezar","primata","princesa","prisma","privado","processo","produto","profeta","proibido","projeto","prometer","propagar","prosa","protetor","provador","publicar","pudim","pular","pulmonar","pulseira","punhal","punir","pupilo","pureza","puxador","quadra","quantia","quarto","quase","quebrar","queda","queijo","quente","querido","quimono","quina","quiosque","rabanada","rabisco","rachar","racionar","radial","raiar","rainha","raio","raiva","rajada","ralado","ramal","ranger","ranhura","rapadura","rapel","rapidez","raposa","raquete","raridade","rasante","rascunho","rasgar","raspador","rasteira","rasurar","ratazana","ratoeira","realeza","reanimar","reaver","rebaixar","rebelde","rebolar","recado","recente","recheio","recibo","recordar","recrutar","recuar","rede","redimir","redonda","reduzida","reenvio","refinar","refletir","refogar","refresco","refugiar","regalia","regime","regra","reinado","reitor","rejeitar","relativo","remador","remendo","remorso","renovado","reparo","repelir","repleto","repolho","represa","repudiar","requerer","resenha","resfriar","resgatar","residir","resolver","respeito","ressaca","restante","resumir","retalho","reter","retirar","retomada","retratar","revelar","revisor","revolta","riacho","rica","rigidez","rigoroso","rimar","ringue","risada","risco","risonho","robalo","rochedo","rodada","rodeio","rodovia","roedor","roleta","romano","roncar","rosado","roseira","rosto","rota","roteiro","rotina","rotular","rouco","roupa","roxo","rubro","rugido","rugoso","ruivo","rumo","rupestre","russo","sabor","saciar","sacola","sacudir","sadio","safira","saga","sagrada","saibro","salada","saleiro","salgado","saliva","salpicar","salsicha","saltar","salvador","sambar","samurai","sanar","sanfona","sangue","sanidade","sapato","sarda","sargento","sarjeta","saturar","saudade","saxofone","sazonal","secar","secular","seda","sedento","sediado","sedoso","sedutor","segmento","segredo","segundo","seiva","seleto","selvagem","semanal","semente","senador","senhor","sensual","sentado","separado","sereia","seringa","serra","servo","setembro","setor","sigilo","silhueta","silicone","simetria","simpatia","simular","sinal","sincero","singular","sinopse","sintonia","sirene","siri","situado","soberano","sobra","socorro","sogro","soja","solda","soletrar","solteiro","sombrio","sonata","sondar","sonegar","sonhador","sono","soprano","soquete","sorrir","sorteio","sossego","sotaque","soterrar","sovado","sozinho","suavizar","subida","submerso","subsolo","subtrair","sucata","sucesso","suco","sudeste","sufixo","sugador","sugerir","sujeito","sulfato","sumir","suor","superior","suplicar","suposto","suprimir","surdina","surfista","surpresa","surreal","surtir","suspiro","sustento","tabela","tablete","tabuada","tacho","tagarela","talher","talo","talvez","tamanho","tamborim","tampa","tangente","tanto","tapar","tapioca","tardio","tarefa","tarja","tarraxa","tatuagem","taurino","taxativo","taxista","teatral","tecer","tecido","teclado","tedioso","teia","teimar","telefone","telhado","tempero","tenente","tensor","tentar","termal","terno","terreno","tese","tesoura","testado","teto","textura","texugo","tiara","tigela","tijolo","timbrar","timidez","tingido","tinteiro","tiragem","titular","toalha","tocha","tolerar","tolice","tomada","tomilho","tonel","tontura","topete","tora","torcido","torneio","torque","torrada","torto","tostar","touca","toupeira","toxina","trabalho","tracejar","tradutor","trafegar","trajeto","trama","trancar","trapo","traseiro","tratador","travar","treino","tremer","trepidar","trevo","triagem","tribo","triciclo","tridente","trilogia","trindade","triplo","triturar","triunfal","trocar","trombeta","trova","trunfo","truque","tubular","tucano","tudo","tulipa","tupi","turbo","turma","turquesa","tutelar","tutorial","uivar","umbigo","unha","unidade","uniforme","urologia","urso","urtiga","urubu","usado","usina","usufruir","vacina","vadiar","vagaroso","vaidoso","vala","valente","validade","valores","vantagem","vaqueiro","varanda","vareta","varrer","vascular","vasilha","vassoura","vazar","vazio","veado","vedar","vegetar","veicular","veleiro","velhice","veludo","vencedor","vendaval","venerar","ventre","verbal","verdade","vereador","vergonha","vermelho","verniz","versar","vertente","vespa","vestido","vetorial","viaduto","viagem","viajar","viatura","vibrador","videira","vidraria","viela","viga","vigente","vigiar","vigorar","vilarejo","vinco","vinheta","vinil","violeta","virada","virtude","visitar","visto","vitral","viveiro","vizinho","voador","voar","vogal","volante","voleibol","voltagem","volumoso","vontade","vulto","vuvuzela","xadrez","xarope","xeque","xeretar","xerife","xingar","zangado","zarpar","zebu","zelador","zombar","zoologia","zumbido"]')},80659:e=>{"use strict";e.exports=JSON.parse('["ábaco","abdomen","abeja","abierto","abogado","abono","aborto","abrazo","abrir","abuelo","abuso","acabar","academia","acceso","acción","aceite","acelga","acento","aceptar","ácido","aclarar","acné","acoger","acoso","activo","acto","actriz","actuar","acudir","acuerdo","acusar","adicto","admitir","adoptar","adorno","aduana","adulto","aéreo","afectar","afición","afinar","afirmar","ágil","agitar","agonía","agosto","agotar","agregar","agrio","agua","agudo","águila","aguja","ahogo","ahorro","aire","aislar","ajedrez","ajeno","ajuste","alacrán","alambre","alarma","alba","álbum","alcalde","aldea","alegre","alejar","alerta","aleta","alfiler","alga","algodón","aliado","aliento","alivio","alma","almeja","almíbar","altar","alteza","altivo","alto","altura","alumno","alzar","amable","amante","amapola","amargo","amasar","ámbar","ámbito","ameno","amigo","amistad","amor","amparo","amplio","ancho","anciano","ancla","andar","andén","anemia","ángulo","anillo","ánimo","anís","anotar","antena","antiguo","antojo","anual","anular","anuncio","añadir","añejo","año","apagar","aparato","apetito","apio","aplicar","apodo","aporte","apoyo","aprender","aprobar","apuesta","apuro","arado","araña","arar","árbitro","árbol","arbusto","archivo","arco","arder","ardilla","arduo","área","árido","aries","armonía","arnés","aroma","arpa","arpón","arreglo","arroz","arruga","arte","artista","asa","asado","asalto","ascenso","asegurar","aseo","asesor","asiento","asilo","asistir","asno","asombro","áspero","astilla","astro","astuto","asumir","asunto","atajo","ataque","atar","atento","ateo","ático","atleta","átomo","atraer","atroz","atún","audaz","audio","auge","aula","aumento","ausente","autor","aval","avance","avaro","ave","avellana","avena","avestruz","avión","aviso","ayer","ayuda","ayuno","azafrán","azar","azote","azúcar","azufre","azul","baba","babor","bache","bahía","baile","bajar","balanza","balcón","balde","bambú","banco","banda","baño","barba","barco","barniz","barro","báscula","bastón","basura","batalla","batería","batir","batuta","baúl","bazar","bebé","bebida","bello","besar","beso","bestia","bicho","bien","bingo","blanco","bloque","blusa","boa","bobina","bobo","boca","bocina","boda","bodega","boina","bola","bolero","bolsa","bomba","bondad","bonito","bono","bonsái","borde","borrar","bosque","bote","botín","bóveda","bozal","bravo","brazo","brecha","breve","brillo","brinco","brisa","broca","broma","bronce","brote","bruja","brusco","bruto","buceo","bucle","bueno","buey","bufanda","bufón","búho","buitre","bulto","burbuja","burla","burro","buscar","butaca","buzón","caballo","cabeza","cabina","cabra","cacao","cadáver","cadena","caer","café","caída","caimán","caja","cajón","cal","calamar","calcio","caldo","calidad","calle","calma","calor","calvo","cama","cambio","camello","camino","campo","cáncer","candil","canela","canguro","canica","canto","caña","cañón","caoba","caos","capaz","capitán","capote","captar","capucha","cara","carbón","cárcel","careta","carga","cariño","carne","carpeta","carro","carta","casa","casco","casero","caspa","castor","catorce","catre","caudal","causa","cazo","cebolla","ceder","cedro","celda","célebre","celoso","célula","cemento","ceniza","centro","cerca","cerdo","cereza","cero","cerrar","certeza","césped","cetro","chacal","chaleco","champú","chancla","chapa","charla","chico","chiste","chivo","choque","choza","chuleta","chupar","ciclón","ciego","cielo","cien","cierto","cifra","cigarro","cima","cinco","cine","cinta","ciprés","circo","ciruela","cisne","cita","ciudad","clamor","clan","claro","clase","clave","cliente","clima","clínica","cobre","cocción","cochino","cocina","coco","código","codo","cofre","coger","cohete","cojín","cojo","cola","colcha","colegio","colgar","colina","collar","colmo","columna","combate","comer","comida","cómodo","compra","conde","conejo","conga","conocer","consejo","contar","copa","copia","corazón","corbata","corcho","cordón","corona","correr","coser","cosmos","costa","cráneo","cráter","crear","crecer","creído","crema","cría","crimen","cripta","crisis","cromo","crónica","croqueta","crudo","cruz","cuadro","cuarto","cuatro","cubo","cubrir","cuchara","cuello","cuento","cuerda","cuesta","cueva","cuidar","culebra","culpa","culto","cumbre","cumplir","cuna","cuneta","cuota","cupón","cúpula","curar","curioso","curso","curva","cutis","dama","danza","dar","dardo","dátil","deber","débil","década","decir","dedo","defensa","definir","dejar","delfín","delgado","delito","demora","denso","dental","deporte","derecho","derrota","desayuno","deseo","desfile","desnudo","destino","desvío","detalle","detener","deuda","día","diablo","diadema","diamante","diana","diario","dibujo","dictar","diente","dieta","diez","difícil","digno","dilema","diluir","dinero","directo","dirigir","disco","diseño","disfraz","diva","divino","doble","doce","dolor","domingo","don","donar","dorado","dormir","dorso","dos","dosis","dragón","droga","ducha","duda","duelo","dueño","dulce","dúo","duque","durar","dureza","duro","ébano","ebrio","echar","eco","ecuador","edad","edición","edificio","editor","educar","efecto","eficaz","eje","ejemplo","elefante","elegir","elemento","elevar","elipse","élite","elixir","elogio","eludir","embudo","emitir","emoción","empate","empeño","empleo","empresa","enano","encargo","enchufe","encía","enemigo","enero","enfado","enfermo","engaño","enigma","enlace","enorme","enredo","ensayo","enseñar","entero","entrar","envase","envío","época","equipo","erizo","escala","escena","escolar","escribir","escudo","esencia","esfera","esfuerzo","espada","espejo","espía","esposa","espuma","esquí","estar","este","estilo","estufa","etapa","eterno","ética","etnia","evadir","evaluar","evento","evitar","exacto","examen","exceso","excusa","exento","exigir","exilio","existir","éxito","experto","explicar","exponer","extremo","fábrica","fábula","fachada","fácil","factor","faena","faja","falda","fallo","falso","faltar","fama","familia","famoso","faraón","farmacia","farol","farsa","fase","fatiga","fauna","favor","fax","febrero","fecha","feliz","feo","feria","feroz","fértil","fervor","festín","fiable","fianza","fiar","fibra","ficción","ficha","fideo","fiebre","fiel","fiera","fiesta","figura","fijar","fijo","fila","filete","filial","filtro","fin","finca","fingir","finito","firma","flaco","flauta","flecha","flor","flota","fluir","flujo","flúor","fobia","foca","fogata","fogón","folio","folleto","fondo","forma","forro","fortuna","forzar","fosa","foto","fracaso","frágil","franja","frase","fraude","freír","freno","fresa","frío","frito","fruta","fuego","fuente","fuerza","fuga","fumar","función","funda","furgón","furia","fusil","fútbol","futuro","gacela","gafas","gaita","gajo","gala","galería","gallo","gamba","ganar","gancho","ganga","ganso","garaje","garza","gasolina","gastar","gato","gavilán","gemelo","gemir","gen","género","genio","gente","geranio","gerente","germen","gesto","gigante","gimnasio","girar","giro","glaciar","globo","gloria","gol","golfo","goloso","golpe","goma","gordo","gorila","gorra","gota","goteo","gozar","grada","gráfico","grano","grasa","gratis","grave","grieta","grillo","gripe","gris","grito","grosor","grúa","grueso","grumo","grupo","guante","guapo","guardia","guerra","guía","guiño","guion","guiso","guitarra","gusano","gustar","haber","hábil","hablar","hacer","hacha","hada","hallar","hamaca","harina","haz","hazaña","hebilla","hebra","hecho","helado","helio","hembra","herir","hermano","héroe","hervir","hielo","hierro","hígado","higiene","hijo","himno","historia","hocico","hogar","hoguera","hoja","hombre","hongo","honor","honra","hora","hormiga","horno","hostil","hoyo","hueco","huelga","huerta","hueso","huevo","huida","huir","humano","húmedo","humilde","humo","hundir","huracán","hurto","icono","ideal","idioma","ídolo","iglesia","iglú","igual","ilegal","ilusión","imagen","imán","imitar","impar","imperio","imponer","impulso","incapaz","índice","inerte","infiel","informe","ingenio","inicio","inmenso","inmune","innato","insecto","instante","interés","íntimo","intuir","inútil","invierno","ira","iris","ironía","isla","islote","jabalí","jabón","jamón","jarabe","jardín","jarra","jaula","jazmín","jefe","jeringa","jinete","jornada","joroba","joven","joya","juerga","jueves","juez","jugador","jugo","juguete","juicio","junco","jungla","junio","juntar","júpiter","jurar","justo","juvenil","juzgar","kilo","koala","labio","lacio","lacra","lado","ladrón","lagarto","lágrima","laguna","laico","lamer","lámina","lámpara","lana","lancha","langosta","lanza","lápiz","largo","larva","lástima","lata","látex","latir","laurel","lavar","lazo","leal","lección","leche","lector","leer","legión","legumbre","lejano","lengua","lento","leña","león","leopardo","lesión","letal","letra","leve","leyenda","libertad","libro","licor","líder","lidiar","lienzo","liga","ligero","lima","límite","limón","limpio","lince","lindo","línea","lingote","lino","linterna","líquido","liso","lista","litera","litio","litro","llaga","llama","llanto","llave","llegar","llenar","llevar","llorar","llover","lluvia","lobo","loción","loco","locura","lógica","logro","lombriz","lomo","lonja","lote","lucha","lucir","lugar","lujo","luna","lunes","lupa","lustro","luto","luz","maceta","macho","madera","madre","maduro","maestro","mafia","magia","mago","maíz","maldad","maleta","malla","malo","mamá","mambo","mamut","manco","mando","manejar","manga","maniquí","manjar","mano","manso","manta","mañana","mapa","máquina","mar","marco","marea","marfil","margen","marido","mármol","marrón","martes","marzo","masa","máscara","masivo","matar","materia","matiz","matriz","máximo","mayor","mazorca","mecha","medalla","medio","médula","mejilla","mejor","melena","melón","memoria","menor","mensaje","mente","menú","mercado","merengue","mérito","mes","mesón","meta","meter","método","metro","mezcla","miedo","miel","miembro","miga","mil","milagro","militar","millón","mimo","mina","minero","mínimo","minuto","miope","mirar","misa","miseria","misil","mismo","mitad","mito","mochila","moción","moda","modelo","moho","mojar","molde","moler","molino","momento","momia","monarca","moneda","monja","monto","moño","morada","morder","moreno","morir","morro","morsa","mortal","mosca","mostrar","motivo","mover","móvil","mozo","mucho","mudar","mueble","muela","muerte","muestra","mugre","mujer","mula","muleta","multa","mundo","muñeca","mural","muro","músculo","museo","musgo","música","muslo","nácar","nación","nadar","naipe","naranja","nariz","narrar","nasal","natal","nativo","natural","náusea","naval","nave","navidad","necio","néctar","negar","negocio","negro","neón","nervio","neto","neutro","nevar","nevera","nicho","nido","niebla","nieto","niñez","niño","nítido","nivel","nobleza","noche","nómina","noria","norma","norte","nota","noticia","novato","novela","novio","nube","nuca","núcleo","nudillo","nudo","nuera","nueve","nuez","nulo","número","nutria","oasis","obeso","obispo","objeto","obra","obrero","observar","obtener","obvio","oca","ocaso","océano","ochenta","ocho","ocio","ocre","octavo","octubre","oculto","ocupar","ocurrir","odiar","odio","odisea","oeste","ofensa","oferta","oficio","ofrecer","ogro","oído","oír","ojo","ola","oleada","olfato","olivo","olla","olmo","olor","olvido","ombligo","onda","onza","opaco","opción","ópera","opinar","oponer","optar","óptica","opuesto","oración","orador","oral","órbita","orca","orden","oreja","órgano","orgía","orgullo","oriente","origen","orilla","oro","orquesta","oruga","osadía","oscuro","osezno","oso","ostra","otoño","otro","oveja","óvulo","óxido","oxígeno","oyente","ozono","pacto","padre","paella","página","pago","país","pájaro","palabra","palco","paleta","pálido","palma","paloma","palpar","pan","panal","pánico","pantera","pañuelo","papá","papel","papilla","paquete","parar","parcela","pared","parir","paro","párpado","parque","párrafo","parte","pasar","paseo","pasión","paso","pasta","pata","patio","patria","pausa","pauta","pavo","payaso","peatón","pecado","pecera","pecho","pedal","pedir","pegar","peine","pelar","peldaño","pelea","peligro","pellejo","pelo","peluca","pena","pensar","peñón","peón","peor","pepino","pequeño","pera","percha","perder","pereza","perfil","perico","perla","permiso","perro","persona","pesa","pesca","pésimo","pestaña","pétalo","petróleo","pez","pezuña","picar","pichón","pie","piedra","pierna","pieza","pijama","pilar","piloto","pimienta","pino","pintor","pinza","piña","piojo","pipa","pirata","pisar","piscina","piso","pista","pitón","pizca","placa","plan","plata","playa","plaza","pleito","pleno","plomo","pluma","plural","pobre","poco","poder","podio","poema","poesía","poeta","polen","policía","pollo","polvo","pomada","pomelo","pomo","pompa","poner","porción","portal","posada","poseer","posible","poste","potencia","potro","pozo","prado","precoz","pregunta","premio","prensa","preso","previo","primo","príncipe","prisión","privar","proa","probar","proceso","producto","proeza","profesor","programa","prole","promesa","pronto","propio","próximo","prueba","público","puchero","pudor","pueblo","puerta","puesto","pulga","pulir","pulmón","pulpo","pulso","puma","punto","puñal","puño","pupa","pupila","puré","quedar","queja","quemar","querer","queso","quieto","química","quince","quitar","rábano","rabia","rabo","ración","radical","raíz","rama","rampa","rancho","rango","rapaz","rápido","rapto","rasgo","raspa","rato","rayo","raza","razón","reacción","realidad","rebaño","rebote","recaer","receta","rechazo","recoger","recreo","recto","recurso","red","redondo","reducir","reflejo","reforma","refrán","refugio","regalo","regir","regla","regreso","rehén","reino","reír","reja","relato","relevo","relieve","relleno","reloj","remar","remedio","remo","rencor","rendir","renta","reparto","repetir","reposo","reptil","res","rescate","resina","respeto","resto","resumen","retiro","retorno","retrato","reunir","revés","revista","rey","rezar","rico","riego","rienda","riesgo","rifa","rígido","rigor","rincón","riñón","río","riqueza","risa","ritmo","rito","rizo","roble","roce","rociar","rodar","rodeo","rodilla","roer","rojizo","rojo","romero","romper","ron","ronco","ronda","ropa","ropero","rosa","rosca","rostro","rotar","rubí","rubor","rudo","rueda","rugir","ruido","ruina","ruleta","rulo","rumbo","rumor","ruptura","ruta","rutina","sábado","saber","sabio","sable","sacar","sagaz","sagrado","sala","saldo","salero","salir","salmón","salón","salsa","salto","salud","salvar","samba","sanción","sandía","sanear","sangre","sanidad","sano","santo","sapo","saque","sardina","sartén","sastre","satán","sauna","saxofón","sección","seco","secreto","secta","sed","seguir","seis","sello","selva","semana","semilla","senda","sensor","señal","señor","separar","sepia","sequía","ser","serie","sermón","servir","sesenta","sesión","seta","setenta","severo","sexo","sexto","sidra","siesta","siete","siglo","signo","sílaba","silbar","silencio","silla","símbolo","simio","sirena","sistema","sitio","situar","sobre","socio","sodio","sol","solapa","soldado","soledad","sólido","soltar","solución","sombra","sondeo","sonido","sonoro","sonrisa","sopa","soplar","soporte","sordo","sorpresa","sorteo","sostén","sótano","suave","subir","suceso","sudor","suegra","suelo","sueño","suerte","sufrir","sujeto","sultán","sumar","superar","suplir","suponer","supremo","sur","surco","sureño","surgir","susto","sutil","tabaco","tabique","tabla","tabú","taco","tacto","tajo","talar","talco","talento","talla","talón","tamaño","tambor","tango","tanque","tapa","tapete","tapia","tapón","taquilla","tarde","tarea","tarifa","tarjeta","tarot","tarro","tarta","tatuaje","tauro","taza","tazón","teatro","techo","tecla","técnica","tejado","tejer","tejido","tela","teléfono","tema","temor","templo","tenaz","tender","tener","tenis","tenso","teoría","terapia","terco","término","ternura","terror","tesis","tesoro","testigo","tetera","texto","tez","tibio","tiburón","tiempo","tienda","tierra","tieso","tigre","tijera","tilde","timbre","tímido","timo","tinta","tío","típico","tipo","tira","tirón","titán","títere","título","tiza","toalla","tobillo","tocar","tocino","todo","toga","toldo","tomar","tono","tonto","topar","tope","toque","tórax","torero","tormenta","torneo","toro","torpedo","torre","torso","tortuga","tos","tosco","toser","tóxico","trabajo","tractor","traer","tráfico","trago","traje","tramo","trance","trato","trauma","trazar","trébol","tregua","treinta","tren","trepar","tres","tribu","trigo","tripa","triste","triunfo","trofeo","trompa","tronco","tropa","trote","trozo","truco","trueno","trufa","tubería","tubo","tuerto","tumba","tumor","túnel","túnica","turbina","turismo","turno","tutor","ubicar","úlcera","umbral","unidad","unir","universo","uno","untar","uña","urbano","urbe","urgente","urna","usar","usuario","útil","utopía","uva","vaca","vacío","vacuna","vagar","vago","vaina","vajilla","vale","válido","valle","valor","válvula","vampiro","vara","variar","varón","vaso","vecino","vector","vehículo","veinte","vejez","vela","velero","veloz","vena","vencer","venda","veneno","vengar","venir","venta","venus","ver","verano","verbo","verde","vereda","verja","verso","verter","vía","viaje","vibrar","vicio","víctima","vida","vídeo","vidrio","viejo","viernes","vigor","vil","villa","vinagre","vino","viñedo","violín","viral","virgo","virtud","visor","víspera","vista","vitamina","viudo","vivaz","vivero","vivir","vivo","volcán","volumen","volver","voraz","votar","voto","voz","vuelo","vulgar","yacer","yate","yegua","yema","yerno","yeso","yodo","yoga","yogur","zafiro","zanja","zapato","zarza","zona","zorro","zumo","zurdo"]')},44946:e=>{"use strict";e.exports=JSON.parse('{"aes-128-ecb":{"cipher":"AES","key":128,"iv":0,"mode":"ECB","type":"block"},"aes-192-ecb":{"cipher":"AES","key":192,"iv":0,"mode":"ECB","type":"block"},"aes-256-ecb":{"cipher":"AES","key":256,"iv":0,"mode":"ECB","type":"block"},"aes-128-cbc":{"cipher":"AES","key":128,"iv":16,"mode":"CBC","type":"block"},"aes-192-cbc":{"cipher":"AES","key":192,"iv":16,"mode":"CBC","type":"block"},"aes-256-cbc":{"cipher":"AES","key":256,"iv":16,"mode":"CBC","type":"block"},"aes128":{"cipher":"AES","key":128,"iv":16,"mode":"CBC","type":"block"},"aes192":{"cipher":"AES","key":192,"iv":16,"mode":"CBC","type":"block"},"aes256":{"cipher":"AES","key":256,"iv":16,"mode":"CBC","type":"block"},"aes-128-cfb":{"cipher":"AES","key":128,"iv":16,"mode":"CFB","type":"stream"},"aes-192-cfb":{"cipher":"AES","key":192,"iv":16,"mode":"CFB","type":"stream"},"aes-256-cfb":{"cipher":"AES","key":256,"iv":16,"mode":"CFB","type":"stream"},"aes-128-cfb8":{"cipher":"AES","key":128,"iv":16,"mode":"CFB8","type":"stream"},"aes-192-cfb8":{"cipher":"AES","key":192,"iv":16,"mode":"CFB8","type":"stream"},"aes-256-cfb8":{"cipher":"AES","key":256,"iv":16,"mode":"CFB8","type":"stream"},"aes-128-cfb1":{"cipher":"AES","key":128,"iv":16,"mode":"CFB1","type":"stream"},"aes-192-cfb1":{"cipher":"AES","key":192,"iv":16,"mode":"CFB1","type":"stream"},"aes-256-cfb1":{"cipher":"AES","key":256,"iv":16,"mode":"CFB1","type":"stream"},"aes-128-ofb":{"cipher":"AES","key":128,"iv":16,"mode":"OFB","type":"stream"},"aes-192-ofb":{"cipher":"AES","key":192,"iv":16,"mode":"OFB","type":"stream"},"aes-256-ofb":{"cipher":"AES","key":256,"iv":16,"mode":"OFB","type":"stream"},"aes-128-ctr":{"cipher":"AES","key":128,"iv":16,"mode":"CTR","type":"stream"},"aes-192-ctr":{"cipher":"AES","key":192,"iv":16,"mode":"CTR","type":"stream"},"aes-256-ctr":{"cipher":"AES","key":256,"iv":16,"mode":"CTR","type":"stream"},"aes-128-gcm":{"cipher":"AES","key":128,"iv":12,"mode":"GCM","type":"auth"},"aes-192-gcm":{"cipher":"AES","key":192,"iv":12,"mode":"GCM","type":"auth"},"aes-256-gcm":{"cipher":"AES","key":256,"iv":12,"mode":"GCM","type":"auth"}}')},75207:e=>{"use strict";e.exports=JSON.parse('{"sha224WithRSAEncryption":{"sign":"rsa","hash":"sha224","id":"302d300d06096086480165030402040500041c"},"RSA-SHA224":{"sign":"ecdsa/rsa","hash":"sha224","id":"302d300d06096086480165030402040500041c"},"sha256WithRSAEncryption":{"sign":"rsa","hash":"sha256","id":"3031300d060960864801650304020105000420"},"RSA-SHA256":{"sign":"ecdsa/rsa","hash":"sha256","id":"3031300d060960864801650304020105000420"},"sha384WithRSAEncryption":{"sign":"rsa","hash":"sha384","id":"3041300d060960864801650304020205000430"},"RSA-SHA384":{"sign":"ecdsa/rsa","hash":"sha384","id":"3041300d060960864801650304020205000430"},"sha512WithRSAEncryption":{"sign":"rsa","hash":"sha512","id":"3051300d060960864801650304020305000440"},"RSA-SHA512":{"sign":"ecdsa/rsa","hash":"sha512","id":"3051300d060960864801650304020305000440"},"RSA-SHA1":{"sign":"rsa","hash":"sha1","id":"3021300906052b0e03021a05000414"},"ecdsa-with-SHA1":{"sign":"ecdsa","hash":"sha1","id":""},"sha256":{"sign":"ecdsa","hash":"sha256","id":""},"sha224":{"sign":"ecdsa","hash":"sha224","id":""},"sha384":{"sign":"ecdsa","hash":"sha384","id":""},"sha512":{"sign":"ecdsa","hash":"sha512","id":""},"DSA-SHA":{"sign":"dsa","hash":"sha1","id":""},"DSA-SHA1":{"sign":"dsa","hash":"sha1","id":""},"DSA":{"sign":"dsa","hash":"sha1","id":""},"DSA-WITH-SHA224":{"sign":"dsa","hash":"sha224","id":""},"DSA-SHA224":{"sign":"dsa","hash":"sha224","id":""},"DSA-WITH-SHA256":{"sign":"dsa","hash":"sha256","id":""},"DSA-SHA256":{"sign":"dsa","hash":"sha256","id":""},"DSA-WITH-SHA384":{"sign":"dsa","hash":"sha384","id":""},"DSA-SHA384":{"sign":"dsa","hash":"sha384","id":""},"DSA-WITH-SHA512":{"sign":"dsa","hash":"sha512","id":""},"DSA-SHA512":{"sign":"dsa","hash":"sha512","id":""},"DSA-RIPEMD160":{"sign":"dsa","hash":"rmd160","id":""},"ripemd160WithRSA":{"sign":"rsa","hash":"rmd160","id":"3021300906052b2403020105000414"},"RSA-RIPEMD160":{"sign":"rsa","hash":"rmd160","id":"3021300906052b2403020105000414"},"md5WithRSAEncryption":{"sign":"rsa","hash":"md5","id":"3020300c06082a864886f70d020505000410"},"RSA-MD5":{"sign":"rsa","hash":"md5","id":"3020300c06082a864886f70d020505000410"}}')},1308:e=>{"use strict";e.exports=JSON.parse('{"1.3.132.0.10":"secp256k1","1.3.132.0.33":"p224","1.2.840.10045.3.1.1":"p192","1.2.840.10045.3.1.7":"p256","1.3.132.0.34":"p384","1.3.132.0.35":"p521"}')},29799:e=>{"use strict";e.exports=JSON.parse('{"modp1":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},"modp2":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},"modp5":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},"modp14":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},"modp15":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},"modp16":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},"modp17":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},"modp18":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"}}')},18597:e=>{"use strict";e.exports={i8:"6.5.4"}},22562:e=>{"use strict";e.exports=JSON.parse('{"2.16.840.1.101.3.4.1.1":"aes-128-ecb","2.16.840.1.101.3.4.1.2":"aes-128-cbc","2.16.840.1.101.3.4.1.3":"aes-128-ofb","2.16.840.1.101.3.4.1.4":"aes-128-cfb","2.16.840.1.101.3.4.1.21":"aes-192-ecb","2.16.840.1.101.3.4.1.22":"aes-192-cbc","2.16.840.1.101.3.4.1.23":"aes-192-ofb","2.16.840.1.101.3.4.1.24":"aes-192-cfb","2.16.840.1.101.3.4.1.41":"aes-256-ecb","2.16.840.1.101.3.4.1.42":"aes-256-cbc","2.16.840.1.101.3.4.1.43":"aes-256-ofb","2.16.840.1.101.3.4.1.44":"aes-256-cfb"}')}},__webpack_module_cache__={};function __webpack_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var r=__webpack_module_cache__[e]={id:e,loaded:!1,exports:{}};return __webpack_modules__[e].call(r.exports,r,r.exports,__webpack_require__),r.loaded=!0,r.exports}__webpack_require__.amdO={},__webpack_require__.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(t,{a:t}),t},__webpack_require__.d=(e,t)=>{for(var r in t)__webpack_require__.o(t,r)&&!__webpack_require__.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},__webpack_require__.nmd=e=>(e.paths=[],e.children||(e.children=[]),e);var __webpack_exports__=__webpack_require__(60880);return __webpack_exports__})())); -//# sourceMappingURL=jmes.min.js.map \ No newline at end of file diff --git a/dist/jmes.min.js.LICENSE.txt b/dist/jmes.min.js.LICENSE.txt deleted file mode 100644 index 36ea9e7..0000000 --- a/dist/jmes.min.js.LICENSE.txt +++ /dev/null @@ -1,33 +0,0 @@ -/*! - * decimal.js v10.4.0 - * An arbitrary-precision Decimal type for JavaScript. - * https://github.com/MikeMcl/decimal.js - * Copyright (c) 2022 Michael Mclaughlin - * MIT Licence - */ - -/*! - * The buffer module from node.js, for the browser. - * - * @author Feross Aboukhadijeh - * @license MIT - */ - -/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */ - -/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */ - -/*! noble-secp256k1 - MIT License (c) 2019 Paul Miller (paulmillr.com) */ - -/*! safe-buffer. MIT License. Feross Aboukhadijeh */ - -/*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */ - -/** - * [js-sha3]{@link https://github.com/emn178/js-sha3} - * - * @version 0.8.0 - * @author Chen, Yi-Cyuan [emn178@gmail.com] - * @copyright Chen, Yi-Cyuan 2015-2018 - * @license MIT - */ diff --git a/dist/jmes.min.js.map b/dist/jmes.min.js.map deleted file mode 100644 index 0b59544..0000000 --- a/dist/jmes.min.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"jmes.min.js","mappings":"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,IAAM,EAAM,IAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,EAAM,IAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,IAC//CC,EAAI,CAAC,GAAM,EAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,EAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,EAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,EAAM,IAAM,IAAM,GAAM,EAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,GAAM,EAAM,IAAM,IAAM,IAAM,EAAM,EAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,EAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,EAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,GAAM,KAG//CviC,EAAK,CAAC,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,EAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAC1/FC,EAAK,CAAC,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,EAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,SAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAC1/FuiC,EAAK,CAAC,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,SAAY,WAAY,UAAY,WAAY,UAAY,WAAY,SAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,EAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAC1/FC,EAAK,CAAC,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,SAAY,WAAY,UAAY,WAAY,UAAY,WAAY,SAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,EAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAG1/FC,EAAK,CAAC,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,SAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,EAAY,UAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAC1/FC,EAAK,CAAC,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,EAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,SAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,SAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAC1/FC,EAAK,CAAC,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,SAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,EAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAC1/FC,EAAK,CAAC,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,SAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,WAAY,SAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,SAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,EAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,YAG1/Fn7B,EAAK,CAAC,EAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAC1/FC,EAAK,CAAC,EAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,SAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,SAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAC1/Fm7B,EAAK,CAAC,EAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,UAAY,UAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,UAAY,UAAY,WAAY,UAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAC1/FC,EAAK,CAAC,EAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,UAAY,UAAY,SAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UA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exqF,EAAW,YAAY,WACpC,OAAOzyD,KAAKwvI,MAAMsN,UAAU98I,KAAK8vF,IACnC,IAEAr9B,EAAUhxD,UAAU6X,QAAU,WAC5B,OAAOtZ,KAAKm8I,WAAWn6I,OAAOhC,KAAK09I,WACrC,EAEAjrF,EAAUhxD,UAAUg6D,MAAQ,WAC1B,OAAOxvB,EAAMz0B,OAAOxX,KAAKsZ,UAAW,OAAOwjC,aAC7C,EAEAl9C,EAAOD,QAAU8yD,aChEjB7yD,EAAOD,QAAU,CACfgxI,QAAS,CACPrsI,KAAM,EACNuvD,OAAQ,CACN,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,kEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,sEAINg9E,IAAK,CACHzgC,IAAK,EACLv8C,OAAQ,CACN,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,iEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,qGCrwBR,IAAI5nB,EAAQtsC,EACR89F,EAAK,EAAQ,OACbkgD,EAAY,EAAQ,OACpBC,EAAW,EAAQ,OAEvB3xG,EAAM4Y,OAAS84F,EACf1xG,EAAM5/B,QAAUuxI,EAASvxI,QACzB4/B,EAAM4xG,MAAQD,EAASC,MACvB5xG,EAAMwvB,MAAQmiF,EAASniF,MACvBxvB,EAAMz0B,OAASomI,EAASpmI,OA6BxBy0B,EAAMwjG,OA1BN,SAAgBt7E,EAAKsqC,EAAG5wF,GACtB,IAAIgjI,EAAM,IAAI5oI,MAAM8F,KAAKW,IAAIylD,EAAIosC,YAAa1yF,GAAQ,GACtDgjI,EAAI5qF,KAAK,GAKT,IAHA,IAAI+iD,EAAK,GAAMvK,EAAI,EACf97F,EAAIwxD,EAAIv6B,QAEH5uB,EAAI,EAAGA,EAAI6lI,EAAI5qI,OAAQ+E,IAAK,CACnC,IAAIy3C,EACAniD,EAAMqC,EAAEu9F,MAAM8I,EAAK,GACnBrmG,EAAEupG,SAEFzpD,EADEniD,GAAO0oG,GAAM,GAAK,GACfA,GAAM,GAAK1oG,EAEZA,EACNqC,EAAEkoG,MAAMpoD,IAERA,EAAI,EAGNouF,EAAI7lI,GAAKy3C,EACT9/C,EAAEw9F,OAAO,EACX,CAEA,OAAO0wC,CACT,EA0DA5kG,EAAMyjG,OAtDN,SAAgBp5E,EAAI1zD,GAClB,IAAIkvI,EAAM,CACR,GACA,IAGFx7E,EAAKA,EAAG18B,QACRh3B,EAAKA,EAAGg3B,QAIR,IAHA,IAEIkkH,EAFA1X,EAAK,EACLC,EAAK,EAEF/vE,EAAGg2C,MAAM85B,GAAM,GAAKxjI,EAAG0pG,MAAM+5B,GAAM,GAAG,CAE3C,IAMIlrE,EAYAC,EAlBA2iF,EAAOznF,EAAG4pC,MAAM,GAAKkmC,EAAM,EAC3B4X,EAAOp7I,EAAGs9F,MAAM,GAAKmmC,EAAM,EACnB,IAAR0X,IACFA,GAAO,GACG,IAARC,IACFA,GAAO,GAGP7iF,EADgB,IAAP,EAAN4iF,GACE,EAGO,IADZD,EAAMxnF,EAAG4pC,MAAM,GAAKkmC,EAAM,IACF,IAAP0X,GAAqB,IAARE,EAGvBD,GAFCA,EAIVjM,EAAI,GAAG5rI,KAAKi1D,GAIVC,EADgB,IAAP,EAAN4iF,GACE,EAGO,IADZF,EAAMl7I,EAAGs9F,MAAM,GAAKmmC,EAAM,IACF,IAAPyX,GAAqB,IAARC,EAGvBC,GAFCA,EAIVlM,EAAI,GAAG5rI,KAAKk1D,GAGR,EAAIgrE,IAAOjrE,EAAK,IAClBirE,EAAK,EAAIA,GACP,EAAIC,IAAOjrE,EAAK,IAClBirE,EAAK,EAAIA,GACX/vE,EAAG6pC,OAAO,GACVv9F,EAAGu9F,OAAO,EACZ,CAEA,OAAO2xC,CACT,EAUA7lG,EAAMgxG,eAPN,SAAwB//F,EAAK5b,EAAM28G,GACjC,IAAIp8I,EAAM,IAAMy/B,EAChB4b,EAAIz7C,UAAU6/B,GAAQ,WACpB,YAAqBz+B,IAAd7C,KAAK6B,GAAqB7B,KAAK6B,GACpC7B,KAAK6B,GAAOo8I,EAAS16I,KAAKvD,KAC9B,CACF,EAOAisC,EAAM2vG,WAJN,SAAoB93F,GAClB,MAAwB,iBAAVA,EAAqB7X,EAAM5/B,QAAQy3C,EAAO,OACtDA,CACJ,EAMA7X,EAAMwwG,UAHN,SAAmB34F,GACjB,OAAO,IAAI25C,EAAG35C,EAAO,MAAO,KAC9B,0BCpHA,SAAWlkD,EAAQD,GACjB,aAGA,SAASklD,EAAQ53C,EAAKqO,GACpB,IAAKrO,EAAK,MAAM,IAAI3G,MAAMgV,GAAO,mBACnC,CAIA,SAASu4E,EAAUwJ,EAAMC,GACvBD,EAAKE,OAASD,EACd,IAAIE,EAAW,WAAa,EAC5BA,EAAS/7F,UAAY67F,EAAU77F,UAC/B47F,EAAK57F,UAAY,IAAI+7F,EACrBH,EAAK57F,UAAU2G,YAAci1F,CAC/B,CAIA,SAASI,EAAIx5C,EAAQ6S,EAAM4mC,GACzB,GAAID,EAAGE,KAAK15C,GACV,OAAOA,EAGTjkD,KAAK49F,SAAW,EAChB59F,KAAKwlB,MAAQ,KACbxlB,KAAKiG,OAAS,EAGdjG,KAAK69F,IAAM,KAEI,OAAX55C,IACW,OAAT6S,GAA0B,OAATA,IACnB4mC,EAAS5mC,EACTA,EAAO,IAGT92D,KAAKu2F,MAAMtyC,GAAU,EAAG6S,GAAQ,GAAI4mC,GAAU,MAElD,CAUA,IAAIzvF,EATkB,iBAAXrO,EACTA,EAAOD,QAAU89F,EAEjB99F,EAAQ89F,GAAKA,EAGfA,EAAGA,GAAKA,EACRA,EAAGK,SAAW,GAGd,IAEI7vF,EADoB,oBAAX8oD,aAAmD,IAAlBA,OAAO9oD,OACxC8oD,OAAO9oD,OAEP,eAGb,CADE,MAAOzJ,GACT,CA+HA,SAASu5F,EAAej6B,EAAQt3D,GAC9B,IAAID,EAAIu3D,EAAO/gB,WAAWv2C,GAE1B,OAAID,GAAK,IAAMA,GAAK,GACXA,EAAI,GAEFA,GAAK,IAAMA,GAAK,IAClBA,EAAI,GAGHA,EAAI,GAAM,EAEtB,CAEA,SAASyxF,EAAcl6B,EAAQm6B,EAAYzxF,GACzC,IAAI67B,EAAI01D,EAAcj6B,EAAQt3D,GAI9B,OAHIA,EAAQ,GAAKyxF,IACf51D,GAAK01D,EAAcj6B,EAAQt3D,EAAQ,IAAM,GAEpC67B,CACT,CA6CA,SAAS61D,EAAWx0F,EAAKu6D,EAAOC,EAAKj6D,GAGnC,IAFA,IAAIo+B,EAAI,EACJqd,EAAM33C,KAAKy+B,IAAI9iC,EAAIzD,OAAQi+D,GACtBl5D,EAAIi5D,EAAOj5D,EAAI06C,EAAK16C,IAAK,CAChC,IAAIuB,EAAI7C,EAAIq5C,WAAW/3C,GAAK,GAE5Bq9B,GAAKp+B,EAIHo+B,GADE97B,GAAK,GACFA,EAAI,GAAK,GAGLA,GAAK,GACTA,EAAI,GAAK,GAITA,CAET,CACA,OAAO87B,CACT,CApNAo1D,EAAGE,KAAO,SAAexpC,GACvB,OAAIA,aAAespC,GAIJ,OAARtpC,GAA+B,iBAARA,GAC5BA,EAAI/rD,YAAY01F,WAAaL,EAAGK,UAAY71F,MAAM6D,QAAQqoD,EAAI3uC,MAClE,EAEAi4E,EAAG/uF,IAAM,SAAcktD,EAAMuiC,GAC3B,OAAIviC,EAAKwiC,IAAID,GAAS,EAAUviC,EACzBuiC,CACT,EAEAV,EAAGjxD,IAAM,SAAcovB,EAAMuiC,GAC3B,OAAIviC,EAAKwiC,IAAID,GAAS,EAAUviC,EACzBuiC,CACT,EAEAV,EAAGh8F,UAAU80F,MAAQ,SAAetyC,EAAQ6S,EAAM4mC,GAChD,GAAsB,iBAAXz5C,EACT,OAAOjkD,KAAKq+F,YAAYp6C,EAAQ6S,EAAM4mC,GAGxC,GAAsB,iBAAXz5C,EACT,OAAOjkD,KAAKs+F,WAAWr6C,EAAQ6S,EAAM4mC,GAG1B,QAAT5mC,IACFA,EAAO,IAETjS,EAAOiS,KAAiB,EAAPA,IAAaA,GAAQ,GAAKA,GAAQ,IAGnD,IAAImN,EAAQ,EACM,OAFlBhgB,EAASA,EAAO78C,WAAWib,QAAQ,OAAQ,KAEhC,KACT4hD,IACAjkE,KAAK49F,SAAW,GAGd35B,EAAQhgB,EAAOh+C,SACJ,KAAT6wD,EACF92D,KAAKu+F,UAAUt6C,EAAQggB,EAAOy5B,IAE9B19F,KAAKw+F,WAAWv6C,EAAQ6S,EAAMmN,GACf,OAAXy5B,GACF19F,KAAKs+F,WAAWt+F,KAAKqM,UAAWyqD,EAAM4mC,IAI9C,EAEAD,EAAGh8F,UAAU48F,YAAc,SAAsBp6C,EAAQ6S,EAAM4mC,GACzDz5C,EAAS,IACXjkD,KAAK49F,SAAW,EAChB35C,GAAUA,GAERA,EAAS,UACXjkD,KAAKwlB,MAAQ,CAAW,SAATy+B,GACfjkD,KAAKiG,OAAS,GACLg+C,EAAS,kBAClBjkD,KAAKwlB,MAAQ,CACF,SAATy+B,EACCA,EAAS,SAAa,UAEzBjkD,KAAKiG,OAAS,IAEd4+C,EAAOZ,EAAS,kBAChBjkD,KAAKwlB,MAAQ,CACF,SAATy+B,EACCA,EAAS,SAAa,SACvB,GAEFjkD,KAAKiG,OAAS,GAGD,OAAXy3F,GAGJ19F,KAAKs+F,WAAWt+F,KAAKqM,UAAWyqD,EAAM4mC,EACxC,EAEAD,EAAGh8F,UAAU68F,WAAa,SAAqBr6C,EAAQ6S,EAAM4mC,GAG3D,GADA74C,EAAgC,iBAAlBZ,EAAOh+C,QACjBg+C,EAAOh+C,QAAU,EAGnB,OAFAjG,KAAKwlB,MAAQ,CAAE,GACfxlB,KAAKiG,OAAS,EACPjG,KAGTA,KAAKiG,OAAS8H,KAAK1E,KAAK46C,EAAOh+C,OAAS,GACxCjG,KAAKwlB,MAAQ,IAAIvd,MAAMjI,KAAKiG,QAC5B,IAAK,IAAI+E,EAAI,EAAGA,EAAIhL,KAAKiG,OAAQ+E,IAC/BhL,KAAKwlB,MAAMxa,GAAK,EAGlB,IAAIi/C,EAAGw0C,EACH75B,EAAM,EACV,GAAe,OAAX84B,EACF,IAAK1yF,EAAIi5C,EAAOh+C,OAAS,EAAGgkD,EAAI,EAAGj/C,GAAK,EAAGA,GAAK,EAC9CyzF,EAAIx6C,EAAOj5C,GAAMi5C,EAAOj5C,EAAI,IAAM,EAAMi5C,EAAOj5C,EAAI,IAAM,GACzDhL,KAAKwlB,MAAMykC,IAAOw0C,GAAK75B,EAAO,SAC9B5kE,KAAKwlB,MAAMykC,EAAI,GAAMw0C,IAAO,GAAK75B,EAAQ,UACzCA,GAAO,KACI,KACTA,GAAO,GACP3a,UAGC,GAAe,OAAXyzC,EACT,IAAK1yF,EAAI,EAAGi/C,EAAI,EAAGj/C,EAAIi5C,EAAOh+C,OAAQ+E,GAAK,EACzCyzF,EAAIx6C,EAAOj5C,GAAMi5C,EAAOj5C,EAAI,IAAM,EAAMi5C,EAAOj5C,EAAI,IAAM,GACzDhL,KAAKwlB,MAAMykC,IAAOw0C,GAAK75B,EAAO,SAC9B5kE,KAAKwlB,MAAMykC,EAAI,GAAMw0C,IAAO,GAAK75B,EAAQ,UACzCA,GAAO,KACI,KACTA,GAAO,GACP3a,KAIN,OAAOjqD,KAAKszF,OACd,EAwBAmK,EAAGh8F,UAAU88F,UAAY,SAAoBt6C,EAAQggB,EAAOy5B,GAE1D19F,KAAKiG,OAAS8H,KAAK1E,MAAM46C,EAAOh+C,OAASg+D,GAAS,GAClDjkE,KAAKwlB,MAAQ,IAAIvd,MAAMjI,KAAKiG,QAC5B,IAAK,IAAI+E,EAAI,EAAGA,EAAIhL,KAAKiG,OAAQ+E,IAC/BhL,KAAKwlB,MAAMxa,GAAK,EAIlB,IAGIyzF,EAHA75B,EAAM,EACN3a,EAAI,EAGR,GAAe,OAAXyzC,EACF,IAAK1yF,EAAIi5C,EAAOh+C,OAAS,EAAG+E,GAAKi5D,EAAOj5D,GAAK,EAC3CyzF,EAAIT,EAAa/5C,EAAQggB,EAAOj5D,IAAM45D,EACtC5kE,KAAKwlB,MAAMykC,IAAU,SAAJw0C,EACb75B,GAAO,IACTA,GAAO,GACP3a,GAAK,EACLjqD,KAAKwlB,MAAMykC,IAAMw0C,IAAM,IAEvB75B,GAAO,OAKX,IAAK55D,GADai5C,EAAOh+C,OAASg+D,GACX,GAAM,EAAIA,EAAQ,EAAIA,EAAOj5D,EAAIi5C,EAAOh+C,OAAQ+E,GAAK,EAC1EyzF,EAAIT,EAAa/5C,EAAQggB,EAAOj5D,IAAM45D,EACtC5kE,KAAKwlB,MAAMykC,IAAU,SAAJw0C,EACb75B,GAAO,IACTA,GAAO,GACP3a,GAAK,EACLjqD,KAAKwlB,MAAMykC,IAAMw0C,IAAM,IAEvB75B,GAAO,EAKb5kE,KAAKszF,OACP,EA0BAmK,EAAGh8F,UAAU+8F,WAAa,SAAqBv6C,EAAQ6S,EAAMmN,GAE3DjkE,KAAKwlB,MAAQ,CAAE,GACfxlB,KAAKiG,OAAS,EAGd,IAAK,IAAIy4F,EAAU,EAAGC,EAAU,EAAGA,GAAW,SAAWA,GAAW7nC,EAClE4nC,IAEFA,IACAC,EAAWA,EAAU7nC,EAAQ,EAO7B,IALA,IAAIrjC,EAAQwwB,EAAOh+C,OAASg+D,EACxB3jE,EAAMmzB,EAAQirE,EACdx6B,EAAMn2D,KAAKy+B,IAAI/Y,EAAOA,EAAQnzB,GAAO2jE,EAErCxZ,EAAO,EACFz/C,EAAIi5D,EAAOj5D,EAAIk5D,EAAKl5D,GAAK0zF,EAChCj0C,EAAOyzC,EAAUj6C,EAAQj5C,EAAGA,EAAI0zF,EAAS5nC,GAEzC92D,KAAK4+F,MAAMD,GACP3+F,KAAKwlB,MAAM,GAAKilC,EAAO,SACzBzqD,KAAKwlB,MAAM,IAAMilC,EAEjBzqD,KAAK6+F,OAAOp0C,GAIhB,GAAY,IAARnqD,EAAW,CACb,IAAI0N,EAAM,EAGV,IAFAy8C,EAAOyzC,EAAUj6C,EAAQj5C,EAAGi5C,EAAOh+C,OAAQ6wD,GAEtC9rD,EAAI,EAAGA,EAAI1K,EAAK0K,IACnBgD,GAAO8oD,EAGT92D,KAAK4+F,MAAM5wF,GACPhO,KAAKwlB,MAAM,GAAKilC,EAAO,SACzBzqD,KAAKwlB,MAAM,IAAMilC,EAEjBzqD,KAAK6+F,OAAOp0C,EAEhB,CAEAzqD,KAAKszF,OACP,EAEAmK,EAAGh8F,UAAUktF,KAAO,SAAemQ,GACjCA,EAAKt5E,MAAQ,IAAIvd,MAAMjI,KAAKiG,QAC5B,IAAK,IAAI+E,EAAI,EAAGA,EAAIhL,KAAKiG,OAAQ+E,IAC/B8zF,EAAKt5E,MAAMxa,GAAKhL,KAAKwlB,MAAMxa,GAE7B8zF,EAAK74F,OAASjG,KAAKiG,OACnB64F,EAAKlB,SAAW59F,KAAK49F,SACrBkB,EAAKjB,IAAM79F,KAAK69F,GAClB,EAEAJ,EAAGh8F,UAAUm4B,MAAQ,WACnB,IAAIyO,EAAI,IAAIo1D,EAAG,MAEf,OADAz9F,KAAK2uF,KAAKtmD,GACHA,CACT,EAEAo1D,EAAGh8F,UAAUs9F,QAAU,SAAkBn3B,GACvC,KAAO5nE,KAAKiG,OAAS2hE,GACnB5nE,KAAKwlB,MAAMxlB,KAAKiG,UAAY,EAE9B,OAAOjG,IACT,EAGAy9F,EAAGh8F,UAAU6xF,MAAQ,WACnB,KAAOtzF,KAAKiG,OAAS,GAAqC,IAAhCjG,KAAKwlB,MAAMxlB,KAAKiG,OAAS,IACjDjG,KAAKiG,SAEP,OAAOjG,KAAKg/F,WACd,EAEAvB,EAAGh8F,UAAUu9F,UAAY,WAKvB,OAHoB,IAAhBh/F,KAAKiG,QAAkC,IAAlBjG,KAAKwlB,MAAM,KAClCxlB,KAAK49F,SAAW,GAEX59F,IACT,EAEAy9F,EAAGh8F,UAAUw9F,QAAU,WACrB,OAAQj/F,KAAK69F,IAAM,UAAY,SAAW79F,KAAKoH,SAAS,IAAM,GAChE,EAgCA,IAAI83F,EAAQ,CACV,GACA,IACA,KACA,MACA,OACA,QACA,SACA,UACA,WACA,YACA,aACA,cACA,eACA,gBACA,iBACA,kBACA,mBACA,oBACA,qBACA,sBACA,uBACA,wBACA,yBACA,0BACA,2BACA,6BAGEC,EAAa,CACf,EAAG,EACH,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EACvB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAGhBC,EAAa,CACf,EAAG,EACH,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAC5D,SAAU,IAAU,SAAU,SAAU,SAAU,QAAS,SAC3D,SAAU,SAAU,SAAU,SAAU,KAAU,QAAS,QAC3D,QAAS,QAAS,QAAS,SAAU,SAAU,SAAU,SACzD,MAAU,SAAU,SAAU,SAAU,SAAU,SAAU,UAsjB9D,SAASC,EAAYt/F,EAAMo0D,EAAK/7C,GAC9BA,EAAIwlF,SAAWzpC,EAAIypC,SAAW79F,EAAK69F,SACnC,IAAIl4C,EAAO3lD,EAAKkG,OAASkuD,EAAIluD,OAAU,EACvCmS,EAAInS,OAASy/C,EACbA,EAAOA,EAAM,EAAK,EAGlB,IAAIt4C,EAAoB,EAAhBrN,EAAKylB,MAAM,GACf1d,EAAmB,EAAfqsD,EAAI3uC,MAAM,GACd6iB,EAAIj7B,EAAItF,EAERy/D,EAAS,SAAJl/B,EACL2gC,EAAS3gC,EAAI,SAAa,EAC9BjwB,EAAIoN,MAAM,GAAK+hD,EAEf,IAAK,IAAI5kE,EAAI,EAAGA,EAAI+iD,EAAK/iD,IAAK,CAM5B,IAHA,IAAI28F,EAASt2B,IAAU,GACnBu2B,EAAgB,SAARv2B,EACRw2B,EAAOzxF,KAAKy+B,IAAI7pC,EAAGwxD,EAAIluD,OAAS,GAC3BgkD,EAAIl8C,KAAKW,IAAI,EAAG/L,EAAI5C,EAAKkG,OAAS,GAAIgkD,GAAKu1C,EAAMv1C,IAAK,CAC7D,IAAIj/C,EAAKrI,EAAIsnD,EAAK,EAIlBq1C,IADAj3D,GAFAj7B,EAAoB,EAAhBrN,EAAKylB,MAAMxa,KACflD,EAAmB,EAAfqsD,EAAI3uC,MAAMykC,IACFs1C,GACG,SAAa,EAC5BA,EAAY,SAAJl3D,CACV,CACAjwB,EAAIoN,MAAM7iB,GAAa,EAAR48F,EACfv2B,EAAiB,EAATs2B,CACV,CAOA,OANc,IAAVt2B,EACF5wD,EAAIoN,MAAM7iB,GAAa,EAARqmE,EAEf5wD,EAAInS,SAGCmS,EAAIk7E,OACb,CA1lBAmK,EAAGh8F,UAAU2F,SAAW,SAAmB0vD,EAAM8R,GAI/C,IAAIxwD,EACJ,GAHAwwD,EAAoB,EAAVA,GAAe,EAGZ,MAJb9R,EAAOA,GAAQ,KAIa,QAATA,EAAgB,CACjC1+C,EAAM,GAGN,IAFA,IAAIwsD,EAAM,EACNoE,EAAQ,EACHh+D,EAAI,EAAGA,EAAIhL,KAAKiG,OAAQ+E,IAAK,CACpC,IAAIyzF,EAAIz+F,KAAKwlB,MAAMxa,GACfy/C,GAA+B,UAArBg0C,GAAK75B,EAAOoE,IAAmB5hE,SAAS,IAGpDgR,EADY,IADd4wD,EAASy1B,IAAO,GAAK75B,EAAQ,WACV55D,IAAMhL,KAAKiG,OAAS,EAC/Bi5F,EAAM,EAAIz0C,EAAKxkD,QAAUwkD,EAAOryC,EAEhCqyC,EAAOryC,GAEfwsD,GAAO,IACI,KACTA,GAAO,GACP55D,IAEJ,CAIA,IAHc,IAAVg+D,IACF5wD,EAAM4wD,EAAM5hE,SAAS,IAAMgR,GAEtBA,EAAInS,OAAS2iE,GAAY,GAC9BxwD,EAAM,IAAMA,EAKd,OAHsB,IAAlBpY,KAAK49F,WACPxlF,EAAM,IAAMA,GAEPA,CACT,CAEA,GAAI0+C,KAAiB,EAAPA,IAAaA,GAAQ,GAAKA,GAAQ,GAAI,CAElD,IAAI2oC,EAAYN,EAAWroC,GAEvB4oC,EAAYN,EAAWtoC,GAC3B1+C,EAAM,GACN,IAAI7L,EAAIvM,KAAK45B,QAEb,IADArtB,EAAEqxF,SAAW,GACLrxF,EAAEyiE,UAAU,CAClB,IAAI3mC,EAAI97B,EAAEozF,KAAKD,GAAWt4F,SAAS0vD,GAMjC1+C,GALF7L,EAAIA,EAAEqzF,MAAMF,IAEL1wB,SAGC3mC,EAAIjwB,EAFJ8mF,EAAMO,EAAYp3D,EAAEpiC,QAAUoiC,EAAIjwB,CAI5C,CAIA,IAHIpY,KAAKgvE,WACP52D,EAAM,IAAMA,GAEPA,EAAInS,OAAS2iE,GAAY,GAC9BxwD,EAAM,IAAMA,EAKd,OAHsB,IAAlBpY,KAAK49F,WACPxlF,EAAM,IAAMA,GAEPA,CACT,CAEAysC,GAAO,EAAO,kCAChB,EAEA44C,EAAGh8F,UAAU+N,SAAW,WACtB,IAAIqwF,EAAM7/F,KAAKwlB,MAAM,GASrB,OARoB,IAAhBxlB,KAAKiG,OACP45F,GAAuB,SAAhB7/F,KAAKwlB,MAAM,GACO,IAAhBxlB,KAAKiG,QAAkC,IAAlBjG,KAAKwlB,MAAM,GAEzCq6E,GAAO,iBAAoC,SAAhB7/F,KAAKwlB,MAAM,GAC7BxlB,KAAKiG,OAAS,GACvB4+C,GAAO,EAAO,8CAEU,IAAlB7kD,KAAK49F,UAAmBiC,EAAMA,CACxC,EAEApC,EAAGh8F,UAAU27C,OAAS,WACpB,OAAOp9C,KAAKoH,SAAS,GACvB,EAEAq2F,EAAGh8F,UAAUq+F,SAAW,SAAmBpC,EAAQz3F,GAEjD,OADA4+C,OAAyB,IAAX52C,GACPjO,KAAKsoC,YAAYr6B,EAAQyvF,EAAQz3F,EAC1C,EAEAw3F,EAAGh8F,UAAU4K,QAAU,SAAkBqxF,EAAQz3F,GAC/C,OAAOjG,KAAKsoC,YAAYrgC,MAAOy1F,EAAQz3F,EACzC,EAEAw3F,EAAGh8F,UAAU6mC,YAAc,SAAsBy3D,EAAWrC,EAAQz3F,GAClE,IAAI2qD,EAAa5wD,KAAK4wD,aAClBovC,EAAY/5F,GAAU8H,KAAKW,IAAI,EAAGkiD,GACtC/L,EAAO+L,GAAcovC,EAAW,yCAChCn7C,EAAOm7C,EAAY,EAAG,+BAEtBhgG,KAAKszF,QACL,IAGIxrF,EAAGkD,EAHHi1F,EAA0B,OAAXvC,EACf7wD,EAAM,IAAIkzD,EAAUC,GAGpBviC,EAAIz9D,KAAK45B,QACb,GAAKqmE,EAYE,CACL,IAAKj1F,EAAI,GAAIyyD,EAAEuR,SAAUhkE,IACvBlD,EAAI21D,EAAEyiC,MAAM,KACZziC,EAAE0iC,OAAO,GAETtzD,EAAI7hC,GAAKlD,EAGX,KAAOkD,EAAIg1F,EAAWh1F,IACpB6hC,EAAI7hC,GAAK,CAEb,KAvBmB,CAEjB,IAAKA,EAAI,EAAGA,EAAIg1F,EAAYpvC,EAAY5lD,IACtC6hC,EAAI7hC,GAAK,EAGX,IAAKA,EAAI,GAAIyyD,EAAEuR,SAAUhkE,IACvBlD,EAAI21D,EAAEyiC,MAAM,KACZziC,EAAE0iC,OAAO,GAETtzD,EAAImzD,EAAYh1F,EAAI,GAAKlD,CAE7B,CAaA,OAAO+kC,CACT,EAEI9+B,KAAKqyF,MACP3C,EAAGh8F,UAAU4+F,WAAa,SAAqB5B,GAC7C,OAAO,GAAK1wF,KAAKqyF,MAAM3B,EACzB,EAEAhB,EAAGh8F,UAAU4+F,WAAa,SAAqB5B,GAC7C,IAAIv5F,EAAIu5F,EACJp2D,EAAI,EAiBR,OAhBInjC,GAAK,OACPmjC,GAAK,GACLnjC,KAAO,IAELA,GAAK,KACPmjC,GAAK,EACLnjC,KAAO,GAELA,GAAK,IACPmjC,GAAK,EACLnjC,KAAO,GAELA,GAAK,IACPmjC,GAAK,EACLnjC,KAAO,GAEFmjC,EAAInjC,CACb,EAGFu4F,EAAGh8F,UAAU6+F,UAAY,SAAoB7B,GAE3C,GAAU,IAANA,EAAS,OAAO,GAEpB,IAAIv5F,EAAIu5F,EACJp2D,EAAI,EAoBR,OAnBqB,IAAZ,KAAJnjC,KACHmjC,GAAK,GACLnjC,KAAO,IAEU,IAAV,IAAJA,KACHmjC,GAAK,EACLnjC,KAAO,GAES,IAAT,GAAJA,KACHmjC,GAAK,EACLnjC,KAAO,GAES,IAAT,EAAJA,KACHmjC,GAAK,EACLnjC,KAAO,GAES,IAAT,EAAJA,IACHmjC,IAEKA,CACT,EAGAo1D,EAAGh8F,UAAU8+F,UAAY,WACvB,IAAI9B,EAAIz+F,KAAKwlB,MAAMxlB,KAAKiG,OAAS,GAC7BuhE,EAAKxnE,KAAKqgG,WAAW5B,GACzB,OAA2B,IAAnBz+F,KAAKiG,OAAS,GAAUuhE,CAClC,EAgBAi2B,EAAGh8F,UAAU++F,SAAW,WACtB,GAAIxgG,KAAKgvE,SAAU,OAAO,EAG1B,IADA,IAAI3mC,EAAI,EACCr9B,EAAI,EAAGA,EAAIhL,KAAKiG,OAAQ+E,IAAK,CACpC,IAAIlD,EAAI9H,KAAKsgG,UAAUtgG,KAAKwlB,MAAMxa,IAElC,GADAq9B,GAAKvgC,EACK,KAANA,EAAU,KAChB,CACA,OAAOugC,CACT,EAEAo1D,EAAGh8F,UAAUmvD,WAAa,WACxB,OAAO7iD,KAAK1E,KAAKrJ,KAAKugG,YAAc,EACtC,EAEA9C,EAAGh8F,UAAUg/F,OAAS,SAAiBC,GACrC,OAAsB,IAAlB1gG,KAAK49F,SACA59F,KAAKmhC,MAAMw/D,MAAMD,GAAOE,MAAM,GAEhC5gG,KAAK45B,OACd,EAEA6jE,EAAGh8F,UAAUo/F,SAAW,SAAmBH,GACzC,OAAI1gG,KAAK8gG,MAAMJ,EAAQ,GACd1gG,KAAK+gG,KAAKL,GAAOE,MAAM,GAAGI,OAE5BhhG,KAAK45B,OACd,EAEA6jE,EAAGh8F,UAAUw/F,MAAQ,WACnB,OAAyB,IAAlBjhG,KAAK49F,QACd,EAGAH,EAAGh8F,UAAUy/F,IAAM,WACjB,OAAOlhG,KAAK45B,QAAQonE,MACtB,EAEAvD,EAAGh8F,UAAUu/F,KAAO,WAKlB,OAJKhhG,KAAKgvE,WACRhvE,KAAK49F,UAAY,GAGZ59F,IACT,EAGAy9F,EAAGh8F,UAAU0/F,KAAO,SAAehtC,GACjC,KAAOn0D,KAAKiG,OAASkuD,EAAIluD,QACvBjG,KAAKwlB,MAAMxlB,KAAKiG,UAAY,EAG9B,IAAK,IAAI+E,EAAI,EAAGA,EAAImpD,EAAIluD,OAAQ+E,IAC9BhL,KAAKwlB,MAAMxa,GAAKhL,KAAKwlB,MAAMxa,GAAKmpD,EAAI3uC,MAAMxa,GAG5C,OAAOhL,KAAKszF,OACd,EAEAmK,EAAGh8F,UAAU2/F,IAAM,SAAcjtC,GAE/B,OADAtP,EAA0C,IAAlC7kD,KAAK49F,SAAWzpC,EAAIypC,WACrB59F,KAAKmhG,KAAKhtC,EACnB,EAGAspC,EAAGh8F,UAAU4/F,GAAK,SAAaltC,GAC7B,OAAIn0D,KAAKiG,OAASkuD,EAAIluD,OAAejG,KAAK45B,QAAQwnE,IAAIjtC,GAC/CA,EAAIv6B,QAAQwnE,IAAIphG,KACzB,EAEAy9F,EAAGh8F,UAAU6/F,IAAM,SAAcntC,GAC/B,OAAIn0D,KAAKiG,OAASkuD,EAAIluD,OAAejG,KAAK45B,QAAQunE,KAAKhtC,GAChDA,EAAIv6B,QAAQunE,KAAKnhG,KAC1B,EAGAy9F,EAAGh8F,UAAU8/F,MAAQ,SAAgBptC,GAEnC,IAAIrsD,EAEFA,EADE9H,KAAKiG,OAASkuD,EAAIluD,OAChBkuD,EAEAn0D,KAGN,IAAK,IAAIgL,EAAI,EAAGA,EAAIlD,EAAE7B,OAAQ+E,IAC5BhL,KAAKwlB,MAAMxa,GAAKhL,KAAKwlB,MAAMxa,GAAKmpD,EAAI3uC,MAAMxa,GAK5C,OAFAhL,KAAKiG,OAAS6B,EAAE7B,OAETjG,KAAKszF,OACd,EAEAmK,EAAGh8F,UAAU+/F,KAAO,SAAertC,GAEjC,OADAtP,EAA0C,IAAlC7kD,KAAK49F,SAAWzpC,EAAIypC,WACrB59F,KAAKuhG,MAAMptC,EACpB,EAGAspC,EAAGh8F,UAAUggG,IAAM,SAActtC,GAC/B,OAAIn0D,KAAKiG,OAASkuD,EAAIluD,OAAejG,KAAK45B,QAAQ4nE,KAAKrtC,GAChDA,EAAIv6B,QAAQ4nE,KAAKxhG,KAC1B,EAEAy9F,EAAGh8F,UAAUigG,KAAO,SAAevtC,GACjC,OAAIn0D,KAAKiG,OAASkuD,EAAIluD,OAAejG,KAAK45B,QAAQ2nE,MAAMptC,GACjDA,EAAIv6B,QAAQ2nE,MAAMvhG,KAC3B,EAGAy9F,EAAGh8F,UAAUkgG,MAAQ,SAAgBxtC,GAEnC,IAAI/mD,EACAtF,EACA9H,KAAKiG,OAASkuD,EAAIluD,QACpBmH,EAAIpN,KACJ8H,EAAIqsD,IAEJ/mD,EAAI+mD,EACJrsD,EAAI9H,MAGN,IAAK,IAAIgL,EAAI,EAAGA,EAAIlD,EAAE7B,OAAQ+E,IAC5BhL,KAAKwlB,MAAMxa,GAAKoC,EAAEoY,MAAMxa,GAAKlD,EAAE0d,MAAMxa,GAGvC,GAAIhL,OAASoN,EACX,KAAOpC,EAAIoC,EAAEnH,OAAQ+E,IACnBhL,KAAKwlB,MAAMxa,GAAKoC,EAAEoY,MAAMxa,GAM5B,OAFAhL,KAAKiG,OAASmH,EAAEnH,OAETjG,KAAKszF,OACd,EAEAmK,EAAGh8F,UAAUmgG,KAAO,SAAeztC,GAEjC,OADAtP,EAA0C,IAAlC7kD,KAAK49F,SAAWzpC,EAAIypC,WACrB59F,KAAK2hG,MAAMxtC,EACpB,EAGAspC,EAAGh8F,UAAUogG,IAAM,SAAc1tC,GAC/B,OAAIn0D,KAAKiG,OAASkuD,EAAIluD,OAAejG,KAAK45B,QAAQgoE,KAAKztC,GAChDA,EAAIv6B,QAAQgoE,KAAK5hG,KAC1B,EAEAy9F,EAAGh8F,UAAUqgG,KAAO,SAAe3tC,GACjC,OAAIn0D,KAAKiG,OAASkuD,EAAIluD,OAAejG,KAAK45B,QAAQ+nE,MAAMxtC,GACjDA,EAAIv6B,QAAQ+nE,MAAM3hG,KAC3B,EAGAy9F,EAAGh8F,UAAUk/F,MAAQ,SAAgBD,GACnC77C,EAAwB,iBAAV67C,GAAsBA,GAAS,GAE7C,IAAIqB,EAAsC,EAAxBh0F,KAAK1E,KAAKq3F,EAAQ,IAChCsB,EAAWtB,EAAQ,GAGvB1gG,KAAK++F,QAAQgD,GAETC,EAAW,GACbD,IAIF,IAAK,IAAI/2F,EAAI,EAAGA,EAAI+2F,EAAa/2F,IAC/BhL,KAAKwlB,MAAMxa,GAAsB,UAAhBhL,KAAKwlB,MAAMxa,GAS9B,OALIg3F,EAAW,IACbhiG,KAAKwlB,MAAMxa,IAAMhL,KAAKwlB,MAAMxa,GAAM,UAAc,GAAKg3F,GAIhDhiG,KAAKszF,OACd,EAEAmK,EAAGh8F,UAAUs/F,KAAO,SAAeL,GACjC,OAAO1gG,KAAK45B,QAAQ+mE,MAAMD,EAC5B,EAGAjD,EAAGh8F,UAAUwgG,KAAO,SAAeC,EAAKj1F,GACtC43C,EAAsB,iBAARq9C,GAAoBA,GAAO,GAEzC,IAAIt9B,EAAOs9B,EAAM,GAAM,EACnBC,EAAOD,EAAM,GAUjB,OARAliG,KAAK++F,QAAQn6B,EAAM,GAGjB5kE,KAAKwlB,MAAMo/C,GADT33D,EACgBjN,KAAKwlB,MAAMo/C,GAAQ,GAAKu9B,EAExBniG,KAAKwlB,MAAMo/C,KAAS,GAAKu9B,GAGtCniG,KAAKszF,OACd,EAGAmK,EAAGh8F,UAAU2gG,KAAO,SAAejuC,GACjC,IAAI9rB,EAkBAj7B,EAAGtF,EAfP,GAAsB,IAAlB9H,KAAK49F,UAAmC,IAAjBzpC,EAAIypC,SAI7B,OAHA59F,KAAK49F,SAAW,EAChBv1D,EAAIroC,KAAKqiG,KAAKluC,GACdn0D,KAAK49F,UAAY,EACV59F,KAAKg/F,YAGP,GAAsB,IAAlBh/F,KAAK49F,UAAmC,IAAjBzpC,EAAIypC,SAIpC,OAHAzpC,EAAIypC,SAAW,EACfv1D,EAAIroC,KAAKqiG,KAAKluC,GACdA,EAAIypC,SAAW,EACRv1D,EAAE22D,YAKPh/F,KAAKiG,OAASkuD,EAAIluD,QACpBmH,EAAIpN,KACJ8H,EAAIqsD,IAEJ/mD,EAAI+mD,EACJrsD,EAAI9H,MAIN,IADA,IAAIgpE,EAAQ,EACHh+D,EAAI,EAAGA,EAAIlD,EAAE7B,OAAQ+E,IAC5Bq9B,GAAkB,EAAbj7B,EAAEoY,MAAMxa,KAAwB,EAAblD,EAAE0d,MAAMxa,IAAUg+D,EAC1ChpE,KAAKwlB,MAAMxa,GAAS,SAAJq9B,EAChB2gC,EAAQ3gC,IAAM,GAEhB,KAAiB,IAAV2gC,GAAeh+D,EAAIoC,EAAEnH,OAAQ+E,IAClCq9B,GAAkB,EAAbj7B,EAAEoY,MAAMxa,IAAUg+D,EACvBhpE,KAAKwlB,MAAMxa,GAAS,SAAJq9B,EAChB2gC,EAAQ3gC,IAAM,GAIhB,GADAroC,KAAKiG,OAASmH,EAAEnH,OACF,IAAV+iE,EACFhpE,KAAKwlB,MAAMxlB,KAAKiG,QAAU+iE,EAC1BhpE,KAAKiG,cAEA,GAAImH,IAAMpN,KACf,KAAOgL,EAAIoC,EAAEnH,OAAQ+E,IACnBhL,KAAKwlB,MAAMxa,GAAKoC,EAAEoY,MAAMxa,GAI5B,OAAOhL,IACT,EAGAy9F,EAAGh8F,UAAUmI,IAAM,SAAcuqD,GAC/B,IAAItnB,EACJ,OAAqB,IAAjBsnB,EAAIypC,UAAoC,IAAlB59F,KAAK49F,UAC7BzpC,EAAIypC,SAAW,EACf/wD,EAAM7sC,KAAKgK,IAAImqD,GACfA,EAAIypC,UAAY,EACT/wD,GACmB,IAAjBsnB,EAAIypC,UAAoC,IAAlB59F,KAAK49F,UACpC59F,KAAK49F,SAAW,EAChB/wD,EAAMsnB,EAAInqD,IAAIhK,MACdA,KAAK49F,SAAW,EACT/wD,GAGL7sC,KAAKiG,OAASkuD,EAAIluD,OAAejG,KAAK45B,QAAQwoE,KAAKjuC,GAEhDA,EAAIv6B,QAAQwoE,KAAKpiG,KAC1B,EAGAy9F,EAAGh8F,UAAU4gG,KAAO,SAAeluC,GAEjC,GAAqB,IAAjBA,EAAIypC,SAAgB,CACtBzpC,EAAIypC,SAAW,EACf,IAAIv1D,EAAIroC,KAAKoiG,KAAKjuC,GAElB,OADAA,EAAIypC,SAAW,EACRv1D,EAAE22D,WAGX,CAAO,GAAsB,IAAlBh/F,KAAK49F,SAId,OAHA59F,KAAK49F,SAAW,EAChB59F,KAAKoiG,KAAKjuC,GACVn0D,KAAK49F,SAAW,EACT59F,KAAKg/F,YAId,IAWI5xF,EAAGtF,EAXHs2F,EAAMp+F,KAAKo+F,IAAIjqC,GAGnB,GAAY,IAARiqC,EAIF,OAHAp+F,KAAK49F,SAAW,EAChB59F,KAAKiG,OAAS,EACdjG,KAAKwlB,MAAM,GAAK,EACTxlB,KAKLo+F,EAAM,GACRhxF,EAAIpN,KACJ8H,EAAIqsD,IAEJ/mD,EAAI+mD,EACJrsD,EAAI9H,MAIN,IADA,IAAIgpE,EAAQ,EACHh+D,EAAI,EAAGA,EAAIlD,EAAE7B,OAAQ+E,IAE5Bg+D,GADA3gC,GAAkB,EAAbj7B,EAAEoY,MAAMxa,KAAwB,EAAblD,EAAE0d,MAAMxa,IAAUg+D,IAC7B,GACbhpE,KAAKwlB,MAAMxa,GAAS,SAAJq9B,EAElB,KAAiB,IAAV2gC,GAAeh+D,EAAIoC,EAAEnH,OAAQ+E,IAElCg+D,GADA3gC,GAAkB,EAAbj7B,EAAEoY,MAAMxa,IAAUg+D,IACV,GACbhpE,KAAKwlB,MAAMxa,GAAS,SAAJq9B,EAIlB,GAAc,IAAV2gC,GAAeh+D,EAAIoC,EAAEnH,QAAUmH,IAAMpN,KACvC,KAAOgL,EAAIoC,EAAEnH,OAAQ+E,IACnBhL,KAAKwlB,MAAMxa,GAAKoC,EAAEoY,MAAMxa,GAU5B,OANAhL,KAAKiG,OAAS8H,KAAKW,IAAI1O,KAAKiG,OAAQ+E,GAEhCoC,IAAMpN,OACRA,KAAK49F,SAAW,GAGX59F,KAAKszF,OACd,EAGAmK,EAAGh8F,UAAUuI,IAAM,SAAcmqD,GAC/B,OAAOn0D,KAAK45B,QAAQyoE,KAAKluC,EAC3B,EA8CA,IAAImuC,EAAc,SAAsBviG,EAAMo0D,EAAK/7C,GACjD,IAIImvD,EACAg7B,EACA/6B,EANAp6D,EAAIrN,EAAKylB,MACT1d,EAAIqsD,EAAI3uC,MACR/iB,EAAI2V,EAAIoN,MACRjZ,EAAI,EAIJi2F,EAAY,EAAPp1F,EAAE,GACPq1F,EAAW,KAALD,EACNE,EAAMF,IAAO,GACb5kC,EAAY,EAAPxwD,EAAE,GACPu1F,EAAW,KAAL/kC,EACNglC,EAAMhlC,IAAO,GACbE,EAAY,EAAP1wD,EAAE,GACPy1F,EAAW,KAAL/kC,EACNglC,EAAMhlC,IAAO,GACbilC,EAAY,EAAP31F,EAAE,GACP41F,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP91F,EAAE,GACP+1F,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPj2F,EAAE,GACPk2F,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPp2F,EAAE,GACPq2F,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPv2F,EAAE,GACPw2F,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP12F,EAAE,GACP22F,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP72F,EAAE,GACP82F,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPt8F,EAAE,GACPu8F,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbvmC,EAAY,EAAP/1D,EAAE,GACPy8F,EAAW,KAAL1mC,EACN2mC,EAAM3mC,IAAO,GACbvE,EAAY,EAAPxxD,EAAE,GACP28F,EAAW,KAALnrC,EACNorC,EAAMprC,IAAO,GACbC,EAAY,EAAPzxD,EAAE,GACP68F,EAAW,KAALprC,EACNqrC,EAAMrrC,IAAO,GACbsrC,EAAY,EAAP/8F,EAAE,GACPg9F,EAAW,KAALD,EACNE,GAAMF,IAAO,GACbG,GAAY,EAAPl9F,EAAE,GACPm9F,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbxrC,GAAY,EAAP1xD,EAAE,GACPq9F,GAAW,KAAL3rC,GACN4rC,GAAM5rC,KAAO,GACb6rC,GAAY,EAAPv9F,EAAE,GACPw9F,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAP19F,EAAE,GACP29F,GAAW,KAALD,GACNE,GAAMF,KAAO,GACb9rC,GAAY,EAAP5xD,EAAE,GACP69F,GAAW,KAALjsC,GACNksC,GAAMlsC,KAAO,GAEjBthD,EAAIwlF,SAAW79F,EAAK69F,SAAWzpC,EAAIypC,SACnCxlF,EAAInS,OAAS,GAMb,IAAI4/F,IAAQt5F,GAJZg7D,EAAKx5D,KAAK+3F,KAAKrD,EAAK4B,IAIE,KAAa,MAFnC9B,GADAA,EAAMx0F,KAAK+3F,KAAKrD,EAAK6B,IACRv2F,KAAK+3F,KAAKpD,EAAK2B,GAAQ,KAEU,IAAO,EACrD93F,IAFAi7D,EAAKz5D,KAAK+3F,KAAKpD,EAAK4B,KAEP/B,IAAQ,IAAO,IAAMsD,KAAO,IAAO,EAChDA,IAAM,SAENt+B,EAAKx5D,KAAK+3F,KAAKnD,EAAK0B,GAEpB9B,GADAA,EAAMx0F,KAAK+3F,KAAKnD,EAAK2B,IACRv2F,KAAK+3F,KAAKlD,EAAKyB,GAAQ,EACpC78B,EAAKz5D,KAAK+3F,KAAKlD,EAAK0B,GAKpB,IAAIyB,IAAQx5F,GAJZg7D,EAAMA,EAAKx5D,KAAK+3F,KAAKrD,EAAK8B,GAAQ,GAIZ,KAAa,MAFnChC,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAKrD,EAAK+B,GAAQ,GACvBz2F,KAAK+3F,KAAKpD,EAAK6B,GAAQ,KAEU,IAAO,EACrDh4F,IAFAi7D,EAAMA,EAAKz5D,KAAK+3F,KAAKpD,EAAK8B,GAAQ,IAErBjC,IAAQ,IAAO,IAAMwD,KAAO,IAAO,EAChDA,IAAM,SAENx+B,EAAKx5D,KAAK+3F,KAAKjD,EAAKwB,GAEpB9B,GADAA,EAAMx0F,KAAK+3F,KAAKjD,EAAKyB,IACRv2F,KAAK+3F,KAAKhD,EAAKuB,GAAQ,EACpC78B,EAAKz5D,KAAK+3F,KAAKhD,EAAKwB,GACpB/8B,EAAMA,EAAKx5D,KAAK+3F,KAAKnD,EAAK4B,GAAQ,EAElChC,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAKnD,EAAK6B,GAAQ,GACvBz2F,KAAK+3F,KAAKlD,EAAK2B,GAAQ,EACpC/8B,EAAMA,EAAKz5D,KAAK+3F,KAAKlD,EAAK4B,GAAQ,EAKlC,IAAIwB,IAAQz5F,GAJZg7D,EAAMA,EAAKx5D,KAAK+3F,KAAKrD,EAAKgC,GAAQ,GAIZ,KAAa,MAFnClC,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAKrD,EAAKiC,GAAQ,GACvB32F,KAAK+3F,KAAKpD,EAAK+B,GAAQ,KAEU,IAAO,EACrDl4F,IAFAi7D,EAAMA,EAAKz5D,KAAK+3F,KAAKpD,EAAKgC,GAAQ,IAErBnC,IAAQ,IAAO,IAAMyD,KAAO,IAAO,EAChDA,IAAM,SAENz+B,EAAKx5D,KAAK+3F,KAAK9C,EAAKqB,GAEpB9B,GADAA,EAAMx0F,KAAK+3F,KAAK9C,EAAKsB,IACRv2F,KAAK+3F,KAAK7C,EAAKoB,GAAQ,EACpC78B,EAAKz5D,KAAK+3F,KAAK7C,EAAKqB,GACpB/8B,EAAMA,EAAKx5D,KAAK+3F,KAAKjD,EAAK0B,GAAQ,EAElChC,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAKjD,EAAK2B,GAAQ,GACvBz2F,KAAK+3F,KAAKhD,EAAKyB,GAAQ,EACpC/8B,EAAMA,EAAKz5D,KAAK+3F,KAAKhD,EAAK0B,GAAQ,EAClCj9B,EAAMA,EAAKx5D,KAAK+3F,KAAKnD,EAAK8B,GAAQ,EAElClC,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAKnD,EAAK+B,GAAQ,GACvB32F,KAAK+3F,KAAKlD,EAAK6B,GAAQ,EACpCj9B,EAAMA,EAAKz5D,KAAK+3F,KAAKlD,EAAK8B,GAAQ,EAKlC,IAAIuB,IAAQ15F,GAJZg7D,EAAMA,EAAKx5D,KAAK+3F,KAAKrD,EAAKkC,GAAQ,GAIZ,KAAa,MAFnCpC,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAKrD,EAAKmC,GAAQ,GACvB72F,KAAK+3F,KAAKpD,EAAKiC,GAAQ,KAEU,IAAO,EACrDp4F,IAFAi7D,EAAMA,EAAKz5D,KAAK+3F,KAAKpD,EAAKkC,GAAQ,IAErBrC,IAAQ,IAAO,IAAM0D,KAAO,IAAO,EAChDA,IAAM,SAEN1+B,EAAKx5D,KAAK+3F,KAAK3C,EAAKkB,GAEpB9B,GADAA,EAAMx0F,KAAK+3F,KAAK3C,EAAKmB,IACRv2F,KAAK+3F,KAAK1C,EAAKiB,GAAQ,EACpC78B,EAAKz5D,KAAK+3F,KAAK1C,EAAKkB,GACpB/8B,EAAMA,EAAKx5D,KAAK+3F,KAAK9C,EAAKuB,GAAQ,EAElChC,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAK9C,EAAKwB,GAAQ,GACvBz2F,KAAK+3F,KAAK7C,EAAKsB,GAAQ,EACpC/8B,EAAMA,EAAKz5D,KAAK+3F,KAAK7C,EAAKuB,GAAQ,EAClCj9B,EAAMA,EAAKx5D,KAAK+3F,KAAKjD,EAAK4B,GAAQ,EAElClC,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAKjD,EAAK6B,GAAQ,GACvB32F,KAAK+3F,KAAKhD,EAAK2B,GAAQ,EACpCj9B,EAAMA,EAAKz5D,KAAK+3F,KAAKhD,EAAK4B,GAAQ,EAClCn9B,EAAMA,EAAKx5D,KAAK+3F,KAAKnD,EAAKgC,GAAQ,EAElCpC,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAKnD,EAAKiC,GAAQ,GACvB72F,KAAK+3F,KAAKlD,EAAK+B,GAAQ,EACpCn9B,EAAMA,EAAKz5D,KAAK+3F,KAAKlD,EAAKgC,GAAQ,EAKlC,IAAIsB,IAAQ35F,GAJZg7D,EAAMA,EAAKx5D,KAAK+3F,KAAKrD,EAAKqC,GAAQ,GAIZ,KAAa,MAFnCvC,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAKrD,EAAKsC,IAAQ,GACvBh3F,KAAK+3F,KAAKpD,EAAKoC,GAAQ,KAEU,IAAO,EACrDv4F,IAFAi7D,EAAMA,EAAKz5D,KAAK+3F,KAAKpD,EAAKqC,IAAQ,IAErBxC,IAAQ,IAAO,IAAM2D,KAAO,IAAO,EAChDA,IAAM,SAEN3+B,EAAKx5D,KAAK+3F,KAAKxC,EAAKe,GAEpB9B,GADAA,EAAMx0F,KAAK+3F,KAAKxC,EAAKgB,IACRv2F,KAAK+3F,KAAKvC,EAAKc,GAAQ,EACpC78B,EAAKz5D,KAAK+3F,KAAKvC,EAAKe,GACpB/8B,EAAMA,EAAKx5D,KAAK+3F,KAAK3C,EAAKoB,GAAQ,EAElChC,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAK3C,EAAKqB,GAAQ,GACvBz2F,KAAK+3F,KAAK1C,EAAKmB,GAAQ,EACpC/8B,EAAMA,EAAKz5D,KAAK+3F,KAAK1C,EAAKoB,GAAQ,EAClCj9B,EAAMA,EAAKx5D,KAAK+3F,KAAK9C,EAAKyB,GAAQ,EAElClC,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAK9C,EAAK0B,GAAQ,GACvB32F,KAAK+3F,KAAK7C,EAAKwB,GAAQ,EACpCj9B,EAAMA,EAAKz5D,KAAK+3F,KAAK7C,EAAKyB,GAAQ,EAClCn9B,EAAMA,EAAKx5D,KAAK+3F,KAAKjD,EAAK8B,GAAQ,EAElCpC,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAKjD,EAAK+B,GAAQ,GACvB72F,KAAK+3F,KAAKhD,EAAK6B,GAAQ,EACpCn9B,EAAMA,EAAKz5D,KAAK+3F,KAAKhD,EAAK8B,GAAQ,EAClCr9B,EAAMA,EAAKx5D,KAAK+3F,KAAKnD,EAAKmC,GAAQ,EAElCvC,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAKnD,EAAKoC,IAAQ,GACvBh3F,KAAK+3F,KAAKlD,EAAKkC,GAAQ,EACpCt9B,EAAMA,EAAKz5D,KAAK+3F,KAAKlD,EAAKmC,IAAQ,EAKlC,IAAIoB,IAAQ55F,GAJZg7D,EAAMA,EAAKx5D,KAAK+3F,KAAKrD,EAAKwC,IAAQ,GAIZ,KAAa,MAFnC1C,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAKrD,EAAKyC,IAAQ,GACvBn3F,KAAK+3F,KAAKpD,EAAKuC,IAAQ,KAEU,IAAO,EACrD14F,IAFAi7D,EAAMA,EAAKz5D,KAAK+3F,KAAKpD,EAAKwC,IAAQ,IAErB3C,IAAQ,IAAO,IAAM4D,KAAO,IAAO,EAChDA,IAAM,SAEN5+B,EAAKx5D,KAAK+3F,KAAKrC,EAAKY,GAEpB9B,GADAA,EAAMx0F,KAAK+3F,KAAKrC,EAAKa,IACRv2F,KAAK+3F,KAAKpC,EAAKW,GAAQ,EACpC78B,EAAKz5D,KAAK+3F,KAAKpC,EAAKY,GACpB/8B,EAAMA,EAAKx5D,KAAK+3F,KAAKxC,EAAKiB,GAAQ,EAElChC,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAKxC,EAAKkB,GAAQ,GACvBz2F,KAAK+3F,KAAKvC,EAAKgB,GAAQ,EACpC/8B,EAAMA,EAAKz5D,KAAK+3F,KAAKvC,EAAKiB,GAAQ,EAClCj9B,EAAMA,EAAKx5D,KAAK+3F,KAAK3C,EAAKsB,GAAQ,EAElClC,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAK3C,EAAKuB,GAAQ,GACvB32F,KAAK+3F,KAAK1C,EAAKqB,GAAQ,EACpCj9B,EAAMA,EAAKz5D,KAAK+3F,KAAK1C,EAAKsB,GAAQ,EAClCn9B,EAAMA,EAAKx5D,KAAK+3F,KAAK9C,EAAK2B,GAAQ,EAElCpC,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAK9C,EAAK4B,GAAQ,GACvB72F,KAAK+3F,KAAK7C,EAAK0B,GAAQ,EACpCn9B,EAAMA,EAAKz5D,KAAK+3F,KAAK7C,EAAK2B,GAAQ,EAClCr9B,EAAMA,EAAKx5D,KAAK+3F,KAAKjD,EAAKiC,GAAQ,EAElCvC,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAKjD,EAAKkC,IAAQ,GACvBh3F,KAAK+3F,KAAKhD,EAAKgC,GAAQ,EACpCt9B,EAAMA,EAAKz5D,KAAK+3F,KAAKhD,EAAKiC,IAAQ,EAClCx9B,EAAMA,EAAKx5D,KAAK+3F,KAAKnD,EAAKsC,IAAQ,EAElC1C,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAKnD,EAAKuC,IAAQ,GACvBn3F,KAAK+3F,KAAKlD,EAAKqC,IAAQ,EACpCz9B,EAAMA,EAAKz5D,KAAK+3F,KAAKlD,EAAKsC,IAAQ,EAKlC,IAAIkB,IAAQ75F,GAJZg7D,EAAMA,EAAKx5D,KAAK+3F,KAAKrD,EAAK0C,IAAQ,GAIZ,KAAa,MAFnC5C,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAKrD,EAAK2C,IAAQ,GACvBr3F,KAAK+3F,KAAKpD,EAAKyC,IAAQ,KAEU,IAAO,EACrD54F,IAFAi7D,EAAMA,EAAKz5D,KAAK+3F,KAAKpD,EAAK0C,IAAQ,IAErB7C,IAAQ,IAAO,IAAM6D,KAAO,IAAO,EAChDA,IAAM,SAEN7+B,EAAKx5D,KAAK+3F,KAAKlC,EAAKS,GAEpB9B,GADAA,EAAMx0F,KAAK+3F,KAAKlC,EAAKU,IACRv2F,KAAK+3F,KAAKjC,EAAKQ,GAAQ,EACpC78B,EAAKz5D,KAAK+3F,KAAKjC,EAAKS,GACpB/8B,EAAMA,EAAKx5D,KAAK+3F,KAAKrC,EAAKc,GAAQ,EAElChC,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAKrC,EAAKe,GAAQ,GACvBz2F,KAAK+3F,KAAKpC,EAAKa,GAAQ,EACpC/8B,EAAMA,EAAKz5D,KAAK+3F,KAAKpC,EAAKc,GAAQ,EAClCj9B,EAAMA,EAAKx5D,KAAK+3F,KAAKxC,EAAKmB,GAAQ,EAElClC,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAKxC,EAAKoB,GAAQ,GACvB32F,KAAK+3F,KAAKvC,EAAKkB,GAAQ,EACpCj9B,EAAMA,EAAKz5D,KAAK+3F,KAAKvC,EAAKmB,GAAQ,EAClCn9B,EAAMA,EAAKx5D,KAAK+3F,KAAK3C,EAAKwB,GAAQ,EAElCpC,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAK3C,EAAKyB,GAAQ,GACvB72F,KAAK+3F,KAAK1C,EAAKuB,GAAQ,EACpCn9B,EAAMA,EAAKz5D,KAAK+3F,KAAK1C,EAAKwB,GAAQ,EAClCr9B,EAAMA,EAAKx5D,KAAK+3F,KAAK9C,EAAK8B,GAAQ,EAElCvC,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAK9C,EAAK+B,IAAQ,GACvBh3F,KAAK+3F,KAAK7C,EAAK6B,GAAQ,EACpCt9B,EAAMA,EAAKz5D,KAAK+3F,KAAK7C,EAAK8B,IAAQ,EAClCx9B,EAAMA,EAAKx5D,KAAK+3F,KAAKjD,EAAKoC,IAAQ,EAElC1C,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAKjD,EAAKqC,IAAQ,GACvBn3F,KAAK+3F,KAAKhD,EAAKmC,IAAQ,EACpCz9B,EAAMA,EAAKz5D,KAAK+3F,KAAKhD,EAAKoC,IAAQ,EAClC39B,EAAMA,EAAKx5D,KAAK+3F,KAAKnD,EAAKwC,IAAQ,EAElC5C,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAKnD,EAAKyC,IAAQ,GACvBr3F,KAAK+3F,KAAKlD,EAAKuC,IAAQ,EACpC39B,EAAMA,EAAKz5D,KAAK+3F,KAAKlD,EAAKwC,IAAQ,EAKlC,IAAIiB,IAAQ95F,GAJZg7D,EAAMA,EAAKx5D,KAAK+3F,KAAKrD,EAAK6C,IAAQ,GAIZ,KAAa,MAFnC/C,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAKrD,EAAK8C,IAAQ,GACvBx3F,KAAK+3F,KAAKpD,EAAK4C,IAAQ,KAEU,IAAO,EACrD/4F,IAFAi7D,EAAMA,EAAKz5D,KAAK+3F,KAAKpD,EAAK6C,IAAQ,IAErBhD,IAAQ,IAAO,IAAM8D,KAAO,IAAO,EAChDA,IAAM,SAEN9+B,EAAKx5D,KAAK+3F,KAAK/B,EAAKM,GAEpB9B,GADAA,EAAMx0F,KAAK+3F,KAAK/B,EAAKO,IACRv2F,KAAK+3F,KAAK9B,EAAKK,GAAQ,EACpC78B,EAAKz5D,KAAK+3F,KAAK9B,EAAKM,GACpB/8B,EAAMA,EAAKx5D,KAAK+3F,KAAKlC,EAAKW,GAAQ,EAElChC,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAKlC,EAAKY,GAAQ,GACvBz2F,KAAK+3F,KAAKjC,EAAKU,GAAQ,EACpC/8B,EAAMA,EAAKz5D,KAAK+3F,KAAKjC,EAAKW,GAAQ,EAClCj9B,EAAMA,EAAKx5D,KAAK+3F,KAAKrC,EAAKgB,GAAQ,EAElClC,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAKrC,EAAKiB,GAAQ,GACvB32F,KAAK+3F,KAAKpC,EAAKe,GAAQ,EACpCj9B,EAAMA,EAAKz5D,KAAK+3F,KAAKpC,EAAKgB,GAAQ,EAClCn9B,EAAMA,EAAKx5D,KAAK+3F,KAAKxC,EAAKqB,GAAQ,EAElCpC,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAKxC,EAAKsB,GAAQ,GACvB72F,KAAK+3F,KAAKvC,EAAKoB,GAAQ,EACpCn9B,EAAMA,EAAKz5D,KAAK+3F,KAAKvC,EAAKqB,GAAQ,EAClCr9B,EAAMA,EAAKx5D,KAAK+3F,KAAK3C,EAAK2B,GAAQ,EAElCvC,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAK3C,EAAK4B,IAAQ,GACvBh3F,KAAK+3F,KAAK1C,EAAK0B,GAAQ,EACpCt9B,EAAMA,EAAKz5D,KAAK+3F,KAAK1C,EAAK2B,IAAQ,EAClCx9B,EAAMA,EAAKx5D,KAAK+3F,KAAK9C,EAAKiC,IAAQ,EAElC1C,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAK9C,EAAKkC,IAAQ,GACvBn3F,KAAK+3F,KAAK7C,EAAKgC,IAAQ,EACpCz9B,EAAMA,EAAKz5D,KAAK+3F,KAAK7C,EAAKiC,IAAQ,EAClC39B,EAAMA,EAAKx5D,KAAK+3F,KAAKjD,EAAKsC,IAAQ,EAElC5C,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAKjD,EAAKuC,IAAQ,GACvBr3F,KAAK+3F,KAAKhD,EAAKqC,IAAQ,EACpC39B,EAAMA,EAAKz5D,KAAK+3F,KAAKhD,EAAKsC,IAAQ,EAClC79B,EAAMA,EAAKx5D,KAAK+3F,KAAKnD,EAAK2C,IAAQ,EAElC/C,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAKnD,EAAK4C,IAAQ,GACvBx3F,KAAK+3F,KAAKlD,EAAK0C,IAAQ,EACpC99B,EAAMA,EAAKz5D,KAAK+3F,KAAKlD,EAAK2C,IAAQ,EAKlC,IAAIe,IAAQ/5F,GAJZg7D,EAAMA,EAAKx5D,KAAK+3F,KAAKrD,EAAKgD,IAAQ,GAIZ,KAAa,MAFnClD,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAKrD,EAAKiD,IAAQ,GACvB33F,KAAK+3F,KAAKpD,EAAK+C,IAAQ,KAEU,IAAO,EACrDl5F,IAFAi7D,EAAMA,EAAKz5D,KAAK+3F,KAAKpD,EAAKgD,IAAQ,IAErBnD,IAAQ,IAAO,IAAM+D,KAAO,IAAO,EAChDA,IAAM,SAEN/+B,EAAKx5D,KAAK+3F,KAAK5B,EAAKG,GAEpB9B,GADAA,EAAMx0F,KAAK+3F,KAAK5B,EAAKI,IACRv2F,KAAK+3F,KAAK3B,EAAKE,GAAQ,EACpC78B,EAAKz5D,KAAK+3F,KAAK3B,EAAKG,GACpB/8B,EAAMA,EAAKx5D,KAAK+3F,KAAK/B,EAAKQ,GAAQ,EAElChC,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAK/B,EAAKS,GAAQ,GACvBz2F,KAAK+3F,KAAK9B,EAAKO,GAAQ,EACpC/8B,EAAMA,EAAKz5D,KAAK+3F,KAAK9B,EAAKQ,GAAQ,EAClCj9B,EAAMA,EAAKx5D,KAAK+3F,KAAKlC,EAAKa,GAAQ,EAElClC,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAKlC,EAAKc,GAAQ,GACvB32F,KAAK+3F,KAAKjC,EAAKY,GAAQ,EACpCj9B,EAAMA,EAAKz5D,KAAK+3F,KAAKjC,EAAKa,GAAQ,EAClCn9B,EAAMA,EAAKx5D,KAAK+3F,KAAKrC,EAAKkB,GAAQ,EAElCpC,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAKrC,EAAKmB,GAAQ,GACvB72F,KAAK+3F,KAAKpC,EAAKiB,GAAQ,EACpCn9B,EAAMA,EAAKz5D,KAAK+3F,KAAKpC,EAAKkB,GAAQ,EAClCr9B,EAAMA,EAAKx5D,KAAK+3F,KAAKxC,EAAKwB,GAAQ,EAElCvC,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAKxC,EAAKyB,IAAQ,GACvBh3F,KAAK+3F,KAAKvC,EAAKuB,GAAQ,EACpCt9B,EAAMA,EAAKz5D,KAAK+3F,KAAKvC,EAAKwB,IAAQ,EAClCx9B,EAAMA,EAAKx5D,KAAK+3F,KAAK3C,EAAK8B,IAAQ,EAElC1C,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAK3C,EAAK+B,IAAQ,GACvBn3F,KAAK+3F,KAAK1C,EAAK6B,IAAQ,EACpCz9B,EAAMA,EAAKz5D,KAAK+3F,KAAK1C,EAAK8B,IAAQ,EAClC39B,EAAMA,EAAKx5D,KAAK+3F,KAAK9C,EAAKmC,IAAQ,EAElC5C,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAK9C,EAAKoC,IAAQ,GACvBr3F,KAAK+3F,KAAK7C,EAAKkC,IAAQ,EACpC39B,EAAMA,EAAKz5D,KAAK+3F,KAAK7C,EAAKmC,IAAQ,EAClC79B,EAAMA,EAAKx5D,KAAK+3F,KAAKjD,EAAKyC,IAAQ,EAElC/C,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAKjD,EAAK0C,IAAQ,GACvBx3F,KAAK+3F,KAAKhD,EAAKwC,IAAQ,EACpC99B,EAAMA,EAAKz5D,KAAK+3F,KAAKhD,EAAKyC,IAAQ,EAClCh+B,EAAMA,EAAKx5D,KAAK+3F,KAAKnD,EAAK8C,IAAQ,EAElClD,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAKnD,EAAK+C,IAAQ,GACvB33F,KAAK+3F,KAAKlD,EAAK6C,IAAQ,EACpCj+B,EAAMA,EAAKz5D,KAAK+3F,KAAKlD,EAAK8C,IAAQ,EAKlC,IAAIa,IAAQh6F,GAJZg7D,EAAMA,EAAKx5D,KAAK+3F,KAAKrD,EAAKkD,IAAQ,GAIZ,KAAa,MAFnCpD,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAKrD,EAAKmD,IAAQ,GACvB73F,KAAK+3F,KAAKpD,EAAKiD,IAAQ,KAEU,IAAO,EACrDp5F,IAFAi7D,EAAMA,EAAKz5D,KAAK+3F,KAAKpD,EAAKkD,IAAQ,IAErBrD,IAAQ,IAAO,IAAMgE,KAAO,IAAO,EAChDA,IAAM,SAENh/B,EAAKx5D,KAAK+3F,KAAK5B,EAAKK,GAEpBhC,GADAA,EAAMx0F,KAAK+3F,KAAK5B,EAAKM,IACRz2F,KAAK+3F,KAAK3B,EAAKI,GAAQ,EACpC/8B,EAAKz5D,KAAK+3F,KAAK3B,EAAKK,GACpBj9B,EAAMA,EAAKx5D,KAAK+3F,KAAK/B,EAAKU,GAAQ,EAElClC,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAK/B,EAAKW,GAAQ,GACvB32F,KAAK+3F,KAAK9B,EAAKS,GAAQ,EACpCj9B,EAAMA,EAAKz5D,KAAK+3F,KAAK9B,EAAKU,GAAQ,EAClCn9B,EAAMA,EAAKx5D,KAAK+3F,KAAKlC,EAAKe,GAAQ,EAElCpC,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAKlC,EAAKgB,GAAQ,GACvB72F,KAAK+3F,KAAKjC,EAAKc,GAAQ,EACpCn9B,EAAMA,EAAKz5D,KAAK+3F,KAAKjC,EAAKe,GAAQ,EAClCr9B,EAAMA,EAAKx5D,KAAK+3F,KAAKrC,EAAKqB,GAAQ,EAElCvC,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAKrC,EAAKsB,IAAQ,GACvBh3F,KAAK+3F,KAAKpC,EAAKoB,GAAQ,EACpCt9B,EAAMA,EAAKz5D,KAAK+3F,KAAKpC,EAAKqB,IAAQ,EAClCx9B,EAAMA,EAAKx5D,KAAK+3F,KAAKxC,EAAK2B,IAAQ,EAElC1C,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAKxC,EAAK4B,IAAQ,GACvBn3F,KAAK+3F,KAAKvC,EAAK0B,IAAQ,EACpCz9B,EAAMA,EAAKz5D,KAAK+3F,KAAKvC,EAAK2B,IAAQ,EAClC39B,EAAMA,EAAKx5D,KAAK+3F,KAAK3C,EAAKgC,IAAQ,EAElC5C,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAK3C,EAAKiC,IAAQ,GACvBr3F,KAAK+3F,KAAK1C,EAAK+B,IAAQ,EACpC39B,EAAMA,EAAKz5D,KAAK+3F,KAAK1C,EAAKgC,IAAQ,EAClC79B,EAAMA,EAAKx5D,KAAK+3F,KAAK9C,EAAKsC,IAAQ,EAElC/C,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAK9C,EAAKuC,IAAQ,GACvBx3F,KAAK+3F,KAAK7C,EAAKqC,IAAQ,EACpC99B,EAAMA,EAAKz5D,KAAK+3F,KAAK7C,EAAKsC,IAAQ,EAClCh+B,EAAMA,EAAKx5D,KAAK+3F,KAAKjD,EAAK4C,IAAQ,EAElClD,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAKjD,EAAK6C,IAAQ,GACvB33F,KAAK+3F,KAAKhD,EAAK2C,IAAQ,EACpCj+B,EAAMA,EAAKz5D,KAAK+3F,KAAKhD,EAAK4C,IAAQ,EAKlC,IAAIc,IAASj6F,GAJbg7D,EAAMA,EAAKx5D,KAAK+3F,KAAKnD,EAAKgD,IAAQ,GAIX,KAAa,MAFpCpD,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAKnD,EAAKiD,IAAQ,GACvB73F,KAAK+3F,KAAKlD,EAAK+C,IAAQ,KAEW,IAAO,EACtDp5F,IAFAi7D,EAAMA,EAAKz5D,KAAK+3F,KAAKlD,EAAKgD,IAAQ,IAErBrD,IAAQ,IAAO,IAAMiE,KAAQ,IAAO,EACjDA,IAAO,SAEPj/B,EAAKx5D,KAAK+3F,KAAK5B,EAAKO,GAEpBlC,GADAA,EAAMx0F,KAAK+3F,KAAK5B,EAAKQ,IACR32F,KAAK+3F,KAAK3B,EAAKM,GAAQ,EACpCj9B,EAAKz5D,KAAK+3F,KAAK3B,EAAKO,GACpBn9B,EAAMA,EAAKx5D,KAAK+3F,KAAK/B,EAAKY,GAAQ,EAElCpC,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAK/B,EAAKa,GAAQ,GACvB72F,KAAK+3F,KAAK9B,EAAKW,GAAQ,EACpCn9B,EAAMA,EAAKz5D,KAAK+3F,KAAK9B,EAAKY,GAAQ,EAClCr9B,EAAMA,EAAKx5D,KAAK+3F,KAAKlC,EAAKkB,GAAQ,EAElCvC,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAKlC,EAAKmB,IAAQ,GACvBh3F,KAAK+3F,KAAKjC,EAAKiB,GAAQ,EACpCt9B,EAAMA,EAAKz5D,KAAK+3F,KAAKjC,EAAKkB,IAAQ,EAClCx9B,EAAMA,EAAKx5D,KAAK+3F,KAAKrC,EAAKwB,IAAQ,EAElC1C,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAKrC,EAAKyB,IAAQ,GACvBn3F,KAAK+3F,KAAKpC,EAAKuB,IAAQ,EACpCz9B,EAAMA,EAAKz5D,KAAK+3F,KAAKpC,EAAKwB,IAAQ,EAClC39B,EAAMA,EAAKx5D,KAAK+3F,KAAKxC,EAAK6B,IAAQ,EAElC5C,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAKxC,EAAK8B,IAAQ,GACvBr3F,KAAK+3F,KAAKvC,EAAK4B,IAAQ,EACpC39B,EAAMA,EAAKz5D,KAAK+3F,KAAKvC,EAAK6B,IAAQ,EAClC79B,EAAMA,EAAKx5D,KAAK+3F,KAAK3C,EAAKmC,IAAQ,EAElC/C,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAK3C,EAAKoC,IAAQ,GACvBx3F,KAAK+3F,KAAK1C,EAAKkC,IAAQ,EACpC99B,EAAMA,EAAKz5D,KAAK+3F,KAAK1C,EAAKmC,IAAQ,EAClCh+B,EAAMA,EAAKx5D,KAAK+3F,KAAK9C,EAAKyC,IAAQ,EAElClD,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAK9C,EAAK0C,IAAQ,GACvB33F,KAAK+3F,KAAK7C,EAAKwC,IAAQ,EACpCj+B,EAAMA,EAAKz5D,KAAK+3F,KAAK7C,EAAKyC,IAAQ,EAKlC,IAAIe,IAASl6F,GAJbg7D,EAAMA,EAAKx5D,KAAK+3F,KAAKjD,EAAK8C,IAAQ,GAIX,KAAa,MAFpCpD,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAKjD,EAAK+C,IAAQ,GACvB73F,KAAK+3F,KAAKhD,EAAK6C,IAAQ,KAEW,IAAO,EACtDp5F,IAFAi7D,EAAMA,EAAKz5D,KAAK+3F,KAAKhD,EAAK8C,IAAQ,IAErBrD,IAAQ,IAAO,IAAMkE,KAAQ,IAAO,EACjDA,IAAO,SAEPl/B,EAAKx5D,KAAK+3F,KAAK5B,EAAKS,GAEpBpC,GADAA,EAAMx0F,KAAK+3F,KAAK5B,EAAKU,IACR72F,KAAK+3F,KAAK3B,EAAKQ,GAAQ,EACpCn9B,EAAKz5D,KAAK+3F,KAAK3B,EAAKS,GACpBr9B,EAAMA,EAAKx5D,KAAK+3F,KAAK/B,EAAKe,GAAQ,EAElCvC,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAK/B,EAAKgB,IAAQ,GACvBh3F,KAAK+3F,KAAK9B,EAAKc,GAAQ,EACpCt9B,EAAMA,EAAKz5D,KAAK+3F,KAAK9B,EAAKe,IAAQ,EAClCx9B,EAAMA,EAAKx5D,KAAK+3F,KAAKlC,EAAKqB,IAAQ,EAElC1C,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAKlC,EAAKsB,IAAQ,GACvBn3F,KAAK+3F,KAAKjC,EAAKoB,IAAQ,EACpCz9B,EAAMA,EAAKz5D,KAAK+3F,KAAKjC,EAAKqB,IAAQ,EAClC39B,EAAMA,EAAKx5D,KAAK+3F,KAAKrC,EAAK0B,IAAQ,EAElC5C,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAKrC,EAAK2B,IAAQ,GACvBr3F,KAAK+3F,KAAKpC,EAAKyB,IAAQ,EACpC39B,EAAMA,EAAKz5D,KAAK+3F,KAAKpC,EAAK0B,IAAQ,EAClC79B,EAAMA,EAAKx5D,KAAK+3F,KAAKxC,EAAKgC,IAAQ,EAElC/C,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAKxC,EAAKiC,IAAQ,GACvBx3F,KAAK+3F,KAAKvC,EAAK+B,IAAQ,EACpC99B,EAAMA,EAAKz5D,KAAK+3F,KAAKvC,EAAKgC,IAAQ,EAClCh+B,EAAMA,EAAKx5D,KAAK+3F,KAAK3C,EAAKsC,IAAQ,EAElClD,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAK3C,EAAKuC,IAAQ,GACvB33F,KAAK+3F,KAAK1C,EAAKqC,IAAQ,EACpCj+B,EAAMA,EAAKz5D,KAAK+3F,KAAK1C,EAAKsC,IAAQ,EAKlC,IAAIgB,IAASn6F,GAJbg7D,EAAMA,EAAKx5D,KAAK+3F,KAAK9C,EAAK2C,IAAQ,GAIX,KAAa,MAFpCpD,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAK9C,EAAK4C,IAAQ,GACvB73F,KAAK+3F,KAAK7C,EAAK0C,IAAQ,KAEW,IAAO,EACtDp5F,IAFAi7D,EAAMA,EAAKz5D,KAAK+3F,KAAK7C,EAAK2C,IAAQ,IAErBrD,IAAQ,IAAO,IAAMmE,KAAQ,IAAO,EACjDA,IAAO,SAEPn/B,EAAKx5D,KAAK+3F,KAAK5B,EAAKY,GAEpBvC,GADAA,EAAMx0F,KAAK+3F,KAAK5B,EAAKa,KACRh3F,KAAK+3F,KAAK3B,EAAKW,GAAQ,EACpCt9B,EAAKz5D,KAAK+3F,KAAK3B,EAAKY,IACpBx9B,EAAMA,EAAKx5D,KAAK+3F,KAAK/B,EAAKkB,IAAQ,EAElC1C,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAK/B,EAAKmB,IAAQ,GACvBn3F,KAAK+3F,KAAK9B,EAAKiB,IAAQ,EACpCz9B,EAAMA,EAAKz5D,KAAK+3F,KAAK9B,EAAKkB,IAAQ,EAClC39B,EAAMA,EAAKx5D,KAAK+3F,KAAKlC,EAAKuB,IAAQ,EAElC5C,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAKlC,EAAKwB,IAAQ,GACvBr3F,KAAK+3F,KAAKjC,EAAKsB,IAAQ,EACpC39B,EAAMA,EAAKz5D,KAAK+3F,KAAKjC,EAAKuB,IAAQ,EAClC79B,EAAMA,EAAKx5D,KAAK+3F,KAAKrC,EAAK6B,IAAQ,EAElC/C,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAKrC,EAAK8B,IAAQ,GACvBx3F,KAAK+3F,KAAKpC,EAAK4B,IAAQ,EACpC99B,EAAMA,EAAKz5D,KAAK+3F,KAAKpC,EAAK6B,IAAQ,EAClCh+B,EAAMA,EAAKx5D,KAAK+3F,KAAKxC,EAAKmC,IAAQ,EAElClD,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAKxC,EAAKoC,IAAQ,GACvB33F,KAAK+3F,KAAKvC,EAAKkC,IAAQ,EACpCj+B,EAAMA,EAAKz5D,KAAK+3F,KAAKvC,EAAKmC,IAAQ,EAKlC,IAAIiB,IAASp6F,GAJbg7D,EAAMA,EAAKx5D,KAAK+3F,KAAK3C,EAAKwC,IAAQ,GAIX,KAAa,MAFpCpD,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAK3C,EAAKyC,IAAQ,GACvB73F,KAAK+3F,KAAK1C,EAAKuC,IAAQ,KAEW,IAAO,EACtDp5F,IAFAi7D,EAAMA,EAAKz5D,KAAK+3F,KAAK1C,EAAKwC,IAAQ,IAErBrD,IAAQ,IAAO,IAAMoE,KAAQ,IAAO,EACjDA,IAAO,SAEPp/B,EAAKx5D,KAAK+3F,KAAK5B,EAAKe,IAEpB1C,GADAA,EAAMx0F,KAAK+3F,KAAK5B,EAAKgB,KACRn3F,KAAK+3F,KAAK3B,EAAKc,IAAQ,EACpCz9B,EAAKz5D,KAAK+3F,KAAK3B,EAAKe,IACpB39B,EAAMA,EAAKx5D,KAAK+3F,KAAK/B,EAAKoB,IAAQ,EAElC5C,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAK/B,EAAKqB,IAAQ,GACvBr3F,KAAK+3F,KAAK9B,EAAKmB,IAAQ,EACpC39B,EAAMA,EAAKz5D,KAAK+3F,KAAK9B,EAAKoB,IAAQ,EAClC79B,EAAMA,EAAKx5D,KAAK+3F,KAAKlC,EAAK0B,IAAQ,EAElC/C,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAKlC,EAAK2B,IAAQ,GACvBx3F,KAAK+3F,KAAKjC,EAAKyB,IAAQ,EACpC99B,EAAMA,EAAKz5D,KAAK+3F,KAAKjC,EAAK0B,IAAQ,EAClCh+B,EAAMA,EAAKx5D,KAAK+3F,KAAKrC,EAAKgC,IAAQ,EAElClD,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAKrC,EAAKiC,IAAQ,GACvB33F,KAAK+3F,KAAKpC,EAAK+B,IAAQ,EACpCj+B,EAAMA,EAAKz5D,KAAK+3F,KAAKpC,EAAKgC,IAAQ,EAKlC,IAAIkB,IAASr6F,GAJbg7D,EAAMA,EAAKx5D,KAAK+3F,KAAKxC,EAAKqC,IAAQ,GAIX,KAAa,MAFpCpD,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAKxC,EAAKsC,IAAQ,GACvB73F,KAAK+3F,KAAKvC,EAAKoC,IAAQ,KAEW,IAAO,EACtDp5F,IAFAi7D,EAAMA,EAAKz5D,KAAK+3F,KAAKvC,EAAKqC,IAAQ,IAErBrD,IAAQ,IAAO,IAAMqE,KAAQ,IAAO,EACjDA,IAAO,SAEPr/B,EAAKx5D,KAAK+3F,KAAK5B,EAAKiB,IAEpB5C,GADAA,EAAMx0F,KAAK+3F,KAAK5B,EAAKkB,KACRr3F,KAAK+3F,KAAK3B,EAAKgB,IAAQ,EACpC39B,EAAKz5D,KAAK+3F,KAAK3B,EAAKiB,IACpB79B,EAAMA,EAAKx5D,KAAK+3F,KAAK/B,EAAKuB,IAAQ,EAElC/C,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAK/B,EAAKwB,IAAQ,GACvBx3F,KAAK+3F,KAAK9B,EAAKsB,IAAQ,EACpC99B,EAAMA,EAAKz5D,KAAK+3F,KAAK9B,EAAKuB,IAAQ,EAClCh+B,EAAMA,EAAKx5D,KAAK+3F,KAAKlC,EAAK6B,IAAQ,EAElClD,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAKlC,EAAK8B,IAAQ,GACvB33F,KAAK+3F,KAAKjC,EAAK4B,IAAQ,EACpCj+B,EAAMA,EAAKz5D,KAAK+3F,KAAKjC,EAAK6B,IAAQ,EAKlC,IAAImB,IAASt6F,GAJbg7D,EAAMA,EAAKx5D,KAAK+3F,KAAKrC,EAAKkC,IAAQ,GAIX,KAAa,MAFpCpD,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAKrC,EAAKmC,IAAQ,GACvB73F,KAAK+3F,KAAKpC,EAAKiC,IAAQ,KAEW,IAAO,EACtDp5F,IAFAi7D,EAAMA,EAAKz5D,KAAK+3F,KAAKpC,EAAKkC,IAAQ,IAErBrD,IAAQ,IAAO,IAAMsE,KAAQ,IAAO,EACjDA,IAAO,SAEPt/B,EAAKx5D,KAAK+3F,KAAK5B,EAAKoB,IAEpB/C,GADAA,EAAMx0F,KAAK+3F,KAAK5B,EAAKqB,KACRx3F,KAAK+3F,KAAK3B,EAAKmB,IAAQ,EACpC99B,EAAKz5D,KAAK+3F,KAAK3B,EAAKoB,IACpBh+B,EAAMA,EAAKx5D,KAAK+3F,KAAK/B,EAAK0B,IAAQ,EAElClD,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAK/B,EAAK2B,IAAQ,GACvB33F,KAAK+3F,KAAK9B,EAAKyB,IAAQ,EACpCj+B,EAAMA,EAAKz5D,KAAK+3F,KAAK9B,EAAK0B,IAAQ,EAKlC,IAAIoB,IAASv6F,GAJbg7D,EAAMA,EAAKx5D,KAAK+3F,KAAKlC,EAAK+B,IAAQ,GAIX,KAAa,MAFpCpD,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAKlC,EAAKgC,IAAQ,GACvB73F,KAAK+3F,KAAKjC,EAAK8B,IAAQ,KAEW,IAAO,EACtDp5F,IAFAi7D,EAAMA,EAAKz5D,KAAK+3F,KAAKjC,EAAK+B,IAAQ,IAErBrD,IAAQ,IAAO,IAAMuE,KAAQ,IAAO,EACjDA,IAAO,SAEPv/B,EAAKx5D,KAAK+3F,KAAK5B,EAAKuB,IAEpBlD,GADAA,EAAMx0F,KAAK+3F,KAAK5B,EAAKwB,KACR33F,KAAK+3F,KAAK3B,EAAKsB,IAAQ,EACpCj+B,EAAKz5D,KAAK+3F,KAAK3B,EAAKuB,IAKpB,IAAIqB,IAASx6F,GAJbg7D,EAAMA,EAAKx5D,KAAK+3F,KAAK/B,EAAK4B,IAAQ,GAIX,KAAa,MAFpCpD,GADAA,EAAOA,EAAMx0F,KAAK+3F,KAAK/B,EAAK6B,IAAQ,GACvB73F,KAAK+3F,KAAK9B,EAAK2B,IAAQ,KAEW,IAAO,EACtDp5F,IAFAi7D,EAAMA,EAAKz5D,KAAK+3F,KAAK9B,EAAK4B,IAAQ,IAErBrD,IAAQ,IAAO,IAAMwE,KAAQ,IAAO,EACjDA,IAAO,SAMP,IAAIC,IAASz6F,GAJbg7D,EAAKx5D,KAAK+3F,KAAK5B,EAAKyB,KAIG,KAAa,MAFpCpD,GADAA,EAAMx0F,KAAK+3F,KAAK5B,EAAK0B,KACR73F,KAAK+3F,KAAK3B,EAAKwB,IAAQ,KAEW,IAAO,EA0BtD,OAzBAp5F,IAFAi7D,EAAKz5D,KAAK+3F,KAAK3B,EAAKyB,MAEPrD,IAAQ,IAAO,IAAMyE,KAAQ,IAAO,EACjDA,IAAO,SACPvkG,EAAE,GAAKojG,GACPpjG,EAAE,GAAKsjG,GACPtjG,EAAE,GAAKujG,GACPvjG,EAAE,GAAKwjG,GACPxjG,EAAE,GAAKyjG,GACPzjG,EAAE,GAAK0jG,GACP1jG,EAAE,GAAK2jG,GACP3jG,EAAE,GAAK4jG,GACP5jG,EAAE,GAAK6jG,GACP7jG,EAAE,GAAK8jG,GACP9jG,EAAE,IAAM+jG,GACR/jG,EAAE,IAAMgkG,GACRhkG,EAAE,IAAMikG,GACRjkG,EAAE,IAAMkkG,GACRlkG,EAAE,IAAMmkG,GACRnkG,EAAE,IAAMokG,GACRpkG,EAAE,IAAMqkG,GACRrkG,EAAE,IAAMskG,GACRtkG,EAAE,IAAMukG,GACE,IAANz6F,IACF9J,EAAE,IAAM8J,EACR6L,EAAInS,UAECmS,CACT,EAgDA,SAAS6uF,EAAYlnG,EAAMo0D,EAAK/7C,GAE9B,OADW,IAAI8uF,GACHC,KAAKpnG,EAAMo0D,EAAK/7C,EAC9B,CAqBA,SAAS8uF,EAAM96F,EAAGnH,GAChBjF,KAAKoM,EAAIA,EACTpM,KAAKiF,EAAIA,CACX,CAxEK8I,KAAK+3F,OACRxD,EAAcjD,GAiDhB5B,EAAGh8F,UAAU2lG,MAAQ,SAAgBjzC,EAAK/7C,GACxC,IAAIy0B,EACA6Y,EAAM1lD,KAAKiG,OAASkuD,EAAIluD,OAW5B,OATE4mC,EADkB,KAAhB7sC,KAAKiG,QAAgC,KAAfkuD,EAAIluD,OACtBq8F,EAAYtiG,KAAMm0D,EAAK/7C,GACpBstC,EAAM,GACT25C,EAAWr/F,KAAMm0D,EAAK/7C,GACnBstC,EAAM,KArDnB,SAAmB3lD,EAAMo0D,EAAK/7C,GAC5BA,EAAIwlF,SAAWzpC,EAAIypC,SAAW79F,EAAK69F,SACnCxlF,EAAInS,OAASlG,EAAKkG,OAASkuD,EAAIluD,OAI/B,IAFA,IAAI+iE,EAAQ,EACRq+B,EAAU,EACL1kG,EAAI,EAAGA,EAAIyV,EAAInS,OAAS,EAAGtD,IAAK,CAGvC,IAAI28F,EAAS+H,EACbA,EAAU,EAGV,IAFA,IAAI9H,EAAgB,SAARv2B,EACRw2B,EAAOzxF,KAAKy+B,IAAI7pC,EAAGwxD,EAAIluD,OAAS,GAC3BgkD,EAAIl8C,KAAKW,IAAI,EAAG/L,EAAI5C,EAAKkG,OAAS,GAAIgkD,GAAKu1C,EAAMv1C,IAAK,CAC7D,IAAIj/C,EAAIrI,EAAIsnD,EAGR5hB,GAFoB,EAAhBtoC,EAAKylB,MAAMxa,KACI,EAAfmpD,EAAI3uC,MAAMykC,IAGdsd,EAAS,SAAJl/B,EAGTk3D,EAAa,UADbh4B,EAAMA,EAAKg4B,EAAS,GAIpB8H,IAFA/H,GAHAA,EAAUA,GAAWj3D,EAAI,SAAa,GAAM,IAGxBk/B,IAAO,IAAO,KAEZ,GACtB+3B,GAAU,QACZ,CACAlnF,EAAIoN,MAAM7iB,GAAK48F,EACfv2B,EAAQs2B,EACRA,EAAS+H,CACX,CAOA,OANc,IAAVr+B,EACF5wD,EAAIoN,MAAM7iB,GAAKqmE,EAEf5wD,EAAInS,SAGCmS,EAAIk7E,OACb,CAeUgU,CAAStnG,KAAMm0D,EAAK/7C,GAEpB6uF,EAAWjnG,KAAMm0D,EAAK/7C,GAGvBy0B,CACT,EAUAq6D,EAAKzlG,UAAU8lG,QAAU,SAAkBC,GAGzC,IAFA,IAAItiG,EAAI,IAAI+C,MAAMu/F,GACdj8F,EAAIkyF,EAAGh8F,UAAU4+F,WAAWmH,GAAK,EAC5Bx8F,EAAI,EAAGA,EAAIw8F,EAAGx8F,IACrB9F,EAAE8F,GAAKhL,KAAKynG,OAAOz8F,EAAGO,EAAGi8F,GAG3B,OAAOtiG,CACT,EAGAgiG,EAAKzlG,UAAUgmG,OAAS,SAAiBr7F,EAAGb,EAAGi8F,GAC7C,GAAU,IAANp7F,GAAWA,IAAMo7F,EAAI,EAAG,OAAOp7F,EAGnC,IADA,IAAIs7F,EAAK,EACA18F,EAAI,EAAGA,EAAIO,EAAGP,IACrB08F,IAAW,EAAJt7F,IAAWb,EAAIP,EAAI,EAC1BoB,IAAM,EAGR,OAAOs7F,CACT,EAIAR,EAAKzlG,UAAUkmG,QAAU,SAAkBC,EAAKC,EAAKC,EAAKC,EAAMC,EAAMR,GACpE,IAAK,IAAIx8F,EAAI,EAAGA,EAAIw8F,EAAGx8F,IACrB+8F,EAAK/8F,GAAK68F,EAAID,EAAI58F,IAClBg9F,EAAKh9F,GAAK88F,EAAIF,EAAI58F,GAEtB,EAEAk8F,EAAKzlG,UAAUwmG,UAAY,SAAoBJ,EAAKC,EAAKC,EAAMC,EAAMR,EAAGI,GACtE5nG,KAAK2nG,QAAQC,EAAKC,EAAKC,EAAKC,EAAMC,EAAMR,GAExC,IAAK,IAAIz8F,EAAI,EAAGA,EAAIy8F,EAAGz8F,IAAM,EAM3B,IALA,IAAIQ,EAAIR,GAAK,EAETm9F,EAAQn6F,KAAKo6F,IAAI,EAAIp6F,KAAKq6F,GAAK78F,GAC/B88F,EAAQt6F,KAAKu6F,IAAI,EAAIv6F,KAAKq6F,GAAK78F,GAE1BlI,EAAI,EAAGA,EAAImkG,EAAGnkG,GAAKkI,EAI1B,IAHA,IAAIg9F,EAASL,EACTM,EAASH,EAEJp+C,EAAI,EAAGA,EAAIl/C,EAAGk/C,IAAK,CAC1B,IAAIiyC,EAAK6L,EAAK1kG,EAAI4mD,GACdw+C,EAAKT,EAAK3kG,EAAI4mD,GAEdy+C,EAAKX,EAAK1kG,EAAI4mD,EAAIl/C,GAClB49F,EAAKX,EAAK3kG,EAAI4mD,EAAIl/C,GAElB02D,EAAK8mC,EAASG,EAAKF,EAASG,EAEhCA,EAAKJ,EAASI,EAAKH,EAASE,EAC5BA,EAAKjnC,EAELsmC,EAAK1kG,EAAI4mD,GAAKiyC,EAAKwM,EACnBV,EAAK3kG,EAAI4mD,GAAKw+C,EAAKE,EAEnBZ,EAAK1kG,EAAI4mD,EAAIl/C,GAAKmxF,EAAKwM,EACvBV,EAAK3kG,EAAI4mD,EAAIl/C,GAAK09F,EAAKE,EAGnB1+C,IAAM1+C,IACRk2D,EAAKymC,EAAQK,EAASF,EAAQG,EAE9BA,EAASN,EAAQM,EAASH,EAAQE,EAClCA,EAAS9mC,EAEb,CAGN,EAEAylC,EAAKzlG,UAAUmnG,YAAc,SAAsBhjG,EAAGlD,GACpD,IAAI8kG,EAAqB,EAAjBz5F,KAAKW,IAAIhM,EAAGkD,GAChBijG,EAAU,EAAJrB,EACNx8F,EAAI,EACR,IAAKw8F,EAAIA,EAAI,EAAI,EAAGA,EAAGA,KAAU,EAC/Bx8F,IAGF,OAAO,GAAKA,EAAI,EAAI69F,CACtB,EAEA3B,EAAKzlG,UAAUqnG,UAAY,SAAoBjB,EAAKC,EAAKN,GACvD,KAAIA,GAAK,GAET,IAAK,IAAIx8F,EAAI,EAAGA,EAAIw8F,EAAI,EAAGx8F,IAAK,CAC9B,IAAI9F,EAAI2iG,EAAI78F,GAEZ68F,EAAI78F,GAAK68F,EAAIL,EAAIx8F,EAAI,GACrB68F,EAAIL,EAAIx8F,EAAI,GAAK9F,EAEjBA,EAAI4iG,EAAI98F,GAER88F,EAAI98F,IAAM88F,EAAIN,EAAIx8F,EAAI,GACtB88F,EAAIN,EAAIx8F,EAAI,IAAM9F,CACpB,CACF,EAEAgiG,EAAKzlG,UAAUsnG,aAAe,SAAuBC,EAAIxB,GAEvD,IADA,IAAIx+B,EAAQ,EACHh+D,EAAI,EAAGA,EAAIw8F,EAAI,EAAGx8F,IAAK,CAC9B,IAAIyzF,EAAoC,KAAhC1wF,KAAKmoB,MAAM8yE,EAAG,EAAIh+F,EAAI,GAAKw8F,GACjCz5F,KAAKmoB,MAAM8yE,EAAG,EAAIh+F,GAAKw8F,GACvBx+B,EAEFggC,EAAGh+F,GAAS,SAAJyzF,EAGNz1B,EADEy1B,EAAI,SACE,EAEAA,EAAI,SAAY,CAE5B,CAEA,OAAOuK,CACT,EAEA9B,EAAKzlG,UAAUwnG,WAAa,SAAqBD,EAAItjD,EAAKmiD,EAAKL,GAE7D,IADA,IAAIx+B,EAAQ,EACHh+D,EAAI,EAAGA,EAAI06C,EAAK16C,IACvBg+D,GAAyB,EAARggC,EAAGh+F,GAEpB68F,EAAI,EAAI78F,GAAa,KAARg+D,EAAgBA,KAAkB,GAC/C6+B,EAAI,EAAI78F,EAAI,GAAa,KAARg+D,EAAgBA,KAAkB,GAIrD,IAAKh+D,EAAI,EAAI06C,EAAK16C,EAAIw8F,IAAKx8F,EACzB68F,EAAI78F,GAAK,EAGX65C,EAAiB,IAAVmkB,GACPnkB,EAA6B,KAAb,KAARmkB,GACV,EAEAk+B,EAAKzlG,UAAUynG,KAAO,SAAe1B,GAEnC,IADA,IAAI2B,EAAK,IAAIlhG,MAAMu/F,GACVx8F,EAAI,EAAGA,EAAIw8F,EAAGx8F,IACrBm+F,EAAGn+F,GAAK,EAGV,OAAOm+F,CACT,EAEAjC,EAAKzlG,UAAU0lG,KAAO,SAAe/6F,EAAGnH,EAAGmT,GACzC,IAAIovF,EAAI,EAAIxnG,KAAK4oG,YAAYx8F,EAAEnG,OAAQhB,EAAEgB,QAErC2hG,EAAM5nG,KAAKunG,QAAQC,GAEnBpiG,EAAIpF,KAAKkpG,KAAK1B,GAEdK,EAAM,IAAI5/F,MAAMu/F,GAChB4B,EAAO,IAAInhG,MAAMu/F,GACjB6B,EAAO,IAAIphG,MAAMu/F,GAEjB8B,EAAO,IAAIrhG,MAAMu/F,GACjB+B,EAAQ,IAAIthG,MAAMu/F,GAClBgC,EAAQ,IAAIvhG,MAAMu/F,GAElBiC,EAAOrxF,EAAIoN,MACfikF,EAAKxjG,OAASuhG,EAEdxnG,KAAKipG,WAAW78F,EAAEoZ,MAAOpZ,EAAEnG,OAAQ4hG,EAAKL,GACxCxnG,KAAKipG,WAAWhkG,EAAEugB,MAAOvgB,EAAEgB,OAAQqjG,EAAM9B,GAEzCxnG,KAAKioG,UAAUJ,EAAKziG,EAAGgkG,EAAMC,EAAM7B,EAAGI,GACtC5nG,KAAKioG,UAAUqB,EAAMlkG,EAAGmkG,EAAOC,EAAOhC,EAAGI,GAEzC,IAAK,IAAI58F,EAAI,EAAGA,EAAIw8F,EAAGx8F,IAAK,CAC1B,IAAIy2D,EAAK2nC,EAAKp+F,GAAKu+F,EAAMv+F,GAAKq+F,EAAKr+F,GAAKw+F,EAAMx+F,GAC9Cq+F,EAAKr+F,GAAKo+F,EAAKp+F,GAAKw+F,EAAMx+F,GAAKq+F,EAAKr+F,GAAKu+F,EAAMv+F,GAC/Co+F,EAAKp+F,GAAKy2D,CACZ,CASA,OAPAzhE,KAAK8oG,UAAUM,EAAMC,EAAM7B,GAC3BxnG,KAAKioG,UAAUmB,EAAMC,EAAMI,EAAMrkG,EAAGoiG,EAAGI,GACvC5nG,KAAK8oG,UAAUW,EAAMrkG,EAAGoiG,GACxBxnG,KAAK+oG,aAAaU,EAAMjC,GAExBpvF,EAAIwlF,SAAWxxF,EAAEwxF,SAAW34F,EAAE24F,SAC9BxlF,EAAInS,OAASmG,EAAEnG,OAAShB,EAAEgB,OACnBmS,EAAIk7E,OACb,EAGAmK,EAAGh8F,UAAUwI,IAAM,SAAckqD,GAC/B,IAAI/7C,EAAM,IAAIqlF,EAAG,MAEjB,OADArlF,EAAIoN,MAAQ,IAAIvd,MAAMjI,KAAKiG,OAASkuD,EAAIluD,QACjCjG,KAAKonG,MAAMjzC,EAAK/7C,EACzB,EAGAqlF,EAAGh8F,UAAUioG,KAAO,SAAev1C,GACjC,IAAI/7C,EAAM,IAAIqlF,EAAG,MAEjB,OADArlF,EAAIoN,MAAQ,IAAIvd,MAAMjI,KAAKiG,OAASkuD,EAAIluD,QACjCghG,EAAWjnG,KAAMm0D,EAAK/7C,EAC/B,EAGAqlF,EAAGh8F,UAAUqkG,KAAO,SAAe3xC,GACjC,OAAOn0D,KAAK45B,QAAQwtE,MAAMjzC,EAAKn0D,KACjC,EAEAy9F,EAAGh8F,UAAUm9F,MAAQ,SAAgBzqC,GACnCtP,EAAsB,iBAARsP,GACdtP,EAAOsP,EAAM,UAIb,IADA,IAAI6U,EAAQ,EACHh+D,EAAI,EAAGA,EAAIhL,KAAKiG,OAAQ+E,IAAK,CACpC,IAAIyzF,GAAqB,EAAhBz+F,KAAKwlB,MAAMxa,IAAUmpD,EAC1BoT,GAAU,SAAJk3B,IAA0B,SAARz1B,GAC5BA,IAAU,GACVA,GAAUy1B,EAAI,SAAa,EAE3Bz1B,GAASzB,IAAO,GAChBvnE,KAAKwlB,MAAMxa,GAAU,SAALu8D,CAClB,CAOA,OALc,IAAVyB,IACFhpE,KAAKwlB,MAAMxa,GAAKg+D,EAChBhpE,KAAKiG,UAGAjG,IACT,EAEAy9F,EAAGh8F,UAAUkoG,KAAO,SAAex1C,GACjC,OAAOn0D,KAAK45B,QAAQglE,MAAMzqC,EAC5B,EAGAspC,EAAGh8F,UAAUmoG,IAAM,WACjB,OAAO5pG,KAAKiK,IAAIjK,KAClB,EAGAy9F,EAAGh8F,UAAUooG,KAAO,WAClB,OAAO7pG,KAAK8lG,KAAK9lG,KAAK45B,QACxB,EAGA6jE,EAAGh8F,UAAUuM,IAAM,SAAcmmD,GAC/B,IAAIsqC,EAxxCN,SAAqBtqC,GAGnB,IAFA,IAAIsqC,EAAI,IAAIx2F,MAAMksD,EAAIosC,aAEb2B,EAAM,EAAGA,EAAMzD,EAAEx4F,OAAQi8F,IAAO,CACvC,IAAIt9B,EAAOs9B,EAAM,GAAM,EACnBC,EAAOD,EAAM,GAEjBzD,EAAEyD,IAAQ/tC,EAAI3uC,MAAMo/C,GAAQ,GAAKu9B,KAAWA,CAC9C,CAEA,OAAO1D,CACT,CA6wCUqL,CAAW31C,GACnB,GAAiB,IAAbsqC,EAAEx4F,OAAc,OAAO,IAAIw3F,EAAG,GAIlC,IADA,IAAI5wD,EAAM7sC,KACDgL,EAAI,EAAGA,EAAIyzF,EAAEx4F,QACP,IAATw4F,EAAEzzF,GADsBA,IAAK6hC,EAAMA,EAAI+8D,OAI7C,KAAM5+F,EAAIyzF,EAAEx4F,OACV,IAAK,IAAIw3D,EAAI5wB,EAAI+8D,MAAO5+F,EAAIyzF,EAAEx4F,OAAQ+E,IAAKyyD,EAAIA,EAAEmsC,MAClC,IAATnL,EAAEzzF,KAEN6hC,EAAMA,EAAI5iC,IAAIwzD,IAIlB,OAAO5wB,CACT,EAGA4wD,EAAGh8F,UAAUsoG,OAAS,SAAiBl8F,GACrCg3C,EAAuB,iBAATh3C,GAAqBA,GAAQ,GAC3C,IAGI7C,EAHAq9B,EAAIx6B,EAAO,GACX9C,GAAK8C,EAAOw6B,GAAK,GACjB2hE,EAAa,WAAe,GAAK3hE,GAAQ,GAAKA,EAGlD,GAAU,IAANA,EAAS,CACX,IAAI2gC,EAAQ,EAEZ,IAAKh+D,EAAI,EAAGA,EAAIhL,KAAKiG,OAAQ+E,IAAK,CAChC,IAAIi/F,EAAWjqG,KAAKwlB,MAAMxa,GAAKg/F,EAC3Bz9F,GAAsB,EAAhBvM,KAAKwlB,MAAMxa,IAAUi/F,GAAa5hE,EAC5CroC,KAAKwlB,MAAMxa,GAAKuB,EAAIy8D,EACpBA,EAAQihC,IAAc,GAAK5hE,CAC7B,CAEI2gC,IACFhpE,KAAKwlB,MAAMxa,GAAKg+D,EAChBhpE,KAAKiG,SAET,CAEA,GAAU,IAAN8E,EAAS,CACX,IAAKC,EAAIhL,KAAKiG,OAAS,EAAG+E,GAAK,EAAGA,IAChChL,KAAKwlB,MAAMxa,EAAID,GAAK/K,KAAKwlB,MAAMxa,GAGjC,IAAKA,EAAI,EAAGA,EAAID,EAAGC,IACjBhL,KAAKwlB,MAAMxa,GAAK,EAGlBhL,KAAKiG,QAAU8E,CACjB,CAEA,OAAO/K,KAAKszF,OACd,EAEAmK,EAAGh8F,UAAUyoG,MAAQ,SAAgBr8F,GAGnC,OADAg3C,EAAyB,IAAlB7kD,KAAK49F,UACL59F,KAAK+pG,OAAOl8F,EACrB,EAKA4vF,EAAGh8F,UAAU0+F,OAAS,SAAiBtyF,EAAMs8F,EAAMC,GAEjD,IAAI3jD,EADJ5B,EAAuB,iBAATh3C,GAAqBA,GAAQ,GAGzC44C,EADE0jD,GACGA,EAAQA,EAAO,IAAO,GAEvB,EAGN,IAAI9hE,EAAIx6B,EAAO,GACX9C,EAAIgD,KAAKy+B,KAAK3+B,EAAOw6B,GAAK,GAAIroC,KAAKiG,QACnCuxD,EAAO,SAAc,WAAcnvB,GAAMA,EACzCgiE,EAAcD,EAMlB,GAJA3jD,GAAK17C,EACL07C,EAAI14C,KAAKW,IAAI,EAAG+3C,GAGZ4jD,EAAa,CACf,IAAK,IAAIr/F,EAAI,EAAGA,EAAID,EAAGC,IACrBq/F,EAAY7kF,MAAMxa,GAAKhL,KAAKwlB,MAAMxa,GAEpCq/F,EAAYpkG,OAAS8E,CACvB,CAEA,GAAU,IAANA,QAEG,GAAI/K,KAAKiG,OAAS8E,EAEvB,IADA/K,KAAKiG,QAAU8E,EACVC,EAAI,EAAGA,EAAIhL,KAAKiG,OAAQ+E,IAC3BhL,KAAKwlB,MAAMxa,GAAKhL,KAAKwlB,MAAMxa,EAAID,QAGjC/K,KAAKwlB,MAAM,GAAK,EAChBxlB,KAAKiG,OAAS,EAGhB,IAAI+iE,EAAQ,EACZ,IAAKh+D,EAAIhL,KAAKiG,OAAS,EAAG+E,GAAK,IAAgB,IAAVg+D,GAAeh+D,GAAKy7C,GAAIz7C,IAAK,CAChE,IAAIy/C,EAAuB,EAAhBzqD,KAAKwlB,MAAMxa,GACtBhL,KAAKwlB,MAAMxa,GAAMg+D,GAAU,GAAK3gC,EAAOoiB,IAASpiB,EAChD2gC,EAAQve,EAAO+M,CACjB,CAYA,OATI6yC,GAAyB,IAAVrhC,IACjBqhC,EAAY7kF,MAAM6kF,EAAYpkG,UAAY+iE,GAGxB,IAAhBhpE,KAAKiG,SACPjG,KAAKwlB,MAAM,GAAK,EAChBxlB,KAAKiG,OAAS,GAGTjG,KAAKszF,OACd,EAEAmK,EAAGh8F,UAAU6oG,MAAQ,SAAgBz8F,EAAMs8F,EAAMC,GAG/C,OADAvlD,EAAyB,IAAlB7kD,KAAK49F,UACL59F,KAAKmgG,OAAOtyF,EAAMs8F,EAAMC,EACjC,EAGA3M,EAAGh8F,UAAU8oG,KAAO,SAAe18F,GACjC,OAAO7N,KAAK45B,QAAQswE,MAAMr8F,EAC5B,EAEA4vF,EAAGh8F,UAAU+oG,MAAQ,SAAgB38F,GACnC,OAAO7N,KAAK45B,QAAQmwE,OAAOl8F,EAC7B,EAGA4vF,EAAGh8F,UAAUgpG,KAAO,SAAe58F,GACjC,OAAO7N,KAAK45B,QAAQ0wE,MAAMz8F,EAC5B,EAEA4vF,EAAGh8F,UAAUipG,MAAQ,SAAgB78F,GACnC,OAAO7N,KAAK45B,QAAQumE,OAAOtyF,EAC7B,EAGA4vF,EAAGh8F,UAAUq/F,MAAQ,SAAgBoB,GACnCr9C,EAAsB,iBAARq9C,GAAoBA,GAAO,GACzC,IAAI75D,EAAI65D,EAAM,GACVn3F,GAAKm3F,EAAM75D,GAAK,GAChBo1B,EAAI,GAAKp1B,EAGb,QAAIroC,KAAKiG,QAAU8E,KAGX/K,KAAKwlB,MAAMza,GAEL0yD,GAChB,EAGAggC,EAAGh8F,UAAUkpG,OAAS,SAAiB98F,GACrCg3C,EAAuB,iBAATh3C,GAAqBA,GAAQ,GAC3C,IAAIw6B,EAAIx6B,EAAO,GACX9C,GAAK8C,EAAOw6B,GAAK,GAIrB,GAFAwc,EAAyB,IAAlB7kD,KAAK49F,SAAgB,2CAExB59F,KAAKiG,QAAU8E,EACjB,OAAO/K,KAQT,GALU,IAANqoC,GACFt9B,IAEF/K,KAAKiG,OAAS8H,KAAKy+B,IAAIzhC,EAAG/K,KAAKiG,QAErB,IAANoiC,EAAS,CACX,IAAImvB,EAAO,SAAc,WAAcnvB,GAAMA,EAC7CroC,KAAKwlB,MAAMxlB,KAAKiG,OAAS,IAAMuxD,CACjC,CAEA,OAAOx3D,KAAKszF,OACd,EAGAmK,EAAGh8F,UAAUmpG,MAAQ,SAAgB/8F,GACnC,OAAO7N,KAAK45B,QAAQ+wE,OAAO98F,EAC7B,EAGA4vF,EAAGh8F,UAAUm/F,MAAQ,SAAgBzsC,GAGnC,OAFAtP,EAAsB,iBAARsP,GACdtP,EAAOsP,EAAM,UACTA,EAAM,EAAUn0D,KAAK6qG,OAAO12C,GAGV,IAAlBn0D,KAAK49F,SACa,IAAhB59F,KAAKiG,SAAiC,EAAhBjG,KAAKwlB,MAAM,IAAU2uC,GAC7Cn0D,KAAKwlB,MAAM,GAAK2uC,GAAuB,EAAhBn0D,KAAKwlB,MAAM,IAClCxlB,KAAK49F,SAAW,EACT59F,OAGTA,KAAK49F,SAAW,EAChB59F,KAAK6qG,MAAM12C,GACXn0D,KAAK49F,SAAW,EACT59F,MAIFA,KAAK6+F,OAAO1qC,EACrB,EAEAspC,EAAGh8F,UAAUo9F,OAAS,SAAiB1qC,GACrCn0D,KAAKwlB,MAAM,IAAM2uC,EAGjB,IAAK,IAAInpD,EAAI,EAAGA,EAAIhL,KAAKiG,QAAUjG,KAAKwlB,MAAMxa,IAAM,SAAWA,IAC7DhL,KAAKwlB,MAAMxa,IAAM,SACbA,IAAMhL,KAAKiG,OAAS,EACtBjG,KAAKwlB,MAAMxa,EAAI,GAAK,EAEpBhL,KAAKwlB,MAAMxa,EAAI,KAKnB,OAFAhL,KAAKiG,OAAS8H,KAAKW,IAAI1O,KAAKiG,OAAQ+E,EAAI,GAEjChL,IACT,EAGAy9F,EAAGh8F,UAAUopG,MAAQ,SAAgB12C,GAGnC,GAFAtP,EAAsB,iBAARsP,GACdtP,EAAOsP,EAAM,UACTA,EAAM,EAAG,OAAOn0D,KAAK4gG,OAAOzsC,GAEhC,GAAsB,IAAlBn0D,KAAK49F,SAIP,OAHA59F,KAAK49F,SAAW,EAChB59F,KAAK4gG,MAAMzsC,GACXn0D,KAAK49F,SAAW,EACT59F,KAKT,GAFAA,KAAKwlB,MAAM,IAAM2uC,EAEG,IAAhBn0D,KAAKiG,QAAgBjG,KAAKwlB,MAAM,GAAK,EACvCxlB,KAAKwlB,MAAM,IAAMxlB,KAAKwlB,MAAM,GAC5BxlB,KAAK49F,SAAW,OAGhB,IAAK,IAAI5yF,EAAI,EAAGA,EAAIhL,KAAKiG,QAAUjG,KAAKwlB,MAAMxa,GAAK,EAAGA,IACpDhL,KAAKwlB,MAAMxa,IAAM,SACjBhL,KAAKwlB,MAAMxa,EAAI,IAAM,EAIzB,OAAOhL,KAAKszF,OACd,EAEAmK,EAAGh8F,UAAUqpG,KAAO,SAAe32C,GACjC,OAAOn0D,KAAK45B,QAAQgnE,MAAMzsC,EAC5B,EAEAspC,EAAGh8F,UAAUspG,KAAO,SAAe52C,GACjC,OAAOn0D,KAAK45B,QAAQixE,MAAM12C,EAC5B,EAEAspC,EAAGh8F,UAAUupG,KAAO,WAGlB,OAFAhrG,KAAK49F,SAAW,EAET59F,IACT,EAEAy9F,EAAGh8F,UAAU0/B,IAAM,WACjB,OAAOnhC,KAAK45B,QAAQoxE,MACtB,EAEAvN,EAAGh8F,UAAUwpG,aAAe,SAAuB92C,EAAKlqD,EAAKygD,GAC3D,IACI1/C,EAIAyzF,EALA/4C,EAAMyO,EAAIluD,OAASykD,EAGvB1qD,KAAK++F,QAAQr5C,GAGb,IAAIsjB,EAAQ,EACZ,IAAKh+D,EAAI,EAAGA,EAAImpD,EAAIluD,OAAQ+E,IAAK,CAC/ByzF,GAA6B,EAAxBz+F,KAAKwlB,MAAMxa,EAAI0/C,IAAcse,EAClC,IAAIm1B,GAAwB,EAAfhqC,EAAI3uC,MAAMxa,IAAUf,EAEjC++D,IADAy1B,GAAa,SAARN,IACS,KAAQA,EAAQ,SAAa,GAC3Cn+F,KAAKwlB,MAAMxa,EAAI0/C,GAAa,SAAJ+zC,CAC1B,CACA,KAAOzzF,EAAIhL,KAAKiG,OAASykD,EAAO1/C,IAE9Bg+D,GADAy1B,GAA6B,EAAxBz+F,KAAKwlB,MAAMxa,EAAI0/C,IAAcse,IACrB,GACbhpE,KAAKwlB,MAAMxa,EAAI0/C,GAAa,SAAJ+zC,EAG1B,GAAc,IAAVz1B,EAAa,OAAOhpE,KAAKszF,QAK7B,IAFAzuC,GAAkB,IAAXmkB,GACPA,EAAQ,EACHh+D,EAAI,EAAGA,EAAIhL,KAAKiG,OAAQ+E,IAE3Bg+D,GADAy1B,IAAsB,EAAhBz+F,KAAKwlB,MAAMxa,IAAUg+D,IACd,GACbhpE,KAAKwlB,MAAMxa,GAAS,SAAJyzF,EAIlB,OAFAz+F,KAAK49F,SAAW,EAET59F,KAAKszF,OACd,EAEAmK,EAAGh8F,UAAUypG,SAAW,SAAmB/2C,EAAK15C,GAC9C,IAAIiwC,GAAQ1qD,KAAKiG,OAASkuD,EAAIluD,QAE1BmH,EAAIpN,KAAK45B,QACT9xB,EAAIqsD,EAGJg3C,EAA8B,EAAxBrjG,EAAE0d,MAAM1d,EAAE7B,OAAS,GAGf,IADdykD,EAAQ,GADM1qD,KAAKqgG,WAAW8K,MAG5BrjG,EAAIA,EAAE0iG,MAAM9/C,GACZt9C,EAAE28F,OAAOr/C,GACTygD,EAA8B,EAAxBrjG,EAAE0d,MAAM1d,EAAE7B,OAAS,IAI3B,IACIw3D,EADA/6D,EAAI0K,EAAEnH,OAAS6B,EAAE7B,OAGrB,GAAa,QAATwU,EAAgB,EAClBgjD,EAAI,IAAIggC,EAAG,OACTx3F,OAASvD,EAAI,EACf+6D,EAAEj4C,MAAQ,IAAIvd,MAAMw1D,EAAEx3D,QACtB,IAAK,IAAI+E,EAAI,EAAGA,EAAIyyD,EAAEx3D,OAAQ+E,IAC5ByyD,EAAEj4C,MAAMxa,GAAK,CAEjB,CAEA,IAAI6mD,EAAOzkD,EAAEwsB,QAAQqxE,aAAanjG,EAAG,EAAGpF,GAClB,IAAlBmvD,EAAK+rC,WACPxwF,EAAIykD,EACA4L,IACFA,EAAEj4C,MAAM9iB,GAAK,IAIjB,IAAK,IAAIunD,EAAIvnD,EAAI,EAAGunD,GAAK,EAAGA,IAAK,CAC/B,IAAImhD,EAAmC,UAAL,EAAxBh+F,EAAEoY,MAAM1d,EAAE7B,OAASgkD,KACE,EAA5B78C,EAAEoY,MAAM1d,EAAE7B,OAASgkD,EAAI,IAO1B,IAHAmhD,EAAKr9F,KAAKy+B,IAAK4+D,EAAKD,EAAO,EAAG,UAE9B/9F,EAAE69F,aAAanjG,EAAGsjG,EAAInhD,GACA,IAAf78C,EAAEwwF,UACPwN,IACAh+F,EAAEwwF,SAAW,EACbxwF,EAAE69F,aAAanjG,EAAG,EAAGmiD,GAChB78C,EAAE4hE,WACL5hE,EAAEwwF,UAAY,GAGdngC,IACFA,EAAEj4C,MAAMykC,GAAKmhD,EAEjB,CAWA,OAVI3tC,GACFA,EAAE61B,QAEJlmF,EAAEkmF,QAGW,QAAT74E,GAA4B,IAAViwC,GACpBt9C,EAAE+yF,OAAOz1C,GAGJ,CACLxgD,IAAKuzD,GAAK,KACVn9D,IAAK8M,EAET,EAMAqwF,EAAGh8F,UAAU4pG,OAAS,SAAiBl3C,EAAK15C,EAAM6wF,GAGhD,OAFAzmD,GAAQsP,EAAI6a,UAERhvE,KAAKgvE,SACA,CACL9kE,IAAK,IAAIuzF,EAAG,GACZn9F,IAAK,IAAIm9F,EAAG,IAKM,IAAlBz9F,KAAK49F,UAAmC,IAAjBzpC,EAAIypC,UAC7B/wD,EAAM7sC,KAAKkhG,MAAMmK,OAAOl3C,EAAK15C,GAEhB,QAATA,IACFvQ,EAAM2iC,EAAI3iC,IAAIg3F,OAGH,QAATzmF,IACFna,EAAMusC,EAAIvsC,IAAI4gG,MACVoK,GAA6B,IAAjBhrG,EAAIs9F,UAClBt9F,EAAI8hG,KAAKjuC,IAIN,CACLjqD,IAAKA,EACL5J,IAAKA,IAIa,IAAlBN,KAAK49F,UAAmC,IAAjBzpC,EAAIypC,UAC7B/wD,EAAM7sC,KAAKqrG,OAAOl3C,EAAI+sC,MAAOzmF,GAEhB,QAATA,IACFvQ,EAAM2iC,EAAI3iC,IAAIg3F,OAGT,CACLh3F,IAAKA,EACL5J,IAAKusC,EAAIvsC,MAI0B,IAAlCN,KAAK49F,SAAWzpC,EAAIypC,WACvB/wD,EAAM7sC,KAAKkhG,MAAMmK,OAAOl3C,EAAI+sC,MAAOzmF,GAEtB,QAATA,IACFna,EAAMusC,EAAIvsC,IAAI4gG,MACVoK,GAA6B,IAAjBhrG,EAAIs9F,UAClBt9F,EAAI+hG,KAAKluC,IAIN,CACLjqD,IAAK2iC,EAAI3iC,IACT5J,IAAKA,IAOL6zD,EAAIluD,OAASjG,KAAKiG,QAAUjG,KAAKo+F,IAAIjqC,GAAO,EACvC,CACLjqD,IAAK,IAAIuzF,EAAG,GACZn9F,IAAKN,MAKU,IAAfm0D,EAAIluD,OACO,QAATwU,EACK,CACLvQ,IAAKlK,KAAKurG,KAAKp3C,EAAI3uC,MAAM,IACzBllB,IAAK,MAII,QAATma,EACK,CACLvQ,IAAK,KACL5J,IAAK,IAAIm9F,EAAGz9F,KAAK2/F,KAAKxrC,EAAI3uC,MAAM,MAI7B,CACLtb,IAAKlK,KAAKurG,KAAKp3C,EAAI3uC,MAAM,IACzBllB,IAAK,IAAIm9F,EAAGz9F,KAAK2/F,KAAKxrC,EAAI3uC,MAAM,MAI7BxlB,KAAKkrG,SAAS/2C,EAAK15C,GAlF1B,IAAIvQ,EAAK5J,EAAKusC,CAmFhB,EAGA4wD,EAAGh8F,UAAUyI,IAAM,SAAciqD,GAC/B,OAAOn0D,KAAKqrG,OAAOl3C,EAAK,OAAO,GAAOjqD,GACxC,EAGAuzF,EAAGh8F,UAAUnB,IAAM,SAAc6zD,GAC/B,OAAOn0D,KAAKqrG,OAAOl3C,EAAK,OAAO,GAAO7zD,GACxC,EAEAm9F,EAAGh8F,UAAU+pG,KAAO,SAAer3C,GACjC,OAAOn0D,KAAKqrG,OAAOl3C,EAAK,OAAO,GAAM7zD,GACvC,EAGAm9F,EAAGh8F,UAAUgqG,SAAW,SAAmBt3C,GACzC,IAAIu3C,EAAK1rG,KAAKqrG,OAAOl3C,GAGrB,GAAIu3C,EAAGprG,IAAI0uE,SAAU,OAAO08B,EAAGxhG,IAE/B,IAAI5J,EAA0B,IAApBorG,EAAGxhG,IAAI0zF,SAAiB8N,EAAGprG,IAAI+hG,KAAKluC,GAAOu3C,EAAGprG,IAEpDqrG,EAAOx3C,EAAIu2C,MAAM,GACjBkB,EAAKz3C,EAAI+rC,MAAM,GACf9B,EAAM99F,EAAI89F,IAAIuN,GAGlB,OAAIvN,EAAM,GAAY,IAAPwN,GAAoB,IAARxN,EAAkBsN,EAAGxhG,IAGrB,IAApBwhG,EAAGxhG,IAAI0zF,SAAiB8N,EAAGxhG,IAAI2gG,MAAM,GAAKa,EAAGxhG,IAAI02F,MAAM,EAChE,EAEAnD,EAAGh8F,UAAUk+F,KAAO,SAAexrC,GACjCtP,EAAOsP,GAAO,UAId,IAHA,IAAI9wD,GAAK,GAAK,IAAM8wD,EAEhB9W,EAAM,EACDryC,EAAIhL,KAAKiG,OAAS,EAAG+E,GAAK,EAAGA,IACpCqyC,GAAOh6C,EAAIg6C,GAAuB,EAAhBr9C,KAAKwlB,MAAMxa,KAAWmpD,EAG1C,OAAO9W,CACT,EAGAogD,EAAGh8F,UAAUm+F,MAAQ,SAAgBzrC,GACnCtP,EAAOsP,GAAO,UAGd,IADA,IAAI6U,EAAQ,EACHh+D,EAAIhL,KAAKiG,OAAS,EAAG+E,GAAK,EAAGA,IAAK,CACzC,IAAIyzF,GAAqB,EAAhBz+F,KAAKwlB,MAAMxa,IAAkB,SAARg+D,EAC9BhpE,KAAKwlB,MAAMxa,GAAMyzF,EAAItqC,EAAO,EAC5B6U,EAAQy1B,EAAItqC,CACd,CAEA,OAAOn0D,KAAKszF,OACd,EAEAmK,EAAGh8F,UAAU8pG,KAAO,SAAep3C,GACjC,OAAOn0D,KAAK45B,QAAQgmE,MAAMzrC,EAC5B,EAEAspC,EAAGh8F,UAAUoqG,KAAO,SAAexoG,GACjCwhD,EAAsB,IAAfxhD,EAAEu6F,UACT/4C,GAAQxhD,EAAE2rE,UAEV,IAAI5iE,EAAIpM,KACJiF,EAAI5B,EAAEu2B,QAGRxtB,EADiB,IAAfA,EAAEwxF,SACAxxF,EAAEo/F,KAAKnoG,GAEP+I,EAAEwtB,QAaR,IATA,IAAI+yB,EAAI,IAAI8wC,EAAG,GACX7wC,EAAI,IAAI6wC,EAAG,GAGX5wC,EAAI,IAAI4wC,EAAG,GACX3wC,EAAI,IAAI2wC,EAAG,GAEXt4F,EAAI,EAEDiH,EAAE0/F,UAAY7mG,EAAE6mG,UACrB1/F,EAAE+zF,OAAO,GACTl7F,EAAEk7F,OAAO,KACPh7F,EAMJ,IAHA,IAAI4mG,EAAK9mG,EAAE20B,QACPoyE,EAAK5/F,EAAEwtB,SAEHxtB,EAAE4iE,UAAU,CAClB,IAAK,IAAIhkE,EAAI,EAAGihG,EAAK,EAAyB,IAArB7/F,EAAEoZ,MAAM,GAAKymF,IAAajhG,EAAI,KAAMA,EAAGihG,IAAO,GACvE,GAAIjhG,EAAI,EAEN,IADAoB,EAAE+zF,OAAOn1F,GACFA,KAAM,IACP2hD,EAAEu/C,SAAWt/C,EAAEs/C,WACjBv/C,EAAEy1C,KAAK2J,GACPn/C,EAAEy1C,KAAK2J,IAGTr/C,EAAEwzC,OAAO,GACTvzC,EAAEuzC,OAAO,GAIb,IAAK,IAAIl2C,EAAI,EAAGkiD,EAAK,EAAyB,IAArBlnG,EAAEugB,MAAM,GAAK2mF,IAAaliD,EAAI,KAAMA,EAAGkiD,IAAO,GACvE,GAAIliD,EAAI,EAEN,IADAhlD,EAAEk7F,OAAOl2C,GACFA,KAAM,IACP4C,EAAEq/C,SAAWp/C,EAAEo/C,WACjBr/C,EAAEu1C,KAAK2J,GACPj/C,EAAEu1C,KAAK2J,IAGTn/C,EAAEszC,OAAO,GACTrzC,EAAEqzC,OAAO,GAIT/zF,EAAEgyF,IAAIn5F,IAAM,GACdmH,EAAEi2F,KAAKp9F,GACP0nD,EAAE01C,KAAKx1C,GACPD,EAAEy1C,KAAKv1C,KAEP7nD,EAAEo9F,KAAKj2F,GACPygD,EAAEw1C,KAAK11C,GACPG,EAAEu1C,KAAKz1C,GAEX,CAEA,MAAO,CACLx/C,EAAGy/C,EACH/kD,EAAGglD,EACHkd,IAAK/kE,EAAE8kG,OAAO5kG,GAElB,EAKAs4F,EAAGh8F,UAAU2qG,OAAS,SAAiB/oG,GACrCwhD,EAAsB,IAAfxhD,EAAEu6F,UACT/4C,GAAQxhD,EAAE2rE,UAEV,IAAI5hE,EAAIpN,KACJ8H,EAAIzE,EAAEu2B,QAGRxsB,EADiB,IAAfA,EAAEwwF,SACAxwF,EAAEo+F,KAAKnoG,GAEP+J,EAAEwsB,QAQR,IALA,IAuCIiT,EAvCAw/D,EAAK,IAAI5O,EAAG,GACZlqC,EAAK,IAAIkqC,EAAG,GAEZv8D,EAAQp5B,EAAE8xB,QAEPxsB,EAAEk/F,KAAK,GAAK,GAAKxkG,EAAEwkG,KAAK,GAAK,GAAG,CACrC,IAAK,IAAIthG,EAAI,EAAGihG,EAAK,EAAyB,IAArB7+F,EAAEoY,MAAM,GAAKymF,IAAajhG,EAAI,KAAMA,EAAGihG,IAAO,GACvE,GAAIjhG,EAAI,EAEN,IADAoC,EAAE+yF,OAAOn1F,GACFA,KAAM,GACPqhG,EAAGH,SACLG,EAAGjK,KAAKlhE,GAGVmrE,EAAGlM,OAAO,GAId,IAAK,IAAIl2C,EAAI,EAAGkiD,EAAK,EAAyB,IAArBrkG,EAAE0d,MAAM,GAAK2mF,IAAaliD,EAAI,KAAMA,EAAGkiD,IAAO,GACvE,GAAIliD,EAAI,EAEN,IADAniD,EAAEq4F,OAAOl2C,GACFA,KAAM,GACPsJ,EAAG24C,SACL34C,EAAG6uC,KAAKlhE,GAGVqyB,EAAG4sC,OAAO,GAIV/yF,EAAEgxF,IAAIt2F,IAAM,GACdsF,EAAEi1F,KAAKv6F,GACPukG,EAAGhK,KAAK9uC,KAERzrD,EAAEu6F,KAAKj1F,GACPmmD,EAAG8uC,KAAKgK,GAEZ,CAaA,OATEx/D,EADgB,IAAdz/B,EAAEk/F,KAAK,GACHD,EAEA94C,GAGA+4C,KAAK,GAAK,GAChBz/D,EAAIu1D,KAAK/+F,GAGJwpC,CACT,EAEA4wD,EAAGh8F,UAAUuoE,IAAM,SAAc7V,GAC/B,GAAIn0D,KAAKgvE,SAAU,OAAO7a,EAAIhzB,MAC9B,GAAIgzB,EAAI6a,SAAU,OAAOhvE,KAAKmhC,MAE9B,IAAI/zB,EAAIpN,KAAK45B,QACT9xB,EAAIqsD,EAAIv6B,QACZxsB,EAAEwwF,SAAW,EACb91F,EAAE81F,SAAW,EAGb,IAAK,IAAIlzC,EAAQ,EAAGt9C,EAAE0+F,UAAYhkG,EAAEgkG,SAAUphD,IAC5Ct9C,EAAE+yF,OAAO,GACTr4F,EAAEq4F,OAAO,GAGX,OAAG,CACD,KAAO/yF,EAAE0+F,UACP1+F,EAAE+yF,OAAO,GAEX,KAAOr4F,EAAEgkG,UACPhkG,EAAEq4F,OAAO,GAGX,IAAI93D,EAAIj7B,EAAEgxF,IAAIt2F,GACd,GAAIugC,EAAI,EAAG,CAET,IAAInjC,EAAIkI,EACRA,EAAItF,EACJA,EAAI5C,CACN,MAAO,GAAU,IAANmjC,GAAyB,IAAdvgC,EAAEwkG,KAAK,GAC3B,MAGFl/F,EAAEi1F,KAAKv6F,EACT,CAEA,OAAOA,EAAEiiG,OAAOr/C,EAClB,EAGA+yC,EAAGh8F,UAAU8qG,KAAO,SAAep4C,GACjC,OAAOn0D,KAAK6rG,KAAK13C,GAAK/mD,EAAEo+F,KAAKr3C,EAC/B,EAEAspC,EAAGh8F,UAAUqqG,OAAS,WACpB,OAA+B,IAAP,EAAhB9rG,KAAKwlB,MAAM,GACrB,EAEAi4E,EAAGh8F,UAAUyqG,MAAQ,WACnB,OAA+B,IAAP,EAAhBlsG,KAAKwlB,MAAM,GACrB,EAGAi4E,EAAGh8F,UAAUy+F,MAAQ,SAAgB/rC,GACnC,OAAOn0D,KAAKwlB,MAAM,GAAK2uC,CACzB,EAGAspC,EAAGh8F,UAAU+qG,MAAQ,SAAgBtK,GACnCr9C,EAAsB,iBAARq9C,GACd,IAAI75D,EAAI65D,EAAM,GACVn3F,GAAKm3F,EAAM75D,GAAK,GAChBo1B,EAAI,GAAKp1B,EAGb,GAAIroC,KAAKiG,QAAU8E,EAGjB,OAFA/K,KAAK++F,QAAQh0F,EAAI,GACjB/K,KAAKwlB,MAAMza,IAAM0yD,EACVz9D,KAKT,IADA,IAAIgpE,EAAQvL,EACHzyD,EAAID,EAAa,IAAVi+D,GAAeh+D,EAAIhL,KAAKiG,OAAQ+E,IAAK,CACnD,IAAIyzF,EAAoB,EAAhBz+F,KAAKwlB,MAAMxa,GAEnBg+D,GADAy1B,GAAKz1B,KACS,GACdy1B,GAAK,SACLz+F,KAAKwlB,MAAMxa,GAAKyzF,CAClB,CAKA,OAJc,IAAVz1B,IACFhpE,KAAKwlB,MAAMxa,GAAKg+D,EAChBhpE,KAAKiG,UAEAjG,IACT,EAEAy9F,EAAGh8F,UAAUutE,OAAS,WACpB,OAAuB,IAAhBhvE,KAAKiG,QAAkC,IAAlBjG,KAAKwlB,MAAM,EACzC,EAEAi4E,EAAGh8F,UAAU6qG,KAAO,SAAen4C,GACjC,IAOItnB,EAPA+wD,EAAWzpC,EAAM,EAErB,GAAsB,IAAlBn0D,KAAK49F,WAAmBA,EAAU,OAAQ,EAC9C,GAAsB,IAAlB59F,KAAK49F,UAAkBA,EAAU,OAAO,EAK5C,GAHA59F,KAAKszF,QAGDtzF,KAAKiG,OAAS,EAChB4mC,EAAM,MACD,CACD+wD,IACFzpC,GAAOA,GAGTtP,EAAOsP,GAAO,SAAW,qBAEzB,IAAIsqC,EAAoB,EAAhBz+F,KAAKwlB,MAAM,GACnBqnB,EAAM4xD,IAAMtqC,EAAM,EAAIsqC,EAAItqC,GAAO,EAAI,CACvC,CACA,OAAsB,IAAlBn0D,KAAK49F,SAA8B,GAAN/wD,EAC1BA,CACT,EAMA4wD,EAAGh8F,UAAU28F,IAAM,SAAcjqC,GAC/B,GAAsB,IAAlBn0D,KAAK49F,UAAmC,IAAjBzpC,EAAIypC,SAAgB,OAAQ,EACvD,GAAsB,IAAlB59F,KAAK49F,UAAmC,IAAjBzpC,EAAIypC,SAAgB,OAAO,EAEtD,IAAI/wD,EAAM7sC,KAAKysG,KAAKt4C,GACpB,OAAsB,IAAlBn0D,KAAK49F,SAA8B,GAAN/wD,EAC1BA,CACT,EAGA4wD,EAAGh8F,UAAUgrG,KAAO,SAAet4C,GAEjC,GAAIn0D,KAAKiG,OAASkuD,EAAIluD,OAAQ,OAAO,EACrC,GAAIjG,KAAKiG,OAASkuD,EAAIluD,OAAQ,OAAQ,EAGtC,IADA,IAAI4mC,EAAM,EACD7hC,EAAIhL,KAAKiG,OAAS,EAAG+E,GAAK,EAAGA,IAAK,CACzC,IAAIoC,EAAoB,EAAhBpN,KAAKwlB,MAAMxa,GACflD,EAAmB,EAAfqsD,EAAI3uC,MAAMxa,GAElB,GAAIoC,IAAMtF,EAAV,CACIsF,EAAItF,EACN+kC,GAAO,EACEz/B,EAAItF,IACb+kC,EAAM,GAER,KANqB,CAOvB,CACA,OAAOA,CACT,EAEA4wD,EAAGh8F,UAAUirG,IAAM,SAAcv4C,GAC/B,OAA0B,IAAnBn0D,KAAKssG,KAAKn4C,EACnB,EAEAspC,EAAGh8F,UAAUw/B,GAAK,SAAakzB,GAC7B,OAAyB,IAAlBn0D,KAAKo+F,IAAIjqC,EAClB,EAEAspC,EAAGh8F,UAAUkrG,KAAO,SAAex4C,GACjC,OAAOn0D,KAAKssG,KAAKn4C,IAAQ,CAC3B,EAEAspC,EAAGh8F,UAAUmrG,IAAM,SAAcz4C,GAC/B,OAAOn0D,KAAKo+F,IAAIjqC,IAAQ,CAC1B,EAEAspC,EAAGh8F,UAAUorG,IAAM,SAAc14C,GAC/B,OAA2B,IAApBn0D,KAAKssG,KAAKn4C,EACnB,EAEAspC,EAAGh8F,UAAUu/B,GAAK,SAAamzB,GAC7B,OAA0B,IAAnBn0D,KAAKo+F,IAAIjqC,EAClB,EAEAspC,EAAGh8F,UAAUqrG,KAAO,SAAe34C,GACjC,OAAOn0D,KAAKssG,KAAKn4C,IAAQ,CAC3B,EAEAspC,EAAGh8F,UAAUsrG,IAAM,SAAc54C,GAC/B,OAAOn0D,KAAKo+F,IAAIjqC,IAAQ,CAC1B,EAEAspC,EAAGh8F,UAAUurG,IAAM,SAAc74C,GAC/B,OAA0B,IAAnBn0D,KAAKssG,KAAKn4C,EACnB,EAEAspC,EAAGh8F,UAAUwrG,GAAK,SAAa94C,GAC7B,OAAyB,IAAlBn0D,KAAKo+F,IAAIjqC,EAClB,EAMAspC,EAAGI,IAAM,SAAc1pC,GACrB,OAAO,IAAI+4C,EAAI/4C,EACjB,EAEAspC,EAAGh8F,UAAU0rG,MAAQ,SAAgBzpC,GAGnC,OAFA7e,GAAQ7kD,KAAK69F,IAAK,yCAClBh5C,EAAyB,IAAlB7kD,KAAK49F,SAAgB,iCACrBl6B,EAAI0pC,UAAUptG,MAAMqtG,UAAU3pC,EACvC,EAEA+5B,EAAGh8F,UAAU6rG,QAAU,WAErB,OADAzoD,EAAO7kD,KAAK69F,IAAK,wDACV79F,KAAK69F,IAAI0P,YAAYvtG,KAC9B,EAEAy9F,EAAGh8F,UAAU4rG,UAAY,SAAoB3pC,GAE3C,OADA1jE,KAAK69F,IAAMn6B,EACJ1jE,IACT,EAEAy9F,EAAGh8F,UAAU+rG,SAAW,SAAmB9pC,GAEzC,OADA7e,GAAQ7kD,KAAK69F,IAAK,yCACX79F,KAAKqtG,UAAU3pC,EACxB,EAEA+5B,EAAGh8F,UAAUgsG,OAAS,SAAiBt5C,GAErC,OADAtP,EAAO7kD,KAAK69F,IAAK,sCACV79F,KAAK69F,IAAIj0F,IAAI5J,KAAMm0D,EAC5B,EAEAspC,EAAGh8F,UAAUisG,QAAU,SAAkBv5C,GAEvC,OADAtP,EAAO7kD,KAAK69F,IAAK,uCACV79F,KAAK69F,IAAIuE,KAAKpiG,KAAMm0D,EAC7B,EAEAspC,EAAGh8F,UAAUksG,OAAS,SAAiBx5C,GAErC,OADAtP,EAAO7kD,KAAK69F,IAAK,sCACV79F,KAAK69F,IAAI7zF,IAAIhK,KAAMm0D,EAC5B,EAEAspC,EAAGh8F,UAAUmsG,QAAU,SAAkBz5C,GAEvC,OADAtP,EAAO7kD,KAAK69F,IAAK,uCACV79F,KAAK69F,IAAIwE,KAAKriG,KAAMm0D,EAC7B,EAEAspC,EAAGh8F,UAAUosG,OAAS,SAAiB15C,GAErC,OADAtP,EAAO7kD,KAAK69F,IAAK,sCACV79F,KAAK69F,IAAIiQ,IAAI9tG,KAAMm0D,EAC5B,EAEAspC,EAAGh8F,UAAUssG,OAAS,SAAiB55C,GAGrC,OAFAtP,EAAO7kD,KAAK69F,IAAK,sCACjB79F,KAAK69F,IAAImQ,SAAShuG,KAAMm0D,GACjBn0D,KAAK69F,IAAI5zF,IAAIjK,KAAMm0D,EAC5B,EAEAspC,EAAGh8F,UAAUwsG,QAAU,SAAkB95C,GAGvC,OAFAtP,EAAO7kD,KAAK69F,IAAK,sCACjB79F,KAAK69F,IAAImQ,SAAShuG,KAAMm0D,GACjBn0D,KAAK69F,IAAIiI,KAAK9lG,KAAMm0D,EAC7B,EAEAspC,EAAGh8F,UAAUysG,OAAS,WAGpB,OAFArpD,EAAO7kD,KAAK69F,IAAK,sCACjB79F,KAAK69F,IAAIsQ,SAASnuG,MACXA,KAAK69F,IAAI+L,IAAI5pG,KACtB,EAEAy9F,EAAGh8F,UAAU2sG,QAAU,WAGrB,OAFAvpD,EAAO7kD,KAAK69F,IAAK,uCACjB79F,KAAK69F,IAAIsQ,SAASnuG,MACXA,KAAK69F,IAAIgM,KAAK7pG,KACvB,EAGAy9F,EAAGh8F,UAAU4sG,QAAU,WAGrB,OAFAxpD,EAAO7kD,KAAK69F,IAAK,uCACjB79F,KAAK69F,IAAIsQ,SAASnuG,MACXA,KAAK69F,IAAIyQ,KAAKtuG,KACvB,EAEAy9F,EAAGh8F,UAAU8sG,QAAU,WAGrB,OAFA1pD,EAAO7kD,KAAK69F,IAAK,uCACjB79F,KAAK69F,IAAIsQ,SAASnuG,MACXA,KAAK69F,IAAI0O,KAAKvsG,KACvB,EAGAy9F,EAAGh8F,UAAU+sG,OAAS,WAGpB,OAFA3pD,EAAO7kD,KAAK69F,IAAK,sCACjB79F,KAAK69F,IAAIsQ,SAASnuG,MACXA,KAAK69F,IAAIqD,IAAIlhG,KACtB,EAEAy9F,EAAGh8F,UAAUgtG,OAAS,SAAiBt6C,GAGrC,OAFAtP,EAAO7kD,KAAK69F,MAAQ1pC,EAAI0pC,IAAK,qBAC7B79F,KAAK69F,IAAIsQ,SAASnuG,MACXA,KAAK69F,IAAI7vF,IAAIhO,KAAMm0D,EAC5B,EAGA,IAAIu6C,EAAS,CACXC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,OAAQ,MAIV,SAASC,EAAQztE,EAAMj+B,GAErBrD,KAAKshC,KAAOA,EACZthC,KAAKqD,EAAI,IAAIo6F,EAAGp6F,EAAG,IACnBrD,KAAK4F,EAAI5F,KAAKqD,EAAEk9F,YAChBvgG,KAAK2C,EAAI,IAAI86F,EAAG,GAAGsM,OAAO/pG,KAAK4F,GAAGy8F,KAAKriG,KAAKqD,GAE5CrD,KAAKkyD,IAAMlyD,KAAKgvG,MAClB,CAgDA,SAASC,IACPF,EAAOxrG,KACLvD,KACA,OACA,0EACJ,CA8DA,SAASkvG,IACPH,EAAOxrG,KACLvD,KACA,OACA,iEACJ,CAGA,SAASmvG,IACPJ,EAAOxrG,KACLvD,KACA,OACA,wDACJ,CAGA,SAASovG,IAEPL,EAAOxrG,KACLvD,KACA,QACA,sEACJ,CA6CA,SAASktG,EAAKxqG,GACZ,GAAiB,iBAANA,EAAgB,CACzB,IAAI2sG,EAAQ5R,EAAG6R,OAAO5sG,GACtB1C,KAAK0C,EAAI2sG,EAAMhsG,EACfrD,KAAKqvG,MAAQA,CACf,MACExqD,EAAOniD,EAAEgqG,IAAI,GAAI,kCACjB1sG,KAAK0C,EAAIA,EACT1C,KAAKqvG,MAAQ,IAEjB,CAgOA,SAASE,EAAM7sG,GACbwqG,EAAI3pG,KAAKvD,KAAM0C,GAEf1C,KAAK0qD,MAAQ1qD,KAAK0C,EAAE69F,YAChBvgG,KAAK0qD,MAAQ,IAAO,IACtB1qD,KAAK0qD,OAAS,GAAM1qD,KAAK0qD,MAAQ,IAGnC1qD,KAAKqoC,EAAI,IAAIo1D,EAAG,GAAGsM,OAAO/pG,KAAK0qD,OAC/B1qD,KAAK4rG,GAAK5rG,KAAKwvG,KAAKxvG,KAAKqoC,EAAEuhE,OAC3B5pG,KAAKk7D,KAAOl7D,KAAKqoC,EAAE+jE,OAAOpsG,KAAK0C,GAE/B1C,KAAKyvG,KAAOzvG,KAAKk7D,KAAKjxD,IAAIjK,KAAKqoC,GAAGwiE,MAAM,GAAG3gG,IAAIlK,KAAK0C,GACpD1C,KAAKyvG,KAAOzvG,KAAKyvG,KAAKjE,KAAKxrG,KAAKqoC,GAChCroC,KAAKyvG,KAAOzvG,KAAKqoC,EAAEr+B,IAAIhK,KAAKyvG,KAC9B,CA7aAV,EAAOttG,UAAUutG,KAAO,WACtB,IAAI98C,EAAM,IAAIurC,EAAG,MAEjB,OADAvrC,EAAI1sC,MAAQ,IAAIvd,MAAM8F,KAAK1E,KAAKrJ,KAAK4F,EAAI,KAClCssD,CACT,EAEA68C,EAAOttG,UAAUiuG,QAAU,SAAkBv7C,GAG3C,IACIw7C,EADAtnE,EAAI8rB,EAGR,GACEn0D,KAAK2M,MAAM07B,EAAGroC,KAAKkyD,KAGnBy9C,GADAtnE,GADAA,EAAIroC,KAAK4vG,MAAMvnE,IACT+5D,KAAKpiG,KAAKkyD,MACPquC,kBACFoP,EAAO3vG,KAAK4F,GAErB,IAAIw4F,EAAMuR,EAAO3vG,KAAK4F,GAAK,EAAIyiC,EAAEokE,KAAKzsG,KAAKqD,GAgB3C,OAfY,IAAR+6F,GACF/1D,EAAE7iB,MAAM,GAAK,EACb6iB,EAAEpiC,OAAS,GACFm4F,EAAM,EACf/1D,EAAEg6D,KAAKriG,KAAKqD,QAEIR,IAAZwlC,EAAEirD,MAEJjrD,EAAEirD,QAGFjrD,EAAEwnE,SAICxnE,CACT,EAEA0mE,EAAOttG,UAAUkL,MAAQ,SAAgB87D,EAAOrwD,GAC9CqwD,EAAM03B,OAAOngG,KAAK4F,EAAG,EAAGwS,EAC1B,EAEA22F,EAAOttG,UAAUmuG,MAAQ,SAAgBz7C,GACvC,OAAOA,EAAI2xC,KAAK9lG,KAAK2C,EACvB,EAQAkxF,EAASob,EAAMF,GAEfE,EAAKxtG,UAAUkL,MAAQ,SAAgB87D,EAAO7jB,GAK5C,IAHA,IAAI4S,EAAO,QAEPs4C,EAAS/hG,KAAKy+B,IAAIi8B,EAAMxiE,OAAQ,GAC3B+E,EAAI,EAAGA,EAAI8kG,EAAQ9kG,IAC1B45C,EAAOp/B,MAAMxa,GAAKy9D,EAAMjjD,MAAMxa,GAIhC,GAFA45C,EAAO3+C,OAAS6pG,EAEZrnC,EAAMxiE,QAAU,EAGlB,OAFAwiE,EAAMjjD,MAAM,GAAK,OACjBijD,EAAMxiE,OAAS,GAKjB,IAAI0zF,EAAOlxB,EAAMjjD,MAAM,GAGvB,IAFAo/B,EAAOp/B,MAAMo/B,EAAO3+C,UAAY0zF,EAAOniC,EAElCxsD,EAAI,GAAIA,EAAIy9D,EAAMxiE,OAAQ+E,IAAK,CAClC,IAAIzG,EAAwB,EAAjBkkE,EAAMjjD,MAAMxa,GACvBy9D,EAAMjjD,MAAMxa,EAAI,KAAQzG,EAAOizD,IAAS,EAAMmiC,IAAS,GACvDA,EAAOp1F,CACT,CACAo1F,KAAU,GACVlxB,EAAMjjD,MAAMxa,EAAI,IAAM2uF,EACT,IAATA,GAAclxB,EAAMxiE,OAAS,GAC/BwiE,EAAMxiE,QAAU,GAEhBwiE,EAAMxiE,QAAU,CAEpB,EAEAgpG,EAAKxtG,UAAUmuG,MAAQ,SAAgBz7C,GAErCA,EAAI3uC,MAAM2uC,EAAIluD,QAAU,EACxBkuD,EAAI3uC,MAAM2uC,EAAIluD,OAAS,GAAK,EAC5BkuD,EAAIluD,QAAU,EAId,IADA,IAAIshE,EAAK,EACAv8D,EAAI,EAAGA,EAAImpD,EAAIluD,OAAQ+E,IAAK,CACnC,IAAIyzF,EAAmB,EAAftqC,EAAI3uC,MAAMxa,GAClBu8D,GAAU,IAAJk3B,EACNtqC,EAAI3uC,MAAMxa,GAAU,SAALu8D,EACfA,EAAS,GAAJk3B,GAAal3B,EAAK,SAAa,EACtC,CASA,OANkC,IAA9BpT,EAAI3uC,MAAM2uC,EAAIluD,OAAS,KACzBkuD,EAAIluD,SAC8B,IAA9BkuD,EAAI3uC,MAAM2uC,EAAIluD,OAAS,IACzBkuD,EAAIluD,UAGDkuD,CACT,EAQA0/B,EAASqb,EAAMH,GAQflb,EAASsb,EAAMJ,GASflb,EAASub,EAAQL,GAEjBK,EAAO3tG,UAAUmuG,MAAQ,SAAgBz7C,GAGvC,IADA,IAAI6U,EAAQ,EACHh+D,EAAI,EAAGA,EAAImpD,EAAIluD,OAAQ+E,IAAK,CACnC,IAAIw8D,EAA0B,IAAL,EAAfrT,EAAI3uC,MAAMxa,IAAiBg+D,EACjCzB,EAAU,SAALC,EACTA,KAAQ,GAERrT,EAAI3uC,MAAMxa,GAAKu8D,EACfyB,EAAQxB,CACV,CAIA,OAHc,IAAVwB,IACF7U,EAAI3uC,MAAM2uC,EAAIluD,UAAY+iE,GAErB7U,CACT,EAGAspC,EAAG6R,OAAS,SAAgBhuE,GAE1B,GAAIotE,EAAOptE,GAAO,OAAOotE,EAAOptE,GAEhC,IAAI+tE,EACJ,GAAa,SAAT/tE,EACF+tE,EAAQ,IAAIJ,OACP,GAAa,SAAT3tE,EACT+tE,EAAQ,IAAIH,OACP,GAAa,SAAT5tE,EACT+tE,EAAQ,IAAIF,MACP,IAAa,WAAT7tE,EAGT,MAAM,IAAIh7B,MAAM,iBAAmBg7B,GAFnC+tE,EAAQ,IAAID,CAGd,CAGA,OAFAV,EAAOptE,GAAQ+tE,EAERA,CACT,EAiBAnC,EAAIzrG,UAAU0sG,SAAW,SAAmB/gG,GAC1Cy3C,EAAsB,IAAfz3C,EAAEwwF,SAAgB,iCACzB/4C,EAAOz3C,EAAEywF,IAAK,kCAChB,EAEAqP,EAAIzrG,UAAUusG,SAAW,SAAmB5gG,EAAGtF,GAC7C+8C,EAAqC,IAA7Bz3C,EAAEwwF,SAAW91F,EAAE81F,UAAiB,iCACxC/4C,EAAOz3C,EAAEywF,KAAOzwF,EAAEywF,MAAQ/1F,EAAE+1F,IAC1B,kCACJ,EAEAqP,EAAIzrG,UAAU+tG,KAAO,SAAepiG,GAClC,OAAIpN,KAAKqvG,MAAcrvG,KAAKqvG,MAAMK,QAAQtiG,GAAGigG,UAAUrtG,MAChDoN,EAAEo+F,KAAKxrG,KAAK0C,GAAG2qG,UAAUrtG,KAClC,EAEAktG,EAAIzrG,UAAUy/F,IAAM,SAAc9zF,GAChC,OAAIA,EAAE4hE,SACG5hE,EAAEwsB,QAGJ55B,KAAK0C,EAAEsH,IAAIoD,GAAGigG,UAAUrtG,KACjC,EAEAktG,EAAIzrG,UAAUmI,IAAM,SAAcwD,EAAGtF,GACnC9H,KAAKguG,SAAS5gG,EAAGtF,GAEjB,IAAI+kC,EAAMz/B,EAAExD,IAAI9B,GAIhB,OAHI+kC,EAAIuxD,IAAIp+F,KAAK0C,IAAM,GACrBmqC,EAAIw1D,KAAKriG,KAAK0C,GAETmqC,EAAIwgE,UAAUrtG,KACvB,EAEAktG,EAAIzrG,UAAU2gG,KAAO,SAAeh1F,EAAGtF,GACrC9H,KAAKguG,SAAS5gG,EAAGtF,GAEjB,IAAI+kC,EAAMz/B,EAAEg1F,KAAKt6F,GAIjB,OAHI+kC,EAAIuxD,IAAIp+F,KAAK0C,IAAM,GACrBmqC,EAAIw1D,KAAKriG,KAAK0C,GAETmqC,CACT,EAEAqgE,EAAIzrG,UAAUuI,IAAM,SAAcoD,EAAGtF,GACnC9H,KAAKguG,SAAS5gG,EAAGtF,GAEjB,IAAI+kC,EAAMz/B,EAAEpD,IAAIlC,GAIhB,OAHI+kC,EAAIy/D,KAAK,GAAK,GAChBz/D,EAAIu1D,KAAKpiG,KAAK0C,GAETmqC,EAAIwgE,UAAUrtG,KACvB,EAEAktG,EAAIzrG,UAAU4gG,KAAO,SAAej1F,EAAGtF,GACrC9H,KAAKguG,SAAS5gG,EAAGtF,GAEjB,IAAI+kC,EAAMz/B,EAAEi1F,KAAKv6F,GAIjB,OAHI+kC,EAAIy/D,KAAK,GAAK,GAChBz/D,EAAIu1D,KAAKpiG,KAAK0C,GAETmqC,CACT,EAEAqgE,EAAIzrG,UAAUqsG,IAAM,SAAc1gG,EAAG+mD,GAEnC,OADAn0D,KAAKmuG,SAAS/gG,GACPpN,KAAKwvG,KAAKpiG,EAAEo9F,MAAMr2C,GAC3B,EAEA+4C,EAAIzrG,UAAUqkG,KAAO,SAAe14F,EAAGtF,GAErC,OADA9H,KAAKguG,SAAS5gG,EAAGtF,GACV9H,KAAKwvG,KAAKpiG,EAAE04F,KAAKh+F,GAC1B,EAEAolG,EAAIzrG,UAAUwI,IAAM,SAAcmD,EAAGtF,GAEnC,OADA9H,KAAKguG,SAAS5gG,EAAGtF,GACV9H,KAAKwvG,KAAKpiG,EAAEnD,IAAInC,GACzB,EAEAolG,EAAIzrG,UAAUooG,KAAO,SAAez8F,GAClC,OAAOpN,KAAK8lG,KAAK14F,EAAGA,EAAEwsB,QACxB,EAEAszE,EAAIzrG,UAAUmoG,IAAM,SAAcx8F,GAChC,OAAOpN,KAAKiK,IAAImD,EAAGA,EACrB,EAEA8/F,EAAIzrG,UAAU6sG,KAAO,SAAelhG,GAClC,GAAIA,EAAE4hE,SAAU,OAAO5hE,EAAEwsB,QAEzB,IAAIm2E,EAAO/vG,KAAK0C,EAAEw9F,MAAM,GAIxB,GAHAr7C,EAAOkrD,EAAO,GAAM,GAGP,IAATA,EAAY,CACd,IAAI/hG,EAAMhO,KAAK0C,EAAEkH,IAAI,IAAI6zF,EAAG,IAAI0C,OAAO,GACvC,OAAOngG,KAAKgO,IAAIZ,EAAGY,EACrB,CAOA,IAFA,IAAIyvD,EAAIz9D,KAAK0C,EAAEqoG,KAAK,GAChBhgG,EAAI,GACA0yD,EAAEuR,UAA2B,IAAfvR,EAAEyiC,MAAM,IAC5Bn1F,IACA0yD,EAAE0iC,OAAO,GAEXt7C,GAAQ4Y,EAAEuR,UAEV,IAAIghC,EAAM,IAAIvS,EAAG,GAAG0P,MAAMntG,MACtBiwG,EAAOD,EAAIxB,SAIX0B,EAAOlwG,KAAK0C,EAAEqoG,KAAK,GAAG5K,OAAO,GAC7B19C,EAAIziD,KAAK0C,EAAE69F,YAGf,IAFA99C,EAAI,IAAIg7C,EAAG,EAAIh7C,EAAIA,GAAG0qD,MAAMntG,MAEW,IAAhCA,KAAKgO,IAAIy0C,EAAGytD,GAAM9R,IAAI6R,IAC3BxtD,EAAEirD,QAAQuC,GAOZ,IAJA,IAAI1jG,EAAIvM,KAAKgO,IAAIy0C,EAAGgb,GAChBp1B,EAAIroC,KAAKgO,IAAIZ,EAAGqwD,EAAEqtC,KAAK,GAAG3K,OAAO,IACjCj7F,EAAIlF,KAAKgO,IAAIZ,EAAGqwD,GAChB/6D,EAAIqI,EACc,IAAf7F,EAAEk5F,IAAI4R,IAAY,CAEvB,IADA,IAAI99C,EAAMhtD,EACD8F,EAAI,EAAoB,IAAjBknD,EAAIksC,IAAI4R,GAAYhlG,IAClCknD,EAAMA,EAAIg8C,SAEZrpD,EAAO75C,EAAItI,GACX,IAAIoF,EAAI9H,KAAKgO,IAAIzB,EAAG,IAAIkxF,EAAG,GAAGsM,OAAOrnG,EAAIsI,EAAI,IAE7Cq9B,EAAIA,EAAE0lE,OAAOjmG,GACbyE,EAAIzE,EAAEomG,SACNhpG,EAAIA,EAAE6oG,OAAOxhG,GACb7J,EAAIsI,CACN,CAEA,OAAOq9B,CACT,EAEA6kE,EAAIzrG,UAAU8qG,KAAO,SAAen/F,GAClC,IAAI+iG,EAAM/iG,EAAEg/F,OAAOpsG,KAAK0C,GACxB,OAAqB,IAAjBytG,EAAIvS,UACNuS,EAAIvS,SAAW,EACR59F,KAAKwvG,KAAKW,GAAK3B,UAEfxuG,KAAKwvG,KAAKW,EAErB,EAEAjD,EAAIzrG,UAAUuM,IAAM,SAAcZ,EAAG+mD,GACnC,GAAIA,EAAI6a,SAAU,OAAO,IAAIyuB,EAAG,GAAG0P,MAAMntG,MACzC,GAAoB,IAAhBm0D,EAAIm4C,KAAK,GAAU,OAAOl/F,EAAEwsB,QAEhC,IACIw2E,EAAM,IAAInoG,MAAM,IACpBmoG,EAAI,GAAK,IAAI3S,EAAG,GAAG0P,MAAMntG,MACzBowG,EAAI,GAAKhjG,EACT,IAAK,IAAIpC,EAAI,EAAGA,EAAIolG,EAAInqG,OAAQ+E,IAC9BolG,EAAIplG,GAAKhL,KAAKiK,IAAImmG,EAAIplG,EAAI,GAAIoC,GAGhC,IAAIy/B,EAAMujE,EAAI,GACVC,EAAU,EACVC,EAAa,EACbrsC,EAAQ9P,EAAIosC,YAAc,GAK9B,IAJc,IAAVt8B,IACFA,EAAQ,IAGLj5D,EAAImpD,EAAIluD,OAAS,EAAG+E,GAAK,EAAGA,IAAK,CAEpC,IADA,IAAIy/C,EAAO0J,EAAI3uC,MAAMxa,GACZi/C,EAAIga,EAAQ,EAAGha,GAAK,EAAGA,IAAK,CACnC,IAAIi4C,EAAOz3C,GAAQR,EAAK,EACpBpd,IAAQujE,EAAI,KACdvjE,EAAM7sC,KAAK4pG,IAAI/8D,IAGL,IAARq1D,GAAyB,IAAZmO,GAKjBA,IAAY,EACZA,GAAWnO,GA9BE,KA+BboO,GACwC,IAANtlG,GAAiB,IAANi/C,KAE7Cpd,EAAM7sC,KAAKiK,IAAI4iC,EAAKujE,EAAIC,IACxBC,EAAa,EACbD,EAAU,IAXRC,EAAa,CAYjB,CACArsC,EAAQ,EACV,CAEA,OAAOp3B,CACT,EAEAqgE,EAAIzrG,UAAU2rG,UAAY,SAAoBj5C,GAC5C,IAAI9rB,EAAI8rB,EAAIq3C,KAAKxrG,KAAK0C,GAEtB,OAAO2lC,IAAM8rB,EAAM9rB,EAAEzO,QAAUyO,CACjC,EAEA6kE,EAAIzrG,UAAU8rG,YAAc,SAAsBp5C,GAChD,IAAItnB,EAAMsnB,EAAIv6B,QAEd,OADAiT,EAAIgxD,IAAM,KACHhxD,CACT,EAMA4wD,EAAG8S,KAAO,SAAep8C,GACvB,OAAO,IAAIo7C,EAAKp7C,EAClB,EAkBA0/B,EAAS0b,EAAMrC,GAEfqC,EAAK9tG,UAAU2rG,UAAY,SAAoBj5C,GAC7C,OAAOn0D,KAAKwvG,KAAKr7C,EAAIq2C,MAAMxqG,KAAK0qD,OAClC,EAEA6kD,EAAK9tG,UAAU8rG,YAAc,SAAsBp5C,GACjD,IAAI9rB,EAAIroC,KAAKwvG,KAAKr7C,EAAIlqD,IAAIjK,KAAKk7D,OAE/B,OADA7yB,EAAEw1D,IAAM,KACDx1D,CACT,EAEAknE,EAAK9tG,UAAUqkG,KAAO,SAAe14F,EAAGtF,GACtC,GAAIsF,EAAE4hE,UAAYlnE,EAAEknE,SAGlB,OAFA5hE,EAAEoY,MAAM,GAAK,EACbpY,EAAEnH,OAAS,EACJmH,EAGT,IAAIlI,EAAIkI,EAAE04F,KAAKh+F,GACXyE,EAAIrH,EAAE0lG,MAAM5qG,KAAK0qD,OAAOzgD,IAAIjK,KAAKyvG,MAAM9E,OAAO3qG,KAAK0qD,OAAOzgD,IAAIjK,KAAK0C,GACnE86D,EAAIt4D,EAAEm9F,KAAK91F,GAAG4zF,OAAOngG,KAAK0qD,OAC1B7d,EAAM2wB,EAQV,OANIA,EAAE4gC,IAAIp+F,KAAK0C,IAAM,EACnBmqC,EAAM2wB,EAAE6kC,KAAKriG,KAAK0C,GACT86D,EAAE8uC,KAAK,GAAK,IACrBz/D,EAAM2wB,EAAE4kC,KAAKpiG,KAAK0C,IAGbmqC,EAAIwgE,UAAUrtG,KACvB,EAEAuvG,EAAK9tG,UAAUwI,IAAM,SAAcmD,EAAGtF,GACpC,GAAIsF,EAAE4hE,UAAYlnE,EAAEknE,SAAU,OAAO,IAAIyuB,EAAG,GAAG4P,UAAUrtG,MAEzD,IAAIkF,EAAIkI,EAAEnD,IAAInC,GACVyE,EAAIrH,EAAE0lG,MAAM5qG,KAAK0qD,OAAOzgD,IAAIjK,KAAKyvG,MAAM9E,OAAO3qG,KAAK0qD,OAAOzgD,IAAIjK,KAAK0C,GACnE86D,EAAIt4D,EAAEm9F,KAAK91F,GAAG4zF,OAAOngG,KAAK0qD,OAC1B7d,EAAM2wB,EAOV,OANIA,EAAE4gC,IAAIp+F,KAAK0C,IAAM,EACnBmqC,EAAM2wB,EAAE6kC,KAAKriG,KAAK0C,GACT86D,EAAE8uC,KAAK,GAAK,IACrBz/D,EAAM2wB,EAAE4kC,KAAKpiG,KAAK0C,IAGbmqC,EAAIwgE,UAAUrtG,KACvB,EAEAuvG,EAAK9tG,UAAU8qG,KAAO,SAAen/F,GAGnC,OADUpN,KAAKwvG,KAAKpiG,EAAEg/F,OAAOpsG,KAAK0C,GAAGuH,IAAIjK,KAAK4rG,KACnCyB,UAAUrtG,KACvB,CACD,CAr3GD,YAq3G4CA,kiHCp3G5C,IAAIk+I,GAAyB,EACzBC,GAAgB,EACpB,MAAMC,EAAY,CAAEC,MAAO,EAAG,QAAW,EAAGhiI,KAAM,EAAGiiI,QAAS,EAAGv/E,MAAO,EAAG6F,IAAK,GAChF,IAAI25E,EAAYH,EAAmB,QAE/BI,EAAgB,KA4BpB,MAAMC,EA3BN,WACI,IACI,MAAMC,EAAU,GAahB,GAXA,CAAC,MAAO,MAAO,OAAQ,QAAQ1yI,SAAS2yI,IACpC,IACI,GAA+B,SAA3B,OAAO71E,UAAU61E,GACjB,MAAM,IAAIr4I,MAAM,gBAMxB,CAFA,MAAOy4D,GACH2/E,EAAQx4I,KAAKy4I,EACjB,KAEAD,EAAQz4I,OACR,MAAM,IAAIK,MAAM,WAAao4I,EAAQhyI,KAAK,OAE9C,GAAIxE,OAAOm8D,aAAa,KAAMyE,UAAU,SAAW5gE,OAAOm8D,aAAa,IAAM,KACzE,MAAM,IAAI/9D,MAAM,wBAKxB,CAFA,MAAOy4D,GACH,OAAOA,EAAMx3D,OACjB,CACA,OAAO,IACX,CACwBq3I,GACjB,IAAIC,EAQAC,GAPX,SAAWD,GACPA,EAAgB,MAAI,QACpBA,EAAe,KAAI,OACnBA,EAAkB,QAAI,UACtBA,EAAgB,MAAI,QACpBA,EAAc,IAAI,KACrB,CAND,CAMGA,IAAaA,EAAW,CAAC,IAE5B,SAAWC,GAIPA,EAAyB,cAAI,gBAE7BA,EAA2B,gBAAI,kBAG/BA,EAAiC,sBAAI,wBAGrCA,EAAyB,cAAI,gBAE7BA,EAAwB,aAAI,eAE5BA,EAAmB,QAAI,UAIvBA,EAA0B,eAAI,iBAI9BA,EAAyB,cAAI,gBAK7BA,EAAuB,YAAI,cAI3BA,EAA4B,iBAAI,mBAIhCA,EAA4B,iBAAI,mBAIhCA,EAA+B,oBAAI,sBAWnCA,EAA0B,eAAI,iBAG9BA,EAA8B,mBAAI,qBAGlCA,EAAyB,cAAI,gBAG7BA,EAAmC,wBAAI,0BAGvCA,EAAmC,wBAAI,0BAOvCA,EAAgC,qBAAI,sBACvC,CAxED,CAwEGA,IAAcA,EAAY,CAAC,IAE9B,MAAMC,EAAM,mBACL,MAAMC,EACT52I,YAAYqlB,GACRxtB,OAAOC,eAAeF,KAAM,UAAW,CACnCkD,YAAY,EACZ/C,MAAOstB,EACPzqB,UAAU,GAElB,CACAi8I,KAAKC,EAAUn6E,GACX,MAAMo6E,EAAQD,EAAS/7F,cACC,MAApBi7F,EAAUe,IACVn/I,KAAKo/I,mBAAmB,yBAA0B,WAAYF,GAE9DX,EAAYH,EAAUe,IAG1Bl9I,QAAQC,IAAI2C,MAAM5C,QAAS8iE,EAC/B,CACAs5E,SAASt5E,GACL/kE,KAAKi/I,KAAKD,EAAOK,OAAOC,MAAOv6E,EACnC,CACA1oD,QAAQ0oD,GACJ/kE,KAAKi/I,KAAKD,EAAOK,OAAOE,KAAMx6E,EAClC,CACAq4C,QAAQr4C,GACJ/kE,KAAKi/I,KAAKD,EAAOK,OAAOG,QAASz6E,EACrC,CACA06E,UAAUl4I,EAASkW,EAAM4rB,GAErB,GAAI80G,EACA,OAAOn+I,KAAKy/I,UAAU,iBAAkBhiI,EAAM,CAAC,GAE9CA,IACDA,EAAOuhI,EAAOzlD,OAAOmmD,eAEpBr2G,IACDA,EAAS,CAAC,GAEd,MAAMs2G,EAAiB,GACvB1/I,OAAO8L,KAAKs9B,GAAQr9B,SAASnK,IACzB,MAAM1B,EAAQkpC,EAAOxnC,GACrB,IACI,GAAI1B,aAAiBkY,WAAY,CAC7B,IAAI84C,EAAM,GACV,IAAK,IAAInmD,EAAI,EAAGA,EAAI7K,EAAM8F,OAAQ+E,IAC9BmmD,GAAO4tF,EAAI5+I,EAAM6K,IAAM,GACvBmmD,GAAO4tF,EAAe,GAAX5+I,EAAM6K,IAErB20I,EAAez5I,KAAKrE,EAAM,iBAAmBsvD,EAAM,IACvD,MAEIwuF,EAAez5I,KAAKrE,EAAM,IAAMyhC,KAAKE,UAAUrjC,GAKvD,CAFA,MAAO4+D,GACH4gF,EAAez5I,KAAKrE,EAAM,IAAMyhC,KAAKE,UAAU6F,EAAOxnC,GAAKuF,YAC/D,KAEJu4I,EAAez5I,KAAK,QAAQuX,KAC5BkiI,EAAez5I,KAAK,WAAWlG,KAAKytB,WACpC,MAAM8nF,EAAShuG,EACf,IAAIlB,EAAM,GACV,OAAQoX,GACJ,KAAKqhI,EAAUc,cAAe,CAC1Bv5I,EAAM,gBACN,MAAMw5I,EAAQt4I,EACd,OAAQs4I,GACJ,IAAK,WACL,IAAK,YACL,IAAK,mBACDx5I,GAAO,IAAMw5I,EACb,MACJ,IAAK,iBACL,IAAK,iBACDx5I,GAAO,eACP,MACJ,IAAK,yBACDA,GAAO,kBAGf,KACJ,CACA,KAAKy4I,EAAUgB,eACf,KAAKhB,EAAUiB,mBACf,KAAKjB,EAAUkB,YACf,KAAKlB,EAAUmB,cACf,KAAKnB,EAAUoB,wBACf,KAAKpB,EAAUqB,qBACf,KAAKrB,EAAUsB,wBACX/5I,EAAMoX,EAGVpX,IACAkB,GAAW,8CAAiDlB,EAAM,MAElEs5I,EAAe15I,SACfsB,GAAW,KAAOo4I,EAAejzI,KAAK,MAAQ,KAGlD,MAAMqyD,EAAQ,IAAIz4D,MAAMiB,GAMxB,OALAw3D,EAAMw2C,OAASA,EACfx2C,EAAMthD,KAAOA,EACbxd,OAAO8L,KAAKs9B,GAAQr9B,SAAQ,SAAUnK,GAClCk9D,EAAMl9D,GAAOwnC,EAAOxnC,EACxB,IACOk9D,CACX,CACAshF,WAAW94I,EAASkW,EAAM4rB,GACtB,MAAMrpC,KAAKy/I,UAAUl4I,EAASkW,EAAM4rB,EACxC,CACA+1G,mBAAmB73I,EAAS+5B,EAAMnhC,GAC9B,OAAOH,KAAKqgJ,WAAW94I,EAASy3I,EAAOzlD,OAAO+mD,iBAAkB,CAC5DC,SAAUj/G,EACVnhC,MAAOA,GAEf,CACA0kD,OAAO27F,EAAWj5I,EAASkW,EAAM4rB,GACvBm3G,GAGNxgJ,KAAKqgJ,WAAW94I,EAASkW,EAAM4rB,EACnC,CACAo3G,eAAeD,EAAWj5I,EAAS+5B,EAAMnhC,GAC/BqgJ,GAGNxgJ,KAAKo/I,mBAAmB73I,EAAS+5B,EAAMnhC,EAC3C,CACAugJ,eAAen5I,GACI,MAAXA,IACAA,EAAU,+CAEVk3I,GACAz+I,KAAKqgJ,WAAW,8CAA+CrB,EAAOzlD,OAAOonD,sBAAuB,CAChGz9G,UAAW,6BAA8By7G,KAAMF,GAG3D,CACAmC,gBAAgBzgJ,EAAOoH,GACI,iBAAZ,IAGI,MAAXA,IACAA,EAAU,mBAEVpH,EAAQ,GAAKA,GAAS,mBACtBH,KAAKqgJ,WAAW94I,EAASy3I,EAAOzlD,OAAOqmD,cAAe,CAClD18G,UAAW,mBACX28G,MAAO,oBACP1/I,MAAOA,IAGXA,EAAQ,GACRH,KAAKqgJ,WAAW94I,EAASy3I,EAAOzlD,OAAOqmD,cAAe,CAClD18G,UAAW,mBACX28G,MAAO,cACP1/I,MAAOA,IAGnB,CACA0gJ,mBAAmB1yI,EAAO2yI,EAAev5I,GAEjCA,EADAA,EACU,KAAOA,EAGP,GAEV4G,EAAQ2yI,GACR9gJ,KAAKqgJ,WAAW,mBAAqB94I,EAASy3I,EAAOzlD,OAAOwnD,iBAAkB,CAC1E5yI,MAAOA,EACP2yI,cAAeA,IAGnB3yI,EAAQ2yI,GACR9gJ,KAAKqgJ,WAAW,qBAAuB94I,EAASy3I,EAAOzlD,OAAOynD,oBAAqB,CAC/E7yI,MAAOA,EACP2yI,cAAeA,GAG3B,CACAG,SAAS1oC,EAAQ2oC,GACT3oC,IAAWt4G,QAAoB,MAAVs4G,GACrBv4G,KAAKqgJ,WAAW,cAAerB,EAAOzlD,OAAOymD,YAAa,CAAE1+G,KAAM4/G,EAAK5/G,MAE/E,CACA6/G,cAAc5oC,EAAQ2oC,GACd3oC,IAAW2oC,EACXlhJ,KAAKqgJ,WAAW,qCAAuC/8G,KAAKE,UAAU09G,EAAK5/G,MAAQ,6BAA8B09G,EAAOzlD,OAAOonD,sBAAuB,CAAEr/G,KAAMi3E,EAAOj3E,KAAM4B,UAAW,QAEjLq1E,IAAWt4G,QAAoB,MAAVs4G,GAC1Bv4G,KAAKqgJ,WAAW,cAAerB,EAAOzlD,OAAOymD,YAAa,CAAE1+G,KAAM4/G,EAAK5/G,MAE/E,CACAsyB,sBAII,OAHK4qF,IACDA,EAAgB,IAAIQ,EC1TT,iBD4TRR,CACX,CACA5qF,qBAAqBwtF,EAAYC,GAM7B,IALKD,GAAcC,GACfrhJ,KAAKshJ,eAAejB,WAAW,wCAAyCrB,EAAOzlD,OAAOonD,sBAAuB,CACzGz9G,UAAW,kBAGfg7G,EAAwB,CACxB,IAAKkD,EACD,OAEJphJ,KAAKshJ,eAAejB,WAAW,6BAA8BrB,EAAOzlD,OAAOonD,sBAAuB,CAC9Fz9G,UAAW,iBAEnB,CACAi7G,IAAkBiD,EAClBlD,IAA2BmD,CAC/B,CACAztF,mBAAmBsrF,GACf,MAAMC,EAAQf,EAAUc,EAAS/7F,eACpB,MAATg8F,EAIJZ,EAAYY,EAHRH,EAAOsC,eAAelkC,KAAK,uBAAyB8hC,EAI5D,CACAtrF,YAAYnmC,GACR,OAAO,IAAIuxH,EAAOvxH,EACtB,EAEJuxH,EAAOzlD,OAASulD,EAChBE,EAAOK,OAASR,EE5VT,MCGD0C,EAAS,IAAIvC,EDHI,eCKvB,SAASwC,EAAUrhJ,GACf,QAAUA,EAAiB,WAC/B,CACA,SAASshJ,EAASrwF,GACd,OAAIA,EAAM5lD,QAGV4lD,EAAM5lD,MAAQ,WACV,MAAMu5D,EAAO98D,MAAMxG,UAAU+J,MAAMjI,KAAK0H,WACxC,OAAOw2I,EAAS,IAAIppI,WAAWpQ,MAAMxG,UAAU+J,MAAM3G,MAAMusD,EAAO2T,IACtE,GALW3T,CAOf,CACO,SAASswF,EAAYvhJ,GACxB,OAAS,EAAYA,MAAYA,EAAM8F,OAAS,IAAO07I,EAAQxhJ,EACnE,CACA,SAAS+4B,EAAU/4B,GACf,MAA2B,iBAAZ,GAAwBA,GAASA,GAAUA,EAAQ,GAAO,CAC7E,CACO,SAASwhJ,EAAQxhJ,GACpB,GAAa,MAATA,EACA,OAAO,EAEX,GAAIA,EAAMiI,cAAgBiQ,WACtB,OAAO,EAEX,GAAuB,iBAAZ,EACP,OAAO,EAEX,IAAK6gB,EAAU/4B,EAAM8F,SAAW9F,EAAM8F,OAAS,EAC3C,OAAO,EAEX,IAAK,IAAI+E,EAAI,EAAGA,EAAI7K,EAAM8F,OAAQ+E,IAAK,CACnC,MAAMnF,EAAI1F,EAAM6K,GAChB,IAAKkuB,EAAUrzB,IAAMA,EAAI,GAAKA,GAAK,IAC/B,OAAO,CAEf,CACA,OAAO,CACX,CACO,SAAS+7I,EAASzhJ,EAAOirB,GAI5B,GAHKA,IACDA,EAAU,CAAC,GAEQ,iBAAZ,EAAsB,CAC7Bm2H,EAAOX,gBAAgBzgJ,EAAO,0BAC9B,MAAMuE,EAAS,GACf,KAAOvE,GACHuE,EAAOu4F,QAAgB,IAAR98F,GACfA,EAAQmP,SAASpH,OAAO/H,EAAQ,MAKpC,OAHsB,IAAlBuE,EAAOuB,QACPvB,EAAOwB,KAAK,GAETu7I,EAAS,IAAIppI,WAAW3T,GACnC,CAOA,GANI0mB,EAAQy2H,oBAAyC,iBAAZ,GAAkD,OAA1B1hJ,EAAM86B,UAAU,EAAG,KAChF96B,EAAQ,KAAOA,GAEfqhJ,EAAUrhJ,KACVA,EAAQA,EAAM2hJ,eAEd,EAAY3hJ,GAAQ,CACpB,IAAIgxD,EAAMhxD,EAAM86B,UAAU,GACtBk2B,EAAIlrD,OAAS,IACU,SAAnBmlB,EAAQ22H,OACR5wF,EAAM,IAAMA,EAEY,UAAnB/lC,EAAQ22H,OACb5wF,GAAO,IAGPowF,EAAOnC,mBAAmB,yBAA0B,QAASj/I,IAGrE,MAAMuE,EAAS,GACf,IAAK,IAAIsG,EAAI,EAAGA,EAAImmD,EAAIlrD,OAAQ+E,GAAK,EACjCtG,EAAOwB,KAAKoJ,SAAS6hD,EAAIl2B,UAAUjwB,EAAGA,EAAI,GAAI,KAElD,OAAOy2I,EAAS,IAAIppI,WAAW3T,GACnC,CACA,OAAIi9I,EAAQxhJ,GACDshJ,EAAS,IAAIppI,WAAWlY,IAE5BohJ,EAAOnC,mBAAmB,yBAA0B,QAASj/I,EACxE,CACO,SAAS6B,EAAOggJ,GACnB,MAAMC,EAAUD,EAAMv1I,KAAIyyD,GAAQ0iF,EAAS1iF,KACrCj5D,EAASg8I,EAAQj1G,QAAO,CAACk1G,EAAOhjF,IAAUgjF,EAAQhjF,EAAKj5D,QAAS,GAChEvB,EAAS,IAAI2T,WAAWpS,GAK9B,OAJAg8I,EAAQj1G,QAAO,CAACke,EAAQokB,KACpB5qE,EAAOsI,IAAIsiE,EAAQpkB,GACZA,EAASokB,EAAOrpE,SACxB,GACIw7I,EAAS/8I,EACpB,CACO,SAASy9I,EAAWhiJ,GACvB,IAAIuE,EAASk9I,EAASzhJ,GACtB,GAAsB,IAAlBuE,EAAOuB,OACP,OAAOvB,EAGX,IAAIu/D,EAAQ,EACZ,KAAOA,EAAQv/D,EAAOuB,QAA4B,IAAlBvB,EAAOu/D,IACnCA,IAMJ,OAHIA,IACAv/D,EAASA,EAAO8G,MAAMy4D,IAEnBv/D,CACX,CACO,SAAS09I,EAAQjiJ,EAAO8F,IAC3B9F,EAAQyhJ,EAASzhJ,IACP8F,OAASA,GACfs7I,EAAOnC,mBAAmB,qBAAsB,QAASn0I,UAAU,IAEvE,MAAMvG,EAAS,IAAI2T,WAAWpS,GAE9B,OADAvB,EAAOsI,IAAI7M,EAAO8F,EAAS9F,EAAM8F,QAC1Bw7I,EAAS/8I,EACpB,CACO,SAAS,EAAYvE,EAAO8F,GAC/B,QAAuB,iBAAZ,IAAyB9F,EAAMwJ,MAAM,qBAG5C1D,GAAU9F,EAAM8F,SAAW,EAAI,EAAIA,EAI3C,CACA,MAAMo8I,EAAgB,mBACf,SAASC,EAAQniJ,EAAOirB,GAI3B,GAHKA,IACDA,EAAU,CAAC,GAEQ,iBAAZ,EAAsB,CAC7Bm2H,EAAOX,gBAAgBzgJ,EAAO,yBAC9B,IAAIgxD,EAAM,GACV,KAAOhxD,GACHgxD,EAAMkxF,EAAsB,GAARliJ,GAAegxD,EACnChxD,EAAQ4N,KAAK8iD,MAAM1wD,EAAQ,IAE/B,OAAIgxD,EAAIlrD,QACAkrD,EAAIlrD,OAAS,IACbkrD,EAAM,IAAMA,GAET,KAAOA,GAEX,MACX,CACA,GAAuB,iBAAZ,EAEP,OADAhxD,EAAQA,EAAMiH,SAAS,KACbnB,OAAS,EACP,MAAQ9F,EAEb,KAAOA,EAKlB,GAHIirB,EAAQy2H,oBAAyC,iBAAZ,GAAkD,OAA1B1hJ,EAAM86B,UAAU,EAAG,KAChF96B,EAAQ,KAAOA,GAEfqhJ,EAAUrhJ,GACV,OAAOA,EAAM2hJ,cAEjB,GAAI,EAAY3hJ,GAYZ,OAXIA,EAAM8F,OAAS,IACQ,SAAnBmlB,EAAQ22H,OACR5hJ,EAAQ,MAAQA,EAAM86B,UAAU,GAER,UAAnB7P,EAAQ22H,OACb5hJ,GAAS,IAGTohJ,EAAOnC,mBAAmB,yBAA0B,QAASj/I,IAG9DA,EAAMgjD,cAEjB,GAAIw+F,EAAQxhJ,GAAQ,CAChB,IAAIuE,EAAS,KACb,IAAK,IAAIsG,EAAI,EAAGA,EAAI7K,EAAM8F,OAAQ+E,IAAK,CACnC,IAAInF,EAAI1F,EAAM6K,GACdtG,GAAU29I,GAAmB,IAAJx8I,IAAa,GAAKw8I,EAAkB,GAAJx8I,EAC7D,CACA,OAAOnB,CACX,CACA,OAAO68I,EAAOnC,mBAAmB,wBAAyB,QAASj/I,EACvE,CASO,SAASoiJ,EAAcn4I,GAC1B,GAAsB,iBAAX,EACPA,EAAOk4I,EAAQl4I,QAEd,IAAK,EAAYA,IAAUA,EAAKnE,OAAS,EAC1C,OAAO,KAEX,OAAQmE,EAAKnE,OAAS,GAAK,CAC/B,CACO,SAASu8I,EAAap4I,EAAM8gD,EAAQu3F,GAQvC,MAPsB,iBAAX,EACPr4I,EAAOk4I,EAAQl4I,KAET,EAAYA,IAAUA,EAAKnE,OAAS,IAC1Cs7I,EAAOnC,mBAAmB,kBAAmB,QAASh1I,GAE1D8gD,EAAS,EAAI,EAAIA,EACA,MAAbu3F,EACO,KAAOr4I,EAAK6wB,UAAUiwB,EAAQ,EAAI,EAAIu3F,GAE1C,KAAOr4I,EAAK6wB,UAAUiwB,EACjC,CACO,SAASw3F,EAAUV,GACtB,IAAIt9I,EAAS,KAIb,OAHAs9I,EAAMh2I,SAASkzD,IACXx6D,GAAU49I,EAAQpjF,GAAMjkC,UAAU,EAAE,IAEjCv2B,CACX,CACO,SAASi+I,EAASxiJ,GACrB,MAAMyiJ,EAAUC,EAAcP,EAAQniJ,EAAO,CAAE4hJ,OAAQ,UACvD,MAAgB,OAAZa,EACO,MAEJA,CACX,CACO,SAASC,EAAc1iJ,GACH,iBAAZ,IACPA,EAAQmiJ,EAAQniJ,IAEf,EAAYA,IACbohJ,EAAOnC,mBAAmB,qBAAsB,QAASj/I,GAE7DA,EAAQA,EAAM86B,UAAU,GACxB,IAAIiwB,EAAS,EACb,KAAOA,EAAS/qD,EAAM8F,QAA4B,MAAlB9F,EAAM+qD,IAClCA,IAEJ,MAAO,KAAO/qD,EAAM86B,UAAUiwB,EAClC,CACO,SAAS43F,EAAW3iJ,EAAO8F,GAU9B,IATuB,iBAAZ,EACP9F,EAAQmiJ,EAAQniJ,GAEV,EAAYA,IAClBohJ,EAAOnC,mBAAmB,qBAAsB,QAASj/I,GAEzDA,EAAM8F,OAAS,EAAIA,EAAS,GAC5Bs7I,EAAOnC,mBAAmB,qBAAsB,QAASn0I,UAAU,IAEhE9K,EAAM8F,OAAS,EAAIA,EAAS,GAC/B9F,EAAQ,MAAQA,EAAM86B,UAAU,GAEpC,OAAO96B,CACX,CACO,SAAS4iJ,EAAev7I,GAC3B,MAAM9C,EAAS,CACX2jC,EAAG,KACHt9B,EAAG,KACHi4I,IAAK,KACLx6G,cAAe,EACf3iC,EAAG,EACHo9I,YAAa,KACb7Q,QAAS,MAEb,GAAIsP,EAAYl6I,GAAY,CACxB,IAAIs8C,EAAQ89F,EAASp6I,GAEA,KAAjBs8C,EAAM79C,QAENvB,EAAOmB,EAAI,IAAMi+C,EAAM,KAAO,GAC9BA,EAAM,KAAO,IACbp/C,EAAO2jC,EAAIi6G,EAAQx+F,EAAMt4C,MAAM,EAAG,KAClC9G,EAAOqG,EAAIu3I,EAAQx+F,EAAMt4C,MAAM,GAAI,MAEb,KAAjBs4C,EAAM79C,QACXvB,EAAO2jC,EAAIi6G,EAAQx+F,EAAMt4C,MAAM,EAAG,KAClC9G,EAAOqG,EAAIu3I,EAAQx+F,EAAMt4C,MAAM,GAAI,KACnC9G,EAAOmB,EAAIi+C,EAAM,KAGjBy9F,EAAOnC,mBAAmB,2BAA4B,YAAa53I,GAGnE9C,EAAOmB,EAAI,KACM,IAAbnB,EAAOmB,GAAwB,IAAbnB,EAAOmB,EACzBnB,EAAOmB,GAAK,GAGZ07I,EAAOnC,mBAAmB,2BAA4B,YAAa53I,IAI3E9C,EAAO8jC,cAAgB,EAAK9jC,EAAOmB,EAAI,EAEnCnB,EAAO8jC,gBACPsb,EAAM,KAAO,KAEjBp/C,EAAOs+I,IAAMV,EAAQx+F,EAAMt4C,MAAM,GAAI,IACzC,KACK,CAQD,GAPA9G,EAAO2jC,EAAI7gC,EAAU6gC,EACrB3jC,EAAOqG,EAAIvD,EAAUuD,EACrBrG,EAAOmB,EAAI2B,EAAU3B,EACrBnB,EAAO8jC,cAAgBhhC,EAAUghC,cACjC9jC,EAAOs+I,IAAMx7I,EAAUw7I,IAGL,MAAdt+I,EAAOs+I,IAAa,CACpB,MAAMjiI,EAAKqhI,EAAQR,EAASl9I,EAAOs+I,KAAM,IACzCt+I,EAAOs+I,IAAMV,EAAQvhI,GAErB,MAAMynB,EAAkBznB,EAAG,IAAM,IAAO,EAAI,EAChB,MAAxBrc,EAAO8jC,cACP9jC,EAAO8jC,cAAgBA,EAElB9jC,EAAO8jC,gBAAkBA,GAC9B+4G,EAAOnC,mBAAmB,uCAAwC,YAAa53I,GAGnFuZ,EAAG,IAAM,IACT,MAAMhW,EAAIu3I,EAAQvhI,GACF,MAAZrc,EAAOqG,EACPrG,EAAOqG,EAAIA,EAENrG,EAAOqG,IAAMA,GAClBw2I,EAAOnC,mBAAmB,2BAA4B,YAAa53I,EAE3E,CAEA,GAA4B,MAAxB9C,EAAO8jC,cACS,MAAZ9jC,EAAOmB,EACP07I,EAAOnC,mBAAmB,wCAAyC,YAAa53I,GAE9D,IAAb9C,EAAOmB,GAAwB,IAAbnB,EAAOmB,EAC9BnB,EAAO8jC,cAAgB9jC,EAAOmB,EAG9BnB,EAAO8jC,cAAgB,EAAK9jC,EAAOmB,EAAI,OAI3C,GAAgB,MAAZnB,EAAOmB,EACPnB,EAAOmB,EAAI,GAAKnB,EAAO8jC,kBAEtB,CACD,MAAM06G,EAAsB,IAAbx+I,EAAOmB,GAAwB,IAAbnB,EAAOmB,EAAWnB,EAAOmB,EAAK,EAAKnB,EAAOmB,EAAI,EAC3EnB,EAAO8jC,gBAAkB06G,GACzB3B,EAAOnC,mBAAmB,qCAAsC,YAAa53I,EAErF,CAEY,MAAZ9C,EAAO2jC,GAAc,EAAY3jC,EAAO2jC,GAIxC3jC,EAAO2jC,EAAIy6G,EAAWp+I,EAAO2jC,EAAG,IAHhCk5G,EAAOnC,mBAAmB,iCAAkC,YAAa53I,GAK7D,MAAZ9C,EAAOqG,GAAc,EAAYrG,EAAOqG,GAIxCrG,EAAOqG,EAAI+3I,EAAWp+I,EAAOqG,EAAG,IAHhCw2I,EAAOnC,mBAAmB,iCAAkC,YAAa53I,GAK7E,MAAMuZ,EAAK6gI,EAASl9I,EAAOqG,GACvBgW,EAAG,IAAM,KACTwgI,EAAOnC,mBAAmB,2BAA4B,YAAa53I,GAEnE9C,EAAO8jC,gBACPznB,EAAG,IAAM,KAEb,MAAMiiI,EAAMV,EAAQvhI,GAChBrc,EAAOs+I,MACF,EAAYt+I,EAAOs+I,MACpBzB,EAAOnC,mBAAmB,wBAAyB,YAAa53I,GAEpE9C,EAAOs+I,IAAMF,EAAWp+I,EAAOs+I,IAAK,KAGtB,MAAdt+I,EAAOs+I,IACPt+I,EAAOs+I,IAAMA,EAERt+I,EAAOs+I,MAAQA,GACpBzB,EAAOnC,mBAAmB,iCAAkC,YAAa53I,EAEjF,CAGA,OAFA9C,EAAOu+I,YAAcv+I,EAAOs+I,IAC5Bt+I,EAAO0tI,QAAU1tI,EAAO2jC,EAAI3jC,EAAOu+I,YAAYhoH,UAAU,GAClDv2B,CACX,CACO,SAASy+I,EAAc37I,GAE1B,OAAO86I,EAAQtgJ,EAAO,EADtBwF,EAAYu7I,EAAev7I,IAEb6gC,EACV7gC,EAAUuD,EACTvD,EAAUghC,cAAgB,OAAS,SAE5C,yBCvZO,MAAM,EAAU,kBCSvB,IAAIi1D,EAAK,OAIT,MAAM,EAAS,IAAIuhD,EAAO,GACpBoE,EAAoB,CAAC,EACrBC,EAAW,iBAUjB,IAAIC,GAAuB,EACpB,MAAMC,EACTn7I,YAAYo7I,EAAkBryF,GACtBqyF,IAAqBJ,GACrB,EAAO/C,WAAW,uDAAwDrB,EAAOzlD,OAAOonD,sBAAuB,CAC3Gz9G,UAAW,oBAGnBljC,KAAKyjJ,KAAOtyF,EACZnxD,KAAK0jJ,cAAe,EACpBzjJ,OAAOizD,OAAOlzD,KAClB,CACA6gG,SAAS1gG,GACL,OAAOwjJ,EAAYC,EAAK5jJ,MAAM6gG,SAAS1gG,GAC3C,CACAsgG,OAAOtgG,GACH,OAAOwjJ,EAAYC,EAAK5jJ,MAAMygG,OAAOtgG,GACzC,CACAghC,MACI,MAAqB,MAAjBnhC,KAAKyjJ,KAAK,GACHF,EAAUn4I,KAAKpL,KAAKyjJ,KAAKxoH,UAAU,IAEvCj7B,IACX,CACA4J,IAAIC,GACA,OAAO85I,EAAYC,EAAK5jJ,MAAM4J,IAAIg6I,EAAK/5I,IAC3C,CACAG,IAAIH,GACA,OAAO85I,EAAYC,EAAK5jJ,MAAMgK,IAAI45I,EAAK/5I,IAC3C,CACAK,IAAIL,GAKA,OAJU05I,EAAUn4I,KAAKvB,GACnBmlE,UACF60E,EAAW,mBAAoB,OAE5BF,EAAYC,EAAK5jJ,MAAMkK,IAAI05I,EAAK/5I,IAC3C,CACAI,IAAIJ,GACA,OAAO85I,EAAYC,EAAK5jJ,MAAMiK,IAAI25I,EAAK/5I,IAC3C,CACAvJ,IAAIuJ,GACA,MAAM1J,EAAQyjJ,EAAK/5I,GAInB,OAHI1J,EAAM8gG,SACN4iD,EAAW,mBAAoB,OAE5BF,EAAYC,EAAK5jJ,MAAMwrG,KAAKrrG,GACvC,CACA6N,IAAInE,GACA,MAAM1J,EAAQyjJ,EAAK/5I,GAInB,OAHI1J,EAAM8gG,SACN4iD,EAAW,iBAAkB,OAE1BF,EAAYC,EAAK5jJ,MAAMgO,IAAI7N,GACtC,CACAshG,IAAI53F,GACA,MAAM1J,EAAQyjJ,EAAK/5I,GAInB,OAHI7J,KAAKqkI,cAAgBlkI,EAAM8gG,UAC3B4iD,EAAW,yBAA0B,OAElCF,EAAYC,EAAK5jJ,MAAMyhG,IAAIthG,GACtC,CACAkhG,GAAGx3F,GACC,MAAM1J,EAAQyjJ,EAAK/5I,GAInB,OAHI7J,KAAKqkI,cAAgBlkI,EAAM8gG,UAC3B4iD,EAAW,yBAA0B,MAElCF,EAAYC,EAAK5jJ,MAAMqhG,GAAGlhG,GACrC,CACA0hG,IAAIh4F,GACA,MAAM1J,EAAQyjJ,EAAK/5I,GAInB,OAHI7J,KAAKqkI,cAAgBlkI,EAAM8gG,UAC3B4iD,EAAW,yBAA0B,OAElCF,EAAYC,EAAK5jJ,MAAM6hG,IAAI1hG,GACtC,CACAq3D,KAAKr3D,GAID,OAHIH,KAAKqkI,cAAgBlkI,EAAQ,IAC7B0jJ,EAAW,iBAAkB,QAE1BF,EAAYC,EAAK5jJ,MAAM4qG,MAAMzqG,GACxC,CACA2tG,IAAI3tG,GAIA,OAHIH,KAAKqkI,cAAgBlkI,EAAQ,IAC7B0jJ,EAAW,iBAAkB,OAE1BF,EAAYC,EAAK5jJ,MAAMuqG,KAAKpqG,GACvC,CACA2jJ,IAAI3jJ,GAIA,OAHIH,KAAKqkI,cAAgBlkI,EAAQ,IAC7B0jJ,EAAW,iBAAkB,OAE1BF,EAAYC,EAAK5jJ,MAAMyqG,KAAKtqG,GACvC,CACA8sG,GAAGpjG,GACC,OAAO+5I,EAAK5jJ,MAAMitG,GAAG22C,EAAK/5I,GAC9B,CACAm3B,GAAGn3B,GACC,OAAO+5I,EAAK5jJ,MAAMghC,GAAG4iH,EAAK/5I,GAC9B,CACAkjG,IAAIljG,GACA,OAAO+5I,EAAK5jJ,MAAM+sG,IAAI62C,EAAK/5I,GAC/B,CACAo3B,GAAGp3B,GACC,OAAO+5I,EAAK5jJ,MAAMihC,GAAG2iH,EAAK/5I,GAC9B,CACA+iG,IAAI/iG,GACA,OAAO+5I,EAAK5jJ,MAAM4sG,IAAIg3C,EAAK/5I,GAC/B,CACAw6H,aACI,MAAyB,MAAjBrkI,KAAKyjJ,KAAK,EACtB,CACAz0E,SACI,OAAO40E,EAAK5jJ,MAAMgvE,QACtB,CACAx/D,WACI,IACI,OAAOo0I,EAAK5jJ,MAAMwP,UAItB,CAFA,MAAOuvD,GACH8kF,EAAW,WAAY,WAAY7jJ,KAAKoH,WAC5C,CACA,OAAO,IACX,CACA28I,WACI,IACI,OAAO19F,OAAOrmD,KAAKoH,WAEX,CAAZ,MAAO5C,GAAK,CACZ,OAAO,EAAO67I,WAAW,wCAAyCrB,EAAOzlD,OAAOonD,sBAAuB,CACnGxgJ,MAAOH,KAAKoH,YAEpB,CACAA,WAgBI,OAdI6D,UAAUhF,OAAS,IACE,KAAjBgF,UAAU,GACLq4I,IACDA,GAAuB,EACvB,EAAOlmC,KAAK,0EAGM,KAAjBnyG,UAAU,GACf,EAAOo1I,WAAW,iFAAkFrB,EAAOzlD,OAAOynD,oBAAqB,CAAC,GAGxI,EAAOX,WAAW,gDAAiDrB,EAAOzlD,OAAOynD,oBAAqB,CAAC,IAGxG4C,EAAK5jJ,MAAMoH,SAAS,GAC/B,CACA06I,cACI,OAAO9hJ,KAAKyjJ,IAChB,CACArmG,OAAOv7C,GACH,MAAO,CAAEuP,KAAM,YAAa+/C,IAAKnxD,KAAK8hJ,cAC1C,CACAluF,YAAYzzD,GACR,GAAIA,aAAiBojJ,EACjB,OAAOpjJ,EAEX,GAAuB,iBAAZ,EACP,OAAIA,EAAMwJ,MAAM,oBACL,IAAI45I,EAAUH,EAAmB3nF,EAAMt7D,IAE9CA,EAAMwJ,MAAM,cACL,IAAI45I,EAAUH,EAAmB3nF,EAAM,IAAIgiC,EAAGt9F,KAElD,EAAOi/I,mBAAmB,2BAA4B,QAASj/I,GAE1E,GAAuB,iBAAZ,EAOP,OANIA,EAAQ,GACR0jJ,EAAW,YAAa,iBAAkB1jJ,IAE1CA,GAASkjJ,GAAYljJ,IAAUkjJ,IAC/BQ,EAAW,WAAY,iBAAkB1jJ,GAEtCojJ,EAAUn4I,KAAKlD,OAAO/H,IAEjC,MAAM6jJ,EAAW7jJ,EACjB,GAA0B,iBAAf,EACP,OAAOojJ,EAAUn4I,KAAK44I,EAAS58I,YAEnC,GAAIu6I,EAAQqC,GACR,OAAOT,EAAUn4I,KAAKk3I,EAAQ0B,IAElC,GAAIA,EAEA,GAAIA,EAASlC,YAAa,CACtB,MAAM3wF,EAAM6yF,EAASlC,cACrB,GAAqB,iBAAV,EACP,OAAOyB,EAAUn4I,KAAK+lD,EAE9B,KACK,CAED,IAAIA,EAAM6yF,EAASP,KAKnB,GAHW,MAAPtyF,GAAiC,cAAlB6yF,EAAS5yI,OACxB+/C,EAAM6yF,EAAS7yF,KAEE,iBAAV,IACH,EAAYA,IAAoB,MAAXA,EAAI,IAAc,EAAYA,EAAIl2B,UAAU,KACjE,OAAOsoH,EAAUn4I,KAAK+lD,EAGlC,CAEJ,OAAO,EAAOiuF,mBAAmB,0BAA2B,QAASj/I,EACzE,CACAyzD,mBAAmBzzD,GACf,SAAUA,IAASA,EAAMujJ,aAC7B,EAGJ,SAASjoF,EAAMt7D,GAEX,GAAuB,iBAAZ,EACP,OAAOs7D,EAAMt7D,EAAMiH,SAAS,KAGhC,GAAiB,MAAbjH,EAAM,GAUN,MANiB,OAFjBA,EAAQA,EAAM86B,UAAU,IAEd,IACN,EAAOmkH,mBAAmB,cAAe,QAASj/I,GAKxC,UAFdA,EAAQs7D,EAAMt7D,IAGHA,EAGJ,IAAMA,EAOjB,GAJ8B,OAA1BA,EAAM86B,UAAU,EAAG,KACnB96B,EAAQ,KAAOA,GAGL,OAAVA,EACA,MAAO,OAOX,IAJIA,EAAM8F,OAAS,IACf9F,EAAQ,MAAQA,EAAM86B,UAAU,IAG7B96B,EAAM8F,OAAS,GAA+B,SAA1B9F,EAAM86B,UAAU,EAAG,IAC1C96B,EAAQ,KAAOA,EAAM86B,UAAU,GAEnC,OAAO96B,CACX,CACA,SAASwjJ,EAAYxjJ,GACjB,OAAOojJ,EAAUn4I,KAAKqwD,EAAMt7D,GAChC,CACA,SAASyjJ,EAAKzjJ,GACV,MAAMgxD,EAAMoyF,EAAUn4I,KAAKjL,GAAO2hJ,cAClC,MAAe,MAAX3wF,EAAI,GACG,IAAKssC,EAAG,IAAMtsC,EAAIl2B,UAAU,GAAI,IAEpC,IAAIwiE,EAAGtsC,EAAIl2B,UAAU,GAAI,GACpC,CACA,SAAS4oH,EAAWhE,EAAO38G,EAAW/iC,GAClC,MAAMkpC,EAAS,CAAEw2G,MAAOA,EAAO38G,UAAWA,GAI1C,OAHa,MAAT/iC,IACAkpC,EAAOlpC,MAAQA,GAEZ,EAAOkgJ,WAAWR,EAAOb,EAAOzlD,OAAOqmD,cAAev2G,EACjE,CC3RA,MAAM,EAAS,IAAI21G,ECZI,oBDahB,SAASiF,GAAe30E,EAAQhuC,EAAMnhC,GACzCF,OAAOC,eAAeovE,EAAQhuC,EAAM,CAChCp+B,YAAY,EACZ/C,MAAOA,EACP6C,UAAU,GAElB,CAEO,SAASkhJ,GAAU7mD,EAAMx7F,GAC5B,IAAK,IAAImJ,EAAI,EAAGA,EAAI,GAAIA,IAAK,CACzB,GAAIqyF,EAAKx7F,GACL,OAAOw7F,EAAKx7F,GAEhB,IAAKw7F,EAAK57F,WAAyC,iBAApB47F,EAAc,UACzC,MAEJA,EAAOp9F,OAAOypD,eAAe2zC,EAAK57F,WAAW2G,WACjD,CACA,OAAO,IACX,CACO,SAAS+7I,GAAkB70E,GAC9B,OAjCkDxrE,EAiCjC9D,KAjC0C+D,OAiCpC,EAjCmDE,EAiCnC,YACnC,MAAM8wG,EAAW90G,OAAO8L,KAAKujE,GAAQ7iE,KAAK5K,IACtC,MAAM1B,EAAQmvE,EAAOztE,GACrB,OAAOqC,QAAQC,QAAQhE,GAAOyE,MAAMiB,IAAM,CAAGhE,IAAKA,EAAK1B,MAAO0F,KAAK,IAGvE,aADsB3B,QAAQ6sC,IAAIgkE,IACnB/nE,QAAO,CAACk1G,EAAOx9I,KAC1Bw9I,EAAOx9I,EAAU,KAAKA,EAAOvE,MACtB+hJ,IACR,CAAC,EACR,EAzCO,KAFgEl+I,OAiCxC,KA/BbA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUlE,GAAS,IAAMmE,EAAKL,EAAUM,KAAKpE,GAAkC,CAAvB,MAAOqE,GAAKJ,EAAOI,EAAI,CAAE,CAC1F,SAASC,EAAStE,GAAS,IAAMmE,EAAKL,EAAiB,MAAE9D,GAAkC,CAAvB,MAAOqE,GAAKJ,EAAOI,EAAI,CAAE,CAC7F,SAASF,EAAKI,GAJlB,IAAevE,EAIauE,EAAOC,KAAOR,EAAQO,EAAOvE,QAJ1CA,EAIyDuE,EAAOvE,MAJhDA,aAAiB6D,EAAI7D,EAAQ,IAAI6D,GAAE,SAAUG,GAAWA,EAAQhE,EAAQ,KAIjByE,KAAKP,EAAWI,EAAW,CAC7GH,GAAML,EAAYA,EAAUY,MAAMf,EAASC,GAAc,KAAKQ,OAClE,IAPwC,IAAUT,EAASC,EAAYC,EAAGC,CA4C9E,CACO,SAASmgJ,GAAgB90E,EAAQ+0E,GAC/B/0E,GAA8B,iBAAb,GAClB,EAAO8vE,mBAAmB,iBAAkB,SAAU9vE,GAE1DrvE,OAAO8L,KAAKujE,GAAQtjE,SAASnK,IACpBwiJ,EAAWxiJ,IACZ,EAAOu9I,mBAAmB,wBAA0Bv9I,EAAK,eAAiBA,EAAKytE,EACnF,GAER,CACO,SAASg1E,GAAYh1E,GACxB,MAAM5qE,EAAS,CAAC,EAChB,IAAK,MAAM7C,KAAOytE,EACd5qE,EAAO7C,GAAOytE,EAAOztE,GAEzB,OAAO6C,CACX,CACA,MAAM6/I,GAAS,CAAEC,QAAQ,EAAMruC,SAAS,EAAM,UAAY,EAAMlyD,QAAQ,EAAM6f,QAAQ,GACtF,SAAS2gF,GAAUn1E,GAEf,GAAIA,SAA2Ci1E,UAAc,GACzD,OAAO,EAEX,GAAIt8I,MAAM6D,QAAQwjE,IAA+B,iBAAb,EAAuB,CACvD,IAAKrvE,OAAOykJ,SAASp1E,GACjB,OAAO,EAEX,MAAMvjE,EAAO9L,OAAO8L,KAAKujE,GACzB,IAAK,IAAItkE,EAAI,EAAGA,EAAIe,EAAK9F,OAAQ+E,IAAK,CAClC,IAAI7K,EAAQ,KACZ,IACIA,EAAQmvE,EAAOvjE,EAAKf,GAMxB,CAJA,MAAO+zD,GAGH,QACJ,CACA,IAAK0lF,GAAUtkJ,GACX,OAAO,CAEf,CACA,OAAO,CACX,CACA,OAAO,EAAOi/I,mBAAmB,0BAA0B,EAAY,SAAU9vE,EACrF,CAGA,SAASq1E,GAAUr1E,GACf,GAAIm1E,GAAUn1E,GACV,OAAOA,EAGX,GAAIrnE,MAAM6D,QAAQwjE,GACd,OAAOrvE,OAAOizD,OAAOoc,EAAO7iE,KAAKyyD,GAAS0lF,GAAS1lF,MAEvD,GAAwB,iBAAb,EAAuB,CAC9B,MAAMx6D,EAAS,CAAC,EAChB,IAAK,MAAM7C,KAAOytE,EAAQ,CACtB,MAAMnvE,EAAQmvE,EAAOztE,QACPgB,IAAV1C,GAGJ8jJ,GAAev/I,EAAQ7C,EAAK+iJ,GAASzkJ,GACzC,CACA,OAAOuE,CACX,CACA,OAAO,EAAO06I,mBAAmB,0BAA0B,EAAY,SAAU9vE,EACrF,CACO,SAASs1E,GAASt1E,GACrB,OAAOq1E,GAAUr1E,EACrB,CACO,MAAM/wC,GACTn2B,YAAYiU,GACR,IAAK,MAAMxa,KAAOwa,EACdrc,KAAK6B,GAAO+iJ,GAASvoI,EAAKxa,GAElC,EE3HG,MAAM,GAAU,YCMjB,GAAS,IAAIm9I,EAAO,IACnB,SAAS6F,GAAkBngJ,GAE9B,MAAM60F,EAAS,GACTurD,EAAc,SAAU14H,EAAMkjD,GAChC,GAAKrnE,MAAM6D,QAAQwjE,GAGnB,IAAK,IAAIztE,KAAOytE,EAAQ,CACpB,MAAMy1E,EAAY34H,EAAK5gB,QACvBu5I,EAAU7+I,KAAKrE,GACf,IACIijJ,EAAYC,EAAWz1E,EAAOztE,GAIlC,CAFA,MAAOk9D,GACHw6B,EAAOrzF,KAAK,CAAEkmB,KAAM24H,EAAWhmF,MAAOA,GAC1C,CACJ,CACJ,EAEA,OADA+lF,EAAY,GAAIpgJ,GACT60F,CACX,CACO,MAAMyrD,GACT58I,YAAYk5B,EAAMlwB,EAAM6zI,EAAWC,GAE/BllJ,KAAKshC,KAAOA,EACZthC,KAAKoR,KAAOA,EACZpR,KAAKilJ,UAAYA,EACjBjlJ,KAAKklJ,QAAUA,CACnB,CACAC,YAAY59I,EAASpH,GACjB,GAAOi/I,mBAAmB73I,EAASvH,KAAKilJ,UAAW9kJ,EACvD,EAEG,MAAMyuE,GACTxmE,YAAY01F,GACRmmD,GAAejkJ,KAAM,WAAY89F,GAAY,IAC7C99F,KAAKouB,MAAQ,GACbpuB,KAAKolJ,YAAc,EACnBplJ,KAAKqlJ,SAAW,IAAIhtI,WAAWylF,EACnC,CACI1zF,WACA,OAAOs4I,EAAU1iJ,KAAKouB,MAC1B,CACInoB,aAAW,OAAOjG,KAAKolJ,WAAa,CACxCE,WAAWl7I,GAGP,OAFApK,KAAKouB,MAAMloB,KAAKkE,GAChBpK,KAAKolJ,aAAeh7I,EAAKnE,OAClBmE,EAAKnE,MAChB,CACAs/I,aAAa52E,GACT,OAAO3uE,KAAKslJ,WAAWtjJ,EAAO2sE,EAAOvgD,OACzC,CAEAo3H,WAAWrlJ,GACP,IAAI2jD,EAAQ89F,EAASzhJ,GACrB,MAAMslJ,EAAgB3hG,EAAM79C,OAASjG,KAAK89F,SAI1C,OAHI2nD,IACA3hG,EAAQ9hD,EAAO,CAAC8hD,EAAO9jD,KAAKqlJ,SAAS75I,MAAMi6I,MAExCzlJ,KAAKslJ,WAAWxhG,EAC3B,CACA4hG,UAAUvlJ,GACN,IAAI2jD,EAAQ89F,EAAS2B,EAAUn4I,KAAKjL,IAUpC,OATI2jD,EAAM79C,OAASjG,KAAK89F,UACpB,GAAOuiD,WAAW,sBAAuBrB,EAAOzlD,OAAOosD,eAAgB,CACnE1/I,OAAQjG,KAAK89F,SACb5yC,OAAQpH,EAAM79C,SAGlB69C,EAAM79C,OAASjG,KAAK89F,WACpBh6C,EAAQ9hD,EAAO,CAAChC,KAAKqlJ,SAAS75I,MAAMs4C,EAAM79C,OAASjG,KAAK89F,UAAWh6C,KAEhEA,CACX,CAEA8hG,WAAWzlJ,GACP,OAAOH,KAAKslJ,WAAWtlJ,KAAK0lJ,UAAUvlJ,GAC1C,CACA0lJ,sBACI,MAAM36F,EAASlrD,KAAKouB,MAAMnoB,OAG1B,OAFAjG,KAAKouB,MAAMloB,KAAKlG,KAAKqlJ,UACrBrlJ,KAAKolJ,aAAeplJ,KAAK89F,SACjB39F,IACJH,KAAKouB,MAAM88B,GAAUlrD,KAAK0lJ,UAAUvlJ,EAAM,CAElD,EAEG,MAAMgvE,GACT/mE,YAAYgC,EAAM0zF,EAAUgoD,EAAYC,GACpC9B,GAAejkJ,KAAM,QAAS4hJ,EAASx3I,IACvC65I,GAAejkJ,KAAM,WAAY89F,GAAY,IAC7CmmD,GAAejkJ,KAAM,cAAe8lJ,GACpC7B,GAAejkJ,KAAM,aAAc+lJ,GACnC/lJ,KAAKgmJ,QAAU,CACnB,CACI57I,WAAS,OAAOk4I,EAAQtiJ,KAAKouB,MAAQ,CACrC63H,eAAa,OAAOjmJ,KAAKgmJ,OAAS,CAEtCpyF,cAActyB,EAAMnhC,GAChB,IAAIwJ,EAAQ23B,EAAK33B,MAAM,mBAIvB,OAHIA,GAAS2F,SAAS3F,EAAM,KAAO,KAC/BxJ,EAAQA,EAAMqP,YAEXrP,CACX,CACA+lJ,OAAO5kH,EAAMnhC,GACT,OAAIH,KAAKmmJ,YACEnmJ,KAAKmmJ,YAAY7kH,EAAMnhC,GAE3BgvE,GAAO+2E,OAAO5kH,EAAMnhC,EAC/B,CACAimJ,WAAWl7F,EAAQjlD,EAAQogJ,GACvB,IAAIC,EAAgBv4I,KAAK1E,KAAKpD,EAASjG,KAAK89F,UAAY99F,KAAK89F,SAY7D,OAXI99F,KAAKgmJ,QAAUM,EAAgBtmJ,KAAKouB,MAAMnoB,SACtCjG,KAAK+lJ,YAAcM,GAASrmJ,KAAKgmJ,QAAU//I,GAAUjG,KAAKouB,MAAMnoB,OAChEqgJ,EAAgBrgJ,EAGhB,GAAOo6I,WAAW,qBAAsBrB,EAAOzlD,OAAOosD,eAAgB,CAClE1/I,OAAQjG,KAAKouB,MAAMnoB,OACnBilD,OAAQlrD,KAAKgmJ,QAAUM,KAI5BtmJ,KAAKouB,MAAM5iB,MAAMxL,KAAKgmJ,QAAShmJ,KAAKgmJ,QAAUM,EACzD,CACAC,UAAUr7F,GACN,OAAO,IAAIikB,GAAOnvE,KAAKouB,MAAM5iB,MAAMxL,KAAKgmJ,QAAU96F,GAASlrD,KAAK89F,SAAU99F,KAAKmmJ,YAAanmJ,KAAK+lJ,WACrG,CACAS,UAAUvgJ,EAAQogJ,GACd,IAAIviG,EAAQ9jD,KAAKomJ,WAAW,EAAGngJ,IAAUogJ,GAGzC,OAFArmJ,KAAKgmJ,SAAWliG,EAAM79C,OAEf69C,EAAMt4C,MAAM,EAAGvF,EAC1B,CACAwgJ,YACI,OAAOlD,EAAUn4I,KAAKpL,KAAKwmJ,UAAUxmJ,KAAK89F,UAC9C,6BC7IG,SAAS4oD,GAAUt8I,GACtB,MAAO,KAAO,gBAAgBw3I,EAASx3I,GAC3C,CCLO,MCKD,GAAS,IAAI40I,EDLI,aCMvB,SAAS2H,GAAgBxmJ,GACrB,MAAMuE,EAAS,GACf,KAAOvE,GACHuE,EAAOu4F,QAAgB,IAAR98F,GACfA,IAAU,EAEd,OAAOuE,CACX,CACA,SAASkiJ,GAAkBx8I,EAAM8gD,EAAQjlD,GACrC,IAAIvB,EAAS,EACb,IAAK,IAAIsG,EAAI,EAAGA,EAAI/E,EAAQ+E,IACxBtG,EAAmB,IAATA,EAAgB0F,EAAK8gD,EAASlgD,GAE5C,OAAOtG,CACX,CACA,SAAS6zF,GAAQjpB,GACb,GAAIrnE,MAAM6D,QAAQwjE,GAAS,CACvB,IAAIv0C,EAAU,GAId,GAHAu0C,EAAOtjE,SAAQ,SAAU+hE,GACrBhzC,EAAUA,EAAQ/4B,OAAOu2F,GAAQxqB,GACrC,IACIhzC,EAAQ90B,QAAU,GAElB,OADA80B,EAAQkiE,QAAQ,IAAOliE,EAAQ90B,QACxB80B,EAEX,MAAM90B,EAAS0gJ,GAAgB5rH,EAAQ90B,QAEvC,OADAA,EAAOg3F,QAAQ,IAAOh3F,EAAOA,QACtBA,EAAOjE,OAAO+4B,EACzB,CACK2mH,EAAYpyE,IACb,GAAO8vE,mBAAmB,+BAAgC,SAAU9vE,GAExE,MAAMllE,EAAOnC,MAAMxG,UAAU+J,MAAMjI,KAAKq+I,EAAStyE,IACjD,GAAoB,IAAhBllE,EAAKnE,QAAgBmE,EAAK,IAAM,IAChC,OAAOA,EAEN,GAAIA,EAAKnE,QAAU,GAEpB,OADAmE,EAAK6yF,QAAQ,IAAO7yF,EAAKnE,QAClBmE,EAEX,MAAMnE,EAAS0gJ,GAAgBv8I,EAAKnE,QAEpC,OADAA,EAAOg3F,QAAQ,IAAOh3F,EAAOA,QACtBA,EAAOjE,OAAOoI,EACzB,CACO,SAASoN,GAAO83D,GACnB,OAAOgzE,EAAQ/pD,GAAQjpB,GAC3B,CACA,SAASu3E,GAAgBz8I,EAAM8gD,EAAQ47F,EAAa7gJ,GAChD,MAAMvB,EAAS,GACf,KAAOoiJ,EAAc57F,EAAS,EAAIjlD,GAAQ,CACtC,MAAM8gJ,EAAUnwD,GAAQxsF,EAAM08I,GAC9BpiJ,EAAOwB,KAAK6gJ,EAAQriJ,SACpBoiJ,GAAeC,EAAQd,UACL/6F,EAAS,EAAIjlD,GAC3B,GAAOo6I,WAAW,uBAAwBrB,EAAOzlD,OAAOosD,eAAgB,CAAC,EAEjF,CACA,MAAO,CAAEM,SAAW,EAAIhgJ,EAASvB,OAAQA,EAC7C,CAEA,SAASkyF,GAAQxsF,EAAM8gD,GAKnB,GAJoB,IAAhB9gD,EAAKnE,QACL,GAAOo6I,WAAW,iBAAkBrB,EAAOzlD,OAAOosD,eAAgB,CAAC,GAGnEv7I,EAAK8gD,IAAW,IAAM,CACtB,MAAM87F,EAAe58I,EAAK8gD,GAAU,IAChCA,EAAS,EAAI87F,EAAe58I,EAAKnE,QACjC,GAAOo6I,WAAW,+BAAgCrB,EAAOzlD,OAAOosD,eAAgB,CAAC,GAErF,MAAM1/I,EAAS2gJ,GAAkBx8I,EAAM8gD,EAAS,EAAG87F,GAInD,OAHI97F,EAAS,EAAI87F,EAAe/gJ,EAASmE,EAAKnE,QAC1C,GAAOo6I,WAAW,8BAA+BrB,EAAOzlD,OAAOosD,eAAgB,CAAC,GAE7EkB,GAAgBz8I,EAAM8gD,EAAQA,EAAS,EAAI87F,EAAcA,EAAe/gJ,EACnF,CACK,GAAImE,EAAK8gD,IAAW,IAAM,CAC3B,MAAMjlD,EAASmE,EAAK8gD,GAAU,IAI9B,OAHIA,EAAS,EAAIjlD,EAASmE,EAAKnE,QAC3B,GAAOo6I,WAAW,uBAAwBrB,EAAOzlD,OAAOosD,eAAgB,CAAC,GAEtEkB,GAAgBz8I,EAAM8gD,EAAQA,EAAS,EAAGjlD,EACrD,CACK,GAAImE,EAAK8gD,IAAW,IAAM,CAC3B,MAAM87F,EAAe58I,EAAK8gD,GAAU,IAChCA,EAAS,EAAI87F,EAAe58I,EAAKnE,QACjC,GAAOo6I,WAAW,uBAAwBrB,EAAOzlD,OAAOosD,eAAgB,CAAC,GAE7E,MAAM1/I,EAAS2gJ,GAAkBx8I,EAAM8gD,EAAS,EAAG87F,GAKnD,OAJI97F,EAAS,EAAI87F,EAAe/gJ,EAASmE,EAAKnE,QAC1C,GAAOo6I,WAAW,uBAAwBrB,EAAOzlD,OAAOosD,eAAgB,CAAC,GAGtE,CAAEM,SAAW,EAAIe,EAAe/gJ,EAASvB,OADjC49I,EAAQl4I,EAAKoB,MAAM0/C,EAAS,EAAI87F,EAAc97F,EAAS,EAAI87F,EAAe/gJ,IAE7F,CACK,GAAImE,EAAK8gD,IAAW,IAAM,CAC3B,MAAMjlD,EAASmE,EAAK8gD,GAAU,IAK9B,OAJIA,EAAS,EAAIjlD,EAASmE,EAAKnE,QAC3B,GAAOo6I,WAAW,iBAAkBrB,EAAOzlD,OAAOosD,eAAgB,CAAC,GAGhE,CAAEM,SAAW,EAAIhgJ,EAASvB,OADlB49I,EAAQl4I,EAAKoB,MAAM0/C,EAAS,EAAGA,EAAS,EAAIjlD,IAE/D,CACA,MAAO,CAAEggJ,SAAU,EAAGvhJ,OAAQ49I,EAAQl4I,EAAK8gD,IAC/C,CACO,SAASxzC,GAAOtN,GACnB,MAAM05C,EAAQ89F,EAASx3I,GACjB28I,EAAUnwD,GAAQ9yC,EAAO,GAI/B,OAHIijG,EAAQd,WAAaniG,EAAM79C,QAC3B,GAAOm5I,mBAAmB,mBAAoB,OAAQh1I,GAEnD28I,EAAQriJ,MACnB,CCtHO,MCOD,GAAS,IAAIs6I,EDPI,iBCQvB,SAASiI,GAAmB7gJ,GACnB,EAAYA,EAAS,KACtB,GAAOg5I,mBAAmB,kBAAmB,UAAWh5I,GAG5D,MAAM8gJ,GADN9gJ,EAAUA,EAAQ+8C,eACIloB,UAAU,GAAGtuB,MAAM,IACnCw6I,EAAW,IAAI9uI,WAAW,IAChC,IAAK,IAAIrN,EAAI,EAAGA,EAAI,GAAIA,IACpBm8I,EAASn8I,GAAKk8I,EAAMl8I,GAAG+3C,WAAW,GAEtC,MAAMgd,EAAS6hF,EAAS8E,GAAUS,IAClC,IAAK,IAAIn8I,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACpB+0D,EAAO/0D,GAAK,IAAM,GAAM,IACzBk8I,EAAMl8I,GAAKk8I,EAAMl8I,GAAG8xC,gBAEF,GAAjBijB,EAAO/0D,GAAK,KAAc,IAC3Bk8I,EAAMl8I,EAAI,GAAKk8I,EAAMl8I,EAAI,GAAG8xC,eAGpC,MAAO,KAAOoqG,EAAMx6I,KAAK,GAC7B,CAWA,MAAM06I,GAAa,CAAC,EACpB,IAAK,IAAIp8I,EAAI,EAAGA,EAAI,GAAIA,IACpBo8I,GAAWl/I,OAAO8C,IAAM9C,OAAO8C,GAEnC,IAAK,IAAIA,EAAI,EAAGA,EAAI,GAAIA,IACpBo8I,GAAWl/I,OAAOm8D,aAAa,GAAKr5D,IAAM9C,OAAO,GAAK8C,GAG1D,MAAMq8I,GAAat5I,KAAK8iD,OAhBTzkD,GADU,iBAEjB2B,KAAK47H,MACE57H,KAAK47H,MAAMv9H,IAEf2B,KAAK7L,IAAIkK,IAAK2B,KAAKuwH,OAJ9B,IAAelyH,GAiBf,SAASk7I,GAAalhJ,GAGlB,IAAI+gJ,GADJ/gJ,GADAA,EAAUA,EAAQ02C,eACA7hB,UAAU,GAAK70B,EAAQ60B,UAAU,EAAG,GAAK,MACpCtuB,MAAM,IAAIF,KAAKF,GAAe66I,GAAW76I,KAAOG,KAAK,IAE5E,KAAOy6I,EAASlhJ,QAAUohJ,IAAY,CAClC,IAAInwH,EAAQiwH,EAASlsH,UAAU,EAAGosH,IAClCF,EAAW73I,SAAS4nB,EAAO,IAAM,GAAKiwH,EAASlsH,UAAU/D,EAAMjxB,OACnE,CACA,IAAIskE,EAAWriE,OAAO,GAAMoH,SAAS63I,EAAU,IAAM,IACrD,KAAO58E,EAAStkE,OAAS,GACrBskE,EAAW,IAAMA,EAErB,OAAOA,CACX,CAEO,SAAStjE,GAAWb,GACvB,IAAI1B,EAAS,KAIb,GAHyB,iBAAd,GACP,GAAO06I,mBAAmB,kBAAmB,UAAWh5I,GAExDA,EAAQuD,MAAM,0BAEkB,OAA5BvD,EAAQ60B,UAAU,EAAG,KACrB70B,EAAU,KAAOA,GAErB1B,EAASuiJ,GAAmB7gJ,GAExBA,EAAQuD,MAAM,kCAAoCjF,IAAW0B,GAC7D,GAAOg5I,mBAAmB,uBAAwB,UAAWh5I,QAIhE,GAAIA,EAAQuD,MAAM,kCAAmC,CAMtD,IAJIvD,EAAQ60B,UAAU,EAAG,KAAOqsH,GAAalhJ,IACzC,GAAOg5I,mBAAmB,oBAAqB,UAAWh5I,GTqN1CjG,ESnNCiG,EAAQ60B,UAAU,GAAvCv2B,EToNG,IAAK+4F,EAAGt9F,EAAO,IAAKiH,SAAS,ISnNzB1C,EAAOuB,OAAS,IACnBvB,EAAS,IAAMA,EAEnBA,EAASuiJ,GAAmB,KAAOviJ,EACvC,MAEI,GAAO06I,mBAAmB,kBAAmB,UAAWh5I,GT4MzD,IAAqBjG,ES1MxB,OAAOuE,CACX,CACO,SAAS6iJ,GAAUnhJ,GACtB,IAEI,OADAa,GAAWb,IACJ,CAEK,CAAhB,MAAO24D,GAAS,CAChB,OAAO,CACX,CACO,SAASyoF,GAAephJ,GAC3B,IAAIqhJ,GTmMoBtnJ,ESnMC8G,GAAWb,GAAS60B,UAAU,GToMhD,IAAKwiE,EAAGt9F,EAAO,IAAKiH,SAAS,KSpMuB01C,cAC3D,ITkMG,IAAqB38C,ESlMjBsnJ,EAAOxhJ,OAAS,IACnBwhJ,EAAS,IAAMA,EAEnB,MAAO,KAAOH,GAAa,OAASG,GAAUA,CAClD,CAEO,SAASC,GAAmBC,GAC/B,IAAIv8I,EAAO,KACX,IACIA,EAAOnE,GAAW0gJ,EAAYv8I,KAIlC,CAFA,MAAO2zD,GACH,GAAOqgF,mBAAmB,uBAAwB,cAAeuI,EACrE,CAEA,OAAO1gJ,GAAWu7I,EAAakE,GAAUlvI,GAAO,CAACpM,EADnC+2I,EAAWP,EAAS2B,EAAUn4I,KAAKu8I,EAAY7lF,OAAOggF,mBACH,IACrE,CACO,SAAS8F,GAAkBx8I,EAAM0vB,EAAM+sH,GAO1C,OAN4B,KAAxBtF,EAAcznH,IACd,GAAOskH,mBAAmB,wBAAyB,OAAQtkH,GAE3B,KAAhCynH,EAAcsF,IACd,GAAOzI,mBAAmB,gCAAiC,eAAgByI,GAExE5gJ,GAAWu7I,EAAakE,GAAU1kJ,EAAO,CAAC,OAAQiF,GAAWmE,GAAO0vB,EAAM+sH,KAAiB,IACtG,CCpIO,MCID,GAAS,IAAI7I,EDJI,iBCMhB,IAAI8I,GASAC,GA+BX,SAASC,GAAWzyC,EAAQrqD,EAAQpH,EAAOc,EAAQqjG,GAE/C,GAAI1yC,IAAWwyC,GAAgBG,YAAc3yC,IAAWwyC,GAAgBI,oBAAqB,CACzF,IAAIn9I,EAAI,EACR,IAAK,IAAIvI,EAAIyoD,EAAS,EAAGzoD,EAAIqhD,EAAM79C,QAC3B69C,EAAMrhD,IAAM,GAAM,EADiBA,IAIvCuI,IAEJ,OAAOA,CACX,CAGA,OAAIuqG,IAAWwyC,GAAgBK,QACpBtkG,EAAM79C,OAASilD,EAAS,EAG5B,CACX,EA1DA,SAAW48F,GACPA,EAAkC,QAAI,GACtCA,EAA8B,IAAI,MAClCA,EAA8B,IAAI,MAClCA,EAA+B,KAAI,OACnCA,EAA+B,KAAI,MACtC,CAND,CAMGA,KAA6BA,GAA2B,CAAC,IAG5D,SAAWC,GAGPA,EAAqC,oBAAI,+BAGzCA,EAA4B,WAAI,uBAGhCA,EAAyB,QAAI,iBAG7BA,EAAkC,iBAAI,4BAItCA,EAA8B,aAAI,qBAIlCA,EAAiC,gBAAI,mBAIrCA,EAA0B,SAAI,yBACjC,CAzBD,CAyBGA,KAAoBA,GAAkB,CAAC,IAqCnC,MAAMM,GAAiBpoJ,OAAOizD,OAAO,CACxC6L,MApCJ,SAAmBw2C,EAAQrqD,EAAQpH,EAAOc,EAAQqjG,GAC9C,OAAO,GAAO7I,mBAAmB,+BAA+Bl0F,MAAWqqD,IAAU,QAASzxD,EAClG,EAmCIwkG,OAAQN,GACR3lI,QAfJ,SAAqBkzF,EAAQrqD,EAAQpH,EAAOc,EAAQqjG,GAEhD,OAAI1yC,IAAWwyC,GAAgBQ,UAC3B3jG,EAAO1+C,KAAK+hJ,GACL,IAGXrjG,EAAO1+C,KAAK,OAEL8hJ,GAAWzyC,EAAQrqD,EAAQpH,GACtC,IAQA,SAAS0kG,GAAkB1kG,EAAO2kG,GACf,MAAXA,IACAA,EAAUJ,GAAetpF,OAE7Bjb,EAAQ89F,EAAS99F,GACjB,MAAMp/C,EAAS,GACf,IAAIsG,EAAI,EAER,KAAOA,EAAI84C,EAAM79C,QAAQ,CACrB,MAAMsG,EAAIu3C,EAAM94C,KAEhB,GAAIuB,GAAK,GAAM,EAAG,CACd7H,EAAOwB,KAAKqG,GACZ,QACJ,CAEA,IAAIm8I,EAAc,KACdC,EAAe,KAEnB,GAAmB,MAAV,IAAJp8I,GACDm8I,EAAc,EACdC,EAAe,SAGd,GAAmB,MAAV,IAAJp8I,GACNm8I,EAAc,EACdC,EAAe,SAGd,IAAmB,MAAV,IAAJp8I,GAIL,CAEGvB,GAAKy9I,EADU,MAAV,IAAJl8I,GACYw7I,GAAgBI,oBAGhBJ,GAAgBG,WAHqBl9I,EAAI,EAAG84C,EAAOp/C,GAKpE,QACJ,CAXIgkJ,EAAc,EACdC,EAAe,KAUnB,CAEA,GAAI39I,EAAI,EAAI09I,GAAe5kG,EAAM79C,OAAQ,CACrC+E,GAAKy9I,EAAQV,GAAgBK,QAASp9I,EAAI,EAAG84C,EAAOp/C,GACpD,QACJ,CAEA,IAAImoC,EAAMtgC,GAAM,GAAM,EAAIm8I,EAAc,GAAM,EAC9C,IAAK,IAAIz+F,EAAI,EAAGA,EAAIy+F,EAAaz+F,IAAK,CAClC,IAAI2+F,EAAW9kG,EAAM94C,GAErB,GAAyB,MAAT,IAAX49I,GAA0B,CAC3B59I,GAAKy9I,EAAQV,GAAgBc,iBAAkB79I,EAAG84C,EAAOp/C,GACzDmoC,EAAM,KACN,KACJ,CAEAA,EAAOA,GAAO,EAAiB,GAAX+7G,EACpB59I,GACJ,CAEY,OAAR6hC,IAIAA,EAAM,QACN7hC,GAAKy9I,EAAQV,GAAgBe,aAAc99I,EAAI,EAAI09I,EAAa5kG,EAAOp/C,EAAQmoC,GAI/EA,GAAO,OAAUA,GAAO,MACxB7hC,GAAKy9I,EAAQV,GAAgBgB,gBAAiB/9I,EAAI,EAAI09I,EAAa5kG,EAAOp/C,EAAQmoC,GAIlFA,GAAO87G,EACP39I,GAAKy9I,EAAQV,GAAgBQ,SAAUv9I,EAAI,EAAI09I,EAAa5kG,EAAOp/C,EAAQmoC,GAG/EnoC,EAAOwB,KAAK2mC,GAChB,CACA,OAAOnoC,CACX,CAEO,SAASskJ,GAAYt/I,EAAKi1I,EAAOmJ,GAAyBz3C,SACzDsuC,GAAQmJ,GAAyBz3C,UACjC,GAAOqwC,iBACPh3I,EAAMA,EAAIo/D,UAAU61E,IAExB,IAAIj6I,EAAS,GACb,IAAK,IAAIsG,EAAI,EAAGA,EAAItB,EAAIzD,OAAQ+E,IAAK,CACjC,MAAMuB,EAAI7C,EAAIq5C,WAAW/3C,GACzB,GAAIuB,EAAI,IACJ7H,EAAOwB,KAAKqG,QAEX,GAAIA,EAAI,KACT7H,EAAOwB,KAAMqG,GAAK,EAAK,KACvB7H,EAAOwB,KAAU,GAAJqG,EAAY,UAExB,GAAoB,QAAX,MAAJA,GAAuB,CAC7BvB,IACA,MAAMizD,EAAKv0D,EAAIq5C,WAAW/3C,GAC1B,GAAIA,GAAKtB,EAAIzD,QAA4B,QAAZ,MAALg4D,GACpB,MAAM,IAAI33D,MAAM,wBAGpB,MAAM2iJ,EAAO,QAAgB,KAAJ18I,IAAe,KAAY,KAAL0xD,GAC/Cv5D,EAAOwB,KAAM+iJ,GAAQ,GAAM,KAC3BvkJ,EAAOwB,KAAO+iJ,GAAQ,GAAM,GAAQ,KACpCvkJ,EAAOwB,KAAO+iJ,GAAQ,EAAK,GAAQ,KACnCvkJ,EAAOwB,KAAa,GAAP+iJ,EAAe,IAChC,MAEIvkJ,EAAOwB,KAAMqG,GAAK,GAAM,KACxB7H,EAAOwB,KAAOqG,GAAK,EAAK,GAAQ,KAChC7H,EAAOwB,KAAU,GAAJqG,EAAY,IAEjC,CACA,OAAOq1I,EAASl9I,EACpB,CAEA,SAASwkJ,GAAW/oJ,GAChB,MAAMgxD,EAAO,OAAShxD,EAAMiH,SAAS,IACrC,MAAO,MAAQ+pD,EAAIl2B,UAAUk2B,EAAIlrD,OAAS,EAC9C,CACO,SAASkjJ,GAAqBrlG,EAAO2kG,GACxC,MAAO,IAAMD,GAAkB1kG,EAAO2kG,GAASh8I,KAAK2mH,IAChD,GAAIA,EAAY,IAAK,CACjB,OAAQA,GACJ,KAAK,EAAG,MAAO,MACf,KAAK,EAAG,MAAO,MACf,KAAK,GAAI,MAAO,MAChB,KAAK,GAAI,MAAO,MAChB,KAAK,GAAI,MAAO,MAChB,KAAK,GAAI,MAAO,OAEpB,GAAIA,GAAa,IAAMA,EAAY,IAC/B,OAAOlrH,OAAOm8D,aAAa+uD,EAEnC,CACA,OAAIA,GAAa,MACN81B,GAAW91B,GAGf81B,GAAyC,QADhD91B,GAAa,QACoB,GAAM,OAAmB81B,GAAiC,OAAT,KAAZ91B,GAA4B,IACnG1mH,KAAK,IAAM,GAClB,CACO,SAAS08I,GAAc11B,GAC1B,OAAOA,EAAWjnH,KAAK2mH,GACfA,GAAa,MACNlrH,OAAOm8D,aAAa+uD,IAE/BA,GAAa,MACNlrH,OAAOm8D,aAA4C,OAA5B+uD,GAAa,GAAM,MAAyC,OAAT,KAAZA,OACtE1mH,KAAK,GACZ,CACO,SAAS28I,GAAavlG,EAAO2kG,GAChC,OAAOW,GAAcZ,GAAkB1kG,EAAO2kG,GAClD,CACO,SAASa,GAAiB5/I,EAAKi1I,EAAOmJ,GAAyBz3C,SAClE,OAAOm4C,GAAkBQ,GAAYt/I,EAAKi1I,GAC9C,CCpPO,SAASp2H,GAAGgnE,GACf,OAAOm3D,GAAUsC,GAAYz5D,GACjC,CCAO,MAAMg6D,WAAqBvE,GAC9B58I,YAAY68I,GACR7/F,MAAM,UAAW,UAAW6/F,GAAW,EAC3C,CACAuE,eACI,MAAO,4CACX,CACAhyI,OAAOm3D,EAAQxuE,GACX,IACIA,EAAQ8G,GAAW9G,EAIvB,CAFA,MAAO4+D,GACH/+D,KAAKmlJ,YAAYpmF,EAAMx3D,QAASpH,EACpC,CACA,OAAOwuE,EAAOi3E,WAAWzlJ,EAC7B,CACAuX,OAAOw3D,GACH,OAAOjoE,GAAW67I,EAAW5zE,EAAOu3E,YAAY3E,cAAe,IACnE,ECnBG,MAAM2H,WAAuBzE,GAChC58I,YAAYshJ,GACRtkG,MAAMskG,EAAMpoH,KAAMooH,EAAMt4I,UAAMvO,EAAW6mJ,EAAMxE,SAC/CllJ,KAAK0pJ,MAAQA,CACjB,CACAF,eACI,OAAOxpJ,KAAK0pJ,MAAMF,cACtB,CACAhyI,OAAOm3D,EAAQxuE,GACX,OAAOH,KAAK0pJ,MAAMlyI,OAAOm3D,EAAQxuE,EACrC,CACAuX,OAAOw3D,GACH,OAAOlvE,KAAK0pJ,MAAMhyI,OAAOw3D,EAC7B,ECbJ,MAAM,GAAS,IAAI8vE,EAAO,IAGnB,SAAS3zI,GAAKsjE,EAAQg7E,EAAQz8I,GACjC,IAAI08I,EAAc,KAClB,GAAI3hJ,MAAM6D,QAAQoB,GACd08I,EAAc18I,OAEb,GAAIA,GAA8B,iBAAb,EAAuB,CAC7C,IAAI28I,EAAS,CAAC,EACdD,EAAcD,EAAOl9I,KAAKi9I,IACtB,MAAMpoH,EAAOooH,EAAMzE,UAgBnB,OAfK3jH,GACD,GAAO++G,WAAW,wDAAyDrB,EAAOzlD,OAAO+mD,iBAAkB,CACvGC,SAAU,SACVmJ,MAAOA,EACPvpJ,MAAO+M,IAGX28I,EAAOvoH,IACP,GAAO++G,WAAW,0DAA2DrB,EAAOzlD,OAAO+mD,iBAAkB,CACzGC,SAAU,SACVmJ,MAAOA,EACPvpJ,MAAO+M,IAGf28I,EAAOvoH,IAAQ,EACRp0B,EAAOo0B,EAAK,GAE3B,MAEI,GAAO89G,mBAAmB,sBAAuB,QAASlyI,GAE1Dy8I,EAAO1jJ,SAAW2jJ,EAAY3jJ,QAC9B,GAAOm5I,mBAAmB,8BAA+B,QAASlyI,GAEtE,IAAI48I,EAAe,IAAIl7E,GAAOD,EAAOmvB,UACjCisD,EAAgB,IAAIn7E,GAAOD,EAAOmvB,UAClCksD,EAAc,GAClBL,EAAO39I,SAAQ,CAAC09I,EAAOl9I,KACnB,IAAIrM,EAAQypJ,EAAYp9I,GACxB,GAAIk9I,EAAMxE,QAAS,CAEf,IAAI+E,EAAgBF,EAAc9jJ,OAElCyjJ,EAAMlyI,OAAOuyI,EAAe5pJ,GAE5B,IAAI+pJ,EAAaJ,EAAajE,sBAC9BmE,EAAY9jJ,MAAMikJ,IACdD,EAAWC,EAAaF,EAAc,GAE9C,MAEIP,EAAMlyI,OAAOsyI,EAAc3pJ,EAC/B,IAGJ6pJ,EAAYh+I,SAASo+I,IAAWA,EAAKN,EAAa7jJ,OAAO,IACzD,IAAIA,EAAS0oE,EAAO42E,aAAauE,GAEjC,OADA7jJ,GAAU0oE,EAAO42E,aAAawE,GACvB9jJ,CACX,CACO,SAASokJ,GAAOn7E,EAAQy6E,GAC3B,IAAIz8I,EAAS,GAETo9I,EAAap7E,EAAOq3E,UAAU,GAClCoD,EAAO39I,SAAS09I,IACZ,IAAIvpJ,EAAQ,KACZ,GAAIupJ,EAAMxE,QAAS,CACf,IAAIh6F,EAASgkB,EAAOu3E,YAChB8D,EAAeD,EAAW/D,UAAUr7F,EAAO17C,YAC/C,IACIrP,EAAQupJ,EAAMhyI,OAAO6yI,EAWzB,CATA,MAAOxrF,GAEH,GAAIA,EAAMthD,OAASuhI,EAAOzlD,OAAOosD,eAC7B,MAAM5mF,EAEV5+D,EAAQ4+D,EACR5+D,EAAMqqJ,SAAWd,EAAMpoH,KACvBnhC,EAAMmhC,KAAOooH,EAAMzE,UACnB9kJ,EAAMiR,KAAOs4I,EAAMt4I,IACvB,CACJ,MAEI,IACIjR,EAAQupJ,EAAMhyI,OAAOw3D,EAWzB,CATA,MAAOnQ,GAEH,GAAIA,EAAMthD,OAASuhI,EAAOzlD,OAAOosD,eAC7B,MAAM5mF,EAEV5+D,EAAQ4+D,EACR5+D,EAAMqqJ,SAAWd,EAAMpoH,KACvBnhC,EAAMmhC,KAAOooH,EAAMzE,UACnB9kJ,EAAMiR,KAAOs4I,EAAMt4I,IACvB,CAESvO,MAAT1C,GACA+M,EAAOhH,KAAK/F,EAChB,IAGJ,MAAMsqJ,EAAcd,EAAO38G,QAAO,CAACk1G,EAAOwH,KACtC,MAAMpoH,EAAOooH,EAAMzE,UAOnB,OANI3jH,IACK4gH,EAAM5gH,KACP4gH,EAAM5gH,GAAQ,GAElB4gH,EAAM5gH,MAEH4gH,CAAK,GACb,CAAC,GAEJyH,EAAO39I,SAAQ,CAAC09I,EAAOl9I,KACnB,IAAI80B,EAAOooH,EAAMzE,UACjB,IAAK3jH,GAA8B,IAAtBmpH,EAAYnpH,GACrB,OAKJ,GAHa,WAATA,IACAA,EAAO,WAES,MAAhBp0B,EAAOo0B,GACP,OAEJ,MAAMnhC,EAAQ+M,EAAOV,GACjBrM,aAAiBmG,MACjBrG,OAAOC,eAAegN,EAAQo0B,EAAM,CAChCp+B,YAAY,EACZC,IAAK,KAAQ,MAAMhD,CAAK,IAI5B+M,EAAOo0B,GAAQnhC,CACnB,IAEJ,IAAK,IAAI6K,EAAI,EAAGA,EAAIkC,EAAOjH,OAAQ+E,IAAK,CACpC,MAAM7K,EAAQ+M,EAAOlC,GACjB7K,aAAiBmG,OACjBrG,OAAOC,eAAegN,EAAQlC,EAAG,CAC7B9H,YAAY,EACZC,IAAK,KAAQ,MAAMhD,CAAK,GAGpC,CACA,OAAOF,OAAOizD,OAAOhmD,EACzB,CACO,MAAMw9I,WAAmB1F,GAC5B58I,YAAYshJ,EAAOzjJ,EAAQg/I,GAGvB7/F,MAAM,QAFQskG,EAAMt4I,KAAO,KAAOnL,GAAU,EAAIA,EAAS,IAAM,IAE1Cg/I,GADQ,IAAZh/I,GAAiByjJ,EAAMxE,SAExCllJ,KAAK0pJ,MAAQA,EACb1pJ,KAAKiG,OAASA,CAClB,CACAujJ,eAEI,MAAMmB,EAAe3qJ,KAAK0pJ,MAAMF,eAC1B9kJ,EAAS,GACf,IAAK,IAAIsG,EAAI,EAAGA,EAAIhL,KAAKiG,OAAQ+E,IAC7BtG,EAAOwB,KAAKykJ,GAEhB,OAAOjmJ,CACX,CACA8S,OAAOm3D,EAAQxuE,GACN8H,MAAM6D,QAAQ3L,IACfH,KAAKmlJ,YAAY,uBAAwBhlJ,GAE7C,IAAIgO,EAAQnO,KAAKiG,QACF,IAAXkI,IACAA,EAAQhO,EAAM8F,OACd0oE,EAAOi3E,WAAWzlJ,EAAM8F,SAE5B,GAAO46I,mBAAmB1gJ,EAAM8F,OAAQkI,EAAO,eAAiBnO,KAAKilJ,UAAa,IAAMjlJ,KAAKilJ,UAAa,KAC1G,IAAI0E,EAAS,GACb,IAAK,IAAI3+I,EAAI,EAAGA,EAAI7K,EAAM8F,OAAQ+E,IAC9B2+I,EAAOzjJ,KAAKlG,KAAK0pJ,OAErB,OAAOr+I,GAAKsjE,EAAQg7E,EAAQxpJ,EAChC,CACAuX,OAAOw3D,GACH,IAAI/gE,EAAQnO,KAAKiG,QACF,IAAXkI,IACAA,EAAQ+gE,EAAOu3E,YAAYj3I,WAMf,GAARrB,EAAa+gE,EAAO9gD,MAAMnoB,QAC1B,GAAOo6I,WAAW,2BAA4BrB,EAAOzlD,OAAOosD,eAAgB,CACxE1/I,OAAQipE,EAAO9gD,MAAMnoB,OACrBkI,MAAOA,KAInB,IAAIw7I,EAAS,GACb,IAAK,IAAI3+I,EAAI,EAAGA,EAAImD,EAAOnD,IACvB2+I,EAAOzjJ,KAAK,IAAIujJ,GAAezpJ,KAAK0pJ,QAExC,OAAOx6E,EAAOg3E,OAAOlmJ,KAAKshC,KAAM+oH,GAAOn7E,EAAQy6E,GACnD,EC5MG,MAAMiB,WAAqB5F,GAC9B58I,YAAY68I,GACR7/F,MAAM,OAAQ,OAAQ6/F,GAAW,EACrC,CACAuE,eACI,OAAO,CACX,CACAhyI,OAAOm3D,EAAQxuE,GACX,OAAOwuE,EAAOi3E,WAAWzlJ,EAAQ,EAAI,EACzC,CACAuX,OAAOw3D,GACH,OAAOA,EAAOg3E,OAAOlmJ,KAAKoR,MAAO89D,EAAOu3E,YAAYz3E,SACxD,ECXG,MAAM67E,WAA0B7F,GACnC58I,YAAYgJ,EAAM6zI,GACd7/F,MAAMh0C,EAAMA,EAAM6zI,GAAW,EACjC,CACAuE,eACI,MAAO,IACX,CACAhyI,OAAOm3D,EAAQxuE,GACXA,EAAQyhJ,EAASzhJ,GACjB,IAAI8F,EAAS0oE,EAAOi3E,WAAWzlJ,EAAM8F,QAErC,OADAA,GAAU0oE,EAAO62E,WAAWrlJ,GACrB8F,CACX,CACAyR,OAAOw3D,GACH,OAAOA,EAAOs3E,UAAUt3E,EAAOu3E,YAAYj3I,YAAY,EAC3D,EAEG,MAAMs7I,WAAmBD,GAC5BziJ,YAAY68I,GACR7/F,MAAM,QAAS6/F,EACnB,CACAvtI,OAAOw3D,GACH,OAAOA,EAAOg3E,OAAOlmJ,KAAKshC,KAAMghH,EAAQl9F,MAAM1tC,OAAOw3D,IACzD,ECtBG,MAAM67E,WAAwB/F,GACjC58I,YAAYw/D,EAAMq9E,GACd,IAAI3jH,EAAO,QAAUp5B,OAAO0/D,GAC5BxiB,MAAM9jB,EAAMA,EAAM2jH,GAAW,GAC7BjlJ,KAAK4nE,KAAOA,CAChB,CACA4hF,eACI,MAAO,qEAAuEvuH,UAAU,EAAG,EAAgB,EAAZj7B,KAAK4nE,KACxG,CACApwD,OAAOm3D,EAAQxuE,GACX,IAAIiK,EAAOw3I,EAASzhJ,GAIpB,OAHIiK,EAAKnE,SAAWjG,KAAK4nE,MACrB5nE,KAAKmlJ,YAAY,wBAAyBhlJ,GAEvCwuE,EAAO62E,WAAWp7I,EAC7B,CACAsN,OAAOw3D,GACH,OAAOA,EAAOg3E,OAAOlmJ,KAAKshC,KAAMghH,EAAQpzE,EAAOs3E,UAAUxmJ,KAAK4nE,OAClE,ECpBG,MAAMojF,WAAkBhG,GAC3B58I,YAAY68I,GACR7/F,MAAM,OAAQ,GAAI6/F,GAAW,EACjC,CACAuE,eACI,OAAO,IACX,CACAhyI,OAAOm3D,EAAQxuE,GAIX,OAHa,MAATA,GACAH,KAAKmlJ,YAAY,WAAYhlJ,GAE1BwuE,EAAO62E,WAAW,GAC7B,CACA9tI,OAAOw3D,GAEH,OADAA,EAAOs3E,UAAU,GACVt3E,EAAOg3E,OAAOlmJ,KAAKshC,KAAM,KACpC,ECjBJ,MAAM2pH,GAA6B1H,EAAUn4I,MAAM,GAC7C8/I,GAAsB3H,EAAUn4I,KAAK,GACrC+/I,GAAqB5H,EAAUn4I,KAAK,GACpCggJ,GAAqB7H,EAAUn4I,KAAK,GACpCigJ,GAA6B9H,EAAUn4I,KAAK,uBAC5CkgJ,GAA4B/H,EAAUn4I,KAAK,sEAC3CmgJ,GAA2BhI,EAAUn4I,KAAK,uEAC1CogJ,GAA2BjI,EAAUn4I,KAAK,sECJzC,MAAMqgJ,WAAoBzG,GAC7B58I,YAAYw/D,EAAM8jF,EAAQzG,GACtB,MAAM3jH,GAASoqH,EAAS,MAAQ,QAAkB,EAAP9jF,EAC3CxiB,MAAM9jB,EAAMA,EAAM2jH,GAAW,GAC7BjlJ,KAAK4nE,KAAOA,EACZ5nE,KAAK0rJ,OAASA,CAClB,CACAlC,eACI,OAAO,CACX,CACAhyI,OAAOm3D,EAAQxuE,GACX,IAAI0F,EAAI09I,EAAUn4I,KAAKjL,GAEnBwrJ,EAAeL,GAAW9zF,KAAuB,EAAlBmX,EAAOmvB,UAC1C,GAAI99F,KAAK0rJ,OAAQ,CACb,IAAIE,EAASD,EAAan0F,KAAiB,EAAZx3D,KAAK4nE,KAAW,IAC3C/hE,EAAEo7B,GAAG2qH,IAAW/lJ,EAAEm7B,GAAG4qH,EAAOhiJ,IAAIuhJ,IAAKlhJ,IAAIghJ,OACzCjrJ,KAAKmlJ,YAAY,sBAAuBhlJ,EAEhD,MACS0F,EAAEm7B,GAAGkqH,KAASrlJ,EAAEo7B,GAAG0qH,EAAan0F,KAAiB,EAAZx3D,KAAK4nE,SAC/C5nE,KAAKmlJ,YAAY,sBAAuBhlJ,GAM5C,OAJA0F,EAAIA,EAAE46F,OAAmB,EAAZzgG,KAAK4nE,MAAUpQ,KAAiB,EAAZx3D,KAAK4nE,MAClC5nE,KAAK0rJ,SACL7lJ,EAAIA,EAAEg7F,SAAqB,EAAZ7gG,KAAK4nE,MAAU64B,OAAO,EAAI9xB,EAAOmvB,WAE7CnvB,EAAOi3E,WAAW//I,EAC7B,CACA6R,OAAOw3D,GACH,IAAI/uE,EAAQ+uE,EAAOu3E,YAAYjvF,KAAiB,EAAZx3D,KAAK4nE,MAIzC,OAHI5nE,KAAK0rJ,SACLvrJ,EAAQA,EAAM0gG,SAAqB,EAAZ7gG,KAAK4nE,OAEzBsH,EAAOg3E,OAAOlmJ,KAAKshC,KAAMnhC,EACpC,ECpCG,MAAM0rJ,WAAoBhB,GAC7BziJ,YAAY68I,GACR7/F,MAAM,SAAU6/F,EACpB,CACAuE,eACI,MAAO,EACX,CACAhyI,OAAOm3D,EAAQxuE,GACX,OAAOilD,MAAM5tC,OAAOm3D,EAAQq6E,GAAY7oJ,GAC5C,CACAuX,OAAOw3D,GACH,OAAOm6E,GAAajkG,MAAM1tC,OAAOw3D,GACrC,ECZG,MAAM48E,WAAmB9G,GAC5B58I,YAAYuhJ,EAAQ1E,GAChB,IAAIC,GAAU,EACd,MAAM6G,EAAQ,GACdpC,EAAO39I,SAAS09I,IACRA,EAAMxE,UACNA,GAAU,GAEd6G,EAAM7lJ,KAAKwjJ,EAAMt4I,KAAK,IAG1Bg0C,MAAM,QADQ,SAAW2mG,EAAMr/I,KAAK,KAAO,IACtBu4I,EAAWC,GAChCllJ,KAAK2pJ,OAASA,CAClB,CACAH,eACI,MAAMt8I,EAAS,GACflN,KAAK2pJ,OAAO39I,SAAS09I,IACjBx8I,EAAOhH,KAAKwjJ,EAAMF,eAAe,IAGrC,MAAMiB,EAAczqJ,KAAK2pJ,OAAO38G,QAAO,CAACk1G,EAAOwH,KAC3C,MAAMpoH,EAAOooH,EAAMzE,UAOnB,OANI3jH,IACK4gH,EAAM5gH,KACP4gH,EAAM5gH,GAAQ,GAElB4gH,EAAM5gH,MAEH4gH,CAAK,GACb,CAAC,GAeJ,OAbAliJ,KAAK2pJ,OAAO39I,SAAQ,CAAC09I,EAAOl9I,KACxB,IAAI80B,EAAOooH,EAAMzE,UACZ3jH,GAA8B,IAAtBmpH,EAAYnpH,KAGZ,WAATA,IACAA,EAAO,WAES,MAAhBp0B,EAAOo0B,KAGXp0B,EAAOo0B,GAAQp0B,EAAOV,IAAM,IAEzBvM,OAAOizD,OAAOhmD,EACzB,CACAsK,OAAOm3D,EAAQxuE,GACX,OAAOkL,GAAKsjE,EAAQ3uE,KAAK2pJ,OAAQxpJ,EACrC,CACAuX,OAAOw3D,GACH,OAAOA,EAAOg3E,OAAOlmJ,KAAKshC,KAAM+oH,GAAOn7E,EAAQlvE,KAAK2pJ,QACxD,ECjDJ,MAAM,GAAS,IAAI3K,EAAO,IAEpB,GAAoB,CAAC,EAC3B,IAAIgN,GAAiB,CAAEC,UAAU,EAAMC,QAAQ,EAAMC,SAAS,GAC1DC,GAAgB,CAAEH,UAAU,EAAMC,QAAQ,GAC9C,SAASG,GAAcj7I,EAAMkwB,GACzB,GAAa,UAATlwB,GAA6B,WAATA,GACpB,GAAI46I,GAAe1qH,GACf,OAAO,OAGV,GAAa,YAATlwB,GACL,GAAa,YAATkwB,EACA,OAAO,OAGV,IAAIlwB,EAAK5H,QAAQ,MAAQ,GAAc,UAAT4H,IAC3Bg7I,GAAc9qH,GACd,OAAO,EAMf,OAHI0qH,GAAe1qH,IAAkB,YAATA,IACxB,GAAO89G,mBAAmB,mBAAoB,OAAQ99G,IAEnD,CACX,CAmKA,SAASgrH,GAASh9E,EAAQjmC,GACtB,IAAK,IAAIxnC,KAAOwnC,EACZ46G,GAAe30E,EAAQztE,EAAKwnC,EAAOxnC,GAE3C,CACO,MAAM0qJ,GAActsJ,OAAOizD,OAAO,CAErCs5F,QAAS,UAETC,QAAS,UAETC,KAAM,OAEN9+E,KAAM,SAEJ++E,GAAiB,IAAItxC,OAAO,sBAC3B,MAAMuxC,GACTxkJ,YAAYo7I,EAAkBn6G,GACtBm6G,IAAqB,IACrB,GAAOnD,WAAW,iBAAkBrB,EAAOzlD,OAAOonD,sBAAuB,CACrEz9G,UAAW,oBAGnBopH,GAAStsJ,KAAMqpC,GACf,IAAI1/B,EAAQ3J,KAAKoR,KAAKzH,MAAMgjJ,IAExBL,GAAStsJ,KADT2J,EACe,CACXkjJ,YAAav9I,SAAS3F,EAAM,IAAM,MAClCmjJ,cAAeF,GAAU37B,WAAW,CAChC7/G,KAAMzH,EAAM,GACZojJ,WAAY/sJ,KAAK+sJ,aAErBvC,SAAU,SAIC,CACXqC,YAAa,KACbC,cAAe,KACftC,SAA+B,MAAnBxqJ,KAAK+sJ,WAAsB,QAAU/sJ,KAAKoR,OAG9DpR,KAAKgtJ,cAAe,EACpB/sJ,OAAOizD,OAAOlzD,KAClB,CAKA+hF,OAAOA,GAOH,GANKA,IACDA,EAASwqE,GAAYC,SAEpBD,GAAYxqE,IACb,GAAOq9D,mBAAmB,sBAAuB,SAAUr9D,GAE3DA,IAAWwqE,GAAY3+E,KAAM,CAC7B,IAAIlpE,EAAS,CACT0M,KAA0B,UAAlBpR,KAAKwqJ,SAAwB,QAAUxqJ,KAAKoR,KACpDkwB,KAAOthC,KAAKshC,WAAQz+B,GAQxB,MAN8B,kBAAlB7C,KAAY,UACpB0E,EAAOuoJ,QAAUjtJ,KAAKitJ,SAEtBjtJ,KAAK+sJ,aACLroJ,EAAOqoJ,WAAa/sJ,KAAK+sJ,WAAWtgJ,KAAKygJ,GAAS5pH,KAAKx6B,MAAMokJ,EAAKnrE,OAAOA,OAEtEz+C,KAAKE,UAAU9+B,EAC1B,CACA,IAAIA,EAAS,GAyBb,MAvBsB,UAAlB1E,KAAKwqJ,UACL9lJ,GAAU1E,KAAK8sJ,cAAc/qE,OAAOA,GACpCr9E,GAAU,KAAO1E,KAAK6sJ,YAAc,EAAI,GAAK3kJ,OAAOlI,KAAK6sJ,cAAgB,KAGnD,UAAlB7sJ,KAAKwqJ,UACDzoE,IAAWwqE,GAAYC,UACvB9nJ,GAAU1E,KAAKoR,MAEnB1M,GAAU,IAAM1E,KAAK+sJ,WAAWtgJ,KAAKygJ,GAASA,EAAKnrE,OAAOA,KAASr1E,KAAMq1E,IAAWwqE,GAAYG,KAAQ,KAAO,KAAO,KAGtHhoJ,GAAU1E,KAAKoR,KAGnB2wE,IAAWwqE,GAAYC,WACF,IAAjBxsJ,KAAKitJ,UACLvoJ,GAAU,YAEVq9E,IAAWwqE,GAAYG,MAAQ1sJ,KAAKshC,OACpC58B,GAAU,IAAM1E,KAAKshC,OAGtB58B,CACX,CACAkvD,YAAYzzD,EAAOgtJ,GACf,MAAuB,iBAAZ,EACAP,GAAUnjJ,WAAWtJ,EAAOgtJ,GAEhCP,GAAU37B,WAAW9wH,EAChC,CACAyzD,kBAAkBzzD,GACd,OAAIysJ,GAAUQ,YAAYjtJ,GACfA,EAEJ,IAAIysJ,GAAU,GAAmB,CACpCtrH,KAAOnhC,EAAMmhC,MAAQ,KACrBlwB,KAAMi8I,GAAWltJ,EAAMiR,MACvB67I,QAA4B,MAAjB9sJ,EAAM8sJ,QAAmB,OAAS9sJ,EAAM8sJ,QACnDF,WAAa5sJ,EAAM4sJ,WAAa5sJ,EAAM4sJ,WAAWtgJ,IAAImgJ,GAAU37B,YAAc,MAErF,CACAr9D,kBAAkBzzD,EAAOgtJ,GASrB,OARqBhkG,EAnR7B,SAAwBmkG,EAAOH,GAC3B,IAAII,EAAgBD,EACpB,SAASjN,EAAWr1I,GAChB,GAAOo0I,mBAAmB,oCAAoCp0I,IAAK,QAASsiJ,EAChF,CAEA,SAASE,EAAQj4D,GACb,IAAIpsC,EAAO,CAAE/3C,KAAM,GAAIkwB,KAAM,GAAIi0D,OAAQA,EAAQloE,MAAO,CAAEogI,WAAW,IAIrE,OAHIN,IACAhkG,EAAK8jG,SAAU,GAEZ9jG,CACX,CAPAmkG,EAAQA,EAAMjrI,QAAQ,MAAO,KAQ7B,IAAIkzE,EAAS,CAAEnkF,KAAM,GAAIkwB,KAAM,GAAIjU,MAAO,CAAEogI,WAAW,IACnDtkG,EAAOosC,EACX,IAAK,IAAIvqF,EAAI,EAAGA,EAAIsiJ,EAAMrnJ,OAAQ+E,IAAK,CACnC,IAAIuB,EAAI+gJ,EAAMtiJ,GACd,OAAQuB,GACJ,IAAK,IACG48C,EAAK97B,MAAMogI,WAA2B,KAAdtkG,EAAK/3C,KAC7B+3C,EAAK/3C,KAAO,QAEN+3C,EAAK97B,MAAMqgI,aACjBrN,EAAWr1I,GAEfm+C,EAAK97B,MAAMogI,WAAY,EACvBtkG,EAAK/3C,KAAOi8I,GAAWlkG,EAAK/3C,MAC5B+3C,EAAK4jG,WAAa,CAACS,EAAQrkG,IAC3BA,EAAOA,EAAK4jG,WAAW,GACvB,MACJ,IAAK,WACM5jG,EAAK97B,MACM,YAAd87B,EAAK7nB,OACA6rH,GACD9M,EAAWr1I,GAEfm+C,EAAK8jG,SAAU,EACf9jG,EAAK7nB,KAAO,IAEZ+qH,GAAcljG,EAAK/3C,KAAM+3C,EAAK7nB,QAC9B6nB,EAAK7nB,KAAO,IAEhB6nB,EAAK/3C,KAAOi8I,GAAWlkG,EAAK/3C,MAC5B,IAAI28D,EAAQ5kB,EACZA,EAAOA,EAAKosC,OACPpsC,GACDk3F,EAAWr1I,UAER+iE,EAAMwnB,OACbpsC,EAAK97B,MAAMqgI,aAAc,EACzBvkG,EAAK97B,MAAMsgI,WAAY,EACvBxkG,EAAK97B,MAAMugI,YAAa,EACxB,MACJ,IAAK,WACMzkG,EAAK97B,MACM,YAAd87B,EAAK7nB,OACA6rH,GACD9M,EAAWr1I,GAEfm+C,EAAK8jG,SAAU,EACf9jG,EAAK7nB,KAAO,IAEZ+qH,GAAcljG,EAAK/3C,KAAM+3C,EAAK7nB,QAC9B6nB,EAAK7nB,KAAO,IAEhB6nB,EAAK/3C,KAAOi8I,GAAWlkG,EAAK/3C,MAC5B,IAAIy8I,EAAUL,EAAQrkG,EAAKosC,QAE3BpsC,EAAKosC,OAAOw3D,WAAW7mJ,KAAK2nJ,UACrB1kG,EAAKosC,OACZpsC,EAAO0kG,EACP,MAEJ,IAAK,IAEG1kG,EAAK97B,MAAMogI,WACO,KAAdtkG,EAAK/3C,OACL+3C,EAAK/3C,KAAOi8I,GAAWlkG,EAAK/3C,aACrB+3C,EAAK97B,MAAMogI,UAClBtkG,EAAK97B,MAAMsgI,WAAY,EACvBxkG,EAAK97B,MAAMqgI,aAAc,GAI7BvkG,EAAK97B,MAAMsgI,WACO,KAAdxkG,EAAK7nB,OACa,YAAd6nB,EAAK7nB,MACA6rH,GACD9M,EAAWr1I,GAEXm+C,EAAK8jG,SACL5M,EAAWr1I,GAEfm+C,EAAK8jG,SAAU,EACf9jG,EAAK7nB,KAAO,IAEP+qH,GAAcljG,EAAK/3C,KAAM+3C,EAAK7nB,MACnC6nB,EAAK7nB,KAAO,GAGZ6nB,EAAK97B,MAAMsgI,WAAY,GAInC,MACJ,IAAK,IACIxkG,EAAK97B,MAAMugI,YACZvN,EAAWr1I,GAEfm+C,EAAK/3C,MAAQ7E,EACb48C,EAAK97B,MAAMugI,YAAa,EACxBzkG,EAAK97B,MAAMsgI,WAAY,EACvBxkG,EAAK97B,MAAMygI,WAAY,EACvB,MACJ,IAAK,IACI3kG,EAAK97B,MAAMygI,WACZzN,EAAWr1I,GAEfm+C,EAAK/3C,MAAQ7E,EACb48C,EAAK97B,MAAMygI,WAAY,EACvB3kG,EAAK97B,MAAMugI,YAAa,EACxBzkG,EAAK97B,MAAMsgI,WAAY,EACvB,MACJ,QACQxkG,EAAK97B,MAAMogI,WACXtkG,EAAK/3C,MAAQ7E,EACb48C,EAAK97B,MAAMqgI,aAAc,EACzBvkG,EAAK97B,MAAMugI,YAAa,GAEnBzkG,EAAK97B,MAAMsgI,WAChBxkG,EAAK7nB,MAAQ/0B,SACN48C,EAAK97B,MAAMugI,YAEbzkG,EAAK97B,MAAMygI,UAChB3kG,EAAK/3C,MAAQ7E,EAGb8zI,EAAWr1I,GAG3B,CAmBA,OAlBIm+C,EAAKosC,QACL,GAAO6pD,mBAAmB,iBAAkB,QAASkO,UAElD/3D,EAAOloE,MACI,YAAd87B,EAAK7nB,MACA6rH,GACD9M,EAAWkN,EAActnJ,OAAS,GAElCkjD,EAAK8jG,SACL5M,EAAWkN,EAActnJ,OAAS,GAEtCkjD,EAAK8jG,SAAU,EACf9jG,EAAK7nB,KAAO,IAEP+qH,GAAcljG,EAAK/3C,KAAM+3C,EAAK7nB,QACnC6nB,EAAK7nB,KAAO,IAEhBi0D,EAAOnkF,KAAOi8I,GAAW93D,EAAOnkF,MACzBmkF,CACX,CA2H2Bw4D,CAAe5tJ,IAASgtJ,GAPhCP,GAAU37B,WAAW,CACxB3vF,KAAM6nB,EAAK7nB,KACXlwB,KAAM+3C,EAAK/3C,KACX67I,QAAS9jG,EAAK8jG,QACdF,WAAY5jG,EAAK4jG,aALzB,IAAqB5jG,CASzB,CACAyK,mBAAmBzzD,GACf,QAAmB,MAATA,IAAiBA,EAAM6sJ,aACrC,EAGJ,SAASgB,GAAY7tJ,EAAO8tJ,GACxB,OAsfJ,SAAsB9tJ,GAClBA,EAAQA,EAAMk6G,OACd,IAAI31G,EAAS,GACTw9I,EAAQ,GACRr1E,EAAQ,EACZ,IAAK,IAAI3hB,EAAS,EAAGA,EAAS/qD,EAAM8F,OAAQilD,IAAU,CAClD,IAAI3+C,EAAIpM,EAAM+qD,GACJ,MAAN3+C,GAAuB,IAAVsgE,GACbnoE,EAAOwB,KAAKg8I,GACZA,EAAQ,KAGRA,GAAS31I,EACC,MAANA,EACAsgE,IAEW,MAANtgE,IACLsgE,KACe,IAAXA,GACA,GAAOuyE,mBAAmB,yBAA0B,QAASj/I,IAI7E,CAIA,OAHI+hJ,GACAx9I,EAAOwB,KAAKg8I,GAETx9I,CACX,CAlhBWwpJ,CAAa/tJ,GAAOsM,KAAK6gJ,GAAUV,GAAUnjJ,WAAW6jJ,EAAOW,IAC1E,CACO,MAAME,GACT/lJ,YAAYo7I,EAAkBn6G,GACtBm6G,IAAqB,IACrB,GAAOnD,WAAW,2BAA4BrB,EAAOzlD,OAAOonD,sBAAuB,CAC/Ez9G,UAAW,mBAGnBopH,GAAStsJ,KAAMqpC,GACfrpC,KAAKouJ,aAAc,EACnBnuJ,OAAOizD,OAAOlzD,KAClB,CACA4zD,YAAYzzD,GACR,OAAIguJ,GAASE,WAAWluJ,GACbA,EAEY,iBAAZ,EACAguJ,GAAS1kJ,WAAWtJ,GAExBguJ,GAASl9B,WAAW9wH,EAC/B,CACAyzD,kBAAkBzzD,GACd,GAAIguJ,GAASE,WAAWluJ,GACpB,OAAOA,EAEX,OAAQA,EAAMiR,MACV,IAAK,WACD,OAAOk9I,GAAiBr9B,WAAW9wH,GACvC,IAAK,QACD,OAAOouJ,GAAct9B,WAAW9wH,GACpC,IAAK,cACD,OAAOquJ,GAAoBv9B,WAAW9wH,GAC1C,IAAK,QACD,OAAOsuJ,GAAcx9B,WAAW9wH,GACpC,IAAK,WACL,IAAK,UAED,OAAO,KAEf,OAAO,GAAOi/I,mBAAmB,0BAA2B,QAASj/I,EACzE,CACAyzD,kBAAkBzzD,GAKd,MAA4B,WAD5BA,GADAA,GADAA,EAAQA,EAAMkiB,QAAQ,MAAO,MACfA,QAAQ,MAAO,MAAMA,QAAQ,MAAO,MAAMA,QAAQ,OAAQ,MAC1Dg4F,QACJ1tG,MAAM,KAAK,GACV4hJ,GAAc9kJ,WAAWtJ,EAAM86B,UAAU,GAAGo/E,QAEtB,aAAxBl6G,EAAMwM,MAAM,KAAK,GACf2hJ,GAAiB7kJ,WAAWtJ,EAAM86B,UAAU,GAAGo/E,QAElB,gBAA/Bl6G,EAAMwM,MAAM,KAAK,GAAG0tG,OAClBm0C,GAAoB/kJ,WAAWtJ,EAAMk6G,QAEf,UAAxBl6G,EAAMwM,MAAM,KAAK,GACf8hJ,GAAchlJ,WAAWtJ,EAAM86B,UAAU,GAAGo/E,QAEhD,GAAO+kC,mBAAmB,uBAAwB,QAASj/I,EACtE,CACAyzD,kBAAkBzzD,GACd,SAAUA,IAASA,EAAMiuJ,YAC7B,EAEG,MAAMG,WAAsBJ,GAC/BpsE,OAAOA,GAOH,GANKA,IACDA,EAASwqE,GAAYC,SAEpBD,GAAYxqE,IACb,GAAOq9D,mBAAmB,sBAAuB,SAAUr9D,GAE3DA,IAAWwqE,GAAY3+E,KACvB,OAAOtqC,KAAKE,UAAU,CAClBpyB,KAAM,QACNs9I,UAAW1uJ,KAAK0uJ,UAChBptH,KAAMthC,KAAKshC,KACXld,OAAQpkB,KAAKokB,OAAO3X,KAAKg8D,GAAUnlC,KAAKx6B,MAAM2/D,EAAMsZ,OAAOA,QAGnE,IAAIr9E,EAAS,GAUb,OATIq9E,IAAWwqE,GAAYC,UACvB9nJ,GAAU,UAEdA,GAAU1E,KAAKshC,KAAO,IAAMthC,KAAKokB,OAAO3X,KAAKg8D,GAAUA,EAAMsZ,OAAOA,KAASr1E,KAAMq1E,IAAWwqE,GAAYG,KAAQ,KAAO,KAAO,KAC5H3qE,IAAWwqE,GAAYC,SACnBxsJ,KAAK0uJ,YACLhqJ,GAAU,cAGXA,EAAO21G,MAClB,CACAzmD,YAAYzzD,GACR,MAAuB,iBAAZ,EACAouJ,GAAc9kJ,WAAWtJ,GAE7BouJ,GAAct9B,WAAW9wH,EACpC,CACAyzD,kBAAkBzzD,GACd,GAAIouJ,GAAcI,gBAAgBxuJ,GAC9B,OAAOA,EAEQ,UAAfA,EAAMiR,MACN,GAAOguI,mBAAmB,uBAAwB,QAASj/I,GAE/D,MAAMkpC,EAAS,CACX/H,KAAMstH,GAAiBzuJ,EAAMmhC,MAC7BotH,UAAWvuJ,EAAMuuJ,UACjBtqI,OAASjkB,EAAMikB,OAASjkB,EAAMikB,OAAO3X,IAAImgJ,GAAU37B,YAAc,GACjE7/G,KAAM,SAEV,OAAO,IAAIm9I,GAAc,GAAmBllH,EAChD,CACAuqB,kBAAkBzzD,GACd,IAAIwJ,EAAQxJ,EAAMwJ,MAAMklJ,IACnBllJ,GACD,GAAOy1I,mBAAmB,uBAAwB,QAASj/I,GAE/D,IAAIuuJ,GAAY,EAYhB,OAXA/kJ,EAAM,GAAGgD,MAAM,KAAKX,SAAS8iJ,IACzB,OAAQA,EAASz0C,QACb,IAAK,YACDq0C,GAAY,EACZ,MACJ,IAAK,GACD,MACJ,QACI,GAAOtxC,KAAK,qBAAuB0xC,GAC3C,IAEGP,GAAct9B,WAAW,CAC5B3vF,KAAM33B,EAAM,GAAG0wG,OACfq0C,UAAWA,EACXtqI,OAAQ4pI,GAAYrkJ,EAAM,IAAI,GAC9ByH,KAAM,SAEd,CACAwiD,uBAAuBzzD,GACnB,OAAQA,GAASA,EAAMiuJ,aAA8B,UAAfjuJ,EAAMiR,IAChD,EAEJ,SAAS29I,GAAS5uJ,EAAOkpC,GACrBA,EAAOt5B,IAAM,KACb,IAAIi/I,EAAQ7uJ,EAAMwM,MAAM,KACxB,OAAqB,IAAjBqiJ,EAAM/oJ,QACF+oJ,EAAM/oJ,OAAS,GACf,GAAOm5I,mBAAmB,uCAAwC,QAASj/I,GAE1E6uJ,EAAM,GAAGrlJ,MAAM,aAChB,GAAOy1I,mBAAmB,2CAA4C,QAASj/I,GAEnFkpC,EAAOt5B,IAAMwzI,EAAUn4I,KAAK4jJ,EAAM,IAC3BA,EAAM,IAEV7uJ,CACX,CACA,SAAS8uJ,GAAe9uJ,EAAOkpC,GAC3BA,EAAO6lH,UAAW,EAClB7lH,EAAO8lH,SAAU,EACjB9lH,EAAO+lH,gBAAkB,aACzBjvJ,EAAMwM,MAAM,KAAKX,SAAS8iJ,IACtB,OAAQA,EAASz0C,QACb,IAAK,WACDhxE,EAAO6lH,UAAW,EAClB,MACJ,IAAK,UACD7lH,EAAO8lH,SAAU,EACjB9lH,EAAO+lH,gBAAkB,UACzB,MACJ,IAAK,aACD/lH,EAAO8lH,SAAU,EACjB9lH,EAAO+lH,gBAAkB,aACzB,MACJ,IAAK,OACD/lH,EAAO6lH,UAAW,EAClB7lH,EAAO+lH,gBAAkB,OACzB,MACJ,IAAK,OACD/lH,EAAO6lH,UAAW,EAClB7lH,EAAO+lH,gBAAkB,OACzB,MACJ,IAAK,WACL,IAAK,SACL,IAAK,GACD,MACJ,QACIntJ,QAAQC,IAAI,qBAAuB4sJ,GAC3C,GAER,CACA,SAASO,GAAYlvJ,GACjB,IAAIuE,EAAS,CACTwqJ,UAAU,EACVC,SAAS,EACTC,gBAAiB,WA4CrB,OA1C6B,MAAzBjvJ,EAAMivJ,iBACN1qJ,EAAO0qJ,gBAAkBjvJ,EAAMivJ,gBAE/B1qJ,EAAOwqJ,SAAuC,SAA3BxqJ,EAAO0qJ,iBAAyD,SAA3B1qJ,EAAO0qJ,gBACzC,MAAlBjvJ,EAAM+uJ,YACC/uJ,EAAM+uJ,WAAcxqJ,EAAOwqJ,UAC9B,GAAO9P,mBAAmB,iDAAmD16I,EAAO0qJ,gBAAiB,QAASjvJ,GAItHuE,EAAOyqJ,QAAsC,YAA3BzqJ,EAAO0qJ,gBACJ,MAAjBjvJ,EAAMgvJ,WACChvJ,EAAMgvJ,UAAazqJ,EAAOyqJ,SAC7B,GAAO/P,mBAAmB,gDAAkD16I,EAAO0qJ,gBAAiB,QAASjvJ,IAI/F,MAAjBA,EAAMgvJ,SACXzqJ,EAAOyqJ,UAAYhvJ,EAAMgvJ,QAEH,MAAlBhvJ,EAAM+uJ,UAAqBxqJ,EAAOyqJ,SAA0B,gBAAfhvJ,EAAMiR,MACnD,GAAOguI,mBAAmB,sCAAuC,QAASj/I,GAE9EuE,EAAOwqJ,WAAa/uJ,EAAM+uJ,SACtBxqJ,EAAOwqJ,SACPxqJ,EAAO0qJ,gBAAkB,OAGzB1qJ,EAAO0qJ,gBAAmB1qJ,EAAOyqJ,QAAU,UAAY,aAEvDzqJ,EAAOyqJ,SAAWzqJ,EAAOwqJ,UACzB,GAAO9P,mBAAmB,wCAAyC,QAASj/I,IAGzD,MAAlBA,EAAM+uJ,UACXxqJ,EAAOwqJ,WAAa/uJ,EAAM+uJ,SAC1BxqJ,EAAOyqJ,SAAWzqJ,EAAOwqJ,SACzBxqJ,EAAO0qJ,gBAAmB1qJ,EAAOwqJ,SAAW,OAAS,WAEjC,gBAAf/uJ,EAAMiR,MACX,GAAOguI,mBAAmB,sCAAuC,QAASj/I,GAEvEuE,CACX,CACO,MAAM8pJ,WAA4BL,GACrCpsE,OAAOA,GAOH,GANKA,IACDA,EAASwqE,GAAYC,SAEpBD,GAAYxqE,IACb,GAAOq9D,mBAAmB,sBAAuB,SAAUr9D,GAE3DA,IAAWwqE,GAAY3+E,KACvB,OAAOtqC,KAAKE,UAAU,CAClBpyB,KAAM,cACNg+I,gBAA4C,eAAzBpvJ,KAAKovJ,gBAAoCpvJ,KAAKovJ,qBAAkBvsJ,EACnFssJ,QAASnvJ,KAAKmvJ,QACdp/I,IAAM/P,KAAK+P,IAAM/P,KAAK+P,IAAIP,gBAAa3M,EACvCuhB,OAAQpkB,KAAKokB,OAAO3X,KAAKg8D,GAAUnlC,KAAKx6B,MAAM2/D,EAAMsZ,OAAOA,QAG/DA,IAAWwqE,GAAYC,SACvB,GAAOnM,WAAW,0CAA2CrB,EAAOzlD,OAAOonD,sBAAuB,CAC9Fz9G,UAAW,oBAGnB,IAAIx+B,EAAS,eAAiB1E,KAAKokB,OAAO3X,KAAKg8D,GAAUA,EAAMsZ,OAAOA,KAASr1E,KAAMq1E,IAAWwqE,GAAYG,KAAQ,KAAO,KAAO,KAIlI,OAHI1sJ,KAAKovJ,iBAA4C,eAAzBpvJ,KAAKovJ,kBAC7B1qJ,GAAU1E,KAAKovJ,gBAAkB,KAE9B1qJ,EAAO21G,MAClB,CACAzmD,YAAYzzD,GACR,MAAuB,iBAAZ,EACAquJ,GAAoB/kJ,WAAWtJ,GAEnCquJ,GAAoBv9B,WAAW9wH,EAC1C,CACAyzD,kBAAkBzzD,GACd,GAAIquJ,GAAoBc,sBAAsBnvJ,GAC1C,OAAOA,EAEQ,gBAAfA,EAAMiR,MACN,GAAOguI,mBAAmB,6BAA8B,QAASj/I,GAErE,IAAIktB,EAAQgiI,GAAYlvJ,GACpBktB,EAAM6hI,UACN,GAAO9P,mBAAmB,iCAAkC,QAASj/I,GAEzE,MAAMkpC,EAAS,CACX/H,KAAM,KACNlwB,KAAMjR,EAAMiR,KACZgT,OAASjkB,EAAMikB,OAASjkB,EAAMikB,OAAO3X,IAAImgJ,GAAU37B,YAAc,GACjEk+B,QAAS9hI,EAAM8hI,QACfC,gBAAiB/hI,EAAM+hI,gBACvBr/I,IAAM5P,EAAM4P,IAAMwzI,EAAUn4I,KAAKjL,EAAM4P,KAAO,MAElD,OAAO,IAAIy+I,GAAoB,GAAmBnlH,EACtD,CACAuqB,kBAAkBzzD,GACd,IAAIkpC,EAAS,CAAEj4B,KAAM,eAEjBm+I,GADJpvJ,EAAQ4uJ,GAAS5uJ,EAAOkpC,IACL1/B,MAAMklJ,IAMzB,OALKU,GAA+B,gBAArBA,EAAO,GAAGl1C,QACrB,GAAO+kC,mBAAmB,6BAA8B,QAASj/I,GAErEkpC,EAAOjlB,OAAS4pI,GAAYuB,EAAO,GAAGl1C,QAAQ,GAC9C40C,GAAeM,EAAO,GAAGl1C,OAAQhxE,GAC1BmlH,GAAoBv9B,WAAW5nF,EAC1C,CACAuqB,6BAA6BzzD,GACzB,OAAQA,GAASA,EAAMiuJ,aAA8B,gBAAfjuJ,EAAMiR,IAChD,EAEG,MAAMk9I,WAAyBE,GAClCzsE,OAAOA,GAOH,GANKA,IACDA,EAASwqE,GAAYC,SAEpBD,GAAYxqE,IACb,GAAOq9D,mBAAmB,sBAAuB,SAAUr9D,GAE3DA,IAAWwqE,GAAY3+E,KACvB,OAAOtqC,KAAKE,UAAU,CAClBpyB,KAAM,WACNkwB,KAAMthC,KAAKshC,KACX4tH,SAAUlvJ,KAAKkvJ,SACfE,gBAA4C,eAAzBpvJ,KAAKovJ,gBAAoCpvJ,KAAKovJ,qBAAkBvsJ,EACnFssJ,QAASnvJ,KAAKmvJ,QACdp/I,IAAM/P,KAAK+P,IAAM/P,KAAK+P,IAAIP,gBAAa3M,EACvCuhB,OAAQpkB,KAAKokB,OAAO3X,KAAKg8D,GAAUnlC,KAAKx6B,MAAM2/D,EAAMsZ,OAAOA,MAC3D19D,QAASrkB,KAAKqkB,QAAQ5X,KAAKm4C,GAAWthB,KAAKx6B,MAAM87C,EAAOm9B,OAAOA,QAGvE,IAAIr9E,EAAS,GAqBb,OApBIq9E,IAAWwqE,GAAYC,UACvB9nJ,GAAU,aAEdA,GAAU1E,KAAKshC,KAAO,IAAMthC,KAAKokB,OAAO3X,KAAKg8D,GAAUA,EAAMsZ,OAAOA,KAASr1E,KAAMq1E,IAAWwqE,GAAYG,KAAQ,KAAO,KAAO,KAC5H3qE,IAAWwqE,GAAYC,UACnBxsJ,KAAKovJ,gBACwB,eAAzBpvJ,KAAKovJ,kBACL1qJ,GAAW1E,KAAKovJ,gBAAkB,KAGjCpvJ,KAAKkvJ,WACVxqJ,GAAU,SAEV1E,KAAKqkB,SAAWrkB,KAAKqkB,QAAQpe,SAC7BvB,GAAU,YAAc1E,KAAKqkB,QAAQ5X,KAAKm4C,GAAWA,EAAOm9B,OAAOA,KAASr1E,KAAK,MAAQ,MAE7E,MAAZ1M,KAAK+P,MACLrL,GAAU,IAAM1E,KAAK+P,IAAI3I,WAAa,MAGvC1C,EAAO21G,MAClB,CACAzmD,YAAYzzD,GACR,MAAuB,iBAAZ,EACAmuJ,GAAiB7kJ,WAAWtJ,GAEhCmuJ,GAAiBr9B,WAAW9wH,EACvC,CACAyzD,kBAAkBzzD,GACd,GAAImuJ,GAAiBkB,mBAAmBrvJ,GACpC,OAAOA,EAEQ,aAAfA,EAAMiR,MACN,GAAOguI,mBAAmB,0BAA2B,QAASj/I,GAElE,IAAIktB,EAAQgiI,GAAYlvJ,GACxB,MAAMkpC,EAAS,CACXj4B,KAAMjR,EAAMiR,KACZkwB,KAAMstH,GAAiBzuJ,EAAMmhC,MAC7B4tH,SAAU7hI,EAAM6hI,SAChB9qI,OAASjkB,EAAMikB,OAASjkB,EAAMikB,OAAO3X,IAAImgJ,GAAU37B,YAAc,GACjE5sG,QAAUlkB,EAAMkkB,QAAUlkB,EAAMkkB,QAAQ5X,IAAImgJ,GAAU37B,YAAc,GACpEk+B,QAAS9hI,EAAM8hI,QACfC,gBAAiB/hI,EAAM+hI,gBACvBr/I,IAAM5P,EAAM4P,IAAMwzI,EAAUn4I,KAAKjL,EAAM4P,KAAO,MAElD,OAAO,IAAIu+I,GAAiB,GAAmBjlH,EACnD,CACAuqB,kBAAkBzzD,GACd,IAAIkpC,EAAS,CAAEj4B,KAAM,YAEjB49I,GADJ7uJ,EAAQ4uJ,GAAS5uJ,EAAOkpC,IACN18B,MAAM,aACpBqiJ,EAAM/oJ,OAAS,GACf,GAAOm5I,mBAAmB,0BAA2B,QAASj/I,GAElE,IAAIovJ,EAASP,EAAM,GAAGrlJ,MAAMklJ,IAW5B,GAVKU,GACD,GAAOnQ,mBAAmB,6BAA8B,QAASj/I,GAErEkpC,EAAO/H,KAAOiuH,EAAO,GAAGl1C,OACpBhxE,EAAO/H,MACPstH,GAAiBvlH,EAAO/H,MAE5B+H,EAAOjlB,OAAS4pI,GAAYuB,EAAO,IAAI,GACvCN,GAAeM,EAAO,GAAGl1C,OAAQhxE,GAE7B2lH,EAAM/oJ,OAAS,EAAG,CAClB,IAAIwpJ,EAAUT,EAAM,GAAGrlJ,MAAMklJ,IACJ,IAArBY,EAAQ,GAAGp1C,QAAqC,IAArBo1C,EAAQ,GAAGp1C,QACtC,GAAO+kC,mBAAmB,oBAAqB,QAASj/I,GAE5DkpC,EAAOhlB,QAAU2pI,GAAYyB,EAAQ,IAAI,EAC7C,MAEIpmH,EAAOhlB,QAAU,GAErB,OAAOiqI,GAAiBr9B,WAAW5nF,EACvC,CACAuqB,0BAA0BzzD,GACtB,OAAQA,GAASA,EAAMiuJ,aAA8B,aAAfjuJ,EAAMiR,IAChD,EAIJ,SAASs+I,GAAeC,GACpB,MAAM30I,EAAM20I,EAAS5tE,SAIrB,MAHY,kBAAR/mE,GAAmC,mBAARA,GAC3B,GAAOokI,mBAAmB,+BAA+BpkI,UAAa,WAAY20I,GAE/EA,CACX,CACO,MAAMlB,WAAsBN,GAC/BpsE,OAAOA,GAOH,GANKA,IACDA,EAASwqE,GAAYC,SAEpBD,GAAYxqE,IACb,GAAOq9D,mBAAmB,sBAAuB,SAAUr9D,GAE3DA,IAAWwqE,GAAY3+E,KACvB,OAAOtqC,KAAKE,UAAU,CAClBpyB,KAAM,QACNkwB,KAAMthC,KAAKshC,KACXld,OAAQpkB,KAAKokB,OAAO3X,KAAKg8D,GAAUnlC,KAAKx6B,MAAM2/D,EAAMsZ,OAAOA,QAGnE,IAAIr9E,EAAS,GAKb,OAJIq9E,IAAWwqE,GAAYC,UACvB9nJ,GAAU,UAEdA,GAAU1E,KAAKshC,KAAO,IAAMthC,KAAKokB,OAAO3X,KAAKg8D,GAAUA,EAAMsZ,OAAOA,KAASr1E,KAAMq1E,IAAWwqE,GAAYG,KAAQ,KAAO,KAAO,KACzHhoJ,EAAO21G,MAClB,CACAzmD,YAAYzzD,GACR,MAAuB,iBAAZ,EACAsuJ,GAAchlJ,WAAWtJ,GAE7BsuJ,GAAcx9B,WAAW9wH,EACpC,CACAyzD,kBAAkBzzD,GACd,GAAIsuJ,GAAcmB,gBAAgBzvJ,GAC9B,OAAOA,EAEQ,UAAfA,EAAMiR,MACN,GAAOguI,mBAAmB,uBAAwB,QAASj/I,GAE/D,MAAMkpC,EAAS,CACXj4B,KAAMjR,EAAMiR,KACZkwB,KAAMstH,GAAiBzuJ,EAAMmhC,MAC7Bld,OAASjkB,EAAMikB,OAASjkB,EAAMikB,OAAO3X,IAAImgJ,GAAU37B,YAAc,IAErE,OAAOy+B,GAAe,IAAIjB,GAAc,GAAmBplH,GAC/D,CACAuqB,kBAAkBzzD,GACd,IAAIkpC,EAAS,CAAEj4B,KAAM,SACjBm+I,EAASpvJ,EAAMwJ,MAAMklJ,IASzB,OARKU,GACD,GAAOnQ,mBAAmB,0BAA2B,QAASj/I,GAElEkpC,EAAO/H,KAAOiuH,EAAO,GAAGl1C,OACpBhxE,EAAO/H,MACPstH,GAAiBvlH,EAAO/H,MAE5B+H,EAAOjlB,OAAS4pI,GAAYuB,EAAO,IAAI,GAChCG,GAAejB,GAAcx9B,WAAW5nF,GACnD,CACAuqB,uBAAuBzzD,GACnB,OAAQA,GAASA,EAAMiuJ,aAA8B,UAAfjuJ,EAAMiR,IAChD,EAEJ,SAASi8I,GAAWj8I,GAShB,OAPIA,EAAKzH,MAAM,mBACXyH,EAAO,UAAYA,EAAK6pB,UAAU,GAE7B7pB,EAAKzH,MAAM,oBAChByH,EAAO,SAAWA,EAAK6pB,UAAU,IAG9B7pB,CACX,CAEA,MAAMy+I,GAAkB,IAAIx0C,OAAO,8BACnC,SAASuzC,GAAiBzuJ,GAItB,OAHKA,GAAUA,EAAMwJ,MAAMkmJ,KACvB,GAAOzQ,mBAAmB,uBAAuBj/I,KAAU,QAASA,GAEjEA,CACX,CACA,MAAM0uJ,GAAa,IAAIxzC,OAAO,gCClzBxB,GAAS,IAAI2jC,EAAO,IAYpB8Q,GAAiB,IAAIz0C,OAAO,mBAC5B00C,GAAkB,IAAI10C,OAAO,qBAC5B,MAAM20C,GACT5nJ,YAAY09I,GACR7B,GAAejkJ,KAAM,aAAc8lJ,GAAc,KACrD,CACAmK,UAAU3C,GACN,OAAQA,EAAM9C,UACV,IAAK,UACD,OAAO,IAAIjB,GAAa+D,EAAMhsH,MAClC,IAAK,OACD,OAAO,IAAIspH,GAAa0C,EAAMhsH,MAClC,IAAK,SACD,OAAO,IAAIuqH,GAAYyB,EAAMhsH,MACjC,IAAK,QACD,OAAO,IAAIwpH,GAAWwC,EAAMhsH,MAChC,IAAK,QACD,OAAO,IAAIopH,GAAW1qJ,KAAKiwJ,UAAU3C,EAAMR,eAAgBQ,EAAMT,YAAaS,EAAMhsH,MACxF,IAAK,QACD,OAAO,IAAIwqH,IAAYwB,EAAMP,YAAc,IAAItgJ,KAAKyjJ,GACzClwJ,KAAKiwJ,UAAUC,KACtB5C,EAAMhsH,MACd,IAAK,GACD,OAAO,IAAI0pH,GAAUsC,EAAMhsH,MAGnC,IAAI33B,EAAQ2jJ,EAAMl8I,KAAKzH,MAAMomJ,IAC7B,GAAIpmJ,EAAO,CACP,IAAIi+D,EAAOt4D,SAAS3F,EAAM,IAAM,OAIhC,OAHa,IAATi+D,GAAcA,EAAO,KAAQA,EAAO,GAAO,IAC3C,GAAOw3E,mBAAmB,WAAaz1I,EAAM,GAAK,cAAe,QAAS2jJ,GAEvE,IAAI7B,GAAY7jF,EAAO,EAAiB,QAAbj+D,EAAM,GAAe2jJ,EAAMhsH,KACjE,CAGA,GADA33B,EAAQ2jJ,EAAMl8I,KAAKzH,MAAMmmJ,IACrBnmJ,EAAO,CACP,IAAIi+D,EAAOt4D,SAAS3F,EAAM,IAI1B,OAHa,IAATi+D,GAAcA,EAAO,KACrB,GAAOw3E,mBAAmB,uBAAwB,QAASkO,GAExD,IAAIvC,GAAgBnjF,EAAM0lF,EAAMhsH,KAC3C,CACA,OAAO,GAAO89G,mBAAmB,eAAgB,OAAQkO,EAAMl8I,KACnE,CACA++I,eAAiB,OAAO,EAAI,CAC5BC,WAAWhmJ,EAAM27I,GACb,OAAO,IAAI52E,GAAO/kE,EAAMpK,KAAKmwJ,eAAgBnwJ,KAAK8lJ,WAAYC,EAClE,CACAsK,aACI,OAAO,IAAIzhF,GAAO5uE,KAAKmwJ,eAC3B,CACAG,gBAAgBvE,GACZ,MAAMpC,EAASoC,EAAMt/I,KAAK2E,GAASpR,KAAKiwJ,UAAUrD,GAAUxhJ,KAAKgG,MAEjE,OADc,IAAI06I,GAAWnC,EAAQ,KACxBH,cACjB,CACAhyI,OAAOu0I,EAAO7+I,GACN6+I,EAAM9lJ,SAAWiH,EAAOjH,QACxB,GAAOo6I,WAAW,+BAAgCrB,EAAOzlD,OAAO+mD,iBAAkB,CAC9EnyI,MAAO,CAAE49I,MAAOA,EAAM9lJ,OAAQiH,OAAQA,EAAOjH,QAC7C9F,MAAO,CAAE4rJ,MAAOA,EAAO7+I,OAAQA,KAGvC,MAAMy8I,EAASoC,EAAMt/I,KAAK2E,GAASpR,KAAKiwJ,UAAUrD,GAAUxhJ,KAAKgG,MAC3Ds4I,EAAQ,IAAKoC,GAAWnC,EAAQ,KAChCh7E,EAAS3uE,KAAKqwJ,aAEpB,OADA3G,EAAMlyI,OAAOm3D,EAAQzhE,GACdyhE,EAAOvkE,IAClB,CACAsN,OAAOq0I,EAAO3hJ,EAAMi8I,GAChB,MAAMsD,EAASoC,EAAMt/I,KAAK2E,GAASpR,KAAKiwJ,UAAUrD,GAAUxhJ,KAAKgG,MAEjE,OADc,IAAI06I,GAAWnC,EAAQ,KACxBjyI,OAAO1X,KAAKowJ,WAAWxO,EAASx3I,GAAOi8I,GACxD,EAEG,MAAMkK,GAAkB,IAAIP,GClF7B,GAAS,IAAIhR,EAAO,IAEnB,MAAMwR,WAAuBjyH,IAE7B,MAAMkyH,WAA+BlyH,IAErC,MAAMmyH,WAAyBnyH,IAE/B,MAAMoyH,WAAgBpyH,GACzBq1B,iBAAiBzzD,GACb,SAAUA,IAASA,EAAMywJ,WAC7B,EAEJ,MAAMC,GAAgB,CAClB,aAAc,CAAErpJ,UAAW,gBAAiB85B,KAAM,QAASld,OAAQ,CAAC,UAAWmxF,QAAQ,GACvF,aAAc,CAAE/tG,UAAW,iBAAkB85B,KAAM,QAASld,OAAQ,CAAC,aAEzE,SAAS0sI,GAAgBC,EAAUhyF,GAC/B,MAAMsJ,EAAO,IAAI/hE,MAAM,0DAA0DyqJ,KAEjF,OADA1oF,EAAKtJ,MAAQA,EACNsJ,CACX,CAcO,MAAM2oF,GACT5oJ,YAAY6oJ,GACR,IAAIC,EAAM,GAENA,EADuB,iBAAhB,EACD5tH,KAAKx6B,MAAMmoJ,GAGXA,EAEVhN,GAAejkJ,KAAM,YAAakxJ,EAAIzkJ,KAAKkjJ,GAChCxB,GAAS/iJ,KAAKukJ,KACtBpiJ,QAAQoiJ,GAA0B,MAAZA,KACzB1L,GAAejkJ,KAAM,YAAakkJ,cAAsB,cAAtBA,IAClCD,GAAejkJ,KAAM,YAAa,CAAC,GACnCikJ,GAAejkJ,KAAM,SAAU,CAAC,GAChCikJ,GAAejkJ,KAAM,SAAU,CAAC,GAChCikJ,GAAejkJ,KAAM,UAAW,CAAC,GAEjCA,KAAKixJ,UAAUjlJ,SAAS2jJ,IACpB,IAAIwB,EAAS,KACb,OAAQxB,EAASv+I,MACb,IAAK,cACD,OAAIpR,KAAKoxJ,YACL,GAAOh0C,KAAK,2CAIhB6mC,GAAejkJ,KAAM,SAAU2vJ,GAEnC,IAAK,WAGDwB,EAASnxJ,KAAKqxJ,UACd,MACJ,IAAK,QAEDF,EAASnxJ,KAAK+d,OACd,MACJ,IAAK,QACDozI,EAASnxJ,KAAKu5F,OACd,MACJ,QACI,OAER,IAAI/xF,EAAYmoJ,EAAS5tE,SACrBovE,EAAO3pJ,GACP,GAAO41G,KAAK,0BAA4B51G,GAG5C2pJ,EAAO3pJ,GAAamoJ,CAAQ,IAG3B3vJ,KAAKoxJ,QACNnN,GAAejkJ,KAAM,SAAUwuJ,GAAoBpjJ,KAAK,CACpD+jJ,SAAS,EACT/9I,KAAM,iBAGd6yI,GAAejkJ,KAAM,gBAAgB,EACzC,CACA+hF,OAAOA,GACEA,IACDA,EAASwqE,GAAYG,MAErB3qE,IAAWwqE,GAAYC,SACvB,GAAOpN,mBAAmB,gDAAiD,SAAUr9D,GAEzF,MAAMmvE,EAAMlxJ,KAAKixJ,UAAUxkJ,KAAKkjJ,GAAaA,EAAS5tE,OAAOA,KAE7D,OAAIA,IAAWwqE,GAAY3+E,KAChBtqC,KAAKE,UAAU0tH,EAAIzkJ,KAAKw9C,GAAM3mB,KAAKx6B,MAAMmhD,MAE7CinG,CACX,CAEAt9F,qBACI,OAAO28F,EACX,CACA38F,kBAAkBxtD,GACd,OAAOa,GAAWb,EACtB,CACAwtD,kBAAkB+7F,GACd,OAAOnN,EAAaj6H,GAAGonI,EAAS5tE,UAAW,EAAG,EAClD,CACAnuB,qBAAqB09F,GACjB,OAAO/oI,GAAG+oI,EAAcvvE,SAC5B,CAEAwvE,YAAYC,GACR,GAAI,EAAYA,GAA2B,CACvC,IAAK,MAAMlwH,KAAQthC,KAAKqxJ,UACpB,GAAIG,IAA6BxxJ,KAAKyxJ,WAAWnwH,GAC7C,OAAOthC,KAAKqxJ,UAAU/vH,GAG9B,GAAO89G,mBAAmB,uBAAwB,UAAWoS,EACjE,CAEA,IAA+C,IAA3CA,EAAyBhoJ,QAAQ,KAAa,CAC9C,MAAM83B,EAAOkwH,EAAyBn3C,OAChCq3C,EAAWzxJ,OAAO8L,KAAK/L,KAAKqxJ,WAAW9jJ,QAAQvI,GAAOA,EAAE2H,MAAM,KAAiB,KAAO20B,IAO5F,OANwB,IAApBowH,EAASzrJ,OACT,GAAOm5I,mBAAmB,uBAAwB,OAAQ99G,GAErDowH,EAASzrJ,OAAS,GACvB,GAAOm5I,mBAAmB,8BAA+B,OAAQ99G,GAE9DthC,KAAKqxJ,UAAUK,EAAS,GACnC,CAEA,MAAMhtJ,EAAS1E,KAAKqxJ,UAAU/C,GAAiB7kJ,WAAW+nJ,GAA0BzvE,UAIpF,OAHKr9E,GACD,GAAO06I,mBAAmB,uBAAwB,YAAaoS,GAE5D9sJ,CACX,CAEAitJ,SAASC,GACL,GAAI,EAAYA,GAAyB,CACrC,MAAMC,EAAYD,EAAuBzuG,cACzC,IAAK,MAAM7hB,KAAQthC,KAAK+d,OACpB,GAAI8zI,IAAc7xJ,KAAK8xJ,cAAcxwH,GACjC,OAAOthC,KAAK+d,OAAOujB,GAG3B,GAAO89G,mBAAmB,oBAAqB,YAAayS,EAChE,CAEA,IAA6C,IAAzCD,EAAuBpoJ,QAAQ,KAAa,CAC5C,MAAM83B,EAAOswH,EAAuBv3C,OAC9Bq3C,EAAWzxJ,OAAO8L,KAAK/L,KAAK+d,QAAQxQ,QAAQvI,GAAOA,EAAE2H,MAAM,KAAiB,KAAO20B,IAOzF,OANwB,IAApBowH,EAASzrJ,OACT,GAAOm5I,mBAAmB,oBAAqB,OAAQ99G,GAElDowH,EAASzrJ,OAAS,GACvB,GAAOm5I,mBAAmB,2BAA4B,OAAQ99G,GAE3DthC,KAAK+d,OAAO2zI,EAAS,GAChC,CAEA,MAAMhtJ,EAAS1E,KAAK+d,OAAOwwI,GAAc9kJ,WAAWmoJ,GAAwB7vE,UAI5E,OAHKr9E,GACD,GAAO06I,mBAAmB,oBAAqB,YAAawS,GAEzDltJ,CACX,CAEAqtJ,SAASP,GACL,GAAI,EAAYA,GAA2B,CACvC,MAAMC,EAAavN,GAAUlkJ,KAAKoI,YAAa,cAC/C,IAAK,MAAMk5B,KAAQthC,KAAKu5F,OAEpB,GAAIi4D,IAA6BC,EADnBzxJ,KAAKu5F,OAAOj4D,IAEtB,OAAOthC,KAAKu5F,OAAOj4D,GAG3B,GAAO89G,mBAAmB,oBAAqB,UAAWoS,EAC9D,CAEA,IAA+C,IAA3CA,EAAyBhoJ,QAAQ,KAAa,CAC9C,MAAM83B,EAAOkwH,EAAyBn3C,OAChCq3C,EAAWzxJ,OAAO8L,KAAK/L,KAAKu5F,QAAQhsF,QAAQvI,GAAOA,EAAE2H,MAAM,KAAiB,KAAO20B,IAOzF,OANwB,IAApBowH,EAASzrJ,OACT,GAAOm5I,mBAAmB,oBAAqB,OAAQ99G,GAElDowH,EAASzrJ,OAAS,GACvB,GAAOm5I,mBAAmB,2BAA4B,OAAQ99G,GAE3DthC,KAAKu5F,OAAOm4D,EAAS,GAChC,CAEA,MAAMhtJ,EAAS1E,KAAKu5F,OAAO+0D,GAAiB7kJ,WAAW+nJ,GAA0BzvE,UAIjF,OAHKr9E,GACD,GAAO06I,mBAAmB,oBAAqB,YAAaoS,GAEzD9sJ,CACX,CAEA+sJ,WAAW9B,GACP,GAA0B,iBAAf,EACP,IACIA,EAAW3vJ,KAAKuxJ,YAAY5B,EAShC,CAPA,MAAO5wF,GACH,IACI4wF,EAAW3vJ,KAAK+xJ,SAASpC,EAI7B,CAFA,MAAOvqJ,GACH,MAAM25D,CACV,CACJ,CAEJ,OAAOmlF,GAAUlkJ,KAAKoI,YAAa,aAA5B87I,CAA0CyL,EACrD,CAEAmC,cAAcR,GAIV,MAH+B,iBAApB,IACPA,EAAgBtxJ,KAAK2xJ,SAASL,IAE3BpN,GAAUlkJ,KAAKoI,YAAa,gBAA5B87I,CAA6CoN,EACxD,CACAU,cAAc3oH,EAAQj/B,GAClB,OAAOpK,KAAKiyJ,UAAUv6I,OAAO2xB,EAAQj/B,EACzC,CACA8nJ,cAAc7oH,EAAQn8B,GAClB,OAAOlN,KAAKiyJ,UAAUz6I,OAAO6xB,EAAQn8B,EACzC,CACAilJ,aAAajlJ,GACT,OAAOlN,KAAKkyJ,cAAclyJ,KAAKoxJ,OAAOhtI,OAAQlX,GAAU,GAC5D,CACAklJ,kBAAkBzC,EAAUvlJ,GACE,iBAAf,IACPulJ,EAAW3vJ,KAAK+xJ,SAASpC,IAE7B,MAAM7rG,EAAQ89F,EAASx3I,GAIvB,OAHIk4I,EAAQx+F,EAAMt4C,MAAM,EAAG,MAAQxL,KAAKyxJ,WAAW9B,IAC/C,GAAOvQ,mBAAmB,uCAAuCuQ,EAASruH,QAAS,OAAQghH,EAAQx+F,IAEhG9jD,KAAKgyJ,cAAcrC,EAASvrI,OAAQ0/B,EAAMt4C,MAAM,GAC3D,CACA6mJ,kBAAkB1C,EAAUziJ,GAIxB,MAH0B,iBAAf,IACPyiJ,EAAW3vJ,KAAK+xJ,SAASpC,IAEtBrN,EAAQtgJ,EAAO,CAClBhC,KAAKyxJ,WAAW9B,GAChB3vJ,KAAKkyJ,cAAcvC,EAASvrI,OAAQlX,GAAU,MAEtD,CAEAolJ,mBAAmBC,EAAkBnoJ,GACC,iBAAvB,IACPmoJ,EAAmBvyJ,KAAKuxJ,YAAYgB,IAExC,MAAMzuG,EAAQ89F,EAASx3I,GAIvB,OAHIk4I,EAAQx+F,EAAMt4C,MAAM,EAAG,MAAQxL,KAAKyxJ,WAAWc,IAC/C,GAAOnT,mBAAmB,0CAA0CmT,EAAiBjxH,QAAS,OAAQghH,EAAQx+F,IAE3G9jD,KAAKgyJ,cAAcO,EAAiBnuI,OAAQ0/B,EAAMt4C,MAAM,GACnE,CAEAgnJ,mBAAmBD,EAAkBrlJ,GAIjC,MAHkC,iBAAvB,IACPqlJ,EAAmBvyJ,KAAKuxJ,YAAYgB,IAEjCjQ,EAAQtgJ,EAAO,CAClBhC,KAAKyxJ,WAAWc,GAChBvyJ,KAAKkyJ,cAAcK,EAAiBnuI,OAAQlX,GAAU,MAE9D,CAEAulJ,qBAAqBF,EAAkBnoJ,GACD,iBAAvB,IACPmoJ,EAAmBvyJ,KAAKuxJ,YAAYgB,IAExC,IAAIzuG,EAAQ89F,EAASx3I,GACjBmrG,EAAS,KACThuG,EAAU,GACVmrJ,EAAY,KACZC,EAAY,KACZC,EAAiB,KACrB,OAAQ9uG,EAAM79C,OAASjG,KAAKiyJ,UAAU9B,gBAClC,KAAK,EACD,IACI,OAAOnwJ,KAAKiyJ,UAAUv6I,OAAO66I,EAAiBluI,QAASy/B,EAE3C,CAAhB,MAAOib,GAAS,CAChB,MACJ,KAAK,EAAG,CACJ,MAAM8zF,EAAWvQ,EAAQx+F,EAAMt4C,MAAM,EAAG,IAClCsnJ,EAAUjC,GAAcgC,GAC9B,GAAIC,EACAJ,EAAY1yJ,KAAKiyJ,UAAUv6I,OAAOo7I,EAAQ1uI,OAAQ0/B,EAAMt4C,MAAM,IAC9DmnJ,EAAYG,EAAQxxH,KACpBsxH,EAAiBE,EAAQtrJ,UACrBsrJ,EAAQv9C,SACRA,EAASm9C,EAAU,IAEL,UAAdC,EACAprJ,EAAU,4EAA4E+7B,KAAKE,UAAUkvH,EAAU,MAE5F,UAAdC,IACLprJ,EAAU,yEAAyEmrJ,EAAU,WAIjG,IACI,MAAM3zF,EAAQ/+D,KAAK+xJ,SAASc,GAC5BH,EAAY1yJ,KAAKiyJ,UAAUv6I,OAAOqnD,EAAM36C,OAAQ0/B,EAAMt4C,MAAM,IAC5DmnJ,EAAY5zF,EAAMz9B,KAClBsxH,EAAiB7zF,EAAMgjB,QAEX,CAAhB,MAAOhjB,GAAS,CAEpB,KACJ,EAEJ,OAAO,GAAOshF,WAAW,wBAA0B94I,EAASy3I,EAAOzlD,OAAOumD,eAAgB,CACtFxpD,OAAQi8D,EAAiBxwE,SACzB33E,KAAMk4I,EAAQl4I,GAAOsoJ,YAAWC,YAAWC,iBAAgBr9C,UAEnE,CAEAw9C,qBAAqBR,EAAkBrlJ,GAInC,MAHkC,iBAAvB,IACPqlJ,EAAmBvyJ,KAAKuxJ,YAAYgB,IAEjCjQ,EAAQtiJ,KAAKiyJ,UAAUz6I,OAAO+6I,EAAiBluI,QAASnX,GAAU,IAC7E,CAEA8lJ,mBAAmB1B,EAAepkJ,GACC,iBAApB,IACPokJ,EAAgBtxJ,KAAK2xJ,SAASL,IAE9BpkJ,EAAOjH,OAASqrJ,EAAcltI,OAAOne,QACrC,GAAOo6I,WAAW,0BAA4BiR,EAAcvvE,SAAUi9D,EAAOzlD,OAAOynD,oBAAqB,CACrGT,SAAU,SACVpgJ,MAAO+M,IAGf,IAAI+lJ,EAAS,GACR3B,EAAc5C,WACfuE,EAAO/sJ,KAAKlG,KAAK8xJ,cAAcR,IAEnC,MAAM4B,EAAc,CAAC5F,EAAOntJ,IACL,WAAfmtJ,EAAMl8I,KACCmX,GAAGpoB,GAEU,UAAfmtJ,EAAMl8I,KACJs1I,GAAUpE,EAAQniJ,KAEV,SAAfmtJ,EAAMl8I,MAAsC,kBAAZ,IAChCjR,EAASA,EAAQ,OAAS,QAE1BmtJ,EAAMl8I,KAAKzH,MAAM,YACjBxJ,EAAQojJ,EAAUn4I,KAAKjL,GAAO2hJ,eAGf,YAAfwL,EAAMl8I,MACNpR,KAAKiyJ,UAAUz6I,OAAO,CAAC,WAAY,CAACrX,IAEjC2iJ,EAAWR,EAAQniJ,GAAQ,KAwBtC,IAtBA+M,EAAOlB,SAAQ,CAAC7L,EAAOqM,KACnB,IAAI8gJ,EAAQgE,EAAcltI,OAAO5X,GAC5B8gJ,EAAML,QAME,MAAT9sJ,EACA8yJ,EAAO/sJ,KAAK,MAEY,UAAnBonJ,EAAM9C,UAA2C,UAAnB8C,EAAM9C,SACzC,GAAOpL,mBAAmB,gDAAkD,YAAckO,EAAMhsH,KAAOnhC,GAElG8H,MAAM6D,QAAQ3L,GACnB8yJ,EAAO/sJ,KAAK/F,EAAMsM,KAAKtM,GAAU+yJ,EAAY5F,EAAOntJ,MAGpD8yJ,EAAO/sJ,KAAKgtJ,EAAY5F,EAAOntJ,IAflB,MAATA,GACA,GAAOi/I,mBAAmB,qDAAuD,YAAckO,EAAMhsH,KAAOnhC,EAepH,IAGG8yJ,EAAOhtJ,QAAwC,OAA9BgtJ,EAAOA,EAAOhtJ,OAAS,IAC3CgtJ,EAAOjtJ,MAEX,OAAOitJ,CACX,CACAE,eAAe7B,EAAepkJ,GACK,iBAApB,IACPokJ,EAAgBtxJ,KAAK2xJ,SAASL,IAElC,MAAM2B,EAAS,GACTG,EAAY,GACZC,EAAa,GA6BnB,OA5BK/B,EAAc5C,WACfuE,EAAO/sJ,KAAKlG,KAAK8xJ,cAAcR,IAE/BpkJ,EAAOjH,SAAWqrJ,EAAcltI,OAAOne,QACvC,GAAOm5I,mBAAmB,kCAAmC,SAAUlyI,GAE3EokJ,EAAcltI,OAAOpY,SAAQ,CAACshJ,EAAO9gJ,KACjC,MAAMrM,EAAQ+M,EAAOV,GACrB,GAAI8gJ,EAAML,QACN,GAAmB,WAAfK,EAAMl8I,KACN6hJ,EAAO/sJ,KAAKqiB,GAAGpoB,SAEd,GAAmB,UAAfmtJ,EAAMl8I,KACX6hJ,EAAO/sJ,KAAKwgJ,GAAUvmJ,QAErB,IAAuB,UAAnBmtJ,EAAM9C,UAA2C,UAAnB8C,EAAM9C,SAEzC,MAAM,IAAIlkJ,MAAM,mBAGhB2sJ,EAAO/sJ,KAAKlG,KAAKiyJ,UAAUz6I,OAAO,CAAC81I,EAAMl8I,MAAO,CAACjR,IACrD,MAGAizJ,EAAUltJ,KAAKonJ,GACf+F,EAAWntJ,KAAK/F,EACpB,IAEG,CACHiK,KAAMpK,KAAKiyJ,UAAUz6I,OAAO47I,EAAWC,GACvCJ,OAAQA,EAEhB,CAEAK,eAAehC,EAAelnJ,EAAM6oJ,GAIhC,GAH+B,iBAApB,IACP3B,EAAgBtxJ,KAAK2xJ,SAASL,IAEpB,MAAV2B,IAAmB3B,EAAc5C,UAAW,CAC5C,IAAI6E,EAAYvzJ,KAAK8xJ,cAAcR,GAC9B,EAAY2B,EAAO,GAAI,KAAOA,EAAO,GAAG9vG,gBAAkBowG,GAC3D,GAAOlT,WAAW,0BAA2BrB,EAAOzlD,OAAO+mD,iBAAkB,CAAEC,SAAU,YAAaiT,SAAUD,EAAWpzJ,MAAO8yJ,EAAO,KAE7IA,EAASA,EAAOznJ,MAAM,EAC1B,CACA,IAAIyhJ,EAAU,GACVwG,EAAa,GACbvO,EAAU,GACdoM,EAAcltI,OAAOpY,SAAQ,CAACshJ,EAAO9gJ,KAC7B8gJ,EAAML,QACa,WAAfK,EAAMl8I,MAAoC,UAAfk8I,EAAMl8I,MAAuC,UAAnBk8I,EAAM9C,UAA2C,UAAnB8C,EAAM9C,UACzFyC,EAAQ/mJ,KAAK0mJ,GAAU37B,WAAW,CAAE7/G,KAAM,UAAWkwB,KAAMgsH,EAAMhsH,QACjE4jH,EAAQh/I,MAAK,KAGb+mJ,EAAQ/mJ,KAAKonJ,GACbpI,EAAQh/I,MAAK,KAIjButJ,EAAWvtJ,KAAKonJ,GAChBpI,EAAQh/I,MAAK,GACjB,IAEJ,IAAIwtJ,EAA2B,MAAVT,EAAkBjzJ,KAAKiyJ,UAAUv6I,OAAOu1I,EAASjrJ,EAAOixJ,IAAW,KACpFU,EAAmB3zJ,KAAKiyJ,UAAUv6I,OAAO+7I,EAAYrpJ,GAAM,GAC3D1F,EAAS,GACTkvJ,EAAkB,EAAGC,EAAe,EACxCvC,EAAcltI,OAAOpY,SAAQ,CAACshJ,EAAO9gJ,KACjC,GAAI8gJ,EAAML,QACN,GAAqB,MAAjByG,EACAhvJ,EAAO8H,GAAS,IAAImkJ,GAAQ,CAAEC,YAAY,EAAM76H,KAAM,YAErD,GAAImvH,EAAQ14I,GACb9H,EAAO8H,GAAS,IAAImkJ,GAAQ,CAAEC,YAAY,EAAM76H,KAAM29H,EAAcG,YAGpE,IACInvJ,EAAO8H,GAASknJ,EAAcG,IAIlC,CAFA,MAAO90F,GACHr6D,EAAO8H,GAASuyD,CACpB,MAIJ,IACIr6D,EAAO8H,GAASmnJ,EAAiBC,IAIrC,CAFA,MAAO70F,GACHr6D,EAAO8H,GAASuyD,CACpB,CAGJ,GAAIuuF,EAAMhsH,MAA8B,MAAtB58B,EAAO4oJ,EAAMhsH,MAAe,CAC1C,MAAMnhC,EAAQuE,EAAO8H,GAEjBrM,aAAiBmG,MACjBrG,OAAOC,eAAewE,EAAQ4oJ,EAAMhsH,KAAM,CACtCp+B,YAAY,EACZC,IAAK,KAAQ,MAAM2tJ,GAAgB,YAAYxtH,KAAKE,UAAU8pH,EAAMhsH,QAASnhC,EAAM,IAIvFuE,EAAO4oJ,EAAMhsH,MAAQnhC,CAE7B,KAGJ,IAAK,IAAI6K,EAAI,EAAGA,EAAItG,EAAOuB,OAAQ+E,IAAK,CACpC,MAAM7K,EAAQuE,EAAOsG,GACjB7K,aAAiBmG,OACjBrG,OAAOC,eAAewE,EAAQsG,EAAG,CAC7B9H,YAAY,EACZC,IAAK,KAAQ,MAAM2tJ,GAAgB,SAAS9lJ,IAAK7K,EAAM,GAGnE,CACA,OAAOF,OAAOizD,OAAOxuD,EACzB,CAGAovJ,iBAAiBv2I,GACb,IAAIoyI,EAAW3vJ,KAAKuxJ,YAAYh0I,EAAGnT,KAAK6wB,UAAU,EAAG,IAAIkoB,eACzD,OAAKwsG,EAGE,IAAIc,GAAuB,CAC9B1rF,KAAM/kE,KAAKiyJ,UAAUv6I,OAAOi4I,EAASvrI,OAAQ,KAAO7G,EAAGnT,KAAK6wB,UAAU,KACtEs3H,iBAAkB5C,EAClBruH,KAAMquH,EAASruH,KACf95B,UAAWmoJ,EAAS5tE,SACpByqE,QAASxsJ,KAAKyxJ,WAAW9B,GACzBxvJ,MAAOojJ,EAAUn4I,KAAKmS,EAAGpd,OAAS,OAR3B,IAUf,CAKA4zJ,SAAS7xJ,GACL,IAAIytJ,EAAW3vJ,KAAK2xJ,SAASzvJ,EAAI+wJ,OAAO,IACxC,OAAKtD,GAAYA,EAASjB,UACf,KAKJ,IAAI8B,GAAe,CACtBc,cAAe3B,EACfruH,KAAMquH,EAASruH,KACf95B,UAAWmoJ,EAAS5tE,SACpBiyE,MAAOh0J,KAAK8xJ,cAAcnC,GAC1B5qF,KAAM/kE,KAAKszJ,eAAe3D,EAAUztJ,EAAIkI,KAAMlI,EAAI+wJ,SAE1D,CACAgB,WAAW7pJ,GACP,MAAM8pJ,EAAU5R,EAAQl4I,GACxB,IAAIulJ,EAAW3vJ,KAAK+xJ,SAASmC,EAAQj5H,UAAU,EAAG,IAAIkoB,eACtD,OAAKwsG,EAGE,IAAIe,GAAiB,CACxB3rF,KAAM/kE,KAAKiyJ,UAAUv6I,OAAOi4I,EAASvrI,OAAQ,KAAO8vI,EAAQj5H,UAAU,KACtEk5H,cAAexE,EACfruH,KAAMquH,EAASruH,KACf95B,UAAWmoJ,EAAS5tE,SACpByqE,QAASxsJ,KAAKyxJ,WAAW9B,KAPlB,IASf,CAYA/7F,mBAAmBzzD,GACf,SAAUA,IAASA,EAAMi0J,aAC7B,EChlBJ,MAAM,GAAS,IAAIpV,ECfI,2BDqBhB,MAAMqV,WAAkB91H,GAC3Bq1B,mBAAmBzzD,GACf,SAAUA,IAASA,EAAMm0J,aAC7B,EA+CG,MAAMC,GACTnsJ,cACI,GAAO+4I,yBAA0BoT,IACjCtQ,GAAejkJ,KAAM,eAAe,EACxC,CACAw0J,aACI,OA5E8C1wJ,EA4E7B9D,KA5EsC+D,OA4EhC,EA5E+CE,EA4E/B,YACnC,MAAM,MAAEizB,EAAK,SAAEu9H,SAAmBtQ,GAAkB,CAChDjtH,MAAOl3B,KAAKirH,SAAS,UACrBwpC,SAAUz0J,KAAK00J,cAAc3zG,OAAOge,GAGzB,SAGf,IAAI41F,EAAe,KAAMC,EAAuB,KAQhD,OAPI19H,GAASA,EAAM29H,gBAIfD,EAAuBrR,EAAUn4I,KAAK,cACtCupJ,EAAez9H,EAAM29H,cAAc5qJ,IAAI,GAAGL,IAAIgrJ,IAE3C,CAAED,eAAcC,uBAAsBH,WACjD,EA5FG,KAFgEzwJ,OA4EpC,KA1EjBA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUlE,GAAS,IAAMmE,EAAKL,EAAUM,KAAKpE,GAAkC,CAAvB,MAAOqE,GAAKJ,EAAOI,EAAI,CAAE,CAC1F,SAASC,EAAStE,GAAS,IAAMmE,EAAKL,EAAiB,MAAE9D,GAAkC,CAAvB,MAAOqE,GAAKJ,EAAOI,EAAI,CAAE,CAC7F,SAASF,EAAKI,GAJlB,IAAevE,EAIauE,EAAOC,KAAOR,EAAQO,EAAOvE,QAJ1CA,EAIyDuE,EAAOvE,MAJhDA,aAAiB6D,EAAI7D,EAAQ,IAAI6D,GAAE,SAAUG,GAAWA,EAAQhE,EAAQ,KAIjByE,KAAKP,EAAWI,EAAW,CAC7GH,GAAML,EAAYA,EAAUY,MAAMf,EAASC,GAAc,KAAKQ,OAClE,IAPwC,IAAUT,EAASC,EAAYC,EAAGC,CA+F1E,CAEA6wJ,YAAYC,EAAWt/C,GACnB,OAAOz1G,KAAK0kE,GAAGqwF,EAAWt/C,EAC9B,CAEAu/C,eAAeD,EAAWt/C,GACtB,OAAOz1G,KAAK4kE,IAAImwF,EAAWt/C,EAC/B,CACA7hD,kBAAkBzzD,GACd,SAAUA,IAASA,EAAM80J,YAC7B,EE1GJ,IAAI,GAAwC,SAAUnxJ,EAASC,EAAYC,EAAGC,GAE1E,OAAO,IAAKD,IAAMA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUlE,GAAS,IAAMmE,EAAKL,EAAUM,KAAKpE,GAAkC,CAAvB,MAAOqE,GAAKJ,EAAOI,EAAI,CAAE,CAC1F,SAASC,EAAStE,GAAS,IAAMmE,EAAKL,EAAiB,MAAE9D,GAAkC,CAAvB,MAAOqE,GAAKJ,EAAOI,EAAI,CAAE,CAC7F,SAASF,EAAKI,GAJlB,IAAevE,EAIauE,EAAOC,KAAOR,EAAQO,EAAOvE,QAJ1CA,EAIyDuE,EAAOvE,MAJhDA,aAAiB6D,EAAI7D,EAAQ,IAAI6D,GAAE,SAAUG,GAAWA,EAAQhE,EAAQ,KAIjByE,KAAKP,EAAWI,EAAW,CAC7GH,GAAML,EAAYA,EAAUY,MAAMf,EAASC,GAAc,KAAKQ,OAClE,GACJ,EAIA,MAAM,GAAS,IAAIy6I,ECbI,yBDcjBkW,GAAyB,CAC3B,aAAc,kBAAmB,UAAW,aAAc,OAAQ,OAAQ,WAAY,WAAY,eAAgB,uBAAwB,QAAS,KAAM,OAAQ,SAE/JC,GAAgB,CAClBnW,EAAOzlD,OAAOwmD,mBACdf,EAAOzlD,OAAO0mD,cACdjB,EAAOzlD,OAAO2mD,yBAIX,MAAMkV,GAGThtJ,cACI,GAAO+4I,yBAA0BiU,IACjCnR,GAAejkJ,KAAM,aAAa,EACtC,CAGAsgD,WAAW+0G,GACP,OAAO,GAAUr1J,UAAM,OAAQ,GAAQ,YAEnC,OADAA,KAAKs1J,eAAe,oBACPt1J,KAAKu1J,SAASj1G,WAAWtgD,KAAKiH,aAAcouJ,EAC7D,GACJ,CACAG,oBAAoBH,GAChB,OAAO,GAAUr1J,UAAM,OAAQ,GAAQ,YAEnC,OADAA,KAAKs1J,eAAe,6BACPt1J,KAAKu1J,SAASC,oBAAoBx1J,KAAKiH,aAAcouJ,EACtE,GACJ,CAEA77G,YAAYmuG,GACR,OAAO,GAAU3nJ,UAAM,OAAQ,GAAQ,YACnCA,KAAKs1J,eAAe,eACpB,MAAM/3I,QAAW4mI,GAAkBnkJ,KAAKy1J,iBAAiB9N,IACzD,aAAa3nJ,KAAKu1J,SAAS/7G,YAAYj8B,EAC3C,GACJ,CAEAha,KAAKokJ,EAAa0N,GACd,OAAO,GAAUr1J,UAAM,OAAQ,GAAQ,YACnCA,KAAKs1J,eAAe,QACpB,MAAM/3I,QAAW4mI,GAAkBnkJ,KAAKy1J,iBAAiB9N,IACzD,aAAa3nJ,KAAKu1J,SAAShyJ,KAAKga,EAAI83I,EACxC,GACJ,CAEA50G,gBAAgBknG,GACZ,OAAO,GAAU3nJ,UAAM,OAAQ,GAAQ,YACnCA,KAAKs1J,eAAe,mBACpB,MAAM/3I,QAAWvd,KAAK01J,oBAAoB/N,GACpCgO,QAAiB31J,KAAK41J,gBAAgBr4I,GAC5C,aAAavd,KAAKu1J,SAAS90G,gBAAgBk1G,EAC/C,GACJ,CACAE,aACI,OAAO,GAAU71J,UAAM,OAAQ,GAAQ,YAGnC,OAFAA,KAAKs1J,eAAe,qBACEt1J,KAAKu1J,SAASO,cACrBn8I,OACnB,GACJ,CACA+6I,cACI,OAAO,GAAU10J,UAAM,OAAQ,GAAQ,YAEnC,OADAA,KAAKs1J,eAAe,qBACPt1J,KAAKu1J,SAASb,aAC/B,GACJ,CACAF,aACI,OAAO,GAAUx0J,UAAM,OAAQ,GAAQ,YAEnC,OADAA,KAAKs1J,eAAe,oBACPt1J,KAAKu1J,SAASf,YAC/B,GACJ,CACAuB,YAAYz0H,GACR,OAAO,GAAUthC,UAAM,OAAQ,GAAQ,YAEnC,OADAA,KAAKs1J,eAAe,qBACPt1J,KAAKu1J,SAASQ,YAAYz0H,EAC3C,GACJ,CAUAm0H,iBAAiB9N,GACb,IAAK,MAAM9lJ,KAAO8lJ,GAC+B,IAAzCuN,GAAuB1rJ,QAAQ3H,IAC/B,GAAOu9I,mBAAmB,4BAA8Bv9I,EAAK,cAAe8lJ,GAGpF,MAAMpqI,EAAK+mI,GAAYqD,GAgBvB,OAfe,MAAXpqI,EAAGnS,KACHmS,EAAGnS,KAAOpL,KAAKiH,aAIfsW,EAAGnS,KAAOlH,QAAQ6sC,IAAI,CAClB7sC,QAAQC,QAAQoZ,EAAGnS,MACnBpL,KAAKiH,eACNrC,MAAMF,IACDA,EAAO,GAAGy+C,gBAAkBz+C,EAAO,GAAGy+C,eACtC,GAAOi8F,mBAAmB,wBAAyB,cAAeuI,GAE/DjjJ,EAAO,MAGf6Y,CACX,CAQAm4I,oBAAoB/N,GAChB,OAAO,GAAU3nJ,UAAM,OAAQ,GAAQ,YACnC,MAAMud,QAAW4mI,GAAkBnkJ,KAAKy1J,iBAAiB9N,IAC5C,MAATpqI,EAAGpS,KACHoS,EAAGpS,GAAKjH,QAAQC,QAAQoZ,EAAGpS,IAAIvG,MAAMuG,GAAO,GAAUnL,UAAM,OAAQ,GAAQ,YACxE,GAAU,MAANmL,EACA,OAAO,KAEX,MAAM/E,QAAgBpG,KAAK+1J,YAAY5qJ,GAIvC,OAHe,MAAX/E,GACA,GAAOg5I,mBAAmB,qCAAsC,QAASj0I,GAEtE/E,CACX,MAEAmX,EAAGpS,GAAG41C,OAAOge,IAAD,KAGhB,MAAMi3F,EAAiC,MAAnBz4I,EAAGo3I,cAAmD,MAA3Bp3I,EAAGq3I,qBAOlD,GANmB,MAAfr3I,EAAGk3I,UAAiC,IAAZl3I,EAAGnM,OAAc4kJ,EAGvB,IAAZz4I,EAAGnM,MAA0B,IAAZmM,EAAGnM,OAAe4kJ,GACzC,GAAO5W,mBAAmB,4EAA6E,cAAeuI,GAHtH,GAAOvI,mBAAmB,+CAAgD,cAAeuI,GAK5E,IAAZpqI,EAAGnM,MAAyB,MAAXmM,EAAGnM,MAAqC,MAAnBmM,EAAGo3I,cAAmD,MAA3Bp3I,EAAGq3I,qBAIpE,GAAgB,IAAZr3I,EAAGnM,MAA0B,IAAZmM,EAAGnM,KAGN,MAAfmM,EAAGk3I,WACHl3I,EAAGk3I,SAAWz0J,KAAK00J,mBAGtB,CAED,MAAMuB,QAAgBj2J,KAAKw0J,aAC3B,GAAe,MAAXj3I,EAAGnM,KAEH,GAA4B,MAAxB6kJ,EAAQtB,cAAwD,MAAhCsB,EAAQrB,qBAIxC,GADAr3I,EAAGnM,KAAO,EACS,MAAfmM,EAAGk3I,SAAkB,CAGrB,MAAMA,EAAWl3I,EAAGk3I,gBACbl3I,EAAGk3I,SACVl3I,EAAGo3I,aAAeF,EAClBl3I,EAAGq3I,qBAAuBH,CAC9B,MAG2B,MAAnBl3I,EAAGo3I,eACHp3I,EAAGo3I,aAAesB,EAAQtB,cAEC,MAA3Bp3I,EAAGq3I,uBACHr3I,EAAGq3I,qBAAuBqB,EAAQrB,2BAIjB,MAApBqB,EAAQxB,UAGTuB,GACA,GAAO3V,WAAW,oCAAqCrB,EAAOzlD,OAAOonD,sBAAuB,CACxFz9G,UAAW,wBAIA,MAAf3lB,EAAGk3I,WACHl3I,EAAGk3I,SAAWwB,EAAQxB,UAG1Bl3I,EAAGnM,KAAO,GAIV,GAAOivI,WAAW,oCAAqCrB,EAAOzlD,OAAOonD,sBAAuB,CACxFz9G,UAAW,2BAIF,IAAZ3lB,EAAGnM,OAGe,MAAnBmM,EAAGo3I,eACHp3I,EAAGo3I,aAAesB,EAAQtB,cAEC,MAA3Bp3I,EAAGq3I,uBACHr3I,EAAGq3I,qBAAuBqB,EAAQrB,sBAG9C,MApEIr3I,EAAGnM,KAAO,EAiGd,OA5BgB,MAAZmM,EAAGukD,QACHvkD,EAAGukD,MAAQ9hE,KAAKw1J,oBAAoB,YAErB,MAAfj4I,EAAGvN,WACHuN,EAAGvN,SAAWhQ,KAAKw5C,YAAYj8B,GAAIwjC,OAAOge,IACtC,GAAIo2F,GAAc3rJ,QAAQu1D,EAAMthD,OAAS,EACrC,MAAMshD,EAEV,OAAO,GAAOshF,WAAW,4EAA6ErB,EAAOzlD,OAAO6mD,wBAAyB,CACzIrhF,MAAOA,EACPxhD,GAAIA,GACN,KAGQ,MAAdA,EAAG5D,QACH4D,EAAG5D,QAAU3Z,KAAK61J,aAGlBt4I,EAAG5D,QAAUzV,QAAQ6sC,IAAI,CACrB7sC,QAAQC,QAAQoZ,EAAG5D,SACnB3Z,KAAK61J,eACNjxJ,MAAMsxJ,IACc,IAAfA,EAAQ,IAAYA,EAAQ,KAAOA,EAAQ,IAC3C,GAAO9W,mBAAmB,2BAA4B,cAAeuI,GAElEuO,EAAQ,YAGV/R,GAAkB5mI,EACnC,GACJ,CAGA+3I,eAAepyH,GACNljC,KAAKu1J,UACN,GAAOlV,WAAW,mBAAoBrB,EAAOzlD,OAAOonD,sBAAuB,CACvEz9G,UAAYA,GAAa,kBAGrC,CACA0wB,gBAAgBzzD,GACZ,SAAUA,IAASA,EAAMg2J,UAC7B,EAEG,MAAMC,WAAmBhB,GAC5BhtJ,YAAYhC,EAASmvJ,GACjBnwG,QACA6+F,GAAejkJ,KAAM,UAAWoG,GAChC69I,GAAejkJ,KAAM,WAAYu1J,GAAY,KACjD,CACAtuJ,aACI,OAAO/C,QAAQC,QAAQnE,KAAKoG,QAChC,CACAiwJ,MAAM9uJ,EAAS27B,GACX,OAAOh/B,QAAQC,UAAUS,MAAK,KAC1B,GAAOy7I,WAAW94I,EAASy3I,EAAOzlD,OAAOonD,sBAAuB,CAAEz9G,UAAWA,GAAY,GAEjG,CACAx7B,YAAYH,GACR,OAAOvH,KAAKq2J,MAAM,kCAAmC,cACzD,CACAT,gBAAgBjO,GACZ,OAAO3nJ,KAAKq2J,MAAM,sCAAuC,kBAC7D,CACAC,eAAev7C,EAAQgxC,EAAO5rJ,GAC1B,OAAOH,KAAKq2J,MAAM,oCAAqC,gBAC3D,CACAE,QAAQhB,GACJ,OAAO,IAAIa,GAAWp2J,KAAKoG,QAASmvJ,EACxC,6BEnSJ,SAASiB,GAAqBlpJ,EAAImpJ,EAAS72J,GAC1C,OAAOA,EAAS,CACfwsB,KAAMqqI,EACN92J,QAAS,CAAC,EACV+2J,QAAS,SAAUtqI,EAAM0qC,GACxB,OA4BH,WACC,MAAM,IAAIxwD,MAAM,0EACjB,CA9BUqwJ,CAAsB,MAAC7/F,GAAuCl3D,EAAOwsB,KAC7E,GACE9e,EAAG1N,EAAQA,EAAOD,SAAUC,EAAOD,OACvC,CAd2C,oBAAfkyE,WAA6BA,WAA+B,oBAAX9a,OAAyBA,YAA2B,IAAX,EAAA5xD,EAAyB,EAAAA,EAAyB,oBAATpF,MAAuBA,KA2CtL,IAAI62J,GAAqB/xG,GAEzB,SAASA,GAAO53C,EAAKqO,GACnB,IAAKrO,EACH,MAAM,IAAI3G,MAAMgV,GAAO,mBAC3B,CAEAupC,GAAO2xC,MAAQ,SAAqBjrF,EAAG88B,EAAG/sB,GACxC,GAAI/P,GAAK88B,EACP,MAAM,IAAI/hC,MAAMgV,GAAQ,qBAAuB/P,EAAI,OAAS88B,EAChE,EAEA,IAAI+jC,GAAUoqF,IAAqB,SAAU52J,EAAQD,GAGrD,IAAIssC,EAAQtsC,EAkCZ,SAASk+I,EAAMpzF,GACb,OAAoB,IAAhBA,EAAKxkD,OACA,IAAMwkD,EAENA,CACX,CAGA,SAASgR,EAAMngD,GAEb,IADA,IAAIuxB,EAAM,GACD7hC,EAAI,EAAGA,EAAIsQ,EAAIrV,OAAQ+E,IAC9B6hC,GAAOgxG,EAAMviI,EAAItQ,GAAG5D,SAAS,KAC/B,OAAOylC,CACT,CAfAZ,EAAM5/B,QA9BN,SAAiBiP,EAAK+4E,GACpB,GAAIpsF,MAAM6D,QAAQwP,GAChB,OAAOA,EAAI9P,QACb,IAAK8P,EACH,MAAO,GACT,IAAIuxB,EAAM,GACV,GAAmB,iBAARvxB,EAAkB,CAC3B,IAAK,IAAItQ,EAAI,EAAGA,EAAIsQ,EAAIrV,OAAQ+E,IAC9B6hC,EAAI7hC,GAAc,EAATsQ,EAAItQ,GACf,OAAO6hC,CACT,CACA,GAAY,QAARwnD,EAIF,KAHA/4E,EAAMA,EAAI+G,QAAQ,eAAgB,KAC1Bpc,OAAS,GAAM,IACrBqV,EAAM,IAAMA,GACLtQ,EAAI,EAAGA,EAAIsQ,EAAIrV,OAAQ+E,GAAK,EACnC6hC,EAAI3mC,KAAKoJ,SAASgM,EAAItQ,GAAKsQ,EAAItQ,EAAI,GAAI,UAEzC,IAASA,EAAI,EAAGA,EAAIsQ,EAAIrV,OAAQ+E,IAAK,CACnC,IAAIuB,EAAI+O,EAAIynC,WAAW/3C,GACnBw8D,EAAKj7D,GAAK,EACVg7D,EAAS,IAAJh7D,EACLi7D,EACF36B,EAAI3mC,KAAKshE,EAAID,GAEb16B,EAAI3mC,KAAKqhE,EACb,CAEF,OAAO16B,CACT,EASAZ,EAAM4xG,MAAQA,EAQd5xG,EAAMwvB,MAAQA,EAEdxvB,EAAMz0B,OAAS,SAAgBm5C,EAAK0jC,GAClC,MAAY,QAARA,EACK54B,EAAM9K,GAENA,CACX,CACA,IAEIkmG,GAAYL,IAAqB,SAAU52J,EAAQD,GAGvD,IAAIssC,EAAQtsC,EAKZssC,EAAM4Y,OAAS+xG,GACf3qH,EAAM5/B,QAAU+/D,GAAQ//D,QACxB4/B,EAAM4xG,MAAQzxE,GAAQyxE,MACtB5xG,EAAMwvB,MAAQ2Q,GAAQ3Q,MACtBxvB,EAAMz0B,OAAS40D,GAAQ50D,OA6BvBy0B,EAAMwjG,OA1BN,SAAgBt7E,EAAKsqC,EAAG5wF,GACtB,IAAIgjI,EAAM,IAAI5oI,MAAM8F,KAAKW,IAAIylD,EAAIosC,YAAa1yF,GAAQ,GACtDgjI,EAAI5qF,KAAK,GAKT,IAHA,IAAI+iD,EAAK,GAAMvK,EAAI,EACf97F,EAAIwxD,EAAIv6B,QAEH5uB,EAAI,EAAGA,EAAI6lI,EAAI5qI,OAAQ+E,IAAK,CACnC,IAAIy3C,EACAniD,EAAMqC,EAAEu9F,MAAM8I,EAAK,GACnBrmG,EAAEupG,SAEFzpD,EADEniD,GAAO0oG,GAAM,GAAK,GACfA,GAAM,GAAK1oG,EAEZA,EACNqC,EAAEkoG,MAAMpoD,IAERA,EAAI,EAGNouF,EAAI7lI,GAAKy3C,EACT9/C,EAAEw9F,OAAO,EACX,CAEA,OAAO0wC,CACT,EA0DA5kG,EAAMyjG,OAtDN,SAAgBp5E,EAAI1zD,GAClB,IAAIkvI,EAAM,CACR,GACA,IAGFx7E,EAAKA,EAAG18B,QACRh3B,EAAKA,EAAGg3B,QAIR,IAHA,IAEIkkH,EAFA1X,EAAK,EACLC,EAAK,EAEF/vE,EAAGg2C,MAAM85B,GAAM,GAAKxjI,EAAG0pG,MAAM+5B,GAAM,GAAG,CAE3C,IAMIlrE,EAYAC,EAlBA2iF,EAAOznF,EAAG4pC,MAAM,GAAKkmC,EAAM,EAC3B4X,EAAOp7I,EAAGs9F,MAAM,GAAKmmC,EAAM,EACnB,IAAR0X,IACFA,GAAO,GACG,IAARC,IACFA,GAAO,GAGP7iF,EADgB,IAAP,EAAN4iF,GACE,EAGO,IADZD,EAAMxnF,EAAG4pC,MAAM,GAAKkmC,EAAM,IACF,IAAP0X,GAAqB,IAARE,EAGvBD,GAFCA,EAIVjM,EAAI,GAAG5rI,KAAKi1D,GAIVC,EADgB,IAAP,EAAN4iF,GACE,EAGO,IADZF,EAAMl7I,EAAGs9F,MAAM,GAAKmmC,EAAM,IACF,IAAPyX,GAAqB,IAARC,EAGvBC,GAFCA,EAIVlM,EAAI,GAAG5rI,KAAKk1D,GAGR,EAAIgrE,IAAOjrE,EAAK,IAClBirE,EAAK,EAAIA,GACP,EAAIC,IAAOjrE,EAAK,IAClBirE,EAAK,EAAIA,GACX/vE,EAAG6pC,OAAO,GACVv9F,EAAGu9F,OAAO,EACZ,CAEA,OAAO2xC,CACT,EAUA7lG,EAAMgxG,eAPN,SAAwB//F,EAAK5b,EAAM28G,GACjC,IAAIp8I,EAAM,IAAMy/B,EAChB4b,EAAIz7C,UAAU6/B,GAAQ,WACpB,YAAqBz+B,IAAd7C,KAAK6B,GAAqB7B,KAAK6B,GACpC7B,KAAK6B,GAAOo8I,EAAS16I,KAAKvD,KAC9B,CACF,EAOAisC,EAAM2vG,WAJN,SAAoB93F,GAClB,MAAwB,iBAAVA,EAAqB7X,EAAM5/B,QAAQy3C,EAAO,OACtDA,CACJ,EAMA7X,EAAMwwG,UAHN,SAAmB34F,GACjB,OAAO,IAAI,IAAJ,CAAOA,EAAO,MAAO,KAC9B,CAEA,IAMI2rF,GAASonB,GAAUpnB,OACnBC,GAASmnB,GAAUnnB,OACnBonB,GAAWD,GAAUhyG,OAEzB,SAAS8qF,GAAUv+H,EAAMw+H,GACvB5vI,KAAKoR,KAAOA,EACZpR,KAAKqD,EAAI,IAAI,IAAJ,CAAOusI,EAAKvsI,EAAG,IAGxBrD,KAAK69F,IAAM+xC,EAAKvgC,MAAQ,QAAOugC,EAAKvgC,OAAS,SAAQrvG,KAAKqD,GAG1DrD,KAAK6vI,KAAO,IAAI,IAAJ,CAAO,GAAG1iC,MAAMntG,KAAK69F,KACjC79F,KAAKgwG,IAAM,IAAI,IAAJ,CAAO,GAAG7C,MAAMntG,KAAK69F,KAChC79F,KAAKo8F,IAAM,IAAI,IAAJ,CAAO,GAAG+Q,MAAMntG,KAAK69F,KAGhC79F,KAAK4F,EAAIgqI,EAAKhqI,GAAK,IAAI,IAAJ,CAAOgqI,EAAKhqI,EAAG,IAClC5F,KAAKmF,EAAIyqI,EAAKzqI,GAAKnF,KAAK8vI,cAAcF,EAAKzqI,EAAGyqI,EAAKG,MAGnD/vI,KAAKgwI,QAAU,IAAI/nI,MAAM,GACzBjI,KAAKiwI,QAAU,IAAIhoI,MAAM,GACzBjI,KAAKkwI,QAAU,IAAIjoI,MAAM,GACzBjI,KAAKmwI,QAAU,IAAIloI,MAAM,GAEzBjI,KAAKowI,WAAapwI,KAAK4F,EAAI5F,KAAK4F,EAAE26F,YAAc,EAGhD,IAAI8vC,EAAcrwI,KAAK4F,GAAK5F,KAAKqD,EAAE6G,IAAIlK,KAAK4F,IACvCyqI,GAAeA,EAAY/jC,KAAK,KAAO,EAC1CtsG,KAAKswI,KAAO,MAEZtwI,KAAKuwI,eAAgB,EACrBvwI,KAAKswI,KAAOtwI,KAAK4F,EAAEunG,MAAMntG,KAAK69F,KAElC,CACA,IAAI/mC,GAAO64E,GAqNX,SAASa,GAAUthB,EAAO99G,GACxBpR,KAAKkvH,MAAQA,EACblvH,KAAKoR,KAAOA,EACZpR,KAAKywI,YAAc,IACrB,CAvNAd,GAAUluI,UAAUs2D,MAAQ,WAC1B,MAAM,IAAIzxD,MAAM,kBAClB,EAEAqpI,GAAUluI,UAAU4jB,SAAW,WAC7B,MAAM,IAAI/e,MAAM,kBAClB,EAEAqpI,GAAUluI,UAAUivI,aAAe,SAAsBrtI,EAAGV,GAC1Dm0J,GAASzzJ,EAAEotI,aACX,IAAIE,EAAUttI,EAAEutI,cAEZC,EAAMpB,GAAO9sI,EAAG,EAAG3C,KAAKowI,YACxB7iE,GAAK,GAAMojE,EAAQrsI,KAAO,IAAOqsI,EAAQrsI,KAAO,GAAM,EAAI,EAAI,GAClEipE,GAAK,EAGL,IACItjB,EACA6mF,EAFAC,EAAO,GAGX,IAAK9mF,EAAI,EAAGA,EAAI4mF,EAAI5qI,OAAQgkD,GAAK0mF,EAAQrsI,KAAM,CAC7CwsI,EAAO,EACP,IAAK,IAAIvlI,EAAI0+C,EAAI0mF,EAAQrsI,KAAO,EAAGiH,GAAK0+C,EAAG1+C,IACzCulI,GAAQA,GAAQ,GAAKD,EAAItlI,GAC3BwlI,EAAK7qI,KAAK4qI,EACZ,CAIA,IAFA,IAAI1jI,EAAIpN,KAAKgxI,OAAO,KAAM,KAAM,MAC5BlpI,EAAI9H,KAAKgxI,OAAO,KAAM,KAAM,MACvBhmI,EAAIuiE,EAAGviE,EAAI,EAAGA,IAAK,CAC1B,IAAKi/C,EAAI,EAAGA,EAAI8mF,EAAK9qI,OAAQgkD,KAC3B6mF,EAAOC,EAAK9mF,MACCj/C,EACXlD,EAAIA,EAAEmpI,SAASN,EAAQ98E,OAAO5J,IACvB6mF,KAAU9lI,IACjBlD,EAAIA,EAAEmpI,SAASN,EAAQ98E,OAAO5J,GAAGi3C,QAErC9zF,EAAIA,EAAExD,IAAI9B,EACZ,CACA,OAAOsF,EAAE8jI,KACX,EAEAvB,GAAUluI,UAAU0vI,SAAW,SAAkB9tI,EAAGV,GAClD,IAAI87F,EAAI,EAGJ2yC,EAAY/tI,EAAEguI,cAAc5yC,GAChCA,EAAI2yC,EAAUhhC,IAQd,IAPA,IAAIA,EAAMghC,EAAUv9E,OAGhBg9E,EAAMpB,GAAO9sI,EAAG87F,EAAGz+F,KAAKowI,YAGxB/yF,EAAMr9C,KAAKgxI,OAAO,KAAM,KAAM,MACzBhmI,EAAI6lI,EAAI5qI,OAAS,EAAG+E,GAAK,EAAGA,IAAK,CAExC,IAAK,IAAIO,EAAI,EAAGP,GAAK,GAAgB,IAAX6lI,EAAI7lI,GAAUA,IACtCO,IAKF,GAJIP,GAAK,GACPO,IACF8xC,EAAMA,EAAIi0F,KAAK/lI,GAEXP,EAAI,EACN,MACF,IAAIy3C,EAAIouF,EAAI7lI,GACZ8rJ,GAAe,IAANr0G,GAILpF,EAHW,WAAXh6C,EAAE+N,KAEAqxC,EAAI,EACApF,EAAI4zF,SAAS7gC,EAAK3tD,EAAI,GAAM,IAE5BpF,EAAI4zF,SAAS7gC,GAAM3tD,EAAI,GAAM,GAAGy+C,OAGpCz+C,EAAI,EACApF,EAAIzzC,IAAIwmG,EAAK3tD,EAAI,GAAM,IAEvBpF,EAAIzzC,IAAIwmG,GAAM3tD,EAAI,GAAM,GAAGy+C,MAEvC,CACA,MAAkB,WAAX79F,EAAE+N,KAAoBisC,EAAI6zF,MAAQ7zF,CAC3C,EAEAsyF,GAAUluI,UAAU8vI,YAAc,SAAqBC,EACrD39E,EACA49E,EACA/rF,EACAgsF,GACA,IAMI1mI,EACAi/C,EACA5mD,EARAsuI,EAAW3xI,KAAKgwI,QAChB5/B,EAAMpwG,KAAKiwI,QACXY,EAAM7wI,KAAKkwI,QAGXxhI,EAAM,EAIV,IAAK1D,EAAI,EAAGA,EAAI06C,EAAK16C,IAAK,CAExB,IAAIomI,GADJ/tI,EAAIwwD,EAAO7oD,IACOqmI,cAAcG,GAChCG,EAAS3mI,GAAKomI,EAAUhhC,IACxBA,EAAIplG,GAAKomI,EAAUv9E,MACrB,CAGA,IAAK7oD,EAAI06C,EAAM,EAAG16C,GAAK,EAAGA,GAAK,EAAG,CAChC,IAAIoC,EAAIpC,EAAI,EACRlD,EAAIkD,EACR,GAAoB,IAAhB2mI,EAASvkI,IAA4B,IAAhBukI,EAAS7pI,GAAlC,CAQA,IAAI8pI,EAAO,CACT/9E,EAAOzmD,GACP,KACA,KACAymD,EAAO/rD,IAI4B,IAAjC+rD,EAAOzmD,GAAGnI,EAAEm5F,IAAIvqC,EAAO/rD,GAAG7C,IAC5B2sI,EAAK,GAAK/9E,EAAOzmD,GAAGxD,IAAIiqD,EAAO/rD,IAC/B8pI,EAAK,GAAK/9E,EAAOzmD,GAAGykI,MAAMZ,SAASp9E,EAAO/rD,GAAGo5F,QACM,IAA1CrtC,EAAOzmD,GAAGnI,EAAEm5F,IAAIvqC,EAAO/rD,GAAG7C,EAAEupG,WACrCojC,EAAK,GAAK/9E,EAAOzmD,GAAGykI,MAAMZ,SAASp9E,EAAO/rD,IAC1C8pI,EAAK,GAAK/9E,EAAOzmD,GAAGxD,IAAIiqD,EAAO/rD,GAAGo5F,SAElC0wC,EAAK,GAAK/9E,EAAOzmD,GAAGykI,MAAMZ,SAASp9E,EAAO/rD,IAC1C8pI,EAAK,GAAK/9E,EAAOzmD,GAAGykI,MAAMZ,SAASp9E,EAAO/rD,GAAGo5F,QAG/C,IAAI10F,EAAQ,EACT,GACA,GACA,GACA,EACD,EACA,EACA,EACA,EACA,GAGEslI,EAAMpC,GAAO+B,EAAOrkI,GAAIqkI,EAAO3pI,IAInC,IAHA4G,EAAMX,KAAKW,IAAIojI,EAAI,GAAG7rI,OAAQyI,GAC9BmiI,EAAIzjI,GAAK,IAAInF,MAAMyG,GACnBmiI,EAAI/oI,GAAK,IAAIG,MAAMyG,GACdu7C,EAAI,EAAGA,EAAIv7C,EAAKu7C,IAAK,CACxB,IAAI8nF,EAAiB,EAAZD,EAAI,GAAG7nF,GACZ+nF,EAAiB,EAAZF,EAAI,GAAG7nF,GAEhB4mF,EAAIzjI,GAAG68C,GAAKz9C,EAAiB,GAAVulI,EAAK,IAAUC,EAAK,IACvCnB,EAAI/oI,GAAGmiD,GAAK,EACZmmD,EAAIhjG,GAAKwkI,CACX,CA5CA,MALEf,EAAIzjI,GAAKqiI,GAAOgC,EAAOrkI,GAAIukI,EAASvkI,GAAIpN,KAAKowI,YAC7CS,EAAI/oI,GAAK2nI,GAAOgC,EAAO3pI,GAAI6pI,EAAS7pI,GAAI9H,KAAKowI,YAC7C1hI,EAAMX,KAAKW,IAAImiI,EAAIzjI,GAAGnH,OAAQyI,GAC9BA,EAAMX,KAAKW,IAAImiI,EAAI/oI,GAAG7B,OAAQyI,EA+ClC,CAEA,IAAI2uC,EAAMr9C,KAAKgxI,OAAO,KAAM,KAAM,MAC9B9+E,EAAMlyD,KAAKmwI,QACf,IAAKnlI,EAAI0D,EAAK1D,GAAK,EAAGA,IAAK,CAGzB,IAFA,IAAIrI,EAAI,EAEDqI,GAAK,GAAG,CACb,IAAI6kI,GAAO,EACX,IAAK5lF,EAAI,EAAGA,EAAIvE,EAAKuE,IACnBiI,EAAIjI,GAAiB,EAAZ4mF,EAAI5mF,GAAGj/C,GACD,IAAXknD,EAAIjI,KACN4lF,GAAO,GAEX,IAAKA,EACH,MACFltI,IACAqI,GACF,CAIA,GAHIA,GAAK,GACPrI,IACF06C,EAAMA,EAAIi0F,KAAK3uI,GACXqI,EAAI,EACN,MAEF,IAAKi/C,EAAI,EAAGA,EAAIvE,EAAKuE,IAAK,CACxB,IAAIxH,EAAIyP,EAAIjI,GAEF,IAANxH,IAEKA,EAAI,EACXp/C,EAAI+sG,EAAInmD,GAAIxH,EAAI,GAAM,GACfA,EAAI,IACXp/C,EAAI+sG,EAAInmD,IAAKxH,EAAI,GAAM,GAAGy+C,OAG1B7jD,EADa,WAAXh6C,EAAE+N,KACEisC,EAAI4zF,SAAS5tI,GAEbg6C,EAAIzzC,IAAIvG,GAClB,CACF,CAEA,IAAK2H,EAAI,EAAGA,EAAI06C,EAAK16C,IACnBolG,EAAIplG,GAAK,KAEX,OAAI0mI,EACKr0F,EAEAA,EAAI6zF,KACf,EAOAvB,GAAUa,UAAYA,GAEtBA,GAAU/uI,UAAUwrG,GAAK,WACvB,MAAM,IAAI3mG,MAAM,kBAClB,EAEAkqI,GAAU/uI,UAAU4jB,SAAW,WAC7B,OAAOrlB,KAAKkvH,MAAM7pG,SAASrlB,KAC7B,EAEA2vI,GAAUluI,UAAUwwI,YAAc,SAAqBnuF,EAAOuwC,GAC5DvwC,EAAQ+yG,GAAUxqJ,QAAQy3C,EAAOuwC,GAEjC,IAAI3uC,EAAM1lD,KAAKqD,EAAEutD,aAGjB,IAAkB,IAAb9M,EAAM,IAA4B,IAAbA,EAAM,IAA4B,IAAbA,EAAM,KACjDA,EAAM79C,OAAS,GAAM,EAAIy/C,EAS3B,OARiB,IAAb5B,EAAM,GACRgzG,GAAShzG,EAAMA,EAAM79C,OAAS,GAAK,GAAM,GACrB,IAAb69C,EAAM,IACbgzG,GAAShzG,EAAMA,EAAM79C,OAAS,GAAK,GAAM,GAEhCjG,KAAK+3D,MAAMjU,EAAMt4C,MAAM,EAAG,EAAIk6C,GACvC5B,EAAMt4C,MAAM,EAAIk6C,EAAK,EAAI,EAAIA,IAG1B,IAAkB,IAAb5B,EAAM,IAA4B,IAAbA,EAAM,KAC3BA,EAAM79C,OAAS,IAAMy/C,EAC/B,OAAO1lD,KAAKkyI,WAAWpuF,EAAMt4C,MAAM,EAAG,EAAIk6C,GAAmB,IAAb5B,EAAM,IAExD,MAAM,IAAIx9C,MAAM,uBAClB,EAEAkqI,GAAU/uI,UAAU0wI,iBAAmB,SAA0B99C,GAC/D,OAAOr0F,KAAKwX,OAAO68E,GAAK,EAC1B,EAEAm8C,GAAU/uI,UAAU82F,QAAU,SAAiB65C,GAC7C,IAAI1sF,EAAM1lD,KAAKkvH,MAAM7rH,EAAEutD,aACnBxkD,EAAIpM,KAAKs7H,OAAOjvH,QAAQ,KAAMq5C,GAElC,OAAI0sF,EACK,CAAEpyI,KAAKqyI,OAAOvmC,SAAW,EAAO,GAAO9pG,OAAOoK,GAEhD,CAAE,GAAOpK,OAAOoK,EAAGpM,KAAKqyI,OAAOhmI,QAAQ,KAAMq5C,GACtD,EAEA8qF,GAAU/uI,UAAU+V,OAAS,SAAgB68E,EAAK+9C,GAChD,OAAOykB,GAAUr/I,OAAOxX,KAAKu4F,QAAQ65C,GAAU/9C,EACjD,EAEAm8C,GAAU/uI,UAAU+hE,WAAa,SAAoBlG,GACnD,GAAIt9D,KAAKywI,YACP,OAAOzwI,KAET,IAAIywI,EAAc,CAChBE,QAAS,KACTE,IAAK,KACLx9E,KAAM,MAOR,OALAo9E,EAAYI,IAAM7wI,KAAKqxI,cAAc,GACrCZ,EAAYE,QAAU3wI,KAAK4wI,YAAY,EAAGtzE,GAC1CmzE,EAAYp9E,KAAOrzD,KAAKsyI,WACxBtyI,KAAKywI,YAAcA,EAEZzwI,IACT,EAEAwwI,GAAU/uI,UAAU8wI,YAAc,SAAqB5vI,GACrD,IAAK3C,KAAKywI,YACR,OAAO,EAET,IAAIE,EAAU3wI,KAAKywI,YAAYE,QAC/B,QAAKA,GAGEA,EAAQ98E,OAAO5tD,QAAU8H,KAAK1E,MAAM1G,EAAE49F,YAAc,GAAKowC,EAAQrsI,KAC1E,EAEAksI,GAAU/uI,UAAUmvI,YAAc,SAAqBtsI,EAAMg5D,GAC3D,GAAIt9D,KAAKywI,aAAezwI,KAAKywI,YAAYE,QACvC,OAAO3wI,KAAKywI,YAAYE,QAI1B,IAFA,IAAIA,EAAU,CAAE3wI,MACZq9C,EAAMr9C,KACDgL,EAAI,EAAGA,EAAIsyD,EAAOtyD,GAAK1G,EAAM,CACpC,IAAK,IAAI2lD,EAAI,EAAGA,EAAI3lD,EAAM2lD,IACxB5M,EAAMA,EAAIm1F,MACZ7B,EAAQzqI,KAAKm3C,EACf,CACA,MAAO,CACL/4C,KAAMA,EACNuvD,OAAQ88E,EAEZ,EAEAH,GAAU/uI,UAAU4vI,cAAgB,SAAuBjhC,GACzD,GAAIpwG,KAAKywI,aAAezwI,KAAKywI,YAAYI,IACvC,OAAO7wI,KAAKywI,YAAYI,IAK1B,IAHA,IAAIhkG,EAAM,CAAE7sC,MACR0O,GAAO,GAAK0hG,GAAO,EACnBoiC,EAAc,IAAR9jI,EAAY,KAAO1O,KAAKwyI,MACzBxnI,EAAI,EAAGA,EAAI0D,EAAK1D,IACvB6hC,EAAI7hC,GAAK6hC,EAAI7hC,EAAI,GAAGpB,IAAI4oI,GAC1B,MAAO,CACLpiC,IAAKA,EACLv8C,OAAQhnB,EAEZ,EAEA2jG,GAAU/uI,UAAU6wI,SAAW,WAC7B,OAAO,IACT,EAEA9B,GAAU/uI,UAAU6vI,KAAO,SAAc3uI,GAEvC,IADA,IAAI0lC,EAAIroC,KACCgL,EAAI,EAAGA,EAAIrI,EAAGqI,IACrBq9B,EAAIA,EAAEmqG,MACR,OAAOnqG,CACT,EAEA,IAAI0uH,GAAmBP,IAAqB,SAAU52J,GACzB,mBAAlBK,OAAOuC,OAEhB5C,EAAOD,QAAU,SAAkB09F,EAAMC,GACnCA,IACFD,EAAKE,OAASD,EACdD,EAAK57F,UAAYxB,OAAOuC,OAAO86F,EAAU77F,UAAW,CAClD2G,YAAa,CACXjI,MAAOk9F,EACPn6F,YAAY,EACZF,UAAU,EACVC,cAAc,KAItB,EAGArD,EAAOD,QAAU,SAAkB09F,EAAMC,GACvC,GAAIA,EAAW,CACbD,EAAKE,OAASD,EACd,IAAIE,EAAW,WAAa,EAC5BA,EAAS/7F,UAAY67F,EAAU77F,UAC/B47F,EAAK57F,UAAY,IAAI+7F,EACrBH,EAAK57F,UAAU2G,YAAci1F,CAC/B,CACF,CAEF,IASI25D,GAAWH,GAAUhyG,OAEzB,SAASgwF,GAAWjF,GAClB94E,GAAKvzD,KAAKvD,KAAM,QAAS4vI,GAEzB5vI,KAAKoN,EAAI,IAAI,IAAJ,CAAOwiI,EAAKxiI,EAAG,IAAI+/F,MAAMntG,KAAK69F,KACvC79F,KAAK8H,EAAI,IAAI,IAAJ,CAAO8nI,EAAK9nI,EAAG,IAAIqlG,MAAMntG,KAAK69F,KACvC79F,KAAK80I,KAAO90I,KAAKo8F,IAAImS,UAErBvuG,KAAK+0I,MAAqC,IAA7B/0I,KAAKoN,EAAEkgG,UAAUhB,KAAK,GACnCtsG,KAAKg1I,OAAmD,IAA1Ch1I,KAAKoN,EAAEkgG,UAAUtjG,IAAIhK,KAAKqD,GAAGipG,MAAM,GAGjDtsG,KAAKi1I,KAAOj1I,KAAKk1I,iBAAiBtF,GAClC5vI,KAAKm1I,YAAc,IAAIltI,MAAM,GAC7BjI,KAAKo1I,YAAc,IAAIntI,MAAM,EAC/B,CACA8uJ,GAAiBliB,GAAY/9E,IAC7B,IAAImgG,GAAUpiB,GAiOd,SAASniF,GAAMw8D,EAAO9iH,EAAGnH,EAAGowI,GAC1Bv+E,GAAK05E,UAAUjtI,KAAKvD,KAAMkvH,EAAO,UACvB,OAAN9iH,GAAoB,OAANnH,GAChBjF,KAAKoM,EAAI,KACTpM,KAAKiF,EAAI,KACTjF,KAAK4kI,KAAM,IAEX5kI,KAAKoM,EAAI,IAAI,IAAJ,CAAOA,EAAG,IACnBpM,KAAKiF,EAAI,IAAI,IAAJ,CAAOA,EAAG,IAEfowI,IACFr1I,KAAKoM,EAAEohG,SAASxtG,KAAKkvH,MAAMrxB,KAC3B79F,KAAKiF,EAAEuoG,SAASxtG,KAAKkvH,MAAMrxB,MAExB79F,KAAKoM,EAAEyxF,MACV79F,KAAKoM,EAAIpM,KAAKoM,EAAE+gG,MAAMntG,KAAKkvH,MAAMrxB,MAC9B79F,KAAKiF,EAAE44F,MACV79F,KAAKiF,EAAIjF,KAAKiF,EAAEkoG,MAAMntG,KAAKkvH,MAAMrxB,MACnC79F,KAAK4kI,KAAM,EAEf,CA2NA,SAAS0Q,GAAOpmB,EAAO9iH,EAAGnH,EAAGw9C,GAC3BqU,GAAK05E,UAAUjtI,KAAKvD,KAAMkvH,EAAO,YACvB,OAAN9iH,GAAoB,OAANnH,GAAoB,OAANw9C,GAC9BziD,KAAKoM,EAAIpM,KAAKkvH,MAAMlf,IACpBhwG,KAAKiF,EAAIjF,KAAKkvH,MAAMlf,IACpBhwG,KAAKyiD,EAAI,IAAI,IAAJ,CAAO,KAEhBziD,KAAKoM,EAAI,IAAI,IAAJ,CAAOA,EAAG,IACnBpM,KAAKiF,EAAI,IAAI,IAAJ,CAAOA,EAAG,IACnBjF,KAAKyiD,EAAI,IAAI,IAAJ,CAAOA,EAAG,KAEhBziD,KAAKoM,EAAEyxF,MACV79F,KAAKoM,EAAIpM,KAAKoM,EAAE+gG,MAAMntG,KAAKkvH,MAAMrxB,MAC9B79F,KAAKiF,EAAE44F,MACV79F,KAAKiF,EAAIjF,KAAKiF,EAAEkoG,MAAMntG,KAAKkvH,MAAMrxB,MAC9B79F,KAAKyiD,EAAEo7C,MACV79F,KAAKyiD,EAAIziD,KAAKyiD,EAAE0qD,MAAMntG,KAAKkvH,MAAMrxB,MAEnC79F,KAAK8yI,KAAO9yI,KAAKyiD,IAAMziD,KAAKkvH,MAAMlf,GACpC,CAjeA6kC,GAAWpzI,UAAUyzI,iBAAmB,SAA0BtF,GAEhE,GAAK5vI,KAAK+0I,OAAU/0I,KAAKmF,GAAMnF,KAAK4F,GAAwB,IAAnB5F,KAAKqD,EAAEs8F,KAAK,GAArD,CAIA,IAAItsC,EACAkiF,EACJ,GAAI3F,EAAKv8E,KACPA,EAAO,IAAI,IAAJ,CAAOu8E,EAAKv8E,KAAM,IAAI85C,MAAMntG,KAAK69F,SACnC,CACL,IAAI23C,EAAQx1I,KAAKy1I,cAAcz1I,KAAKqD,GAGpCgwD,GADAA,EAAOmiF,EAAM,GAAGp3C,IAAIo3C,EAAM,IAAM,EAAIA,EAAM,GAAKA,EAAM,IACzCroC,MAAMntG,KAAK69F,IACzB,CACA,GAAI+xC,EAAK2F,OACPA,EAAS,IAAI,IAAJ,CAAO3F,EAAK2F,OAAQ,QACxB,CAEL,IAAIG,EAAU11I,KAAKy1I,cAAcz1I,KAAK4F,GACsB,IAAxD5F,KAAKmF,EAAE8E,IAAIyrI,EAAQ,IAAItpI,EAAEgyF,IAAIp+F,KAAKmF,EAAEiH,EAAE2hG,OAAO16C,IAC/CkiF,EAASG,EAAQ,IAEjBH,EAASG,EAAQ,GACjBshB,GAA6D,IAApDh3J,KAAKmF,EAAE8E,IAAIsrI,GAAQnpI,EAAEgyF,IAAIp+F,KAAKmF,EAAEiH,EAAE2hG,OAAO16C,KAEtD,CAeA,MAAO,CACLA,KAAMA,EACNkiF,OAAQA,EACRI,MAdE/F,EAAK+F,MACC/F,EAAK+F,MAAMlpI,KAAI,SAASmpI,GAC9B,MAAO,CACLxoI,EAAG,IAAI,IAAJ,CAAOwoI,EAAIxoI,EAAG,IACjBtF,EAAG,IAAI,IAAJ,CAAO8tI,EAAI9tI,EAAG,IAErB,IAEQ9H,KAAK61I,cAAcN,GApCrB,CA4CV,EAEAV,GAAWpzI,UAAUg0I,cAAgB,SAAuBthF,GAI1D,IAAI0pC,EAAM1pC,IAAQn0D,KAAKqD,EAAIrD,KAAK69F,IAAM,SAAQ1pC,GAC1C2gF,EAAO,IAAI,IAAJ,CAAO,GAAG3nC,MAAMtP,GAAK0Q,UAC5BunC,EAAQhB,EAAKtmC,SAEbzjG,EAAI,IAAI,IAAJ,CAAO,GAAGoiG,MAAMtP,GAAK2Q,SAASH,UAAUN,OAAO+mC,GAIvD,MAAO,CAFEgB,EAAMroC,OAAO1iG,GAAGuiG,UAChBwoC,EAAMnoC,OAAO5iG,GAAGuiG,UAE3B,EAEAunC,GAAWpzI,UAAUo0I,cAAgB,SAAuBN,GA2B1D,IAzBA,IAYI/yC,EACA4B,EAEAxmC,EACAC,EAEAC,EACAxE,EAEAy8E,EAEA1tG,EACAj8B,EAxBA4pI,EAAWh2I,KAAK4F,EAAE8kG,MAAM38F,KAAK8iD,MAAM7wD,KAAK4F,EAAE26F,YAAc,IAIxD/iC,EAAI+3E,EACJ1vI,EAAI7F,KAAK4F,EAAEg0B,QACXyyE,EAAK,IAAI,IAAJ,CAAO,GACZ4pC,EAAK,IAAI,IAAJ,CAAO,GACZ1iF,EAAK,IAAI,IAAJ,CAAO,GACZ4/E,EAAK,IAAI,IAAJ,CAAO,GAaZnoI,EAAI,EAGa,IAAdwyD,EAAE8uC,KAAK,IAAU,CACtB,IAAI7uC,EAAI53D,EAAEqE,IAAIszD,GACdn1B,EAAIxiC,EAAEmE,IAAIyzD,EAAExzD,IAAIuzD,IAChBpxD,EAAImnD,EAAGvpD,IAAIyzD,EAAExzD,IAAIoiG,IACjB,IAAIpnG,EAAIkuI,EAAGnpI,IAAIyzD,EAAExzD,IAAIgsI,IAErB,IAAKr4E,GAAMv1B,EAAE+1D,IAAI43C,GAAY,EAC3BxzC,EAAKuzC,EAAM70C,MACXkD,EAAKiI,EACLzuC,EAAKv1B,EAAE64D,MACPrjC,EAAKzxD,OACA,GAAIwxD,GAAc,KAAN5yD,EACjB,MAEF+qI,EAAQ1tG,EAERxiC,EAAI23D,EACJA,EAAIn1B,EACJkrB,EAAK84C,EACLA,EAAKjgG,EACL+mI,EAAK8C,EACLA,EAAKhxI,CACP,CACA64D,EAAKz1B,EAAE64D,MACP5nC,EAAKltD,EAEL,IAAI8pI,EAAOt4E,EAAGgsC,MAAMhgG,IAAIi0D,EAAG+rC,OAiB3B,OAhBW9rC,EAAG8rC,MAAMhgG,IAAI0vD,EAAGswC,OAClBxL,IAAI83C,IAAS,IACpBp4E,EAAK0kC,EACLlpC,EAAK8qC,GAIHxmC,EAAGggC,WACLhgC,EAAKA,EAAGsjC,MACRrjC,EAAKA,EAAGqjC,OAENpjC,EAAG8/B,WACL9/B,EAAKA,EAAGojC,MACR5nC,EAAKA,EAAG4nC,OAGH,CACL,CAAE9zF,EAAGwwD,EAAI91D,EAAG+1D,GACZ,CAAEzwD,EAAG0wD,EAAIh2D,EAAGwxD,GAEhB,EAEAu7E,GAAWpzI,UAAU00I,WAAa,SAAoBxzI,GACpD,IAAIgzI,EAAQ31I,KAAKi1I,KAAKU,MAClBS,EAAKT,EAAM,GACXU,EAAKV,EAAM,GAEX33E,EAAKq4E,EAAGvuI,EAAEmC,IAAItH,GAAG8oG,SAASzrG,KAAK4F,GAC/Bq4D,EAAKm4E,EAAGtuI,EAAEo5F,MAAMj3F,IAAItH,GAAG8oG,SAASzrG,KAAK4F,GAErC0wI,EAAKt4E,EAAG/zD,IAAImsI,EAAGhpI,GACfmpI,EAAKt4E,EAAGh0D,IAAIosI,EAAGjpI,GACfopI,EAAKx4E,EAAG/zD,IAAImsI,EAAGtuI,GACf2uI,EAAKx4E,EAAGh0D,IAAIosI,EAAGvuI,GAKnB,MAAO,CAAEwuD,GAFA3zD,EAAEqH,IAAIssI,GAAItsI,IAAIusI,GAEN3zI,GADR4zI,EAAG5sI,IAAI6sI,GAAIv1C,MAEtB,EAEA2zC,GAAWpzI,UAAUywI,WAAa,SAAoB9lI,EAAGy8F,IACvDz8F,EAAI,IAAI,IAAJ,CAAOA,EAAG,KACPyxF,MACLzxF,EAAIA,EAAE+gG,MAAMntG,KAAK69F,MAEnB,IAAIs1C,EAAK/mI,EAAE8hG,SAASH,OAAO3hG,GAAGshG,QAAQthG,EAAE2hG,OAAO/tG,KAAKoN,IAAIsgG,QAAQ1tG,KAAK8H,GACjE7C,EAAIkuI,EAAG9kC,UACX,GAA6C,IAAzCppG,EAAEipG,SAASP,OAAOwlC,GAAI/0C,IAAIp+F,KAAK6vI,MACjC,MAAM,IAAIvpI,MAAM,iBAIlB,IAAI4lG,EAAQjnG,EAAEqoG,UAAUpB,QAIxB,OAHIrD,IAAQqD,IAAUrD,GAAOqD,KAC3BjnG,EAAIA,EAAEupG,UAEDxuG,KAAK+3D,MAAM3rD,EAAGnH,EACvB,EAEA4vI,GAAWpzI,UAAU4jB,SAAW,SAAkB0yC,GAChD,GAAIA,EAAM6sE,IACR,OAAO,EAET,IAAIx4H,EAAI2rD,EAAM3rD,EACVnH,EAAI8yD,EAAM9yD,EAEVszD,EAAKv4D,KAAKoN,EAAE2gG,OAAO3hG,GACnB6mI,EAAM7mI,EAAE8hG,SAASH,OAAO3hG,GAAGshG,QAAQn1C,GAAIm1C,QAAQ1tG,KAAK8H,GACxD,OAA2C,IAApC7C,EAAEipG,SAASN,QAAQqlC,GAAK3mC,KAAK,EACtC,EAEAuoC,GAAWpzI,UAAUi1I,gBACjB,SAAyB7iF,EAAQ49E,EAAQC,GAGvC,IAFA,IAAIiF,EAAU32I,KAAKm1I,YACfyB,EAAU52I,KAAKo1I,YACVpqI,EAAI,EAAGA,EAAI6oD,EAAO5tD,OAAQ+E,IAAK,CACtC,IAAI2B,EAAQ3M,KAAKm2I,WAAW1E,EAAOzmI,IAC/B3H,EAAIwwD,EAAO7oD,GACXqoD,EAAOhwD,EAAEivI,WAET3lI,EAAM2pD,GAAGsnC,WACXjxF,EAAM2pD,GAAG0qC,OACT39F,EAAIA,EAAE69F,KAAI,IAERv0F,EAAM/J,GAAGg7F,WACXjxF,EAAM/J,GAAGo+F,OACT3tC,EAAOA,EAAK6tC,KAAI,IAGlBy1C,EAAY,EAAJ3rI,GAAS3H,EACjBszI,EAAY,EAAJ3rI,EAAQ,GAAKqoD,EACrBujF,EAAY,EAAJ5rI,GAAS2B,EAAM2pD,GACvBsgF,EAAY,EAAJ5rI,EAAQ,GAAK2B,EAAM/J,EAC7B,CAIA,IAHA,IAAIiqC,EAAM7sC,KAAKuxI,YAAY,EAAGoF,EAASC,EAAa,EAAJ5rI,EAAO0mI,GAG9CznF,EAAI,EAAGA,EAAQ,EAAJj/C,EAAOi/C,IACzB0sF,EAAQ1sF,GAAK,KACb2sF,EAAQ3sF,GAAK,KAEf,OAAOpd,CACT,EAuBJkqH,GAAiBrkG,GAAOoE,GAAK05E,WAE7BqE,GAAWpzI,UAAUs2D,MAAQ,SAAe3rD,EAAGnH,EAAGowI,GAChD,OAAO,IAAI3iF,GAAM1yD,KAAMoM,EAAGnH,EAAGowI,EAC/B,EAEAR,GAAWpzI,UAAUquI,cAAgB,SAAuB5yF,EAAK2gD,GAC/D,OAAOnrC,GAAM2c,SAASrvE,KAAMk9C,EAAK2gD,EACnC,EAEAnrC,GAAMjxD,UAAU6wI,SAAW,WACzB,GAAKtyI,KAAKkvH,MAAM+lB,KAAhB,CAGA,IAAIryF,EAAM5iD,KAAKywI,YACf,GAAI7tF,GAAOA,EAAIyQ,KACb,OAAOzQ,EAAIyQ,KAEb,IAAIA,EAAOrzD,KAAKkvH,MAAMn3D,MAAM/3D,KAAKoM,EAAE2hG,OAAO/tG,KAAKkvH,MAAM+lB,KAAK5hF,MAAOrzD,KAAKiF,GACtE,GAAI29C,EAAK,CACP,IAAIssE,EAAQlvH,KAAKkvH,MACb2nB,EAAU,SAASxzI,GACrB,OAAO6rH,EAAMn3D,MAAM10D,EAAE+I,EAAE2hG,OAAOmhB,EAAM+lB,KAAK5hF,MAAOhwD,EAAE4B,EACpD,EACA29C,EAAIyQ,KAAOA,EACXA,EAAKo9E,YAAc,CACjBp9E,KAAM,KACNw9E,IAAKjuF,EAAIiuF,KAAO,CACdzgC,IAAKxtD,EAAIiuF,IAAIzgC,IACbv8C,OAAQjR,EAAIiuF,IAAIh9E,OAAOpnD,IAAIoqI,IAE7BlG,QAAS/tF,EAAI+tF,SAAW,CACtBrsI,KAAMs+C,EAAI+tF,QAAQrsI,KAClBuvD,OAAQjR,EAAI+tF,QAAQ98E,OAAOpnD,IAAIoqI,IAGrC,CACA,OAAOxjF,CAzBC,CA0BV,EAEAX,GAAMjxD,UAAU27C,OAAS,WACvB,OAAKp9C,KAAKywI,YAGH,CAAEzwI,KAAKoM,EAAGpM,KAAKiF,EAAGjF,KAAKywI,aAAe,CAC3CE,QAAS3wI,KAAKywI,YAAYE,SAAW,CACnCrsI,KAAMtE,KAAKywI,YAAYE,QAAQrsI,KAC/BuvD,OAAQ7zD,KAAKywI,YAAYE,QAAQ98E,OAAOroD,MAAM,IAEhDqlI,IAAK7wI,KAAKywI,YAAYI,KAAO,CAC3BzgC,IAAKpwG,KAAKywI,YAAYI,IAAIzgC,IAC1Bv8C,OAAQ7zD,KAAKywI,YAAYI,IAAIh9E,OAAOroD,MAAM,MATrC,CAAExL,KAAKoM,EAAGpM,KAAKiF,EAY1B,EAEAytD,GAAM2c,SAAW,SAAkB6/C,EAAOhyE,EAAK2gD,GAC1B,iBAAR3gD,IACTA,EAAM5Z,KAAKx6B,MAAMo0C,IACnB,IAAIrQ,EAAMqiF,EAAMn3D,MAAM7a,EAAI,GAAIA,EAAI,GAAI2gD,GACtC,IAAK3gD,EAAI,GACP,OAAOrQ,EAET,SAASiqG,EAAU55F,GACjB,OAAOgyE,EAAMn3D,MAAM7a,EAAI,GAAIA,EAAI,GAAI2gD,EACrC,CAEA,IAAIj7C,EAAM1F,EAAI,GAYd,OAXArQ,EAAI4jG,YAAc,CAChBp9E,KAAM,KACNs9E,QAAS/tF,EAAI+tF,SAAW,CACtBrsI,KAAMs+C,EAAI+tF,QAAQrsI,KAClBuvD,OAAQ,CAAEhnB,GAAM7qC,OAAO4gD,EAAI+tF,QAAQ98E,OAAOpnD,IAAIqqI,KAEhDjG,IAAKjuF,EAAIiuF,KAAO,CACdzgC,IAAKxtD,EAAIiuF,IAAIzgC,IACbv8C,OAAQ,CAAEhnB,GAAM7qC,OAAO4gD,EAAIiuF,IAAIh9E,OAAOpnD,IAAIqqI,MAGvCjqG,CACT,EAEA6lB,GAAMjxD,UAAUw9F,QAAU,WACxB,OAAIj/F,KAAKqzI,aACA,sBACF,gBAAkBrzI,KAAKoM,EAAEkhG,UAAUlmG,SAAS,GAAI,GACnD,OAASpH,KAAKiF,EAAEqoG,UAAUlmG,SAAS,GAAI,GAAK,GAClD,EAEAsrD,GAAMjxD,UAAU4xI,WAAa,WAC3B,OAAOrzI,KAAK4kI,GACd,EAEAlyE,GAAMjxD,UAAUmI,IAAM,SAAavG,GAEjC,GAAIrD,KAAK4kI,IACP,OAAOvhI,EAGT,GAAIA,EAAEuhI,IACJ,OAAO5kI,KAGT,GAAIA,KAAKitG,GAAG5pG,GACV,OAAOrD,KAAKwyI,MAGd,GAAIxyI,KAAKkhG,MAAM+L,GAAG5pG,GAChB,OAAOrD,KAAKkvH,MAAMn3D,MAAM,KAAM,MAGhC,GAAwB,IAApB/3D,KAAKoM,EAAEgyF,IAAI/6F,EAAE+I,GACf,OAAOpM,KAAKkvH,MAAMn3D,MAAM,KAAM,MAEhC,IAAIxrD,EAAIvM,KAAKiF,EAAE0oG,OAAOtqG,EAAE4B,GACN,IAAdsH,EAAE+/F,KAAK,KACT//F,EAAIA,EAAEwhG,OAAO/tG,KAAKoM,EAAEuhG,OAAOtqG,EAAE+I,GAAGmiG,YAClC,IAAIglC,EAAKhnI,EAAE2hG,SAASN,QAAQ5tG,KAAKoM,GAAGwhG,QAAQvqG,EAAE+I,GAC1ConI,EAAKjnI,EAAEwhG,OAAO/tG,KAAKoM,EAAEuhG,OAAO4lC,IAAK3lC,QAAQ5tG,KAAKiF,GAClD,OAAOjF,KAAKkvH,MAAMn3D,MAAMw7E,EAAIC,EAC9B,EAEA9gF,GAAMjxD,UAAU+wI,IAAM,WACpB,GAAIxyI,KAAK4kI,IACP,OAAO5kI,KAGT,IAAI+2I,EAAM/2I,KAAKiF,EAAEwoG,OAAOztG,KAAKiF,GAC7B,GAAoB,IAAhB8xI,EAAIzqC,KAAK,GACX,OAAOtsG,KAAKkvH,MAAMn3D,MAAM,KAAM,MAEhC,IAAI3qD,EAAIpN,KAAKkvH,MAAM9hH,EAEfmmD,EAAKvzD,KAAKoM,EAAE8hG,SACZ8oC,EAAQD,EAAIxoC,UACZhiG,EAAIgnD,EAAGk6C,OAAOl6C,GAAIm6C,QAAQn6C,GAAIm6C,QAAQtgG,GAAG2gG,OAAOipC,GAEhDzD,EAAKhnI,EAAE2hG,SAASN,QAAQ5tG,KAAKoM,EAAEqhG,OAAOztG,KAAKoM,IAC3ConI,EAAKjnI,EAAEwhG,OAAO/tG,KAAKoM,EAAEuhG,OAAO4lC,IAAK3lC,QAAQ5tG,KAAKiF,GAClD,OAAOjF,KAAKkvH,MAAMn3D,MAAMw7E,EAAIC,EAC9B,EAEA9gF,GAAMjxD,UAAU65H,KAAO,WACrB,OAAOt7H,KAAKoM,EAAEkhG,SAChB,EAEA56C,GAAMjxD,UAAU4wI,KAAO,WACrB,OAAOryI,KAAKiF,EAAEqoG,SAChB,EAEA56C,GAAMjxD,UAAUwI,IAAM,SAAatH,GAEjC,OADAA,EAAI,IAAI,IAAJ,CAAOA,EAAG,IACV3C,KAAKqzI,aACArzI,KACAA,KAAKuyI,YAAY5vI,GACjB3C,KAAKkvH,MAAMwhB,aAAa1wI,KAAM2C,GAC9B3C,KAAKkvH,MAAM+lB,KACXj1I,KAAKkvH,MAAMwnB,gBAAgB,CAAE12I,MAAQ,CAAE2C,IAEvC3C,KAAKkvH,MAAMiiB,SAASnxI,KAAM2C,EACrC,EAEA+vD,GAAMjxD,UAAUqyI,OAAS,SAAgBx9E,EAAIigF,EAAI3zI,GAC/C,IAAIixD,EAAS,CAAE7zD,KAAMu2I,GACjB9E,EAAS,CAAEn7E,EAAI1zD,GACnB,OAAI5C,KAAKkvH,MAAM+lB,KACNj1I,KAAKkvH,MAAMwnB,gBAAgB7iF,EAAQ49E,GAEnCzxI,KAAKkvH,MAAMqiB,YAAY,EAAG19E,EAAQ49E,EAAQ,EACrD,EAEA/+E,GAAMjxD,UAAUsyI,QAAU,SAAiBz9E,EAAIigF,EAAI3zI,GACjD,IAAIixD,EAAS,CAAE7zD,KAAMu2I,GACjB9E,EAAS,CAAEn7E,EAAI1zD,GACnB,OAAI5C,KAAKkvH,MAAM+lB,KACNj1I,KAAKkvH,MAAMwnB,gBAAgB7iF,EAAQ49E,GAAQ,GAE3CzxI,KAAKkvH,MAAMqiB,YAAY,EAAG19E,EAAQ49E,EAAQ,GAAG,EACxD,EAEA/+E,GAAMjxD,UAAUwrG,GAAK,SAAY5pG,GAC/B,OAAOrD,OAASqD,GACTrD,KAAK4kI,MAAQvhI,EAAEuhI,MACV5kI,KAAK4kI,KAA2B,IAApB5kI,KAAKoM,EAAEgyF,IAAI/6F,EAAE+I,IAAgC,IAApBpM,KAAKiF,EAAEm5F,IAAI/6F,EAAE4B,GAChE,EAEAytD,GAAMjxD,UAAUy/F,IAAM,SAAa+1C,GACjC,GAAIj3I,KAAK4kI,IACP,OAAO5kI,KAET,IAAI6sC,EAAM7sC,KAAKkvH,MAAMn3D,MAAM/3D,KAAKoM,EAAGpM,KAAKiF,EAAEupG,UAC1C,GAAIyoC,GAAej3I,KAAKywI,YAAa,CACnC,IAAI7tF,EAAM5iD,KAAKywI,YACXn7E,EAAS,SAASjyD,GACpB,OAAOA,EAAE69F,KACX,EACAr0D,EAAI4jG,YAAc,CAChBI,IAAKjuF,EAAIiuF,KAAO,CACdzgC,IAAKxtD,EAAIiuF,IAAIzgC,IACbv8C,OAAQjR,EAAIiuF,IAAIh9E,OAAOpnD,IAAI6oD,IAE7Bq7E,QAAS/tF,EAAI+tF,SAAW,CACtBrsI,KAAMs+C,EAAI+tF,QAAQrsI,KAClBuvD,OAAQjR,EAAI+tF,QAAQ98E,OAAOpnD,IAAI6oD,IAGrC,CACA,OAAOzoB,CACT,EAEA6lB,GAAMjxD,UAAUowI,IAAM,WACpB,OAAI7xI,KAAK4kI,IACA5kI,KAAKkvH,MAAM8hB,OAAO,KAAM,KAAM,MAE7BhxI,KAAKkvH,MAAM8hB,OAAOhxI,KAAKoM,EAAGpM,KAAKiF,EAAGjF,KAAKkvH,MAAMlf,IAEzD,EAsBA+mD,GAAiBzhB,GAAQx+E,GAAK05E,WAE9BqE,GAAWpzI,UAAUuvI,OAAS,SAAgB5kI,EAAGnH,EAAGw9C,GAClD,OAAO,IAAI6yF,GAAOt1I,KAAMoM,EAAGnH,EAAGw9C,EAChC,EAEA6yF,GAAO7zI,UAAUyvI,IAAM,WACrB,GAAIlxI,KAAKqzI,aACP,OAAOrzI,KAAKkvH,MAAMn3D,MAAM,KAAM,MAEhC,IAAIm/E,EAAOl3I,KAAKyiD,EAAE8rD,UACd4oC,EAAQD,EAAKhpC,SACb31C,EAAKv4D,KAAKoM,EAAE2hG,OAAOopC,GACnB3+E,EAAKx4D,KAAKiF,EAAE8oG,OAAOopC,GAAOppC,OAAOmpC,GAErC,OAAOl3I,KAAKkvH,MAAMn3D,MAAMQ,EAAIC,EAC9B,EAEA88E,GAAO7zI,UAAUy/F,IAAM,WACrB,OAAOlhG,KAAKkvH,MAAM8hB,OAAOhxI,KAAKoM,EAAGpM,KAAKiF,EAAEupG,SAAUxuG,KAAKyiD,EACzD,EAEA6yF,GAAO7zI,UAAUmI,IAAM,SAAavG,GAElC,GAAIrD,KAAKqzI,aACP,OAAOhwI,EAGT,GAAIA,EAAEgwI,aACJ,OAAOrzI,KAGT,IAAIo3I,EAAM/zI,EAAEo/C,EAAEyrD,SACV5uC,EAAKt/D,KAAKyiD,EAAEyrD,SACZ/yC,EAAKn7D,KAAKoM,EAAE2hG,OAAOqpC,GACnBh8E,EAAK/3D,EAAE+I,EAAE2hG,OAAOzuC,GAChB/R,EAAKvtD,KAAKiF,EAAE8oG,OAAOqpC,EAAIrpC,OAAO1qG,EAAEo/C,IAChCsiE,EAAK1hH,EAAE4B,EAAE8oG,OAAOzuC,EAAGyuC,OAAO/tG,KAAKyiD,IAE/BgE,EAAI0U,EAAGwyC,OAAOvyC,GACd/yB,EAAIklB,EAAGogD,OAAOoX,GAClB,GAAkB,IAAdt+D,EAAE6lD,KAAK,GACT,OAAkB,IAAdjkE,EAAEikE,KAAK,GACFtsG,KAAKkvH,MAAM8hB,OAAO,KAAM,KAAM,MAE9BhxI,KAAKwyI,MAGhB,IAAIznF,EAAKtE,EAAEynD,SACPljD,EAAKD,EAAGgjD,OAAOtnD,GACf5gD,EAAIs1D,EAAG4yC,OAAOhjD,GAEdwoF,EAAKlrG,EAAE6lE,SAASR,QAAQ1iD,GAAI4iD,QAAQ/nG,GAAG+nG,QAAQ/nG,GAC/C2tI,EAAKnrG,EAAE0lE,OAAOloG,EAAE+nG,QAAQ2lC,IAAK3lC,QAAQrgD,EAAGwgD,OAAO/iD,IAC/C0oF,EAAK1zI,KAAKyiD,EAAEsrD,OAAO1qG,EAAEo/C,GAAGsrD,OAAOtnD,GAEnC,OAAOzmD,KAAKkvH,MAAM8hB,OAAOuC,EAAIC,EAAIE,EACnC,EAEA4B,GAAO7zI,UAAUwvI,SAAW,SAAkB5tI,GAE5C,GAAIrD,KAAKqzI,aACP,OAAOhwI,EAAEwuI,MAGX,GAAIxuI,EAAEgwI,aACJ,OAAOrzI,KAGT,IAAIs/D,EAAKt/D,KAAKyiD,EAAEyrD,SACZ/yC,EAAKn7D,KAAKoM,EACVgvD,EAAK/3D,EAAE+I,EAAE2hG,OAAOzuC,GAChB/R,EAAKvtD,KAAKiF,EACV8/G,EAAK1hH,EAAE4B,EAAE8oG,OAAOzuC,GAAIyuC,OAAO/tG,KAAKyiD,GAEhCgE,EAAI0U,EAAGwyC,OAAOvyC,GACd/yB,EAAIklB,EAAGogD,OAAOoX,GAClB,GAAkB,IAAdt+D,EAAE6lD,KAAK,GACT,OAAkB,IAAdjkE,EAAEikE,KAAK,GACFtsG,KAAKkvH,MAAM8hB,OAAO,KAAM,KAAM,MAE9BhxI,KAAKwyI,MAGhB,IAAIznF,EAAKtE,EAAEynD,SACPljD,EAAKD,EAAGgjD,OAAOtnD,GACf5gD,EAAIs1D,EAAG4yC,OAAOhjD,GAEdwoF,EAAKlrG,EAAE6lE,SAASR,QAAQ1iD,GAAI4iD,QAAQ/nG,GAAG+nG,QAAQ/nG,GAC/C2tI,EAAKnrG,EAAE0lE,OAAOloG,EAAE+nG,QAAQ2lC,IAAK3lC,QAAQrgD,EAAGwgD,OAAO/iD,IAC/C0oF,EAAK1zI,KAAKyiD,EAAEsrD,OAAOtnD,GAEvB,OAAOzmD,KAAKkvH,MAAM8hB,OAAOuC,EAAIC,EAAIE,EACnC,EAEA4B,GAAO7zI,UAAU6vI,KAAO,SAActjI,GACpC,GAAY,IAARA,EACF,OAAOhO,KACT,GAAIA,KAAKqzI,aACP,OAAOrzI,KACT,IAAKgO,EACH,OAAOhO,KAAKwyI,MAEd,IAAIxnI,EACJ,GAAIhL,KAAKkvH,MAAM6lB,OAAS/0I,KAAKkvH,MAAM8lB,OAAQ,CACzC,IAAI3sG,EAAIroC,KACR,IAAKgL,EAAI,EAAGA,EAAIgD,EAAKhD,IACnBq9B,EAAIA,EAAEmqG,MACR,OAAOnqG,CACT,CAIA,IAAIj7B,EAAIpN,KAAKkvH,MAAM9hH,EACf0nI,EAAO90I,KAAKkvH,MAAM4lB,KAElBuC,EAAKr3I,KAAKoM,EACVkrI,EAAKt3I,KAAKiF,EACVsyI,EAAKv3I,KAAKyiD,EACV+0F,EAAMD,EAAGrpC,SAASA,SAGlBupC,EAAMH,EAAG7pC,OAAO6pC,GACpB,IAAKtsI,EAAI,EAAGA,EAAIgD,EAAKhD,IAAK,CACxB,IAAI0sI,EAAML,EAAGnpC,SACTypC,EAAOF,EAAIvpC,SACX0pC,EAAOD,EAAKzpC,SACZ3hG,EAAImrI,EAAIjqC,OAAOiqC,GAAKhqC,QAAQgqC,GAAKhqC,QAAQtgG,EAAE2gG,OAAOypC,IAElDt9E,EAAKm9E,EAAGtpC,OAAO4pC,GACfpE,EAAKhnI,EAAE2hG,SAASN,QAAQ1zC,EAAGuzC,OAAOvzC,IAClCC,EAAKD,EAAG0zC,QAAQ2lC,GAChBsE,EAAMtrI,EAAEwhG,OAAO5zC,GACnB09E,EAAMA,EAAInqC,QAAQmqC,GAAKjqC,QAAQgqC,GAC/B,IAAIlE,EAAK+D,EAAI1pC,OAAOwpC,GAChBvsI,EAAI,EAAIgD,IACVwpI,EAAMA,EAAIzpC,OAAO6pC,IAEnBP,EAAK9D,EACLgE,EAAK7D,EACL+D,EAAMI,CACR,CAEA,OAAO73I,KAAKkvH,MAAM8hB,OAAOqG,EAAII,EAAI1pC,OAAO+mC,GAAOyC,EACjD,EAEAjC,GAAO7zI,UAAU+wI,IAAM,WACrB,OAAIxyI,KAAKqzI,aACArzI,KAELA,KAAKkvH,MAAM6lB,MACN/0I,KAAK83I,WACL93I,KAAKkvH,MAAM8lB,OACXh1I,KAAK+3I,YAEL/3I,KAAKg4I,MAChB,EAEA1C,GAAO7zI,UAAUq2I,SAAW,WAC1B,IAAIvE,EACAC,EACAE,EAEJ,GAAI1zI,KAAK8yI,KAAM,CAMb,IAAImF,EAAKj4I,KAAKoM,EAAE8hG,SAEZgqC,EAAKl4I,KAAKiF,EAAEipG,SAEZiqC,EAAOD,EAAGhqC,SAEVnjG,EAAI/K,KAAKoM,EAAEqhG,OAAOyqC,GAAIhqC,SAASN,QAAQqqC,GAAIrqC,QAAQuqC,GACvDptI,EAAIA,EAAE2iG,QAAQ3iG,GAEd,IAAIrI,EAAIu1I,EAAGxqC,OAAOwqC,GAAIvqC,QAAQuqC,GAE1B/yI,EAAIxC,EAAEwrG,SAASN,QAAQ7iG,GAAG6iG,QAAQ7iG,GAGlCqtI,EAAQD,EAAKzqC,QAAQyqC,GAEzBC,GADAA,EAAQA,EAAM1qC,QAAQ0qC,IACR1qC,QAAQ0qC,GAGtB7E,EAAKruI,EAELsuI,EAAK9wI,EAAEqrG,OAAOhjG,EAAE6iG,QAAQ1oG,IAAI0oG,QAAQwqC,GAEpC1E,EAAK1zI,KAAKiF,EAAEwoG,OAAOztG,KAAKiF,EAC1B,KAAO,CAML,IAAImI,EAAIpN,KAAKoM,EAAE8hG,SAEXpmG,EAAI9H,KAAKiF,EAAEipG,SAEX3hG,EAAIzE,EAAEomG,SAENrmG,EAAI7H,KAAKoM,EAAEqhG,OAAO3lG,GAAGomG,SAASN,QAAQxgG,GAAGwgG,QAAQrhG,GACrD1E,EAAIA,EAAE6lG,QAAQ7lG,GAEd,IAAIrD,EAAI4I,EAAEqgG,OAAOrgG,GAAGsgG,QAAQtgG,GAExBpI,EAAIR,EAAE0pG,SAGNmqC,EAAK9rI,EAAEmhG,QAAQnhG,GAEnB8rI,GADAA,EAAKA,EAAG3qC,QAAQ2qC,IACR3qC,QAAQ2qC,GAGhB9E,EAAKvuI,EAAE4oG,QAAQ/lG,GAAG+lG,QAAQ/lG,GAE1B2rI,EAAKhvI,EAAEupG,OAAOlmG,EAAE+lG,QAAQ2lC,IAAK3lC,QAAQyqC,GAGrC3E,GADAA,EAAK1zI,KAAKiF,EAAE8oG,OAAO/tG,KAAKyiD,IAChBirD,QAAQgmC,EAClB,CAEA,OAAO1zI,KAAKkvH,MAAM8hB,OAAOuC,EAAIC,EAAIE,EACnC,EAEA4B,GAAO7zI,UAAUs2I,UAAY,WAC3B,IAAIxE,EACAC,EACAE,EAEJ,GAAI1zI,KAAK8yI,KAAM,CAMb,IAAImF,EAAKj4I,KAAKoM,EAAE8hG,SAEZgqC,EAAKl4I,KAAKiF,EAAEipG,SAEZiqC,EAAOD,EAAGhqC,SAEVnjG,EAAI/K,KAAKoM,EAAEqhG,OAAOyqC,GAAIhqC,SAASN,QAAQqqC,GAAIrqC,QAAQuqC,GACvDptI,EAAIA,EAAE2iG,QAAQ3iG,GAEd,IAAIrI,EAAIu1I,EAAGxqC,OAAOwqC,GAAIvqC,QAAQuqC,GAAIvqC,QAAQ1tG,KAAKkvH,MAAM9hH,GAEjDlI,EAAIxC,EAAEwrG,SAASN,QAAQ7iG,GAAG6iG,QAAQ7iG,GAEtCwoI,EAAKruI,EAEL,IAAIkzI,EAAQD,EAAKzqC,QAAQyqC,GAEzBC,GADAA,EAAQA,EAAM1qC,QAAQ0qC,IACR1qC,QAAQ0qC,GACtB5E,EAAK9wI,EAAEqrG,OAAOhjG,EAAE6iG,QAAQ1oG,IAAI0oG,QAAQwqC,GAEpC1E,EAAK1zI,KAAKiF,EAAEwoG,OAAOztG,KAAKiF,EAC1B,KAAO,CAKL,IAAIi8B,EAAQlhC,KAAKyiD,EAAEyrD,SAEfoqC,EAAQt4I,KAAKiF,EAAEipG,SAEf76C,EAAOrzD,KAAKoM,EAAE2hG,OAAOuqC,GAErBC,EAAQv4I,KAAKoM,EAAEuhG,OAAOzsE,GAAO6sE,OAAO/tG,KAAKoM,EAAEqhG,OAAOvsE,IACtDq3G,EAAQA,EAAM9qC,OAAO8qC,GAAO7qC,QAAQ6qC,GAEpC,IAAIC,EAAQnlF,EAAKq6C,QAAQr6C,GAErBolF,GADJD,EAAQA,EAAM9qC,QAAQ8qC,IACJ/qC,OAAO+qC,GACzBjF,EAAKgF,EAAMrqC,SAASN,QAAQ6qC,GAE5B/E,EAAK1zI,KAAKiF,EAAEwoG,OAAOztG,KAAKyiD,GAAGyrD,SAASN,QAAQ0qC,GAAO1qC,QAAQ1sE,GAE3D,IAAIw3G,EAAUJ,EAAMpqC,SAGpBwqC,GADAA,GADAA,EAAUA,EAAQhrC,QAAQgrC,IACRhrC,QAAQgrC,IACRhrC,QAAQgrC,GAC1BlF,EAAK+E,EAAMxqC,OAAOyqC,EAAM5qC,QAAQ2lC,IAAK3lC,QAAQ8qC,EAC/C,CAEA,OAAO14I,KAAKkvH,MAAM8hB,OAAOuC,EAAIC,EAAIE,EACnC,EAEA4B,GAAO7zI,UAAUu2I,KAAO,WACtB,IAAI5qI,EAAIpN,KAAKkvH,MAAM9hH,EAGfiqI,EAAKr3I,KAAKoM,EACVkrI,EAAKt3I,KAAKiF,EACVsyI,EAAKv3I,KAAKyiD,EACV+0F,EAAMD,EAAGrpC,SAASA,SAElBwpC,EAAML,EAAGnpC,SACTyqC,EAAMrB,EAAGppC,SAET3hG,EAAImrI,EAAIjqC,OAAOiqC,GAAKhqC,QAAQgqC,GAAKhqC,QAAQtgG,EAAE2gG,OAAOypC,IAElDoB,EAAOvB,EAAG5pC,OAAO4pC,GAEjBn9E,GADJ0+E,EAAOA,EAAKlrC,QAAQkrC,IACN7qC,OAAO4qC,GACjBpF,EAAKhnI,EAAE2hG,SAASN,QAAQ1zC,EAAGuzC,OAAOvzC,IAClCC,EAAKD,EAAG0zC,QAAQ2lC,GAEhBsF,EAAOF,EAAIzqC,SAGf2qC,GADAA,GADAA,EAAOA,EAAKnrC,QAAQmrC,IACRnrC,QAAQmrC,IACRnrC,QAAQmrC,GACpB,IAAIrF,EAAKjnI,EAAEwhG,OAAO5zC,GAAIyzC,QAAQirC,GAC1BnF,EAAK4D,EAAG7pC,OAAO6pC,GAAIvpC,OAAOwpC,GAE9B,OAAOv3I,KAAKkvH,MAAM8hB,OAAOuC,EAAIC,EAAIE,EACnC,EAEA4B,GAAO7zI,UAAUq3I,KAAO,WACtB,IAAK94I,KAAKkvH,MAAM6lB,MACd,OAAO/0I,KAAKwyI,MAAM5oI,IAAI5J,MAMxB,IAAIi4I,EAAKj4I,KAAKoM,EAAE8hG,SAEZgqC,EAAKl4I,KAAKiF,EAAEipG,SAEZ6qC,EAAK/4I,KAAKyiD,EAAEyrD,SAEZiqC,EAAOD,EAAGhqC,SAEVxrG,EAAIu1I,EAAGxqC,OAAOwqC,GAAIvqC,QAAQuqC,GAE1Be,EAAKt2I,EAAEwrG,SAEP1pG,EAAIxE,KAAKoM,EAAEqhG,OAAOyqC,GAAIhqC,SAASN,QAAQqqC,GAAIrqC,QAAQuqC,GAKnDc,GAFJz0I,GADAA,GADAA,EAAIA,EAAEkpG,QAAQlpG,IACRipG,OAAOjpG,GAAGkpG,QAAQlpG,IAClBopG,QAAQorC,IAEH9qC,SAEPhpG,EAAIizI,EAAKzqC,QAAQyqC,GAGrBjzI,GADAA,GADAA,EAAIA,EAAEwoG,QAAQxoG,IACRwoG,QAAQxoG,IACRwoG,QAAQxoG,GAEd,IAAIs4D,EAAI96D,EAAEgrG,QAAQlpG,GAAG0pG,SAASN,QAAQorC,GAAIprC,QAAQqrC,GAAIrrC,QAAQ1oG,GAE1Dg0I,EAAOhB,EAAGnqC,OAAOvwC,GAErB07E,GADAA,EAAOA,EAAKxrC,QAAQwrC,IACRxrC,QAAQwrC,GACpB,IAAI3F,EAAKvzI,KAAKoM,EAAE2hG,OAAOkrC,GAAIrrC,QAAQsrC,GAEnC3F,GADAA,EAAKA,EAAG7lC,QAAQ6lC,IACR7lC,QAAQ6lC,GAEhB,IAAIC,EAAKxzI,KAAKiF,EAAE8oG,OAAOvwC,EAAEuwC,OAAO7oG,EAAE0oG,QAAQpwC,IAAIowC,QAAQppG,EAAEupG,OAAOkrC,KAG/DzF,GADAA,GADAA,EAAKA,EAAG9lC,QAAQ8lC,IACR9lC,QAAQ8lC,IACR9lC,QAAQ8lC,GAEhB,IAAIE,EAAK1zI,KAAKyiD,EAAEgrD,OAAOjpG,GAAG0pG,SAASN,QAAQmrC,GAAInrC,QAAQqrC,GAEvD,OAAOj5I,KAAKkvH,MAAM8hB,OAAOuC,EAAIC,EAAIE,EACnC,EAEA4B,GAAO7zI,UAAUwI,IAAM,SAAatH,EAAGw2I,GAGrC,OAFAx2I,EAAI,IAAI,IAAJ,CAAOA,EAAGw2I,GAEPn5I,KAAKkvH,MAAMiiB,SAASnxI,KAAM2C,EACnC,EAEA2yI,GAAO7zI,UAAUwrG,GAAK,SAAY5pG,GAChC,GAAe,WAAXA,EAAE+N,KACJ,OAAOpR,KAAKitG,GAAG5pG,EAAEwuI,OAEnB,GAAI7xI,OAASqD,EACX,OAAO,EAGT,IAAIi8D,EAAKt/D,KAAKyiD,EAAEyrD,SACZkpC,EAAM/zI,EAAEo/C,EAAEyrD,SACd,GAA2D,IAAvDluG,KAAKoM,EAAE2hG,OAAOqpC,GAAKxpC,QAAQvqG,EAAE+I,EAAE2hG,OAAOzuC,IAAKgtC,KAAK,GAClD,OAAO,EAGT,IAAI8sC,EAAK95E,EAAGyuC,OAAO/tG,KAAKyiD,GACpB42F,EAAMjC,EAAIrpC,OAAO1qG,EAAEo/C,GACvB,OAA8D,IAAvDziD,KAAKiF,EAAE8oG,OAAOsrC,GAAKzrC,QAAQvqG,EAAE4B,EAAE8oG,OAAOqrC,IAAK9sC,KAAK,EACzD,EAEAgpC,GAAO7zI,UAAUwyI,OAAS,SAAgB7nI,GACxC,IAAIo8H,EAAKxoI,KAAKyiD,EAAEyrD,SACZzsC,EAAKr1D,EAAE+gG,MAAMntG,KAAKkvH,MAAMrxB,KAAKkQ,OAAOy6B,GACxC,GAAuB,IAAnBxoI,KAAKoM,EAAEgyF,IAAI38B,GACb,OAAO,EAIT,IAFA,IAAIyyE,EAAK9nI,EAAEwtB,QACP10B,EAAIlF,KAAKkvH,MAAMohB,KAAKviC,OAAOy6B,KACtB,CAEP,GADA0L,EAAG9xC,KAAKpiG,KAAKkvH,MAAMtpH,GACfsuI,EAAG91C,IAAIp+F,KAAKkvH,MAAM7rH,IAAM,EAC1B,OAAO,EAGT,GADAo+D,EAAGisC,QAAQxoG,GACY,IAAnBlF,KAAKoM,EAAEgyF,IAAI38B,GACb,OAAO,CACX,CACF,EAEA6zE,GAAO7zI,UAAUw9F,QAAU,WACzB,OAAIj/F,KAAKqzI,aACA,uBACF,iBAAmBrzI,KAAKoM,EAAEhF,SAAS,GAAI,GAC1C,OAASpH,KAAKiF,EAAEmC,SAAS,GAAI,GAC7B,OAASpH,KAAKyiD,EAAEr7C,SAAS,GAAI,GAAK,GACxC,EAEAkuI,GAAO7zI,UAAU4xI,WAAa,WAE5B,OAA0B,IAAnBrzI,KAAKyiD,EAAE6pD,KAAK,EACrB,EAEA,IAAI4qD,GAAUV,IAAqB,SAAU52J,EAAQD,GAGrD,IAAIuvH,EAAQvvH,EAEZuvH,EAAMp4D,KAAOA,GACbo4D,EAAMilB,MAAQ8iB,GACd/nC,EAAM3e,KAAwC,KAC9C2e,EAAMklB,QAA8C,IACpD,IAEI+iB,GAAWX,IAAqB,SAAU52J,EAAQD,GAGtD,IAsKIijD,EAtKA2rE,EAAS5uH,EAMTklD,EAASgyG,GAAUhyG,OAEvB,SAASy0F,EAAYluH,GACE,UAAjBA,EAAQha,KACVpR,KAAKkvH,MAAQ,IAAIgoC,GAAQ/iB,MAAM/oH,GACP,YAAjBA,EAAQha,KACfpR,KAAKkvH,MAAQ,IAAIgoC,GAAQ9iB,QAAQhpH,GAEjCprB,KAAKkvH,MAAQ,IAAIgoC,GAAQ3mD,KAAKnlF,GAChCprB,KAAKmF,EAAInF,KAAKkvH,MAAM/pH,EACpBnF,KAAK4F,EAAI5F,KAAKkvH,MAAMtpH,EACpB5F,KAAK+1B,KAAO3K,EAAQ2K,KAEpB8uB,EAAO7kD,KAAKmF,EAAEkgB,WAAY,iBAC1Bw/B,EAAO7kD,KAAKmF,EAAE8E,IAAIjK,KAAK4F,GAAGytI,aAAc,0BAC1C,CAGA,SAASkG,EAAYj4G,EAAMlW,GACzBnrB,OAAOC,eAAequH,EAAQjtF,EAAM,CAClCr+B,cAAc,EACdC,YAAY,EACZC,IAAK,WACH,IAAI+rH,EAAQ,IAAIoqB,EAAYluH,GAM5B,OALAnrB,OAAOC,eAAequH,EAAQjtF,EAAM,CAClCr+B,cAAc,EACdC,YAAY,EACZ/C,MAAO+uH,IAEFA,CACT,GAEJ,CAhBAX,EAAO+qB,YAAcA,EAkBrBC,EAAY,OAAQ,CAClBnoI,KAAM,QACNi+F,MAAO,OACPhsG,EAAG,wDACH+J,EAAG,wDACHtF,EAAG,wDACHlC,EAAG,wDACHmwB,KAAM,YACNg6G,MAAM,EACN5qI,EAAG,CACD,wDACA,2DAIJo0I,EAAY,OAAQ,CAClBnoI,KAAM,QACNi+F,MAAO,OACPhsG,EAAG,iEACH+J,EAAG,iEACHtF,EAAG,iEACHlC,EAAG,iEACHmwB,KAAM,YACNg6G,MAAM,EACN5qI,EAAG,CACD,iEACA,oEAIJo0I,EAAY,OAAQ,CAClBnoI,KAAM,QACNi+F,MAAO,KACPhsG,EAAG,0EACH+J,EAAG,0EACHtF,EAAG,0EACHlC,EAAG,0EACHmwB,KAAM,YACNg6G,MAAM,EACN5qI,EAAG,CACD,0EACA,6EAIJo0I,EAAY,OAAQ,CAClBnoI,KAAM,QACNi+F,MAAO,KACPhsG,EAAG,8GAEH+J,EAAG,8GAEHtF,EAAG,8GAEHlC,EAAG,8GAEHmwB,KAAM,YACNg6G,MAAM,EACN5qI,EAAG,CACD,8GAEA,iHAKJo0I,EAAY,OAAQ,CAClBnoI,KAAM,QACNi+F,MAAO,KACPhsG,EAAG,2JAGH+J,EAAG,2JAGHtF,EAAG,2JAGHlC,EAAG,2JAGHmwB,KAAM,YACNg6G,MAAM,EACN5qI,EAAG,CACD,2JAGA,8JAMJo0I,EAAY,aAAc,CACxBnoI,KAAM,OACNi+F,MAAO,SACPhsG,EAAG,sEACH+J,EAAG,QACHtF,EAAG,IACHlC,EAAG,sEACHmwB,KAAM,YACNg6G,MAAM,EACN5qI,EAAG,CACD,OAIJo0I,EAAY,UAAW,CACrBnoI,KAAM,UACNi+F,MAAO,SACPhsG,EAAG,sEACH+J,EAAG,KACHb,EAAG,IAEH1E,EAAG,sEACHjC,EAAG,sEACHmwB,KAAM,YACNg6G,MAAM,EACN5qI,EAAG,CACD,mEAGA,sEAKJ,IACEy9C,EAAwD,KAAOw0G,OAGjE,CAFE,MAAO5yJ,GACPo+C,OAAM//C,CACR,CAEA02I,EAAY,YAAa,CACvBnoI,KAAM,QACNi+F,MAAO,OACPhsG,EAAG,0EACH+J,EAAG,IACHtF,EAAG,IACHlC,EAAG,0EACH6gD,EAAG,IACH1wB,KAAM,YAGNs9B,KAAM,mEACNkiF,OAAQ,mEACRI,MAAO,CACL,CACEvoI,EAAG,mCACHtF,EAAG,qCAEL,CACEsF,EAAG,oCACHtF,EAAG,qCAIPioI,MAAM,EACN5qI,EAAG,CACD,mEACA,mEACAy9C,IAGJ,IAQA,SAAS42F,GAASpuH,GAChB,KAAMprB,gBAAgBw5I,IACpB,OAAO,IAAIA,GAASpuH,GACtBprB,KAAK+1B,KAAO3K,EAAQ2K,KACpB/1B,KAAKq3J,aAAejsI,EAAQisI,WAE5Br3J,KAAK8vG,OAAS9vG,KAAK+1B,KAAKuhI,QACxBt3J,KAAKu3J,WAAansI,EAAQmsI,YAAcv3J,KAAK+1B,KAAKikH,aAElDh6I,KAAKw3J,QAAU,KACfx3J,KAAKy3J,eAAiB,KACtBz3J,KAAK03J,EAAI,KACT13J,KAAK+1D,EAAI,KAET,IAAI+rD,EAAU11C,GAAQ//D,QAAQ+e,EAAQ02F,QAAS12F,EAAQ6uH,YAAc,OACjEn4E,EAAQsK,GAAQ//D,QAAQ+e,EAAQ02C,MAAO12C,EAAQusI,UAAY,OAC3D7d,EAAO1tE,GAAQ//D,QAAQ+e,EAAQ0uH,KAAM1uH,EAAQ2uH,SAAW,OAC5D6c,GAAmB90C,EAAQ77G,QAAWjG,KAAKu3J,WAAa,EACjD,mCAAqCv3J,KAAKu3J,WAAa,SAC9Dv3J,KAAKu2F,MAAMurB,EAAShgD,EAAOg4E,EAC7B,CACA,IAAI8d,GAAWpe,GAEfA,GAAS/3I,UAAU80F,MAAQ,SAAcurB,EAAShgD,EAAOg4E,GACvD,IAAI1yG,EAAO06E,EAAQ9/G,OAAO8/D,GAAO9/D,OAAO83I,GAExC95I,KAAK03J,EAAI,IAAIzvJ,MAAMjI,KAAK8vG,OAAS,GACjC9vG,KAAK+1D,EAAI,IAAI9tD,MAAMjI,KAAK8vG,OAAS,GACjC,IAAK,IAAI9kG,EAAI,EAAGA,EAAIhL,KAAK+1D,EAAE9vD,OAAQ+E,IACjChL,KAAK03J,EAAE1sJ,GAAK,EACZhL,KAAK+1D,EAAE/qD,GAAK,EAGdhL,KAAKioH,QAAQ7gF,GACbpnC,KAAKw3J,QAAU,EACfx3J,KAAKy3J,eAAiB,eACxB,EAEAje,GAAS/3I,UAAUo2J,MAAQ,WACzB,OAAO,IAAI,WAAU73J,KAAK+1B,KAAM/1B,KAAK03J,EACvC,EAEAle,GAAS/3I,UAAUwmH,QAAU,SAAgB7gF,GAC3C,IAAI0wH,EAAO93J,KAAK63J,QACApyG,OAAOzlD,KAAK+1D,GACZtQ,OAAO,CAAE,IACrBre,IACF0wH,EAAOA,EAAKryG,OAAOre,IACrBpnC,KAAK03J,EAAII,EAAKlxG,SACd5mD,KAAK+1D,EAAI/1D,KAAK63J,QAAQpyG,OAAOzlD,KAAK+1D,GAAGnP,SAChCxf,IAGLpnC,KAAK03J,EAAI13J,KAAK63J,QACApyG,OAAOzlD,KAAK+1D,GACZtQ,OAAO,CAAE,IACTA,OAAOre,GACPwf,SACd5mD,KAAK+1D,EAAI/1D,KAAK63J,QAAQpyG,OAAOzlD,KAAK+1D,GAAGnP,SACvC,EAEA4yF,GAAS/3I,UAAU6+D,OAAS,SAAgBwhD,EAASm4B,EAAYrwI,EAAKmuJ,GAE1C,iBAAf9d,IACT8d,EAASnuJ,EACTA,EAAMqwI,EACNA,EAAa,MAGfn4B,EAAU11C,GAAQ//D,QAAQy1G,EAASm4B,GACnCrwI,EAAMwiE,GAAQ//D,QAAQzC,EAAKmuJ,GAE3BnB,GAAmB90C,EAAQ77G,QAAWjG,KAAKu3J,WAAa,EACjD,mCAAqCv3J,KAAKu3J,WAAa,SAE9Dv3J,KAAKioH,QAAQnG,EAAQ9/G,OAAO4H,GAAO,KACnC5J,KAAKw3J,QAAU,CACjB,EAEAhe,GAAS/3I,UAAU8+D,SAAW,SAAkB7a,EAAK2uC,EAAKzqF,EAAKmuJ,GAC7D,GAAI/3J,KAAKw3J,QAAUx3J,KAAKy3J,eACtB,MAAM,IAAInxJ,MAAM,sBAGC,iBAAR+tF,IACT0jE,EAASnuJ,EACTA,EAAMyqF,EACNA,EAAM,MAIJzqF,IACFA,EAAMwiE,GAAQ//D,QAAQzC,EAAKmuJ,GAAU,OACrC/3J,KAAKioH,QAAQr+G,IAIf,IADA,IAAIw9H,EAAO,GACJA,EAAKnhI,OAASy/C,GACnB1lD,KAAK+1D,EAAI/1D,KAAK63J,QAAQpyG,OAAOzlD,KAAK+1D,GAAGnP,SACrCwgF,EAAOA,EAAKplI,OAAOhC,KAAK+1D,GAG1B,IAAIlpB,EAAMu6F,EAAK57H,MAAM,EAAGk6C,GAGxB,OAFA1lD,KAAKioH,QAAQr+G,GACb5J,KAAKw3J,UACEprF,GAAQ50D,OAAOq1B,EAAKwnD,EAC7B,EAMA,IAAI2jE,GAAWnB,GAAUhyG,OAEzB,SAAS40F,GAAQzxG,EAAI5c,GACnBprB,KAAKgoC,GAAKA,EACVhoC,KAAKmhE,KAAO,KACZnhE,KAAKwvH,IAAM,KAGPpkG,EAAQ+1C,MACVnhE,KAAK47H,eAAexwG,EAAQ+1C,KAAM/1C,EAAQ2vH,SACxC3vH,EAAQokG,KACVxvH,KAAKy7H,cAAcrwG,EAAQokG,IAAKpkG,EAAQ4vH,OAC5C,CACA,IAAIn5I,GAAM43I,GAEVA,GAAQI,WAAa,SAAoB7xG,EAAIwnF,EAAKn7B,GAChD,OAAIm7B,aAAeiqB,GACVjqB,EAEF,IAAIiqB,GAAQzxG,EAAI,CACrBwnF,IAAKA,EACLwrB,OAAQ3mD,GAEZ,EAEAolD,GAAQG,YAAc,SAAqB5xG,EAAIm5B,EAAMkzB,GACnD,OAAIlzB,aAAgBs4E,GACXt4E,EAEF,IAAIs4E,GAAQzxG,EAAI,CACrBm5B,KAAMA,EACN45E,QAAS1mD,GAEb,EAEAolD,GAAQh4I,UAAU4jB,SAAW,WAC3B,IAAImqG,EAAMxvH,KAAKkH,YAEf,OAAIsoH,EAAI6jB,aACC,CAAE3uI,QAAQ,EAAO6wG,OAAQ,sBAC7Bia,EAAInqG,WAEJmqG,EAAIvlH,IAAIjK,KAAKgoC,GAAGknF,MAAMtpH,GAAGytI,aAGvB,CAAE3uI,QAAQ,EAAM6wG,OAAQ,MAFtB,CAAE7wG,QAAQ,EAAO6wG,OAAQ,uBAFzB,CAAE7wG,QAAQ,EAAO6wG,OAAQ,4BAKpC,EAEAkkC,GAAQh4I,UAAUyF,UAAY,SAAmBkrI,EAAS/9C,GAUxD,MARuB,iBAAZ+9C,IACT/9C,EAAM+9C,EACNA,EAAU,MAGPpyI,KAAKwvH,MACRxvH,KAAKwvH,IAAMxvH,KAAKgoC,GAAG7iC,EAAE8E,IAAIjK,KAAKmhE,OAE3BkzB,EAGEr0F,KAAKwvH,IAAIh4G,OAAO68E,EAAK+9C,GAFnBpyI,KAAKwvH,GAGhB,EAEAiqB,GAAQh4I,UAAUq+C,WAAa,SAAoBu0C,GACjD,MAAY,QAARA,EACKr0F,KAAKmhE,KAAK/5D,SAAS,GAAI,GAEvBpH,KAAKmhE,IAChB,EAEAs4E,GAAQh4I,UAAUm6H,eAAiB,SAAwB/5H,EAAKwyF,GAC9Dr0F,KAAKmhE,KAAO,IAAI,IAAJ,CAAOt/D,EAAKwyF,GAAO,IAI/Br0F,KAAKmhE,KAAOnhE,KAAKmhE,KAAKqqC,KAAKxrG,KAAKgoC,GAAGknF,MAAMtpH,EAC3C,EAEA6zI,GAAQh4I,UAAUg6H,cAAgB,SAAuB55H,EAAKwyF,GAC5D,GAAIxyF,EAAIuK,GAAKvK,EAAIoD,EAWf,MAP2B,SAAvBjF,KAAKgoC,GAAGknF,MAAM99G,KAChB4mJ,GAASn2J,EAAIuK,EAAG,qBACgB,UAAvBpM,KAAKgoC,GAAGknF,MAAM99G,MACS,YAAvBpR,KAAKgoC,GAAGknF,MAAM99G,MACvB4mJ,GAASn2J,EAAIuK,GAAKvK,EAAIoD,EAAG,qCAE3BjF,KAAKwvH,IAAMxvH,KAAKgoC,GAAGknF,MAAMn3D,MAAMl2D,EAAIuK,EAAGvK,EAAIoD,IAG5CjF,KAAKwvH,IAAMxvH,KAAKgoC,GAAGknF,MAAM+iB,YAAYpwI,EAAKwyF,EAC5C,EAGAolD,GAAQh4I,UAAUkmC,OAAS,SAAgB6nF,GAIzC,OAHIA,EAAInqG,YACN2yI,GAASxoC,EAAInqG,WAAY,8BAEpBmqG,EAAIvlH,IAAIjK,KAAKmhE,MAAMm6D,MAC5B,EAGAme,GAAQh4I,UAAU0kC,KAAO,SAAc7qB,EAAK+4E,EAAKjpE,GAC/C,OAAOprB,KAAKgoC,GAAG7B,KAAK7qB,EAAKtb,KAAMq0F,EAAKjpE,EACtC,EAEAquH,GAAQh4I,UAAU2+C,OAAS,SAAgB9kC,EAAK9T,GAC9C,OAAOxH,KAAKgoC,GAAGoY,OAAO9kC,EAAK9T,EAAWxH,KACxC,EAEAy5I,GAAQh4I,UAAUw9F,QAAU,WAC1B,MAAO,eAAiBj/F,KAAKmhE,MAAQnhE,KAAKmhE,KAAK/5D,SAAS,GAAI,IACrD,UAAYpH,KAAKwvH,KAAOxvH,KAAKwvH,IAAIvwB,WAAa,IACvD,EAOA,IAAIg5D,GAAWpB,GAAUhyG,OAEzB,SAAS4N,GAAUrnC,EAASipE,GAC1B,GAAIjpE,aAAmBqnC,GACrB,OAAOrnC,EAELprB,KAAKi7I,WAAW7vH,EAASipE,KAG7B4jE,GAAS7sI,EAAQid,GAAKjd,EAAQrgB,EAAG,4BACjC/K,KAAKqoC,EAAI,IAAI,IAAJ,CAAOjd,EAAQid,EAAG,IAC3BroC,KAAK+K,EAAI,IAAI,IAAJ,CAAOqgB,EAAQrgB,EAAG,SACGlI,IAA1BuoB,EAAQod,cACVxoC,KAAKwoC,cAAgB,KAErBxoC,KAAKwoC,cAAgBpd,EAAQod,cACjC,CACA,IAAIhhC,GAAYirD,GAEhB,SAASyoF,KACPl7I,KAAKm7I,MAAQ,CACf,CAEA,SAASC,GAAU1/H,EAAKrY,GACtB,IAAIg4I,EAAU3/H,EAAIrY,EAAE83I,SACpB,KAAgB,IAAVE,GACJ,OAAOA,EAET,IAAIC,EAAqB,GAAVD,EAGf,GAAiB,IAAbC,GAAkBA,EAAW,EAC/B,OAAO,EAIT,IADA,IAAIruI,EAAM,EACDjC,EAAI,EAAG45D,EAAMvhE,EAAE83I,MAAOnwI,EAAIswI,EAAUtwI,IAAK45D,IAChD33D,IAAQ,EACRA,GAAOyO,EAAIkpD,GACX33D,KAAS,EAIX,QAAIA,GAAO,OAIX5J,EAAE83I,MAAQv2E,EACH33D,EACT,CAEA,SAASsuI,GAAU7/H,GAGjB,IAFA,IAAI1Q,EAAI,EACJ06C,EAAMhqC,EAAIzV,OAAS,GACfyV,EAAI1Q,MAAqB,IAAb0Q,EAAI1Q,EAAI,KAAcA,EAAI06C,GAC5C16C,IAEF,OAAU,IAANA,EACK0Q,EAEFA,EAAIlQ,MAAMR,EACnB,CA2DA,SAASwwI,GAAgB7qF,EAAKjL,GAC5B,GAAIA,EAAM,IACRiL,EAAIzqD,KAAKw/C,OADX,CAIA,IAAI+1F,EAAS,GAAK1tI,KAAK7L,IAAIwjD,GAAO33C,KAAK+3D,MAAQ,GAE/C,IADAnV,EAAIzqD,KAAc,IAATu1I,KACAA,GACP9qF,EAAIzqD,KAAMw/C,KAAS+1F,GAAU,GAAM,KAErC9qF,EAAIzqD,KAAKw/C,EANT,CAOF,CApEA+M,GAAUhxD,UAAUw5I,WAAa,SAAoB7wI,EAAMiqF,GACzDjqF,EAAOysJ,GAAUxqJ,QAAQjC,EAAMiqF,GAC/B,IAAIhxF,EAAI,IAAI63I,GACZ,GAAwB,KAApB9wI,EAAK/G,EAAE83I,SACT,OAAO,EAET,IAAIz1F,EAAM01F,GAAUhxI,EAAM/G,GAC1B,IAAY,IAARqiD,EACF,OAAO,EAET,GAAKA,EAAMriD,EAAE83I,QAAW/wI,EAAKnE,OAC3B,OAAO,EAET,GAAwB,IAApBmE,EAAK/G,EAAE83I,SACT,OAAO,EAET,IAAIxrC,EAAOyrC,GAAUhxI,EAAM/G,GAC3B,IAAa,IAATssG,EACF,OAAO,EAET,IAAItnE,EAAIj+B,EAAKoB,MAAMnI,EAAE83I,MAAOxrC,EAAOtsG,EAAE83I,OAErC,GADA93I,EAAE83I,OAASxrC,EACa,IAApBvlG,EAAK/G,EAAE83I,SACT,OAAO,EAET,IAAIO,EAAON,GAAUhxI,EAAM/G,GAC3B,IAAa,IAATq4I,EACF,OAAO,EAET,GAAItxI,EAAKnE,SAAWy1I,EAAOr4I,EAAE83I,MAC3B,OAAO,EAET,IAAIpwI,EAAIX,EAAKoB,MAAMnI,EAAE83I,MAAOO,EAAOr4I,EAAE83I,OACrC,GAAa,IAAT9yG,EAAE,GAAU,CACd,KAAW,IAAPA,EAAE,IAIJ,OAAO,EAHPA,EAAIA,EAAE78B,MAAM,EAKhB,CACA,GAAa,IAATT,EAAE,GAAU,CACd,KAAW,IAAPA,EAAE,IAIJ,OAAO,EAHPA,EAAIA,EAAES,MAAM,EAKhB,CAMA,OAJAxL,KAAKqoC,EAAI,IAAI,IAAJ,CAAOA,GAChBroC,KAAK+K,EAAI,IAAI,IAAJ,CAAOA,GAChB/K,KAAKwoC,cAAgB,MAEd,CACT,EAeAiqB,GAAUhxD,UAAUw+C,MAAQ,SAAeo0C,GACzC,IAAIhsD,EAAIroC,KAAKqoC,EAAEh8B,UACXtB,EAAI/K,KAAK+K,EAAEsB,UAYf,IATW,IAAPg8B,EAAE,KACJA,EAAI,CAAE,GAAIrmC,OAAOqmC,IAER,IAAPt9B,EAAE,KACJA,EAAI,CAAE,GAAI/I,OAAO+I,IAEnBs9B,EAAIkzG,GAAUlzG,GACdt9B,EAAIwwI,GAAUxwI,KAENA,EAAE,IAAe,IAAPA,EAAE,KAClBA,EAAIA,EAAES,MAAM,GAEd,IAAImlD,EAAM,CAAE,GACZ6qF,GAAgB7qF,EAAKtoB,EAAEpiC,SACvB0qD,EAAMA,EAAI3uD,OAAOqmC,IACbniC,KAAK,GACTs1I,GAAgB7qF,EAAK5lD,EAAE9E,QACvB,IAAI01I,EAAWhrF,EAAI3uD,OAAO+I,GACtB8hC,EAAM,CAAE,IAGZ,OAFA2uG,GAAgB3uG,EAAK8uG,EAAS11I,QAC9B4mC,EAAMA,EAAI7qC,OAAO25I,GACVkb,GAAUr/I,OAAOq1B,EAAKwnD,EAC/B,EAQA,IAAInzB,GAAyC,WAAc,MAAM,IAAI56D,MAAM,cAAiB,EACxF4xJ,GAAWrB,GAAUhyG,OAKzB,SAASwpE,GAAGjjG,GACV,KAAMprB,gBAAgBquH,IACpB,OAAO,IAAIA,GAAGjjG,GAGO,iBAAZA,IACT8sI,GAASj4J,OAAOwB,UAAU6B,eAAeC,KAAK4zJ,GAAU/rI,GACtD,iBAAmBA,GAErBA,EAAU+rI,GAAS/rI,IAIjBA,aAAmB+rI,GAAS7d,cAC9BluH,EAAU,CAAE8jG,MAAO9jG,IAErBprB,KAAKkvH,MAAQ9jG,EAAQ8jG,MAAMA,MAC3BlvH,KAAK4F,EAAI5F,KAAKkvH,MAAMtpH,EACpB5F,KAAK05I,GAAK15I,KAAK4F,EAAE8kG,MAAM,GACvB1qG,KAAKmF,EAAInF,KAAKkvH,MAAM/pH,EAGpBnF,KAAKmF,EAAIimB,EAAQ8jG,MAAM/pH,EACvBnF,KAAKmF,EAAEq+D,WAAWp4C,EAAQ8jG,MAAMtpH,EAAE26F,YAAc,GAGhDvgG,KAAK+1B,KAAO3K,EAAQ2K,MAAQ3K,EAAQ8jG,MAAMn5F,IAC5C,CACA,IAAIiS,GAAKqmF,GAETA,GAAG5sH,UAAUk4I,QAAU,SAAiBvuH,GACtC,OAAO,IAAIvpB,GAAI7B,KAAMorB,EACvB,EAEAijG,GAAG5sH,UAAUwmC,eAAiB,SAAwBk5B,EAAMkzB,GAC1D,OAAOxyF,GAAI+3I,YAAY55I,KAAMmhE,EAAMkzB,EACrC,EAEAg6B,GAAG5sH,UAAU0+C,cAAgB,SAAuBqvE,EAAKn7B,GACvD,OAAOxyF,GAAIg4I,WAAW75I,KAAMwvH,EAAKn7B,EACnC,EAEAg6B,GAAG5sH,UAAU05H,WAAa,SAAoB/vG,GACvCA,IACHA,EAAU,CAAC,GAcb,IAXA,IAAIi1C,EAAO,IAAIu3F,GAAS,CACtB7hI,KAAM/1B,KAAK+1B,KACX+jH,KAAM1uH,EAAQ0uH,KACdC,QAAS3uH,EAAQ2uH,SAAW,OAC5Bj4B,QAAS12F,EAAQ02F,SAAW5gD,GAAKlhE,KAAK+1B,KAAKikH,cAC3CC,WAAY7uH,EAAQ02F,SAAW12F,EAAQ6uH,YAAc,OACrDn4E,MAAO9hE,KAAK4F,EAAEyG,YAGZy3C,EAAQ9jD,KAAK4F,EAAEgrD,aACfspF,EAAMl6I,KAAK4F,EAAEoE,IAAI,IAAI,IAAJ,CAAO,MACnB,CACP,IAAIm3D,EAAO,IAAI,IAAJ,CAAOd,EAAKE,SAASzc,IAChC,KAAIqd,EAAKi9B,IAAI87C,GAAO,GAIpB,OADA/4E,EAAKy/B,MAAM,GACJ5gG,KAAKioC,eAAek5B,EAC7B,CACF,EAEAktD,GAAG5sH,UAAU04I,aAAe,SAAsB7+H,EAAK8+H,GACrD,IAAIl5G,EAA2B,EAAnB5lB,EAAIs1C,aAAmB5wD,KAAK4F,EAAE26F,YAG1C,OAFIr/D,EAAQ,IACV5lB,EAAMA,EAAIovF,MAAMxpE,KACbk5G,GAAa9+H,EAAI8iF,IAAIp+F,KAAK4F,IAAM,EAC5B0V,EAAItR,IAAIhK,KAAK4F,GAEb0V,CACX,EAEA+yG,GAAG5sH,UAAU0kC,KAAO,SAAc7qB,EAAKzZ,EAAKwyF,EAAKjpE,GAC5B,iBAARipE,IACTjpE,EAAUipE,EACVA,EAAM,MAEHjpE,IACHA,EAAU,CAAC,GAEbvpB,EAAM7B,KAAKioC,eAAepmC,EAAKwyF,GAC/B/4E,EAAMtb,KAAKm6I,aAAa,IAAI,IAAJ,CAAO7+H,EAAK,KAqBpC,IAlBA,IAAIwoC,EAAQ9jD,KAAK4F,EAAEgrD,aACfypF,EAAOx4I,EAAIi+C,aAAazzC,QAAQ,KAAMy3C,GAGtCge,EAAQxmD,EAAIjP,QAAQ,KAAMy3C,GAG1Buc,EAAO,IAAIu3F,GAAS,CACtB7hI,KAAM/1B,KAAK+1B,KACX+rF,QAASu4B,EACTv4E,MAAOA,EACPg4E,KAAM1uH,EAAQ0uH,KACdC,QAAS3uH,EAAQ2uH,SAAW,SAI1BO,EAAMt6I,KAAK4F,EAAEoE,IAAI,IAAI,IAAJ,CAAO,IAEnBuwI,EAAO,GAAKA,IAAQ,CAC3B,IAAI53I,EAAIyoB,EAAQzoB,EACdyoB,EAAQzoB,EAAE43I,GACV,IAAI,IAAJ,CAAOl6E,EAAKE,SAASvgE,KAAK4F,EAAEgrD,eAE9B,MADAjuD,EAAI3C,KAAKm6I,aAAax3I,GAAG,IACnB2pG,KAAK,IAAM,GAAK3pG,EAAEy7F,IAAIk8C,IAAQ,GAApC,CAGA,IAAIE,EAAKx6I,KAAKmF,EAAE8E,IAAItH,GACpB,IAAI63I,EAAGnH,aAAP,CAGA,IAAIoH,EAAMD,EAAGlf,OACTjzF,EAAIoyG,EAAIjvC,KAAKxrG,KAAK4F,GACtB,GAAkB,IAAdyiC,EAAEikE,KAAK,GAAX,CAGA,IAAIvhG,EAAIpI,EAAE4pG,KAAKvsG,KAAK4F,GAAGqE,IAAIo+B,EAAEp+B,IAAIpI,EAAIi+C,cAAcsiD,KAAK9mF,IAExD,GAAkB,KADlBvQ,EAAIA,EAAEygG,KAAKxrG,KAAK4F,IACV0mG,KAAK,GAAX,CAGA,IAAI9jE,GAAiBgyG,EAAGnI,OAAOnmC,QAAU,EAAI,IACT,IAAfuuC,EAAIr8C,IAAI/1D,GAAW,EAAI,GAQ5C,OALIjd,EAAQgd,WAAar9B,EAAEqzF,IAAIp+F,KAAK05I,IAAM,IACxC3uI,EAAI/K,KAAK4F,EAAEoE,IAAIe,GACfy9B,GAAiB,GAGZ,IAAIhhC,GAAU,CAAE6gC,EAAGA,EAAGt9B,EAAGA,EAAGy9B,cAAeA,GAXxC,CALA,CALA,CAJA,CA0BZ,CACF,EAEA6lF,GAAG5sH,UAAU2+C,OAAS,SAAgB9kC,EAAK68I,EAAat2J,EAAKwyF,GAC3D/4E,EAAMtb,KAAKm6I,aAAa,IAAI,IAAJ,CAAO7+H,EAAK,KACpCzZ,EAAM7B,KAAKmgD,cAAct+C,EAAKwyF,GAI9B,IAAIhsD,GAHJ8vH,EAAc,IAAI3wJ,GAAU2wJ,EAAa,QAGrB9vH,EAChBt9B,EAAIotJ,EAAYptJ,EACpB,GAAIs9B,EAAEikE,KAAK,GAAK,GAAKjkE,EAAE+1D,IAAIp+F,KAAK4F,IAAM,EACpC,OAAO,EACT,GAAImF,EAAEuhG,KAAK,GAAK,GAAKvhG,EAAEqzF,IAAIp+F,KAAK4F,IAAM,EACpC,OAAO,EAGT,IAGIvC,EAHAu9D,EAAO71D,EAAEwhG,KAAKvsG,KAAK4F,GACnBu1D,EAAKyF,EAAK32D,IAAIqR,GAAKkwF,KAAKxrG,KAAK4F,GAC7Bw1D,EAAKwF,EAAK32D,IAAIo+B,GAAGmjE,KAAKxrG,KAAK4F,GAG/B,OAAK5F,KAAKkvH,MAAMqhB,gBAWhBltI,EAAIrD,KAAKmF,EAAE4uI,QAAQ54E,EAAIt5D,EAAIqF,YAAak0D,IAClCi4E,cAMChwI,EAAE4wI,OAAO5rG,KAjBdhlC,EAAIrD,KAAKmF,EAAE2uI,OAAO34E,EAAIt5D,EAAIqF,YAAak0D,IACjCi4E,cAGkC,IAAjChwI,EAAEi4H,OAAO9vB,KAAKxrG,KAAK4F,GAAGw4F,IAAI/1D,EAcrC,EAEAgmF,GAAG5sH,UAAUi5I,cAAgB,SAASp/H,EAAK68I,EAAaluG,EAAGoqC,GACzD6jE,IAAU,EAAIjuG,KAAOA,EAAG,4CACxBkuG,EAAc,IAAI3wJ,GAAU2wJ,EAAa9jE,GAEzC,IAAIzuF,EAAI5F,KAAK4F,EACTpB,EAAI,IAAI,IAAJ,CAAO8W,GACX+sB,EAAI8vH,EAAY9vH,EAChBt9B,EAAIotJ,EAAYptJ,EAGhBsvD,EAAa,EAAJpQ,EACT0wF,EAAc1wF,GAAK,EACvB,GAAI5hB,EAAE+1D,IAAIp+F,KAAKkvH,MAAM7rH,EAAEmoG,KAAKxrG,KAAKkvH,MAAMtpH,KAAO,GAAK+0I,EACjD,MAAM,IAAIr0I,MAAM,wCAIhB+hC,EADEsyG,EACE36I,KAAKkvH,MAAMgjB,WAAW7pG,EAAEz+B,IAAI5J,KAAKkvH,MAAMtpH,GAAIy0D,GAE3Cr6D,KAAKkvH,MAAMgjB,WAAW7pG,EAAGgyB,GAE/B,IAAIugF,EAAOud,EAAY9vH,EAAEkkE,KAAK3mG,GAC1B2nD,EAAK3nD,EAAEoE,IAAIxF,GAAGyF,IAAI2wI,GAAMpvC,KAAK5lG,GAC7Bm/G,EAAKh6G,EAAEd,IAAI2wI,GAAMpvC,KAAK5lG,GAI1B,OAAO5F,KAAKmF,EAAE2uI,OAAOvmF,EAAIllB,EAAG08E,EAC9B,EAEAsJ,GAAG5sH,UAAUo5I,oBAAsB,SAASr2I,EAAG2zJ,EAAa98F,EAAGg5B,GAE7D,GAAkC,QADlC8jE,EAAc,IAAI3wJ,GAAU2wJ,EAAa9jE,IACzB7rD,cACd,OAAO2vH,EAAY3vH,cAErB,IAAK,IAAIx9B,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAC1B,IAAI8vI,EACJ,IACEA,EAAS96I,KAAK06I,cAAcl2I,EAAG2zJ,EAAantJ,EAG9C,CAFE,MAAOxG,GACP,QACF,CAEA,GAAIs2I,EAAO7tC,GAAG5xC,GACZ,OAAOrwD,CACX,CACA,MAAM,IAAI1E,MAAM,uCAClB,EAEA,IAgBI8xJ,GAhBa5B,IAAqB,SAAU52J,EAAQD,GAGxD,IAAIooC,EAAWpoC,EAEfooC,EAASta,QAAsC,QAC/Csa,EAASkE,MAAQ4qH,GACjB9uH,EAASm5B,KAAyC,WAAc,MAAM,IAAI56D,MAAM,cAAiB,EACjGyhC,EAASmnF,MAAQgoC,GACjBnvH,EAASwmF,OAAS4oC,GAGlBpvH,EAASC,GAAKA,GACdD,EAASynG,MAAmD,IAC5D,IAEsBxnG,GC16Ef,MCMD,GAAS,IAAIg3G,EDNI,qBCOvB,IAAIqZ,GAAS,KACb,SAASC,KAIL,OAHKD,KACDA,GAAS,IAAI,GAAG,cAEbA,EACX,CACO,MAAME,GACTnwJ,YAAYs/B,GACRu8G,GAAejkJ,KAAM,QAAS,aAC9BikJ,GAAejkJ,KAAM,aAAcsiJ,EAAQ56G,IACJ,KAAnC66G,EAAcviJ,KAAK0nC,aACnB,GAAO03G,mBAAmB,sBAAuB,aAAc,kBAEnE,MAAMzF,EAAU2e,KAAWrwH,eAAe25G,EAAS5hJ,KAAK0nC,aACxDu8G,GAAejkJ,KAAM,YAAa,KAAO25I,EAAQzyI,WAAU,EAAO,QAClE+8I,GAAejkJ,KAAM,sBAAuB,KAAO25I,EAAQzyI,WAAU,EAAM,QAC3E+8I,GAAejkJ,KAAM,iBAAiB,EAC1C,CACAw4J,UAAU3uJ,GACN,MAAM4uJ,EAAKH,KAAWn4G,cAAcyhG,EAAS5hJ,KAAKgH,YAC5CsvI,EAAKgiB,KAAWn4G,cAAcyhG,EAAS/3I,IAC7C,MAAO,KAAO4uJ,EAAGjpC,IAAI5lH,IAAI0sI,EAAG9mB,KAAK2iB,iBAAiB,MACtD,CACAumB,WAAW9xG,GACP,MAAM+yF,EAAU2e,KAAWrwH,eAAe25G,EAAS5hJ,KAAK0nC,aAClDixH,EAAc/W,EAASh7F,GACF,KAAvB+xG,EAAY1yJ,QACZ,GAAOm5I,mBAAmB,oBAAqB,SAAUx4F,GAE7D,MAAMp/C,EAAYmyI,EAAQxzG,KAAKwyH,EAAa,CAAEvwH,WAAW,IACzD,OAAO26G,EAAe,CAClBv6G,cAAehhC,EAAUghC,cACzBH,EAAGy6G,EAAW,KAAOt7I,EAAU6gC,EAAEjhC,SAAS,IAAK,IAC/C2D,EAAG+3I,EAAW,KAAOt7I,EAAUuD,EAAE3D,SAAS,IAAK,KAEvD,CACAwxJ,oBAAoBC,GAChB,MAAMlf,EAAU2e,KAAWrwH,eAAe25G,EAAS5hJ,KAAK0nC,aAClDoxH,EAAeR,KAAWn4G,cAAcyhG,EAASmX,GAAiBF,KACxE,OAAO/V,EAAW,KAAOnJ,EAAQhyG,OAAOmxH,EAAa5xJ,aAAaE,SAAS,IAAK,GACpF,CACAwsD,oBAAoBzzD,GAChB,SAAUA,IAASA,EAAM64J,cAC7B,EAEG,SAASxmG,GAAiB5L,EAAQp/C,GACrC,MAAMwT,EAAM+nI,EAAev7I,GACrByxJ,EAAK,CAAE5wH,EAAGu5G,EAAS5mI,EAAIqtB,GAAIt9B,EAAG62I,EAAS5mI,EAAIjQ,IACjD,MAAO,KAAOutJ,KAAW5d,cAAckH,EAASh7F,GAASqyG,EAAIj+I,EAAIwtB,eAAehxB,OAAO,OAAO,EAClG,CACO,SAASuhJ,GAAiBl3J,EAAKq3J,GAClC,MAAMp1G,EAAQ89F,EAAS//I,GACvB,GAAqB,KAAjBiiD,EAAM79C,OAAe,CACrB,MAAMkzJ,EAAa,IAAIZ,GAAWz0G,GAClC,OAAIo1G,EACO,KAAOZ,KAAWrwH,eAAe6b,GAAO58C,WAAU,EAAM,OAE5DiyJ,EAAWnyJ,SACtB,CACK,OAAqB,KAAjB88C,EAAM79C,OACPizJ,EACO5W,EAAQx+F,GAEZ,KAAOw0G,KAAWn4G,cAAc2D,GAAO58C,WAAU,EAAO,OAEzC,KAAjB48C,EAAM79C,OACNizJ,EAGE,KAAOZ,KAAWn4G,cAAc2D,GAAO58C,WAAU,EAAM,OAFnDo7I,EAAQx+F,GAIhB,GAAOs7F,mBAAmB,gCAAiC,MAAO,aAC7E,CChFO,MCWD,GAAS,IAAIJ,EDXI,sBCYhB,IAAIoa,GAQX,SAASC,GAAcl5J,GACnB,MAAc,OAAVA,EACO,KAEJ8G,GAAW9G,EACtB,CACA,SAASm5J,GAAan5J,GAClB,MAAc,OAAVA,EACO+qJ,GAEJ3H,EAAUn4I,KAAKjL,EAC1B,EAlBA,SAAWi5J,GACPA,EAAiBA,EAAyB,OAAI,GAAK,SACnDA,EAAiBA,EAA0B,QAAI,GAAK,UACpDA,EAAiBA,EAA0B,QAAI,GAAK,SACvD,CAJD,CAIGA,KAAqBA,GAAmB,CAAC,IAgB5C,MAAMG,GAAoB,CACtB,CAAEj4H,KAAM,QAASk4H,UAAW,GAAIC,SAAS,GACzC,CAAEn4H,KAAM,WAAYk4H,UAAW,GAAIC,SAAS,GAC5C,CAAEn4H,KAAM,WAAYk4H,UAAW,GAAIC,SAAS,GAC5C,CAAEn4H,KAAM,KAAMr7B,OAAQ,IACtB,CAAEq7B,KAAM,QAASk4H,UAAW,GAAIC,SAAS,GACzC,CAAEn4H,KAAM,SAEN,GAAyB,CAC3B3nB,SAAS,EAAMvP,MAAM,EAAM4F,UAAU,EAAMykJ,UAAU,EAAM3yF,OAAO,EAAM32D,IAAI,EAAMiG,MAAM,EAAMjR,OAAO,GAElG,SAASu5J,GAAe73J,GAE3B,OAAOoF,GAAWu7I,EAAakE,GAAUlE,EADvBuW,GAAiBl3J,GAC8B,IAAK,IAC1E,CACO,SAAS83J,GAAe/yG,EAAQp/C,GACnC,OAAOkyJ,GAAelnG,GAAiBovF,EAASh7F,GAASp/C,GAC7D,CACA,SAASoyJ,GAAaz5J,EAAOmhC,GACzB,MAAM58B,EAASy9I,EAAWoB,EAAUn4I,KAAKjL,GAAO2hJ,eAIhD,OAHIp9I,EAAOuB,OAAS,IAChB,GAAOm5I,mBAAmB,sBAAwB99G,EAAO,eAAiBA,EAAOnhC,GAE9EuE,CACX,CACA,SAASm1J,GAAaC,EAAMC,GACxB,MAAO,CACH3zJ,QAASa,GAAW6yJ,GACpBC,aAAcA,GAAe,IAAIttJ,KAAI,CAACutJ,EAAYxtJ,KACZ,KAA9B+1I,EAAcyX,IACd,GAAO5a,mBAAmB,iCAAkC,cAAc0a,KAAQttJ,KAAUwtJ,GAEzFA,EAAW72G,iBAG9B,CACO,SAAS82G,GAAc95J,GAC1B,GAAI8H,MAAM6D,QAAQ3L,GACd,OAAOA,EAAMsM,KAAI,CAACO,EAAKR,IACfvE,MAAM6D,QAAQkB,IACVA,EAAI/G,OAAS,GACb,GAAOm5I,mBAAmB,wDAAyD,SAAS5yI,KAAUQ,GAEnG6sJ,GAAa7sJ,EAAI,GAAIA,EAAI,KAE7B6sJ,GAAa7sJ,EAAI5G,QAAS4G,EAAI+sJ,eAG7C,MAAMr1J,EAASzE,OAAO8L,KAAK5L,GAAOsM,KAAKqtJ,IACnC,MAAMC,EAAc55J,EAAM25J,GAAM9sH,QAAO,CAACk1G,EAAO8X,KAC3C9X,EAAM8X,IAAc,EACb9X,IACR,CAAC,GACJ,OAAO2X,GAAaC,EAAM75J,OAAO8L,KAAKguJ,GAAa5sJ,OAAO,IAG9D,OADAzI,EAAOyI,MAAK,CAACC,EAAGtF,IAAOsF,EAAEhH,QAAQiH,cAAcvF,EAAE1B,WAC1C1B,CACX,CACA,SAASw1J,GAAiB/5J,GACtB,OAAO85J,GAAc95J,GAAOsM,KAAKO,GAAQ,CAACA,EAAI5G,QAAS4G,EAAI+sJ,cAC/D,CACA,SAASI,GAAkBxS,EAAangJ,GAIpC,GAA4B,MAAxBmgJ,EAAY8M,SAAkB,CAC9B,MAAMA,EAAWlR,EAAUn4I,KAAKu8I,EAAY8M,UACtCE,EAAepR,EAAUn4I,KAAKu8I,EAAYgN,cAAgB,GAC3DF,EAASxnD,GAAG0nD,IACb,GAAOvV,mBAAmB,6CAA8C,KAAM,CAC1EqV,WAAUE,gBAGtB,CACA,MAAMyF,EAAS,CACXR,GAAajS,EAAYhuI,SAAW,EAAG,WACvCigJ,GAAajS,EAAY7lF,OAAS,EAAG,SACrC83F,GAAajS,EAAYiN,sBAAwB,EAAG,wBACpDgF,GAAajS,EAAYgN,cAAgB,EAAG,gBAC5CiF,GAAajS,EAAY33I,UAAY,EAAG,YACpB,MAAlB23I,EAAYx8I,GAAclE,GAAW0gJ,EAAYx8I,IAAM,KACzDyuJ,GAAajS,EAAYxnJ,OAAS,EAAG,SACpCwnJ,EAAYv9I,MAAQ,KACpB8vJ,GAAiBvS,EAAY0S,YAAc,KAEhD,GAAI7yJ,EAAW,CACX,MAAMwT,EAAM+nI,EAAev7I,GAC3B4yJ,EAAOl0J,KAAK0zJ,GAAa5+I,EAAIwtB,cAAe,kBAC5C4xH,EAAOl0J,KAAKi8I,EAAWnnI,EAAIqtB,IAC3B+xH,EAAOl0J,KAAKi8I,EAAWnnI,EAAIjQ,GAC/B,CACA,OAAO23I,EAAU,CAAC,OAAQ,GAAW0X,IACzC,CACA,SAASE,GAAkB3S,EAAangJ,GACpC,MAAM4yJ,EAAS,CACXR,GAAajS,EAAYhuI,SAAW,EAAG,WACvCigJ,GAAajS,EAAY7lF,OAAS,EAAG,SACrC83F,GAAajS,EAAY8M,UAAY,EAAG,YACxCmF,GAAajS,EAAY33I,UAAY,EAAG,YACpB,MAAlB23I,EAAYx8I,GAAclE,GAAW0gJ,EAAYx8I,IAAM,KACzDyuJ,GAAajS,EAAYxnJ,OAAS,EAAG,SACpCwnJ,EAAYv9I,MAAQ,KACpB8vJ,GAAiBvS,EAAY0S,YAAc,KAEhD,GAAI7yJ,EAAW,CACX,MAAMwT,EAAM+nI,EAAev7I,GAC3B4yJ,EAAOl0J,KAAK0zJ,GAAa5+I,EAAIwtB,cAAe,kBAC5C4xH,EAAOl0J,KAAKi8I,EAAWnnI,EAAIqtB,IAC3B+xH,EAAOl0J,KAAKi8I,EAAWnnI,EAAIjQ,GAC/B,CACA,OAAO23I,EAAU,CAAC,OAAQ,GAAW0X,IACzC,CAsEO,SAAS/sF,GAAUs6E,EAAangJ,GAEnC,GAAwB,MAApBmgJ,EAAYv2I,MAAqC,IAArBu2I,EAAYv2I,KAIxC,OAH8B,MAA1Bu2I,EAAY0S,YACZ,GAAOjb,mBAAmB,kEAAmE,cAAeuI,GAxExH,SAAoBA,EAAangJ,GAC7B48I,GAAgBuD,EAAa,IAC7B,MAAMtlF,EAAM,GACZk3F,GAAkBvtJ,SAAQ,SAAUuuJ,GAChC,IAAIp6J,EAAQwnJ,EAAY4S,EAAUj5H,OAAS,GAC3C,MAAMlW,EAAU,CAAC,EACbmvI,EAAUd,UACVruI,EAAQ22H,OAAS,QAErB5hJ,EAAQyhJ,EAASU,EAAQniJ,EAAOirB,IAE5BmvI,EAAUt0J,QAAU9F,EAAM8F,SAAWs0J,EAAUt0J,QAAU9F,EAAM8F,OAAS,GACxE,GAAOm5I,mBAAmB,sBAAwBmb,EAAUj5H,KAAO,eAAiBi5H,EAAUj5H,KAAOnhC,GAGrGo6J,EAAUf,YACVr5J,EAAQgiJ,EAAWhiJ,GACfA,EAAM8F,OAASs0J,EAAUf,WACzB,GAAOpa,mBAAmB,sBAAwBmb,EAAUj5H,KAAO,eAAiBi5H,EAAUj5H,KAAOnhC,IAG7GkiE,EAAIn8D,KAAKo8I,EAAQniJ,GACrB,IACA,IAAIwZ,EAAU,EAmBd,GAlB2B,MAAvBguI,EAAYhuI,SAEZA,EAAUguI,EAAYhuI,QACG,iBAAd,GACP,GAAOylI,mBAAmB,8BAA+B,cAAeuI,IAGvEngJ,IAAck6I,EAAYl6I,IAAcA,EAAU3B,EAAI,KAE3D8T,EAAU5L,KAAK8iD,OAAOrpD,EAAU3B,EAAI,IAAM,IAG9B,IAAZ8T,IACA0oD,EAAIn8D,KAAKo8I,EAAQ3oI,IACjB0oD,EAAIn8D,KAAK,MACTm8D,EAAIn8D,KAAK,QAGRsB,EACD,OAAO,GAAW66D,GAItB,MAAMrnD,EAAM+nI,EAAev7I,GAE3B,IAAI3B,EAAI,GAAKmV,EAAIwtB,cAiBjB,OAhBgB,IAAZ7uB,GACA0oD,EAAIr8D,MACJq8D,EAAIr8D,MACJq8D,EAAIr8D,MACJH,GAAe,EAAV8T,EAAc,EAEfqB,EAAInV,EAAI,IAAMmV,EAAInV,IAAMA,GACxB,GAAOu5I,mBAAmB,2CAA4C,YAAa53I,IAGlFwT,EAAInV,IAAMA,GACf,GAAOu5I,mBAAmB,2CAA4C,YAAa53I,GAEvF66D,EAAIn8D,KAAKo8I,EAAQz8I,IACjBw8D,EAAIn8D,KAAKi8I,EAAWP,EAAS5mI,EAAIqtB,KACjCg6B,EAAIn8D,KAAKi8I,EAAWP,EAAS5mI,EAAIjQ,KAC1B,GAAWs3D,EACtB,CAOem4F,CAAW7S,EAAangJ,GAGnC,OAAQmgJ,EAAYv2I,MAChB,KAAK,EACD,OAAOkpJ,GAAkB3S,EAAangJ,GAC1C,KAAK,EACD,OAAO2yJ,GAAkBxS,EAAangJ,GAI9C,OAAO,GAAO64I,WAAW,iCAAiCsH,EAAYv2I,OAAQ4tI,EAAOzlD,OAAOonD,sBAAuB,CAC/Gz9G,UAAW,uBACXu3H,gBAAiB9S,EAAYv2I,MAErC,CACA,SAASspJ,GAAmBn9I,EAAI68I,EAAQ/sF,GACpC,IACI,MAAM9kC,EAAQ+wH,GAAac,EAAO,IAAI5qJ,WACtC,GAAc,IAAV+4B,GAAyB,IAAVA,EACf,MAAM,IAAIjiC,MAAM,aAEpBiX,EAAG1X,EAAI0iC,CAIX,CAFA,MAAOw2B,GACH,GAAOqgF,mBAAmB,oCAAqC,IAAKgb,EAAO,GAC/E,CACA78I,EAAG8qB,EAAIy6G,EAAWsX,EAAO,GAAI,IAC7B78I,EAAGxS,EAAI+3I,EAAWsX,EAAO,GAAI,IAC7B,IACI,MAAMxzG,EAAS8/F,GAAUr5E,EAAU9vD,IACnCA,EAAGnS,KAAOuuJ,GAAe/yG,EAAQ,CAAEve,EAAG9qB,EAAG8qB,EAAGt9B,EAAGwS,EAAGxS,EAAGy9B,cAAejrB,EAAG1X,GAE3D,CAAhB,MAAOk5D,GAAS,CACpB,CA8GO,SAASj2D,GAAM6xJ,GAClB,MAAM5/H,EAAU6mH,EAAS+Y,GAEzB,GAAI5/H,EAAQ,GAAK,IACb,OA5DR,SAAgB4/H,GACZ,MAAMhT,EAAc,GAAWgT,GACJ,IAAvBhT,EAAY1hJ,QAAuC,IAAvB0hJ,EAAY1hJ,QACxC,GAAOm5I,mBAAmB,0BAA2B,iBAAkBub,GAE3E,MAAMp9I,EAAK,CACPukD,MAAOw3F,GAAa3R,EAAY,IAAIn4I,WACpCilJ,SAAU6E,GAAa3R,EAAY,IACnC33I,SAAUspJ,GAAa3R,EAAY,IACnCx8I,GAAIkuJ,GAAc1R,EAAY,IAC9BxnJ,MAAOm5J,GAAa3R,EAAY,IAChCv9I,KAAMu9I,EAAY,GAClBhuI,QAAS,GAGb,GAA2B,IAAvBguI,EAAY1hJ,OACZ,OAAOsX,EAEX,IACIA,EAAG1X,EAAI09I,EAAUn4I,KAAKu8I,EAAY,IAAIn4I,UAK1C,CAHA,MAAOuvD,GAEH,OAAOxhD,CACX,CAGA,GAFAA,EAAG8qB,EAAIy6G,EAAW6E,EAAY,GAAI,IAClCpqI,EAAGxS,EAAI+3I,EAAW6E,EAAY,GAAI,IAC9BpE,EAAUn4I,KAAKmS,EAAG8qB,GAAG2mC,UAAYu0E,EAAUn4I,KAAKmS,EAAGxS,GAAGikE,SAEtDzxD,EAAG5D,QAAU4D,EAAG1X,EAChB0X,EAAG1X,EAAI,MAEN,CAED0X,EAAG5D,QAAU5L,KAAK8iD,OAAOtzC,EAAG1X,EAAI,IAAM,GAClC0X,EAAG5D,QAAU,IACb4D,EAAG5D,QAAU,GAEjB,IAAI6uB,EAAgBjrB,EAAG1X,EAAI,GAC3B,MAAMw8D,EAAMslF,EAAYn8I,MAAM,EAAG,GACd,IAAf+R,EAAG5D,UACH0oD,EAAIn8D,KAAKo8I,EAAQ/kI,EAAG5D,UACpB0oD,EAAIn8D,KAAK,MACTm8D,EAAIn8D,KAAK,MACTsiC,GAA8B,EAAbjrB,EAAG5D,QAAc,GAEtC,MAAMitC,EAAS8/F,GAAU,GAAWrkF,IACpC,IACI9kD,EAAGnS,KAAOuuJ,GAAe/yG,EAAQ,CAAEve,EAAGi6G,EAAQ/kI,EAAG8qB,GAAIt9B,EAAGu3I,EAAQ/kI,EAAGxS,GAAIy9B,cAAeA,GAE1E,CAAhB,MAAOu2B,GAAS,CAChBxhD,EAAGwY,KAAO2wH,GAAUiU,EACxB,CAEA,OADAp9I,EAAGnM,KAAO,KACHmM,CACX,CAKeq9I,CAAO7/H,GAGlB,OAAQA,EAAQ,IACZ,KAAK,EACD,OA1FZ,SAAuBA,GACnB,MAAM4sH,EAAc,GAAW5sH,EAAQvvB,MAAM,IAClB,IAAvBm8I,EAAY1hJ,QAAuC,KAAvB0hJ,EAAY1hJ,QACxC,GAAOm5I,mBAAmB,kDAAmD,UAAWkD,EAAQvnH,IAEpG,MAAMxd,EAAK,CACPnM,KAAM,EACNuI,QAAS2/I,GAAa3R,EAAY,IAAIn4I,WACtCsyD,MAAOw3F,GAAa3R,EAAY,IAAIn4I,WACpCilJ,SAAU6E,GAAa3R,EAAY,IACnC33I,SAAUspJ,GAAa3R,EAAY,IACnCx8I,GAAIkuJ,GAAc1R,EAAY,IAC9BxnJ,MAAOm5J,GAAa3R,EAAY,IAChCv9I,KAAMu9I,EAAY,GAClB0S,WAAYJ,GAActS,EAAY,KAG1C,OAA2B,IAAvBA,EAAY1hJ,SAGhBsX,EAAGwY,KAAO2wH,GAAU3rH,GACpB2/H,GAAmBn9I,EAAIoqI,EAAYn8I,MAAM,GAAI8uJ,KAHlC/8I,CAKf,CAmEmBs9I,CAAc9/H,GACzB,KAAK,EACD,OAxHZ,SAAuBA,GACnB,MAAM4sH,EAAc,GAAW5sH,EAAQvvB,MAAM,IAClB,IAAvBm8I,EAAY1hJ,QAAuC,KAAvB0hJ,EAAY1hJ,QACxC,GAAOm5I,mBAAmB,kDAAmD,UAAWkD,EAAQvnH,IAEpG,MAAM65H,EAAuB0E,GAAa3R,EAAY,IAChDgN,EAAe2E,GAAa3R,EAAY,IACxCpqI,EAAK,CACPnM,KAAM,EACNuI,QAAS2/I,GAAa3R,EAAY,IAAIn4I,WACtCsyD,MAAOw3F,GAAa3R,EAAY,IAAIn4I,WACpColJ,qBAAsBA,EACtBD,aAAcA,EACdF,SAAU,KACVzkJ,SAAUspJ,GAAa3R,EAAY,IACnCx8I,GAAIkuJ,GAAc1R,EAAY,IAC9BxnJ,MAAOm5J,GAAa3R,EAAY,IAChCv9I,KAAMu9I,EAAY,GAClB0S,WAAYJ,GAActS,EAAY,KAG1C,OAA2B,IAAvBA,EAAY1hJ,SAGhBsX,EAAGwY,KAAO2wH,GAAU3rH,GACpB2/H,GAAmBn9I,EAAIoqI,EAAYn8I,MAAM,GAAI2uJ,KAHlC58I,CAKf,CA6FmBu9I,CAAc//H,GAI7B,OAAO,GAAOslH,WAAW,iCAAiCtlH,EAAQ,KAAMikH,EAAOzlD,OAAOonD,sBAAuB,CACzGz9G,UAAW,mBACXu3H,gBAAiB1/H,EAAQ,IAEjC,CC9XA,IAAI,GAAwC,SAAUj3B,EAASC,EAAYC,EAAGC,GAE1E,OAAO,IAAKD,IAAMA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUlE,GAAS,IAAMmE,EAAKL,EAAUM,KAAKpE,GAAkC,CAAvB,MAAOqE,GAAKJ,EAAOI,EAAI,CAAE,CAC1F,SAASC,EAAStE,GAAS,IAAMmE,EAAKL,EAAiB,MAAE9D,GAAkC,CAAvB,MAAOqE,GAAKJ,EAAOI,EAAI,CAAE,CAC7F,SAASF,EAAKI,GAJlB,IAAevE,EAIauE,EAAOC,KAAOR,EAAQO,EAAOvE,QAJ1CA,EAIyDuE,EAAOvE,MAJhDA,aAAiB6D,EAAI7D,EAAQ,IAAI6D,GAAE,SAAUG,GAAWA,EAAQhE,EAAQ,KAIjByE,KAAKP,EAAWI,EAAW,CAC7GH,GAAML,EAAYA,EAAUY,MAAMf,EAASC,GAAc,KAAKQ,OAClE,GACJ,EAWA,MAAM,GAAS,IAAIy6I,ECpBI,mBDwBjB,GAAyB,CAC3BrlI,SAAS,EAAMvP,MAAM,EAAMgB,MAAM,EAAM4E,UAAU,EAAMykJ,UAAU,EAAM3yF,OAAO,EAAM32D,IAAI,EAAMhL,OAAO,EACrGiR,MAAM,EAAMipJ,YAAY,EACxB1F,cAAc,EAAMC,sBAAsB,EAC1CmG,YAAY,EACZC,iBAAiB,GAErB,SAASjF,GAAYkF,EAAUC,GAC3B,OAAO,GAAUl7J,UAAM,OAAQ,GAAQ,YACnC,MAAMshC,QAAa45H,EACG,iBAAX,GACP,GAAO9b,mBAAmB,8BAA+B,OAAQ99G,GAGrE,IACI,OAAOr6B,GAAWq6B,EAEN,CAAhB,MAAOy9B,GAAS,CACXk8F,GACD,GAAO5a,WAAW,sDAAuDrB,EAAOzlD,OAAOonD,sBAAuB,CAC1Gz9G,UAAW,gBAGnB,MAAM98B,QAAgB60J,EAASlF,YAAYz0H,GAI3C,OAHe,MAAXl7B,GACA,GAAOg5I,mBAAmB,kDAAmD,OAAQ99G,GAElFl7B,CACX,GACJ,CAEA,SAAS+0J,GAAiBF,EAAU96J,EAAOi7J,GACvC,OAAO,GAAUp7J,UAAM,OAAQ,GAAQ,YACnC,OAAIiI,MAAM6D,QAAQsvJ,SACDl3J,QAAQ6sC,IAAIqqH,EAAU3uJ,KAAI,CAAC2uJ,EAAW5uJ,IACxC2uJ,GAAiBF,EAAYhzJ,MAAM6D,QAAQ3L,GAAUA,EAAMqM,GAASrM,EAAMi7J,EAAU95H,MAAQ85H,MAGpF,YAAnBA,EAAUhqJ,WACG2kJ,GAAYkF,EAAU96J,GAEhB,UAAnBi7J,EAAUhqJ,WACG+pJ,GAAiBF,EAAU96J,EAAOi7J,EAAUrO,YAElC,UAAvBqO,EAAU5Q,SACLviJ,MAAM6D,QAAQ3L,SAMN+D,QAAQ6sC,IAAI5wC,EAAMsM,KAAK5G,GAAMs1J,GAAiBF,EAAUp1J,EAAGu1J,EAAUtO,kBALvE5oJ,QAAQE,OAAO,GAAOq7I,UAAU,0BAA2BT,EAAOzlD,OAAO+mD,iBAAkB,CAC9FC,SAAU,QACVpgJ,WAKLA,CACX,GACJ,CACA,SAASu1J,GAAoB9xH,EAAU+rH,EAAU5qF,GAC7C,OAAO,GAAU/kE,UAAM,OAAQ,GAAQ,YAEnC,IAAIq7J,EAAY,CAAC,EACbt2F,EAAK9+D,SAAW0pJ,EAASvrI,OAAOne,OAAS,GAAwC,iBAA3B8+D,EAAKA,EAAK9+D,OAAS,KACzEo1J,EAAY/W,GAAYv/E,EAAK/+D,QAGjC,GAAO66I,mBAAmB97E,EAAK9+D,OAAQ0pJ,EAASvrI,OAAOne,OAAQ,sBAE3D29B,EAAS/nB,OACLw/I,EAAUjwJ,KAGViwJ,EAAUjwJ,KAAO+4I,GAAkB,CAC/BmX,SAAUvF,GAAYnyH,EAAS/nB,OAAQw/I,EAAUjwJ,MACjDyQ,OAAQ+nB,EAAS/nB,OAAO5U,eACzBrC,MAAM22J,GAAU,GAAUv7J,UAAM,OAAQ,GAAQ,YAM/C,OALIiH,GAAWs0J,EAAM1/I,UAAY0/I,EAAMD,UACnC,GAAOjb,WAAW,8CAA+CrB,EAAOzlD,OAAOonD,sBAAuB,CAClGz9G,UAAW,mBAGZq4H,EAAMD,QACjB,MAGAD,EAAUjwJ,KAAOw4B,EAAS/nB,OAAO5U,aAGhCo0J,EAAUjwJ,OACfiwJ,EAAUjwJ,KAAO2qJ,GAAYnyH,EAAS2xH,SAAU8F,EAAUjwJ,OAO9D,MAAMowJ,QAAiBrX,GAAkB,CACrCp/E,KAAMo2F,GAAiBv3H,EAAS/nB,QAAU+nB,EAAS2xH,SAAUxwF,EAAM4qF,EAASvrI,QAC5Ehe,QAASw9B,EAAS63H,gBAClBJ,UAAYlX,GAAkBkX,IAAc,CAAC,IAG3CjxJ,EAAOw5B,EAAS83H,UAAUlJ,mBAAmB7C,EAAU6L,EAASz2F,MAChExnD,EAAK,CACPnT,KAAMA,EACNe,GAAIqwJ,EAASp1J,SAGXsiG,EAAK8yD,EAASH,UA2BpB,GAzBgB,MAAZ3yD,EAAG5mC,QACHvkD,EAAGukD,MAAQyhF,EAAUn4I,KAAKs9F,EAAG5mC,OAAOtyD,YAErB,MAAfk5F,EAAG14F,WACHuN,EAAGvN,SAAWuzI,EAAUn4I,KAAKs9F,EAAG14F,WAEjB,MAAf04F,EAAG+rD,WACHl3I,EAAGk3I,SAAWlR,EAAUn4I,KAAKs9F,EAAG+rD,WAEb,MAAnB/rD,EAAGisD,eACHp3I,EAAGo3I,aAAepR,EAAUn4I,KAAKs9F,EAAGisD,eAET,MAA3BjsD,EAAGksD,uBACHr3I,EAAGq3I,qBAAuBrR,EAAUn4I,KAAKs9F,EAAGksD,uBAEjC,MAAXlsD,EAAGt9F,OACHmS,EAAGnS,KAAOs9F,EAAGt9F,MAEF,MAAXs9F,EAAGt3F,OACHmM,EAAGnM,KAAOs3F,EAAGt3F,MAEI,MAAjBs3F,EAAG2xD,aACH98I,EAAG88I,WAAaJ,GAAcvxD,EAAG2xD,aAGlB,MAAf98I,EAAGvN,UAAoC,MAAhB2/I,EAAS5/I,IAAa,CAM7C,IAAI4rJ,EAAY,KAChB,MAAM73G,EAAQ89F,EAASx3I,GACvB,IAAK,IAAIY,EAAI,EAAGA,EAAI84C,EAAM79C,OAAQ+E,IAC9B2wJ,GAAa,EACT73G,EAAM94C,KACN2wJ,GAAa,IAGrBp+I,EAAGvN,SAAWuzI,EAAUn4I,KAAKukJ,EAAS5/I,KAAKnG,IAAI+xJ,EACnD,CAEA,GAAIjzD,EAAGvoG,MAAO,CACV,MAAMy7J,EAAUrY,EAAUn4I,KAAKs9F,EAAGvoG,OAC7By7J,EAAQ5sF,UAAa2gF,EAASR,SAC/B,GAAO9O,WAAW,2CAA4CrB,EAAOzlD,OAAOonD,sBAAuB,CAC/Fz9G,UAAW,kBACX/iC,MAAOk7J,EAAUl7J,QAGzBod,EAAGpd,MAAQy7J,CACf,CACIlzD,EAAGqyD,aACHx9I,EAAGw9I,WAAazW,GAAY57C,EAAGqyD,aAE/BryD,EAAGsyD,kBACHz9I,EAAGy9I,kBAAoBtyD,EAAGsyD,wBAGvBK,EAAUv5F,aACVu5F,EAAUrrJ,gBACVqrJ,EAAU5G,gBACV4G,EAAUjwJ,YACViwJ,EAAUl7J,aACVk7J,EAAUjqJ,YACViqJ,EAAUhB,kBACVgB,EAAU1G,oBACV0G,EAAUzG,4BACVyG,EAAUN,kBACVM,EAAUL,gBAGjB,MAAMa,EAAY57J,OAAO8L,KAAKsvJ,GAAW9tJ,QAAQ1L,GAA2B,MAAlBw5J,EAAUx5J,KAOpE,OANIg6J,EAAU51J,QACV,GAAOo6I,WAAW,mBAAmBwb,EAAUpvJ,KAAKlB,GAAM+3B,KAAKE,UAAUj4B,KAAImB,KAAK,OAAQsyI,EAAOzlD,OAAOonD,sBAAuB,CAC3Hz9G,UAAW,YACXm4H,UAAWQ,IAGZt+I,CACX,GACJ,CAoBA,SAASu+I,GAAgBl4H,EAAUrmB,GAC/B,MAAMw+I,EAAOx+I,EAAGw+I,KAAK71H,KAAK3oB,GAC1BA,EAAGw+I,KAAQC,GACAD,EAAKC,GAAep3J,MAAMq3J,IAC7BA,EAAQl+I,OAASk+I,EAAQ7+I,KAAK3Q,KAAKvK,IAC/B,IAAIg6J,EAAQtX,GAAS1iJ,GACjBm6G,EAAS,KACb,IACIA,EAASz4E,EAAS83H,UAAU3H,SAAS7xJ,EAE7B,CAAZ,MAAOsC,GAAK,CAqBZ,OAnBI63G,IACA6/C,EAAMn3F,KAAOs3C,EAAOt3C,KACpBm3F,EAAMxkJ,OAAS,CAACtN,EAAM6oJ,IACXrvH,EAAS83H,UAAUpI,eAAej3C,EAAOi1C,cAAelnJ,EAAM6oJ,GAEzEiJ,EAAMA,MAAQ7/C,EAAO/6E,KACrB46H,EAAMC,eAAiB9/C,EAAO70G,WAGlC00J,EAAMlH,eAAiB,IAAepxH,EAAS2xH,SAC/C2G,EAAMjxC,SAAW,IACNrnF,EAAS2xH,SAAStqC,SAASgxC,EAAQG,WAE9CF,EAAMG,eAAiB,IACZz4H,EAAS2xH,SAAS8G,eAAeJ,EAAQK,iBAEpDJ,EAAMK,sBAAwB,IACnBr4J,QAAQC,QAAQ83J,GAEpBC,CAAK,IAETD,IAGnB,CACA,SAASO,GAAU54H,EAAU+rH,EAAU8M,GACnC,MAAMC,EAAoB94H,EAAS/nB,QAAU+nB,EAAS2xH,SACtD,OAAO,YAAaxwF,GAChB,OAAO,GAAU/kE,UAAM,OAAQ,GAAQ,YAEnC,IAAIq1J,EACJ,GAAItwF,EAAK9+D,SAAW0pJ,EAASvrI,OAAOne,OAAS,GAAwC,iBAA3B8+D,EAAKA,EAAK9+D,OAAS,GAAkB,CAC3F,MAAMo1J,EAAY/W,GAAYv/E,EAAK/+D,OACT,MAAtBq1J,EAAUhG,WACVA,QAAiBgG,EAAUhG,iBAExBgG,EAAUhG,SACjBtwF,EAAK7+D,KAAKm1J,EACd,CAEkC,MAA9Bz3H,EAAS+4H,0BACH/4H,EAASg5H,UAAUvH,IAG7B,MAAM93I,QAAWm4I,GAAoB9xH,EAAU+rH,EAAU5qF,GACnDrgE,QAAeg4J,EAAiBn5J,KAAKga,EAAI83I,GAC/C,IACI,IAAIl1J,EAAQyjC,EAAS83H,UAAUjJ,qBAAqB9C,EAAUjrJ,GAI9D,OAHI+3J,GAA8C,IAA5B9M,EAAStrI,QAAQpe,SACnC9F,EAAQA,EAAM,IAEXA,CASX,CAPA,MAAO4+D,GAMH,MALIA,EAAMthD,OAASuhI,EAAOzlD,OAAOumD,iBAC7B/gF,EAAM34D,QAAUw9B,EAASx9B,QACzB24D,EAAMgG,KAAOA,EACbhG,EAAM4oF,YAAcpqI,GAElBwhD,CACV,CACJ,GACJ,CACJ,CAqBA,SAAS89F,GAAaj5H,EAAU+rH,EAAU8M,GACtC,OAAI9M,EAAST,SACFsN,GAAU54H,EAAU+rH,EAAU8M,GAtB7C,SAAmB74H,EAAU+rH,GACzB,OAAO,YAAa5qF,GAChB,OAAO,GAAU/kE,UAAM,OAAQ,GAAQ,YAC9B4jC,EAAS/nB,QACV,GAAOwkI,WAAW,0CAA2CrB,EAAOzlD,OAAOonD,sBAAuB,CAC9Fz9G,UAAW,oBAIe,MAA9BU,EAAS+4H,0BACH/4H,EAASg5H,aAEnB,MAAME,QAAkBpH,GAAoB9xH,EAAU+rH,EAAU5qF,GAC1DxnD,QAAWqmB,EAAS/nB,OAAO4kC,gBAAgBq8G,GAGjD,OADAhB,GAAgBl4H,EAAUrmB,GACnBA,CACX,GACJ,CACJ,CAKWw/I,CAAUn5H,EAAU+rH,EAC/B,CACA,SAASqN,GAAYzvJ,GACjB,OAAIA,EAAOnH,SAA6B,MAAjBmH,EAAO0lJ,QAA2C,IAAzB1lJ,EAAO0lJ,OAAOhtJ,QAGtDsH,EAAOnH,SAAW,KAAO,KAAOmH,EAAO0lJ,OAAS1lJ,EAAO0lJ,OAAOxmJ,KAAKunJ,GACnE/rJ,MAAM6D,QAAQkoJ,GACPA,EAAMtnJ,KAAK,KAEfsnJ,IACRtnJ,KAAK,KAAO,IAPJ,GAQf,CACA,MAAMuwJ,GACF70J,YAAYs5D,EAAKn0D,GACb02I,GAAejkJ,KAAM,MAAO0hE,GAC5BuiF,GAAejkJ,KAAM,SAAUuN,GAC/BvN,KAAKykE,WAAa,EACtB,CACAqwF,YAAYr/C,EAAUynD,GAClBl9J,KAAKykE,WAAWv+D,KAAK,CAAEuvG,SAAUA,EAAUynD,KAAMA,GACrD,CACAlI,eAAev/C,GACX,IAAI9wG,GAAO,EACX3E,KAAKykE,WAAazkE,KAAKykE,WAAWl3D,QAAQ2xD,MAClCv6D,GAAQu6D,EAAKu2C,WAAaA,IAG9B9wG,GAAO,EACA,KAEf,CACAw4J,qBACIn9J,KAAKykE,WAAa,EACtB,CACAI,YACI,OAAO7kE,KAAKykE,WAAWh4D,KAAKzB,GAAMA,EAAEyqG,UACxC,CACA2nD,gBACI,OAAOp9J,KAAKykE,WAAWx+D,MAC3B,CACAo3J,IAAIt4F,GACA,MAAMq4F,EAAgBp9J,KAAKo9J,gBAU3B,OATAp9J,KAAKykE,WAAazkE,KAAKykE,WAAWl3D,QAAQ2xD,IACtC,MAAMo+F,EAAWv4F,EAAKv5D,QAMtB,OAJA2uC,YAAW,KACP+kB,EAAKu2C,SAAS5wG,MAAM7E,KAAMs9J,EAAS,GACpC,IAEMp+F,EAAS,IAAC,IAEhBk+F,CACX,CACAG,aAAarB,GACb,CAEAsB,QAAQtB,GACJ,MAAO,CAACA,EACZ,EAEJ,MAAMuB,WAA0BR,GAC5B70J,cACIg9C,MAAM,QAAS,KACnB,EAOJ,MAAMs4G,WAA6BT,GAC/B70J,YAAYhC,EAASu3J,EAAmBhO,EAAUsD,GAC9C,MAAM1lJ,EAAS,CACXnH,QAASA,GAEb,IAAI4tJ,EAAQ2J,EAAkB7L,cAAcnC,GACxCsD,GACIe,IAAUf,EAAO,IACjB,GAAO7T,mBAAmB,iBAAkB,SAAU6T,GAE1D1lJ,EAAO0lJ,OAASA,EAAOznJ,SAGvB+B,EAAO0lJ,OAAS,CAACe,GAErB5uG,MAAM43G,GAAYzvJ,GAASA,GAC3B02I,GAAejkJ,KAAM,UAAWoG,GAChC69I,GAAejkJ,KAAM,YAAa29J,GAClC1Z,GAAejkJ,KAAM,WAAY2vJ,EACrC,CACA4N,aAAarB,GACT92G,MAAMm4G,aAAarB,GACnBA,EAAMA,MAAQl8J,KAAK2vJ,SAASruH,KAC5B46H,EAAMC,eAAiBn8J,KAAK2vJ,SAAS5tE,SACrCm6E,EAAMxkJ,OAAS,CAACtN,EAAM6oJ,IACXjzJ,KAAK07J,UAAUpI,eAAetzJ,KAAK2vJ,SAAUvlJ,EAAM6oJ,GAE9D,IACIiJ,EAAMn3F,KAAO/kE,KAAK07J,UAAUpI,eAAetzJ,KAAK2vJ,SAAUuM,EAAM9xJ,KAAM8xJ,EAAMjJ,OAKhF,CAHA,MAAOl0F,GACHm9F,EAAMn3F,KAAO,KACbm3F,EAAM0B,YAAc7+F,CACxB,CACJ,CACAy+F,QAAQtB,GACJ,MAAM3iE,EAASsrD,GAAkBqX,EAAMn3F,MACvC,GAAIw0B,EAAOtzF,OACP,MAAMszF,EAAO,GAAGx6B,MAEpB,MAAMgG,GAAQm3F,EAAMn3F,MAAQ,IAAIv5D,QAEhC,OADAu5D,EAAK7+D,KAAKg2J,GACHn3F,CACX,EAOJ,MAAM84F,WAA6BZ,GAC/B70J,YAAYhC,EAASu3J,GACjBv4G,MAAM,IAAK,CAAEh/C,QAASA,IACtB69I,GAAejkJ,KAAM,UAAWoG,GAChC69I,GAAejkJ,KAAM,YAAa29J,EACtC,CACAJ,aAAarB,GACT92G,MAAMm4G,aAAarB,GACnB,IACI,MAAM7/C,EAASr8G,KAAK07J,UAAU3H,SAASmI,GACvCA,EAAMA,MAAQ7/C,EAAO/6E,KACrB46H,EAAMC,eAAiB9/C,EAAO70G,UAC9B00J,EAAMxkJ,OAAS,CAACtN,EAAM6oJ,IACXjzJ,KAAK07J,UAAUpI,eAAej3C,EAAOi1C,cAAelnJ,EAAM6oJ,GAErEiJ,EAAMn3F,KAAOs3C,EAAOt3C,IAIxB,CAFA,MAAOhG,GAEP,CACJ,EAEG,MAAM++F,GACT11J,YAAY21J,EAAeJ,EAAmBjB,GAG1CzY,GAAejkJ,KAAM,YAAakkJ,cAAsB,eAAtBA,CAAsCyZ,IAChD,MAApBjB,GACAzY,GAAejkJ,KAAM,WAAY,MACjCikJ,GAAejkJ,KAAM,SAAU,OAE1Bo1J,GAAO4I,SAAStB,IACrBzY,GAAejkJ,KAAM,WAAY08J,EAAiBnH,UAAY,MAC9DtR,GAAejkJ,KAAM,SAAU08J,IAE1BnI,GAAS0J,WAAWvB,IACzBzY,GAAejkJ,KAAM,WAAY08J,GACjCzY,GAAejkJ,KAAM,SAAU,OAG/B,GAAOo/I,mBAAmB,6BAA8B,mBAAoBsd,GAEhFzY,GAAejkJ,KAAM,aAAc,CAAC,GACpCikJ,GAAejkJ,KAAM,cAAe,CAAC,GACrCikJ,GAAejkJ,KAAM,YAAa,CAAC,GACnCikJ,GAAejkJ,KAAM,sBAAuB,CAAC,GAC7CikJ,GAAejkJ,KAAM,UAAW,CAAC,GACjC,CACI,MAAMk+J,EAAgB,CAAC,EACvBj+J,OAAO8L,KAAK/L,KAAK07J,UAAU39I,QAAQ/R,SAASmwJ,IACxC,MAAMD,EAAQl8J,KAAK07J,UAAU39I,OAAOo+I,GACpClY,GAAejkJ,KAAKm+J,QAAShC,GAAgB,IAAIp3F,KACtC,CACH3+D,QAASpG,KAAKoG,QACd6sJ,OAAQjzJ,KAAK07J,UAAU1I,mBAAmBkJ,EAAOn3F,OAGpDm5F,EAAchC,EAAM56H,QACrB48H,EAAchC,EAAM56H,MAAQ,IAEhC48H,EAAchC,EAAM56H,MAAMp7B,KAAKi2J,EAAe,IAElDl8J,OAAO8L,KAAKmyJ,GAAelyJ,SAASs1B,IAChC,MAAM68H,EAAUD,EAAc58H,GACP,IAAnB68H,EAAQl4J,OACRg+I,GAAejkJ,KAAKm+J,QAAS78H,EAAMthC,KAAKm+J,QAAQA,EAAQ,KAGxD,GAAO/gD,KAAK,2BAA2B97E,MAAS68H,EAAQzxJ,KAAK,SACjE,GAER,CAOA,GANAu3I,GAAejkJ,KAAM,iBAAkB,CAAC,GACxCikJ,GAAejkJ,KAAM,gBAAiB,CAAC,GAClB,MAAjB+9J,GACA,GAAO3e,mBAAmB,uCAAwC,gBAAiB2e,GAEvF9Z,GAAejkJ,KAAM,UAAW+9J,GAC5B/9J,KAAKu1J,SACLtR,GAAejkJ,KAAM,kBAAmB+1J,GAAY/1J,KAAKu1J,SAAUwI,SAGnE,IACI9Z,GAAejkJ,KAAM,kBAAmBkE,QAAQC,QAAQ8C,GAAW82J,IAOvE,CALA,MAAOh/F,GAEH,GAAOshF,WAAW,2DAA4DrB,EAAOzlD,OAAOonD,sBAAuB,CAC/Gz9G,UAAW,gBAEnB,CAGJljC,KAAKy7J,gBAAgB16G,OAAOv8C,IAAD,IAC3B,MAAMimJ,EAAc,CAAC,EACf2T,EAAmB,CAAC,EAC1Bn+J,OAAO8L,KAAK/L,KAAK07J,UAAUrK,WAAWrlJ,SAASxE,IAC3C,MAAMmoJ,EAAW3vJ,KAAK07J,UAAUrK,UAAU7pJ,GAG1C,GAAI42J,EAAiB52J,GACjB,GAAO41G,KAAK,2BAA2B95E,KAAKE,UAAUh8B,UAD1D,CAIA42J,EAAiB52J,IAAa,EAG9B,CACI,MAAM85B,EAAOquH,EAASruH,KACjBmpH,EAAY,IAAInpH,OACjBmpH,EAAY,IAAInpH,KAAU,IAE9BmpH,EAAY,IAAInpH,KAAQp7B,KAAKsB,EACjC,CACuB,MAAnBxH,KAAKwH,IACLy8I,GAAejkJ,KAAMwH,EAAWq1J,GAAa78J,KAAM2vJ,GAAU,IAKhC,MAA7B3vJ,KAAKqxJ,UAAU7pJ,IACfy8I,GAAejkJ,KAAKqxJ,UAAW7pJ,EAAWq1J,GAAa78J,KAAM2vJ,GAAU,IAEzC,MAA9B3vJ,KAAKq+J,WAAW72J,IAChBy8I,GAAejkJ,KAAKq+J,WAAY72J,EAAWg1J,GAAUx8J,KAAM2vJ,GAAU,IAE9B,MAAvC3vJ,KAAK01J,oBAAoBluJ,IACzBy8I,GAAejkJ,KAAK01J,oBAAqBluJ,EA/WzD,SAAuBo8B,EAAU+rH,GAC7B,OAAO,YAAa5qF,GAChB,OAAO2wF,GAAoB9xH,EAAU+rH,EAAU5qF,EACnD,CACJ,CA2WoEu5F,CAAct+J,KAAM2vJ,IAEzC,MAA/B3vJ,KAAKw5C,YAAYhyC,IACjBy8I,GAAejkJ,KAAKw5C,YAAahyC,EA7WjD,SAAuBo8B,EAAU+rH,GAC7B,MAAM+M,EAAoB94H,EAAS/nB,QAAU+nB,EAAS2xH,SACtD,OAAO,YAAaxwF,GAChB,OAAO,GAAU/kE,UAAM,OAAQ,GAAQ,YAC9B08J,GACD,GAAOrc,WAAW,wCAAyCrB,EAAOzlD,OAAOonD,sBAAuB,CAC5Fz9G,UAAW,gBAGnB,MAAM3lB,QAAWm4I,GAAoB9xH,EAAU+rH,EAAU5qF,GACzD,aAAa23F,EAAiBljH,YAAYj8B,EAC9C,GACJ,CACJ,CAgW4DghJ,CAAcv+J,KAAM2vJ,GA3BpE,CA4BA,IAEJ1vJ,OAAO8L,KAAK0+I,GAAaz+I,SAASs1B,IAE9B,MAAMhsB,EAAam1I,EAAYnpH,GAC/B,GAAIhsB,EAAWrP,OAAS,EACpB,OAGJq7B,EAAOA,EAAKrG,UAAU,GACtB,MAAMzzB,EAAY8N,EAAW,GAE7B,IACsB,MAAdtV,KAAKshC,IACL2iH,GAAejkJ,KAAMshC,EAAMthC,KAAKwH,GAG5B,CAAZ,MAAOhD,GAAK,CACgB,MAAxBxE,KAAKqxJ,UAAU/vH,IACf2iH,GAAejkJ,KAAKqxJ,UAAW/vH,EAAMthC,KAAKqxJ,UAAU7pJ,IAE3B,MAAzBxH,KAAKq+J,WAAW/8H,IAChB2iH,GAAejkJ,KAAKq+J,WAAY/8H,EAAMthC,KAAKq+J,WAAW72J,IAEpB,MAAlCxH,KAAK01J,oBAAoBp0H,IACzB2iH,GAAejkJ,KAAK01J,oBAAqBp0H,EAAMthC,KAAK01J,oBAAoBluJ,IAE9C,MAA1BxH,KAAKw5C,YAAYlY,IACjB2iH,GAAejkJ,KAAKw5C,YAAalY,EAAMthC,KAAKw5C,YAAYhyC,GAC5D,GAER,CACAosD,0BAA0B+zF,GACtB,OAAOD,GAAmBC,EAC9B,CACA/zF,oBAAoB+pG,GAChB,OAAI3M,GAAUwN,YAAYb,GACfA,EAEJ,IAAI3M,GAAU2M,EACzB,CAEAc,WACI,OAAOz+J,KAAK48J,WAChB,CACAA,UAAUvH,GAuBN,OAtBKr1J,KAAK0+J,mBAEF1+J,KAAK28J,kBACL38J,KAAK0+J,iBAAmB1+J,KAAK28J,kBAAkBZ,OAAOn3J,MAAK,IAChD5E,OAOXA,KAAK0+J,iBAAmB1+J,KAAKu1J,SAASoJ,QAAQ3+J,KAAKoG,QAASivJ,GAAUzwJ,MAAM6Y,IAC3D,OAATA,GACA,GAAO4iI,WAAW,wBAAyBrB,EAAOzlD,OAAOonD,sBAAuB,CAC5EzlG,gBAAiBl7C,KAAKoG,QACtB88B,UAAW,gBAGZljC,SAIZA,KAAK0+J,gBAChB,CAKAE,SAASvD,GACAr7J,KAAK6b,QACN,GAAOwkI,WAAW,0CAA2CrB,EAAOzlD,OAAOonD,sBAAuB,CAAEz9G,UAAW,8BAEnH,MAAM3lB,EAAK+mI,GAAY+W,GAAa,CAAC,GAQrC,MAPA,CAAC,OAAQ,MAAMrvJ,SAAQ,SAAUnK,GACd,MAAX0b,EAAG1b,IAGP,GAAOw+I,WAAW,mBAAqBx+I,EAAKm9I,EAAOzlD,OAAOonD,sBAAuB,CAAEz9G,UAAWrhC,GAClG,IACA0b,EAAGpS,GAAKnL,KAAKy7J,gBACNz7J,KAAKy+J,WAAW75J,MAAK,IACjB5E,KAAK6b,OAAO4kC,gBAAgBljC,IAE3C,CAEAg5I,QAAQmG,GAC8B,iBAAvB,IACPA,EAAmB,IAAItG,GAAWsG,EAAkB18J,KAAKu1J,WAE7D,MAAM3xH,EAAW,IAAK5jC,KAAgB,YAAEA,KAAKoG,QAASpG,KAAK07J,UAAWgB,GAItE,OAHI18J,KAAK28J,mBACL1Y,GAAergH,EAAU,oBAAqB5jC,KAAK28J,mBAEhD/4H,CACX,CAEAi7H,OAAOd,GACH,OAAO,IAAK/9J,KAAgB,YAAE+9J,EAAe/9J,KAAK07J,UAAW17J,KAAK6b,QAAU7b,KAAKu1J,SACrF,CACA3hG,iBAAiBzzD,GACb,OAAOwwJ,GAAQmO,UAAU3+J,EAC7B,CACA4+J,uBAAuBC,GAEnB,OAAIh/J,KAAKi/J,eAAeD,EAAat9F,KAC1B1hE,KAAKi/J,eAAeD,EAAat9F,KAErCs9F,CACX,CACAE,iBAAiBnK,GACb,GAA2B,iBAAhB,EAA0B,CAGjC,GAAkB,UAAdA,EACA,OAAO/0J,KAAK++J,uBAAuB,IAAItB,IAG3C,GAAkB,UAAd1I,EACA,OAAO/0J,KAAK++J,uBAAuB,IAAI9B,GAAa,QAAS,OAGjE,GAAkB,MAAdlI,EACA,OAAO/0J,KAAK++J,uBAAuB,IAAIlB,GAAqB79J,KAAKoG,QAASpG,KAAK07J,YAGnF,MAAM/L,EAAW3vJ,KAAK07J,UAAU/J,SAASoD,GACzC,OAAO/0J,KAAK++J,uBAAuB,IAAIrB,GAAqB19J,KAAKoG,QAASpG,KAAK07J,UAAW/L,GAC9F,CAEA,GAAIoF,EAAU9B,QAAU8B,EAAU9B,OAAOhtJ,OAAS,EAAG,CAEjD,IACI,MAAM+tJ,EAAQe,EAAU9B,OAAO,GAC/B,GAAuB,iBAAZ,EACP,MAAM,IAAI3sJ,MAAM,iBAEpB,MAAMqpJ,EAAW3vJ,KAAK07J,UAAU/J,SAASqC,GACzC,OAAOh0J,KAAK++J,uBAAuB,IAAIrB,GAAqB19J,KAAKoG,QAASpG,KAAK07J,UAAW/L,EAAUoF,EAAU9B,QAElG,CAAhB,MAAOl0F,GAAS,CAEhB,MAAMxxD,EAAS,CACXnH,QAASpG,KAAKoG,QACd6sJ,OAAQ8B,EAAU9B,QAEtB,OAAOjzJ,KAAK++J,uBAAuB,IAAI9B,GAAaD,GAAYzvJ,GAASA,GAC7E,CACA,OAAOvN,KAAK++J,uBAAuB,IAAIlB,GAAqB79J,KAAKoG,QAASpG,KAAK07J,WACnF,CACAyD,oBAAoBH,GAChB,GAAqC,IAAjCA,EAAa5B,gBAAuB,QAC7Bp9J,KAAKi/J,eAAeD,EAAat9F,KAExC,MAAMoD,EAAO9kE,KAAKo/J,cAAcJ,EAAat9F,KACzCoD,GAAQk6F,EAAazxJ,SACrBvN,KAAKu1J,SAAS3wF,IAAIo6F,EAAazxJ,OAAQu3D,UAChC9kE,KAAKo/J,cAAcJ,EAAat9F,KAE/C,CACJ,CAGA29F,WAAWL,EAAc98J,EAAKuzG,GAC1B,MAAMymD,EAAQtX,GAAS1iJ,GAavB,OAZAg6J,EAAMlH,eAAiB,KACdv/C,IAGLupD,EAAahK,eAAev/C,GAC5Bz1G,KAAKm/J,oBAAoBH,GAAa,EAE1C9C,EAAMjxC,SAAW,IAAejrH,KAAKu1J,SAAStqC,SAAS/oH,EAAIk6J,WAC3DF,EAAMG,eAAiB,IAAer8J,KAAKu1J,SAAS8G,eAAen6J,EAAIo6J,iBACvEJ,EAAMK,sBAAwB,IAAev8J,KAAKu1J,SAASgH,sBAAsBr6J,EAAIo6J,iBAErF0C,EAAazB,aAAarB,GACnBA,CACX,CACAoD,kBAAkBN,EAAcvpD,EAAUynD,GAQtC,GAPKl9J,KAAKu1J,UACN,GAAOlV,WAAW,wDAAyDrB,EAAOzlD,OAAOonD,sBAAuB,CAAEz9G,UAAW,SAEjI87H,EAAalK,YAAYr/C,EAAUynD,GAEnCl9J,KAAKi/J,eAAeD,EAAat9F,KAAOs9F,GAEnCh/J,KAAKo/J,cAAcJ,EAAat9F,KAAM,CACvC,MAAM69F,EAAer9J,IACjB,IAAIg6J,EAAQl8J,KAAKq/J,WAAWL,EAAc98J,EAAKuzG,GAE/C,GAAyB,MAArBymD,EAAM0B,YACN,IACI,MAAM74F,EAAOi6F,EAAaxB,QAAQtB,GAClCl8J,KAAK8kE,KAAKk6F,EAAazxJ,UAAWw3D,EAItC,CAFA,MAAOhG,GACHm9F,EAAM0B,YAAc7+F,EAAMA,KAC9B,CAGuB,MAAvBigG,EAAazxJ,QACbvN,KAAK8kE,KAAK,QAASo3F,GAGE,MAArBA,EAAM0B,aACN59J,KAAK8kE,KAAK,QAASo3F,EAAM0B,YAAa1B,EAC1C,EAEJl8J,KAAKo/J,cAAcJ,EAAat9F,KAAO69F,EAEZ,MAAvBP,EAAazxJ,QACbvN,KAAKu1J,SAAS7wF,GAAGs6F,EAAazxJ,OAAQgyJ,EAE9C,CACJ,CACAC,YAAYtD,EAAOuD,EAAsBC,GACrC,MAAMV,EAAeh/J,KAAKk/J,iBAAiBhD,GACrC3uJ,EAAS+2I,GAAY0a,EAAazxJ,QAWxC,MAVsC,iBAA3B,GAAuC,EAAYkyJ,EAAsB,KACjE,MAAXC,GACA,GAAOtgB,mBAAmB,wCAAyC,UAAWsgB,GAElFnyJ,EAAO6uJ,UAAYqD,IAGnBlyJ,EAAOoyJ,UAAsC,MAAxBF,EAAgCA,EAAuB,EAC5ElyJ,EAAOmyJ,QAAuB,MAAXA,EAAmBA,EAAU,UAE7C1/J,KAAKu1J,SAASqK,QAAQryJ,GAAQ3I,MAAMwY,GAChCA,EAAK3Q,KAAKvK,GAAQlC,KAAKq/J,WAAWL,EAAc98J,EAAK,SAEpE,CACAwiE,GAAGw3F,EAAOzmD,GAEN,OADAz1G,KAAKs/J,kBAAkBt/J,KAAKk/J,iBAAiBhD,GAAQzmD,GAAU,GACxDz1G,IACX,CACAk9J,KAAKhB,EAAOzmD,GAER,OADAz1G,KAAKs/J,kBAAkBt/J,KAAKk/J,iBAAiBhD,GAAQzmD,GAAU,GACxDz1G,IACX,CACA8kE,KAAKiwF,KAAchwF,GACf,IAAK/kE,KAAKu1J,SACN,OAAO,EAEX,MAAMyJ,EAAeh/J,KAAKk/J,iBAAiBnK,GACrCrwJ,EAAUs6J,EAAa3B,IAAIt4F,GAAQ,EAGzC,OADA/kE,KAAKm/J,oBAAoBH,GAClBt6J,CACX,CACA04J,cAAcrI,GACV,OAAK/0J,KAAKu1J,SAGO,MAAbR,EACO90J,OAAO8L,KAAK/L,KAAKi/J,gBAAgBjyH,QAAO,CAACk1G,EAAOrgJ,IAC5CqgJ,EAAQliJ,KAAKi/J,eAAep9J,GAAKu7J,iBACzC,GAEAp9J,KAAKk/J,iBAAiBnK,GAAWqI,gBAP7B,CAQf,CACAv4F,UAAUkwF,GACN,IAAK/0J,KAAKu1J,SACN,MAAO,GAEX,GAAiB,MAAbR,EAAmB,CACnB,MAAMrwJ,EAAS,GACf,IAAK,IAAIg9D,KAAO1hE,KAAKi/J,eACjBj/J,KAAKi/J,eAAev9F,GAAKmD,YAAY74D,SAASypG,IAC1C/wG,EAAOwB,KAAKuvG,EAAS,IAG7B,OAAO/wG,CACX,CACA,OAAO1E,KAAKk/J,iBAAiBnK,GAAWlwF,WAC5C,CACAs4F,mBAAmBpI,GACf,IAAK/0J,KAAKu1J,SACN,OAAOv1J,KAEX,GAAiB,MAAb+0J,EAAmB,CACnB,IAAK,MAAMrzF,KAAO1hE,KAAKi/J,eAAgB,CACnC,MAAMD,EAAeh/J,KAAKi/J,eAAev9F,GACzCs9F,EAAa7B,qBACbn9J,KAAKm/J,oBAAoBH,EAC7B,CACA,OAAOh/J,IACX,CAEA,MAAMg/J,EAAeh/J,KAAKk/J,iBAAiBnK,GAG3C,OAFAiK,EAAa7B,qBACbn9J,KAAKm/J,oBAAoBH,GAClBh/J,IACX,CACA4kE,IAAImwF,EAAWt/C,GACX,IAAKz1G,KAAKu1J,SACN,OAAOv1J,KAEX,MAAMg/J,EAAeh/J,KAAKk/J,iBAAiBnK,GAG3C,OAFAiK,EAAahK,eAAev/C,GAC5Bz1G,KAAKm/J,oBAAoBH,GAClBh/J,IACX,CACAg1J,eAAeD,EAAWt/C,GACtB,OAAOz1G,KAAK4kE,IAAImwF,EAAWt/C,EAC/B,EAEG,MAAMoqD,WAAiB/B,IAEvB,MAAMgC,GACT13J,YAAYu1J,EAAmBoC,EAAUlkJ,GACrC,IAAImkJ,EAAc,KAEdA,EADsB,iBAAf,EACOD,EAETpe,EAAQoe,GACCzd,EAAQyd,GAEjBA,GAAyC,iBAArBA,EAAe,OAE1BA,EAASzwF,OAIT,IAGkB,OAAhC0wF,EAAY/kI,UAAU,EAAG,KACzB+kI,EAAc,KAAOA,KAGpB,EAAYA,IAAiBA,EAAY/5J,OAAS,IACnD,GAAOm5I,mBAAmB,mBAAoB,WAAY2gB,GAG1DlkJ,IAAWu5I,GAAO4I,SAASniJ,IAC3B,GAAOujI,mBAAmB,iBAAkB,SAAUvjI,GAE1DooI,GAAejkJ,KAAM,WAAYggK,GACjC/b,GAAejkJ,KAAM,YAAakkJ,cAAsB,eAAtBA,CAAsCyZ,IACxE1Z,GAAejkJ,KAAM,SAAU6b,GAAU,KAC7C,CAEAokJ,wBAAwBl7F,GACpB,IAAIxnD,EAAK,CAAC,EAEV,GAAIwnD,EAAK9+D,SAAWjG,KAAK07J,UAAUtK,OAAOhtI,OAAOne,OAAS,GAAwC,iBAA3B8+D,EAAKA,EAAK9+D,OAAS,GAAkB,CACxGsX,EAAK+mI,GAAYv/E,EAAK/+D,OACtB,IAAK,MAAMnE,KAAO0b,EACd,IAAK,GAAuB1b,GACxB,MAAM,IAAIyE,MAAM,gCAAkCzE,EAG9D,CAwBA,MAtBA,CAAC,OAAQ,OAAQ,MAAMmK,SAASnK,IACb,MAAX0b,EAAG1b,IAGP,GAAOw+I,WAAW,mBAAqBx+I,EAAKm9I,EAAOzlD,OAAOonD,sBAAuB,CAAEz9G,UAAWrhC,GAAM,IAEpG0b,EAAGpd,QACWojJ,EAAUn4I,KAAKmS,EAAGpd,OACrB6uE,UAAahvE,KAAK07J,UAAUtK,OAAOjC,SAC1C,GAAO9O,WAAW,gDAAiDrB,EAAOzlD,OAAOonD,sBAAuB,CACpGz9G,UAAW,kBACX/iC,MAAOod,EAAGpd,SAKtB,GAAO0gJ,mBAAmB97E,EAAK9+D,OAAQjG,KAAK07J,UAAUtK,OAAOhtI,OAAOne,OAAQ,4BAE5EsX,EAAGnT,KAAOk4I,EAAQtgJ,EAAO,CACrBhC,KAAK+/J,SACL//J,KAAK07J,UAAUvJ,aAAaptF,MAEzBxnD,CACX,CACA6zI,UAAUrsF,GACN,OAAO,GAAU/kE,UAAM,OAAQ,GAAQ,YACnC,IAAIq7J,EAAY,CAAC,EAEbt2F,EAAK9+D,SAAWjG,KAAK07J,UAAUtK,OAAOhtI,OAAOne,OAAS,IACtDo1J,EAAYt2F,EAAK/+D,OAGrB,GAAO66I,mBAAmB97E,EAAK9+D,OAAQjG,KAAK07J,UAAUtK,OAAOhtI,OAAOne,OAAQ,4BAE5E,MAAMojC,QAAe8xH,GAAiBn7J,KAAK6b,OAAQkpD,EAAM/kE,KAAK07J,UAAUtK,OAAOhtI,QAC/EilB,EAAOnjC,KAAKm1J,GAEZ,MAAM6E,EAAalgK,KAAKigK,wBAAwB52H,GAE1C9rB,QAAWvd,KAAK6b,OAAO4kC,gBAAgBy/G,GACvC95J,EAAU89I,GAAUlkJ,KAAKoI,YAAa,qBAA5B87I,CAAkD3mI,GAC5DqmB,EAAWsgH,GAAUlkJ,KAAKoI,YAAa,cAA5B87I,CAA2C99I,EAASpG,KAAK07J,UAAW17J,KAAK6b,QAI1F,OAFAigJ,GAAgBl4H,EAAUrmB,GAC1B0mI,GAAergH,EAAU,oBAAqBrmB,GACvCqmB,CACX,GACJ,CACAi7H,OAAOz4J,GACH,OAAQpG,KAAgB,YAAEmgK,YAAY/5J,EAASpG,KAAK07J,UAAW17J,KAAK6b,OACxE,CACA06I,QAAQ16I,GACJ,OAAO,IAAK7b,KAAgB,YAAEA,KAAK07J,UAAW17J,KAAK+/J,SAAUlkJ,EACjE,CACA+3C,oBAAoBwsG,EAAgBvkJ,GACV,MAAlBukJ,GACA,GAAO/f,WAAW,0BAA2BrB,EAAOzlD,OAAOwnD,iBAAkB,CAAER,SAAU,mBAE7D,iBAArB,IACP6f,EAAiB98H,KAAKx6B,MAAMs3J,IAEhC,MAAMlP,EAAMkP,EAAelP,IAC3B,IAAI6O,EAAW,KAOf,OANIK,EAAeL,SACfA,EAAWK,EAAeL,SAErBK,EAAeC,KAAOD,EAAeC,IAAIN,WAC9CA,EAAWK,EAAeC,IAAIN,UAE3B,IAAI//J,KAAKkxJ,EAAK6O,EAAUlkJ,EACnC,CACA+3C,oBAAoB+pG,GAChB,OAAOkC,GAASS,aAAa3C,EACjC,CACA/pG,0BAA0Br2C,GACtB,OAAOmqI,GAAmBnqI,EAC9B,CACAq2C,mBAAmBxtD,EAASu3J,EAAmB9hJ,GAC3C,OAAO,IAAIgkJ,GAASz5J,EAASu3J,EAAmB9hJ,EACpD,EE7/BJ,MAAM,GAAS,IAAImjI,EAAO,GAEpB,GAAoB,CAAC,EACrB,GAAOuE,EAAUn4I,KAAK,GACtB,GAAcm4I,EAAUn4I,MAAM,GACpC,SAAS,GAAW7D,EAASs4I,EAAO38G,EAAW/iC,GAC3C,MAAMkpC,EAAS,CAAEw2G,MAAOA,EAAO38G,UAAWA,GAI1C,YAHcrgC,IAAV1C,IACAkpC,EAAOlpC,MAAQA,GAEZ,GAAOkgJ,WAAW94I,EAASy3I,EAAOzlD,OAAOqmD,cAAev2G,EACnE,CAEA,IAAI61D,GAAQ,IACZ,KAAOA,GAAMj5F,OAAS,KAClBi5F,IAASA,GAGb,SAASqhE,GAAcC,GACnB,GAA0B,iBAAf,EACP,IACIA,EAAWjd,EAAUn4I,KAAKo1J,GAAUhxJ,UAE5B,CAAZ,MAAOhL,GAAK,CAEhB,MAA0B,iBAAf,GAA2Bg8J,GAAY,GAAKA,GAAY,OAASA,EAAW,GAC3E,IAAMthE,GAAMjkE,UAAU,EAAGulI,GAE9B,GAAOphB,mBAAmB,uBAAwB,WAAYohB,EACzE,CACO,SAASC,GAAYtgK,EAAOqgK,GACf,MAAZA,IACAA,EAAW,GAEf,MAAME,EAAaH,GAAcC,GAG3B5iE,GADNz9F,EAAQojJ,EAAUn4I,KAAKjL,IACA6gC,GAAG,IACtB48D,IACAz9F,EAAQA,EAAM8J,IAAI,KAEtB,IAAI02J,EAAWxgK,EAAMG,IAAIogK,GAAYt5J,WACrC,KAAOu5J,EAAS16J,OAASy6J,EAAWz6J,OAAS,GACzC06J,EAAW,IAAMA,EAGrBA,EAAWA,EAASh3J,MAAM,wBAAwB,GAClD,MAAMi3J,EAAQzgK,EAAM+J,IAAIw2J,GAAYt5J,WAUpC,OARIjH,EADsB,IAAtBugK,EAAWz6J,OACH26J,EAGAA,EAAQ,IAAMD,EAEtB/iE,IACAz9F,EAAQ,IAAMA,GAEXA,CACX,CACO,SAAS0gK,GAAW1gK,EAAOqgK,GACd,MAAZA,IACAA,EAAW,GAEf,MAAME,EAAaH,GAAcC,GACV,iBAAZ,GAAyBrgK,EAAMwJ,MAAM,gBAC5C,GAAOy1I,mBAAmB,wBAAyB,QAASj/I,GAGhE,MAAMy9F,EAAsC,MAA1Bz9F,EAAM86B,UAAU,EAAG,GACjC2iE,IACAz9F,EAAQA,EAAM86B,UAAU,IAEd,MAAV96B,GACA,GAAOi/I,mBAAmB,gBAAiB,QAASj/I,GAGxD,MAAM6uJ,EAAQ7uJ,EAAMwM,MAAM,KACtBqiJ,EAAM/oJ,OAAS,GACf,GAAOm5I,mBAAmB,0BAA2B,QAASj/I,GAElE,IAAIygK,EAAQ5R,EAAM,GAAI2R,EAAW3R,EAAM,GAQvC,IAPK4R,IACDA,EAAQ,KAEPD,IACDA,EAAW,KAG0B,MAAlCA,EAASA,EAAS16J,OAAS,IAC9B06J,EAAWA,EAAS1lI,UAAU,EAAG0lI,EAAS16J,OAAS,GAWvD,IARI06J,EAAS16J,OAASy6J,EAAWz6J,OAAS,GACtC,GAAW,wCAAyC,YAAa,cAGpD,KAAb06J,IACAA,EAAW,KAGRA,EAAS16J,OAASy6J,EAAWz6J,OAAS,GACzC06J,GAAY,IAEhB,MAAMG,EAAavd,EAAUn4I,KAAKw1J,GAC5BG,EAAgBxd,EAAUn4I,KAAKu1J,GACrC,IAAIK,EAAOF,EAAW72J,IAAIy2J,GAAa92J,IAAIm3J,GAI3C,OAHInjE,IACAojE,EAAMA,EAAI/2J,IAAI,KAEX+2J,CACX,CACO,MAAMC,GACT74J,YAAYo7I,EAAkBkI,EAAQhrD,EAAO8/D,GACrChd,IAAqB,IACrB,GAAOnD,WAAW,2DAA4DrB,EAAOzlD,OAAOonD,sBAAuB,CAC/Gz9G,UAAW,oBAGnBljC,KAAK0rJ,OAASA,EACd1rJ,KAAK0gG,MAAQA,EACb1gG,KAAKwgK,SAAWA,EAChBxgK,KAAKshC,MAAQoqH,EAAS,GAAK,KAAO,QAAUxjJ,OAAOw4F,GAAS,IAAMx4F,OAAOs4J,GACzExgK,KAAKkhK,YAAcX,GAAcC,GACjCvgK,OAAOizD,OAAOlzD,KAClB,CACA4zD,YAAYzzD,GACR,GAAIA,aAAiB8gK,GACjB,OAAO9gK,EAEY,iBAAZ,IACPA,EAAQ,YAAYA,KAExB,IAAIurJ,GAAS,EACThrD,EAAQ,IACR8/D,EAAW,GACf,GAAuB,iBAAZ,EACP,GAAc,UAAVrgK,QAGC,GAAc,WAAVA,EACLurJ,GAAS,MAER,CACD,MAAM/hJ,EAAQxJ,EAAMwJ,MAAM,gCACrBA,GACD,GAAOy1I,mBAAmB,uBAAwB,SAAUj/I,GAEhEurJ,EAAuB,MAAb/hJ,EAAM,GAChB+2F,EAAQpxF,SAAS3F,EAAM,IACvB62J,EAAWlxJ,SAAS3F,EAAM,GAC9B,MAEC,GAAIxJ,EAAO,CACZ,MAAMo7J,EAAQ,CAAC15J,EAAKuP,EAAMo4I,IACJ,MAAdrpJ,EAAM0B,GACC2nJ,UAECrpJ,EAAM0B,KAAUuP,GACxB,GAAOguI,mBAAmB,yBAA2Bv9I,EAAM,QAAUuP,EAAO,IAAK,UAAYvP,EAAK1B,EAAM0B,IAErG1B,EAAM0B,IAEjB6pJ,EAAS6P,EAAM,SAAU,UAAW7P,GACpChrD,EAAQ66D,EAAM,QAAS,SAAU76D,GACjC8/D,EAAWjF,EAAM,WAAY,SAAUiF,EAC3C,CAOA,OANI9/D,EAAQ,GACR,GAAO0+C,mBAAmB,gDAAiD,eAAgB1+C,GAE3F8/D,EAAW,IACX,GAAOphB,mBAAmB,4CAA6C,kBAAmBohB,GAEvF,IAAIS,GAAY,GAAmBvV,EAAQhrD,EAAO8/D,EAC7D,EAEG,MAAMW,GACT/4J,YAAYo7I,EAAkBryF,EAAKhxD,EAAO4hF,GAClCyhE,IAAqB,IACrB,GAAOnD,WAAW,2DAA4DrB,EAAOzlD,OAAOonD,sBAAuB,CAC/Gz9G,UAAW,oBAGnBljC,KAAK+hF,OAASA,EACd/hF,KAAKyjJ,KAAOtyF,EACZnxD,KAAKi5B,OAAS94B,EACdH,KAAKohK,gBAAiB,EACtBnhK,OAAOizD,OAAOlzD,KAClB,CACAqhK,aAAax3J,GACL7J,KAAK+hF,OAAOzgD,OAASz3B,EAAMk4E,OAAOzgD,MAClC,GAAO89G,mBAAmB,gDAAiD,QAASv1I,EAE5F,CACAy3J,UAAUz3J,GACN7J,KAAKqhK,aAAax3J,GAClB,MAAMuD,EAAIyzJ,GAAW7gK,KAAKi5B,OAAQj5B,KAAK+hF,OAAOy+E,UACxC14J,EAAI+4J,GAAWh3J,EAAMovB,OAAQpvB,EAAMk4E,OAAOy+E,UAChD,OAAOW,GAAYI,UAAUn0J,EAAExD,IAAI9B,GAAI9H,KAAK+hF,OAAOy+E,SAAUxgK,KAAK+hF,OACtE,CACAy/E,UAAU33J,GACN7J,KAAKqhK,aAAax3J,GAClB,MAAMuD,EAAIyzJ,GAAW7gK,KAAKi5B,OAAQj5B,KAAK+hF,OAAOy+E,UACxC14J,EAAI+4J,GAAWh3J,EAAMovB,OAAQpvB,EAAMk4E,OAAOy+E,UAChD,OAAOW,GAAYI,UAAUn0J,EAAEpD,IAAIlC,GAAI9H,KAAK+hF,OAAOy+E,SAAUxgK,KAAK+hF,OACtE,CACA0/E,UAAU53J,GACN7J,KAAKqhK,aAAax3J,GAClB,MAAMuD,EAAIyzJ,GAAW7gK,KAAKi5B,OAAQj5B,KAAK+hF,OAAOy+E,UACxC14J,EAAI+4J,GAAWh3J,EAAMovB,OAAQpvB,EAAMk4E,OAAOy+E,UAChD,OAAOW,GAAYI,UAAUn0J,EAAEnD,IAAInC,GAAGoC,IAAIlK,KAAK+hF,OAAOm/E,aAAclhK,KAAK+hF,OAAOy+E,SAAUxgK,KAAK+hF,OACnG,CACA2/E,UAAU73J,GACN7J,KAAKqhK,aAAax3J,GAClB,MAAMuD,EAAIyzJ,GAAW7gK,KAAKi5B,OAAQj5B,KAAK+hF,OAAOy+E,UACxC14J,EAAI+4J,GAAWh3J,EAAMovB,OAAQpvB,EAAMk4E,OAAOy+E,UAChD,OAAOW,GAAYI,UAAUn0J,EAAEnD,IAAIjK,KAAK+hF,OAAOm/E,aAAah3J,IAAIpC,GAAI9H,KAAK+hF,OAAOy+E,SAAUxgK,KAAK+hF,OACnG,CACAlxB,QACI,MAAMm+F,EAAQhvJ,KAAKoH,WAAWuF,MAAM,KACf,IAAjBqiJ,EAAM/oJ,QACN+oJ,EAAM9oJ,KAAK,KAEf,IAAIxB,EAASy8J,GAAY/1J,KAAK4jJ,EAAM,GAAIhvJ,KAAK+hF,QAC7C,MAAM4/E,GAAe3S,EAAM,GAAGrlJ,MAAM,UAIpC,OAHI3J,KAAKqkI,cAAgBs9B,IACrBj9J,EAASA,EAAO88J,UAAUtyB,GAAI0yB,SAASl9J,EAAOq9E,UAE3Cr9E,CACX,CACAm9J,UACI,MAAM7S,EAAQhvJ,KAAKoH,WAAWuF,MAAM,KACf,IAAjBqiJ,EAAM/oJ,QACN+oJ,EAAM9oJ,KAAK,KAEf,IAAIxB,EAASy8J,GAAY/1J,KAAK4jJ,EAAM,GAAIhvJ,KAAK+hF,QAC7C,MAAM4/E,GAAe3S,EAAM,GAAGrlJ,MAAM,UAIpC,OAHK3J,KAAKqkI,cAAgBs9B,IACtBj9J,EAASA,EAAO48J,UAAUpyB,GAAI0yB,SAASl9J,EAAOq9E,UAE3Cr9E,CACX,CAEAwxB,MAAMsqI,GACc,MAAZA,IACAA,EAAW,GAGf,MAAMxR,EAAQhvJ,KAAKoH,WAAWuF,MAAM,KAOpC,GANqB,IAAjBqiJ,EAAM/oJ,QACN+oJ,EAAM9oJ,KAAK,MAEXs6J,EAAW,GAAKA,EAAW,IAAOA,EAAW,IAC7C,GAAOphB,mBAAmB,wBAAyB,WAAYohB,GAE/DxR,EAAM,GAAG/oJ,QAAUu6J,EACnB,OAAOxgK,KAEX,MAAM8hK,EAASX,GAAY/1J,KAAK,IAAM8zF,GAAMjkE,UAAU,EAAGulI,GAAWxgK,KAAK+hF,QACnEggF,EAAOC,GAAKJ,SAAS5hK,KAAK+hF,QAChC,OAAO/hF,KAAKyhK,UAAUK,GAAQR,UAAUS,GAAMlxG,QAAQ6wG,UAAUI,EACpE,CACA9yF,SACI,MAAwB,QAAhBhvE,KAAKi5B,QAAoC,MAAhBj5B,KAAKi5B,MAC1C,CACAorG,aACI,MAA2B,MAAnBrkI,KAAKi5B,OAAO,EACxB,CACA7xB,WAAa,OAAOpH,KAAKi5B,MAAQ,CACjC6oH,YAAYphD,GACR,OAAa,MAATA,EACO1gG,KAAKyjJ,MAEZ/iD,EAAQ,GACR,GAAO0+C,mBAAmB,qBAAsB,QAAS1+C,GAGtDoiD,EADKS,EAAUn4I,KAAKpL,KAAKyjJ,MAAM5iD,SAAS7gG,KAAK+hF,OAAO2e,OAAOD,OAAOC,GAAOohD,cACzDphD,EAAQ,GACnC,CACAuhE,gBAAkB,OAAOC,WAAWliK,KAAKoH,WAAa,CACtDw6J,SAAS7/E,GACL,OAAOo/E,GAAY13J,WAAWzJ,KAAKi5B,OAAQ8oD,EAC/C,CACAnuB,iBAAiBzzD,EAAOqgK,EAAUz+E,GAY9B,OAVc,MAAVA,GAA8B,MAAZy+E,GtChRvB,SAAwBrgK,GAC3B,OAAiB,MAATA,IAAmBojJ,EAAU4e,YAAYhiK,IACzB,iBAAZ,GAAyBA,EAAQ,GAAO,GAC5B,iBAAZ,KAA0BA,EAAMwJ,MAAM,eAC9C,EAAYxJ,IACQ,iBAAZ,GACRwhJ,EAAQxhJ,GAChB,CsCyQmDiiK,CAAe5B,KACtDz+E,EAASy+E,EACTA,EAAW,MAEC,MAAZA,IACAA,EAAW,GAED,MAAVz+E,IACAA,EAAS,SAENo/E,GAAY13J,WAAWg3J,GAAYtgK,EAAOqgK,GAAWS,GAAY71J,KAAK22E,GACjF,CACAnuB,kBAAkBzzD,EAAO4hF,GACP,MAAVA,IACAA,EAAS,SAEb,MAAMsgF,EAAcpB,GAAY71J,KAAK22E,GAC/B03E,EAAUoH,GAAW1gK,EAAOkiK,EAAY7B,WACzC6B,EAAY3W,QAAU+N,EAAQz4H,GAAG,KAClC,GAAW,oCAAqC,WAAY,QAAS7gC,GAEzE,IAAIgxD,EAAM,KACNkxG,EAAY3W,OACZv6F,EAAMsoG,EAAQh5D,OAAO4hE,EAAY3hE,OAAOohD,eAGxC3wF,EAAMsoG,EAAQ3X,cACd3wF,EAAM2xF,EAAW3xF,EAAKkxG,EAAY3hE,MAAQ,IAE9C,MAAM4hE,EAAU7B,GAAYhH,EAAS4I,EAAY7B,UACjD,OAAO,IAAIW,GAAY,GAAmBhwG,EAAKmxG,EAASD,EAC5D,CACAzuG,iBAAiBzzD,EAAO4hF,GACN,MAAVA,IACAA,EAAS,SAEb,MAAMsgF,EAAcpB,GAAY71J,KAAK22E,GACrC,GAAI6/D,EAASzhJ,GAAO8F,OAASo8J,EAAY3hE,MAAQ,EAC7C,MAAM,IAAIp6F,MAAM,YAEpB,IAAImzJ,EAAUlW,EAAUn4I,KAAKjL,GACzBkiK,EAAY3W,SACZ+N,EAAUA,EAAQ54D,SAASwhE,EAAY3hE,QAE3C,MAAMvvC,EAAMsoG,EAAQh5D,QAAQ4hE,EAAY3W,OAAS,EAAI,GAAK2W,EAAY3hE,OAAOohD,cACvEwgB,EAAU7B,GAAYhH,EAAS4I,EAAY7B,UACjD,OAAO,IAAIW,GAAY,GAAmBhwG,EAAKmxG,EAASD,EAC5D,CACAzuG,YAAYzzD,EAAO4hF,GACf,GAAuB,iBAAZ,EACP,OAAOo/E,GAAY13J,WAAWtJ,EAAO4hF,GAEzC,GAAI4/D,EAAQxhJ,GACR,OAAOghK,GAAYzxE,UAAUvvF,EAAO4hF,GAExC,IACI,OAAOo/E,GAAYI,UAAUphK,EAAO,EAAG4hF,EAO3C,CALA,MAAOhjB,GAEH,GAAIA,EAAMthD,OAASuhI,EAAOzlD,OAAO+mD,iBAC7B,MAAMvhF,CAEd,CACA,OAAO,GAAOqgF,mBAAmB,4BAA6B,QAASj/I,EAC3E,CACAyzD,qBAAqBzzD,GACjB,SAAUA,IAASA,EAAMihK,eAC7B,EAEJ,MAAMlyB,GAAMiyB,GAAY/1J,KAAK,GACvB42J,GAAOb,GAAY/1J,KAAK,OCnWvB,SAASm3J,GAAYh7J,GAIxB,MAHyB,iBAAd,IACPA,EAAUyhJ,GAAYzhJ,IAEnBm/I,GAAU1kJ,EAAO,CACpBgnJ,GANqB,+BAOrBA,GAAY9gJ,OAAOX,EAAQtB,SAC3BsB,IAER,CCbO,MAAM,GAAU,aCgBvB,MAAM,GAAS,IAAIy3I,EAAO,IAEpBp2E,GAAU,IAAIvwD,WAAW,IAC/BuwD,GAAQ3iB,KAAK,GACb,MAAM,GAAcs9F,EAAUn4I,MAAM,GAC9B,GAAOm4I,EAAUn4I,KAAK,GACtB,GAAMm4I,EAAUn4I,KAAK,GACrB,GAAam4I,EAAUn4I,KAAK,sEAS5Bo3J,GAAU1f,EAAW,GAAIhB,cAAe,IACxC2gB,GAAW3f,EAAW,GAAKhB,cAAe,IAC1C4gB,GAAmB,CACrBphI,KAAM,SACN7T,QAAS,SACT9T,QAAS,UACTgpJ,kBAAmB,UACnB7nI,KAAM,WAEJ8nI,GAAmB,CACrB,OAAQ,UAAW,UAAW,oBAAqB,QAEvD,SAASC,GAAYhhK,GACjB,OAAO,SAAU1B,GAIb,MAHuB,iBAAZ,GACP,GAAOi/I,mBAAmB,4BAA4B97G,KAAKE,UAAU3hC,KAAQ,UAAUA,IAAO1B,GAE3FA,CACX,CACJ,CACA,MAAM2iK,GAAe,CACjBxhI,KAAMuhI,GAAY,QAClBp1I,QAASo1I,GAAY,WACrBlpJ,QAAS,SAAUxZ,GACf,IACI,OAAOojJ,EAAUn4I,KAAKjL,GAAOiH,UAEjB,CAAhB,MAAO23D,GAAS,CAChB,OAAO,GAAOqgF,mBAAmB,qCAAsC,iBAAkBj/I,EAC7F,EACAwiK,kBAAmB,SAAUxiK,GACzB,IACI,OAAO8G,GAAW9G,GAAOgjD,aAEb,CAAhB,MAAO4b,GAAS,CAChB,OAAO,GAAOqgF,mBAAmB,2CAA4C,2BAA4Bj/I,EAC7G,EACA26B,KAAM,SAAU36B,GACZ,IACI,MAAM2jD,EAAQ89F,EAASzhJ,GACvB,GAAqB,KAAjB2jD,EAAM79C,OACN,MAAM,IAAIK,MAAM,cAEpB,OAAOg8I,EAAQx+F,EAEH,CAAhB,MAAOib,GAAS,CAChB,OAAO,GAAOqgF,mBAAmB,8BAA+B,cAAej/I,EACnF,GAEJ,SAAS4iK,GAAe3xJ,GAEpB,CACI,MAAMzH,EAAQyH,EAAKzH,MAAM,kBACzB,GAAIA,EAAO,CACP,MAAM+hJ,EAAuB,KAAb/hJ,EAAM,GAChB+2F,EAAQpxF,SAAS3F,EAAM,IAAM,QAC/B+2F,EAAQ,GAAM,GAAKA,EAAQ,KAAQ/2F,EAAM,IAAMA,EAAM,KAAOzB,OAAOw4F,KACnE,GAAO0+C,mBAAmB,wBAAyB,OAAQhuI,GAE/D,MAAM4xJ,EAAc,GAAWxrG,KAAKk0F,EAAUhrD,EAAQ,EAAKA,GACrDuiE,EAAcvX,EAASsX,EAAYp5J,IAAI,IAAKK,IAAI,IAAe,GACrE,OAAO,SAAU9J,GACb,MAAM0F,EAAI09I,EAAUn4I,KAAKjL,GAIzB,OAHI0F,EAAEm7B,GAAGiiI,IAAgBp9J,EAAEo7B,GAAG+hI,KAC1B,GAAO5jB,mBAAmB,2BAA2BhuI,IAAQ,QAASjR,GAEnE2iJ,EAAWj9I,EAAE46F,OAAO,KAAKqhD,cAAe,GACnD,CACJ,CACJ,CAEA,CACI,MAAMn4I,EAAQyH,EAAKzH,MAAM,gBACzB,GAAIA,EAAO,CACP,MAAM+2F,EAAQpxF,SAAS3F,EAAM,IAI7B,OAHc,IAAV+2F,GAAeA,EAAQ,IAAM/2F,EAAM,KAAOzB,OAAOw4F,KACjD,GAAO0+C,mBAAmB,sBAAuB,OAAQhuI,GAEtD,SAAUjR,GAKb,OAJcyhJ,EAASzhJ,GACb8F,SAAWy6F,GACjB,GAAO0+C,mBAAmB,sBAAsBhuI,IAAQ,QAASjR,GAzFrF,SAAqBA,GACjB,MAAM2jD,EAAQ89F,EAASzhJ,GACjB+kD,EAAYpB,EAAM79C,OAAS,GACjC,OAAIi/C,EACOw9F,EAAU,CAAC5+F,EAAO8kB,GAAQp9D,MAAM05C,KAEpCo9F,EAAQx+F,EACnB,CAoFuBo/G,CAAY/iK,EACvB,CACJ,CACJ,CACA,OAAQiR,GACJ,IAAK,UAAW,OAAO,SAAUjR,GAC7B,OAAO2iJ,EAAW77I,GAAW9G,GAAQ,GACzC,EACA,IAAK,OAAQ,OAAO,SAAUA,GAC1B,OAAUA,EAAoBqiK,GAAXC,EACvB,EACA,IAAK,QAAS,OAAO,SAAUtiK,GAC3B,OAAOumJ,GAAUvmJ,EACrB,EACA,IAAK,SAAU,OAAO,SAAUA,GAC5B,OAAOooB,GAAGpoB,EACd,EAEJ,OAAO,IACX,CACA,SAASgjK,GAAW7hI,EAAM84H,GACtB,MAAO,GAAG94H,KAAQ84H,EAAO3tJ,KAAI,EAAG60B,OAAMlwB,UAAYA,EAAO,IAAMkwB,IAAO50B,KAAK,OAC/E,CACO,MAAM02J,GACTh7J,YAAY2jJ,GACR9H,GAAejkJ,KAAM,QAASC,OAAOizD,OAAO0xF,GAASmH,KACrD9H,GAAejkJ,KAAM,gBAAiB,CAAC,GACvCikJ,GAAejkJ,KAAM,SAAU,CAAC,GAEhC,MAAMqjK,EAAQ,CAAC,EAETC,EAAU,CAAC,EAEXC,EAAW,CAAC,EAClBtjK,OAAO8L,KAAKggJ,GAAO//I,SAASoF,IACxBiyJ,EAAMjyJ,GAAQ,CAAC,EACfkyJ,EAAQlyJ,GAAQ,GAChBmyJ,EAASnyJ,GAAQ,CAAC,CAAC,IAEvB,IAAK,MAAMkwB,KAAQyqH,EAAO,CACtB,MAAMtB,EAAc,CAAC,EACrBsB,EAAMzqH,GAAMt1B,SAASw3J,IAEb/Y,EAAY+Y,EAAMliI,OAClB,GAAO89G,mBAAmB,2BAA2B97G,KAAKE,UAAUggI,EAAMliI,YAAYgC,KAAKE,UAAUlC,KAAS,QAASyqH,GAE3HtB,EAAY+Y,EAAMliI,OAAQ,EAE1B,MAAMkpH,EAAWgZ,EAAMpyJ,KAAKzH,MAAM,uBAAuB,GACrD6gJ,IAAalpH,GACb,GAAO89G,mBAAmB,8BAA8B97G,KAAKE,UAAUgnH,KAAa,QAASuB,GAGjFgX,GAAevY,KAI1B8Y,EAAQ9Y,IACT,GAAOpL,mBAAmB,gBAAgB97G,KAAKE,UAAUgnH,KAAa,QAASuB,GAGnFuX,EAAQ9Y,GAAUtkJ,KAAKo7B,GACvB+hI,EAAM/hI,GAAMkpH,IAAY,EAAI,GAEpC,CAEA,MAAMiZ,EAAexjK,OAAO8L,KAAKu3J,GAAS/1J,QAAQ3H,GAA6B,IAAtB09J,EAAQ19J,GAAGK,SACxC,IAAxBw9J,EAAax9J,OACb,GAAOm5I,mBAAmB,uBAAwB,QAAS2M,GAEtD0X,EAAax9J,OAAS,GAC3B,GAAOm5I,mBAAmB,4CAA4CqkB,EAAah3J,KAAKvH,GAAOo+B,KAAKE,UAAUt+B,KAAKwH,KAAK,QAAS,QAASq/I,GAE9I9H,GAAejkJ,KAAM,cAAeyjK,EAAa,IAEjD,SAASC,EAActyJ,EAAMkhH,GACrBA,EAAMlhH,IACN,GAAOguI,mBAAmB,8BAA8B97G,KAAKE,UAAUpyB,KAAS,QAAS26I,GAE7Fz5B,EAAMlhH,IAAQ,EACdnR,OAAO8L,KAAKs3J,EAAMjyJ,IAAOpF,SAAS+hE,IACzBu1F,EAAQv1F,KAIb21F,EAAc31F,EAAOukD,GAErBryH,OAAO8L,KAAKumH,GAAOtmH,SAAS23J,IACxBJ,EAASI,GAAS51F,IAAS,CAAI,IACjC,WAECukD,EAAMlhH,EACjB,CACAsyJ,CAAc1jK,KAAK4jK,YAAa,CAAC,GAEjC,IAAK,MAAMtiI,KAAQiiI,EAAU,CACzB,MAAMM,EAAK5jK,OAAO8L,KAAKw3J,EAASjiI,IAChCuiI,EAAG12J,OACHnN,KAAK8jK,OAAOxiI,GAAQ6hI,GAAW7hI,EAAMyqH,EAAMzqH,IAASuiI,EAAGp3J,KAAKvH,GAAMi+J,GAAWj+J,EAAG6mJ,EAAM7mJ,MAAKwH,KAAK,GACpG,CACJ,CACAq3J,WAAW3yJ,GACP,IAAI+oG,EAAUn6G,KAAKgkK,cAAc5yJ,GAIjC,OAHK+oG,IACDA,EAAUn6G,KAAKgkK,cAAc5yJ,GAAQpR,KAAKs0F,YAAYljF,IAEnD+oG,CACX,CACA7lB,YAAYljF,GAER,CACI,MAAM+oG,EAAU4oD,GAAe3xJ,GAC/B,GAAI+oG,EACA,OAAOA,CAEf,CAEA,MAAMxwG,EAAQyH,EAAKzH,MAAM,yBACzB,GAAIA,EAAO,CACP,MAAMg6J,EAAUh6J,EAAM,GAChBs6J,EAAajkK,KAAK+jK,WAAWJ,GAC7B19J,EAASqJ,SAAS3F,EAAM,IAC9B,OAAQxJ,IACA8F,GAAU,GAAK9F,EAAM8F,SAAWA,GAChC,GAAOm5I,mBAAmB,0DAA2D,QAASj/I,GAElG,IAAIuE,EAASvE,EAAMsM,IAAIw3J,GAIvB,OAHIjkK,KAAK8jK,OAAOH,KACZj/J,EAASA,EAAO+H,IAAIi6I,KAEjBA,GAAUhE,EAAUh+I,GAAQ,CAE3C,CAEA,MAAM01J,EAASp6J,KAAK+rJ,MAAM36I,GAC1B,GAAIgpJ,EAAQ,CACR,MAAM8J,EAAc37I,GAAGvoB,KAAK8jK,OAAO1yJ,IACnC,OAAQjR,IACJ,MAAM+M,EAASktJ,EAAO3tJ,KAAI,EAAG60B,OAAMlwB,WAC/B,MAAM1M,EAAS1E,KAAK+jK,WAAW3yJ,EAAhBpR,CAAsBG,EAAMmhC,IAC3C,OAAIthC,KAAK8jK,OAAO1yJ,GACLs1I,GAAUhiJ,GAEdA,CAAM,IAGjB,OADAwI,EAAO+vF,QAAQinE,GACRxhB,EAAUx1I,EAAO,CAEhC,CACA,OAAO,GAAOkyI,mBAAmB,iBAAiBhuI,IAAQ,OAAQA,EACtE,CACA+xJ,WAAW7hI,GACP,MAAM58B,EAAS1E,KAAK8jK,OAAOxiI,GAI3B,OAHK58B,GACD,GAAO06I,mBAAmB,iBAAiB97G,KAAKE,UAAUlC,KAAS,OAAQA,GAExE58B,CACX,CACAy/J,WAAW/yJ,EAAMjR,GACb,OAAOH,KAAK+jK,WAAW3yJ,EAAhBpR,CAAsBG,EACjC,CACAikK,WAAW9iI,EAAMnhC,GACb,OAAOumJ,GAAU1mJ,KAAKmkK,WAAW7iI,EAAMnhC,GAC3C,CACAqX,OAAOrX,GACH,OAAOH,KAAKmkK,WAAWnkK,KAAK4jK,YAAazjK,EAC7C,CACA41B,KAAK51B,GACD,OAAOH,KAAKokK,WAAWpkK,KAAK4jK,YAAazjK,EAC7C,CACAkkK,OAAOjzJ,EAAMjR,EAAOs8G,GAIZ,GADgBsmD,GAAe3xJ,GAE3B,OAAOqrG,EAASrrG,EAAMjR,GAI9B,MAAMwJ,EAAQyH,EAAKzH,MAAM,yBACzB,GAAIA,EAAO,CACP,MAAMg6J,EAAUh6J,EAAM,GAChB1D,EAASqJ,SAAS3F,EAAM,IAI9B,OAHI1D,GAAU,GAAK9F,EAAM8F,SAAWA,GAChC,GAAOm5I,mBAAmB,0DAA2D,QAASj/I,GAE3FA,EAAMsM,KAAK5G,GAAM7F,KAAKqkK,OAAOV,EAAS99J,EAAG42G,IACpD,CAEA,MAAM29C,EAASp6J,KAAK+rJ,MAAM36I,GAC1B,OAAIgpJ,EACOA,EAAOptH,QAAO,CAACk1G,GAAS5gH,OAAMlwB,WACjC8wI,EAAM5gH,GAAQthC,KAAKqkK,OAAOjzJ,EAAMjR,EAAMmhC,GAAOm7E,GACtCylC,IACR,CAAC,GAED,GAAO9C,mBAAmB,iBAAiBhuI,IAAQ,OAAQA,EACtE,CACAkzJ,MAAMnkK,EAAOs8G,GACT,OAAOz8G,KAAKqkK,OAAOrkK,KAAK4jK,YAAazjK,EAAOs8G,EAChD,CACA7oD,YAAYm4F,GACR,OAAO,IAAIqX,GAAiBrX,EAChC,CACAn4F,sBAAsBm4F,GAClB,OAAOqX,GAAiBh4J,KAAK2gJ,GAAO6X,WACxC,CACAhwG,kBAAkBtyB,EAAMyqH,EAAO5rJ,GAC3B,OAAOijK,GAAiBh4J,KAAK2gJ,GAAOqY,WAAW9iI,EAAMnhC,EACzD,CACAyzD,kBAAkBmnD,GACd,MAAMwpD,EAAe,GACrB,IAAK,MAAMjjI,KAAQy5E,EAAQ,CACvB,MAAM3pG,EAAOsxJ,GAAiBphI,GACzBlwB,GACD,GAAOguI,mBAAmB,kCAAkC97G,KAAKE,UAAUlC,KAAS,SAAUy5E,GAElGwpD,EAAar+J,KAAK,CAAEo7B,OAAMlwB,QAC9B,CAIA,OAHAmzJ,EAAap3J,MAAK,CAACC,EAAGtF,IACX86J,GAAiBp5J,QAAQ4D,EAAEk0B,MAAQshI,GAAiBp5J,QAAQ1B,EAAEw5B,QAElE8hI,GAAiBgB,WAAW,eAAgB,CAAEI,aAAcD,GAAgBxpD,EACvF,CACAnnD,cAAcmnD,EAAQgxC,EAAO5rJ,GACzB,OAAOuiJ,EAAU,CACb,SACA0gB,GAAiBqB,WAAW1pD,GAC5BqoD,GAAiBh4J,KAAK2gJ,GAAOh2H,KAAK51B,IAE1C,CACAyzD,YAAYmnD,EAAQgxC,EAAO5rJ,GACvB,OAAOumJ,GAAU0c,GAAiB5rJ,OAAOujG,EAAQgxC,EAAO5rJ,GAC5D,CAEAyzD,oBAAoBmnD,EAAQgxC,EAAO5rJ,EAAO41J,GACtC,OA/V8CjyJ,EA+V7B9D,KA/VsC+D,OA+VhC,EA/V+CE,EA+V/B,YAEnC82G,EAASupC,GAAYvpC,GAErB,MAAM2pD,EAAW,CAAC,EAEd3pD,EAAO4nD,oBAAsB,EAAY5nD,EAAO4nD,kBAAmB,MACnE+B,EAAS3pD,EAAO4nD,mBAAqB,MAGzC,MAAMxoD,EAAUipD,GAAiBh4J,KAAK2gJ,GAEtC5xC,EAAQmqD,MAAMnkK,GAAO,CAACiR,EAAMjR,KACX,YAATiR,GAAuB,EAAYjR,EAAO,MAC1CukK,EAASvkK,GAAS,MAEfA,KAGX,IAAK,MAAMmhC,KAAQojI,EACfA,EAASpjI,SAAcy0H,EAAYz0H,GAavC,OAVIy5E,EAAO4nD,mBAAqB+B,EAAS3pD,EAAO4nD,qBAC5C5nD,EAAO4nD,kBAAoB+B,EAAS3pD,EAAO4nD,oBAG/CxiK,EAAQg6G,EAAQmqD,MAAMnkK,GAAO,CAACiR,EAAMjR,IACnB,YAATiR,GAAsBszJ,EAASvkK,GACxBukK,EAASvkK,GAEbA,IAEJ,CAAE46G,SAAQ56G,QACrB,EA/XG,KAFgE6D,OA+VpC,KA7VjBA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUlE,GAAS,IAAMmE,EAAKL,EAAUM,KAAKpE,GAAkC,CAAvB,MAAOqE,GAAKJ,EAAOI,EAAI,CAAE,CAC1F,SAASC,EAAStE,GAAS,IAAMmE,EAAKL,EAAiB,MAAE9D,GAAkC,CAAvB,MAAOqE,GAAKJ,EAAOI,EAAI,CAAE,CAC7F,SAASF,EAAKI,GAJlB,IAAevE,EAIauE,EAAOC,KAAOR,EAAQO,EAAOvE,QAJ1CA,EAIyDuE,EAAOvE,MAJhDA,aAAiB6D,EAAI7D,EAAQ,IAAI6D,GAAE,SAAUG,GAAWA,EAAQhE,EAAQ,KAIjByE,KAAKP,EAAWI,EAAW,CAC7GH,GAAML,EAAYA,EAAUY,MAAMf,EAASC,GAAc,KAAKQ,OAClE,IAPwC,IAAUT,EAASC,EAAYC,EAAGC,CAkY1E,CACA2vD,kBAAkBmnD,EAAQgxC,EAAO5rJ,GAE7BijK,GAAiBqB,WAAW1pD,GAE5B,MAAM4pD,EAAe,CAAC,EAChBC,EAAc,GACpBhC,GAAiB52J,SAASs1B,IACtB,MAAMnhC,EAAQ46G,EAAOz5E,GACR,MAATnhC,IAGJwkK,EAAarjI,GAAQwhI,GAAaxhI,GAAMnhC,GACxCykK,EAAY1+J,KAAK,CAAEo7B,OAAMlwB,KAAMsxJ,GAAiBphI,KAAQ,IAE5D,MAAM64E,EAAUipD,GAAiBh4J,KAAK2gJ,GAChC8Y,EAAkBvgB,GAAYyH,GASpC,OARI8Y,EAAgBL,aAChB,GAAOplB,mBAAmB,2CAA4C,qBAAsB2M,GAG5F8Y,EAAgBL,aAAeI,EAGnCzqD,EAAQ3iG,OAAOrX,GACR,CACH4rJ,MAAO8Y,EACP9pD,OAAQ4pD,EACRf,YAAazpD,EAAQypD,YACrBr8J,QAAS4yG,EAAQmqD,MAAMnkK,GAAO,CAACiR,EAAMjR,KAEjC,GAAIiR,EAAKzH,MAAM,eACX,OAAO24I,EAAQV,EAASzhJ,IAG5B,GAAIiR,EAAKzH,MAAM,UACX,OAAO45I,EAAUn4I,KAAKjL,GAAOiH,WAEjC,OAAQgK,GACJ,IAAK,UACD,OAAOjR,EAAMgjD,cACjB,IAAK,OACD,QAAShjD,EACb,IAAK,SAID,MAHuB,iBAAZ,GACP,GAAOi/I,mBAAmB,iBAAkB,QAASj/I,GAElDA,EAEf,OAAO,GAAOi/I,mBAAmB,mBAAoB,OAAQhuI,EAAK,IAG9E,EC7YG,MAAM0zJ,GACT18J,YAAYmgE,GACR07E,GAAejkJ,KAAM,WAAYuoE,GACjC07E,GAAejkJ,KAAM,OAAQuoE,EAAStiE,QACtCg+I,GAAejkJ,KAAM,eAAgB,CAAC,GACtCikJ,GAAejkJ,KAAM,UAAWuoE,EAAS7lB,OAAO,IAEhD,IAAK,IAAI13C,EAAI,EAAGA,EAAIu9D,EAAStiE,OAAQ+E,IACjChL,KAAK+kK,aAAax8F,EAAS7lB,OAAO13C,IAAMA,CAEhD,CACAwM,OAAOrX,GACH,IAAIu1G,EAASksC,EAASzhJ,GACtB,GAAsB,IAAlBu1G,EAAOzvG,OACP,MAAO,GAEX,IAAIuiE,EAAS,CAAC,GACd,IAAK,IAAIx9D,EAAI,EAAGA,EAAI0qG,EAAOzvG,SAAU+E,EAAG,CACpC,IAAIg+D,EAAQ0sC,EAAO1qG,GACnB,IAAK,IAAIi/C,EAAI,EAAGA,EAAIue,EAAOviE,SAAUgkD,EACjC+e,GAASR,EAAOve,IAAM,EACtBue,EAAOve,GAAK+e,EAAQhpE,KAAK82D,KACzBkS,EAASA,EAAQhpE,KAAK82D,KAAQ,EAElC,KAAOkS,EAAQ,GACXR,EAAOtiE,KAAK8iE,EAAQhpE,KAAK82D,MACzBkS,EAASA,EAAQhpE,KAAK82D,KAAQ,CAEtC,CACA,IAAIgN,EAAS,GAEb,IAAK,IAAInhE,EAAI,EAAiB,IAAd+yG,EAAO/yG,IAAYA,EAAI+yG,EAAOzvG,OAAS,IAAKtD,EACxDmhE,GAAU9jE,KAAKglK,QAGnB,IAAK,IAAIvnG,EAAI+K,EAAOviE,OAAS,EAAGw3D,GAAK,IAAKA,EACtCqG,GAAU9jE,KAAKuoE,SAASC,EAAO/K,IAEnC,OAAOqG,CACX,CACApsD,OAAOvX,GACH,GAAuB,iBAAZ,EACP,MAAM,IAAI4F,UAAU,mBAExB,IAAI+9C,EAAQ,GACZ,GAAqB,IAAjB3jD,EAAM8F,OACN,OAAO,IAAIoS,WAAWyrC,GAE1BA,EAAM59C,KAAK,GACX,IAAK,IAAI8E,EAAI,EAAGA,EAAI7K,EAAM8F,OAAQ+E,IAAK,CACnC,IAAIsmD,EAAOtxD,KAAK+kK,aAAa5kK,EAAM6K,IACnC,QAAanI,IAATyuD,EACA,MAAM,IAAIhrD,MAAM,WAAatG,KAAK82D,KAAO,cAE7C,IAAIkS,EAAQ1X,EACZ,IAAK,IAAIrH,EAAI,EAAGA,EAAInG,EAAM79C,SAAUgkD,EAChC+e,GAASllB,EAAMmG,GAAKjqD,KAAK82D,KACzBhT,EAAMmG,GAAa,IAAR+e,EACXA,IAAU,EAEd,KAAOA,EAAQ,GACXllB,EAAM59C,KAAa,IAAR8iE,GACXA,IAAU,CAElB,CAEA,IAAK,IAAIrmE,EAAI,EAAGxC,EAAMwC,KAAO3C,KAAKglK,SAAWriK,EAAIxC,EAAM8F,OAAS,IAAKtD,EACjEmhD,EAAM59C,KAAK,GAEf,OAAO07I,EAAS,IAAIvpI,WAAWyrC,EAAMwkB,WACzC,EAEW,IAAIw8F,GAAM,oCAAzB,MACMG,GAAS,IAAIH,GAAM,8DClHlB,IAAII,IACX,SAAWA,GACPA,EAA2B,OAAI,SAC/BA,EAA2B,OAAI,QAClC,CAHD,CAGGA,KAAuBA,GAAqB,CAAC,ICJzC,MCOD,GAAS,IAAIlmB,EDPI,cCQhB,SAASlnI,GAAU1N,GACtB,MAAO,KAAQ,iBAAiBq7C,OAAOm8F,EAASx3I,IAAOw8C,OAAO,MAClE,CACO,SAAS7uC,GAAO3N,GACnB,MAAO,KAAQ,cAAcq7C,OAAOm8F,EAASx3I,IAAOw8C,OAAO,MAC/D,CACO,SAASgH,GAAOxjD,GACnB,MAAO,KAAQ,cAAcq7C,OAAOm8F,EAASx3I,IAAOw8C,OAAO,MAC/D,CACO,SAASu+G,GAAYx3C,EAAW9rH,EAAKuI,GAOxC,OANK86J,GAAmBv3C,IACpB,GAAO0yB,WAAW,yBAA2B1yB,EAAWqxB,EAAOzlD,OAAOonD,sBAAuB,CACzFz9G,UAAW,OACXyqF,UAAWA,IAGZ,KAAO,UAAU,KAAKA,GAAYi0B,EAAS//I,IAAM4jD,OAAOm8F,EAASx3I,IAAOw8C,OAAO,MAC1F,CCtBO,SAAS07D,GAAO/gE,EAAUzmB,EAAMsnF,EAAYC,EAAQ+iD,GAGvD,IAAIC,EAFJ9jH,EAAWqgG,EAASrgG,GACpBzmB,EAAO8mH,EAAS9mH,GAEhB,IAAIvvB,EAAI,EACR,MAAM+5J,EAAK,IAAIjtJ,WAAWgqG,GACpBkjD,EAAS,IAAIltJ,WAAWyiB,EAAK70B,OAAS,GAG5C,IAAIoiC,EACAm9H,EAHJD,EAAOv4J,IAAI8tB,GAIX,IAAK,IAAI9vB,EAAI,EAAGA,GAAKO,EAAGP,IAAK,CAEzBu6J,EAAOzqI,EAAK70B,QAAW+E,GAAK,GAAM,IAClCu6J,EAAOzqI,EAAK70B,OAAS,GAAM+E,GAAK,GAAM,IACtCu6J,EAAOzqI,EAAK70B,OAAS,GAAM+E,GAAK,EAAK,IACrCu6J,EAAOzqI,EAAK70B,OAAS,GAAS,IAAJ+E,EAE1B,IAAIy6J,EAAI7jB,EAASujB,GAAYC,EAAe7jH,EAAUgkH,IACjDF,IACDA,EAAOI,EAAEx/J,OACTu/J,EAAI,IAAIntJ,WAAWgtJ,GACnB95J,EAAIwC,KAAK1E,KAAKg5G,EAASgjD,GACvBh9H,EAAIg6E,GAAU92G,EAAI,GAAK85J,GAG3BG,EAAEx4J,IAAIy4J,GACN,IAAK,IAAIx7G,EAAI,EAAGA,EAAIm4D,EAAYn4D,IAAK,CAEjCw7G,EAAI7jB,EAASujB,GAAYC,EAAe7jH,EAAUkkH,IAClD,IAAK,IAAI9iK,EAAI,EAAGA,EAAI0iK,EAAM1iK,IACtB6iK,EAAE7iK,IAAM8iK,EAAE9iK,EAClB,CACA,MAAM+iK,GAAW16J,EAAI,GAAKq6J,EACpB3/G,EAAO16C,IAAMO,EAAI88B,EAAIg9H,EAE3BC,EAAGt4J,IAAI40I,EAAS4jB,GAAGh6J,MAAM,EAAGk6C,GAAMggH,EACtC,CACA,OAAOpjB,EAAQgjB,EACnB,CC1CO,MCOM,GAAS,IAAItmB,EDPH,mBCQhB,MAAM2mB,GACTv9J,YAAYw9J,GACR,GAAOzkB,yBAA0BwkB,IACjC1hB,GAAejkJ,KAAM,SAAU4lK,EACnC,CAEAj5J,MAAMu6B,GACF,OAAOA,EAASic,cAAcx2C,MAAM,MACxC,CAEAD,KAAK8Y,GACD,OAAOA,EAAM9Y,KAAK,IACtB,CACAknD,aAAa6tD,GACT,MAAMj8F,EAAQ,GACd,IAAK,IAAIxa,EAAI,EAAGA,EAAI,KAAMA,IAAK,CAC3B,MAAMy/C,EAAOg3D,EAASokD,QAAQ76J,GAE9B,GAAIA,IAAMy2G,EAASqkD,aAAar7G,GAC5B,MAAO,KAEXjlC,EAAMtf,KAAKukD,EACf,CACA,OAAOliC,GAAG/C,EAAM9Y,KAAK,MAAQ,KACjC,CACAknD,gBAAgBmvD,EAAMzhF,GACbA,IACDA,EAAOyhF,EAAK6iD,OAcpB,EC9CJ,IAAInkD,GAAW,KACf,SAASskD,GAAUhjD,GACf,GAAgB,MAAZtB,KAGJA,GANU,+zVAMOp/F,QAAQ,WAAY,OAAO8gC,cAAcloB,UAAU,GAAGtuB,MAAM,KAGhD,uEAAzBg5J,GAASpK,MAAMx4C,IAEf,MADAtB,GAAW,KACL,IAAIn7G,MAAM,yCAExB,CAcA,MAAM0/J,GAAS,IAbf,cAAqBL,GACjBv9J,cACIg9C,MAAM,KACV,CACAygH,QAAQr5J,GAEJ,OADAu5J,GAAU/lK,MACHyhH,GAASj1G,EACpB,CACAs5J,aAAar7G,GAET,OADAs7G,GAAU/lK,MACHyhH,GAASj4G,QAAQihD,EAC5B,GAGJk7G,GAASM,SAASD,IC5BX,MAAMnmD,GAAY,CACrBqmD,GAAI,ICUF,GAAS,IAAIlnB,ECbI,gBDcjBx3C,GAAI+7C,EAAUn4I,KAAK,sEAEnB+6J,GAAend,GAAY,gBAC3Bod,GAAc,WAEpB,SAASC,GAAax4J,GAClB,OAAS,GAAKA,GAAQ,GAAO,EAAIA,CACrC,CAKA,SAASy4J,GAAQnmK,GACb,OAAO2iJ,EAAWR,EAAQniJ,GAAQ,GACtC,CACA,SAASmpE,GAAYl/D,GACjB,OAAO66J,GAAOztJ,OAAOxV,EAAO,CAACoI,EAAMo4I,EAAazqI,GAAOA,GAAO3N,IAAQ,EAAG,KAC7E,CACA,SAASm8J,GAAY9kD,GACjB,GAAgB,MAAZA,EACA,OAAO5B,GAAA,GAEX,GAA0B,iBAAf,EAAyB,CAChC,MAAMr6F,EAAQq6F,GAAU4B,GAIxB,OAHa,MAATj8F,GACA,GAAO45H,mBAAmB,iBAAkB,WAAY39B,GAErDj8F,CACX,CACA,OAAOi8F,CACX,CACA,MAAM,GAAoB,CAAC,EACd+kD,GAAc,mBAEpB,MAAMC,GAQTr+J,YAAYo7I,EAAkB97G,EAAY1gC,EAAW+lE,EAAmBD,EAAWtgE,EAAOqgE,EAAO65F,GAE7F,GAAIljB,IAAqB,GACrB,MAAM,IAAIl9I,MAAM,gDAEpB,GAAIohC,EAAY,CACZ,MAAMyxH,EAAa,IAAIZ,GAAW7wH,GAClCu8G,GAAejkJ,KAAM,aAAcm5J,EAAWzxH,YAC9Cu8G,GAAejkJ,KAAM,YAAam5J,EAAWwN,oBACjD,MAEI1iB,GAAejkJ,KAAM,aAAc,MACnCikJ,GAAejkJ,KAAM,YAAasiJ,EAAQt7I,IAE9Ci9I,GAAejkJ,KAAM,oBAAqB+sE,GAC1Ck3E,GAAejkJ,KAAM,cAAewiJ,EAAa1qI,GAAUC,GAAO/X,KAAKgH,YAAa,EAAG,IACvFi9I,GAAejkJ,KAAM,UAAW05J,GAAe15J,KAAKgH,YACpDi9I,GAAejkJ,KAAM,YAAa8sE,GAClCm3E,GAAejkJ,KAAM,QAASwM,GAC9By3I,GAAejkJ,KAAM,QAAS6sE,GACR,MAAlB65F,GAEAziB,GAAejkJ,KAAM,WAAY,MACjCikJ,GAAejkJ,KAAM,OAAQ,OAEI,iBAArB,GAEZikJ,GAAejkJ,KAAM,WAAY,MACjCikJ,GAAejkJ,KAAM,OAAQ0mK,KAI7BziB,GAAejkJ,KAAM,WAAY0mK,GACjCziB,GAAejkJ,KAAM,OAAQ0mK,EAAet6I,MAEpD,CACIw6I,kBAMA,GAAI5mK,KAAK6sE,OAAS,IACd,MAAM,IAAIvmE,MAAM,oBAEpB,OAAOgjE,GAAYtnE,EAAO,CACD,MAAnBhC,KAAK0nC,WAAsB,aAAe,aAC5C46G,EAAQtiJ,KAAK6sE,OACb7sE,KAAK+sE,kBACL+1E,EAAWR,EAAQtiJ,KAAKwM,OAAQ,GAChCxM,KAAK8sE,UACgB,MAAnB9sE,KAAK0nC,WAAsB1lC,EAAO,CAAC,OAAQhC,KAAK0nC,aAAe1nC,KAAKgH,YAE9E,CACA6/J,SACI,OAAO,IAAIJ,GAAO,GAAmB,KAAMzmK,KAAKgH,UAAWhH,KAAK+sE,kBAAmB/sE,KAAK8sE,UAAW9sE,KAAKwM,MAAOxM,KAAK6sE,MAAO7sE,KAAKosB,KACpI,CACA06I,QAAQt6J,GACJ,GAAIA,EAAQ,WACR,MAAM,IAAIlG,MAAM,mBAAqB4B,OAAOsE,IAGhD,IAAI4f,EAAOpsB,KAAKosB,KACZA,IACAA,GAAQ,KAAe,WAAR5f,IAEnB,MAAMpC,EAAO,IAAIiO,WAAW,IAC5B,GAAI7L,EAAQ45J,GAAa,CACrB,IAAKpmK,KAAK0nC,WACN,MAAM,IAAIphC,MAAM,wCAGpB8D,EAAK4C,IAAI40I,EAAS5hJ,KAAK0nC,YAAa,GAEhCtb,IACAA,GAAQ,IAEhB,MAGIhiB,EAAK4C,IAAI40I,EAAS5hJ,KAAKgH,YAG3B,IAAK,IAAIgE,EAAI,GAAIA,GAAK,EAAGA,GAAK,EAC1BZ,EAAK,IAAMY,GAAK,IAAQwB,GAAU,GAAKxB,EAAM,IAEjD,MAAMuiE,EAAIq0E,EAASujB,GAAYD,GAAmBt3G,OAAQ5tD,KAAK8sE,UAAW1iE,IACpE28J,EAAKx5F,EAAE/hE,MAAM,EAAG,IAChBw7J,EAAKz5F,EAAE/hE,MAAM,IAEnB,IAAIy7J,EAAK,KAELC,EAAK,KACLlnK,KAAK0nC,WACLu/H,EAAKX,GAAQ/iB,EAAUn4I,KAAK27J,GAAIn9J,IAAI5J,KAAK0nC,YAAYpnC,IAAIknG,KAIzD0/D,EADW,IAAI3O,GAAWjW,EAAQykB,IAC1BvO,UAAUx4J,KAAKgH,WAE3B,IAAI0/J,EAAiBt6I,EACrB,MAAM+6I,EAAcnnK,KAAKknC,SAQzB,OAPIigI,IACAT,EAAiBzmK,OAAOizD,OAAO,CAC3Bk0G,OAAQD,EAAYC,OACpBh7I,KAAMA,EACNw5I,OAASuB,EAAYvB,QAAU,QAGhC,IAAIa,GAAO,GAAmBQ,EAAIC,EAAIlnK,KAAKktE,YAAao5F,GAAQU,GAAKx6J,EAAOxM,KAAK6sE,MAAQ,EAAG65F,EACvG,CACArkK,WAAW+pB,GACP,MAAM2gI,EAAa3gI,EAAKzf,MAAM,KAC9B,GAA0B,IAAtBogJ,EAAW9mJ,QAAmC,MAAlB8mJ,EAAW,IAA6B,IAAf/sJ,KAAK6sE,MAC1D,MAAM,IAAIvmE,MAAM,kBAAoB8lB,GAElB,MAAlB2gI,EAAW,IACXA,EAAWriG,QAEf,IAAIhmD,EAAS1E,KACb,IAAK,IAAIgL,EAAI,EAAGA,EAAI+hJ,EAAW9mJ,OAAQ+E,IAAK,CACxC,MAAMklJ,EAAYnD,EAAW/hJ,GAC7B,GAAIklJ,EAAUvmJ,MAAM,aAAc,CAC9B,MAAM6C,EAAQ8C,SAAS4gJ,EAAUj1H,UAAU,EAAGi1H,EAAUjqJ,OAAS,IACjE,GAAIuG,GAAS45J,GACT,MAAM,IAAI9/J,MAAM,wBAA0B4pJ,GAE9CxrJ,EAASA,EAAOoiK,QAAQV,GAAc55J,EAC1C,KACK,KAAI0jJ,EAAUvmJ,MAAM,YAQrB,MAAM,IAAIrD,MAAM,4BAA8B4pJ,GARZ,CAClC,MAAM1jJ,EAAQ8C,SAAS4gJ,GACvB,GAAI1jJ,GAAS45J,GACT,MAAM,IAAI9/J,MAAM,wBAA0B4pJ,GAE9CxrJ,EAASA,EAAOoiK,QAAQt6J,EAC5B,CAGA,CACJ,CACA,OAAO9H,CACX,CACAkvD,iBAAiBxsB,EAAMF,GACnB,MAAMmgI,EAAYzlB,EAASx6G,GAC3B,GAAIigI,EAAUphK,OAAS,IAAMohK,EAAUphK,OAAS,GAC5C,MAAM,IAAIK,MAAM,gBAEpB,MAAMinE,EAAIq0E,EAASujB,GAAYD,GAAmBt3G,OAAQu4G,GAAckB,IACxE,OAAO,IAAIZ,GAAO,GAAmBH,GAAQ/4F,EAAE/hE,MAAM,EAAG,KAAM,KAAM,aAAc86J,GAAQ/4F,EAAE/hE,MAAM,KAAM,EAAG,EAAG07B,EAClH,CACA0sB,oBAAoB1sB,EAAUqa,EAAUkgE,GAKpC,OADAv6E,EAAW6a,GAAkBy/D,GAAkBt6E,EAF/Cu6E,EAAW8kD,GAAY9kD,IAE6CA,GAC7DglD,GAAOa,UAAUtlH,GAAe9a,EAAUqa,GAAW,CACxD6lH,OAAQlgI,EACR9a,KAAM,IACNw5I,OAAQnkD,EAASmkD,QAEzB,CACAhyG,gBAAgBxsB,GACZ,OAAOq/H,GAAOa,UAAUlgI,EAAM,KAClC,CACAwsB,uBAAuBgzG,GACnB,MAAM9iH,EAAQmhH,GAAOvtJ,OAAOkvJ,GACP,KAAjB9iH,EAAM79C,QAAiBqjE,GAAYxlB,EAAMt4C,MAAM,EAAG,OAASo7J,GAC3D,GAAOxnB,mBAAmB,uBAAwB,cAAe,cAErE,MAAMvyE,EAAQ/oB,EAAM,GACdipB,EAAoBu1E,EAAQx+F,EAAMt4C,MAAM,EAAG,IAC3CgB,EAAQ8C,SAASgzI,EAAQx+F,EAAMt4C,MAAM,EAAG,KAAKyvB,UAAU,GAAI,IAC3D6xC,EAAYw1E,EAAQx+F,EAAMt4C,MAAM,GAAI,KACpC3J,EAAMiiD,EAAMt4C,MAAM,GAAI,IAC5B,OAAQ82I,EAAQx+F,EAAMt4C,MAAM,EAAG,KAE3B,IAAK,aACL,IAAK,aACD,OAAO,IAAIi7J,GAAO,GAAmB,KAAMnkB,EAAQzgJ,GAAMkrE,EAAmBD,EAAWtgE,EAAOqgE,EAAO,MAEzG,IAAK,aACL,IAAK,cACD,GAAe,IAAXhrE,EAAI,GACJ,MAEJ,OAAO,IAAI4kK,GAAO,GAAmBnkB,EAAQzgJ,EAAI2J,MAAM,IAAK,KAAMuhE,EAAmBD,EAAWtgE,EAAOqgE,EAAO,MAEtH,OAAO,GAAOuyE,mBAAmB,uBAAwB,cAAe,aAC5E,EAEG,SAASp9F,GAAe9a,EAAUqa,GAChCA,IACDA,EAAW,IAEf,MAAMzmB,EAAOkuH,GAAY,WAAaznG,EAAUumG,GAAyByf,MACzE,OAAOjlD,GAAO0mC,GAAY9hH,EAAU4gH,GAAyByf,MAAOzsI,EAAM,KAAM,GAAI,SACxF,CACO,SAAS0mF,GAAkBt6E,EAAUu6E,GACxCA,EAAW8kD,GAAY9kD,GACvB,GAAOi/B,iBACP,MAAMl7H,EAAQi8F,EAAS90G,MAAMu6B,GAC7B,GAAK1hB,EAAMvf,OAAS,GAAO,EACvB,MAAM,IAAIK,MAAM,oBAEpB,MAAMw7G,EAAU8/B,EAAS,IAAIvpI,WAAWtK,KAAK1E,KAAK,GAAKmc,EAAMvf,OAAS,KACtE,IAAIilD,EAAS,EACb,IAAK,IAAIlgD,EAAI,EAAGA,EAAIwa,EAAMvf,OAAQ+E,IAAK,CACnC,IAAIwB,EAAQi1G,EAASqkD,aAAatgJ,EAAMxa,GAAG89D,UAAU,SACrD,IAAe,IAAXt8D,EACA,MAAM,IAAIlG,MAAM,oBAEpB,IAAK,IAAI47F,EAAM,EAAGA,EAAM,GAAIA,IACpB11F,EAAS,GAAM,GAAK01F,IACpB4f,EAAQ52D,GAAU,IAAO,GAAM,EAAKA,EAAS,GAEjDA,GAER,CACA,MAAMy2D,EAAc,GAAKn8F,EAAMvf,OAAS,EAElCuhK,EAAenB,GADA7gJ,EAAMvf,OAAS,GAGpC,IADiB27I,EAAS7pI,GAAO+pG,EAAQt2G,MAAM,EAAGm2G,EAAc,KAAK,GAAK6lD,KACxD1lD,EAAQA,EAAQ77G,OAAS,GAAKuhK,GAC5C,MAAM,IAAIlhK,MAAM,oBAEpB,OAAOg8I,EAAQxgC,EAAQt2G,MAAM,EAAGm2G,EAAc,GAClD,CACO,SAAS5/D,GAAkB+/D,EAASL,GAGvC,GAFAA,EAAW8kD,GAAY9kD,IACvBK,EAAU8/B,EAAS9/B,IACN77G,OAAS,GAAO,GAAK67G,EAAQ77G,OAAS,IAAM67G,EAAQ77G,OAAS,GACtE,MAAM,IAAIK,MAAM,mBAEpB,MAAMmhK,EAAU,CAAC,GACjB,IAAIC,EAAgB,GACpB,IAAK,IAAI18J,EAAI,EAAGA,EAAI82G,EAAQ77G,OAAQ+E,IAE5B08J,EAAgB,GAChBD,EAAQA,EAAQxhK,OAAS,KAAO,EAChCwhK,EAAQA,EAAQxhK,OAAS,IAAM67G,EAAQ92G,GACvC08J,GAAiB,IAIjBD,EAAQA,EAAQxhK,OAAS,KAAOyhK,EAChCD,EAAQA,EAAQxhK,OAAS,IAAM67G,EAAQ92G,IAAO,EAAI08J,EAElDD,EAAQvhK,KAAK47G,EAAQ92G,IAvRrB,GAuRuC,EAAI08J,GAvR9B,GAwRbA,GAAiB,GAIzB,MAAM9lD,EAAeE,EAAQ77G,OAAS,EAChCskE,EAAWq3E,EAAS7pI,GAAO+pG,IAAU,GAAKukD,GAAazkD,GAI7D,OAFA6lD,EAAQA,EAAQxhK,OAAS,KAAO27G,EAChC6lD,EAAQA,EAAQxhK,OAAS,IAAOskE,GAAa,EAAIq3C,EAC1CH,EAAS/0G,KAAK+6J,EAAQh7J,KAAKD,GAAUi1G,EAASokD,QAAQr5J,KACjE,CACO,SAASm7J,GAAgBzgI,EAAUu6E,GACtC,IAEI,OADAD,GAAkBt6E,EAAUu6E,IACrB,CAEK,CAAhB,MAAO1iD,GAAS,CAChB,OAAO,CACX,CACO,SAAS6oG,GAAep7J,GAI3B,OAHuB,iBAAZ,GAAwBA,EAAQ,GAAKA,GAAS45J,IAAe55J,EAAQ,IAC5E,GAAO4yI,mBAAmB,wBAAyB,QAAS5yI,GAEzD,aAAaA,QACxB,CExUO,MCID,GAAS,IAAIwyI,EDJI,gBCqBjB6oB,GAbN,WACI,GAAoB,oBAAT9nK,KACP,OAAOA,KAEX,GAAsB,oBAAXg3D,OACP,OAAOA,OAEX,QAAsB,IAAX,EAAA5xD,EACP,OAAO,EAAAA,EAEX,MAAM,IAAImB,MAAM,iCACpB,CAEkBwhK,GAClB,IAAI,GAASD,GAAUzmH,QAAUymH,GAAU9jD,SAWpC,SAASliE,GAAY57C,IACpBA,GAAU,GAAKA,EAAS,MAASA,EAAS,GAAMA,GAAUA,IAC1D,GAAOm5I,mBAAmB,iBAAkB,SAAUn5I,GAE1D,MAAMvB,EAAS,IAAI2T,WAAWpS,GAE9B,OADA,GAAO07C,gBAAgBj9C,GAChBk9I,EAASl9I,EACpB,CAjBK,IAAW,GAAOi9C,kBACnB,GAAOy7D,KAAK,gDACZ,GAAS,CACLz7D,gBAAiB,SAAU2D,GACvB,OAAO,GAAO+6F,WAAW,oCAAqCrB,EAAOzlD,OAAOonD,sBAAuB,CAC/Fz9G,UAAW,0BAEnB,sDC3BD,SAAS6kI,GAAcC,GAI1B,MAH2B,iBAAhB,GAA0D,OAA9BA,EAAU/sI,UAAU,EAAG,KAC1D+sI,EAAY,KAAOA,GAEhBpmB,EAASomB,EACpB,CACO,SAASC,GAAK9nK,EAAO8F,GAExB,IADA9F,EAAQ+H,OAAO/H,GACRA,EAAM8F,OAASA,GAClB9F,EAAQ,IAAMA,EAElB,OAAOA,CACX,CACO,SAAS+nK,GAAY3mH,GACxB,MAA0B,iBAAf,EACAynG,GAAYznG,EAAUumG,GAAyBqgB,MAEnDvmB,EAASrgG,EACpB,CACO,SAAS6mH,GAAW94F,EAAQljD,GAC/B,IAAIi8I,EAAe/4F,EACnB,MAAM0/E,EAAQ5iI,EAAK+2B,cAAcx2C,MAAM,KACvC,IAAK,IAAI3B,EAAI,EAAGA,EAAIgkJ,EAAM/oJ,OAAQ+E,IAAK,CAEnC,IAAIs9J,EAAgB,KACpB,IAAK,MAAMzmK,KAAOwmK,EACd,GAAIxmK,EAAIshD,gBAAkB6rG,EAAMhkJ,GAAI,CAChCs9J,EAAgBD,EAAaxmK,GAC7B,KACJ,CAGJ,GAAsB,OAAlBymK,EACA,OAAO,KAGXD,EAAeC,CACnB,CACA,OAAOD,CACX,CAEO,SAASE,GAAO1mH,GACnB,MAAMiC,EAAQ89F,EAAS//F,GAGvBiC,EAAM,GAAiB,GAAXA,EAAM,GAAa,GAI/BA,EAAM,GAAiB,GAAXA,EAAM,GAAa,IAC/B,MAAM3jD,EAAQmiJ,EAAQx+F,GACtB,MAAO,CACH3jD,EAAM86B,UAAU,EAAG,IACnB96B,EAAM86B,UAAU,GAAI,IACpB96B,EAAM86B,UAAU,GAAI,IACpB96B,EAAM86B,UAAU,GAAI,IACpB96B,EAAM86B,UAAU,GAAI,KACtBvuB,KAAK,IACX,CC7DO,MAAM,GAAU,qBCuBvB,MAAM,GAAS,IAAIsyI,EAAO,IAE1B,SAASwpB,GAAYroK,GACjB,OAAiB,MAATA,GAAiBA,EAAM+mC,UAAY/mC,EAAM+mC,SAASkgI,MAC9D,CACO,MAAMqB,WAAwBlqI,GACjCmqI,kBAAkBvoK,GACd,SAAUA,IAASA,EAAMwoK,mBAC7B,EAYJ,SAASC,GAAYx+J,EAAMvI,GACvB,MAAMyvF,EAAay2E,GAAcK,GAAWh+J,EAAM,sBAElD,GADoBk4I,EAAQoE,GAAU1kJ,EAAO,CAACH,EAAI2J,MAAM,GAAI,IAAK8lF,MAAer2D,UAAU,KACtEmtI,GAAWh+J,EAAM,cAAc+4C,cAC/C,MAAM,IAAI78C,MAAM,oBAEpB,MAAMohC,EAhBV,SAAkBt9B,EAAMvI,EAAKyvF,GAEzB,GAAe,gBADA82E,GAAWh+J,EAAM,iBACF,CAC1B,MAAMsnF,EAAKq2E,GAAcK,GAAWh+J,EAAM,2BACpCi0D,EAAU,IAAI,cAAYqzB,GAEhC,OAAOkwD,EADQ,IAAI,0BAAwB//I,EAAKw8D,GACzBgzB,QAAQC,GACnC,CACA,OAAO,IACX,CAOuBq2B,CAASv9G,EAAMvI,EAAI2J,MAAM,EAAG,IAAK8lF,GAC/C5pD,GACD,GAAO24G,WAAW,qBAAsBrB,EAAOzlD,OAAOonD,sBAAuB,CACzEz9G,UAAW,YAGnB,MAAM2lI,EAAchnK,EAAI2J,MAAM,GAAI,IAC5BpF,EAAUszJ,GAAehyH,GAC/B,GAAIt9B,EAAKhE,QAAS,CACd,IAAIm1J,EAAQnxJ,EAAKhE,QAAQ+8C,cAIzB,GAH8B,OAA1Bo4G,EAAMtgI,UAAU,EAAG,KACnBsgI,EAAQ,KAAOA,GAEft0J,GAAWs0J,KAAWn1J,EACtB,MAAM,IAAIE,MAAM,mBAExB,CACA,MAAMS,EAAU,CACZ4hK,oBAAoB,EACpBviK,QAASA,EACTshC,WAAY46G,EAAQ56G,IAGxB,GAA6C,QAAzC0gI,GAAWh+J,EAAM,oBAA+B,CAChD,MAAM0+J,EAAqBf,GAAcK,GAAWh+J,EAAM,gCACpD2+J,EAAahB,GAAcK,GAAWh+J,EAAM,6BAC5C4+J,EAAkB,IAAI,cAAYD,GAClCE,EAAiB,IAAI,0BAAwBJ,EAAaG,GAC1D58I,EAAOg8I,GAAWh+J,EAAM,kBAAoBo8J,GAC5CZ,EAASwC,GAAWh+J,EAAM,oBAAsB,KAChD03G,EAAU8/B,EAASqnB,EAAe53E,QAAQy3E,IAChD,IACI,MAAM5hI,EAAW6a,GAAkB+/D,EAAS8jD,GACtCz8G,EAAOs9G,GAAOyC,aAAahiI,EAAU,KAAM0+H,GAAQvjK,WAAW+pB,GACpE,GAAI+8B,EAAKzhB,YAAc3gC,EAAQ2gC,WAC3B,MAAM,IAAIphC,MAAM,qBAEpBS,EAAQmgC,SAAWiiB,EAAKjiB,QAS5B,CAPA,MAAO63B,GAIH,GAAIA,EAAMthD,OAASuhI,EAAOzlD,OAAO+mD,kBAAuC,aAAnBvhF,EAAMwhF,SACvD,MAAMxhF,CAEd,CACJ,CACA,OAAO,IAAI0pG,GAAgB1hK,EAC/B,CACA,SAASm7G,GAAWinD,EAAeruI,EAAM3sB,EAAOi7J,EAAOC,GACnD,OAAOznB,EAAS,GAAQunB,EAAeruI,EAAM3sB,EAAOi7J,EAAOC,GAC/D,CACA,SAAS,GAAOF,EAAeruI,EAAM3sB,EAAOi7J,EAAOC,GAC/C,OAAOnlK,QAAQC,QAAQ+9G,GAAWinD,EAAeruI,EAAM3sB,EAAOi7J,EAAOC,GACzE,CACA,SAASC,GAAel/J,EAAMm3C,EAAUgoH,EAAYC,EAAYC,GAC5D,MAAMN,EAAgBjB,GAAY3mH,GAC5BmoH,EAAMtB,GAAWh+J,EAAM,cAC7B,GAAIs/J,GAAwB,iBAAV,EAAoB,CAClC,MAAMrpB,EAAa,SAAU/+G,EAAMnhC,GAC/B,OAAO,GAAOi/I,mBAAmB,6CAA8C99G,EAAMnhC,EACzF,EACA,GAA0B,WAAtBupK,EAAIvmH,cAA4B,CAChC,MAAMroB,EAAOitI,GAAcK,GAAWh+J,EAAM,0BACtCo9F,EAAIl4F,SAAS84J,GAAWh+J,EAAM,uBAC9Bi+B,EAAI/4B,SAAS84J,GAAWh+J,EAAM,uBAC9B/G,EAAIiM,SAAS84J,GAAWh+J,EAAM,uBAE/Bo9F,GAAMn/D,GAAMhlC,GACbg9I,EAAW,MAAOqpB,GAGA,IAAjBliE,EAAKA,EAAI,IACV64C,EAAW,IAAK74C,GAEpB,MAAM4hE,EAAQ95J,SAAS84J,GAAWh+J,EAAM,2BAIxC,OAHc,KAAVg/J,GACA/oB,EAAW,QAAS+oB,GAEjBI,EAAWL,EAAeruI,EAAM0sE,EAAGn/D,EAAGhlC,EAAG,GAAIomK,EACxD,CACK,GAA0B,WAAtBC,EAAIvmH,cAA4B,CACrC,MAAMroB,EAAOitI,GAAcK,GAAWh+J,EAAM,0BAC5C,IAAIi/J,EAAU,KACd,MAAMM,EAAMvB,GAAWh+J,EAAM,wBACjB,gBAARu/J,EACAN,EAAU,SAEG,gBAARM,EACLN,EAAU,SAGVhpB,EAAW,MAAOspB,GAEtB,MAAMx7J,EAAQmB,SAAS84J,GAAWh+J,EAAM,uBAClCg/J,EAAQ95J,SAAS84J,GAAWh+J,EAAM,2BAIxC,OAHc,KAAVg/J,GACA/oB,EAAW,QAAS+oB,GAEjBG,EAAWJ,EAAeruI,EAAM3sB,EAAOi7J,EAAOC,EACzD,CACJ,CACA,OAAO,GAAOjqB,mBAAmB,sCAAuC,MAAOsqB,EACnF,CC/IA,MAAM,GAAS,IAAI1qB,EAAO,IAEnB,MAAM4qB,WAAyBrrI,GAClCsrI,mBAAmB1pK,GACf,SAAUA,IAASA,EAAM2pK,oBAC7B,EAGG,SAAS,GAAQl8F,EAAMrsB,GAC1B,MAAMn3C,EAAOk5B,KAAKx6B,MAAM8kE,GACxBrsB,EAAW2mH,GAAY3mH,GAEvB,MAAMwoH,EAAU9iK,GAAWmhK,GAAWh+J,EAAM,YAEtC4/J,EAAUjC,GAAcK,GAAWh+J,EAAM,YAC1C4/J,GAAYA,EAAQ/jK,OAAS,IAAQ,GACtC,GAAOm5I,mBAAmB,kBAAmB,OAAQxxE,GAEzD,MAAM/rE,EAAM+/I,EAASt/B,GAAO/gE,EAAUA,EAAU,IAAM,GAAI,WAAW/1C,MAAM,EAAG,IACxEkmF,EAAKs4E,EAAQx+J,MAAM,EAAG,IACtBy+J,EAAgBD,EAAQx+J,MAAM,IAE9B0+J,EAAS,IAAI,0BAAwBroK,EAAK6vF,GAC1CtqD,EAAO,yBAAwBw6G,EAASsoB,EAAO74E,QAAQ44E,KAE7D,IAAIE,EAAU,GACd,IAAK,IAAIn/J,EAAI,EAAGA,EAAIo8B,EAAKnhC,OAAQ+E,IAC7Bm/J,GAAWjiK,OAAOm8D,aAAaj9B,EAAKp8B,IAExC,MACM08B,EAAag/G,GADEsC,GAAYmhB,IAEjC,OAAO,IAAIP,GAAiB,CACxBE,qBAAqB,EACrB1jK,QAAS2jK,EACTriI,WAAYA,GAEpB,CC5CO,SAAS0iI,GAAkBx8F,GAC9B,IAAIxjE,EAAO,KACX,IACIA,EAAOk5B,KAAKx6B,MAAM8kE,EAItB,CAFA,MAAO7O,GACH,OAAO,CACX,CACA,OAAQ30D,EAAK4/J,SAAW5/J,EAAK2/J,OACjC,CACO,SAASM,GAAiBz8F,GAC7B,IAAIxjE,EAAO,KACX,IACIA,EAAOk5B,KAAKx6B,MAAM8kE,EAItB,CAFA,MAAO7O,GACH,OAAO,CACX,CACA,SAAK30D,EAAKqjB,SAAWne,SAASlF,EAAKqjB,WAAarjB,EAAKqjB,SAAsC,IAA3Bne,SAASlF,EAAKqjB,SAKlF,CAIO,SAAS68I,GAAqB18F,GACjC,GAAIw8F,GAAkBx8F,GAClB,IACI,OAAO3mE,GAAWq8B,KAAKx6B,MAAM8kE,GAAMm8F,QAIvC,CAFA,MAAOhrG,GACH,OAAO,IACX,CAEJ,GAAIsrG,GAAiBz8F,GACjB,IACI,OAAO3mE,GAAWq8B,KAAKx6B,MAAM8kE,GAAMxnE,QAIvC,CAFA,MAAO24D,GACH,OAAO,IACX,CAEJ,OAAO,IACX,CC3CA,SAASwrG,GAAkB38F,EAAMrsB,EAAUkoH,GACvC,GAAIW,GAAkBx8F,GAAO,CACrB67F,GACAA,EAAiB,GAErB,MAAM1iK,EAAU,GAAiB6mE,EAAMrsB,GAIvC,OAHIkoH,GACAA,EAAiB,GAEdvlK,QAAQC,QAAQ4C,EAC3B,CACA,OAAIsjK,GAAiBz8F,GHgJlB,SAAiBA,EAAMrsB,EAAUkoH,GACpC,OA/JkD3lK,EA+JjC9D,KA/J0C+D,OA+JpC,EA/JmDE,EA+JnC,YACnC,MAAMmG,EAAOk5B,KAAKx6B,MAAM8kE,GAExB,OAAOg7F,GAAYx+J,QADDk/J,GAAel/J,EAAMm3C,EAAU,GAAQ,KAAAipH,OAAef,GAE5E,EAjKO,KAFgEzlK,OA+JxC,KA7JbA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUlE,GAAS,IAAMmE,EAAKL,EAAUM,KAAKpE,GAAkC,CAAvB,MAAOqE,GAAKJ,EAAOI,EAAI,CAAE,CAC1F,SAASC,EAAStE,GAAS,IAAMmE,EAAKL,EAAiB,MAAE9D,GAAkC,CAAvB,MAAOqE,GAAKJ,EAAOI,EAAI,CAAE,CAC7F,SAASF,EAAKI,GAJlB,IAAevE,EAIauE,EAAOC,KAAOR,EAAQO,EAAOvE,QAJ1CA,EAIyDuE,EAAOvE,MAJhDA,aAAiB6D,EAAI7D,EAAQ,IAAI6D,GAAE,SAAUG,GAAWA,EAAQhE,EAAQ,KAIjByE,KAAKP,EAAWI,EAAW,CAC7GH,GAAML,EAAYA,EAAUY,MAAMf,EAASC,GAAc,KAAKQ,OAClE,IAPwC,IAAUT,EAASC,EAAYC,EAAGC,CAoK9E,CGrJeotF,CAAgBzjB,EAAMrsB,EAAUkoH,GAEpCvlK,QAAQE,OAAO,IAAIkC,MAAM,uBACpC,CClBA,IAAI,GAAwC,SAAUxC,EAASC,EAAYC,EAAGC,GAE1E,OAAO,IAAKD,IAAMA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUlE,GAAS,IAAMmE,EAAKL,EAAUM,KAAKpE,GAAkC,CAAvB,MAAOqE,GAAKJ,EAAOI,EAAI,CAAE,CAC1F,SAASC,EAAStE,GAAS,IAAMmE,EAAKL,EAAiB,MAAE9D,GAAkC,CAAvB,MAAOqE,GAAKJ,EAAOI,EAAI,CAAE,CAC7F,SAASF,EAAKI,GAJlB,IAAevE,EAIauE,EAAOC,KAAOR,EAAQO,EAAOvE,QAJ1CA,EAIyDuE,EAAOvE,MAJhDA,aAAiB6D,EAAI7D,EAAQ,IAAI6D,GAAE,SAAUG,GAAWA,EAAQhE,EAAQ,KAIjByE,KAAKP,EAAWI,EAAW,CAC7GH,GAAML,EAAYA,EAAUY,MAAMf,EAASC,GAAc,KAAKQ,OAClE,GACJ,EAeA,MAAM,GAAS,IAAIy6I,ECxBI,gBDgChB,MAAM18I,WAAe8yJ,GACxBhtJ,YAAYs/B,EAAY6tH,GAEpB,GADAnwG,QARa,OADFjlD,EAUGunC,IATO,EAAYvnC,EAAMunC,WAAY,KAAwB,MAAjBvnC,EAAMiG,QASrC,CACvB,MAAM+yJ,EAAa,IAAIZ,GAAW7wH,EAAWA,YAM7C,GALAu8G,GAAejkJ,KAAM,eAAe,IAAMm5J,IAC1ClV,GAAejkJ,KAAM,UAAW05J,GAAe15J,KAAKgH,YAChDhH,KAAKoG,UAAYa,GAAWygC,EAAWthC,UACvC,GAAOg5I,mBAAmB,8BAA+B,aAAc,cAZvF,SAAqBj/I,GACjB,MAAM+mC,EAAW/mC,EAAM+mC,SACvB,OAAQA,GAAYA,EAASkgI,MACjC,CAWgB,CAAY1/H,GAAa,CACzB,MAAMy/H,EAAcz/H,EAAWR,SAC/B+8G,GAAejkJ,KAAM,aAAa,KAAM,CACpConK,OAAQD,EAAYC,OACpBh7I,KAAM+6I,EAAY/6I,MAAQo6I,GAC1BZ,OAAQuB,EAAYvB,QAAU,SAElC,MAAM1+H,EAAWlnC,KAAKknC,SAElBwyH,GADS+M,GAAOyC,aAAahiI,EAASkgI,OAAQ,KAAMlgI,EAAS0+H,QAAQvjK,WAAW6kC,EAAS9a,MACrEsb,cAAgB1nC,KAAKoG,SACzC,GAAOg5I,mBAAmB,4BAA6B,aAAc,aAE7E,MAEI6E,GAAejkJ,KAAM,aAAa,IAAM,MAEhD,KACK,CACD,GAAIu4J,GAAWkS,aAAa/iI,GAEC,cAArBA,EAAWwnF,OACX,GAAOkwB,mBAAmB,uCAAwC,aAAc,cAEpF6E,GAAejkJ,KAAM,eAAe,IAAM0nC,QAEzC,CAE2B,iBAAjB,GACHA,EAAW/9B,MAAM,iBAAyC,KAAtB+9B,EAAWzhC,SAC/CyhC,EAAa,KAAOA,GAG5B,MAAMyxH,EAAa,IAAIZ,GAAW7wH,GAClCu8G,GAAejkJ,KAAM,eAAe,IAAMm5J,GAC9C,CACAlV,GAAejkJ,KAAM,aAAa,IAAM,OACxCikJ,GAAejkJ,KAAM,UAAW05J,GAAe15J,KAAKgH,WACxD,CAtDR,IAAmB7G,EAwDPo1J,IAAahB,GAAS0J,WAAW1I,IACjC,GAAOnW,mBAAmB,mBAAoB,WAAYmW,GAE9DtR,GAAejkJ,KAAM,WAAYu1J,GAAY,KACjD,CACIruH,eAAa,OAAOlnC,KAAK0qK,WAAa,CACtChjI,iBAAe,OAAO1nC,KAAK2qK,cAAcjjI,UAAY,CACrD1gC,gBAAc,OAAOhH,KAAK2qK,cAAc3jK,SAAW,CACvDC,aACI,OAAO/C,QAAQC,QAAQnE,KAAKoG,QAChC,CACAmwJ,QAAQhB,GACJ,OAAO,IAAIjzJ,GAAOtC,KAAMu1J,EAC5B,CACAK,gBAAgBjO,GACZ,OAAOxD,GAAkBwD,GAAa/iJ,MAAM2Y,IACzB,MAAXA,EAAGnS,OACCnE,GAAWsW,EAAGnS,QAAUpL,KAAKoG,SAC7B,GAAOg5I,mBAAmB,oCAAqC,mBAAoBuI,EAAYv8I,aAE5FmS,EAAGnS,MAEd,MAAM5D,EAAYxH,KAAK2qK,cAAcjS,WAAWhS,GAAUr5E,GAAU9vD,KACpE,OAAO8vD,GAAU9vD,EAAI/V,EAAU,GAEvC,CACAE,YAAYH,GACR,OAAO,GAAUvH,UAAM,OAAQ,GAAQ,YACnC,OAAOmjJ,EAAcnjJ,KAAK2qK,cAAcjS,WAAW6J,GAAYh7J,IACnE,GACJ,CACA+uJ,eAAev7C,EAAQgxC,EAAO5rJ,GAC1B,OAAO,GAAUH,UAAM,OAAQ,GAAQ,YAEnC,MAAM4qK,QAAkB,gBAA+B7vD,EAAQgxC,EAAO5rJ,GAAQmhC,IACrD,MAAjBthC,KAAKu1J,UACL,GAAOlV,WAAW,8CAA+CrB,EAAOzlD,OAAOonD,sBAAuB,CAClGz9G,UAAW,cACX/iC,MAAOmhC,IAGRthC,KAAKu1J,SAASQ,YAAYz0H,MAErC,OAAO6hH,EAAcnjJ,KAAK2qK,cAAcjS,WAAW,QAAuBkS,EAAU7vD,OAAQgxC,EAAO6e,EAAUzqK,QACjH,GACJ,CACAgxF,QAAQ5vC,EAAUn2B,EAASq+I,GAKvB,GAJyB,mBAAd,GAA6BA,IACpCA,EAAmBr+I,EACnBA,EAAU,CAAC,GAEXq+I,GAAkD,mBAAvB,EAC3B,MAAM,IAAInjK,MAAM,oBAKpB,OAHK8kB,IACDA,EAAU,CAAC,GJ8BhB,SAAiBrkB,EAASw6C,EAAUn2B,EAASq+I,GAChD,IAEI,GAAIxiK,GAAWF,EAAQX,WAAaszJ,GAAe3yJ,EAAQ2gC,YACvD,MAAM,IAAIphC,MAAM,+BAGpB,GAAIkiK,GAAYzhK,GAAU,CACtB,MAAMmgC,EAAWngC,EAAQmgC,SAEzB,GADau/H,GAAOyC,aAAahiI,EAASkgI,OAAQ,KAAMlgI,EAAS0+H,QAAQvjK,WAAW6kC,EAAS9a,MAAQo6I,IAC5F9+H,YAAc3gC,EAAQ2gC,WAC3B,MAAM,IAAIphC,MAAM,oBAExB,CAIJ,CAFA,MAAO9B,GACH,OAAON,QAAQE,OAAOI,EAC1B,CAEyB,mBAAd,GAA6BilK,IACpCA,EAAmBr+I,EACnBA,EAAU,CAAC,GAEVA,IACDA,EAAU,CAAC,GAEf,MAAMsc,EAAak6G,EAAS76I,EAAQ2gC,YAC9ByhI,EAAgBjB,GAAY3mH,GAClC,IAAIugE,EAAU,KACV11F,EAAO,KACPw5I,EAAS,KACb,GAAI4C,GAAYzhK,GAAU,CACtB,MAAMogK,EAAcpgK,EAAQmgC,SAC5B46E,EAAU8/B,EAASpgC,GAAkB2lD,EAAYC,OAAQD,EAAYvB,QAAU,OAC/Ex5I,EAAO+6I,EAAY/6I,MAAQo6I,GAC3BZ,EAASuB,EAAYvB,QAAU,IACnC,CACA,IAAIiF,EAASz/I,EAAQy/I,OAChBA,IACDA,EAAS,aAGb,IAAI/vI,EAAO,KAEPA,EADA1P,EAAQ0P,KACD8mH,EAASx2H,EAAQ0P,MAGjB+mB,GAAY,IAIvB,IAAI6vC,EAAK,KACT,GAAItmE,EAAQsmE,IAER,GADAA,EAAKkwD,EAASx2H,EAAQsmE,IACJ,KAAdA,EAAGzrF,OACH,MAAM,IAAIK,MAAM,mBAIpBorF,EAAK7vC,GAAY,IAGrB,IAAIipH,EAAa,KACjB,GAAI1/I,EAAQ2/I,MAER,GADAD,EAAalpB,EAASx2H,EAAQ2/I,MACJ,KAAtBD,EAAW7kK,OACX,MAAM,IAAIK,MAAM,qBAIpBwkK,EAAajpH,GAAY,IAG7B,IAAI2lD,EAAK,GAAK,GAAKn/D,EAAI,EAAGhlC,EAAI,EAe9B,OAdI+nB,EAAQo/I,SACJp/I,EAAQo/I,OAAOhjE,IACfA,EAAIp8E,EAAQo/I,OAAOhjE,GAEnBp8E,EAAQo/I,OAAOniI,IACfA,EAAIjd,EAAQo/I,OAAOniI,GAEnBjd,EAAQo/I,OAAOnnK,IACfA,EAAI+nB,EAAQo/I,OAAOnnK,IAMpB,KAAAmnK,OAAcrB,EAAeruI,EAAM0sE,EAAGn/D,EAAGhlC,EAAG,GAAIomK,GAAkB7kK,MAAM/C,IAG3E,MAAM0gH,GAFN1gH,EAAM+/I,EAAS//I,IAEQ2J,MAAM,EAAG,IAC1Bw/J,EAAYnpK,EAAI2J,MAAM,GAAI,IAE1Bq9J,EAAchnK,EAAI2J,MAAM,GAAI,IAE5B6yD,EAAU,IAAI,cAAYqzB,GAE1BJ,EAAaswD,EADJ,IAAI,0BAAwBr/B,EAAYlkD,GACpB8yB,QAAQzpD,IAErCujI,EAAMvkB,GAAU1kJ,EAAO,CAACgpK,EAAW15E,KAEnClnF,EAAO,CACThE,QAASW,EAAQX,QAAQ60B,UAAU,GAAGkoB,cACtC56B,GAAIggJ,GAAOuC,GACXr9I,QAAS,EACTy9I,OAAQ,CACJC,OAAQ,cACRC,aAAc,CACV15E,GAAI4wD,EAAQ5wD,GAAIz2D,UAAU,IAE9Bq2D,WAAYgxD,EAAQhxD,GAAYr2D,UAAU,GAC1CyuI,IAAK,SACL2B,UAAW,CACPvwI,KAAMwnH,EAAQxnH,GAAMG,UAAU,GAC9Br1B,EAAG4hG,EACH8jE,MAAO,GACPjoK,EAAGA,EACHglC,EAAGA,GAEP4iI,IAAKA,EAAIhwI,UAAU,KAI3B,GAAI6mF,EAAS,CACT,MAAMinD,EAAalnH,GAAY,IACzBmnH,EAAkB,IAAI,cAAYD,GAElCD,EAAqBlnB,EADJ,IAAI,0BAAwBinB,EAAaG,GACb73E,QAAQ2wB,IACrDlwD,EAAM,IAAInqD,KACV+V,EAAao0C,EAAI8qC,iBAAmB,IACtCurE,GAAKr2G,EAAI+qC,cAAgB,EAAG,GAAK,IACjCsrE,GAAKr2G,EAAIgrC,aAAc,GAAK,IAC5BqrE,GAAKr2G,EAAIirC,cAAe,GAAK,IAC7BorE,GAAKr2G,EAAIkrC,gBAAiB,GAAK,IAC/BmrE,GAAKr2G,EAAImrC,gBAAiB,GAAK,MACnC3yF,EAAK,YAAc,CACfygK,OAAQA,EACRU,aAAe,QAAU/tJ,EAAY,KAAOpT,EAAKhE,QACjD4iK,gBAAiB1mB,EAAQymB,GAAY9tI,UAAU,GAC/C6tI,mBAAoBxmB,EAAQwmB,GAAoB7tI,UAAU,GAC1D7O,KAAMA,EACNw5I,OAAQA,EACRn4I,QAAS,MAEjB,CACA,OAAO6V,KAAKE,UAAUp5B,EAAK,GAEnC,CIhLe+mF,CAAgBnxF,KAAMuhD,EAAUn2B,EAASq+I,EACpD,CAIA71G,oBAAoBxoC,GAChB,IAAI02F,EAAUjgE,GAAY,IACrBz2B,IACDA,EAAU,CAAC,GAEXA,EAAQq0C,eACRqiD,EAAU8/B,EAASY,EAAakE,GAAU1kJ,EAAO,CAAC8/G,EAAS12F,EAAQq0C,gBAAiB,EAAG,MAE3F,MAAMv4B,EAAW6a,GAAkB+/D,EAAS12F,EAAQw6I,QACpD,OAAOtjK,GAAO4mK,aAAahiI,EAAU9b,EAAQgB,KAAMhB,EAAQw6I,OAC/D,CACAhyG,yBAAyBga,EAAMrsB,EAAUkoH,GACrC,OAAOc,GAAkB38F,EAAMrsB,EAAUkoH,GAAkB7kK,MAAMmC,GACtD,IAAIzE,GAAOyE,IAE1B,CACA6sD,6BAA6Bga,EAAMrsB,GAC/B,OAAO,IAAIj/C,GD5InB,SAA+BsrE,EAAMrsB,GACjC,GAAI6oH,GAAkBx8F,GAClB,OAAO,GAAiBA,EAAMrsB,GAElC,GAAI8oH,GAAiBz8F,GACjB,OHiID,SAAqBA,EAAMrsB,GAC9B,MAAMn3C,EAAOk5B,KAAKx6B,MAAM8kE,GAExB,OAAOg7F,GAAYx+J,EADPk/J,GAAel/J,EAAMm3C,EAAU2gE,GAAY,iBAE3D,CGrIe,CAAoBt0C,EAAMrsB,GAErC,MAAM,IAAIj7C,MAAM,sBACpB,CCoI0BklK,CAAsB59F,EAAMrsB,GAClD,CACAqS,oBAAoB1sB,EAAU9a,EAAMq1F,GAIhC,OAHKr1F,IACDA,EAAOo6I,IAEJ,IAAIlkK,GAAOmkK,GAAOyC,aAAahiI,EAAU,KAAMu6E,GAAUp/G,WAAW+pB,GAC/E,EAEG,SAASq/I,GAAclkK,EAASC,GACnC,OAAOmyJ,GAAe4I,GAAYh7J,GAAUC,EAChD,CACO,SAASkkK,GAAgB3wD,EAAQgxC,EAAO5rJ,EAAOqH,GAClD,OAAOmyJ,GAAe,QAAuB5+C,EAAQgxC,EAAO5rJ,GAAQqH,EACxE,CE9KO,MAAMmkK,GAAc,6CCAdC,GAAW,qECCXC,GAAc,ICErB,GAAS,IAAI7sB,ECHI,kBDQvB,SAAS8sB,GAAmBC,GACxB,MAAM3hB,EAAO,SAAUjpJ,EAAWiqB,GACf,MAAXA,IACAA,EAAU,CAAC,GAEf,MAAM4gJ,EAAe,GACrB,GAAI7qK,EAAU8qK,gBAAqC,MAAnB7gJ,EAAQ8gJ,OACpC,IACIF,EAAa9lK,KAAK,IAAI/E,EAAU8qK,eAAeF,EAAS3gJ,EAAQ8gJ,QAEpD,CAAhB,MAAOntG,GAAS,CAEpB,GAAI59D,EAAUgrK,mBAA2C,MAAtB/gJ,EAAQghJ,UACvC,IACIJ,EAAa9lK,KAAK,IAAI/E,EAAUgrK,kBAAkBJ,EAAS3gJ,EAAQghJ,WAEvD,CAAhB,MAAOrtG,GAAS,CAEpB,GAAI59D,EAAUkrK,iBAAuC,MAApBjhJ,EAAQkhJ,QACrC,IACIN,EAAa9lK,KAAK,IAAI/E,EAAUkrK,gBAAgBN,EAAS3gJ,EAAQkhJ,SAErD,CAAhB,MAAOvtG,GAAS,CAEpB,GAAI59D,EAAUorK,gBAAqC,MAAnBnhJ,EAAQohJ,OAAgB,CAKpD,MAAMv3E,EAAO,CAAC,SAAU,UAAW,WACnC,IACI,MAAMsgE,EAAW,IAAIp0J,EAAUorK,eAAeR,EAAS3gJ,EAAQohJ,QAC3DjX,EAASwW,UAAoD,IAAzC92E,EAAKzrF,QAAQ+rJ,EAASwW,QAAQzqI,OAClD0qI,EAAa9lK,KAAKqvJ,EAGV,CAAhB,MAAOx2F,GAAS,CACpB,CACA,GAAI59D,EAAUsrK,oBAA6C,MAAvBrhJ,EAAQshJ,WACxC,IACIV,EAAa9lK,KAAK,IAAI/E,EAAUsrK,mBAAmBV,GAEvC,CAAhB,MAAOhtG,GAAS,CAEpB,GAAI59D,EAAUwrK,cAAiC,MAAjBvhJ,EAAQwhJ,KAClC,IACI,MAAM33E,EAAO,CAAC,WACRsgE,EAAW,IAAIp0J,EAAUwrK,aAAaZ,EAAS3gJ,EAAQwhJ,MACzDrX,EAASwW,UAAoD,IAAzC92E,EAAKzrF,QAAQ+rJ,EAASwW,QAAQzqI,OAClD0qI,EAAa9lK,KAAKqvJ,EAGV,CAAhB,MAAOx2F,GAAS,CAEpB,GAA4B,IAAxBitG,EAAa/lK,OACb,OAAO,KAEX,GAAI9E,EAAU0rK,iBAAkB,CAC5B,IAAIh8H,EAAS,EAOb,OANsB,MAAlBzlB,EAAQylB,OACRA,EAASzlB,EAAQylB,OAEA,cAAZk7H,IACLl7H,EAAS,GAEN,IAAI1vC,EAAU0rK,iBAAiBb,EAAcn7H,EACxD,CACA,OAAOm7H,EAAa,EACxB,EAIA,OAHA5hB,EAAK0iB,UAAY,SAAUf,GACvB,OAAOD,GAAmBC,EAC9B,EACO3hB,CACX,CACA,SAAS2iB,GAAmB1mK,EAAK0lK,GAC7B,MAAM3hB,EAAO,SAAUjpJ,EAAWiqB,GAC9B,OAAIjqB,EAAU6rK,gBACH,IAAI7rK,EAAU6rK,gBAAgB3mK,EAAK0lK,GAEvC,IACX,EAIA,OAHA3hB,EAAK0iB,UAAY,SAAUf,GACvB,OAAOgB,GAAmB1mK,EAAK0lK,EACnC,EACO3hB,CACX,CACA,MAAM6iB,GAAY,CACdtzJ,QAAS,EACTuzJ,WAAY,6CACZ5rI,KAAM,YACN6rI,iBAAkBrB,GAAmB,cAEnCsB,GAAU,CACZzzJ,QAAS,EACTuzJ,WAAY,6CACZ5rI,KAAM,UACN6rI,iBAAkBrB,GAAmB,YAEnCuB,GAAgB,CAClB1zJ,QAAS,GACT2nB,KAAM,gBACN6rI,iBAAkBJ,GAAmB,sCAAuC,kBAG1EO,GAAW,CACbC,YAAa,CAAE5zJ,QAAS,EAAG2nB,KAAM,eACjC2rI,UAAWA,GACXO,QAASP,GACTQ,OAAQ,CAAE9zJ,QAAS,EAAG2nB,KAAM,UAC5B8rI,QAASA,GACTM,QAASN,GACTO,QAAS,CACLh0J,QAAS,EACTuzJ,WAAY,6CACZ5rI,KAAM,UACN6rI,iBAAkBrB,GAAmB,YAEzC8B,MAAO,CACHj0J,QAAS,GACT2nB,KAAM,QACN6rI,iBAAkBrB,GAAmB,UAEzC+B,OAAQ,CACJl0J,QAAS,EACTuzJ,WAAY,6CACZ5rI,KAAM,SACN6rI,iBAAkBrB,GAAmB,WAEzCgC,SAAU,CAAEn0J,QAAS,QAAS2nB,KAAM,YAEpCysI,QAAS,CACLp0J,QAAS,GACT2nB,KAAM,UACN6rI,iBAAkBJ,GAAmB,mCAAqC,YAE9EiB,cAAe,CAAEr0J,QAAS,GAAI2nB,KAAM,iBACpC+rI,cAAeA,GACfY,eAAgBZ,GAChBa,aAAc,CACVv0J,QAAS,EACT2nB,KAAM,eACN6rI,iBAAkBJ,GAAmB,qCAAuC,iBAEhFoB,KAAM,CAAEx0J,QAAS,IAAK2nB,KAAM,QAC5B8sI,MAAO,CACHz0J,QAAS,IACT2nB,KAAM,QACN6rI,iBAAkBrB,GAAmB,UAEzCuC,SAAU,CAAE10J,QAAS,MAAO2nB,KAAM,YAClCgtI,SAAU,CACN30J,QAAS,GACT2nB,KAAM,WACN6rI,iBAAkBrB,GAAmB,aAEzC,iBAAkB,CAAEnyJ,QAAS,GAAI2nB,KAAM,kBACvC,kBAAmB,CAAE3nB,QAAS,IAAK2nB,KAAM,mBACzCitI,SAAU,CAAE50J,QAAS,MAAO2nB,KAAM,YAClC,mBAAoB,CAAE3nB,QAAS,OAAQ2nB,KAAM,oBAC7CktI,IAAK,CAAE70J,QAAS,GAAI2nB,KAAM,OAC1BmtI,KAAM,CAAE90J,QAAS,GAAI2nB,KAAM,SAQxB,SAASw0H,GAAWiW,GAEvB,GAAe,MAAXA,EACA,OAAO,KAEX,GAAyB,iBAAd,EAAwB,CAC/B,IAAK,MAAMzqI,KAAQgsI,GAAU,CACzB,MAAMoB,EAAWpB,GAAShsI,GAC1B,GAAIotI,EAAS/0J,UAAYoyJ,EACrB,MAAO,CACHzqI,KAAMotI,EAASptI,KACf3nB,QAAS+0J,EAAS/0J,QAClBuzJ,WAAawB,EAASxB,YAAc,KACpCC,iBAAmBuB,EAASvB,kBAAoB,KAG5D,CACA,MAAO,CACHxzJ,QAASoyJ,EACTzqI,KAAM,UAEd,CACA,GAAyB,iBAAd,EAAwB,CAC/B,MAAMotI,EAAWpB,GAASvB,GAC1B,OAAgB,MAAZ2C,EACO,KAEJ,CACHptI,KAAMotI,EAASptI,KACf3nB,QAAS+0J,EAAS/0J,QAClBuzJ,WAAYwB,EAASxB,WACrBC,iBAAmBuB,EAASvB,kBAAoB,KAExD,CACA,MAAMuB,EAAWpB,GAASvB,EAAQzqI,MAElC,IAAKotI,EAID,MAHiC,iBAArB3C,EAAe,SACvB,GAAO3sB,mBAAmB,0BAA2B,UAAW2sB,GAE7DA,EAGa,IAApBA,EAAQpyJ,SAAiBoyJ,EAAQpyJ,UAAY+0J,EAAS/0J,SACtD,GAAOylI,mBAAmB,2BAA4B,UAAW2sB,GAIrE,IAAI4C,EAAkB5C,EAAQoB,kBAAoB,KA3NtD,IAAyBhtK,EAqOrB,OATuB,MAAnBwuK,GAA2BD,EAASvB,mBAEhCwB,GA9NaxuK,EA6NGuuK,EAASvB,mBA5Na,mBAArBhtK,EAAe,UA6NduuK,EAASvB,iBAAiBL,UAAUf,GAGpC2C,EAASvB,kBAI5B,CACH7rI,KAAMyqI,EAAQzqI,KACd3nB,QAAS+0J,EAAS/0J,QAClBuzJ,WAAanB,EAAQmB,YAAcwB,EAASxB,YAAc,KAC1DC,iBAAkBwB,EAE1B,CE9OO,SAAS,GAAOC,GACnBA,EAAW98F,KAAK88F,GAChB,MAAMxkK,EAAO,GACb,IAAK,IAAIY,EAAI,EAAGA,EAAI4jK,EAAS3oK,OAAQ+E,IACjCZ,EAAKlE,KAAK0oK,EAAS7rH,WAAW/3C,IAElC,OAAO42I,EAASx3I,EACpB,CACO,SAAS,GAAOA,GACnBA,EAAOw3I,EAASx3I,GAChB,IAAIwkK,EAAW,GACf,IAAK,IAAI5jK,EAAI,EAAGA,EAAIZ,EAAKnE,OAAQ+E,IAC7B4jK,GAAY1mK,OAAOm8D,aAAaj6D,EAAKY,IAEzC,OAAOgnE,KAAK48F,EAChB,CCLA,SAASC,GAAYzkK,EAAMggJ,GAClBA,IACDA,EAAO,SAAUjqJ,GAAS,MAAO,CAACmP,SAASnP,EAAO,IAAM,GAE5D,IAAIonE,EAAK,EACL7iE,EAAS,CAAC,EAMd,OALA0F,EAAKuC,MAAM,KAAKX,SAASi9I,IACrB,IAAI+F,EAAQ/F,EAAKt8I,MAAM,KACvB46D,GAAMj4D,SAAS0/I,EAAM,GAAI,IACzBtqJ,EAAO6iE,GAAM6iF,EAAK4E,EAAM,GAAG,IAExBtqJ,CACX,CACA,SAASoqK,GAAiB1kK,GACtB,IAAIo9D,EAAK,EACT,OAAOp9D,EAAKuC,MAAM,KAAKF,KAAK5G,IACxB,IAAImpJ,EAAQnpJ,EAAE8G,MAAM,KACC,IAAjBqiJ,EAAM/oJ,OACN+oJ,EAAM,GAAK,IAEO,KAAbA,EAAM,KACXA,EAAM,GAAK,KAEf,IAAIznF,EAAKC,EAAKl4D,SAAS0/I,EAAM,GAAI,IAEjC,OADAxnF,EAAKl4D,SAAS0/I,EAAM,GAAI,IACjB,CAAEzjJ,EAAGg8D,EAAI9gB,EAAG+gB,EAAI,GAE/B,CACA,SAASunG,GAAS5uK,EAAO6uK,GACrB,IAAIznG,EAAK,EACT,IAAK,IAAIv8D,EAAI,EAAGA,EAAIgkK,EAAO/oK,OAAQ+E,IAAK,CACpC,IAAIytH,EAAQu2C,EAAOhkK,GAEnB,GADAu8D,GAAMkxD,EAAMltH,EACRpL,GAASonE,GAAMpnE,GAASonE,EAAKkxD,EAAMhyE,IAAOtmD,EAAQonE,IAAOkxD,EAAM5wH,GAAK,IAAQ,EAAG,CAC/E,GAAI4wH,EAAMj0H,IAAsC,IAAjCi0H,EAAMj0H,EAAEgF,QAAQrJ,EAAQonE,GACnC,SAEJ,OAAOkxD,CACX,CACJ,CACA,OAAO,IACX,CACA,MAAMw2C,GAAmBH,GAAiB,g8CAEpCI,GAAkB,sDAAsDviK,MAAM,KAAKF,KAAK5G,GAAMyJ,SAASzJ,EAAG,MAC1GspK,GAAmB,CACrB,CAAE1oH,EAAG,GAAI17C,EAAG,GAAIQ,EAAG,IACnB,CAAEk7C,EAAG,GAAI17C,EAAG,GAAIvG,EAAG,CAAC,IAAK+G,EAAG,KAC5B,CAAEk7C,EAAG,GAAI17C,EAAG,EAAGvG,EAAG,CAAC,IAAK+G,EAAG,GAAI1D,EAAG,GAClC,CAAE4+C,EAAG,GAAI17C,EAAG,EAAGQ,EAAG,GAAI1D,EAAG,GACzB,CAAE4+C,EAAG,GAAI17C,EAAG,EAAGQ,EAAG,GAAI1D,EAAG,GACzB,CAAE4+C,EAAG,GAAI17C,EAAG,EAAGvG,EAAG,CAAC,EAAG,EAAG,GAAI+G,EAAG,GAAI1D,EAAG,GACvC,CAAE4+C,EAAG,GAAI17C,EAAG,EAAGQ,EAAG,GAAI1D,EAAG,GACzB,CAAE4+C,EAAG,GAAI17C,EAAG,EAAGvG,EAAG,CAAC,GAAI,GAAI,IAAK+G,EAAG,GAAI1D,EAAG,GAC1C,CAAE4+C,EAAG,GAAI17C,EAAG,GAAIvG,EAAG,CAAC,IAAK+G,EAAG,KAC5B,CAAEk7C,EAAG,GAAI17C,EAAG,EAAGQ,EAAG,GAAI1D,EAAG,GACzB,CAAE4+C,EAAG,GAAI17C,EAAG,GAAIQ,EAAG,IACnB,CAAEk7C,EAAG,GAAI17C,EAAG,GAAIQ,EAAG,IACnB,CAAEk7C,EAAG,GAAI17C,EAAG,EAAGQ,EAAG,GAAI1D,EAAG,GACzB,CAAE4+C,EAAG,GAAI17C,EAAG,EAAGQ,EAAG,GAAI1D,EAAG,GACzB,CAAE4+C,EAAG,GAAI17C,EAAG,EAAGQ,EAAG,GAAI1D,EAAG,GACzB,CAAE4+C,EAAG,GAAI17C,EAAG,EAAGvG,EAAG,CAAC,IAAK+G,EAAG,GAAI1D,EAAG,GAClC,CAAE4+C,EAAG,GAAI17C,EAAG,EAAGQ,EAAG,GAAI1D,EAAG,GACzB,CAAE4+C,EAAG,GAAI17C,EAAG,GAAIQ,EAAG,IACnB,CAAEk7C,EAAG,IAAK17C,EAAG,EAAGQ,EAAG,KAAM1D,EAAG,GAC5B,CAAE4+C,EAAG,GAAI17C,EAAG,EAAGQ,EAAG,IAAK1D,EAAG,GAC1B,CAAE4+C,EAAG,GAAI17C,EAAG,GAAIQ,EAAG,KACnB,CAAEk7C,EAAG,GAAI17C,EAAG,GAAIQ,EAAG,KACnB,CAAEk7C,EAAG,GAAI17C,EAAG,GAAIQ,EAAG,OACnB,CAAEk7C,EAAG,GAAI17C,EAAG,GAAIQ,EAAG,MACnB,CAAEk7C,EAAG,GAAI17C,GAAI,OAAQQ,EAAG,OACxB,CAAEk7C,EAAG,GAAI17C,GAAI,OAAQQ,EAAG,IACxB,CAAEk7C,EAAG,GAAI17C,GAAI,OAAQQ,EAAG,IACxB,CAAEk7C,EAAG,GAAI17C,GAAI,OAAQvG,EAAG,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,IAAK+G,EAAG,IACxD,CAAEk7C,EAAG,GAAI17C,GAAI,OAAQQ,EAAG,IACxB,CAAEk7C,EAAG,GAAI17C,GAAI,OAAQvG,EAAG,CAAC,EAAG,EAAG,EAAG,IAAK+G,EAAG,IAC1C,CAAEk7C,EAAG,GAAI17C,GAAI,OAAQvG,EAAG,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,IAAK+G,EAAG,IACnD,CAAEk7C,EAAG,GAAI17C,GAAI,OAAQQ,EAAG,IACxB,CAAEk7C,EAAG,GAAI17C,GAAI,OAAQQ,EAAG,IACxB,CAAEk7C,EAAG,GAAI17C,GAAI,OAAQQ,EAAG,IACxB,CAAEk7C,EAAG,GAAI17C,GAAI,OAAQQ,EAAG,IACxB,CAAEk7C,EAAG,GAAI17C,GAAI,OAAQQ,EAAG,IACxB,CAAEk7C,EAAG,GAAI17C,GAAI,OAAQQ,EAAG,IACxB,CAAEk7C,EAAG,GAAI17C,GAAI,OAAQvG,EAAG,CAAC,IAAK+G,EAAG,IACjC,CAAEk7C,EAAG,GAAI17C,GAAI,OAAQvG,EAAG,CAAC,IAAK+G,EAAG,IACjC,CAAEk7C,EAAG,GAAI17C,GAAI,OAAQvG,EAAG,CAAC,IAAK+G,EAAG,IACjC,CAAEk7C,EAAG,GAAI17C,GAAI,OAAQvG,EAAG,CAAC,IAAK+G,EAAG,IACjC,CAAEk7C,EAAG,GAAI17C,GAAI,OAAQvG,EAAG,CAAC,IAAK+G,EAAG,KAE/B6jK,GAAoBP,GAAY,yfAChCQ,GAAoBR,GAAY,0dAChCS,GAAoBT,GAAY,03DArGtC,SAAgBzkK,GACZ,GAAKA,EAAKnE,OAAS,GAAO,EACtB,MAAM,IAAIK,MAAM,YAEpB,IAAI5B,EAAS,GACb,IAAK,IAAIsG,EAAI,EAAGA,EAAIZ,EAAKnE,OAAQ+E,GAAK,EAClCtG,EAAOwB,KAAKoJ,SAASlF,EAAK6wB,UAAUjwB,EAAGA,EAAI,GAAI,KAEnD,OAAOtG,CACX,IA6FM6qK,GAAiBT,GAAiB,2LAgCjC,SAASU,GAASrvK,GAIrB,GAAIA,EAAMwJ,MAAM,kBAAoBxJ,EAAM8F,QAAU,GAChD,OAAO9F,EAAMgjD,cAGjB,IAAIssH,EAAQnmB,GAAiBnpJ,GAvCjC,IAAiB+M,IAwCGuiK,EAAMhjK,KAAKgR,IAEvB,GAAIyxJ,GAAgB1lK,QAAQiU,IAAS,EACjC,MAAO,GAEX,GAAIA,GAAQ,OAAUA,GAAQ,MAC1B,MAAO,GAGX,IAAIiyJ,EAxCL,SAA0BC,GAC7B,IAAIl3C,EAAQs2C,GAASY,EAAWR,IAChC,GAAI12C,EACA,MAAO,CAACk3C,EAAYl3C,EAAM1tH,GAE9B,IAAI0kK,EAAQL,GAAkBO,GAC9B,GAAIF,EACA,OAAOA,EAEX,IAAI/kH,EAAQ2kH,GAAkBM,GAC9B,OAAIjlH,EACO,CAACilH,EAAYjlH,EAAM,IAEhB4kH,GAAkBK,IAIzB,IACX,CAsB2BC,CAAiBnyJ,GACpC,OAAIiyJ,GAIG,CAACjyJ,EAAK,IAdjBgyJ,EAvCOviK,EAAO8/B,QAAO,CAACk1G,EAAO/hJ,KACzBA,EAAM6L,SAAS7L,IAAY+hJ,EAAMh8I,KAAK/F,EAAM,IACrC+hJ,IACR,IAqDHutB,EAAQnmB,GAAiBF,GAAcqmB,GAAQ3nB,GAAyBqgB,MAExEsH,EAAMzjK,SAASyR,IACX,GA/BKsxJ,GA+BetxJ,EA/BK8xJ,IAgCrB,MAAM,IAAIjpK,MAAM,iCACpB,IAGJmpK,EAAMzjK,SAASyR,IACX,GA3DKsxJ,GA2DgBtxJ,EA3DIwxJ,IA4DrB,MAAM,IAAI3oK,MAAM,iCACpB,IAGJ,IAAIg7B,EAAO8nH,GAAcqmB,GAEzB,GAA6B,MAAzBnuI,EAAKrG,UAAU,EAAG,IAAuC,OAAzBqG,EAAKrG,UAAU,EAAG,IAAmD,MAApCqG,EAAKrG,UAAUqG,EAAKr7B,OAAS,GAC9F,MAAM,IAAIK,MAAM,kBAGpB,GAAIg7B,EAAKr7B,OAAS,GACd,MAAM,IAAIK,MAAM,YAEpB,OAAOg7B,CACX,CCrLA,MAAM,GAAS,IAAI09G,EAAO,IACpB6wB,GAAQ,IAAIx3J,WAAW,IAC7Bw3J,GAAM5pH,KAAK,GACX,MAAM6pH,GAAY,IAAIz0D,OAAO,uBACtB,SAAS00D,GAAYzuI,GACxB,IACI,MAAM0tH,EAAQ1tH,EAAK30B,MAAM,KACzB,IAAK,IAAI3B,EAAI,EAAGA,EAAIgkJ,EAAM/oJ,OAAQ+E,IAC9B,GAAkC,IAA9BwkK,GAASxgB,EAAMhkJ,IAAI/E,OACnB,MAAM,IAAIK,MAAM,SAGxB,OAAO,CAEK,CAAhB,MAAOy4D,GAAS,CAChB,OAAO,CACX,CACO,SAASixG,GAAS1uI,GAEC,iBAAX,GACP,GAAO89G,mBAAmB,iCAAkC,OAAQ99G,GAExE,IAAI+uE,EAAU/uE,EACV58B,EAASmrK,GACb,KAAOx/D,EAAQpqG,QAAQ,CACnB,MAAMgqK,EAAY5/D,EAAQ1mG,MAAMmmK,IACf,MAAbG,GAAsC,KAAjBA,EAAU,IAC/B,GAAO7wB,mBAAmB,yCAA0C,OAAQ99G,GAGhF58B,EAASgiJ,GAAU1kJ,EAAO,CAAC0C,EAAQgiJ,GADrBsC,GAAYwmB,GAASS,EAAU,SAE7C5/D,EAAU4/D,EAAU,IAAM,EAC9B,CACA,OAAO3tB,EAAQ59I,EACnB,CACO,SAASwrK,GAAU5uI,GACtB,OAAOghH,EAAQtgJ,EAAOs/B,EAAK30B,MAAM,KAAKF,KAAKygJ,IAGvC,MAAMppG,EAAQklG,GAAY,IAAMwmB,GAAStiB,IAEzC,OADAppG,EAAM,GAAKA,EAAM79C,OAAS,EACnB69C,CAAK,MACT,IACX,CCrCO,SAASqsH,GAAOp0D,EAAM3wF,GACzB,OAXkDtnB,EAWjC9D,KAX0C+D,OAWpC,EAXmDE,EAWnC,YACpB,MAAXmnB,IACAA,EAAU,CAAC,GAEf,MAAM+oD,EAAU,CACZmiB,OAASlrE,EAAQkrE,QAAU,MAC3BxtD,QAAU1d,EAAQ0d,SAAW,CAAC,EAC9B/jC,KAAOqmB,EAAQrmB,WAAQlC,IAEI,IAA3BuoB,EAAQglJ,iBACRj8F,EAAQ15D,KAAO,OACf05D,EAAQspC,MAAQ,WAChBtpC,EAAQk8F,YAAc,cACtBl8F,EAAQm8F,SAAW,SACnBn8F,EAAQo8F,SAAW,UAGvB,MAAMp+D,QAAiBq+D,MAAMz0D,EAAM5nC,GAC7BpvE,QAAaotG,EAASs+D,cACtB3nI,EAAU,CAAC,EAWjB,OAVIqpE,EAASrpE,QAAQ98B,QACjBmmG,EAASrpE,QAAQ98B,SAAQ,CAAC7L,EAAO0B,KAC7BinC,EAAQjnC,EAAIshD,eAAiBhjD,CAAK,IAIpCgyG,EAAgB,QAAM,OAAInmG,SAASnK,IACjCinC,EAAQjnC,EAAIshD,eAAiBgvD,EAASrpE,QAAQ3lC,IAAItB,EAAI,IAGvD,CACHinC,QAASA,EACT4nI,WAAYv+D,EAAS1pF,OACrBkoJ,cAAex+D,EAASE,WACxBttG,KAAM68I,EAAS,IAAIvpI,WAAWtT,IAEtC,EA7CO,KAFgEf,OAWxC,KATbA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUlE,GAAS,IAAMmE,EAAKL,EAAUM,KAAKpE,GAAkC,CAAvB,MAAOqE,GAAKJ,EAAOI,EAAI,CAAE,CAC1F,SAASC,EAAStE,GAAS,IAAMmE,EAAKL,EAAiB,MAAE9D,GAAkC,CAAvB,MAAOqE,GAAKJ,EAAOI,EAAI,CAAE,CAC7F,SAASF,EAAKI,GAJlB,IAAevE,EAIauE,EAAOC,KAAOR,EAAQO,EAAOvE,QAJ1CA,EAIyDuE,EAAOvE,MAJhDA,aAAiB6D,EAAI7D,EAAQ,IAAI6D,GAAE,SAAUG,GAAWA,EAAQhE,EAAQ,KAIjByE,KAAKP,EAAWI,EAAW,CAC7GH,GAAML,EAAYA,EAAUY,MAAMf,EAASC,GAAc,KAAKQ,OAClE,IAPwC,IAAUT,EAASC,EAAYC,EAAGC,CAgD9E,CCjCA,MAAM,GAAS,IAAI+6I,EChBI,aDkBvB,SAAS4xB,GAAQC,GACb,OAAO,IAAI3sK,SAASC,IAChBg2C,WAAWh2C,EAAS0sK,EAAS,GAErC,CACA,SAASC,GAAQ3wK,EAAOiR,GACpB,GAAa,MAATjR,EACA,OAAO,KAEX,GAAuB,iBAAZ,EACP,OAAOA,EAEX,GAAIuhJ,EAAYvhJ,GAAQ,CACpB,GAAIiR,IAAgC,SAAvBA,EAAKzE,MAAM,KAAK,IAA+C,qBAA9ByE,EAAKzE,MAAM,KAAK,GAAG0tG,QAC7D,IACI,OAAOgvC,GAAalpJ,EAER,CAAhB,MAAO4+D,GAAS,CAGpB,OAAOujF,EAAQniJ,EACnB,CACA,OAAOA,CACX,CAOO,SAAS4wK,GAAWz/H,EAAYvsC,EAAMisK,GAEzC,MAAMC,EAAwC,iBAAjB,GAAyD,MAA5B3/H,EAAW4/H,cAAyB5/H,EAAW4/H,cAAgB,GACzH,GAAOzwB,eAAgBwwB,EAAe,GAAMA,EAAe,GAAO,EAAI,oCAAqC,2BAA4BA,GACvI,MAAME,EAA6C,iBAAjB,EAA6B7/H,EAAW6/H,iBAAmB,KACvFC,EAAiD,iBAAjB,GAA0E,iBAArC9/H,EAA+B,qBAAkBA,EAAW8/H,qBAAuB,IAC9J,GAAO3wB,eAAgB2wB,EAAuB,GAAMA,EAAuB,GAAO,EAAI,4CAA6C,kCAAmCA,GACtK,MAAMC,EAA6C,iBAAjB,KAAgC//H,EAA2B,iBACvFxI,EAAU,CAAC,EACjB,IAAIziC,EAAM,KAEV,MAAM+kB,EAAU,CACZkrE,OAAQ,OAEZ,IAAIg7E,GAAW,EACXtoI,EAAU,KACd,GAA4B,iBAAjB,EACP3iC,EAAMirC,OAEL,GAA4B,iBAAjB,EAA2B,CAQvC,GAPkB,MAAdA,GAAwC,MAAlBA,EAAWjrC,KACjC,GAAO+4I,mBAAmB,cAAe,iBAAkB9tG,GAE/DjrC,EAAMirC,EAAWjrC,IACmB,iBAAxBirC,EAAkB,SAAkBA,EAAWtI,QAAU,IACjEA,EAAUsI,EAAWtI,SAErBsI,EAAWxI,QACX,IAAK,MAAMjnC,KAAOyvC,EAAWxI,QACzBA,EAAQjnC,EAAIshD,eAAiB,CAAEthD,IAAKA,EAAK1B,MAAO+H,OAAOopC,EAAWxI,QAAQjnC,KACtE,CAAC,gBAAiB,qBAAqB2H,QAAQ3H,EAAIshD,gBAAkB,IACrEmuH,GAAW,GAKvB,GADAlmJ,EAAQmmJ,YAAcjgI,EAAWigI,UACV,MAAnBjgI,EAAWkgI,MAAuC,MAAvBlgI,EAAWiQ,SAAkB,CAC5B,WAAxBl7C,EAAI40B,UAAU,EAAG,KAA8D,IAA3CqW,EAAWmgI,6BAC/C,GAAOpxB,WAAW,mDAAoDrB,EAAOzlD,OAAO+mD,iBAAkB,CAAEC,SAAU,MAAOl6I,IAAKA,EAAKmrK,KAAMlgI,EAAWkgI,KAAMjwH,SAAU,eAExK,MAAMr/B,EAAgBovB,EAAWkgI,KAAO,IAAMlgI,EAAWiQ,SACzDzY,EAAuB,cAAI,CACvBjnC,IAAK,gBACL1B,MAAO,SAAW,GAAa6oJ,GAAY9mI,IAEnD,CACiC,MAA7BovB,EAAW8+H,iBACXhlJ,EAAQglJ,iBAAmB9+H,EAAW8+H,eAE9C,CACA,MAAMsB,EAAS,IAAIr2D,OAAO,6CAA8C,KAClEs2D,EAAa,EAAQtrK,EAAIsD,MAAM+nK,GAAU,KAC/C,GAAIC,EACA,IACI,MAAMx/D,EAAW,CACbu+D,WAAY,IACZC,cAAe,KACf7nI,QAAS,CAAE,eAAgB6oI,EAAU,IACrC5sK,KAAM,GAAa4sK,EAAU,KAEjC,IAAIjtK,EAASytG,EAASptG,KAItB,OAHIisK,IACAtsK,EAASssK,EAAY7+D,EAASptG,KAAMotG,IAEjCjuG,QAAQC,QAAQO,EAU3B,CARA,MAAOq6D,GACH,GAAOshF,WAAW,4BAA6BrB,EAAOzlD,OAAOq4E,aAAc,CACvE7sK,KAAM+rK,GAAQa,EAAU,GAAIA,EAAU,IACtC5yG,MAAOA,EACP8yG,YAAa,KACbC,cAAe,MACfzrK,IAAKA,GAEb,CAEAtB,IACAqmB,EAAQkrE,OAAS,OACjBlrE,EAAQrmB,KAAOA,EACgB,MAA3B+jC,EAAQ,kBACRA,EAAQ,gBAAkB,CAAEjnC,IAAK,eAAgB1B,MAAO,6BAE3B,MAA7B2oC,EAAQ,oBACRA,EAAQ,kBAAoB,CAAEjnC,IAAK,iBAAkB1B,MAAO+H,OAAOnD,EAAKkB,WAGhF,MAAM8rK,EAAc,CAAC,EACrB9xK,OAAO8L,KAAK+8B,GAAS98B,SAASnK,IAC1B,MAAMqxB,EAAS4V,EAAQjnC,GACvBkwK,EAAY7+I,EAAOrxB,KAAOqxB,EAAO/yB,KAAK,IAE1CirB,EAAQ0d,QAAUipI,EAClB,MAAMC,EAAiB,WACnB,IAAIC,EAAQ,KAwBZ,MAAO,CAAE78D,QAvBO,IAAIlxG,SAAQ,SAAUC,EAASC,GACvC4kC,IACAipI,EAAQ93H,YAAW,KACF,MAAT83H,IAGJA,EAAQ,KACR7tK,EAAO,GAAOq7I,UAAU,UAAWT,EAAOzlD,OAAO24E,QAAS,CACtDL,YAAaf,GAAQ1lJ,EAAQrmB,KAAMgtK,EAAY,iBAC/CD,cAAe1mJ,EAAQkrE,OACvBttD,QAASA,EACT3iC,IAAKA,KACN,GACJ2iC,GAEX,IAQkB8qE,OAPH,WACE,MAATm+D,IAGJE,aAAaF,GACbA,EAAQ,KACZ,EAEH,CA1BsB,GA2BjBG,EAAe,WACjB,OAvK8CtuK,EAuK7B9D,KAvKsC+D,OAuKhC,EAvK+CE,EAuK/B,YACnC,IAAK,IAAIouK,EAAU,EAAGA,EAAUpB,EAAcoB,IAAW,CACrD,IAAIlgE,EAAW,KACf,IAEI,GADAA,QAAiBg+D,GAAO9pK,EAAK+kB,GACzBinJ,EAAUpB,EACV,GAA4B,MAAxB9+D,EAASu+D,YAA8C,MAAxBv+D,EAASu+D,WAAoB,CAE5D,MAAMv0D,EAAWhK,EAASrpE,QAAQqzE,UAAY,GAC9C,GAAuB,QAAnB/wF,EAAQkrE,QAAoB6lB,EAASxyG,MAAM,WAAY,CACvDtD,EAAM8rG,EAASrpE,QAAQqzE,SACvB,QACJ,CACJ,MACK,GAA4B,MAAxBhK,EAASu+D,WAAoB,CAElC,IAAI4B,GAAW,EAIf,GAHInB,IACAmB,QAAiBnB,EAAiBkB,EAAShsK,IAE3CisK,EAAU,CACV,IAAIC,EAAQ,EACZ,MAAMC,EAAargE,EAASrpE,QAAQ,eAEhCypI,EADwB,iBAAjB,GAA6BC,EAAW7oK,MAAM,iBACtB,IAAvB2F,SAASkjK,GAGTpB,EAAuB9hK,SAASpH,OAAO6F,KAAK67H,SAAW77H,KAAKC,IAAI,EAAGqkK,WAGzEzB,GAAQ2B,GACd,QACJ,CACJ,CAcR,CAXA,MAAOxzG,GACHozC,EAAWpzC,EAAMozC,SACD,MAAZA,IACA6/D,EAAel+D,SACf,GAAOusC,WAAW,mBAAoBrB,EAAOzlD,OAAOq4E,aAAc,CAC9DC,YAAaf,GAAQ1lJ,EAAQrmB,KAAMgtK,EAAY,iBAC/CD,cAAe1mJ,EAAQkrE,OACvBm8E,YAAa1zG,EACb14D,IAAKA,IAGjB,CACA,IAAItB,EAAOotG,EAASptG,KAepB,GAdIusK,GAAoC,MAAxBn/D,EAASu+D,WACrB3rK,EAAO,MAEDssK,IAAqBl/D,EAASu+D,WAAa,KAAOv+D,EAASu+D,YAAc,OAC/EsB,EAAel+D,SACf,GAAOusC,WAAW,eAAgBrB,EAAOzlD,OAAOq4E,aAAc,CAC1DnpJ,OAAQ0pF,EAASu+D,WACjB5nI,QAASqpE,EAASrpE,QAClB/jC,KAAM+rK,GAAQ/rK,EAAQotG,EAAgB,QAAIA,EAASrpE,QAAQ,gBAAkB,MAC7E+oI,YAAaf,GAAQ1lJ,EAAQrmB,KAAMgtK,EAAY,iBAC/CD,cAAe1mJ,EAAQkrE,OACvBjwF,IAAKA,KAGT2qK,EACA,IACI,MAAMtsK,QAAessK,EAAYjsK,EAAMotG,GAEvC,OADA6/D,EAAel+D,SACRpvG,CAwBX,CAtBA,MAAOq6D,GAEH,GAAIA,EAAM2zG,eAAiBL,EAAUpB,EAAc,CAC/C,IAAIqB,GAAW,EAIf,GAHInB,IACAmB,QAAiBnB,EAAiBkB,EAAShsK,IAE3CisK,EAAU,CACV,MAAMtpI,EAAUooI,EAAuB9hK,SAASpH,OAAO6F,KAAK67H,SAAW77H,KAAKC,IAAI,EAAGqkK,WAE7EzB,GAAQ5nI,GACd,QACJ,CACJ,CACAgpI,EAAel+D,SACf,GAAOusC,WAAW,4BAA6BrB,EAAOzlD,OAAOq4E,aAAc,CACvE7sK,KAAM+rK,GAAQ/rK,EAAQotG,EAAgB,QAAIA,EAASrpE,QAAQ,gBAAkB,MAC7Ei2B,MAAOA,EACP8yG,YAAaf,GAAQ1lJ,EAAQrmB,KAAMgtK,EAAY,iBAC/CD,cAAe1mJ,EAAQkrE,OACvBjwF,IAAKA,GAEb,CAKJ,OAHA2rK,EAAel+D,SAGR/uG,CACX,CACA,OAAO,GAAOs7I,WAAW,kBAAmBrB,EAAOzlD,OAAOq4E,aAAc,CACpEC,YAAaf,GAAQ1lJ,EAAQrmB,KAAMgtK,EAAY,iBAC/CD,cAAe1mJ,EAAQkrE,OACvBjwF,IAAKA,GAEb,EA5QG,KAFgErC,OAuKpC,KArKjBA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUlE,GAAS,IAAMmE,EAAKL,EAAUM,KAAKpE,GAAkC,CAAvB,MAAOqE,GAAKJ,EAAOI,EAAI,CAAE,CAC1F,SAASC,EAAStE,GAAS,IAAMmE,EAAKL,EAAiB,MAAE9D,GAAkC,CAAvB,MAAOqE,GAAKJ,EAAOI,EAAI,CAAE,CAC7F,SAASF,EAAKI,GAJlB,IAAevE,EAIauE,EAAOC,KAAOR,EAAQO,EAAOvE,QAJ1CA,EAIyDuE,EAAOvE,MAJhDA,aAAiB6D,EAAI7D,EAAQ,IAAI6D,GAAE,SAAUG,GAAWA,EAAQhE,EAAQ,KAIjByE,KAAKP,EAAWI,EAAW,CAC7GH,GAAML,EAAYA,EAAUY,MAAMf,EAASC,GAAc,KAAKQ,OAClE,IAPwC,IAAUT,EAASC,EAAYC,EAAGC,CA+QzE,CAzGoB,GA0GrB,OAAOC,QAAQyuK,KAAK,CAACX,EAAe58D,QAASg9D,GACjD,CACO,SAASQ,GAAUthI,EAAYs8B,EAAMojG,GACxC,IAqBIjsK,EAAO,KACX,GAAY,MAAR6oE,EAAc,CACd7oE,EAAOikJ,GAAYp7E,GAEnB,MAAMzqC,EAAmC,iBAAjB,EAA6B,CAAG98B,IAAKirC,GAAgBgzG,GAAYhzG,GACrFnO,EAAQ2F,QAC6G,IAA7F7oC,OAAO8L,KAAKo3B,EAAQ2F,SAASv7B,QAAQ5K,GAA2B,iBAApBA,EAAEwgD,gBAAyC,SAE3GhgB,EAAQ2F,QAAUw7G,GAAYnhH,EAAQ2F,SACtC3F,EAAQ2F,QAAQ,gBAAkB,oBAItC3F,EAAQ2F,QAAU,CAAE,eAAgB,oBAExCwI,EAAanO,CACjB,CACA,OAAO4tI,GAAWz/H,EAAYvsC,GAtCR,CAAC5E,EAAOgyG,KAC1B,IAAIztG,EAAS,KACb,GAAa,MAATvE,EACA,IACIuE,EAAS4+B,KAAKx6B,MAAMugJ,GAAalpJ,GAOrC,CALA,MAAO4+D,GACH,GAAOshF,WAAW,eAAgBrB,EAAOzlD,OAAOq4E,aAAc,CAC1D7sK,KAAM5E,EACN4+D,MAAOA,GAEf,CAKJ,OAHIiyG,IACAtsK,EAASssK,EAAYtsK,EAAQytG,IAE1BztG,CAAM,GAuBrB,CACO,SAASmuK,GAAKzoB,EAAMh/H,GAcvB,OAbKA,IACDA,EAAU,CAAC,GAGM,OADrBA,EAAUk5H,GAAYl5H,IACVylC,QACRzlC,EAAQylC,MAAQ,GAEG,MAAnBzlC,EAAQy2I,UACRz2I,EAAQy2I,QAAU,KAEE,MAApBz2I,EAAQ0nJ,WACR1nJ,EAAQ0nJ,SAAW,KAEhB,IAAI5uK,SAAQ,SAAUC,EAASC,GAClC,IAAI6tK,EAAQ,KACRttK,GAAO,EAEX,MAAMmvG,EAAS,KACPnvG,IAGJA,GAAO,EACHstK,GACAE,aAAaF,IAEV,GAEP7mJ,EAAQ4d,UACRipI,EAAQ93H,YAAW,KACX25D,KACA1vG,EAAO,IAAIkC,MAAM,WACrB,GACD8kB,EAAQ4d,UAEf,MAAM+pI,EAAa3nJ,EAAQ2nJ,WAC3B,IAAIV,EAAU,GACd,SAAS9W,IACL,OAAOnR,IAAOxlJ,MAAK,SAAUF,GAEzB,QAAe7B,IAAX6B,EACIovG,KACA3vG,EAAQO,QAGX,GAAI0mB,EAAQ4nJ,SACb5nJ,EAAQ4nJ,SAAS9V,KAAK,OAAQ3B,QAE7B,GAAInwI,EAAQ6nJ,UACb7nJ,EAAQ6nJ,UAAU/V,KAAK,QAAS3B,QAG/B,IAAK52J,EAAM,CAEZ,GADA0tK,IACIA,EAAUU,EAIV,YAHIj/D,KACA1vG,EAAO,IAAIkC,MAAM,yBAIzB,IAAI0iC,EAAU5d,EAAQ0nJ,SAAWxjK,SAASpH,OAAO6F,KAAK67H,SAAW77H,KAAKC,IAAI,EAAGqkK,KACzErpI,EAAU5d,EAAQylC,QAClB7nB,EAAU5d,EAAQylC,OAElB7nB,EAAU5d,EAAQy2I,UAClB74H,EAAU5d,EAAQy2I,SAEtB1nH,WAAWohH,EAAOvyH,EACtB,CACA,OAAO,IACX,IAAG,SAAU+1B,GACL+0C,KACA1vG,EAAO26D,EAEf,GACJ,CACAw8F,EACJ,GACJ,4BE1YO,MAAM,GAAU,kBCSjB,GAAS,IAAIvc,EAAO,IACnB,MAAMk0B,GACT9qK,cACIpI,KAAKmzK,QAAUnzK,KAAKozK,mBACxB,CACAA,oBACI,MAAMD,EAAU,CAAG,EACb/sK,EAAUpG,KAAKoG,QAAQ8/B,KAAKlmC,MAC5BqzK,EAAYrzK,KAAKqzK,UAAUntI,KAAKlmC,MAChCq1J,EAAWr1J,KAAKq1J,SAASnvH,KAAKlmC,MAC9BoK,EAAOpK,KAAKoK,KAAK87B,KAAKlmC,MACtB+1B,EAAO/1B,KAAK+1B,KAAKmQ,KAAKlmC,MACtBmxD,EAAMnxD,KAAKmxD,IAAIjrB,KAAKlmC,MACpBikD,EAASjkD,KAAKikD,OAAO/d,KAAKlmC,MAC1BoR,EAAOpR,KAAKoR,KAAK80B,KAAKlmC,MAuG5B,OArGAmzK,EAAQxrB,YAAc,CAClB5xH,KAAMA,EACN3kB,KAAMA,EACNipJ,WAAY6Y,GAAUI,UAAUtzK,KAAKq6J,WAAWn0H,KAAKlmC,MAAO,MAC5Do8J,UAAW8W,GAAUI,UAAUv9I,EAAM,MACrCw9I,YAAaL,GAAUI,UAAUrvH,EAAQ,MACzCuvH,iBAAkBN,GAAUI,UAAUrvH,EAAQ,MAC9C+3G,cAAekX,GAAUI,UAAUrvH,EAAQ,MAC3C74C,KAAMhF,EAGNquJ,SAAUye,GAAUI,UAAUD,GAC9Bze,qBAAsBse,GAAUI,UAAUD,GAC1C1e,aAAcue,GAAUI,UAAUD,GAClCrjK,SAAUqjK,EACVloK,GAAI+nK,GAAUI,UAAUltK,EAAS,MACjCjG,MAAOkzK,EACPvxG,MAAO7d,EACP75C,KAAMA,EACNi+B,EAAG6qI,GAAUI,UAAUtzK,KAAKyzK,SAC5B1oK,EAAGmoK,GAAUI,UAAUtzK,KAAKyzK,SAC5B5tK,EAAGqtK,GAAUI,UAAUrvH,GACvByvH,QAASR,GAAUI,UAAUltK,EAAS,MACtCi8D,IAAK6wG,GAAUI,UAAUlpK,IAE7B+oK,EAAQQ,mBAAqB,CACzBvoK,KAAM8nK,GAAUI,UAAUltK,GAC1B07D,MAAOoxG,GAAUI,UAAUrvH,GAC3Bj0C,SAAUkjK,GAAUI,UAAUD,GAC9B5e,SAAUye,GAAUI,UAAUD,GAC9Bze,qBAAsBse,GAAUI,UAAUD,GAC1C1e,aAAcue,GAAUI,UAAUD,GAClCloK,GAAI+nK,GAAUI,UAAUltK,GACxBjG,MAAO+yK,GAAUI,UAAUD,GAC3BjpK,KAAM8oK,GAAUI,WAnCAztK,GAAe7F,KAAKoK,KAAKvE,GAAG,KAoC5CuL,KAAM8hK,GAAUI,UAAUrvH,GAC1Bo2G,WAAY6Y,GAAUI,UAAUtzK,KAAKq6J,WAAWn0H,KAAKlmC,MAAO,OAEhEmzK,EAAQS,WAAa,CACjBJ,iBAAkBvvH,EAClBsvH,YAAatvH,EACbq4G,gBAAiBvmI,EACjB3vB,QAASA,EACT6sJ,OAAQigB,GAAUW,QAAQ99I,GAC1B3rB,KAAMA,EACN0pK,SAAU7vH,EACVm4G,UAAWrmI,GAEfo9I,EAAQlX,QAAU,CACd9wJ,GAAI+nK,GAAUI,UAAUtzK,KAAKoG,QAAS,MACtCgF,KAAM8nK,GAAUI,UAAUtzK,KAAKoG,QAAS,MACxC80C,gBAAiBg4H,GAAUI,UAAUltK,EAAS,MAC9CotK,iBAAkBvvH,EAElBxkD,KAAMyzK,GAAUI,UAAUniH,GAC1BtzC,QAASw1J,EACTU,UAAWb,GAAUI,UAAUlpK,GAC/BgyJ,UAAWrmI,EACXumI,gBAAiBvmI,EACjB3Y,KAAM81J,GAAUW,QAAQ7zK,KAAK4zK,WAAW1tI,KAAKlmC,OAC7CuzK,YAAatvH,EACb+3G,cAAekX,GAAUI,UAAUrvH,EAAQ,MAC3C+vH,kBAAmBX,EACnBY,kBAAmBf,GAAUI,UAAUD,GACvC5qJ,OAAQyqJ,GAAUI,UAAUrvH,GAC5B7yC,KAAMA,GAEV+hK,EAAQj8I,MAAQ,CACZnB,KAAMm9I,GAAUI,UAAUv9I,GAC1Bm+I,WAAYn+I,EACZkuB,OAAQA,EACRzmC,UAAWymC,EACX6d,MAAOoxG,GAAUI,UAAUniH,GAC3BgjH,WAAYn0K,KAAKm0K,WAAWjuI,KAAKlmC,MACjCgQ,SAAUqjK,EACVx1J,QAASw1J,EACTe,MAAOlB,GAAUI,UAAUltK,GAC3BiuK,UAAWjqK,EACXkqK,aAAcpB,GAAUI,UAAUJ,GAAUW,QAAQ99I,IACpD8+H,cAAeqe,GAAUI,UAAUD,IAEvCF,EAAQoB,sBAAwBjwB,GAAY6uB,EAAQj8I,OACpDi8I,EAAQoB,sBAAsBD,aAAepB,GAAUI,UAAUJ,GAAUW,QAAQ7zK,KAAKw0K,oBAAoBtuI,KAAKlmC,QACjHmzK,EAAQ5lK,OAAS,CACboyJ,UAAWuT,GAAUI,UAAUje,OAAUxyJ,GACzC68J,QAASwT,GAAUI,UAAUje,OAAUxyJ,GACvCu5J,UAAW8W,GAAUI,UAAUv9I,OAAMlzB,GACrCuD,QAAS8sK,GAAUI,UAAUltK,OAASvD,GACtCowJ,OAAQigB,GAAUI,UAAUtzK,KAAKizJ,OAAO/sH,KAAKlmC,WAAO6C,IAExDswK,EAAQsB,UAAY,CAChBlB,YAAaL,GAAUI,UAAUrvH,GACjCm4G,UAAW8W,GAAUI,UAAUv9I,GAC/By9I,iBAAkBvvH,EAClBywH,QAASxB,GAAUI,UAAUtzK,KAAKm2G,QAAQjwE,KAAKlmC,OAC/CoG,QAASA,EACTgE,KAAM8oK,GAAUyB,aAAavqK,EAAM,MACnC6oJ,OAAQigB,GAAUW,QAAQ99I,GAC1BumI,gBAAiBvmI,EACjB+9I,SAAU7vH,GAEPkvH,CACX,CACA9Y,WAAWA,GACP,OAAOJ,GAAcI,GAAc,GACvC,CAGAp2G,OAAOA,GACH,MAAe,OAAXA,EACO,EAEJs/F,EAAUn4I,KAAK64C,GAAQz0C,UAClC,CACA4B,KAAK6yC,GACD,MAAe,OAAXA,GAA6B,MAAVA,EACZ,EAEJs/F,EAAUn4I,KAAK64C,GAAQz0C,UAClC,CAEA6jK,UAAUlzK,GACN,OAAOojJ,EAAUn4I,KAAKjL,EAC1B,CAEAg2G,QAAQh2G,GACJ,GAAuB,kBAAZ,EACP,OAAOA,EAEX,GAAuB,iBAAZ,EAAsB,CAE7B,GAAc,UADdA,EAAQA,EAAMgjD,eAEV,OAAO,EAEX,GAAc,UAAVhjD,EACA,OAAO,CAEf,CACA,MAAM,IAAImG,MAAM,qBAAuBnG,EAC3C,CACAgxD,IAAIhxD,EAAOsgE,GACP,MAAuB,iBAAZ,IACFA,GAAoC,OAA1BtgE,EAAM86B,UAAU,EAAG,KAC9B96B,EAAQ,KAAOA,GAEf,EAAYA,IACLA,EAAMgjD,cAGd,GAAOi8F,mBAAmB,eAAgB,QAASj/I,EAC9D,CACAiK,KAAKjK,EAAOsgE,GACR,MAAM/7D,EAAS1E,KAAKmxD,IAAIhxD,EAAOsgE,GAC/B,GAAK/7D,EAAOuB,OAAS,GAAO,EACxB,MAAM,IAAIK,MAAM,8BAAgCnG,GAEpD,OAAOuE,CACX,CAGA0B,QAAQjG,GACJ,OAAO8G,GAAW9G,EACtB,CACAy0K,YAAYz0K,GACR,IAAK,EAAYA,EAAO,IACpB,OAAO,KAEX,MAAMiG,EAAUa,GAAWu7I,EAAariJ,EAAO,KAC/C,OAAQiG,IAAYulK,GAAe,KAAOvlK,CAC9C,CACA80C,gBAAgB/6C,GACZ,OAAOunJ,GAAmBvnJ,EAC9B,CAEAk1J,SAASA,GACL,GAAgB,MAAZA,EACA,MAAO,SAEX,GAAiB,aAAbA,EACA,MAAO,MAEX,GAAiB,WAAbA,GAAsC,YAAbA,EACzB,OAAOA,EAEX,GAA0B,iBAAf,GAA2B,EAAYA,GAC9C,OAAO1S,EAAS0S,GAEpB,MAAM,IAAI/uJ,MAAM,mBACpB,CAEAyvB,KAAK51B,EAAOsgE,GACR,MAAM/7D,EAAS1E,KAAKmxD,IAAIhxD,EAAOsgE,GAC/B,OAA8B,KAA1B8hF,EAAc79I,GACP,GAAO06I,mBAAmB,eAAgB,QAASj/I,GAEvDuE,CACX,CAEAyvK,WAAWh0K,GACP,GAAa,MAATA,EACA,OAAO,KAEX,MAAM0F,EAAI09I,EAAUn4I,KAAKjL,GACzB,IACI,OAAO0F,EAAE2J,UAEG,CAAhB,MAAOuvD,GAAS,CAChB,OAAO,IACX,CACA00G,QAAQtzK,GACJ,IAAK,EAAYA,GACb,MAAM,IAAImG,MAAM,mBAEpB,OAAOw8I,EAAW3iJ,EAAO,GAC7B,CACA00K,OAAO10K,EAAO4hF,GACU,MAAhB5hF,EAAM8+C,QAAiC,MAAf9+C,EAAMi0K,QAC9Bj0K,EAAMi0K,MAAQj0K,EAAM8+C,QAGxB,MAAMk1H,EAAmC,MAArBh0K,EAAM20K,YAAuB30K,EAAM20K,YAAc30K,EAAMg0K,WACrEzvK,EAASwuK,GAAU3X,MAAMx5E,EAAQ5hF,GAEvC,OADAuE,EAAOowK,YAA8B,MAAdX,EAAsB,KAAO5wB,EAAUn4I,KAAK+oK,GAC5DzvK,CACX,CACAwyB,MAAM/2B,GACF,OAAOH,KAAK60K,OAAO10K,EAAOH,KAAKmzK,QAAQj8I,MAC3C,CACAq9I,sBAAsBp0K,GAClB,OAAOH,KAAK60K,OAAO10K,EAAOH,KAAKmzK,QAAQoB,sBAC3C,CAEAZ,mBAAmBxzK,GACf,OAAO+yK,GAAU3X,MAAMv7J,KAAKmzK,QAAQQ,mBAAoBxzK,EAC5D,CACAq0K,oBAAoB7sB,GAEO,MAAnBA,EAAY53I,KAAuC,MAAxB43I,EAAY33I,WACvC23I,EAAY33I,SAAW23I,EAAY53I,KAInC43I,EAAYx8I,IAAMo4I,EAAUn4I,KAAKu8I,EAAYx8I,IAAI6jE,WACjD24E,EAAYx8I,GAAK,8CAGI,MAArBw8I,EAAYl/E,OAAqC,MAApBk/E,EAAYv9I,OACzCu9I,EAAYv9I,KAAOu9I,EAAYl/E,OAGb,MAAlBk/E,EAAYx8I,IAAqC,MAAvBw8I,EAAY+rB,UACtC/rB,EAAY+rB,QAAU1zK,KAAKk7C,gBAAgBysG,IAErB,IAArBA,EAAYv2I,MAAmC,IAArBu2I,EAAYv2I,MAAyC,MAA1Bu2I,EAAY0S,aAClE1S,EAAY0S,WAAa,IAE7B,MAAM31J,EAASwuK,GAAU3X,MAAMv7J,KAAKmzK,QAAQxrB,YAAaA,GACzD,GAA2B,MAAvBA,EAAYhuI,QAAiB,CAC7B,IAAIA,EAAUguI,EAAYhuI,QACtB,EAAYA,KACZA,EAAU4pI,EAAUn4I,KAAKuO,GAASnK,YAEtC9K,EAAOiV,QAAUA,CACrB,KACK,CACD,IAAIA,EAAUguI,EAAYotB,UAEX,MAAXp7J,GAA+B,MAAZjV,EAAOmB,IAC1B8T,EAAUguI,EAAYhuI,SAEtB,EAAYA,KACZA,EAAU4pI,EAAUn4I,KAAKuO,GAASnK,YAEb,iBAAd,GAAsC,MAAZ9K,EAAOmB,IACxC8T,GAAWjV,EAAOmB,EAAI,IAAM,EACxB8T,EAAU,IACVA,EAAU,GAEdA,EAAUrK,SAASqK,IAEE,iBAAd,IACPA,EAAU,GAEdjV,EAAOiV,QAAUA,CACrB,CAKA,OAHIjV,EAAO03J,WAAoD,MAAvC13J,EAAO03J,UAAU/5I,QAAQ,KAAM,MACnD3d,EAAO03J,UAAY,MAEhB13J,CACX,CACAijJ,YAAYxnJ,GACR,OAAO2I,GAAiB3I,EAC5B,CACAyzK,WAAWzzK,GACP,OAAO+yK,GAAU3X,MAAMv7J,KAAKmzK,QAAQS,WAAYzzK,EACpD,CACA87J,QAAQ97J,GACJ,MAAMuE,EAASwuK,GAAU3X,MAAMv7J,KAAKmzK,QAAQlX,QAAS97J,GAErD,GAAmB,MAAfuE,EAAOjF,KACP,GAAIiF,EAAOjF,KAAKwG,QAAU,EAAG,CAEzB,MAAM9F,EAAQojJ,EAAUn4I,KAAK1G,EAAOjF,MAAM+P,WAC5B,IAAVrP,GAAyB,IAAVA,GAEM,MAAjBuE,EAAO+jB,QAAmB/jB,EAAO+jB,SAAWtoB,GAC5C,GAAOi/I,mBAAmB,kCAAmC,QAAS,CAAE3/I,KAAMiF,EAAOjF,KAAMgpB,OAAQ/jB,EAAO+jB,SAE9G/jB,EAAO+jB,OAAStoB,SACTuE,EAAOjF,MAGd,GAAO2/I,mBAAmB,0BAA2B,aAAc16I,EAAOjF,KAElF,MACgC,KAAvBiF,EAAOjF,KAAKwG,QAEjB,GAAOm5I,mBAAmB,oBAAqB,aAAc16I,EAAOjF,MAM5E,OAHqB,MAAjBiF,EAAO+jB,SACP/jB,EAAOswK,WAAY,GAEhBtwK,CACX,CACAuuJ,OAAO9yJ,GACH,OAAI8H,MAAM6D,QAAQ3L,GACPA,EAAMsM,KAAK5G,GAAM7F,KAAKizJ,OAAOptJ,KAEtB,MAAT1F,EACEH,KAAK+1B,KAAK51B,GAAO,GAErB,IACX,CACAoN,OAAOpN,GACH,OAAO+yK,GAAU3X,MAAMv7J,KAAKmzK,QAAQ5lK,OAAQpN,EAChD,CACAs0K,UAAUt0K,GACN,OAAO+yK,GAAU3X,MAAMv7J,KAAKmzK,QAAQsB,UAAWt0K,EACnD,CACAyzD,aAAamuB,EAAQzS,GACjB,MAAM5qE,EAAS,CAAC,EAChB,IAAK,MAAM7C,KAAOkgF,EACd,IACI,MAAM5hF,EAAQ4hF,EAAOlgF,GAAKytE,EAAOztE,SACnBgB,IAAV1C,IACAuE,EAAO7C,GAAO1B,EAOtB,CAJA,MAAO4+D,GAGH,MAFAA,EAAMk2G,SAAWpzK,EACjBk9D,EAAMwwD,WAAajgD,EAAOztE,GACpBk9D,CACV,CAEJ,OAAOr6D,CACX,CAEAkvD,iBAAiBmuB,EAAQmzF,GACrB,OAAO,SAAW/0K,GACd,OAAa,MAATA,EACO+0K,EAEJnzF,EAAO5hF,EACjB,CACL,CAEAyzD,oBAAoBmuB,EAAQozF,GACxB,OAAO,SAAWh1K,GACd,OAAKA,EAGE4hF,EAAO5hF,GAFHg1K,CAGd,CACL,CAEAvhH,eAAemuB,GACX,OAAO,SAAW3wB,GACd,IAAKnpD,MAAM6D,QAAQslD,GACf,MAAM,IAAI9qD,MAAM,gBAEpB,MAAM5B,EAAS,GAIf,OAHA0sD,EAAMplD,SAAQ,SAAU7L,GACpBuE,EAAOwB,KAAK67E,EAAO5hF,GACvB,IACOuE,CACV,CACL,EAEG,SAAS0wK,GAAuBj1K,GACnC,OAAQA,GAAgD,mBAA/BA,EAAyB,mBACtD,CACO,SAASk1K,GAAoBl1K,GAChC,OAAQi1K,GAAuBj1K,IAAUA,EAAMk1K,qBACnD,CAEA,IAAIC,IAAkB,EACf,SAASC,KACRD,KAGJA,IAAkB,EAClBrzK,QAAQC,IAAI,8BACZD,QAAQC,IAAI,8DACZD,QAAQC,IAAI,IACZD,QAAQC,IAAI,6EACZD,QAAQC,IAAI,sEACZD,QAAQC,IAAI,IACZD,QAAQC,IAAI,2EACZD,QAAQC,IAAI,0EACZD,QAAQC,IAAI,iFACZD,QAAQC,IAAI,IACZD,QAAQC,IAAI,sDACZD,QAAQC,IAAI,8BAChB,CCvbA,IAAI,GAAwC,SAAU4B,EAASC,EAAYC,EAAGC,GAE1E,OAAO,IAAKD,IAAMA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUlE,GAAS,IAAMmE,EAAKL,EAAUM,KAAKpE,GAAkC,CAAvB,MAAOqE,GAAKJ,EAAOI,EAAI,CAAE,CAC1F,SAASC,EAAStE,GAAS,IAAMmE,EAAKL,EAAiB,MAAE9D,GAAkC,CAAvB,MAAOqE,GAAKJ,EAAOI,EAAI,CAAE,CAC7F,SAASF,EAAKI,GAJlB,IAAevE,EAIauE,EAAOC,KAAOR,EAAQO,EAAOvE,QAJ1CA,EAIyDuE,EAAOvE,MAJhDA,aAAiB6D,EAAI7D,EAAQ,IAAI6D,GAAE,SAAUG,GAAWA,EAAQhE,EAAQ,KAIjByE,KAAKP,EAAWI,EAAW,CAC7GH,GAAML,EAAYA,EAAUY,MAAMf,EAASC,GAAc,KAAKQ,OAClE,GACJ,EAgBA,MAAM,GAAS,IAAIy6I,EAAO,IAK1B,SAASw2B,GAAWxhB,GAChB,OAAa,MAATA,EACO,QAEkB,KAAzBzR,EAAcyR,IACd,GAAO5U,mBAAmB,gBAAiB,QAAS4U,GAEjDA,EAAM7wG,cACjB,CACA,SAASsyH,GAAgBxiB,GAGrB,IADAA,EAASA,EAAOznJ,QACTynJ,EAAOhtJ,OAAS,GAAkC,MAA7BgtJ,EAAOA,EAAOhtJ,OAAS,IAC/CgtJ,EAAOjtJ,MAEX,OAAOitJ,EAAOxmJ,KAAKunJ,IACf,GAAI/rJ,MAAM6D,QAAQkoJ,GAAQ,CAEtB,MAAMnK,EAAS,CAAC,EAChBmK,EAAMhoJ,SAASgoJ,IACXnK,EAAO2rB,GAAWxhB,KAAU,CAAI,IAGpC,MAAM72G,EAASl9C,OAAO8L,KAAK89I,GAE3B,OADA1sG,EAAOhwC,OACAgwC,EAAOzwC,KAAK,IACvB,CAEI,OAAO8oK,GAAWxhB,EACtB,IACDtnJ,KAAK,IACZ,CAeA,SAAS,GAAYqoJ,GACjB,GAA2B,iBAAhB,EAA0B,CAEjC,GAAiC,KAA7BxS,EADJwS,EAAYA,EAAU5xG,eAElB,MAAO,MAAQ4xG,EAEnB,IAAgC,IAA5BA,EAAUvrJ,QAAQ,KAClB,OAAOurJ,CAEf,KACK,IAAI9sJ,MAAM6D,QAAQipJ,GACnB,MAAO,YAAc0gB,GAAgB1gB,GAEpC,GAAIV,GAAUqhB,YAAY3gB,GAE3B,MADA,GAAO33C,KAAK,mBACN,IAAI92G,MAAM,mBAEf,GAAIyuJ,GAAoC,iBAAhB,EACzB,MAAO,WAAaA,EAAU3uJ,SAAW,KAAO,IAAMqvK,GAAgB1gB,EAAU9B,QAAU,GAC9F,CACA,MAAM,IAAI3sJ,MAAM,mBAAqByuJ,EACzC,CAGA,SAASt+E,KACL,OAAO,IAAKhvE,MAAQgvE,SACxB,CACA,SAAS87F,GAAM1B,GACX,OAAO,IAAI3sK,SAASC,IAChBg2C,WAAWh2C,EAAS0sK,EAAS,GAErC,CAeA,MAAM8E,GAAiB,CAAC,QAAS,UAAW,UAAW,QAChD,MAAM1kG,GACT7oE,YAAYs5D,EAAK+zC,EAAUynD,GACvBjZ,GAAejkJ,KAAM,MAAO0hE,GAC5BuiF,GAAejkJ,KAAM,WAAYy1G,GACjCwuC,GAAejkJ,KAAM,OAAQk9J,GAC7Bl9J,KAAK41K,kBAAoB,EACzB51K,KAAK61K,WAAY,CACrB,CACI3Z,YACA,OAAQl8J,KAAKoR,MACT,IAAK,KACD,OAAOpR,KAAK+1B,KAChB,IAAK,SACD,OAAO/1B,KAAKuN,OAEpB,OAAOvN,KAAK0hE,GAChB,CACItwD,WACA,OAAOpR,KAAK0hE,IAAI/0D,MAAM,KAAK,EAC/B,CACIopB,WACA,MAAMi5H,EAAQhvJ,KAAK0hE,IAAI/0D,MAAM,KAC7B,MAAiB,OAAbqiJ,EAAM,GACC,KAEJA,EAAM,EACjB,CACIzhJ,aACA,MAAMyhJ,EAAQhvJ,KAAK0hE,IAAI/0D,MAAM,KAC7B,GAAiB,WAAbqiJ,EAAM,GACN,OAAO,KAEX,MAAM5oJ,EAAU4oJ,EAAM,GAChBiE,EA7FG,MADU7oJ,EA8Fc4kJ,EAAM,IA5FhC,GAEJ5kJ,EAAKuC,MAAM,MAAMF,KAAKunJ,IACzB,GAAc,KAAVA,EACA,MAAO,GAEX,MAAMhF,EAAQgF,EAAMrnJ,MAAM,KAAKF,KAAKunJ,GACb,SAAVA,EAAoB,KAAOA,IAExC,OAA0B,IAAjBhF,EAAM/oJ,OAAgB+oJ,EAAM,GAAKA,CAAM,IAXxD,IAA2B5kJ,EA+FnB,MAAMmD,EAAS,CAAC,EAOhB,OANI0lJ,EAAOhtJ,OAAS,IAChBsH,EAAO0lJ,OAASA,GAEhB7sJ,GAAuB,MAAZA,IACXmH,EAAOnH,QAAUA,GAEdmH,CACX,CACAuoK,WACI,OAAQ91K,KAAK0hE,IAAIl4D,QAAQ,MAAQ,GAAKmsK,GAAensK,QAAQxJ,KAAK0hE,MAAQ,CAC9E,EAIJ,MAAMq0G,GAAY,CACd,EAAK,CAAEC,OAAQ,MAAOC,MAAO,EAAMC,KAAM,EAAM9wJ,OAAQ,MACvD,EAAK,CAAE4wJ,OAAQ,MAAOC,MAAO,GAAMC,KAAM,GAAM9wJ,OAAQ,OACvD,EAAK,CAAE4wJ,OAAQ,OAAQC,MAAO,GAAMC,KAAM,IAC1C,GAAM,CAAEF,OAAQ,MAAOG,IAAK,OAC5B,GAAM,CAAEH,OAAQ,MAAOG,IAAK,OAC5B,IAAO,CAAEH,OAAQ,OAAQG,IAAK,QAElC,SAASC,GAAWj2K,GAChB,OAAO2iJ,EAAWS,EAAUn4I,KAAKjL,GAAO2hJ,cAAe,GAC3D,CAEA,SAASu0B,GAAajsK,GAClB,OAAO66J,GAAOztJ,OAAOxV,EAAO,CAACoI,EAAMo4I,EAAazqI,GAAOA,GAAO3N,IAAQ,EAAG,KAC7E,CACA,MAAMksK,GAAc,IAAIj7D,OAAO,kBAAoB,KAC7Ck7D,GAAW,CACb,IAAIl7D,OAAO,mBAAqB,KAChC,IAAIA,OAAO,gBAAiB,KAC5Bi7D,GACA,IAAIj7D,OAAO,mCAAoC,MAEnD,SAASm7D,GAAa9xK,EAAQu/D,GAC1B,IACI,OAAOolF,GAAaotB,GAAY/xK,EAAQu/D,GAE5B,CAAhB,MAAOlF,GAAS,CAChB,OAAO,IACX,CACA,SAAS03G,GAAY/xK,EAAQu/D,GACzB,GAAe,OAAXv/D,EACA,OAAO,KAEX,MAAMwmD,EAASq4F,EAAUn4I,KAAKo3I,EAAa99I,EAAQu/D,EAAOA,EAAQ,KAAKz0D,WACjEvJ,EAASs9I,EAAUn4I,KAAKo3I,EAAa99I,EAAQwmD,EAAQA,EAAS,KAAK17C,WACzE,OAAOgzI,EAAa99I,EAAQwmD,EAAS,GAAIA,EAAS,GAAKjlD,EAC3D,CAEA,SAASywK,GAAYC,GAUjB,OATIA,EAAKhtK,MAAM,qBACXgtK,EAAOA,EAAK17I,UAAU,IAEjB07I,EAAKhtK,MAAM,eAChBgtK,EAAOA,EAAK17I,UAAU,GAGtB,GAAOmkH,mBAAmB,0BAA2B,OAAQu3B,GAE1D,gCAAiCA,GAC5C,CACA,SAASC,GAAOz2K,GACZ,MAAMuE,EAASk9I,EAASzhJ,GACxB,GAAIuE,EAAOuB,OAAS,GAChB,MAAM,IAAIK,MAAM,+BAEpB,MAAMwjH,EAAS,IAAIzxG,WAAW,IAE9B,OADAyxG,EAAO98G,IAAItI,EAAQ,GAAKA,EAAOuB,QACxB6jH,CACX,CACA,SAAS+sD,GAAS12K,GACd,GAAKA,EAAM8F,OAAS,IAAQ,EACxB,OAAO9F,EAEX,MAAMuE,EAAS,IAAI2T,WAA0C,GAA/BtK,KAAK1E,KAAKlJ,EAAM8F,OAAS,KAEvD,OADAvB,EAAOsI,IAAI7M,GACJuE,CACX,CAEA,SAASoyK,GAAYC,GACjB,MAAMryK,EAAS,GACf,IAAIsyK,EAAY,EAEhB,IAAK,IAAIhsK,EAAI,EAAGA,EAAI+rK,EAAM9wK,OAAQ+E,IAC9BtG,EAAOwB,KAAK,MACZ8wK,GAAa,GAEjB,IAAK,IAAIhsK,EAAI,EAAGA,EAAI+rK,EAAM9wK,OAAQ+E,IAAK,CACnC,MAAMZ,EAAOw3I,EAASm1B,EAAM/rK,IAE5BtG,EAAOsG,GAAK4rK,GAAOI,GAEnBtyK,EAAOwB,KAAK0wK,GAAOxsK,EAAKnE,SACxBvB,EAAOwB,KAAK2wK,GAASzsK,IACrB4sK,GAAa,GAAmC,GAA9BjpK,KAAK1E,KAAKe,EAAKnE,OAAS,GAC9C,CACA,OAAOy8I,EAAUh+I,EACrB,CACO,MAAMuyK,GAET7uK,YAAYmtJ,EAAUnvJ,EAASk7B,EAAMm6H,GACjCxX,GAAejkJ,KAAM,WAAYu1J,GACjCtR,GAAejkJ,KAAM,OAAQshC,GAC7B2iH,GAAejkJ,KAAM,UAAWu1J,EAAS2hB,UAAU9wK,QAAQA,IAC3D69I,GAAejkJ,KAAM,mBAAoBy7J,EAC7C,CACA0b,mBAiBI,OAhBKn3K,KAAKo3K,mBAENp3K,KAAKo3K,iBAAmBp3K,KAAKu1J,SAAShyJ,KAAK,CACvC4H,GAAInL,KAAKoG,QACTgE,KAAM,+EACPxF,MAAMF,GACE6+I,EAAUn4I,KAAK1G,GAAQuoG,GAAG,KAClClsD,OAAOge,IACN,GAAIA,EAAMthD,OAASuhI,EAAOzlD,OAAOumD,eAC7B,OAAO,EAIX,MADA9/I,KAAKo3K,iBAAmB,KAClBr4G,CAAK,KAGZ/+D,KAAKo3K,gBAChB,CACAC,OAAOxkB,EAAUtlH,GACb,OAAO,GAAUvtC,UAAM,OAAQ,GAAQ,YAEnC,MAAMud,EAAK,CACPpS,GAAInL,KAAKoG,QACT40J,iBAAiB,EACjB5wJ,KAAMs4I,EAAU,CAACmQ,EAAUmd,GAAShwK,KAAKshC,MAAQiM,GAAc,QAGnE,IAAIquG,GAAa,SACP57I,KAAKm3K,sBACXv7B,GAAa,EAEbr+H,EAAGnT,KAAOs4I,EAAU,CAAC,aAAco0B,GAAY,CAAC5G,GAAUlwK,KAAKshC,MAAO/jB,EAAGnT,UAE7E,IACI,IAAI1F,QAAe1E,KAAKu1J,SAAShyJ,KAAKga,GAStC,OARKqkI,EAASl9I,GAAQuB,OAAS,IAAQ,GACnC,GAAOo6I,WAAW,uBAAwBrB,EAAOzlD,OAAOumD,eAAgB,CACpE6H,YAAapqI,EAAInT,KAAM1F,IAG3Bk3I,IACAl3I,EAAS+xK,GAAY/xK,EAAQ,IAE1BA,CAOX,CALA,MAAOq6D,GACH,GAAIA,EAAMthD,OAASuhI,EAAOzlD,OAAOumD,eAC7B,OAAO,KAEX,MAAM/gF,CACV,CACJ,GACJ,CACAu4G,YAAYzkB,EAAUtlH,GAClB,OAAO,GAAUvtC,UAAM,OAAQ,GAAQ,YACnC,MAAM0E,QAAe1E,KAAKq3K,OAAOxkB,EAAUtlH,GAC3C,OAAc,MAAV7oC,EACO+xK,GAAY/xK,EAAQ,GAExB,IACX,GACJ,CACA6yK,YAAYtwI,EAAUuwI,GAClB,MAAMC,EAAW1B,GAAU7tK,OAAO++B,IAMlC,GALgB,MAAZwwI,GACA,GAAOp3B,WAAW,0BAA0Bp5G,IAAY+3G,EAAOzlD,OAAOonD,sBAAuB,CACzFz9G,UAAW,cAAc+D,OAGZ,QAAjBwwI,EAAStB,IACT,OAAOn2K,KAAKu1J,SAAS2hB,UAAU9wK,QAAQoxK,GAE3C,MAAM1zH,EAAQ89F,EAAS41B,GAEvB,GAAsB,MAAlBC,EAASxB,MAAe,CACxB,MAAMA,EAAQuB,EAAS7tK,MAAM,6CAC7B,GAAIssK,EAAO,CACP,MAAMhwK,EAASqJ,SAAS2mK,EAAM,GAAI,IAClC,GAAIA,EAAM,GAAGhwK,SAAoB,EAATA,GAAcA,GAAU,GAAKA,GAAU,GAC3D,OAAOowK,GAAar0K,EAAO,CAAC,CAACy1K,EAASxB,OAAS,KAAOA,EAAM,KAEpE,CACJ,CAEA,GAAqB,MAAjBwB,EAASvB,KAAc,CACvB,MAAMA,EAAOsB,EAAS7tK,MAAM,yCAC5B,GAAIusK,EAAM,CACN,MAAMjwK,EAASqJ,SAAS4mK,EAAK,GAAI,IACjC,GAAIA,EAAK,GAAGjwK,SAAoB,EAATA,GAAcA,GAAU,GAAKA,GAAU,GAC1D,OAAOowK,GAAar0K,EAAO,CAAC,CAACy1K,EAASvB,MAAQ,KAAOA,EAAK,KAElE,CACJ,CAEA,GAAuB,MAAnBuB,EAASryJ,OAAgB,CACzB,MAAMnf,EAAS69C,EAAM,GAErB,IAAIr2B,EAAUq2B,EAAM,GASpB,GARgB,IAAZr2B,EACe,KAAXxnB,GAA4B,KAAXA,IACjBwnB,GAAW,GAIfA,GAAW,EAEXA,GAAW,GAAKq2B,EAAM79C,SAAW,EAAIA,GAAUA,GAAU,GAAKA,GAAU,GAAI,CAC5E,MAAMuf,EAAQ,aAAes+B,EAAMt4C,MAAM,IAEzC,OADAga,EAAMy3E,QAAQxvE,GACP,YAAcgqJ,EAASryJ,OAAQI,EAC1C,CACJ,CACA,OAAO,IACX,CACAve,WAAWggC,GACP,OAAO,GAAUjnC,UAAM,OAAQ,GAAQ,YAKnC,GAJgB,MAAZinC,IACAA,EAAW,IAGE,KAAbA,EACA,IAEI,MAAMviC,QAAe1E,KAAKq3K,OAAO,cAEjC,MAAe,OAAX3yK,GAAmBA,IAAWknK,GACvB,KAEJ5rK,KAAKu1J,SAAS2hB,UAAUtC,YAAYlwK,EAO/C,CALA,MAAOq6D,GACH,GAAIA,EAAMthD,OAASuhI,EAAOzlD,OAAOumD,eAC7B,OAAO,KAEX,MAAM/gF,CACV,CAGJ,MAAMy4G,QAAiBx3K,KAAKs3K,YAAY,aAAclB,GAAWnvI,IAEjE,GAAgB,MAAZuwI,GAAiC,OAAbA,EACpB,OAAO,KAGX,MAAMpxK,EAAUpG,KAAKu3K,YAAYtwI,EAAUuwI,GAQ3C,OAPe,MAAXpxK,GACA,GAAOi6I,WAAW,mCAAoCrB,EAAOzlD,OAAOonD,sBAAuB,CACvFz9G,UAAW,cAAc+D,KACzBA,SAAUA,EACV78B,KAAMotK,IAGPpxK,CACX,GACJ,CACAsxK,YACI,OAAO,GAAU13K,UAAM,OAAQ,GAAQ,YACnC,MAAM23K,EAAU,CAAC,CAAEvmK,KAAM,OAAQoX,QAASxoB,KAAKshC,OAC/C,IAGI,MAAMs2I,QAAe53K,KAAK63K,QAAQ,UAClC,GAAc,MAAVD,EACA,OAAO,KAEX,IAAK,IAAI5sK,EAAI,EAAGA,EAAIurK,GAAStwK,OAAQ+E,IAAK,CACtC,MAAMrB,EAAQiuK,EAAOjuK,MAAM4sK,GAASvrK,IACpC,GAAa,MAATrB,EACA,SAEJ,MAAMmuK,EAASnuK,EAAM,GAAGw5C,cACxB,OAAQ20H,GACJ,IAAK,QAED,OADAH,EAAQzxK,KAAK,CAAEkL,KAAM,MAAOoX,QAASovJ,IAC9B,CAAED,UAAStxK,IAAKuxK,GAC3B,IAAK,OAED,OADAD,EAAQzxK,KAAK,CAAEkL,KAAM,OAAQoX,QAASovJ,IAC/B,CAAED,UAAStxK,IAAKuxK,GAC3B,IAAK,OAED,OADAD,EAAQzxK,KAAK,CAAEkL,KAAM,OAAQoX,QAASovJ,IAC/B,CAAED,UAAStxK,IAAKqwK,GAAYkB,IACvC,IAAK,SACL,IAAK,UAAW,CAEZ,MAAM/kB,EAAuB,WAAXilB,EAAuB,aAAe,aACxDH,EAAQzxK,KAAK,CAAEkL,KAAM0mK,EAAQtvJ,QAASovJ,IAEtC,MAAMG,EAAS/3K,KAAKg4K,yBAA2Bh4K,KAAKiH,cAC9C+nJ,GAASrlJ,EAAM,IAAM,IAAIgD,MAAM,KACrC,GAAqB,IAAjBqiJ,EAAM/oJ,OACN,OAAO,KAEX,MAAM6zJ,QAAa95J,KAAKu1J,SAAS2hB,UAAU9wK,QAAQ4oJ,EAAM,IACnDipB,EAAUn1B,EAAWS,EAAUn4I,KAAK4jJ,EAAM,IAAIlN,cAAe,IAEnE,GAAe,WAAXg2B,EAAqB,CAErB,MAAMI,EAAal4K,KAAKu1J,SAAS2hB,UAAUtC,kBAAkB50K,KAAKu1J,SAAShyJ,KAAK,CAC5E4H,GAAI2uJ,EAAM1vJ,KAAMs4I,EAAU,CAAC,aAAcu1B,OAE7C,GAAIF,IAAUG,EACV,OAAO,KAEXP,EAAQzxK,KAAK,CAAEkL,KAAM,QAASoX,QAAS0vJ,GAC3C,MACK,GAAe,YAAXJ,EAAsB,CAE3B,MAAM57I,EAAUqnH,EAAUn4I,WAAWpL,KAAKu1J,SAAShyJ,KAAK,CACpD4H,GAAI2uJ,EAAM1vJ,KAAMs4I,EAAU,CAAC,aAAcI,EAAWi1B,EAAO,IAAKE,OAEpE,GAAI/7I,EAAQ8yC,SACR,OAAO,KAEX2oG,EAAQzxK,KAAK,CAAEkL,KAAM,UAAWoX,QAAS0T,EAAQ90B,YACrD,CAEA,MAAMmW,EAAK,CACPpS,GAAInL,KAAKu1J,SAAS2hB,UAAU9wK,QAAQ4oJ,EAAM,IAC1C5kJ,KAAMs4I,EAAU,CAACmQ,EAAUolB,KAE/B,IAAIE,EAAc3B,SAAmBx2K,KAAKu1J,SAAShyJ,KAAKga,GAAK,GAC7D,GAAmB,MAAf46J,EACA,OAAO,KAEXR,EAAQzxK,KAAK,CAAEkL,KAAM,oBAAqBoX,QAAS2vJ,IAEpC,YAAXL,IACAK,EAAcA,EAAY91J,QAAQ,OAAQ41J,EAAQh9I,UAAU,IAC5D08I,EAAQzxK,KAAK,CAAEkL,KAAM,wBAAyBoX,QAAS2vJ,KAGvDA,EAAYxuK,MAAM,aAClBwuK,EAAczB,GAAYyB,IAE9BR,EAAQzxK,KAAK,CAAEkL,KAAM,eAAgBoX,QAAS2vJ,IAE9C,MAAMjzF,QAAiB0tF,GAAUuF,GACjC,IAAKjzF,EACD,OAAO,KAEXyyF,EAAQzxK,KAAK,CAAEkL,KAAM,WAAYoX,QAAS8a,KAAKE,UAAU0hD,KAEzD,IAAIkzF,EAAWlzF,EAASlmC,MACxB,GAA0B,iBAAf,EACP,OAAO,KAEX,GAAIo5H,EAASzuK,MAAM,6BAGd,CAGD,GAAY,MADCyuK,EAASzuK,MAAM2sK,IAExB,OAAO,KAEXqB,EAAQzxK,KAAK,CAAEkL,KAAM,WAAYoX,QAAS4vJ,IAC1CA,EAAW1B,GAAY0B,EAC3B,CAEA,OADAT,EAAQzxK,KAAK,CAAEkL,KAAM,MAAOoX,QAAS4vJ,IAC9B,CAAET,UAAStxK,IAAK+xK,EAC3B,EAER,CAEY,CAAhB,MAAOr5G,GAAS,CAChB,OAAO,IACX,GACJ,CACAs5G,iBACI,OAAO,GAAUr4K,UAAM,OAAQ,GAAQ,YAEnC,MAAMw3K,QAAiBx3K,KAAKs3K,YAAY,cAExC,GAAgB,MAAZE,GAAiC,OAAbA,EACpB,OAAO,KAGX,MAAMc,EAAOd,EAAS7tK,MAAM,iEAC5B,GAAI2uK,EAAM,CACN,MAAMryK,EAASqJ,SAASgpK,EAAK,GAAI,IACjC,GAAIA,EAAK,GAAGryK,SAAoB,EAATA,EACnB,MAAO,UAAag/J,GAAOztJ,OAAO,KAAO8gK,EAAK,GAEtD,CAEA,MAAMC,EAAOf,EAAS7tK,MAAM,iEAC5B,GAAI4uK,EAAM,CACN,MAAMtyK,EAASqJ,SAASipK,EAAK,GAAI,IACjC,GAAIA,EAAK,GAAGtyK,SAAoB,EAATA,EACnB,MAAO,UAAag/J,GAAOztJ,OAAO,KAAO+gK,EAAK,GAEtD,CAEA,MAAMC,EAAQhB,EAAS7tK,MAAM,iCAC7B,GAAI6uK,GACwB,KAApBA,EAAM,GAAGvyK,OACT,MAAO,SAAYuyK,EAAM,GAGjC,MAAMC,EAASjB,EAAS7tK,MAAM,2BAC9B,GAAI8uK,GACyB,KAArBA,EAAO,GAAGxyK,OAAqB,CAE/B,MAAMyyK,EAAU,CAAE,IAAK,GAAI,IAAK,IAAK,IAAK,KAE1C,MAAO,SADM,GAAa,KAAOD,EAAO,IAAIp2J,QAAQ,WAAYjV,GAAOsrK,EAAQtrK,IAEnF,CAEJ,OAAO,GAAOizI,WAAW,2CAA4CrB,EAAOzlD,OAAOonD,sBAAuB,CACtGz9G,UAAW,mBACX94B,KAAMotK,GAEd,GACJ,CACAK,QAAQh2K,GACJ,OAAO,GAAU7B,UAAM,OAAQ,GAAQ,YAEnC,IAAI24K,EAAW3vB,GAAYnnJ,GAG3B82K,EAAW32K,EAAO,CAACo0K,GAAW,IAAKA,GAAWuC,EAAS1yK,QAAS0yK,IAE3DA,EAAS1yK,OAAS,IAAQ,IAC3B0yK,EAAW32K,EAAO,CAAC22K,EAAU71B,EAAW,KAAM,GAAMjhJ,EAAIoE,OAAS,OAErE,MAAMuxK,QAAiBx3K,KAAKs3K,YAAY,aAAch1B,EAAQq2B,IAC9D,OAAgB,MAAZnB,GAAiC,OAAbA,EACb,KAEJnuB,GAAamuB,EACxB,GACJ,EAEJ,IAAIoB,GAAmB,KACnBC,GAAa,EACV,MAAMC,WAAqBvkB,GAU9BnsJ,YAAY2jK,GAcR,GAbA3mH,QAEAplD,KAAK+4K,QAAU,GACf/4K,KAAKg5K,SAAW,CAAE9hJ,OAAQ,GAC1Bl3B,KAAKi5K,iBAAkB,EACvBj5K,KAAKk3K,qBAAuBgC,eAI5Bj1B,GAAejkJ,KAAM,aAA2B,QAAZ+rK,GAChC/rK,KAAKm5K,aACLpN,EAAU/rK,KAAKo5K,iBAEfrN,aAAmB7nK,QACnBlE,KAAKq5K,gBAAkBtN,EAEvBA,EAAQhrH,OAAOge,IAAD,IAEd/+D,KAAKs5K,SAASv4H,OAAOge,IAAD,QAEnB,CACD,MAAMw6G,EAAer1B,cAAsB,aAAtBA,CAAoC6nB,GACrDwN,GACAt1B,GAAejkJ,KAAM,WAAYu5K,GACjCv5K,KAAK8kE,KAAK,UAAWy0G,EAAc,OAGnC,GAAOn6B,mBAAmB,kBAAmB,UAAW2sB,EAEhE,CACA/rK,KAAKw5K,yBAA2B,KAChCx5K,KAAK41K,kBAAoB,EACzB51K,KAAKy5K,qBAAuB,GAC5Bz5K,KAAK05K,iBAAmB,IACxB15K,KAAK25K,eAAiB,CAC1B,CACAL,SACI,OAAO,GAAUt5K,UAAM,OAAQ,GAAQ,YACnC,GAAqB,MAAjBA,KAAK45K,SAAkB,CACvB,IAAI7N,EAAU,KACd,GAAI/rK,KAAKq5K,gBACL,IACItN,QAAgB/rK,KAAKq5K,eAET,CAAhB,MAAOt6G,GAAS,CAGL,MAAXgtG,IACAA,QAAgB/rK,KAAKo5K,iBAIpBrN,GACD,GAAO1rB,WAAW,sBAAuBrB,EAAOzlD,OAAOmmD,cAAe,CAAC,GAGtD,MAAjB1/I,KAAK45K,WACD55K,KAAKm5K,WACLn5K,KAAK45K,SAAW7N,EAGhB9nB,GAAejkJ,KAAM,WAAY+rK,GAErC/rK,KAAK8kE,KAAK,UAAWinG,EAAS,MAEtC,CACA,OAAO/rK,KAAK45K,QAChB,GACJ,CAIIC,YACA,OAAOhH,IAAK,IACD7yK,KAAKs5K,SAAS10K,MAAMmnK,GAChBA,IACPhtG,IAEA,GAAIA,EAAMthD,OAASuhI,EAAOzlD,OAAOugF,eAAiC,cAAhB/6G,EAAMm9F,MAGxD,MAAMn9F,CAAK,KAGvB,CAEAnL,sBAII,OAHwB,MAApBglH,KACAA,GAAmB,IAAI1F,IAEpB0F,EACX,CAEAhlH,kBAAkBm4G,GACd,OAAOjW,GAAuB,MAAXiW,EAAmB,YAAcA,EACxD,CACAgO,cAAcx8J,EAAI0uI,EAAU+tB,GACxB,OAAO,GAAUh6K,UAAM,OAAQ,GAAQ,YACnC,GAAIA,KAAKi5K,iBAAmC,IAAhBe,EAAK/zK,OAC7B,OAAO,KAEX,MAAM0f,EAASpI,EAAGpS,GAAGg4C,cACf/4C,EAAO6hJ,EAAS9oG,cAChB82H,EAAgB,GACtB,IAAK,IAAIjvK,EAAI,EAAGA,EAAIgvK,EAAK/zK,OAAQ+E,IAAK,CAClC,MAAM3E,EAAM2zK,EAAKhvK,GAEX+wG,EAAO11G,EAAIgc,QAAQ,WAAYsD,GAAQtD,QAAQ,SAAUjY,GAEzDwjE,EAAQvnE,EAAImD,QAAQ,WAAa,EAAK,KAAO85B,KAAKE,UAAU,CAAEp5B,OAAMub,WACpEjhB,QAAekuK,GAAU,CAAEvsK,IAAK01G,EAAMs1D,kBAAkB,GAAQzjG,GAAM,CAACztE,EAAOgyG,KAChFhyG,EAAMsoB,OAAS0pF,EAASu+D,WACjBvwK,KAEX,GAAIuE,EAAO0F,KACP,OAAO1F,EAAO0F,KAElB,MAAM8vK,EAAgBx1K,EAAO6C,SAAW,gBAExC,GAAI7C,EAAO+jB,QAAU,KAAO/jB,EAAO+jB,OAAS,IACxC,OAAO,GAAO43H,WAAW,yCAAyC65B,IAAgBl7B,EAAOzlD,OAAOq4E,aAAc,CAAEvrK,MAAK6zK,iBAGzHD,EAAc/zK,KAAKg0K,EACvB,CACA,OAAO,GAAO75B,WAAW,wCAAwC45B,EAAcxtK,KAAK/J,GAAM4gC,KAAKE,UAAU9gC,KAAIgK,KAAK,QAASsyI,EAAOzlD,OAAOq4E,aAAc,CACnJoI,OAAMC,iBAEd,GACJ,CAGAE,wBAAwBC,GACpB,OAAO,GAAUp6K,UAAM,OAAQ,GAAQ,YAGnC,SAFMA,KAAKs5K,SAEPc,EAAS,EAET,KAAOp6K,KAAKq6K,sBAAsB,CAE9B,MAAMC,EAAsBt6K,KAAKq6K,qBACjC,IAEI,MAAM31K,QAAe41K,EACrB,GAAK7jG,KAAY/xE,EAAO61K,UAAaH,EACjC,OAAO11K,EAAO6uK,YAGlB,KAUJ,CARA,MAAOx0G,GAKH,GAAI/+D,KAAKq6K,uBAAyBC,EAC9B,KAER,CACJ,CAEJ,MAAME,EAAU/jG,KACVgkG,EAA2Bt2B,GAAkB,CAC/CovB,YAAavzK,KAAK06K,QAAQ,iBAAkB,CAAC,GAC7CC,aAAc36K,KAAK81J,aAAalxJ,MAAMmnK,GAAY,OAAShtG,GAAU,MACtEn6D,MAAK,EAAG2uK,cAAaoH,mBACpB,GAAIA,EAKA,MAHI36K,KAAKq6K,uBAAyBI,IAC9Bz6K,KAAKq6K,qBAAuB,MAE1BM,EAEV,MAAMJ,EAAW9jG,KAOjB,OANA88F,EAAchwB,EAAUn4I,KAAKmoK,GAAa/jK,YACxBxP,KAAKw5K,0BACnBjG,EAAcvzK,KAAKw5K,yBAEvBx5K,KAAKw5K,wBAA0BjG,EAC/BvzK,KAAK46K,oBAAoBrH,GAClB,CAAEA,cAAaiH,UAASD,WAAU,IAU7C,OARAv6K,KAAKq6K,qBAAuBI,EAE5BA,EAAyB15H,OAAOge,IAExB/+D,KAAKq6K,uBAAyBI,IAC9Bz6K,KAAKq6K,qBAAuB,KAChC,WAEUI,GAA0BlH,WAC5C,GACJ,CACAV,OACI,OAAO,GAAU7yK,UAAM,OAAQ,GAAQ,YACnC,MAAM66K,EAAShC,KAETiC,EAAU,GAChB,IAAIvH,EAAc,KAClB,IACIA,QAAoBvzK,KAAKm6K,wBAAwB,IAAMn6K,KAAK+6K,gBAAkB,EAKlF,CAHA,MAAOh8G,GAEH,YADA/+D,KAAK8kE,KAAK,QAAS/F,EAEvB,CAKA,GAJA/+D,KAAK46K,oBAAoBrH,GAEzBvzK,KAAK8kE,KAAK,OAAQ+1G,EAAQtH,GAEtBA,IAAgBvzK,KAAK41K,iBAAzB,CAQA,IAH6B,IAAzB51K,KAAKg5K,SAAS9hJ,QACdl3B,KAAKg5K,SAAS9hJ,MAAQq8I,EAAc,GAEpCxlK,KAAKozB,IAAKnhC,KAAKg5K,SAAc,MAAIzF,GAAe,IAChD,GAAOn2D,KAAK,+DAA+Dp9G,KAAKg5K,SAAS9hJ,oBAAoBq8I,MAC7GvzK,KAAK8kE,KAAK,QAAS,GAAO26E,UAAU,8BAA+BT,EAAOzlD,OAAOugF,cAAe,CAC5FvG,YAAaA,EACbrX,MAAO,YACP8e,oBAAqBh7K,KAAKg5K,SAAS9hJ,SAEvCl3B,KAAK8kE,KAAK,QAASyuG,QAInB,IAAK,IAAIvoK,EAAIhL,KAAKg5K,SAAS9hJ,MAAQ,EAAGlsB,GAAKuoK,EAAavoK,IACpDhL,KAAK8kE,KAAK,QAAS95D,GAIvBhL,KAAKg5K,SAAS9hJ,QAAUq8I,IACxBvzK,KAAKg5K,SAAS9hJ,MAAQq8I,EACtBtzK,OAAO8L,KAAK/L,KAAKg5K,UAAUhtK,SAASnK,IAEhC,GAAY,UAARA,EACA,OAGJ,MAAMo5K,EAAmBj7K,KAAKg5K,SAASn3K,GAId,YAArBo5K,GAKA1H,EAAc0H,EAAmB,WAC1Bj7K,KAAKg5K,SAASn3K,EACzB,MAIuB,IAA3B7B,KAAK41K,mBACL51K,KAAK41K,iBAAmBrC,EAAc,GAG1CvzK,KAAK+4K,QAAQ/sK,SAASkwJ,IAClB,OAAQA,EAAM9qJ,MACV,IAAK,KAAM,CACP,MAAM2kB,EAAOmmI,EAAMnmI,KACnB,IAAImlJ,EAASl7K,KAAKu8J,sBAAsBxmI,GAAMnxB,MAAMq3J,GAC3CA,GAAkC,MAAvBA,EAAQsX,aAGxBvzK,KAAKg5K,SAAS,KAAOjjJ,GAAQkmI,EAAQsX,YACrCvzK,KAAK8kE,KAAK/uC,EAAMkmI,GACT,MAJI,OAKZl7G,OAAOge,IAAY/+D,KAAK8kE,KAAK,QAAS/F,EAAM,IAC/C+7G,EAAQ50K,KAAKg1K,GACb,KACJ,CACA,IAAK,SAED,IAAKhf,EAAM2Z,UAAW,CAClB3Z,EAAM2Z,WAAY,EAKlB,MAAMtoK,EAAS2uJ,EAAM3uJ,OACrBA,EAAOoyJ,UAAYzD,EAAM0Z,iBAAmB,EAC5CroK,EAAOmyJ,QAAU6T,EAEbhmK,EAAOmyJ,QAAU1/J,KAAKy5K,qBAAuBlsK,EAAOoyJ,YACpDpyJ,EAAOoyJ,UAAYpyJ,EAAOmyJ,QAAU1/J,KAAKy5K,sBAE7C,MAAMyB,EAASl7K,KAAK4/J,QAAQryJ,GAAQ3I,MAAMwY,IAEtC8+I,EAAM2Z,WAAY,EACE,IAAhBz4J,EAAKnX,QAGTmX,EAAKpR,SAAS9J,IAGNA,EAAIqxK,YAAcrX,EAAM0Z,mBACxB1Z,EAAM0Z,iBAAmB1zK,EAAIqxK,aAGjCvzK,KAAKg5K,SAAS,KAAO92K,EAAIk6J,WAAal6J,EAAIqxK,YAC1CvzK,KAAKg5K,SAAS,KAAO92K,EAAIo6J,iBAAmBp6J,EAAIqxK,YAChDvzK,KAAK8kE,KAAKv3D,EAAQrL,EAAI,GACxB,IACH6+C,OAAOge,IACN/+D,KAAK8kE,KAAK,QAAS/F,GAEnBm9F,EAAM2Z,WAAY,CAAK,IAE3BiF,EAAQ50K,KAAKg1K,EACjB,EAGR,IAEJl7K,KAAK41K,iBAAmBrC,EAExBrvK,QAAQ6sC,IAAI+pI,GAASl2K,MAAK,KACtB5E,KAAK8kE,KAAK,UAAW+1G,EAAO,IAC7B95H,OAAOge,IAAY/+D,KAAK8kE,KAAK,QAAS/F,EAAM,GA9G/C,MAFI/+D,KAAK8kE,KAAK,UAAW+1G,EAkH7B,GACJ,CAEAM,iBAAiB5H,GACbvzK,KAAK41K,iBAAmBrC,EAAc,EAClCvzK,KAAKo7K,SACLp7K,KAAK6yK,MAEb,CACI9G,cACA,OAAO/rK,KAAK45K,QAChB,CAGAR,gBACI,OAAO,GAAUp5K,UAAM,OAAQ,GAAQ,YACnC,OAAO,GAAOqgJ,WAAW,8CAA+CrB,EAAOzlD,OAAOonD,sBAAuB,CACzGz9G,UAAW,0BAEnB,GACJ,CACA4yH,aACI,OAAO,GAAU91J,UAAM,OAAQ,GAAQ,YACnC,MAAM+rK,QAAgB/rK,KAAKs5K,SAIrB+B,QAAuBr7K,KAAKo5K,gBAClC,GAAIrN,EAAQpyJ,UAAY0hK,EAAe1hK,QAAS,CAG5C,GAAI3Z,KAAKm5K,WAeL,OAdAn5K,KAAK45K,SAAWyB,EAEhBr7K,KAAK41K,kBAAoB,EACzB51K,KAAKs7K,iBAAmB,KACxBt7K,KAAKu7K,wBAA0B,KAC/Bv7K,KAAK25K,eAAiB,EACtB35K,KAAKg5K,SAAS9hJ,OAAS,EACvBl3B,KAAKw5K,yBAA2B,KAChCx5K,KAAKq6K,qBAAuB,KAI5Br6K,KAAK8kE,KAAK,UAAWu2G,EAAgBtP,SAC/BwG,GAAM,GACLvyK,KAAK45K,SAEhB,MAAM76G,EAAQ,GAAO0gF,UAAU,6BAA8BT,EAAOzlD,OAAOugF,cAAe,CACtF5d,MAAO,UACP6P,QAASA,EACTyP,gBAAiBH,IAGrB,MADAr7K,KAAK8kE,KAAK,QAAS/F,GACbA,CACV,CACA,OAAOgtG,CACX,GACJ,CACIwH,kBAIA,OAHAvzK,KAAKm6K,wBAAwB,IAAMn6K,KAAK+6K,gBAAkB,GAAGn2K,MAAM2uK,IAC/DvzK,KAAK46K,oBAAoBrH,EAAY,IACrCx0G,IAAD,IAC8B,MAAzB/+D,KAAKs7K,iBAA4Bt7K,KAAKs7K,kBAAoB,CACtE,CACIF,cACA,OAAwB,MAAhBp7K,KAAKy7K,OACjB,CACIL,YAAQj7K,GACJA,IAAUH,KAAKy7K,SACfz7K,KAAKy7K,QAAUC,aAAY,KAAQ17K,KAAK6yK,MAAM,GAAK7yK,KAAK+6K,iBACnD/6K,KAAK27K,iBACN37K,KAAK27K,eAAiBxhI,YAAW,KAC7Bn6C,KAAK6yK,OAGL7yK,KAAK27K,eAAiBxhI,YAAW,KAGxBn6C,KAAKy7K,SACNz7K,KAAK6yK,OAGT7yK,KAAK27K,eAAiB,IAAI,GAC3B37K,KAAK+6K,gBAAgB,GACzB,MAGD56K,GAASH,KAAKy7K,UACpBG,cAAc57K,KAAKy7K,SACnBz7K,KAAKy7K,QAAU,KAEvB,CACIV,sBACA,OAAO/6K,KAAK05K,gBAChB,CACIqB,oBAAgB56K,GAChB,GAAuB,iBAAZ,GAAwBA,GAAS,GAAKmP,SAASpH,OAAO/H,KAAWA,EACxE,MAAM,IAAImG,MAAM,4BAEpBtG,KAAK05K,iBAAmBv5K,EACpBH,KAAKy7K,UACLG,cAAc57K,KAAKy7K,SACnBz7K,KAAKy7K,QAAUC,aAAY,KAAQ17K,KAAK6yK,MAAM,GAAK7yK,KAAK05K,kBAEhE,CACAmC,sBACI,MAAMjqH,EAAM6kB,KAWZ,OATK7kB,EAAM5xD,KAAK25K,eAAkB,EAAI35K,KAAK05K,mBACvC15K,KAAK25K,eAAiB/nH,EACtB5xD,KAAKu7K,wBAA0Bv7K,KAAK87K,iBAAiBl3K,MAAM2uK,KAC1B,MAAzBvzK,KAAKs7K,kBAA4B/H,EAAcvzK,KAAKs7K,oBACpDt7K,KAAKs7K,iBAAmB/H,GAErBvzK,KAAKs7K,qBAGbt7K,KAAKu7K,uBAChB,CACAX,oBAAoBrH,GAEa,MAAzBvzK,KAAKs7K,kBAA4B/H,EAAcvzK,KAAKs7K,mBAIxDt7K,KAAK25K,eAAiBljG,MAEO,MAAzBz2E,KAAKs7K,kBAA4B/H,EAAcvzK,KAAKs7K,oBACpDt7K,KAAKs7K,iBAAmB/H,EACxBvzK,KAAKu7K,wBAA0Br3K,QAAQC,QAAQovK,IAEvD,CACAwI,mBAAmBzf,EAAiBN,EAAehzH,GAC/C,OAAO,GAAUhpC,UAAM,OAAQ,GAAQ,YACnC,OAAOA,KAAKg8K,oBAAoB1f,EAAmC,MAAjBN,EAAyB,EAAIA,EAAehzH,GAAW,EAAG,KAChH,GACJ,CACAgzI,oBAAoB1f,EAAiBN,EAAehzH,EAASizI,GACzD,OAAO,GAAUj8K,UAAM,OAAQ,GAAQ,YACnC,MAAMi8J,QAAgBj8J,KAAKu8J,sBAAsBD,GAEjD,OAAKL,EAAUA,EAAQD,cAAgB,IAAMA,EAClCC,EAGJ,IAAI/3J,SAAQ,CAACC,EAASC,KACzB,MAAM83K,EAAc,GACpB,IAAIv3K,GAAO,EACX,MAAMw3K,EAAc,WAChB,QAAIx3K,IAGJA,GAAO,EACPu3K,EAAYlwK,SAASo+I,IAAWA,GAAM,KAC/B,EACX,EACMgyB,EAAgBngB,IACdA,EAAQD,cAAgBA,GAGxBmgB,KAGJh4K,EAAQ83J,EAAQ,EAIpB,GAFAj8J,KAAK0kE,GAAG43F,EAAiB8f,GACzBF,EAAYh2K,MAAK,KAAQlG,KAAKg1J,eAAesH,EAAiB8f,EAAa,IACvEH,EAAa,CACb,IAAII,EAAkBJ,EAAYK,WAC9BC,EAAe,KACnB,MAAMC,EAAkBjJ,GAAgB,GAAUvzK,UAAM,OAAQ,GAAQ,YAChE2E,UAME4tK,GAAM,KACZvyK,KAAKw1J,oBAAoBymB,EAAY7wK,MAAMxG,MAAMk9D,GAAU,GAAU9hE,UAAM,OAAQ,GAAQ,YACvF,IAAI2E,EAAJ,CAGA,GAAIm9D,GAASm6G,EAAYn6G,MACrBu6G,EAAkB9I,MAEjB,CAED,CACI,MAAMkJ,QAAcz8K,KAAKq8J,eAAeC,GACxC,GAAImgB,GAA8B,MAArBA,EAAMlJ,YACf,MAER,CAWA,IANoB,MAAhBgJ,IACAA,EAAeF,EAAkB,EAC7BE,EAAeN,EAAYK,aAC3BC,EAAeN,EAAYK,aAG5BC,GAAgBhJ,GAAa,CAChC,GAAI5uK,EACA,OAEJ,MAAMuyB,QAAcl3B,KAAK08K,yBAAyBH,GAClD,IAAK,IAAII,EAAK,EAAGA,EAAKzlJ,EAAMo9I,aAAaruK,OAAQ02K,IAAM,CACnD,MAAMp/J,EAAK2Z,EAAMo9I,aAAaqI,GAE9B,GAAIp/J,EAAGwY,OAASumI,EACZ,OAGJ,GAAI/+I,EAAGnS,OAAS6wK,EAAY7wK,MAAQmS,EAAGukD,QAAUm6G,EAAYn6G,MAAO,CAChE,GAAIn9D,EACA,OAGJ,MAAMs3J,QAAgBj8J,KAAK+7K,mBAAmBx+J,EAAGwY,KAAMimI,GAEvD,GAAImgB,IACA,OAGJ,IAAI5mE,EAAS,WAeb,OAdIh4F,EAAGnT,OAAS6xK,EAAY7xK,MAAQmT,EAAGpS,KAAO8wK,EAAY9wK,IAAMoS,EAAGpd,MAAM8sG,GAAGgvE,EAAY97K,OACpFo1G,EAAS,WAEQ,OAAZh4F,EAAGnT,MAAiBmT,EAAGnS,OAASmS,EAAGpS,IAAMoS,EAAGpd,MAAM6uE,WACvDumC,EAAS,kBAGbnxG,EAAO,GAAOq7I,UAAU,2BAA4BT,EAAOzlD,OAAO4mD,qBAAsB,CACpFy8B,UAAuB,aAAXrnE,GAAoC,cAAXA,EACrCA,SACAsnE,YAAa78K,KAAK88K,iBAAiBv/J,GACnCwY,KAAMumI,EACNL,YAGR,CACJ,CACAsgB,GACJ,CACJ,CACI53K,GAGJ3E,KAAKk9J,KAAK,QAASsf,EArEnB,CAsEJ,MAAKz9G,IACGp6D,GAGJ3E,KAAKk9J,KAAK,QAASsf,EAAe,IAE1C,IACA,GAAI73K,EACA,OAEJ3E,KAAKk9J,KAAK,QAASsf,GACnBN,EAAYh2K,MAAK,KACblG,KAAKg1J,eAAe,QAASwnB,EAAe,GAEpD,CACA,GAAyB,iBAAd,GAA0BxzI,EAAU,EAAG,CAC9C,MAAMipI,EAAQ93H,YAAW,KACjBgiI,KAGJ/3K,EAAO,GAAOq7I,UAAU,mBAAoBT,EAAOzlD,OAAO24E,QAAS,CAAElpI,QAASA,IAAW,GAC1FA,GACCipI,EAAM8K,OACN9K,EAAM8K,QAEVb,EAAYh2K,MAAK,KAAQisK,aAAaF,EAAM,GAChD,IAER,GACJ,CACA6J,iBACI,OAAO,GAAU97K,UAAM,OAAQ,GAAQ,YACnC,OAAOA,KAAKm6K,wBAAwB,EACxC,GACJ,CACAzlB,cACI,OAAO,GAAU10J,UAAM,OAAQ,GAAQ,kBAC7BA,KAAK81J,aACX,MAAMpxJ,QAAe1E,KAAK06K,QAAQ,cAAe,CAAC,GAClD,IACI,OAAOn3B,EAAUn4I,KAAK1G,EAO1B,CALA,MAAOq6D,GACH,OAAO,GAAOshF,WAAW,0BAA2BrB,EAAOzlD,OAAOq4E,aAAc,CAC5Et7E,OAAQ,cACR5xF,SAAQq6D,SAEhB,CACJ,GACJ,CACAze,WAAWy9G,EAAe1I,GACtB,OAAO,GAAUr1J,UAAM,OAAQ,GAAQ,kBAC7BA,KAAK81J,aACX,MAAMzsH,QAAe86G,GAAkB,CACnC/9I,QAASpG,KAAKu3K,YAAYxZ,GAC1B1I,SAAUr1J,KAAKg9K,aAAa3nB,KAE1B3wJ,QAAe1E,KAAK06K,QAAQ,aAAcrxI,GAChD,IACI,OAAOk6G,EAAUn4I,KAAK1G,EAO1B,CALA,MAAOq6D,GACH,OAAO,GAAOshF,WAAW,0BAA2BrB,EAAOzlD,OAAOq4E,aAAc,CAC5Et7E,OAAQ,aACRjtD,SAAQ3kC,SAAQq6D,SAExB,CACJ,GACJ,CACAy2F,oBAAoBuI,EAAe1I,GAC/B,OAAO,GAAUr1J,UAAM,OAAQ,GAAQ,kBAC7BA,KAAK81J,aACX,MAAMzsH,QAAe86G,GAAkB,CACnC/9I,QAASpG,KAAKu3K,YAAYxZ,GAC1B1I,SAAUr1J,KAAKg9K,aAAa3nB,KAE1B3wJ,QAAe1E,KAAK06K,QAAQ,sBAAuBrxI,GACzD,IACI,OAAOk6G,EAAUn4I,KAAK1G,GAAQ8K,UAOlC,CALA,MAAOuvD,GACH,OAAO,GAAOshF,WAAW,0BAA2BrB,EAAOzlD,OAAOq4E,aAAc,CAC5Et7E,OAAQ,sBACRjtD,SAAQ3kC,SAAQq6D,SAExB,CACJ,GACJ,CACA4/F,QAAQZ,EAAe1I,GACnB,OAAO,GAAUr1J,UAAM,OAAQ,GAAQ,kBAC7BA,KAAK81J,aACX,MAAMzsH,QAAe86G,GAAkB,CACnC/9I,QAASpG,KAAKu3K,YAAYxZ,GAC1B1I,SAAUr1J,KAAKg9K,aAAa3nB,KAE1B3wJ,QAAe1E,KAAK06K,QAAQ,UAAWrxI,GAC7C,IACI,OAAOi5G,EAAQ59I,EAOnB,CALA,MAAOq6D,GACH,OAAO,GAAOshF,WAAW,0BAA2BrB,EAAOzlD,OAAOq4E,aAAc,CAC5Et7E,OAAQ,UACRjtD,SAAQ3kC,SAAQq6D,SAExB,CACJ,GACJ,CACAk+G,aAAalf,EAAer/C,EAAU22C,GAClC,OAAO,GAAUr1J,UAAM,OAAQ,GAAQ,kBAC7BA,KAAK81J,aACX,MAAMzsH,QAAe86G,GAAkB,CACnC/9I,QAASpG,KAAKu3K,YAAYxZ,GAC1B1I,SAAUr1J,KAAKg9K,aAAa3nB,GAC5B32C,SAAUx6G,QAAQC,QAAQu6G,GAAU95G,MAAMvB,GAAMs/I,EAASt/I,OAEvDqB,QAAe1E,KAAK06K,QAAQ,eAAgBrxI,GAClD,IACI,OAAOi5G,EAAQ59I,EAOnB,CALA,MAAOq6D,GACH,OAAO,GAAOshF,WAAW,0BAA2BrB,EAAOzlD,OAAOq4E,aAAc,CAC5Et7E,OAAQ,eACRjtD,SAAQ3kC,SAAQq6D,SAExB,CACJ,GACJ,CAEA+9G,iBAAiBv/J,EAAIwY,EAAMumJ,GACvB,GAAY,MAARvmJ,GAAwC,KAAxBwsH,EAAcxsH,GAC9B,MAAM,IAAIzvB,MAAM,sCAEpB,MAAM5B,EAAS6Y,EAuCf,OArCY,MAARwY,GAAgBxY,EAAGwY,OAASA,GAC5B,GAAOsqH,WAAW,2DAA4DrB,EAAOzlD,OAAOmmD,cAAe,CAAEw9B,aAAc3/J,EAAGwY,KAAMonJ,aAAcpnJ,IAEtJrxB,EAAOq3J,KAAO,CAACqhB,EAAUp0I,IAAY,GAAUhpC,UAAM,OAAQ,GAAQ,YAQjE,IAAI68K,EAPY,MAAZO,IACAA,EAAW,GAEA,MAAXp0I,IACAA,EAAU,GAIG,IAAbo0I,GAAgC,MAAdd,IAClBO,EAAc,CACVzyK,KAAMmT,EAAGnT,KACTgB,KAAMmS,EAAGnS,KACT02D,MAAOvkD,EAAGukD,MACV32D,GAAIoS,EAAGpS,GACPhL,MAAOod,EAAGpd,MACVm8K,eAGR,MAAMrgB,QAAgBj8J,KAAKg8K,oBAAoBz+J,EAAGwY,KAAMqnJ,EAAUp0I,EAAS6zI,GAC3E,OAAe,MAAX5gB,GAAgC,IAAbmhB,EACZ,MAGXp9K,KAAKg5K,SAAS,KAAOz7J,EAAGwY,MAAQkmI,EAAQsX,YACjB,IAAnBtX,EAAQxzI,QACR,GAAO43H,WAAW,qBAAsBrB,EAAOzlD,OAAOumD,eAAgB,CAClEwc,gBAAiB/+I,EAAGwY,KACpB4xH,YAAapqI,EACb0+I,QAASA,IAGVA,EACX,IACOv3J,CACX,CACA+7C,gBAAgB48H,GACZ,OAAO,GAAUr9K,UAAM,OAAQ,GAAQ,kBAC7BA,KAAK81J,aACX,MAAMwnB,QAAcp5K,QAAQC,QAAQk5K,GAAmBz4K,MAAKM,GAAKo9I,EAAQp9I,KACnEqY,EAAKvd,KAAKk3K,UAAUvvB,YAAY01B,GACd,MAApB9/J,EAAGy+I,gBACHz+I,EAAGy+I,cAAgB,GAEvB,MAAMuX,QAAoBvzK,KAAKm6K,wBAAwB,IAAM,EAAIn6K,KAAK+6K,iBACtE,IACI,MAAMhlJ,QAAa/1B,KAAK06K,QAAQ,kBAAmB,CAAE2C,kBAAmBC,IACxE,OAAOt9K,KAAK88K,iBAAiBv/J,EAAIwY,EAAMw9I,EAM3C,CAJA,MAAOx0G,GAGH,MAFAA,EAAM4oF,YAAcpqI,EACpBwhD,EAAMu9F,gBAAkB/+I,EAAGwY,KACrBgpC,CACV,CACJ,GACJ,CACAw+G,uBAAuB51B,GACnB,OAAO,GAAU3nJ,UAAM,OAAQ,GAAQ,YACnC,MAAMkN,QAAey6I,EACfpqI,EAAK,CAAC,EA4BZ,MA3BA,CAAC,OAAQ,MAAMvR,SAASnK,IACD,MAAfqL,EAAOrL,KAGX0b,EAAG1b,GAAOqC,QAAQC,QAAQ+I,EAAOrL,IAAM+C,MAAMiB,GAAOA,EAAI7F,KAAKu3K,YAAY1xK,GAAK,OAAM,IAExF,CAAC,WAAY,WAAY,eAAgB,uBAAwB,SAASmG,SAASnK,IAC5D,MAAfqL,EAAOrL,KAGX0b,EAAG1b,GAAOqC,QAAQC,QAAQ+I,EAAOrL,IAAM+C,MAAMiB,GAAOA,EAAI09I,EAAUn4I,KAAKvF,GAAK,OAAM,IAEtF,CAAC,QAAQmG,SAASnK,IACK,MAAfqL,EAAOrL,KAGX0b,EAAG1b,GAAOqC,QAAQC,QAAQ+I,EAAOrL,IAAM+C,MAAMiB,GAAa,MAALA,EAAaA,EAAI,OAAM,IAE5EqH,EAAOmtJ,aACP98I,EAAG88I,WAAar6J,KAAKk3K,UAAU7c,WAAWntJ,EAAOmtJ,aAErD,CAAC,QAAQruJ,SAASnK,IACK,MAAfqL,EAAOrL,KAGX0b,EAAG1b,GAAOqC,QAAQC,QAAQ+I,EAAOrL,IAAM+C,MAAMiB,GAAOA,EAAIy8I,EAAQz8I,GAAK,OAAM,IAExE7F,KAAKk3K,UAAUvD,yBAAyBxvB,GAAkB5mI,GACrE,GACJ,CACAigK,WAAWjwK,GACP,OAAO,GAAUvN,UAAM,OAAQ,GAAQ,YACnCuN,QAAeA,EACf,MAAM7I,EAAS,CAAC,EAgBhB,OAfsB,MAAlB6I,EAAOnH,UACP1B,EAAO0B,QAAUpG,KAAKu3K,YAAYhqK,EAAOnH,UAE7C,CAAC,YAAa,UAAU4F,SAASnK,IACV,MAAf0L,EAAO1L,KAGX6C,EAAO7C,GAAO0L,EAAO1L,GAAI,IAE7B,CAAC,YAAa,WAAWmK,SAASnK,IACX,MAAf0L,EAAO1L,KAGX6C,EAAO7C,GAAO7B,KAAKg9K,aAAazvK,EAAO1L,IAAK,IAEzC7B,KAAKk3K,UAAU3pK,aAAa42I,GAAkBz/I,GACzD,GACJ,CACA+4K,MAAM91B,EAAa0N,EAAUgd,GACzB,OAAO,GAAUryK,UAAM,OAAQ,GAAQ,YAC/BqyK,GAv4CW,IAw4CX,GAAOhyB,WAAW,0CAA2CrB,EAAOzlD,OAAOq4E,aAAc,CACrF8L,UAAWrL,EAAS1qB,gBAG5B,MAAMg2B,EAAWh2B,EAAYx8I,GACvBzG,QAAe1E,KAAK06K,QAAQ,OAAQ,CAAE/yB,cAAa0N,aAEzD,GAAIgd,GAAW,GAAkB,WAAbhd,GAAqC,MAAZsoB,GAAgD,eAA5Bj5K,EAAOu2B,UAAU,EAAG,KAAyBsnH,EAAc79I,GAAU,IAAO,EACzI,IACI,MAAM0F,EAAOo4I,EAAa99I,EAAQ,GAE5BihB,EAAS68H,EAAap4I,EAAM,EAAG,IAChCm5I,EAAUn4I,KAAKua,GAAQsnF,GAAG0wE,IAC3B,GAAOt9B,WAAW,iCAAkCrB,EAAOzlD,OAAOumD,eAAgB,CAC9Ex+G,KAAM,iBACN95B,UAAW,sDACXmgJ,cAAav9I,KAAM1F,IAI3B,MAAMs1K,EAAO,GACP4D,EAAar6B,EAAUn4I,KAAKo3I,EAAap4I,EAAM,GAAI,KAAKoF,WACxDquK,EAAat6B,EAAUn4I,KAAKo3I,EAAap4I,EAAMwzK,EAAYA,EAAa,KAAKpuK,WAC7EsuK,EAAWt7B,EAAap4I,EAAMwzK,EAAa,IACjD,IAAK,IAAIpgH,EAAI,EAAGA,EAAIqgH,EAAYrgH,IAAK,CACjC,MAAMn3D,EAAMmwK,GAAasH,EAAc,GAAJtgH,GACxB,MAAPn3D,GACA,GAAOg6I,WAAW,yCAA0CrB,EAAOzlD,OAAOumD,eAAgB,CACtFx+G,KAAM,iBACN95B,UAAW,sDACXmgJ,cAAav9I,KAAM1F,IAG3Bs1K,EAAK9zK,KAAKG,EACd,CAEA,MAAM4lJ,EAAWwqB,GAAYrsK,EAAM,IAE9Bm5I,EAAUn4I,KAAKo3I,EAAap4I,EAAM,IAAK,MAAM4kE,UAC9C,GAAOqxE,WAAW,4CAA6CrB,EAAOzlD,OAAOumD,eAAgB,CACzFx+G,KAAM,iBACN95B,UAAW,sDACXmgJ,cAAav9I,KAAM1F,IAG3B,MAAMq5K,EAAmBv7B,EAAap4I,EAAM,GAAI,KAE1CiqK,EAAYoC,GAAYrsK,EAAM,KAC9B4zK,QAAmBh+K,KAAK+5K,cAAcpyB,EAAasE,EAAU+tB,GACjD,MAAdgE,GACA,GAAO39B,WAAW,yCAA0CrB,EAAOzlD,OAAOumD,eAAgB,CACtFx+G,KAAM,iBACN95B,UAAW,sDACXmgJ,cAAav9I,KAAM1F,IAG3B,MAAM6Y,EAAK,CACPpS,GAAIwyK,EACJvzK,KAAMs4I,EAAU,CAACq7B,EAAkBjH,GAAY,CAACkH,EAAY3J,OAEhE,OAAOr0K,KAAKy9K,MAAMlgK,EAAI83I,EAAUgd,EAAU,EAM9C,CAJA,MAAOtzG,GACH,GAAIA,EAAMthD,OAASuhI,EAAOzlD,OAAOq4E,aAC7B,MAAM7yG,CAEd,CAEJ,IACI,OAAOujF,EAAQ59I,EAOnB,CALA,MAAOq6D,GACH,OAAO,GAAOshF,WAAW,0BAA2BrB,EAAOzlD,OAAOq4E,aAAc,CAC5Et7E,OAAQ,OACRjtD,OAAQ,CAAEs+G,cAAa0N,YAAY3wJ,SAAQq6D,SAEnD,CACJ,GACJ,CACAx7D,KAAKokJ,EAAa0N,GACd,OAAO,GAAUr1J,UAAM,OAAQ,GAAQ,kBAC7BA,KAAK81J,aACX,MAAM0F,QAAiBrX,GAAkB,CACrCwD,YAAa3nJ,KAAKu9K,uBAAuB51B,GACzC0N,SAAUr1J,KAAKg9K,aAAa3nB,GAC5B2F,gBAAiB92J,QAAQC,QAAQwjJ,EAAYqT,mBAEjD,OAAOh7J,KAAKy9K,MAAMjiB,EAAS7T,YAAa6T,EAASnG,SAAUmG,EAASR,gBAAkB,GAAK,EAC/F,GACJ,CACAxhH,YAAYmuG,GACR,OAAO,GAAU3nJ,UAAM,OAAQ,GAAQ,kBAC7BA,KAAK81J,aACX,MAAMzsH,QAAe86G,GAAkB,CACnCwD,YAAa3nJ,KAAKu9K,uBAAuB51B,KAEvCjjJ,QAAe1E,KAAK06K,QAAQ,cAAerxI,GACjD,IACI,OAAOk6G,EAAUn4I,KAAK1G,EAO1B,CALA,MAAOq6D,GACH,OAAO,GAAOshF,WAAW,0BAA2BrB,EAAOzlD,OAAOq4E,aAAc,CAC5Et7E,OAAQ,cACRjtD,SAAQ3kC,SAAQq6D,SAExB,CACJ,GACJ,CACAw4G,YAAYxZ,GACR,OAAO,GAAU/9J,UAAM,OAAQ,GAAQ,YAEJ,iBAD/B+9J,QAAsBA,IAElB,GAAO3e,mBAAmB,8BAA+B,OAAQ2e,GAErE,MAAM33J,QAAgBpG,KAAK+1J,YAAYgI,GAMvC,OALe,MAAX33J,GACA,GAAOi6I,WAAW,0BAA2BrB,EAAOzlD,OAAOonD,sBAAuB,CAC9Ez9G,UAAW,eAAeI,KAAKE,UAAUu6H,QAG1C33J,CACX,GACJ,CACA63K,UAAUC,EAAqBC,GAC3B,OAAO,GAAUn+K,UAAM,OAAQ,GAAQ,kBAC7BA,KAAK81J,aACXooB,QAA4BA,EAE5B,IAAI3K,GAAe,IACnB,MAAMlqI,EAAS,CACX80I,sBAAuBA,GAE3B,GAAI,EAAYD,EAAqB,IACjC70I,EAAO+yH,UAAY8hB,OAGnB,IACI70I,EAAOgsH,eAAiBr1J,KAAKg9K,aAAakB,GACtC,EAAY70I,EAAOgsH,YACnBke,EAAcjkK,SAAS+5B,EAAOgsH,SAASp6H,UAAU,GAAI,IAK7D,CAFA,MAAO8jC,GACH,GAAOqgF,mBAAmB,kCAAmC,sBAAuB8+B,EACxF,CAEJ,OAAOrL,IAAK,IAAM,GAAU7yK,UAAM,OAAQ,GAAQ,YAC9C,MAAMk3B,QAAcl3B,KAAK06K,QAAQ,WAAYrxI,GAE7C,GAAa,MAATnS,EAIA,OAAwB,MAApBmS,EAAO+yH,WACuC,MAA1Cp8J,KAAKg5K,SAAS,KAAO3vI,EAAO+yH,YAKb,MAAnB/yH,EAAOgsH,UACHke,EAAcvzK,KAAKg5K,SAAS9hJ,MALrB,UAUf,EAGJ,GAAIinJ,EAAqB,CACrB,IAAI5K,EAAc,KAClB,IAAK,IAAIvoK,EAAI,EAAGA,EAAIksB,EAAMo9I,aAAaruK,OAAQ+E,IAAK,CAChD,MAAMuS,EAAK2Z,EAAMo9I,aAAatpK,GAC9B,GAAsB,MAAlBuS,EAAGg2J,YACHh2J,EAAGy+I,cAAgB,OAElB,GAAwB,MAApBz+I,EAAGy+I,cAAuB,CACZ,MAAfuX,IACAA,QAAoBvzK,KAAKm6K,wBAAwB,IAAM,EAAIn6K,KAAK+6K,kBAGpE,IAAI/e,EAAiBuX,EAAch2J,EAAGg2J,YAAe,EACjDvX,GAAiB,IACjBA,EAAgB,GAEpBz+I,EAAGy+I,cAAgBA,CACvB,CACJ,CACA,MAAMoiB,EAAep+K,KAAKk3K,UAAU3C,sBAAsBr9I,GAE1D,OADAknJ,EAAa9J,aAAe8J,EAAa9J,aAAa7nK,KAAK8Q,GAAOvd,KAAK88K,iBAAiBv/J,KACjF6gK,CACX,CACA,OAAOp+K,KAAKk3K,UAAUhgJ,MAAMA,EAChC,KAAI,CAAE87I,SAAUhzK,MACpB,GACJ,CACAirH,SAASizD,GACL,OAAQl+K,KAAKi+K,UAAUC,GAAqB,EAChD,CACAxB,yBAAyBwB,GACrB,OAAQl+K,KAAKi+K,UAAUC,GAAqB,EAChD,CACA7hB,eAAeC,GACX,OAAO,GAAUt8J,UAAM,OAAQ,GAAQ,kBAC7BA,KAAK81J,aACXwG,QAAwBA,EACxB,MAAMjzH,EAAS,CAAEizH,gBAAiBt8J,KAAKk3K,UAAUnhJ,KAAKumI,GAAiB,IACvE,OAAOuW,IAAK,IAAM,GAAU7yK,UAAM,OAAQ,GAAQ,YAC9C,MAAM0E,QAAe1E,KAAK06K,QAAQ,iBAAkBrxI,GACpD,GAAc,MAAV3kC,EACA,OAA6C,MAAzC1E,KAAKg5K,SAAS,KAAO1c,GACd,UAEX,EAEJ,MAAM/+I,EAAKvd,KAAKk3K,UAAU1C,oBAAoB9vK,GAC9C,GAAsB,MAAlB6Y,EAAGg2J,YACHh2J,EAAGy+I,cAAgB,OAElB,GAAwB,MAApBz+I,EAAGy+I,cAAuB,CAG/B,IAAIA,SAFsBh8J,KAAKm6K,wBAAwB,IAAM,EAAIn6K,KAAK+6K,kBAEnCx9J,EAAGg2J,YAAe,EACjDvX,GAAiB,IACjBA,EAAgB,GAEpBz+I,EAAGy+I,cAAgBA,CACvB,CACA,OAAOh8J,KAAK88K,iBAAiBv/J,EACjC,KAAI,CAAEy1J,SAAUhzK,MACpB,GACJ,CACAu8J,sBAAsBD,GAClB,OAAO,GAAUt8J,UAAM,OAAQ,GAAQ,kBAC7BA,KAAK81J,aACXwG,QAAwBA,EACxB,MAAMjzH,EAAS,CAAEizH,gBAAiBt8J,KAAKk3K,UAAUnhJ,KAAKumI,GAAiB,IACvE,OAAOuW,IAAK,IAAM,GAAU7yK,UAAM,OAAQ,GAAQ,YAC9C,MAAM0E,QAAe1E,KAAK06K,QAAQ,wBAAyBrxI,GAC3D,GAAc,MAAV3kC,EACA,OAA6C,MAAzC1E,KAAKg5K,SAAS,KAAO1c,GACd,UAEX,EAGJ,GAAwB,MAApB53J,EAAO03J,UACP,OAEJ,MAAMH,EAAUj8J,KAAKk3K,UAAUjb,QAAQv3J,GACvC,GAA2B,MAAvBu3J,EAAQsX,YACRtX,EAAQD,cAAgB,OAEvB,GAA6B,MAAzBC,EAAQD,cAAuB,CAGpC,IAAIA,SAFsBh8J,KAAKm6K,wBAAwB,IAAM,EAAIn6K,KAAK+6K,kBAEnC9e,EAAQsX,YAAe,EACtDvX,GAAiB,IACjBA,EAAgB,GAEpBC,EAAQD,cAAgBA,CAC5B,CACA,OAAOC,CACX,KAAI,CAAE+W,SAAUhzK,MACpB,GACJ,CACA4/J,QAAQryJ,GACJ,OAAO,GAAUvN,UAAM,OAAQ,GAAQ,kBAC7BA,KAAK81J,aACX,MAAMzsH,QAAe86G,GAAkB,CAAE52I,OAAQvN,KAAKw9K,WAAWjwK,KAC3D6P,QAAapd,KAAK06K,QAAQ,UAAWrxI,GAM3C,OALAjsB,EAAKpR,SAAS9J,IACS,MAAfA,EAAIwyK,UACJxyK,EAAIwyK,SAAU,EAClB,IAEGxB,GAAUW,QAAQ7zK,KAAKk3K,UAAUzC,UAAUvuI,KAAKlmC,KAAKk3K,WAArDhE,CAAiE91J,EAC5E,GACJ,CACAihK,gBACI,OAAO,GAAUr+K,UAAM,OAAQ,GAAQ,YAEnC,aADMA,KAAK81J,aACJ91J,KAAK06K,QAAQ,gBAAiB,CAAC,EAC1C,GACJ,CACAsC,aAAa3nB,GACT,OAAO,GAAUr1J,UAAM,OAAQ,GAAQ,YAEnC,GAA0B,iBAD1Bq1J,QAAiBA,IACqBA,EAAW,EAAG,CAC5CA,EAAW,GACX,GAAOjW,mBAAmB,mBAAoB,WAAYiW,GAE9D,IAAIke,QAAoBvzK,KAAKm6K,wBAAwB,IAAM,EAAIn6K,KAAK+6K,iBAKpE,OAJAxH,GAAele,EACXke,EAAc,IACdA,EAAc,GAEXvzK,KAAKk3K,UAAU7hB,SAASke,EACnC,CACA,OAAOvzK,KAAKk3K,UAAU7hB,SAASA,EACnC,GACJ,CACAipB,YAAYh9I,GACR,OAAO,GAAUthC,UAAM,OAAQ,GAAQ,YACnC,IAAIu+K,EAAcj9I,EAClB,OAAa,CACT,GAAoB,KAAhBi9I,GAAsC,MAAhBA,EACtB,OAAO,KAIX,GAAa,QAATj9I,GAAkC,QAAhBi9I,EAClB,OAAO,KAGX,MAAMzkB,QAAa95J,KAAKw+K,aAAaD,EAAa,eAElD,GAAY,MAARzkB,EAAc,CACd,MAAMmB,EAAW,IAAIgc,GAASj3K,KAAM85J,EAAMx4H,GAE1C,OAAIi9I,IAAgBj9I,UAAgB25H,EAASkc,oBAGtClc,EAFI,IAGf,CAEAsjB,EAAcA,EAAY5xK,MAAM,KAAKnB,MAAM,GAAGkB,KAAK,IACvD,CACJ,GACJ,CACA8xK,aAAal9I,EAAM4B,GACf,OAAO,GAAUljC,UAAM,OAAQ,GAAQ,YAClB,MAAbkjC,IACAA,EAAY,OAEhB,MAAM6oI,QAAgB/rK,KAAK81J,aAEtBiW,EAAQmB,YACT,GAAO7sB,WAAW,+BAAgCrB,EAAOzlD,OAAOonD,sBAAuB,CAAEz9G,YAAW6oI,QAASA,EAAQzqI,OAEzH,IAEI,MAAMm9I,QAAiBz+K,KAAKuD,KAAK,CAC7B4H,GAAI4gK,EAAQmB,WACZ9iK,KAAO,aAAe4lK,GAAS1uI,GAAMrG,UAAU,KAEnD,OAAOj7B,KAAKk3K,UAAUtC,YAAY6J,EAItC,CAFA,MAAO1/G,GAEP,CACA,OAAO,IACX,GACJ,CACAg3F,YAAYz0H,GACR,OAAO,GAAUthC,UAAM,OAAQ,GAAQ,YACnCshC,QAAaA,EAEb,IACI,OAAOp9B,QAAQC,QAAQnE,KAAKk3K,UAAU9wK,QAAQk7B,GAOlD,CALA,MAAOy9B,GAEH,GAAI,EAAYz9B,GACZ,MAAMy9B,CAEd,CACsB,iBAAX,GACP,GAAOqgF,mBAAmB,mBAAoB,OAAQ99G,GAG1D,MAAM25H,QAAiBj7J,KAAKs+K,YAAYh9I,GACxC,OAAK25H,QAGQA,EAASh0J,aAFX,IAGf,GACJ,CACAy3K,cAAct4K,GACV,OAAO,GAAUpG,UAAM,OAAQ,GAAQ,YACnCoG,QAAgBA,EAEhB,MAAM+iD,GADN/iD,EAAUpG,KAAKk3K,UAAU9wK,QAAQA,IACZ60B,UAAU,GAAGkoB,cAAgB,gBAC5Cw7H,QAAqB3+K,KAAKw+K,aAAar1H,EAAM,iBACnD,GAAoB,MAAhBw1H,EACA,OAAO,KAGX,MAAMr9I,EAAOk1I,SAAmBx2K,KAAKuD,KAAK,CACtC4H,GAAIwzK,EACJv0K,KAAO,aAAe4lK,GAAS7mH,GAAMluB,UAAU,KAC/C,GAEJ,aADmBj7B,KAAK+1J,YAAYz0H,KACxBl7B,EACD,KAEJk7B,CACX,GACJ,CACAo2I,UAAUkH,GACN,OAAO,GAAU5+K,UAAM,OAAQ,GAAQ,YACnC,IAAIi7J,EAAW,KACf,GAAI,EAAY2jB,GAAgB,CAE5B,MACMz1H,EADUnpD,KAAKk3K,UAAU9wK,QAAQw4K,GAClB3jJ,UAAU,GAAGkoB,cAAgB,gBAC5C07H,QAAwB7+K,KAAKw+K,aAAar1H,EAAM,aACtD,IAAK01H,EACD,OAAO,KAGX5jB,EAAW,IAAIgc,GAASj3K,KAAM6+K,EAAiB11H,GAC/C,IACI,MAAMyuH,QAAe3c,EAASyc,YAC9B,GAAIE,EACA,OAAOA,EAAOvxK,GAOtB,CAJA,MAAO04D,GACH,GAAIA,EAAMthD,OAASuhI,EAAOzlD,OAAOumD,eAC7B,MAAM/gF,CAEd,CAEA,IAEI,MAAMz9B,EAAOk1I,SAAmBx2K,KAAKuD,KAAK,CACtC4H,GAAI0zK,EACJz0K,KAAO,aAAe4lK,GAAS7mH,GAAMluB,UAAU,KAC/C,GACJggI,QAAiBj7J,KAAKs+K,YAAYh9I,EAOtC,CALA,MAAOy9B,GACH,GAAIA,EAAMthD,OAASuhI,EAAOzlD,OAAOumD,eAC7B,MAAM/gF,EAEV,OAAO,IACX,CACJ,MAII,GADAk8F,QAAiBj7J,KAAKs+K,YAAYM,IAC7B3jB,EACD,OAAO,KAGf,MAAM2c,QAAe3c,EAASyc,YAC9B,OAAc,MAAVE,EACO,KAEJA,EAAOvxK,GAClB,GACJ,CACAq0K,QAAQpkF,EAAQjtD,GACZ,OAAO,GAAOg3G,WAAW/pD,EAAS,mBAAoB0oD,EAAOzlD,OAAOulF,gBAAiB,CAAE57I,UAAWozD,GACtG,CACAyoF,YAAY7iB,GACRl8J,KAAKo7K,QAAWp7K,KAAK+4K,QAAQxrK,QAAQ/I,GAAMA,EAAEsxK,aAAY7vK,OAAS,CACtE,CACA+4K,WAAW9iB,GACPl8J,KAAKo7K,QAAWp7K,KAAK+4K,QAAQxrK,QAAQ/I,GAAMA,EAAEsxK,aAAY7vK,OAAS,CACtE,CACAq5J,kBAAkBvK,EAAWt/C,EAAUynD,GACnC,MAAMhB,EAAQ,IAAIjrF,GAAM,GAAY8jF,GAAYt/C,EAAUynD,GAG1D,OAFAl9J,KAAK+4K,QAAQ7yK,KAAKg2J,GAClBl8J,KAAK++K,YAAY7iB,GACVl8J,IACX,CACA0kE,GAAGqwF,EAAWt/C,GACV,OAAOz1G,KAAKs/J,kBAAkBvK,EAAWt/C,GAAU,EACvD,CACAynD,KAAKnI,EAAWt/C,GACZ,OAAOz1G,KAAKs/J,kBAAkBvK,EAAWt/C,GAAU,EACvD,CACA3wC,KAAKiwF,KAAchwF,GACf,IAAIrgE,GAAS,EACTu6K,EAAU,GACVC,EAAW,GAAYnqB,GAgB3B,OAfA/0J,KAAK+4K,QAAU/4K,KAAK+4K,QAAQxrK,QAAQ2uJ,GAC5BA,EAAMx6F,MAAQw9G,IAGlB/kI,YAAW,KACP+hH,EAAMzmD,SAAS5wG,MAAM7E,KAAM+kE,EAAK,GACjC,GACHrgE,GAAS,GACLw3J,EAAMgB,OACN+hB,EAAQ/4K,KAAKg2J,IACN,MAIf+iB,EAAQjzK,SAASkwJ,IAAYl8J,KAAKg/K,WAAW9iB,EAAM,IAC5Cx3J,CACX,CACA04J,cAAcrI,GACV,IAAKA,EACD,OAAO/0J,KAAK+4K,QAAQ9yK,OAExB,IAAIi5K,EAAW,GAAYnqB,GAC3B,OAAO/0J,KAAK+4K,QAAQxrK,QAAQ2uJ,GAChBA,EAAMx6F,MAAQw9G,IACvBj5K,MACP,CACA4+D,UAAUkwF,GACN,GAAiB,MAAbA,EACA,OAAO/0J,KAAK+4K,QAAQtsK,KAAKyvJ,GAAUA,EAAMzmD,WAE7C,IAAIypE,EAAW,GAAYnqB,GAC3B,OAAO/0J,KAAK+4K,QACPxrK,QAAQ2uJ,GAAWA,EAAMx6F,MAAQw9G,IACjCzyK,KAAKyvJ,GAAUA,EAAMzmD,UAC9B,CACA7wC,IAAImwF,EAAWt/C,GACX,GAAgB,MAAZA,EACA,OAAOz1G,KAAKm9J,mBAAmBpI,GAEnC,MAAMkqB,EAAU,GAChB,IAAI3sD,GAAQ,EACR4sD,EAAW,GAAYnqB,GAa3B,OAZA/0J,KAAK+4K,QAAU/4K,KAAK+4K,QAAQxrK,QAAQ2uJ,GAC5BA,EAAMx6F,MAAQw9G,GAAYhjB,EAAMzmD,UAAYA,KAG5C6c,IAGJA,GAAQ,EACR2sD,EAAQ/4K,KAAKg2J,IACN,KAEX+iB,EAAQjzK,SAASkwJ,IAAYl8J,KAAKg/K,WAAW9iB,EAAM,IAC5Cl8J,IACX,CACAm9J,mBAAmBpI,GACf,IAAIkqB,EAAU,GACd,GAAiB,MAAblqB,EACAkqB,EAAUj/K,KAAK+4K,QACf/4K,KAAK+4K,QAAU,OAEd,CACD,MAAMmG,EAAW,GAAYnqB,GAC7B/0J,KAAK+4K,QAAU/4K,KAAK+4K,QAAQxrK,QAAQ2uJ,GAC5BA,EAAMx6F,MAAQw9G,IAGlBD,EAAQ/4K,KAAKg2J,IACN,IAEf,CAEA,OADA+iB,EAAQjzK,SAASkwJ,IAAYl8J,KAAKg/K,WAAW9iB,EAAM,IAC5Cl8J,IACX,ECz8DJ,IAAI,GAAwC,SAAU8D,EAASC,EAAYC,EAAGC,GAE1E,OAAO,IAAKD,IAAMA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUlE,GAAS,IAAMmE,EAAKL,EAAUM,KAAKpE,GAAkC,CAAvB,MAAOqE,GAAKJ,EAAOI,EAAI,CAAE,CAC1F,SAASC,EAAStE,GAAS,IAAMmE,EAAKL,EAAiB,MAAE9D,GAAkC,CAAvB,MAAOqE,GAAKJ,EAAOI,EAAI,CAAE,CAC7F,SAASF,EAAKI,GAJlB,IAAevE,EAIauE,EAAOC,KAAOR,EAAQO,EAAOvE,QAJ1CA,EAIyDuE,EAAOvE,MAJhDA,aAAiB6D,EAAI7D,EAAQ,IAAI6D,GAAE,SAAUG,GAAWA,EAAQhE,EAAQ,KAIjByE,KAAKP,EAAWI,EAAW,CAC7GH,GAAML,EAAYA,EAAUY,MAAMf,EAASC,GAAc,KAAKQ,OAClE,GACJ,EAWA,MAAM,GAAS,IAAIy6I,EAAO,IAEpBmgC,GAAW,CAAC,OAAQ,eAC1B,SAASC,GAAQj/K,EAAOk/K,GACpB,GAAa,MAATl/K,EACA,OAAO,KAGX,GAA+B,iBAAnBA,EAAa,SAAkBA,EAAMoH,QAAQoC,MAAM,YAAa,CACxE,MAAMS,EAAO,EAAYjK,EAAMiK,MAAQjK,EAAMiK,KAAO,KACpD,IAAKi1K,GAAej1K,EAChB,MAAO,CAAE7C,QAASpH,EAAMoH,QAAS6C,OAEzC,CAEA,GAAuB,iBAAZ,EAAsB,CAC7B,IAAK,MAAMvI,KAAO1B,EAAO,CACrB,MAAMuE,EAAS06K,GAAQj/K,EAAM0B,GAAMw9K,GACnC,GAAI36K,EACA,OAAOA,CAEf,CACA,OAAO,IACX,CAEA,GAAuB,iBAAZ,EACP,IACI,OAAO06K,GAAQ97I,KAAKx6B,MAAM3I,GAAQk/K,EAEtB,CAAhB,MAAOtgH,GAAS,CAEpB,OAAO,IACX,CACA,SAASugH,GAAWhpF,EAAQv3B,EAAO11B,GAC/B,MAAMs+G,EAAct+G,EAAOs+G,aAAet+G,EAAOg0I,kBAGjD,GAAe,SAAX/mF,EAAmB,CACnB,MAAM5xF,EAAS06K,GAAQrgH,GAAO,GAC9B,GAAIr6D,EACA,OAAOA,EAAO0F,KAGlB,GAAOi2I,WAAW,sFAAuFrB,EAAOzlD,OAAOumD,eAAgB,CACnI11I,KAAM,KAAMu9I,cAAa5oF,SAEjC,CACA,GAAe,gBAAXu3B,EAA0B,CAE1B,IAAI5xF,EAAS06K,GAAQrgH,EAAMh6D,MAAM,GACnB,MAAVL,IACAA,EAAS06K,GAAQrgH,GAAO,IAGxBr6D,GACA,GAAO27I,WAAW,4EAA6ErB,EAAOzlD,OAAO6mD,wBAAyB,CAClI7qC,OAAQ7wG,EAAO6C,QAAS+uF,SAAQqxD,cAAa5oF,SAGzD,CAEA,IAAIx3D,EAAUw3D,EAAMx3D,QAwCpB,MAvCIw3D,EAAMthD,OAASuhI,EAAOzlD,OAAOq4E,cAAgB7yG,EAAMA,OAA0C,iBAAzBA,EAAMA,MAAa,QACvFx3D,EAAUw3D,EAAMA,MAAMx3D,QAEO,iBAAhBw3D,EAAU,KACvBx3D,EAAUw3D,EAAMh6D,KAEqB,iBAAxBg6D,EAAkB,eAC/Bx3D,EAAUw3D,EAAMqzC,cAEpB7qG,GAAWA,GAAW,IAAI47C,cAEtB57C,EAAQoC,MAAM,mDACd,GAAO02I,WAAW,oDAAqDrB,EAAOzlD,OAAOwmD,mBAAoB,CACrGhhF,QAAOu3B,SAAQqxD,gBAInBpgJ,EAAQoC,MAAM,yBACd,GAAO02I,WAAW,8BAA+BrB,EAAOzlD,OAAO0mD,cAAe,CAC1ElhF,QAAOu3B,SAAQqxD,gBAInBpgJ,EAAQoC,MAAM,wEACd,GAAO02I,WAAW,0BAA2BrB,EAAOzlD,OAAO2mD,wBAAyB,CAChFnhF,QAAOu3B,SAAQqxD,gBAInBpgJ,EAAQoC,MAAM,2BACd,GAAO02I,WAAW,gDAAiDrB,EAAOzlD,OAAOonD,sBAAuB,CACpG5hF,QAAOu3B,SAAQqxD,gBAGnBw3B,GAAS31K,QAAQ8sF,IAAW,GAAK/uF,EAAQoC,MAAM,iFAC/C,GAAO02I,WAAW,4EAA6ErB,EAAOzlD,OAAO6mD,wBAAyB,CAClIrhF,QAAOu3B,SAAQqxD,gBAGjB5oF,CACV,CACA,SAASkzG,GAAMjpI,GACX,OAAO,IAAI9kC,SAAQ,SAAUC,GACzBg2C,WAAWh2C,EAAS6kC,EACxB,GACJ,CACA,SAASu2I,GAAUxkJ,GACf,GAAIA,EAAQgkC,MAAO,CAEf,MAAMA,EAAQ,IAAIz4D,MAAMy0B,EAAQgkC,MAAMx3D,SAGtC,MAFAw3D,EAAMthD,KAAOsd,EAAQgkC,MAAMthD,KAC3BshD,EAAM30D,KAAO2wB,EAAQgkC,MAAM30D,KACrB20D,CACV,CACA,OAAOhkC,EAAQr2B,MACnB,CACA,SAAS86K,GAAar/K,GAClB,OAAIA,EACOA,EAAMgjD,cAEVhjD,CACX,CACA,MAAM,GAAoB,CAAC,EACpB,MAAMs/K,WAAsBrqB,GAC/BhtJ,YAAYo7I,EAAkB+R,EAAUmqB,GAEpC,GADAt6H,QACIo+F,IAAqB,GACrB,MAAM,IAAIl9I,MAAM,8EAEpB29I,GAAejkJ,KAAM,WAAYu1J,GACX,MAAlBmqB,IACAA,EAAiB,GAEW,iBAArB,GACPz7B,GAAejkJ,KAAM,WAAYA,KAAKu1J,SAAS2hB,UAAU9wK,QAAQs5K,IACjEz7B,GAAejkJ,KAAM,SAAU,OAEE,iBAArB,GACZikJ,GAAejkJ,KAAM,SAAU0/K,GAC/Bz7B,GAAejkJ,KAAM,WAAY,OAGjC,GAAOo/I,mBAAmB,2BAA4B,iBAAkBsgC,EAEhF,CACAnpB,QAAQhB,GACJ,OAAO,GAAOlV,WAAW,0CAA2CrB,EAAOzlD,OAAOonD,sBAAuB,CACrGz9G,UAAW,WAEnB,CACAy8I,mBACI,OAAO,IAAIC,GAAuB,GAAmB5/K,KAAKu1J,SAAUv1J,KAAK6/K,UAAY7/K,KAAK8/K,OAC9F,CACA74K,aACI,OAAIjH,KAAK6/K,SACE37K,QAAQC,QAAQnE,KAAK6/K,UAEzB7/K,KAAKu1J,SAAS50G,KAAK,eAAgB,IAAI/7C,MAAMm7K,IAC5CA,EAAS95K,QAAUjG,KAAK8/K,QACxB,GAAOz/B,WAAW,oBAAsBrgJ,KAAK8/K,OAAQ9gC,EAAOzlD,OAAOonD,sBAAuB,CACtFz9G,UAAW,eAGZljC,KAAKu1J,SAAS2hB,UAAU9wK,QAAQ25K,EAAS//K,KAAK8/K,WAE7D,CACAE,yBAAyBr4B,GACrBA,EAAcrD,GAAYqD,GAC1B,MAAM/iI,EAAc5kB,KAAKiH,aAAarC,MAAMwB,IACpCA,IACAA,EAAUA,EAAQ+8C,eAEf/8C,KAKX,GAA4B,MAAxBuhJ,EAAY33I,SAAkB,CAC9B,MAAMiwK,EAAW37B,GAAYqD,GAC7Bs4B,EAAS70K,KAAOwZ,EAChB+iI,EAAY33I,SAAWhQ,KAAKu1J,SAAS/7G,YAAYymI,EACrD,CAaA,OAZsB,MAAlBt4B,EAAYx8I,KACZw8I,EAAYx8I,GAAKjH,QAAQC,QAAQwjJ,EAAYx8I,IAAIvG,MAAMuG,GAAO,GAAUnL,UAAM,OAAQ,GAAQ,YAC1F,GAAU,MAANmL,EACA,OAAO,KAEX,MAAM/E,QAAgBpG,KAAKu1J,SAASQ,YAAY5qJ,GAIhD,OAHe,MAAX/E,GACA,GAAOg5I,mBAAmB,qCAAsC,QAASj0I,GAEtE/E,CACX,OAEG+9I,GAAkB,CACrB5mI,GAAI4mI,GAAkBwD,GACtBhiI,OAAQf,IACThgB,MAAK,EAAG2Y,KAAIoI,aACI,MAAXpI,EAAGnS,KACCmS,EAAGnS,KAAK+3C,gBAAkBx9B,GAC1B,GAAOy5H,mBAAmB,wBAAyB,cAAeuI,GAItEpqI,EAAGnS,KAAOua,EAEd,MAAM23J,EAAQt9K,KAAKu1J,SAASntJ,YAAY83K,mBAAmB3iK,EAAI,CAAEnS,MAAM,IACvE,OAAOpL,KAAKu1J,SAAS50G,KAAK,sBAAuB,CAAC28H,IAAQ14K,MAAMmxB,GACrDA,IACPgpC,GACOugH,GAAW,kBAAmBvgH,EAAOu+G,IAC9C,GAEV,CACA1nB,gBAAgBjO,GACZ,OAAO,GAAOtH,WAAW,sCAAuCrB,EAAOzlD,OAAOonD,sBAAuB,CACjGz9G,UAAW,mBAEnB,CACAud,gBAAgBknG,GACZ,OAAO,GAAU3nJ,UAAM,OAAQ,GAAQ,YAEnC,MAAMuzK,QAAoBvzK,KAAKu1J,SAAS4kB,wBAAwB,IAAM,EAAIn6K,KAAKu1J,SAASwlB,iBAElFhlJ,QAAa/1B,KAAKggL,yBAAyBr4B,GACjD,IAII,aAAakrB,IAAK,IAAM,GAAU7yK,UAAM,OAAQ,GAAQ,YACpD,MAAMud,QAAWvd,KAAKu1J,SAAS8G,eAAetmI,GAC9C,GAAW,OAAPxY,EAGJ,OAAOvd,KAAKu1J,SAASunB,iBAAiBv/J,EAAIwY,EAAMw9I,EACpD,KAAI,CAAEP,SAAUhzK,KAAKu1J,UAKzB,CAHA,MAAOx2F,GAEH,MADAA,EAAMu9F,gBAAkBvmI,EAClBgpC,CACV,CACJ,GACJ,CACAr3D,YAAYH,GACR,OAAO,GAAUvH,UAAM,OAAQ,GAAQ,YACnC,MAAMoK,EAA8B,iBAAd,EAA0B4+I,GAAYzhJ,GAAWA,EACjEnB,QAAgBpG,KAAKiH,aAC3B,aAAajH,KAAKu1J,SAAS50G,KAAK,gBAAiB,CAAC2hG,EAAQl4I,GAAOhE,EAAQ+8C,eAC7E,GACJ,CACAg9H,mBAAmB54K,GACf,OAAO,GAAUvH,UAAM,OAAQ,GAAQ,YACnC,MAAMoK,EAA8B,iBAAd,EAA0B4+I,GAAYzhJ,GAAWA,EACjEnB,QAAgBpG,KAAKiH,aAE3B,aAAajH,KAAKu1J,SAAS50G,KAAK,WAAY,CAACv6C,EAAQ+8C,cAAem/F,EAAQl4I,IAChF,GACJ,CACAksJ,eAAev7C,EAAQgxC,EAAO5rJ,GAC1B,OAAO,GAAUH,UAAM,OAAQ,GAAQ,YAEnC,MAAM4qK,QAAkB,gBAA+B7vD,EAAQgxC,EAAO5rJ,GAAQmhC,GACnEthC,KAAKu1J,SAASQ,YAAYz0H,KAE/Bl7B,QAAgBpG,KAAKiH,aAC3B,aAAajH,KAAKu1J,SAAS50G,KAAK,uBAAwB,CACpDv6C,EAAQ+8C,cACR7f,KAAKE,UAAU,cAA6BonI,EAAU7vD,OAAQgxC,EAAO6e,EAAUzqK,SAEvF,GACJ,CACAigL,OAAO7+H,GACH,OAAO,GAAUvhD,UAAM,OAAQ,GAAQ,YACnC,MAAMu1J,EAAWv1J,KAAKu1J,SAChBnvJ,QAAgBpG,KAAKiH,aAC3B,OAAOsuJ,EAAS50G,KAAK,yBAA0B,CAACv6C,EAAQ+8C,cAAe5B,EAAU,MACrF,GACJ,EAEJ,MAAMq+H,WAA+BH,GACjCh/H,gBAAgBknG,GACZ,OAAO3nJ,KAAKggL,yBAAyBr4B,GAAa/iJ,MAAMmxB,IAC7C,CACHA,KAAMA,EACN+rC,MAAO,KACP9xD,SAAU,KACVykJ,SAAU,KACVrqJ,KAAM,KACNjK,MAAO,KACPwZ,QAAS,KACTqiJ,cAAe,EACf5wJ,KAAM,KACN2wJ,KAAOC,GAA2Bh8J,KAAKu1J,SAASwmB,mBAAmBhmJ,EAAMimI,MAGrF,EAEJ,MAAM,GAAyB,CAC3BriJ,SAAS,EAAMvP,MAAM,EAAM4F,UAAU,EAAMykJ,UAAU,EAAM3yF,OAAO,EAAM32D,IAAI,EAAMhL,OAAO,EACzFiR,MAAM,EAAMipJ,YAAY,EACxB1F,cAAc,EAAMC,sBAAsB,GAEvC,MAAMoY,WAAwB8L,GACjC1wK,YAAY/B,EAAK0lK,GACb,IAAIsU,EAAiBtU,EAEC,MAAlBsU,IACAA,EAAiB,IAAIn8K,SAAQ,CAACC,EAASC,KACnC+1C,YAAW,KACPn6C,KAAKo5K,gBAAgBx0K,MAAMmnK,IACvB5nK,EAAQ4nK,EAAQ,IAChBhtG,IACA36D,EAAO26D,EAAM,GACf,GACH,EAAE,KAGb3Z,MAAMi7H,GAEDh6K,IACDA,EAAM69I,GAAUlkJ,KAAKoI,YAAa,aAA5B87I,IAGND,GAAejkJ,KAAM,aADJ,iBAAV,EAC4BC,OAAOizD,OAAO,CAC7C7sD,IAAKA,IAI0BpG,OAAOizD,OAAOoxF,GAAYj+I,KAEjErG,KAAKsgL,QAAU,EACnB,CACI74D,aAIA,OAH4B,MAAxBznH,KAAKugL,kBACLvgL,KAAKugL,gBAAkB,CAAC,GAErBvgL,KAAKugL,eAChB,CACA3sH,oBACI,MAAO,uBACX,CACAwlH,gBAQI,OAPKp5K,KAAKynH,OAAsB,gBAC5BznH,KAAKynH,OAAsB,cAAIznH,KAAKwgL,yBAEpCrmI,YAAW,KACPn6C,KAAKynH,OAAsB,cAAI,IAAI,GACpC,IAEAznH,KAAKynH,OAAsB,aACtC,CACA+4D,yBACI,OAAO,GAAUxgL,UAAM,OAAQ,GAAQ,kBAC7BiyK,GAAM,GACZ,IAAIt4J,EAAU,KACd,IACIA,QAAgB3Z,KAAK2gD,KAAK,cAAe,GAO7C,CALA,MAAOoe,GACH,IACIplD,QAAgB3Z,KAAK2gD,KAAK,cAAe,GAE7B,CAAhB,MAAOoe,GAAS,CACpB,CACA,GAAe,MAAXplD,EAAiB,CACjB,MAAMm8I,EAAa5R,GAAUlkJ,KAAKoI,YAAa,cAC/C,IACI,OAAO0tJ,EAAWvS,EAAUn4I,KAAKuO,GAASnK,WAQ9C,CANA,MAAOuvD,GACH,OAAO,GAAOshF,WAAW,2BAA4BrB,EAAOzlD,OAAOugF,cAAe,CAC9EngK,QAASA,EACTuiJ,MAAO,iBACPuW,YAAa1zG,GAErB,CACJ,CACA,OAAO,GAAOshF,WAAW,2BAA4BrB,EAAOzlD,OAAOugF,cAAe,CAC9E5d,MAAO,aAEf,GACJ,CACAukB,UAAUf,GACN,OAAO,IAAID,GAAc,GAAmBz/K,KAAM0/K,EACtD,CACAgB,mBAAmBhB,GACf,OAAO1/K,KAAKygL,UAAUf,GAAgBC,kBAC1C,CACAgB,eACI,OAAO3gL,KAAK2gD,KAAK,eAAgB,IAAI/7C,MAAMm7K,GAChCA,EAAStzK,KAAKW,GAAMpN,KAAKk3K,UAAU9wK,QAAQgH,MAE1D,CACAuzC,KAAK21C,EAAQjtD,GACT,MAAM8qC,EAAU,CACZmiB,OAAQA,EACRjtD,OAAQA,EACR9gB,GAAKvoB,KAAKsgL,UACVM,QAAS,OAEb5gL,KAAK8kE,KAAK,QAAS,CACf+7G,OAAQ,UACR1sG,QAASywE,GAASzwE,GAClBohF,SAAUv1J,OAId,MAAMy9G,EAAS,CAAC,cAAe,mBAAmBj0G,QAAQ8sF,IAAW,EACrE,GAAImnB,GAASz9G,KAAKynH,OAAOnxB,GACrB,OAAOt2F,KAAKynH,OAAOnxB,GAEvB,MAAM5xF,EAASkuK,GAAU5yK,KAAKsxC,WAAYhO,KAAKE,UAAU2wC,GAAUorG,IAAW36K,MAAMF,IAChF1E,KAAK8kE,KAAK,QAAS,CACf+7G,OAAQ,WACR1sG,QAASA,EACTg+B,SAAUztG,EACV6wJ,SAAUv1J,OAEP0E,KACPq6D,IAOA,MANA/+D,KAAK8kE,KAAK,QAAS,CACf+7G,OAAQ,WACR9hH,MAAOA,EACPoV,QAASA,EACTohF,SAAUv1J,OAER++D,CAAK,IASf,OANI0+C,IACAz9G,KAAKynH,OAAOnxB,GAAU5xF,EACtBy1C,YAAW,KACPn6C,KAAKynH,OAAOnxB,GAAU,IAAI,GAC3B,IAEA5xF,CACX,CACAo8K,eAAexqF,EAAQjtD,GACnB,OAAQitD,GACJ,IAAK,iBACD,MAAO,CAAC,kBAAmB,IAC/B,IAAK,cACD,MAAO,CAAC,eAAgB,IAC5B,IAAK,aACD,MAAO,CAAC,iBAAkB,CAACkpF,GAAan2I,EAAOjjC,SAAUijC,EAAOgsH,WACpE,IAAK,sBACD,MAAO,CAAC,0BAA2B,CAACmqB,GAAan2I,EAAOjjC,SAAUijC,EAAOgsH,WAC7E,IAAK,UACD,MAAO,CAAC,cAAe,CAACmqB,GAAan2I,EAAOjjC,SAAUijC,EAAOgsH,WACjE,IAAK,eACD,MAAO,CAAC,mBAAoB,CAACmqB,GAAan2I,EAAOjjC,SAAU08I,EAAWz5G,EAAOq1E,SAAU,IAAKr1E,EAAOgsH,WACvG,IAAK,kBACD,MAAO,CAAC,yBAA0B,CAAChsH,EAAOg0I,oBAC9C,IAAK,WACD,OAAIh0I,EAAOgsH,SACA,CAAC,uBAAwB,CAAChsH,EAAOgsH,WAAYhsH,EAAO80I,sBAEtD90I,EAAO+yH,UACL,CAAC,qBAAsB,CAAC/yH,EAAO+yH,YAAa/yH,EAAO80I,sBAEvD,KACX,IAAK,iBACD,MAAO,CAAC,2BAA4B,CAAC90I,EAAOizH,kBAChD,IAAK,wBACD,MAAO,CAAC,4BAA6B,CAACjzH,EAAOizH,kBACjD,IAAK,OAED,MAAO,CAAC,WAAY,CADOpY,GAAUlkJ,KAAKoI,YAAa,qBAClC83K,CAAmB72I,EAAOs+G,YAAa,CAAEv8I,MAAM,IAASi+B,EAAOgsH,WAExF,IAAK,cAED,MAAO,CAAC,kBAAmB,CADAnR,GAAUlkJ,KAAKoI,YAAa,qBAC3B83K,CAAmB72I,EAAOs+G,YAAa,CAAEv8I,MAAM,MAE/E,IAAK,UAID,OAHIi+B,EAAO97B,QAAmC,MAAzB87B,EAAO97B,OAAOnH,UAC/BijC,EAAO97B,OAAOnH,QAAUo5K,GAAan2I,EAAO97B,OAAOnH,UAEhD,CAAC,cAAe,CAACijC,EAAO97B,SAIvC,OAAO,IACX,CACAmtK,QAAQpkF,EAAQjtD,GACZ,OAAO,GAAUrpC,UAAM,OAAQ,GAAQ,YAGnC,GAAe,SAAXs2F,GAAgC,gBAAXA,EAA0B,CAC/C,MAAM/4E,EAAK8rB,EAAOs+G,YAClB,GAAIpqI,GAAiB,MAAXA,EAAGnM,MAAgBmyI,EAAUn4I,KAAKmS,EAAGnM,MAAM49D,UAE1B,MAAnBzxD,EAAGo3I,cAAmD,MAA3Bp3I,EAAGq3I,qBAA8B,CAC5D,MAAMqB,QAAgBj2J,KAAKw0J,aACC,MAAxByB,EAAQtB,cAAwD,MAAhCsB,EAAQrB,wBAExCvrH,EAASi7G,GAAYj7G,IACds+G,YAAcrD,GAAY/mI,UAC1B8rB,EAAOs+G,YAAYv2I,KAElC,CAER,CACA,MAAM2zD,EAAO/kE,KAAK8gL,eAAexqF,EAAQjtD,GAC7B,MAAR07B,GACA,GAAOs7E,WAAW/pD,EAAS,mBAAoB0oD,EAAOzlD,OAAOulF,gBAAiB,CAAE57I,UAAWozD,IAE/F,IACI,aAAat2F,KAAK2gD,KAAKokB,EAAK,GAAIA,EAAK,GAIzC,CAFA,MAAOhG,GACH,OAAOugH,GAAWhpF,EAAQv3B,EAAO11B,EACrC,CACJ,GACJ,CACA01I,YAAY7iB,GACU,YAAdA,EAAMx6F,KACN1hE,KAAK+gL,gBAET37H,MAAM25H,YAAY7iB,EACtB,CACA6kB,gBACI,GAA2B,MAAvB/gL,KAAKghL,eACL,OAEJ,MAAMjhL,EAAOC,KACPihL,EAAgBjhL,KAAK2gD,KAAK,kCAAmC,IACnE3gD,KAAKghL,eAAiBC,EACtBA,EAAcr8K,MAAK,SAAUs8K,GA8BzB,OA7BA,SAASrO,IACL9yK,EAAK4gD,KAAK,uBAAwB,CAACugI,IAAWt8K,MAAK,SAAUk4H,GACzD,GAAI/8H,EAAKihL,gBAAkBC,EACvB,OAAO,KAEX,IAAIE,EAAMj9K,QAAQC,UAWlB,OAVA24H,EAAO9wH,SAAQ,SAAU+pB,GAErBh2B,EAAKi5K,SAAS,KAAOjjJ,EAAKotB,eAAiB,UAC3Cg+H,EAAMA,EAAIv8K,MAAK,WACX,OAAO7E,EAAKs8J,eAAetmI,GAAMnxB,MAAK,SAAU2Y,GAE5C,OADAxd,EAAK+kE,KAAK,UAAWvnD,GACd,IACX,GACJ,GACJ,IACO4jK,EAAIv8K,MAAK,WACZ,OAAOqtK,GAAM,IACjB,GACJ,IAAGrtK,MAAK,WACJ,GAAI7E,EAAKihL,gBAAkBC,EAK3B,OADA9mI,YAAW,WAAc04H,GAAQ,GAAG,GAC7B,KAJH9yK,EAAK4gD,KAAK,sBAAuB,CAACugI,GAK1C,IAAGngI,OAAOge,IAAD,GACb,CACA8zG,GACOqO,CACX,IAAGngI,OAAOge,IAAD,GACb,CACAigH,WAAW9iB,GACW,YAAdA,EAAMx6F,KAAuD,IAAlC1hE,KAAKo9J,cAAc,aAC9Cp9J,KAAKghL,eAAiB,MAE1B57H,MAAM45H,WAAW9iB,EACrB,CAUAtoG,0BAA0B+zF,EAAay5B,GAEnC,MAAMC,EAAU/8B,GAAY,IAC5B,GAAI88B,EACA,IAAK,MAAMv/K,KAAOu/K,EACVA,EAAWv/K,KACXw/K,EAAQx/K,IAAO,GAI3BuiJ,GAAgBuD,EAAa05B,GAC7B,MAAM38K,EAAS,CAAC,EAqBhB,MAnBA,CAAC,UAAW,WAAY,WAAY,OAAQ,eAAgB,uBAAwB,QAAS,SAASsH,SAAQ,SAAUnK,GACpH,GAAwB,MAApB8lJ,EAAY9lJ,GACZ,OAEJ,MAAM1B,EAAQwiJ,EAASY,EAAUn4I,KAAKu8I,EAAY9lJ,KACtC,aAARA,IACAA,EAAM,OAEV6C,EAAO7C,GAAO1B,CAClB,IACA,CAAC,OAAQ,KAAM,QAAQ6L,SAAQ,SAAUnK,GACb,MAApB8lJ,EAAY9lJ,KAGhB6C,EAAO7C,GAAOygJ,EAAQqF,EAAY9lJ,IACtC,IACI8lJ,EAAY0S,aACZ31J,EAAmB,WAAIu1J,GAActS,EAAY0S,aAE9C31J,CACX,ECnnBJ,IAAI48K,GAAK,KACT,IAEI,GADAA,GAAKC,UACK,MAAND,GACA,MAAM,IAAIh7K,MAAM,gBAUxB,CAPA,MAAOy4D,GACH,MAAMwiF,EAAS,IAAIvC,EAAO,IAC1BsiC,GAAK,WACD//B,EAAOlB,WAAW,+CAAgDrB,EAAOzlD,OAAOonD,sBAAuB,CACnGz9G,UAAW,mBAEnB,CACJ,CChBA,IAAI,GAAwC,SAAUp/B,EAASC,EAAYC,EAAGC,GAE1E,OAAO,IAAKD,IAAMA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUlE,GAAS,IAAMmE,EAAKL,EAAUM,KAAKpE,GAAkC,CAAvB,MAAOqE,GAAKJ,EAAOI,EAAI,CAAE,CAC1F,SAASC,EAAStE,GAAS,IAAMmE,EAAKL,EAAiB,MAAE9D,GAAkC,CAAvB,MAAOqE,GAAKJ,EAAOI,EAAI,CAAE,CAC7F,SAASF,EAAKI,GAJlB,IAAevE,EAIauE,EAAOC,KAAOR,EAAQO,EAAOvE,QAJ1CA,EAIyDuE,EAAOvE,MAJhDA,aAAiB6D,EAAI7D,EAAQ,IAAI6D,GAAE,SAAUG,GAAWA,EAAQhE,EAAQ,KAIjByE,KAAKP,EAAWI,EAAW,CAC7GH,GAAML,EAAYA,EAAUY,MAAMf,EAASC,GAAc,KAAKQ,OAClE,GACJ,EAOA,MAAM,GAAS,IAAIy6I,EAAO,IAe1B,IAAIwiC,GAAS,EAGN,MAAMC,WAA0BzU,GACnC5kK,YAAY/B,EAAK0lK,GAEG,QAAZA,GACA,GAAO1rB,WAAW,uDAAwDrB,EAAOzlD,OAAOonD,sBAAuB,CAC3Gz9G,UAAW,gBAIfkiB,MADiB,iBAAV,EACD/+C,EAGA,aAHK0lK,GAKf/rK,KAAK05K,kBAAoB,EACzB15K,KAAK0hL,UAAW,EAEZz9B,GAAejkJ,KAAM,aADJ,iBAAV,EAC4B,IAAI,GAAUA,KAAKsxC,WAAWjrC,KAG9BA,GAEvC49I,GAAejkJ,KAAM,YAAa,CAAC,GACnCikJ,GAAejkJ,KAAM,QAAS,CAAC,GAC/BikJ,GAAejkJ,KAAM,UAAW,CAAC,GACjCikJ,GAAejkJ,KAAM,iBAAkBolD,MAAMg0H,iBAE7Cp5K,KAAK2hL,UAAUC,OAAS,KACpB5hL,KAAK0hL,UAAW,EAChBzhL,OAAO8L,KAAK/L,KAAK6hL,WAAW71K,SAASuc,IACjCvoB,KAAK2hL,UAAUhhI,KAAK3gD,KAAK6hL,UAAUt5J,GAAIwS,QAAQ,GACjD,EAEN/6B,KAAK2hL,UAAUG,UAAaC,IACxB,MAAM33K,EAAO23K,EAAa33K,KACpB1F,EAAS4+B,KAAKx6B,MAAMsB,GAC1B,GAAiB,MAAb1F,EAAO6jB,GAAY,CACnB,MAAMA,EAAKrgB,OAAOxD,EAAO6jB,IACnB4rD,EAAUn0E,KAAK6hL,UAAUt5J,GAE/B,UADOvoB,KAAK6hL,UAAUt5J,QACA1lB,IAAlB6B,EAAOA,OACPyvE,EAAQsoC,SAAS,KAAM/3G,EAAOA,QAC9B1E,KAAK8kE,KAAK,QAAS,CACf+7G,OAAQ,WACR1sG,QAAS7wC,KAAKx6B,MAAMqrE,EAAQp5C,SAC5Bo3E,SAAUztG,EAAOA,OACjB6wJ,SAAUv1J,WAGb,CACD,IAAI++D,EAAQ,KACRr6D,EAAOq6D,OACPA,EAAQ,IAAIz4D,MAAM5B,EAAOq6D,MAAMx3D,SAAW,iBAC1C08I,GAAellF,EAAO,OAAQr6D,EAAOq6D,MAAMthD,MAAQ,MACnDwmI,GAAellF,EAAO,WAAY30D,IAGlC20D,EAAQ,IAAIz4D,MAAM,iBAEtB6tE,EAAQsoC,SAAS19C,OAAOl8D,GACxB7C,KAAK8kE,KAAK,QAAS,CACf+7G,OAAQ,WACR9hH,MAAOA,EACPoV,QAAS7wC,KAAKx6B,MAAMqrE,EAAQp5C,SAC5Bw6H,SAAUv1J,MAElB,CACJ,MACK,GAAsB,qBAAlB0E,EAAO4xF,OAA+B,CAE3C,MAAMtsF,EAAMhK,KAAKgiL,MAAMt9K,EAAO2kC,OAAO44I,cACjCj4K,GAEAA,EAAIgnK,YAAYtsK,EAAO2kC,OAAO3kC,OAEtC,MAEIzC,QAAQm7G,KAAK,yBACjB,EAKJ,MAAM8kE,EAAWxG,aAAY,KACzB17K,KAAK8kE,KAAK,OAAO,GAClB,KACCo9G,EAASnF,OACTmF,EAASnF,OAEjB,CAGI4E,gBAAc,OAAO3hL,KAAKmiL,UAAY,CAC1C/I,gBACI,OAAOp5K,KAAKoiL,cAChB,CACIrH,sBACA,OAAO,CACX,CACAI,iBAAiB5H,GACb,GAAOlzB,WAAW,iDAAkDrB,EAAOzlD,OAAOonD,sBAAuB,CACrGz9G,UAAW,mBAEnB,CACI63I,oBAAgB56K,GAChB,GAAOkgJ,WAAW,mDAAoDrB,EAAOzlD,OAAOonD,sBAAuB,CACvGz9G,UAAW,sBAEnB,CACA2vI,OACI,OAAO,GAAU7yK,UAAM,OAAQ,GAAQ,YACnC,OAAO,IACX,GACJ,CACIo7K,YAAQj7K,GACHA,GAGL,GAAOkgJ,WAAW,0CAA2CrB,EAAOzlD,OAAOonD,sBAAuB,CAC9Fz9G,UAAW,cAEnB,CACAyd,KAAK21C,EAAQjtD,GACT,MAAMg5I,EAAMb,KACZ,OAAO,IAAIt9K,SAAQ,CAACC,EAASC,KAOzB,MAAM22B,EAAUuI,KAAKE,UAAU,CAC3B8yD,OAAQA,EACRjtD,OAAQA,EACR9gB,GAAI85J,EACJzB,QAAS,QAEb5gL,KAAK8kE,KAAK,QAAS,CACf+7G,OAAQ,UACR1sG,QAAS7wC,KAAKx6B,MAAMiyB,GACpBw6H,SAAUv1J,OAEdA,KAAK6hL,UAAU35K,OAAOm6K,IAAQ,CAAE5lE,SAjBhC,SAAkB19C,EAAOr6D,GACrB,OAAIq6D,EACO36D,EAAO26D,GAEX56D,EAAQO,EACnB,EAY0Cq2B,WACtC/6B,KAAK0hL,UACL1hL,KAAK2hL,UAAUhhI,KAAK5lB,EACxB,GAER,CACA64B,oBACI,MAAO,qBACX,CACA0uH,WAAW5gH,EAAK4rF,EAAO0jB,GACnB,OAAO,GAAUhxK,UAAM,OAAQ,GAAQ,YACnC,IAAIuiL,EAAeviL,KAAKwiL,QAAQ9gH,GACZ,MAAhB6gH,IACAA,EAAer+K,QAAQ6sC,IAAIu8G,GAAO1oJ,MAAM0oJ,GAC7BttJ,KAAK2gD,KAAK,gBAAiB2sG,KAEtCttJ,KAAKwiL,QAAQ9gH,GAAO6gH,GAExB,MAAME,QAAcF,EACpBviL,KAAKgiL,MAAMS,GAAS,CAAE/gH,MAAKsvG,cAC/B,GACJ,CACA+N,YAAY7iB,GACR,OAAQA,EAAM9qJ,MACV,IAAK,QACDpR,KAAKsiL,WAAW,QAAS,CAAC,aAAc59K,IACpC,MAAM6uK,EAAchwB,EAAUn4I,KAAK1G,EAAOu/C,QAAQz0C,WAClDxP,KAAKg5K,SAAS9hJ,MAAQq8I,EACtBvzK,KAAK8kE,KAAK,QAASyuG,EAAY,IAEnC,MACJ,IAAK,UACDvzK,KAAKsiL,WAAW,UAAW,CAAC,2BAA4B59K,IACpD1E,KAAK8kE,KAAK,UAAWpgE,EAAO,IAEhC,MACJ,IAAK,SACD1E,KAAKsiL,WAAWpmB,EAAMx6F,IAAK,CAAC,OAAQ1hE,KAAKw9K,WAAWthB,EAAM3uJ,UAAW7I,IAC3C,MAAlBA,EAAOgwK,UACPhwK,EAAOgwK,SAAU,GAErB10K,KAAK8kE,KAAKo3F,EAAM3uJ,OAAQvN,KAAKk3K,UAAUzC,UAAU/vK,GAAQ,IAE7D,MACJ,IAAK,KAAM,CACP,MAAMg+K,EAAexmB,IACjB,MAAMnmI,EAAOmmI,EAAMnmI,KACnB/1B,KAAKu8J,sBAAsBxmI,GAAMnxB,MAAMq3J,IAC9BA,GAGLj8J,KAAK8kE,KAAK/uC,EAAMkmI,EAAQ,GAC1B,EAGNymB,EAAYxmB,GAKZl8J,KAAKsiL,WAAW,KAAM,CAAC,aAAc59K,IACjC1E,KAAK+4K,QAAQxrK,QAAQ/I,GAAkB,OAAXA,EAAE4M,OAAgBpF,QAAQ02K,EAAY,IAEtE,KACJ,CAEA,IAAK,QACL,IAAK,OACL,IAAK,WACL,IAAK,UACL,IAAK,QACD,MACJ,QACIzgL,QAAQC,IAAI,aAAcg6J,GAGtC,CACA8iB,WAAW9iB,GACP,IAAIx6F,EAAMw6F,EAAMx6F,IAChB,GAAmB,OAAfw6F,EAAM9qJ,KAAe,CAErB,GAAIpR,KAAK+4K,QAAQxrK,QAAQ/I,GAAkB,OAAXA,EAAE4M,OAAgBnL,OAC9C,OAEJy7D,EAAM,IACV,MACK,GAAI1hE,KAAKo9J,cAAclB,EAAMA,OAE9B,OAEJ,MAAMumB,EAAQziL,KAAKwiL,QAAQ9gH,GACtB+gH,WAGEziL,KAAKwiL,QAAQ9gH,GACpB+gH,EAAM79K,MAAM69K,IACHziL,KAAKgiL,MAAMS,YAGTziL,KAAKgiL,MAAMS,GAClBziL,KAAK2gD,KAAK,kBAAmB,CAAC8hI,IAAO,IAE7C,CACA57H,UACI,OAAO,GAAU7mD,UAAM,OAAQ,GAAQ,YAE/BA,KAAK2hL,UAAUlvE,aAAe,sBACxB,IAAKvuG,SAASC,IAChBnE,KAAK2hL,UAAUC,OAAS,WACpBz9K,GAAQ,EACZ,EACAnE,KAAK2hL,UAAU9uE,QAAU,WACrB1uG,GAAQ,EACZ,CAAC,KAKTnE,KAAK2hL,UAAUgB,MAAM,IACzB,GACJ,EC3RJ,MAAM,GAAS,IAAI3jC,EAAO,IAanB,MAAM4jC,WAA8B5V,GACvCoM,gBACI,MAAM3wK,EAASxI,OAAOuC,OAAO,KAAM,CAC/B42K,cAAe,CAAEj2K,IAAK,IAAMiiD,MAAMg0H,iBAEtC,OA9B8Ct1K,EA8B7B9D,KA9BsC+D,OA8BhC,EA9B+CE,EA8B/B,YACnC,IAAI8nK,EAAU/rK,KAAK+rK,QAanB,OAZe,MAAXA,IACAA,QAAgBtjK,EAAO2wK,cAAc71K,KAAKvD,MACrC+rK,GACD,GAAO1rB,WAAW,sBAAuBrB,EAAOzlD,OAAOmmD,cAAe,CAAC,GAGtD,MAAjB1/I,KAAK45K,WAEL31B,GAAejkJ,KAAM,WAAY+rK,GACjC/rK,KAAK8kE,KAAK,UAAWinG,EAAS,QAG/BA,CACX,EA3CG,KAFgE/nK,OA8BpC,KA5BjBA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUlE,GAAS,IAAMmE,EAAKL,EAAUM,KAAKpE,GAAkC,CAAvB,MAAOqE,GAAKJ,EAAOI,EAAI,CAAE,CAC1F,SAASC,EAAStE,GAAS,IAAMmE,EAAKL,EAAiB,MAAE9D,GAAkC,CAAvB,MAAOqE,GAAKJ,EAAOI,EAAI,CAAE,CAC7F,SAASF,EAAKI,GAJlB,IAAevE,EAIauE,EAAOC,KAAOR,EAAQO,EAAOvE,QAJ1CA,EAIyDuE,EAAOvE,MAJhDA,aAAiB6D,EAAI7D,EAAQ,IAAI6D,GAAE,SAAUG,GAAWA,EAAQhE,EAAQ,KAIjByE,KAAKP,EAAWI,EAAW,CAC7GH,GAAML,EAAYA,EAAUY,MAAMf,EAASC,GAAc,KAAKQ,OAClE,IAPwC,IAAUT,EAASC,EAAYC,EAAGC,CA8C1E,EAEG,MAAM4+K,WAA2BD,GACpCx6K,YAAY2jK,EAAS+W,GACjB,GAAO3hC,yBAA0B0hC,IAEjC9W,EAAU7nB,cAAsB,aAAtBA,CAAoC6nB,GAC9C+W,EAAS5+B,cAAsB,YAAtBA,CAAmC4+B,GAE5C19H,MADmB8+F,cAAsB,SAAtBA,CAAgC6nB,EAAS+W,GAC1C/W,GACM,iBAAb,EACP9nB,GAAejkJ,KAAM,SAAU8iL,GAEhB,MAAVA,GACL7iL,OAAO8L,KAAK+2K,GAAQ92K,SAASnK,IACzBoiJ,GAAejkJ,KAAM6B,EAAKihL,EAAOjhL,GAAK,GAGlD,CACAk/K,gBACI,GAAO3jE,KAAK,yDAChB,CACAi4D,sBACI,OAAO,CACX,CACAoL,UAAUr6K,GACN,OAAO,GAAOi6I,WAAW,wCAAyCrB,EAAOzlD,OAAOonD,sBAAuB,CAAEz9G,UAAW,aACxH,CACAy9I,eACI,OAAOz8K,QAAQC,QAAQ,GAC3B,CAEAyvD,iBAAiBkvH,GACb,OAAOA,CACX,CAIAlvH,cAAcm4G,EAAS+W,GACnB,OAAO,GAAOziC,WAAW,oDAAqDrB,EAAOzlD,OAAOulF,gBAAiB,CACzG57I,UAAW,UAEnB,ECnFJ,MAAM,GAAS,IAAI87G,EAAO,IAMpB+jC,GAAgB,mCACf,MAAMC,WAAiCvB,GAC1Cr5K,YAAY2jK,EAAS+W,GACjB,MAAMvtB,EAAW,IAAI8W,GAAgBN,EAAS+W,GAG9C19H,MAFYmwG,EAASjkH,WAAWjrC,IAAIgc,QAAQ,SAAU,MACjDA,QAAQ,eAAgB,mBAClBkzI,EAASwW,SACpB9nB,GAAejkJ,KAAM,SAAUu1J,EAASutB,OAC5C,CACAzN,sBACI,OAAQr1K,KAAK8iL,SAAWC,EAC5B,EAEG,MAAM1W,WAAwBwW,GACjCjvH,4BAA4Bm4G,EAAS+W,GACjC,OAAO,IAAIE,GAAyBjX,EAAS+W,EACjD,CACAlvH,iBAAiBkvH,GACb,OAAc,MAAVA,EACOC,IAEPD,GAA8B,iBAAb,GACjB,GAAO1jC,mBAAmB,iBAAkB,SAAU0jC,GAEnDA,EACX,CACAlvH,cAAcm4G,EAAS+W,GACnB,IAAI7mE,EAAO,KACX,OAAQ8vD,EAAQzqI,MACZ,IAAK,YACD26E,EAAO,gCACP,MACJ,IAAK,UACDA,EAAO,gCACP,MACJ,IAAK,UACDA,EAAO,gCACP,MACJ,IAAK,SACDA,EAAO,+BACP,MACJ,IAAK,QACDA,EAAO,8BACP,MACJ,IAAK,QACDA,EAAO,oCACP,MACJ,IAAK,WACDA,EAAO,mCACP,MACJ,IAAK,WACDA,EAAO,gCACP,MACJ,IAAK,mBACDA,EAAO,gCACP,MACJ,IAAK,WACDA,EAAO,gCACP,MACJ,IAAK,iBACDA,EAAO,8BACP,MACJ,QACI,GAAOmjC,mBAAmB,sBAAuB,UAAWn0I,UAAU,IAE9E,MAAO,CACHsmK,WAAW,EACXlrK,IAAM,WAAkB41G,EAAO6mE,EAC/B3R,iBAAkB,CAACkB,EAAShsK,KACpBy8K,IAAWC,IACXxN,KAEGrxK,QAAQC,SAAQ,IAGnC,CACAkxK,sBACI,OAAQr1K,KAAK8iL,SAAWC,EAC5B,ECtFJ,MAAM,GAAS,IAAI/jC,EAAO,IACpB,GAAgB,mEACtB,SAASikC,GAAQ3hJ,GACb,OAAQA,GACJ,IAAK,YACD,MAAO,oBACX,IAAK,UACD,MAAO,4BACX,IAAK,UACD,MAAO,4BACX,IAAK,SACD,MAAO,2BACX,IAAK,QACD,MAAO,wBACX,IAAK,WACD,MAAO,yBAEf,OAAO,GAAO89G,mBAAmB,sBAAuB,OAAQ99G,EACpE,CACO,MAAMqrI,WAAqBkW,GAC9BxN,sBACI,OAAQr1K,KAAK8iL,SAAW,EAC5B,CACAlvH,iBAAiBkvH,GACb,OAAc,MAAVA,EACO,GAEJA,CACX,CACAlvH,cAAcm4G,EAAS+W,GACL,MAAVA,IACAA,EAAS,IAEb,MAAMxxI,EAAa,CACfigI,WAAW,EACXlrK,IAAM,WAAc48K,GAAQlX,EAAQzqI,MAAQwhJ,EAC5C3R,iBAAkB,CAACkB,EAAShsK,KACpBy8K,EAAOA,SAAW,IAClBvN,KAEGrxK,QAAQC,SAAQ,KAO/B,OAJ4B,MAAxB2+K,EAAOI,gBACP5xI,EAAWkgI,KAAO,GAClBlgI,EAAWiQ,SAAWuhI,EAAOI,eAE1B5xI,CACX,ECvCJ,MAAM,GAAS,IAAI0tG,EAAO,IACnB,MAAMytB,WAA2BoW,GACpCjvH,iBAAiBkvH,GAIb,OAHc,MAAVA,GACA,GAAO1jC,mBAAmB,sCAAuC,SAAU0jC,GAExE,IACX,CACAlvH,cAAcm4G,EAAS+W,GACnB,IAAI7mE,EAAO,KAQX,MANS,cADD8vD,EAAQzqI,KAER26E,EAAO,8BAGP,GAAOmjC,mBAAmB,sBAAuB,UAAWn0I,UAAU,IAEvEgxG,CACX,CACAy+D,QAAQpkF,EAAQjtD,GACZ,MAAM5gC,EAASxI,OAAOuC,OAAO,KAAM,CAC/Bk4K,QAAS,CAAEv3K,IAAK,IAAMiiD,MAAMs1H,WAEhC,OAnC8C52K,EAmC7B9D,KAnCsC+D,OAmChC,EAnC+CE,EAmC/B,YAGnC,MAAe,mBAAXqyF,SACoB7tF,EAAOiyK,QAAQn3K,KAAKvD,KAAM,WAAY,CAAEq1J,SAAU,YACzDpxG,OAEVx7C,EAAOiyK,QAAQn3K,KAAKvD,KAAMs2F,EAAQjtD,EAC7C,EAzCG,KAFgErlC,OAmCpC,KAjCjBA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUlE,GAAS,IAAMmE,EAAKL,EAAUM,KAAKpE,GAAkC,CAAvB,MAAOqE,GAAKJ,EAAOI,EAAI,CAAE,CAC1F,SAASC,EAAStE,GAAS,IAAMmE,EAAKL,EAAiB,MAAE9D,GAAkC,CAAvB,MAAOqE,GAAKJ,EAAOI,EAAI,CAAE,CAC7F,SAASF,EAAKI,GAJlB,IAAevE,EAIauE,EAAOC,KAAOR,EAAQO,EAAOvE,QAJ1CA,EAIyDuE,EAAOvE,MAJhDA,aAAiB6D,EAAI7D,EAAQ,IAAI6D,GAAE,SAAUG,GAAWA,EAAQhE,EAAQ,KAIjByE,KAAKP,EAAWI,EAAW,CAC7GH,GAAML,EAAYA,EAAUY,MAAMf,EAASC,GAAc,KAAKQ,OAClE,IAPwC,IAAUT,EAASC,EAAYC,EAAGC,CA4C1E,EC5CJ,IAAI,GAAwC,SAAUH,EAASC,EAAYC,EAAGC,GAE1E,OAAO,IAAKD,IAAMA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUlE,GAAS,IAAMmE,EAAKL,EAAUM,KAAKpE,GAAkC,CAAvB,MAAOqE,GAAKJ,EAAOI,EAAI,CAAE,CAC1F,SAASC,EAAStE,GAAS,IAAMmE,EAAKL,EAAiB,MAAE9D,GAAkC,CAAvB,MAAOqE,GAAKJ,EAAOI,EAAI,CAAE,CAC7F,SAASF,EAAKI,GAJlB,IAAevE,EAIauE,EAAOC,KAAOR,EAAQO,EAAOvE,QAJ1CA,EAIyDuE,EAAOvE,MAJhDA,aAAiB6D,EAAI7D,EAAQ,IAAI6D,GAAE,SAAUG,GAAWA,EAAQhE,EAAQ,KAIjByE,KAAKP,EAAWI,EAAW,CAC7GH,GAAML,EAAYA,EAAUY,MAAMf,EAASC,GAAc,KAAKQ,OAClE,GACJ,EAQA,MAAM,GAAS,IAAIy6I,EAAO,IAG1B,SAASmkC,GAAuBx7B,GAC5B,MAAMjjJ,EAAS,CAAC,EAChB,IAAK,IAAI7C,KAAO8lJ,EAAa,CACzB,GAAwB,MAApBA,EAAY9lJ,GACZ,SAEJ,IAAI1B,EAAQwnJ,EAAY9lJ,GACZ,SAARA,GAA4B,IAAV1B,IAQlBA,EAJA,CAAEiR,MAAM,EAAMpB,UAAU,EAAMykJ,UAAU,EAAM2uB,aAAa,EAAMxuB,sBAAsB,EAAM9yF,OAAO,EAAM3hE,OAAO,GAAO0B,GAChH8gJ,EAASL,EAAQniJ,IAEZ,eAAR0B,EACG,IAAMo4J,GAAc95J,GAAOsM,KAAKO,GAC7B,aAAaA,EAAI5G,0BAA0B4G,EAAI+sJ,YAAYrtJ,KAAK,cACxEA,KAAK,KAAO,IAGP41I,EAAQniJ,GAEpBuE,EAAO7C,GAAO1B,EAClB,CACA,OAAOuE,CACX,CACA,SAAS,GAAUA,GAEf,GAAqB,GAAjBA,EAAO+jB,SAAmC,qBAAnB/jB,EAAO6C,SAAqD,0BAAnB7C,EAAO6C,SACvE,OAAO7C,EAAOA,OAElB,GAAqB,GAAjBA,EAAO+jB,QAAiC,MAAlB/jB,EAAO6C,QAAiB,CAC9C,MAAMw3D,EAAQ,IAAIz4D,MAAM,oBAKxB,MAJAy4D,EAAMr6D,OAAS4+B,KAAKE,UAAU9+B,IACzBA,EAAOA,QAAU,IAAIy+C,cAAc35C,QAAQ,eAAiB,IAC7Du1D,EAAM2zG,eAAgB,GAEpB3zG,CACV,CACA,OAAOr6D,EAAOA,MAClB,CACA,SAAS2+K,GAAc3+K,GAEnB,GAAIA,GAA2B,GAAjBA,EAAO+jB,QAAiC,SAAlB/jB,EAAO6C,UAAuB7C,EAAOA,QAAU,IAAIy+C,cAAc35C,QAAQ,eAAiB,EAAG,CAC7H,MAAMu1D,EAAQ,IAAIz4D,MAAM,sBAGxB,MAFAy4D,EAAMr6D,OAAS4+B,KAAKE,UAAU9+B,GAC9Bq6D,EAAM2zG,eAAgB,EAChB3zG,CACV,CACA,GAAsB,OAAlBr6D,EAAOk8K,QAAkB,CAEzB,MAAM7hH,EAAQ,IAAIz4D,MAAM,oBAExB,MADAy4D,EAAMr6D,OAAS4+B,KAAKE,UAAU9+B,GACxBq6D,CACV,CACA,GAAIr6D,EAAOq6D,MAAO,CAEd,MAAMA,EAAQ,IAAIz4D,MAAM5B,EAAOq6D,MAAMx3D,SAAW,iBAOhD,MANI7C,EAAOq6D,MAAMthD,OACbshD,EAAMthD,KAAO/Y,EAAOq6D,MAAMthD,MAE1B/Y,EAAOq6D,MAAM30D,OACb20D,EAAM30D,KAAO1F,EAAOq6D,MAAM30D,MAExB20D,CACV,CACA,OAAOr6D,EAAOA,MAClB,CAEA,SAAS4+K,GAAYjuB,GACjB,GAAiB,YAAbA,EACA,MAAM,IAAI/uJ,MAAM,yBAEpB,MAAiB,WAAb+uJ,EACOA,EAEJ/lJ,SAAS+lJ,EAASp6H,UAAU,GAAI,GAC3C,CACA,MAAM,GAAgB,qCACtB,SAAS,GAAWq7D,EAAQv3B,EAAO4oF,GAG/B,GAAe,SAAXrxD,GAAqBv3B,EAAMthD,OAASuhI,EAAOzlD,OAAOq4E,aAAc,CAChE,MAAMptK,EAAIu6D,EAAMA,MAEhB,GAAIv6D,IAAMA,EAAE+C,QAAQoC,MAAM,cAAgBnF,EAAE+C,QAAQoC,MAAM,wBAAyB,CAE/E,IAAIS,EAAO5F,EAAE4F,KAIb,GAHIA,IACAA,EAAO,KAAOA,EAAKiY,QAAQ,SAAU,KAErC,EAAYjY,GACZ,OAAOA,EAEX,GAAOi2I,WAAW,wCAAyCrB,EAAOzlD,OAAOumD,eAAgB,CACrF/gF,QAAO30D,KAAM,MAErB,CACJ,CAEA,IAAI7C,EAAUw3D,EAAMx3D,QAoCpB,MAnCIw3D,EAAMthD,OAASuhI,EAAOzlD,OAAOq4E,eACzB7yG,EAAMA,OAA0C,iBAAzBA,EAAMA,MAAa,QAC1Cx3D,EAAUw3D,EAAMA,MAAMx3D,QAEO,iBAAhBw3D,EAAU,KACvBx3D,EAAUw3D,EAAMh6D,KAEqB,iBAAxBg6D,EAAkB,eAC/Bx3D,EAAUw3D,EAAMqzC,eAGxB7qG,GAAWA,GAAW,IAAI47C,cAEtB57C,EAAQoC,MAAM,uBACd,GAAO02I,WAAW,oDAAqDrB,EAAOzlD,OAAOwmD,mBAAoB,CACrGhhF,QAAOu3B,SAAQqxD,gBAInBpgJ,EAAQoC,MAAM,8EACd,GAAO02I,WAAW,8BAA+BrB,EAAOzlD,OAAO0mD,cAAe,CAC1ElhF,QAAOu3B,SAAQqxD,gBAInBpgJ,EAAQoC,MAAM,wCACd,GAAO02I,WAAW,0BAA2BrB,EAAOzlD,OAAO2mD,wBAAyB,CAChFnhF,QAAOu3B,SAAQqxD,gBAGnBpgJ,EAAQoC,MAAM,4DACd,GAAO02I,WAAW,4EAA6ErB,EAAOzlD,OAAO6mD,wBAAyB,CAClIrhF,QAAOu3B,SAAQqxD,gBAGjB5oF,CACV,CACO,MAAMotG,WAA0B2M,GACnC1wK,YAAY2jK,EAAS+W,GACjB19H,MAAM2mH,GACN9nB,GAAejkJ,KAAM,UAAWA,KAAKujL,cACrCt/B,GAAejkJ,KAAM,SAAU8iL,GAAU,GAC7C,CACAS,aACI,OAAQvjL,KAAK+rK,QAAU/rK,KAAK+rK,QAAQzqI,KAAO,WACvC,IAAK,YACD,MAAO,2BACX,IAAK,UACD,MAAO,mCACX,IAAK,UACD,MAAO,mCACX,IAAK,QACD,MAAO,iCACX,IAAK,SACD,MAAO,kCACX,IAAK,WACD,MAAO,sCAGf,OAAO,GAAO89G,mBAAmB,sBAAuB,UAAWp/I,KAAK+rK,QAAQzqI,KACpF,CACA6uI,OAAOvwK,EAAQypC,GACX,MAAMqS,EAAQz7C,OAAO8L,KAAKs9B,GAAQ2D,QAAO,CAACk1G,EAAOrgJ,KAC7C,MAAM1B,EAAQkpC,EAAOxnC,GAIrB,OAHa,MAAT1B,IACA+hJ,GAAS,IAAIrgJ,KAAO1B,KAEjB+hJ,CAAK,GACb,IACG4gC,EAAW9iL,KAAW,OAAI,WAAWA,KAAK8iL,SAAW,GAC3D,MAAO,GAAG9iL,KAAKwjL,sBAAsB5jL,IAAS87C,IAAQonI,GAC1D,CACAW,aACI,MAAO,GAAGzjL,KAAKwjL,aACnB,CACAE,YAAY9jL,EAAQypC,GAGhB,OAFAA,EAAOzpC,OAASA,EAChBypC,EAAOs6I,OAAS3jL,KAAK8iL,OACdz5I,CACX,CACAmnI,MAAM5wK,EAAQypC,EAAQliC,GAClB,OAAO,GAAUnH,UAAM,OAAQ,GAAQ,YACnC,MAAMqG,EAAOc,EAAOnH,KAAKyjL,aAAezjL,KAAKmwK,OAAOvwK,EAAQypC,GACtDtO,EAAW5zB,EAAOnH,KAAK0jL,YAAY9jL,EAAQypC,GAAU,KACrDu6I,EAAuB,UAAXhkL,EAAsByjL,GAAgB,GACxDrjL,KAAK8kE,KAAK,QAAS,CACf+7G,OAAQ,UACR1sG,QAAS9tE,EACTkvJ,SAAUv1J,OAEd,MAAMsxC,EAAa,CACfjrC,IAAKA,EACL+qK,qBAAsB,IACtBD,iBAAkB,CAACkB,EAAShsK,KACpBrG,KAAKq1K,uBACLE,KAEGrxK,QAAQC,SAAQ,KAG/B,IAAI0/K,EAAa,KACb9oJ,IACAuW,EAAWxI,QAAU,CAAE,eAAgB,oDACvC+6I,EAAa5jL,OAAO8L,KAAKgvB,GAAStuB,KAAK5K,GAC5B,GAAGA,KAAOk5B,EAAQl5B,OAC1B6K,KAAK,MAEZ,MAAMhI,QAAekuK,GAAUthI,EAAYuyI,EAAYD,GAAYP,IAOnE,OANArjL,KAAK8kE,KAAK,QAAS,CACf+7G,OAAQ,WACR1sG,QAAS9tE,EACT8rG,SAAUyyC,GAASlgJ,GACnB6wJ,SAAUv1J,OAEP0E,CACX,GACJ,CACA00K,gBACI,OAAO,GAAUp5K,UAAM,OAAQ,GAAQ,YACnC,OAAOA,KAAK+rK,OAChB,GACJ,CACA2O,QAAQpkF,EAAQjtD,GACZ,MAAM5gC,EAASxI,OAAOuC,OAAO,KAAM,CAC/Bk4K,QAAS,CAAEv3K,IAAK,IAAMiiD,MAAMs1H,WAEhC,OAAO,GAAU16K,UAAM,OAAQ,GAAQ,YACnC,OAAQs2F,GACJ,IAAK,iBACD,OAAOt2F,KAAKwwK,MAAM,QAAS,CAAEqQ,OAAQ,oBACzC,IAAK,cACD,OAAO7gL,KAAKwwK,MAAM,QAAS,CAAEqQ,OAAQ,iBACzC,IAAK,aAED,OAAO7gL,KAAKwwK,MAAM,UAAW,CACzBqQ,OAAQ,UACRz6K,QAASijC,EAAOjjC,QAChBs7D,IAAKr4B,EAAOgsH,WAEpB,IAAK,sBACD,OAAOr1J,KAAKwwK,MAAM,QAAS,CACvBqQ,OAAQ,0BACRz6K,QAASijC,EAAOjjC,QAChBs7D,IAAKr4B,EAAOgsH,WAEpB,IAAK,UACD,OAAOr1J,KAAKwwK,MAAM,QAAS,CACvBqQ,OAAQ,cACRz6K,QAASijC,EAAOjjC,QAChBs7D,IAAKr4B,EAAOgsH,WAEpB,IAAK,eACD,OAAOr1J,KAAKwwK,MAAM,QAAS,CACvBqQ,OAAQ,mBACRz6K,QAASijC,EAAOjjC,QAChBs4G,SAAUr1E,EAAOq1E,SACjBh9C,IAAKr4B,EAAOgsH,WAEpB,IAAK,kBACD,OAAOr1J,KAAKwwK,MAAM,QAAS,CACvBqQ,OAAQ,yBACR1vH,IAAK9nB,EAAOg0I,oBACb,GAAMt8H,OAAOge,GACL,GAAW,kBAAmBA,EAAO11B,EAAOg0I,qBAE3D,IAAK,WACD,GAAIh0I,EAAOgsH,SACP,OAAOr1J,KAAKwwK,MAAM,QAAS,CACvBqQ,OAAQ,uBACRn/G,IAAKr4B,EAAOgsH,SACZl/C,QAAU9sE,EAAO80I,oBAAsB,OAAS,UAGxD,MAAM,IAAI73K,MAAM,yCACpB,IAAK,iBACD,OAAOtG,KAAKwwK,MAAM,QAAS,CACvBqQ,OAAQ,2BACR3jK,OAAQmsB,EAAOizH,kBAEvB,IAAK,wBACD,OAAOt8J,KAAKwwK,MAAM,QAAS,CACvBqQ,OAAQ,4BACR3jK,OAAQmsB,EAAOizH,kBAEvB,IAAK,OAAQ,CACT,GAAwB,WAApBjzH,EAAOgsH,SACP,MAAM,IAAI/uJ,MAAM,wDAEpB,MAAMw9K,EAAWX,GAAuB95I,EAAOs+G,aAC/Cm8B,EAASlkL,OAAS,QAClBkkL,EAASjD,OAAS,WAClB,IACI,aAAa7gL,KAAKwwK,MAAM,QAASsT,GAAU,EAI/C,CAFA,MAAO/kH,GACH,OAAO,GAAW,OAAQA,EAAO11B,EAAOs+G,YAC5C,CACJ,CACA,IAAK,cAAe,CAChB,MAAMm8B,EAAWX,GAAuB95I,EAAOs+G,aAC/Cm8B,EAASlkL,OAAS,QAClBkkL,EAASjD,OAAS,kBAClB,IACI,aAAa7gL,KAAKwwK,MAAM,QAASsT,GAAU,EAI/C,CAFA,MAAO/kH,GACH,OAAO,GAAW,cAAeA,EAAO11B,EAAOs+G,YACnD,CACJ,CACA,IAAK,UAAW,CACZ,MAAM5iF,EAAO,CAAE87G,OAAQ,WAWvB,GAVIx3I,EAAO97B,OAAOoyJ,YACd56F,EAAK46F,UAAY2jB,GAAYj6I,EAAO97B,OAAOoyJ,YAE3Ct2H,EAAO97B,OAAOmyJ,UACd36F,EAAK26F,QAAU4jB,GAAYj6I,EAAO97B,OAAOmyJ,UAEzCr2H,EAAO97B,OAAOnH,UACd2+D,EAAK3+D,QAAUijC,EAAO97B,OAAOnH,SAG7BijC,EAAO97B,OAAO0lJ,QAAU5pH,EAAO97B,OAAO0lJ,OAAOhtJ,OAAS,IAClDojC,EAAO97B,OAAO0lJ,OAAOhtJ,OAAS,GAC9B,GAAOo6I,WAAW,0BAA2BrB,EAAOzlD,OAAOonD,sBAAuB,CAAEsS,OAAQ5pH,EAAO97B,OAAO0lJ,SAE1E,IAAhC5pH,EAAO97B,OAAO0lJ,OAAOhtJ,QAAc,CACnC,MAAM89K,EAAS16I,EAAO97B,OAAO0lJ,OAAO,GACZ,iBAAb,GAA2C,KAAlB8wB,EAAO99K,QACvC,GAAOo6I,WAAW,2BAA4BrB,EAAOzlD,OAAOonD,sBAAuB,CAAEojC,OAAQA,IAEjGh/G,EAAKg/G,OAASA,CAClB,CAEJ,MAAM3mK,QAAapd,KAAKwwK,MAAM,OAAQzrG,GAEtC,IAAIi/G,EAAS,CAAC,EAEd,IAAK,IAAIh5K,EAAI,EAAGA,EAAIoS,EAAKnX,OAAQ+E,IAAK,CAClC,MAAM9I,EAAMkb,EAAKpS,GACjB,GAAqB,MAAjB9I,EAAIk6J,UAAR,CAGA,GAA+B,MAA3B4nB,EAAO9hL,EAAIqxK,aAAsB,CACjC,MAAMr8I,QAAcl3B,KAAKirH,SAAS/oH,EAAIqxK,aAClCr8I,IACA8sJ,EAAO9hL,EAAIqxK,aAAer8I,EAAMnB,KAExC,CACA7zB,EAAIk6J,UAAY4nB,EAAO9hL,EAAIqxK,YAP3B,CAQJ,CACA,OAAOn2J,CACX,CACA,IAAK,gBACD,MAA0B,cAAtBpd,KAAK+rK,QAAQzqI,KACN,EAEJ4gI,kBAAkBliK,KAAKwwK,MAAM,QAAS,CAAEqQ,OAAQ,cAAeoD,QAI9E,OAAOx7K,EAAOiyK,QAAQn3K,KAAKvD,KAAMs2F,EAAQjtD,EAC7C,GACJ,CAKA66I,WAAWnmB,EAAeue,EAAYn8F,GAClC,OAAO,GAAUngF,UAAM,OAAQ,GAAQ,YACnC,MAAMqpC,EAAS,CACXw3I,OAAQ,SACRz6K,cAAgBpG,KAAK+1J,YAAYgI,GACjComB,WAA4B,MAAd7H,EAAsB,EAAIA,EACxC8H,SAAwB,MAAZjkG,EAAoB,SAAWA,EAC3ChzE,KAAM,OAGV,aADqBnN,KAAKwwK,MAAM,UAAWnnI,IAC7B58B,KAAK8Q,IACf,CAAC,kBAAmB,MAAMvR,SAAQ,SAAUnK,GACzB,IAAX0b,EAAG1b,WACI0b,EAAG1b,EAElB,IACkB,MAAd0b,EAAGm2J,SAAyC,MAAtBn2J,EAAG29B,kBACzB39B,EAAGm2J,QAAUn2J,EAAG29B,iBAEpB,MAAMgkB,EAAOl/D,KAAKk3K,UAAU1C,oBAAoBj3J,GAIhD,OAHIA,EAAG8mK,YACHnlH,EAAK1hD,UAAYlO,SAASiO,EAAG8mK,YAE1BnlH,CAAI,GAEnB,GACJ,CACAm2G,sBACI,OAAQr1K,KAAK8iL,SAAW,EAC5B,EChaG,SAASwB,GAASlzH,GAErB,IAAK,IAAIpmD,GADTomD,EAAQA,EAAM5lD,SACKvF,OAAS,EAAG+E,EAAI,EAAGA,IAAK,CACvC,MAAMi/C,EAAIl8C,KAAK8iD,MAAM9iD,KAAK67H,UAAY5+H,EAAI,IACpCknD,EAAMd,EAAMpmD,GAClBomD,EAAMpmD,GAAKomD,EAAMnH,GACjBmH,EAAMnH,GAAKiI,CACf,CACA,OAAOd,CACX,CCTA,IAAI,GAAwC,SAAUttD,EAASC,EAAYC,EAAGC,GAE1E,OAAO,IAAKD,IAAMA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUlE,GAAS,IAAMmE,EAAKL,EAAUM,KAAKpE,GAAkC,CAAvB,MAAOqE,GAAKJ,EAAOI,EAAI,CAAE,CAC1F,SAASC,EAAStE,GAAS,IAAMmE,EAAKL,EAAiB,MAAE9D,GAAkC,CAAvB,MAAOqE,GAAKJ,EAAOI,EAAI,CAAE,CAC7F,SAASF,EAAKI,GAJlB,IAAevE,EAIauE,EAAOC,KAAOR,EAAQO,EAAOvE,QAJ1CA,EAIyDuE,EAAOvE,MAJhDA,aAAiB6D,EAAI7D,EAAQ,IAAI6D,GAAE,SAAUG,GAAWA,EAAQhE,EAAQ,KAIjByE,KAAKP,EAAWI,EAAW,CAC7GH,GAAML,EAAYA,EAAUY,MAAMf,EAASC,GAAc,KAAKQ,OAClE,GACJ,EAWA,MAAM,GAAS,IAAIy6I,EAAO,IAC1B,SAASptF,KAAQ,OAAO,IAAKnqD,MAAQgvE,SAAW,CAGhD,SAAS8tG,GAAcjX,GACnB,IAAI5oK,EAAS,KACb,IAAK,IAAIsG,EAAI,EAAGA,EAAIsiK,EAASrnK,OAAQ+E,IAAK,CACtC,MAAM+gK,EAAUuB,EAAStiK,GAEzB,GAAe,MAAX+gK,EACA,OAAO,KAEPrnK,EAEMA,EAAO48B,OAASyqI,EAAQzqI,MAAQ58B,EAAOiV,UAAYoyJ,EAAQpyJ,UAC3DjV,EAAOwoK,aAAenB,EAAQmB,YAAqC,MAArBxoK,EAAOwoK,YAA4C,MAAtBnB,EAAQmB,aACrF,GAAO9tB,mBAAmB,oBAAqB,WAAYkuB,GAI/D5oK,EAASqnK,CAEjB,CACA,OAAOrnK,CACX,CACA,SAAS8/K,GAAOt3K,EAAQu3K,GACpBv3K,EAASA,EAAO1B,QAAQ2B,OACxB,MAAMu3K,EAAS32K,KAAK8iD,MAAM3jD,EAAOjH,OAAS,GAE1C,GAAIiH,EAAOjH,OAAS,EAChB,OAAOiH,EAAOw3K,GAGlB,MAAMt3K,EAAIF,EAAOw3K,EAAS,GAAI58K,EAAIoF,EAAOw3K,GACzC,OAAgB,MAAZD,GAAoB12K,KAAKozB,IAAI/zB,EAAItF,GAAK28K,EAC/B,MAEHr3K,EAAItF,GAAK,CACrB,CACA,SAAS,GAAU3H,GACf,GAAc,OAAVA,EACA,MAAO,OAEN,GAAuB,iBAAZ,GAA2C,kBAAZ,EAC3C,OAAOmjC,KAAKE,UAAUrjC,GAErB,GAAuB,iBAAZ,EACZ,OAAOA,EAEN,GAAIojJ,EAAU4e,YAAYhiK,GAC3B,OAAOA,EAAMiH,WAEZ,GAAIa,MAAM6D,QAAQ3L,GACnB,OAAOmjC,KAAKE,UAAUrjC,EAAMsM,KAAKzB,GAAM,GAAUA,MAEhD,GAAuB,iBAAZ,EAAsB,CAClC,MAAMe,EAAO9L,OAAO8L,KAAK5L,GAEzB,OADA4L,EAAKoB,OACE,IAAMpB,EAAKU,KAAK5K,IACnB,IAAIgE,EAAI1F,EAAM0B,GAOd,OALIgE,EADe,mBAAR,EACH,aAGA,GAAUA,GAEXy9B,KAAKE,UAAU3hC,GAAO,IAAMgE,CAAC,IACrC6G,KAAK,KAAO,GACnB,CACA,MAAM,IAAIpG,MAAM,8BAAgC,EACpD,CAEA,IAAIq+K,GAAU,EAEd,SAAS,GAAM9T,GACX,IAAI/8D,EAAS,KACTm+D,EAAQ,KACR78D,EAAU,IAAKlxG,SAASC,IACxB2vG,EAAS,WACDm+D,IACAE,aAAaF,GACbA,EAAQ,MAEZ9tK,GACJ,EACA8tK,EAAQ93H,WAAW25D,EAAQ+8D,EAAS,IASxC,MAAO,CAAE/8D,SAAQ8wE,WAHjB,WACI,OAAOxvE,CACX,EAC6B2mD,KAPf3R,IACVh1C,EAAUA,EAAQxwG,KAAKwlJ,GAChBh1C,GAMf,CACA,MAAMyvE,GAAgB,CAClB7lC,EAAOzlD,OAAOumD,eACdd,EAAOzlD,OAAOwmD,mBACdf,EAAOzlD,OAAO0mD,cACdjB,EAAOzlD,OAAO2mD,wBACdlB,EAAOzlD,OAAO6mD,yBAEZ0kC,GAAoB,CACtB,UACA,OACA,YACA,iBACA,SACA,eAGJ,SAASC,GAAkBhkL,EAAQ6wD,GAC/B,MAAMltD,EAAS,CACX8mB,OAAQzqB,EAAOyqB,QAiBnB,OAfAvrB,OAAOC,eAAewE,EAAQ,WAAY,CAAEvB,IAAK,IAAMpC,EAAOw0J,WAC1Dx0J,EAAOkjE,QACPv/D,EAAOu/D,MAAQljE,EAAOkjE,OAEtBrS,IACAltD,EAAOmsK,SAAYj/G,EAAM7wD,EAAOkjE,OAEhCljE,EAAO4D,OACH5D,EAAOg+D,MACPr6D,EAAOq6D,MAAQh+D,EAAOg+D,MAGtBr6D,EAAOA,OAAS3D,EAAO2D,QAAU,MAGlCA,CACX,CAyHA,SAASsgL,GAAYjkL,EAAQwyK,GACzB,OAAO,GAAUvzK,UAAM,OAAQ,GAAQ,YACnC,MAAMu1J,EAAYx0J,EAAe,SACjC,OAA6B,MAAxBw0J,EAASge,aAAuBhe,EAASge,aAAeA,IAAiC,IAAjBA,EAClEhe,EAEJsd,IAAK,IACD,IAAI3uK,SAAQ,CAACC,EAASC,KACzB+1C,YAAW,WAEP,OAAIo7G,EAASge,aAAeA,EACjBpvK,EAAQoxJ,GAGfx0J,EAAO67K,UACAz4K,EAAQ,MAGZA,OAAQtB,EACnB,GAAG,EAAE,KAEV,CAAEmwK,SAAUzd,GACnB,GACJ,CACA,SAAS0vB,GAAUlkL,EAAQmkL,EAAoB5uF,EAAQjtD,GACnD,OAAO,GAAUrpC,UAAM,OAAQ,GAAQ,YACnC,IAAIu1J,EAAWx0J,EAAOw0J,SACtB,OAAQj/D,GACJ,IAAK,iBACL,IAAK,cACD,OAAOi/D,EAASj/D,KACpB,IAAK,gBACD,GAAIi/D,EAAS8oB,cACT,OAAO9oB,EAAS8oB,gBAEpB,MACJ,IAAK,aACL,IAAK,sBACL,IAAK,UAID,OAHIh1I,EAAOgsH,UAAY,EAAYhsH,EAAOgsH,YACtCE,QAAiByvB,GAAYjkL,EAAQmkL,IAElC3vB,EAASj/D,GAAQjtD,EAAOjjC,QAASijC,EAAOgsH,UAAY,UAC/D,IAAK,eAID,OAHIhsH,EAAOgsH,UAAY,EAAYhsH,EAAOgsH,YACtCE,QAAiByvB,GAAYjkL,EAAQmkL,IAElC3vB,EAAS0nB,aAAa5zI,EAAOjjC,QAASijC,EAAOq1E,SAAUr1E,EAAOgsH,UAAY,UACrF,IAAK,WAID,OAHIhsH,EAAOgsH,UAAY,EAAYhsH,EAAOgsH,YACtCE,QAAiByvB,GAAYjkL,EAAQmkL,IAElC3vB,EAAUlsH,EAAO80I,oBAAsB,2BAA6B,YAAa90I,EAAOgsH,UAAYhsH,EAAO+yH,WACtH,IAAK,OACL,IAAK,cAID,OAHI/yH,EAAOgsH,UAAY,EAAYhsH,EAAOgsH,YACtCE,QAAiByvB,GAAYjkL,EAAQmkL,IAElC3vB,EAASj/D,GAAQjtD,EAAOs+G,aACnC,IAAK,iBACL,IAAK,wBACD,OAAO4N,EAASj/D,GAAQjtD,EAAOizH,iBACnC,IAAK,UAAW,CACZ,IAAI/uJ,EAAS87B,EAAO97B,OAIpB,OAHKA,EAAOoyJ,WAAa,EAAYpyJ,EAAOoyJ,YAAgBpyJ,EAAOmyJ,SAAW,EAAYnyJ,EAAOmyJ,YAC7FnK,QAAiByvB,GAAYjkL,EAAQmkL,IAElC3vB,EAASqK,QAAQryJ,EAC5B,EAEJ,OAAO,GAAO8yI,WAAW,uBAAwBrB,EAAOzlD,OAAOmmD,cAAe,CAC1EppD,OAAQA,EACRjtD,OAAQA,GAEhB,GACJ,CACO,MAAMwjI,WAAyBiM,GAClC1wK,YAAYjH,EAAW0vC,GACM,IAArB1vC,EAAU8E,QACV,GAAOm5I,mBAAmB,oBAAqB,YAAaj+I,GAEhE,MAAMgkL,EAAkBhkL,EAAUsL,KAAI,CAAC24K,EAAkB54K,KACrD,GAAI+nJ,GAAS0J,WAAWmnB,GAAmB,CACvC,MAAMC,EAAehQ,GAAoB+P,GAAoB,IAAO,IAC9DE,EAAW,EACjB,OAAOrlL,OAAOizD,OAAO,CAAEqiG,SAAU6vB,EAAkB55J,OAAQ,EAAG65J,eAAcC,YAChF,CACA,MAAMvkL,EAASujJ,GAAY8gC,GACJ,MAAnBrkL,EAAOukL,WACPvkL,EAAOukL,SAAW,GAEK,MAAvBvkL,EAAOskL,eACPtkL,EAAOskL,aAAehQ,GAAoB+P,GAAoB,IAAO,KAEpD,MAAjBrkL,EAAOyqB,SACPzqB,EAAOyqB,OAAS,GAEpB,MAAMA,EAASzqB,EAAOyqB,OAItB,OAHIA,EAAS,GAAKA,EAAS,KAAOA,EAAS,IACvC,GAAO4zH,mBAAmB,8CAA+C,aAAa5yI,YAAiBgf,GAEpGvrB,OAAOizD,OAAOnyD,EAAO,IAE1B0yB,EAAQ0xJ,EAAgBn4I,QAAO,CAACk1G,EAAO31I,IAAO21I,EAAQ31I,EAAEif,QAAS,GACzD,MAAVqlB,EACAA,EAASpd,EAAQ,EAEZod,EAASpd,GACd,GAAO2rH,mBAAmB,oDAAqD,SAAUvuG,GAG7F,IAAIwvI,EAAiBkE,GAAcY,EAAgB14K,KAAKF,GAAOA,EAAU,SAAEw/J,WAErD,MAAlBsU,IACAA,EAAiB,IAAIn8K,SAAQ,CAACC,EAASC,KACnC+1C,YAAW,KACPn6C,KAAKo5K,gBAAgBx0K,KAAKT,EAASC,EAAO,GAC3C,EAAE,KAGbghD,MAAMi7H,GAENp8B,GAAejkJ,KAAM,kBAAmBC,OAAOizD,OAAOiyH,IACtDlhC,GAAejkJ,KAAM,SAAU6wC,GAC/B7wC,KAAKulL,qBAAuB,CAChC,CACAnM,gBACI,OAAO,GAAUp5K,UAAM,OAAQ,GAAQ,YAEnC,OAAOukL,SADgBrgL,QAAQ6sC,IAAI/wC,KAAKmlL,gBAAgB14K,KAAKF,GAAMA,EAAEgpJ,SAASO,gBAElF,GACJ,CACA4kB,QAAQpkF,EAAQjtD,GACZ,OAAO,GAAUrpC,UAAM,OAAQ,GAAQ,YAEnC,GAAe,oBAAXs2F,EAA8B,CAC9B,MAAM4/D,QAAgBhyJ,QAAQ6sC,IAAI/wC,KAAKmlL,gBAAgB14K,KAAKF,GACjDA,EAAEgpJ,SAAS90G,gBAAgBpX,EAAOg0I,mBAAmBz4K,MAAMF,GACvDA,EAAOqxB,OACdgpC,GACOA,OAIf,IAAK,IAAI/zD,EAAI,EAAGA,EAAIkrJ,EAAQjwJ,OAAQ+E,IAAK,CACrC,MAAMtG,EAASwxJ,EAAQlrJ,GACvB,GAAwB,iBAAb,EACP,OAAOtG,CAEf,CAEA,MAAMwxJ,EAAQ,EAClB,EAGkC,IAA9Bl2J,KAAKulL,qBAAyC,mBAAXjvF,UAC7Bt2F,KAAK87K,kBAEf,MAAM9K,EA/PlB,SAAwBzb,EAAUj/D,EAAQjtD,GACtC,IAAIy/B,EAAY,GAChB,OAAQwtB,GACJ,IAAK,iBAKD,OAAO,SAAUkvF,GACb,MAAMt4K,EAASs4K,EAAQ/4K,KAAKF,GAAMA,EAAE7H,SAEpC,IAAI6uK,EAAciR,GAAOgB,EAAQ/4K,KAAKF,GAAMA,EAAE7H,SAAS,GACvD,GAAmB,MAAf6uK,EAYJ,OATAA,EAAcxlK,KAAK1E,KAAKkqK,GAEpBrmK,EAAO1D,QAAQ+pK,EAAc,IAAM,GACnCA,IAGAA,GAAehe,EAASgwB,sBACxBhwB,EAASgwB,oBAAsBhS,GAE5Bhe,EAASgwB,mBACpB,EACJ,IAAK,cAID,OAAO,SAAUC,GACb,MAAMt4K,EAASs4K,EAAQ/4K,KAAKF,GAAMA,EAAE7H,SAEpC,OADAwI,EAAOC,OACAD,EAAOa,KAAK8iD,MAAM3jD,EAAOjH,OAAS,GAC7C,EACJ,IAAK,gBAGD,OAAO,SAAUu/K,GACb,OAAOhB,GAAOgB,EAAQ/4K,KAAKF,GAAMA,EAAE7H,SACvC,EAEJ,IAAK,aACL,IAAK,sBACL,IAAK,UACL,IAAK,eACL,IAAK,OACL,IAAK,cACL,IAAK,UACD,MAEJ,IAAK,iBACL,IAAK,wBACDokE,EAAY,SAAUvrD,GAClB,OAAU,MAANA,EACO,OAEXA,EAAK+mI,GAAY/mI,IACdy+I,eAAiB,EACb,GAAUz+I,GACrB,EACA,MAEJ,IAAK,WAGGurD,EADAz/B,EAAO80I,oBACK,SAAUjnJ,GAClB,OAAa,MAATA,EACO,OAEXA,EAAQotH,GAAYptH,IACdo9I,aAAep9I,EAAMo9I,aAAa7nK,KAAK8Q,KACzCA,EAAK+mI,GAAY/mI,IACdy+I,eAAiB,EACbz+I,KAEJ,GAAU2Z,GACrB,EAGY,SAAUA,GAClB,OAAa,MAATA,EACO,KAEJ,GAAUA,EACrB,EAEJ,MACJ,QACI,MAAM,IAAI5wB,MAAM,mBAAqBgwF,GAI7C,OApHJ,SAAyBxtB,EAAWj4B,GAChC,OAAO,SAAU20I,GAEb,MAAMr1I,EAAQ,CAAC,EACfq1I,EAAQx5K,SAASO,IACb,MAAMpM,EAAQ2oE,EAAUv8D,EAAE7H,QACrByrC,EAAMhwC,KACPgwC,EAAMhwC,GAAS,CAAEgO,MAAO,EAAGzJ,OAAQ6H,EAAE7H,SAEzCyrC,EAAMhwC,GAAOgO,OAAO,IAGxB,MAAMpC,EAAO9L,OAAO8L,KAAKokC,GACzB,IAAK,IAAInlC,EAAI,EAAGA,EAAIe,EAAK9F,OAAQ+E,IAAK,CAClC,MAAMuwJ,EAAQprH,EAAMpkC,EAAKf,IACzB,GAAIuwJ,EAAMptJ,OAAS0iC,EACf,OAAO0qH,EAAM72J,MAErB,CAGJ,CACJ,CA8FW+gL,CAAgB38G,EAAWysF,EAAS1kH,OAC/C,CAiKgC60I,CAAe1lL,KAAMs2F,EAAQjtD,GAG3Cm8I,EAAUlB,GAAStkL,KAAKmlL,gBAAgB14K,IAAI63I,KAClDkhC,EAAQr4K,MAAK,CAACC,EAAGtF,IAAOsF,EAAEk4K,SAAWx9K,EAAEw9K,WACvC,MAAMJ,EAAqBllL,KAAKulL,oBAChC,IAAIv6K,EAAI,EACJuwF,GAAQ,EACZ,OAAa,CACT,MAAMkpB,EAAK7yD,KAEX,IAAI+zH,EAAiBH,EAAQj4K,QAAQhB,GAAOA,EAAE2uK,QAAYz2D,EAAKl4G,EAAE03D,MAAS13D,EAAE84K,eACvEr4I,QAAO,CAACk1G,EAAO31I,IAAO21I,EAAQ31I,EAAEif,QAAS,GAE9C,KAAOm6J,EAAiB3lL,KAAK6wC,QAAU7lC,EAAIw6K,EAAQv/K,QAAQ,CACvD,MAAMlF,EAASykL,EAAQx6K,KACjBq3K,EAAMsC,KACZ5jL,EAAOkjE,MAAQrS,KACf7wD,EAAO6vK,QAAU,GAAM7vK,EAAOskL,cAC9BtkL,EAAO6vK,QAAQ7U,MAAK,KAAQh7J,EAAO6vK,QAAU,IAAI,IACjD7vK,EAAOm6K,OAAS+J,GAAUlkL,EAAQmkL,EAAoB5uF,EAAQjtD,GAAQzkC,MAAMF,IACxE3D,EAAO4D,MAAO,EACd5D,EAAO2D,OAASA,EACZ1E,KAAKo9J,cAAc,UACnBp9J,KAAK8kE,KAAK,QAAS,CACf+7G,OAAQ,UACRwB,IAAKA,EACLuD,QAASb,GAAkBhkL,EAAQ6wD,MACnCuiB,QAAS,CAAEmiB,OAAQA,EAAQjtD,OAAQu7G,GAASv7G,IAC5CksH,SAAUv1J,MAElB,IACA++D,IACAh+D,EAAO4D,MAAO,EACd5D,EAAOg+D,MAAQA,EACX/+D,KAAKo9J,cAAc,UACnBp9J,KAAK8kE,KAAK,QAAS,CACf+7G,OAAQ,UACRwB,IAAKA,EACLuD,QAASb,GAAkBhkL,EAAQ6wD,MACnCuiB,QAAS,CAAEmiB,OAAQA,EAAQjtD,OAAQu7G,GAASv7G,IAC5CksH,SAAUv1J,MAElB,IAEAA,KAAKo9J,cAAc,UACnBp9J,KAAK8kE,KAAK,QAAS,CACf+7G,OAAQ,UACRwB,IAAKA,EACLuD,QAASb,GAAkBhkL,EAAQ,MACnCozE,QAAS,CAAEmiB,OAAQA,EAAQjtD,OAAQu7G,GAASv7G,IAC5CksH,SAAUv1J,OAGlB2lL,GAAkB5kL,EAAOyqB,MAC7B,CAEA,MAAMq6J,EAAU,GAChBL,EAAQx5K,SAASO,KACTA,EAAE5H,MAAS4H,EAAE2uK,SAGjB2K,EAAQ3/K,KAAKqG,EAAE2uK,QACX3uK,EAAEqkK,SACFiV,EAAQ3/K,KAAKqG,EAAEqkK,QAAQgU,cAC3B,IAEAiB,EAAQ5/K,eACF/B,QAAQyuK,KAAKkT,IAIvB,MAAM3vB,EAAUsvB,EAAQj4K,QAAQhB,GAAOA,EAAE5H,MAAmB,MAAX4H,EAAEwyD,QACnD,GAAIm3F,EAAQjwJ,QAAUjG,KAAK6wC,OAAQ,CAC/B,MAAMnsC,EAASssK,EAAY9a,GAC3B,QAAerzJ,IAAX6B,EAQA,OANA8gL,EAAQx5K,SAAQO,IACRA,EAAEqkK,SACFrkK,EAAEqkK,QAAQ98D,SAEdvnG,EAAEqwK,WAAY,CAAI,IAEfl4K,EAEN62F,UACK,GAAM,KAAKqpF,cAErBrpF,GAAQ,CACZ,CAEA,MAAMhC,EAASisF,EAAQx4I,QAAO,CAACk1G,EAAO31I,KAClC,IAAKA,EAAE5H,MAAmB,MAAX4H,EAAEwyD,MACb,OAAOmjF,EAEX,MAAMzkI,EAAQlR,EAAO,MAAEkR,KAOvB,OANIonK,GAAcr7K,QAAQiU,IAAS,IAC1BykI,EAAMzkI,KACPykI,EAAMzkI,GAAQ,CAAEshD,MAAOxyD,EAAEwyD,MAAOvzC,OAAQ,IAE5C02H,EAAMzkI,GAAM+N,QAAUjf,EAAEif,QAErB02H,CAAK,GACb,CAAG,GAwBN,GAvBAjiJ,OAAO8L,KAAKwtF,GAAQvtF,SAAS85K,IACzB,MAAM31I,EAAQopD,EAAOusF,GACrB,GAAI31I,EAAM3kB,OAASxrB,KAAK6wC,OACpB,OAGJ20I,EAAQx5K,SAAQO,IACRA,EAAEqkK,SACFrkK,EAAEqkK,QAAQ98D,SAEdvnG,EAAEqwK,WAAY,CAAI,IAEtB,MAAMp4K,EAAK2rC,EAAW,MAChBiuE,EAAQ,CAAC,EACf0mE,GAAkB94K,SAASs1B,IACR,MAAX98B,EAAE88B,KAGN88E,EAAM98E,GAAQ98B,EAAE88B,GAAK,IAEzB,GAAO++G,WAAW77I,EAAE+wG,QAAU/wG,EAAE+C,QAASu+K,EAAW1nE,EAAM,IAGhB,IAA1ConE,EAAQj4K,QAAQhB,IAAOA,EAAE5H,OAAMsB,OAC/B,KAER,CAQA,OANAu/K,EAAQx5K,SAAQO,IACRA,EAAEqkK,SACFrkK,EAAEqkK,QAAQ98D,SAEdvnG,EAAEqwK,WAAY,CAAI,IAEf,GAAOv8B,WAAW,wBAAyBrB,EAAOzlD,OAAOq4E,aAAc,CAC1Et7E,OAAQA,EACRjtD,OAAQA,EAGR6sH,QAASsvB,EAAQ/4K,KAAKF,GAAMw4K,GAAkBx4K,KAC9CgpJ,SAAUv1J,MAElB,GACJ,ECjkBJ,MAAM+lL,GAAc,KCKd,GAAS,IAAI/mC,EAAO,IAEpBgnC,GAAmB,mCAClB,MAAMC,WAAgCxE,GACzCr5K,YAAY2jK,EAAS+W,GACjB,MAAMvtB,EAAW,IAAI0W,GAAeF,EAAS+W,GACvCxxI,EAAaikH,EAASjkH,WACxBA,EAAWiQ,UACX,GAAO8+F,WAAW,+CAAgDrB,EAAOzlD,OAAOonD,sBAAuB,CACnGz9G,UAAW,0CAInBkiB,MADY9T,EAAWjrC,IAAIgc,QAAQ,SAAU,MAAMA,QAAQ,OAAQ,WACxD0pJ,GACX9nB,GAAejkJ,KAAM,SAAUu1J,EAAS2wB,WACxCjiC,GAAejkJ,KAAM,YAAau1J,EAAS2wB,WAC3CjiC,GAAejkJ,KAAM,gBAAiBu1J,EAAS2tB,cACnD,CACA7N,sBACI,OAAQr1K,KAAKkmL,YAAcF,EAC/B,EAEG,MAAM/Z,WAAuB4W,GAChCjvH,4BAA4Bm4G,EAAS+W,GACjC,OAAO,IAAImD,GAAwBla,EAAS+W,EAChD,CACAlvH,iBAAiBkvH,GACb,MAAMqD,EAAY,CACdrD,OAAQkD,GACRE,UAAWF,GACX9C,cAAe,MAEnB,OAAc,MAAVJ,IAGoB,iBAAb,EACPqD,EAAUD,UAAYpD,EAEO,MAAxBA,EAAOI,eACZ,GAAOziC,eAA8C,iBAAtBqiC,EAAgB,UAAiB,qCAAsC,YAAaA,EAAOoD,WAC1H,GAAOzlC,eAAkD,iBAA1BqiC,EAAoB,cAAiB,wBAAyB,gBAAiB,cAC9GqD,EAAUD,UAAYpD,EAAOoD,UAC7BC,EAAUjD,cAAgBJ,EAAOI,eAE5BJ,EAAOoD,YACZC,EAAUD,UAAYpD,EAAOoD,WAEjCC,EAAUrD,OAASqD,EAAUD,WAdlBC,CAgBf,CACAvyH,cAAcm4G,EAAS+W,GACnB,IAAI7mE,EAAO,KACX,OAAQ8vD,EAAUA,EAAQzqI,KAAO,WAC7B,IAAK,YACD26E,EAAO,oBACP,MACJ,IAAK,UACDA,EAAO,oBACP,MACJ,IAAK,UACDA,EAAO,oBACP,MACJ,IAAK,QACDA,EAAO,kBACP,MACJ,IAAK,SACDA,EAAO,mBACP,MACJ,IAAK,QACDA,EAAO,4BACP,MACJ,IAAK,WACDA,EAAO,2BACP,MACJ,IAAK,WACDA,EAAO,6BACP,MACJ,IAAK,iBACDA,EAAO,2BACP,MACJ,IAAK,WACDA,EAAO,6BACP,MACJ,IAAK,mBACDA,EAAO,6BACP,MACJ,QACI,GAAOokC,WAAW,sBAAuBrB,EAAOzlD,OAAO+mD,iBAAkB,CACrEC,SAAU,UACVpgJ,MAAO4rK,IAGnB,MAAMz6H,EAAa,CACfigI,WAAW,EACXlrK,IAAM,WAAkB41G,EAAO,OAAS6mE,EAAOoD,UAC/C/U,iBAAkB,CAACkB,EAAShsK,KACpBy8K,EAAOoD,YAAcF,IACrBzQ,KAEGrxK,QAAQC,SAAQ,KAO/B,OAJ4B,MAAxB2+K,EAAOI,gBACP5xI,EAAWkgI,KAAO,GAClBlgI,EAAWiQ,SAAWuhI,EAAOI,eAE1B5xI,CACX,CACA+jI,sBACI,OAAQr1K,KAAKkmL,YAAcF,EAC/B,EChHG,MAAMI,WAA6BpZ,GACtCrsH,KAAK21C,EAAQjtD,GACT,MAAM8qC,EAAU,CACZmiB,OAAQA,EACRjtD,OAAQA,EACR9gB,GAAKvoB,KAAKsgL,UACVM,QAAS,OAEa,MAAtB5gL,KAAKqmL,gBACLrmL,KAAKqmL,cAAgB,IAEzB,MAAMC,EAAkB,CAAEnyG,UAAShwE,QAAS,KAAMC,OAAQ,MACpDgxG,EAAU,IAAIlxG,SAAQ,CAACC,EAASC,KAClCkiL,EAAgBniL,QAAUA,EAC1BmiL,EAAgBliL,OAASA,CAAM,IAoDnC,OAlDApE,KAAKqmL,cAAcngL,KAAKogL,GACnBtmL,KAAKumL,0BAENvmL,KAAKumL,wBAA0BpsI,YAAW,KAGtC,MAAMqsI,EAAQxmL,KAAKqmL,cACnBrmL,KAAKqmL,cAAgB,KACrBrmL,KAAKumL,wBAA0B,KAE/B,MAAMpyG,EAAUqyG,EAAM/5K,KAAKg6K,GAAaA,EAAStyG,UAMjD,OALAn0E,KAAK8kE,KAAK,QAAS,CACf+7G,OAAQ,eACR1sG,QAASywE,GAASzwE,GAClBohF,SAAUv1J,OAEP4yK,GAAU5yK,KAAKsxC,WAAYhO,KAAKE,UAAU2wC,IAAUvvE,MAAMF,IAC7D1E,KAAK8kE,KAAK,QAAS,CACf+7G,OAAQ,WACR1sG,QAASA,EACTg+B,SAAUztG,EACV6wJ,SAAUv1J,OAIdwmL,EAAMx6K,SAAQ,CAACs6K,EAAiB95K,KAC5B,MAAMuuB,EAAUr2B,EAAO8H,GACvB,GAAIuuB,EAAQgkC,MAAO,CACf,MAAMA,EAAQ,IAAIz4D,MAAMy0B,EAAQgkC,MAAMx3D,SACtCw3D,EAAMthD,KAAOsd,EAAQgkC,MAAMthD,KAC3BshD,EAAM30D,KAAO2wB,EAAQgkC,MAAM30D,KAC3Bk8K,EAAgBliL,OAAO26D,EAC3B,MAEIunH,EAAgBniL,QAAQ42B,EAAQr2B,OACpC,GACF,IACFq6D,IACA/+D,KAAK8kE,KAAK,QAAS,CACf+7G,OAAQ,WACR9hH,MAAOA,EACPoV,QAASA,EACTohF,SAAUv1J,OAEdwmL,EAAMx6K,SAASs6K,IACXA,EAAgBliL,OAAO26D,EAAM,GAC/B,GACJ,GACH,KAEAq2C,CACX,EClEJ,MAAM,GAAS,IAAI4pC,EAAO,IAGnB,MAAM0nC,WAA0B7D,GACnCjvH,iBAAiBkvH,GAIb,OAHIA,GAA8B,iBAAb,GACjB,GAAO1jC,mBAAmB,iBAAkB,SAAU0jC,GAEnDA,GANO,kBAOlB,CACAlvH,cAAcm4G,EAAS+W,GACnB,GAAO1lE,KAAK,qFACZ,IAAInB,EAAO,KACX,OAAQ8vD,EAAQzqI,MACZ,IAAK,YACD26E,EAAO,uDACP,MACJ,IAAK,UACDA,EAAO,uDACP,MACJ,IAAK,UACDA,EAAO,uDACP,MACJ,IAAK,SACDA,EAAO,sDACP,MACJ,IAAK,QACDA,EAAO,qDACP,MACJ,QACI,GAAOmjC,mBAAmB,sBAAuB,UAAWn0I,UAAU,IAE9E,OAAQgxG,EAAO,WAAa6mE,CAChC,EClCJ,MAAM,GAAS,IAAI9jC,EAAO,IAGpB2nC,GAAwB,CAC1B1Z,UAAW,2BACXG,QAAS,2BACTO,QAAS,2BACTE,OAAQ,4BAEL,MAAMtB,WAAuBsW,GAChCz6K,YAAY2jK,EAAS+W,GAGjB,GAAc,MAAVA,EAAgB,CAChB,MAAMl9K,EAAIs+I,cAAsB,aAAtBA,CAAoC6nB,GAC9C,GAAInmK,EAAG,CACH,MAAMghL,EAAgBD,GAAsB/gL,EAAE07B,MAC1CslJ,IACA9D,EAAS,CACL8D,cAAeA,EACfC,cAAc,GAG1B,CAEc,MAAV/D,GACA,GAAOziC,WAAW,sBAAuBrB,EAAOzlD,OAAO+mD,iBAAkB,CACrEC,SAAU,UACVpgJ,MAAO4rK,GAGnB,CACA3mH,MAAM2mH,EAAS+W,EACnB,CACAlvH,iBAAiBkvH,GAIC,MAAVA,GACA,GAAO1jC,mBAAmB,wDAAyD,SAAU0jC,GAEjG,MAAMqD,EAAY,CACdS,cAAe,KACfC,cAAc,EACdC,qBAAsB,MAqB1B,MAlBwB,iBAAb,EACPX,EAAUS,cAAgB9D,EAEU,MAA/BA,EAAOgE,sBACZ,GAAOrmC,eAAkD,iBAA1BqiC,EAAoB,cAAiB,iDAAkD,gBAAiBA,EAAO8D,eAC9I,GAAOnmC,eAAyD,iBAAjCqiC,EAA2B,qBAAiB,+BAAgC,uBAAwB,cACnIqD,EAAUS,cAAgB9D,EAAO8D,cACjCT,EAAUW,qBAAuBhE,EAAOgE,qBACxCX,EAAUU,eAAiB/D,EAAO+D,cAE7B/D,EAAO8D,eACZ,GAAOnmC,eAAkD,iBAA1BqiC,EAAoB,cAAiB,wCAAyC,uBAAwBA,EAAO8D,eAC5IT,EAAUS,cAAgB9D,EAAO8D,cACjCT,EAAUU,eAAiB/D,EAAO+D,cAGlC,GAAOznC,mBAAmB,oCAAqC,SAAU0jC,GAEtEqD,CACX,CACAvyH,cAAcm4G,EAAS+W,GACnB,IAAI7mE,EAAO,KACX,OAAQ8vD,EAAUA,EAAQzqI,KAAO,WAC7B,IAAK,YACD26E,EAAO,mCACP,MACJ,IAAK,UACDA,EAAO,mCACP,MACJ,IAAK,UACDA,EAAO,mCACP,MACJ,IAAK,SACDA,EAAO,kCACP,MACJ,QACI,GAAOokC,WAAW,sBAAuBrB,EAAOzlD,OAAO+mD,iBAAkB,CACrEC,SAAU,UACVpgJ,MAAO4rK,IAGnB,IAAI1lK,EAAM,KAENA,EADAy8K,EAAO+D,aACD,WAAY5qE,WAAc6mE,EAAO8D,gBAGjC,WAAY3qE,QAAW6mE,EAAO8D,gBAExC,MAAMt1I,EAAa,CAAEjrC,MAErBirC,QAAqB,CAAC,GAMtB,OAJmC,MAA/BwxI,EAAOgE,uBACPx1I,EAAWkgI,KAAO,GAClBlgI,EAAWiQ,SAAWuhI,EAAOgE,sBAE1Bx1I,CACX,CACA+jI,sBACI,OAAQr1K,KAAK4mL,gBAAkBD,GAAsB3mL,KAAK+rK,QAAQzqI,KACtE,EC3GJ,MAAM,GAAS,IAAI09G,EAAO,IAE1B,IAAIshC,GAAU,EACd,SAASyG,GAAuBxxB,EAAUyxB,GACtC,MAAMC,EAAU,oBAChB,OAAO,SAAU3wF,EAAQjtD,GACrB,MAAM8qC,EAAU,CACZmiB,OAAQA,EACRjtD,OAAQA,EACR9gB,GAAK+3J,KACLM,QAAS,OAEb,OAAO,IAAI18K,SAAQ,CAACC,EAASC,KACzBpE,KAAK8kE,KAAK,QAAS,CACf+7G,OAAQ,UACRoG,UACA9yG,QAASywE,GAASzwE,GAClBohF,SAAUv1J,OAEdgnL,EAAS7yG,GAAS,CAACpV,EAAOozC,KACtB,GAAIpzC,EAQA,OAPA/+D,KAAK8kE,KAAK,QAAS,CACf+7G,OAAQ,WACRoG,UACAloH,QACAoV,UACAohF,SAAUv1J,OAEPoE,EAAO26D,GASlB,GAPA/+D,KAAK8kE,KAAK,QAAS,CACf+7G,OAAQ,WACRoG,UACA9yG,UACAg+B,WACAojD,SAAUv1J,OAEVmyG,EAASpzC,MAAO,CAChB,MAAMA,EAAQ,IAAIz4D,MAAM6rG,EAASpzC,MAAMx3D,SAGvC,OAFAw3D,EAAMthD,KAAO00F,EAASpzC,MAAMthD,KAC5BshD,EAAM30D,KAAO+nG,EAASpzC,MAAM30D,KACrBhG,EAAO26D,EAClB,CACA56D,EAAQguG,EAASztG,OAAO,GAC1B,GAEV,CACJ,CAkCO,MAAMwiL,WAAqBla,GAC9B5kK,YAAYmtJ,EAAUwW,GACF,MAAZxW,GACA,GAAOnW,mBAAmB,mBAAoB,WAAYmW,GAE9D,IAAInpI,EAAO,KACP+6J,EAAmB,KACnBC,EAAc,KACQ,mBAAf,GACPh7J,EAAO,WACP+6J,EAAmB5xB,IAGnBnpI,EAAOmpI,EAASt5C,MAAQs5C,EAASnpI,MAAQ,IACpCA,GAAQmpI,EAAS8xB,aAClBj7J,EAAO,YAEXg7J,EAAc7xB,EACVA,EAASphF,SACI,KAAT/nD,IACAA,EAAO,aAEX+6J,EAvDhB,SAA6B5xB,GACzB,OAAO,SAAUj/D,EAAQjtD,GACP,MAAVA,IACAA,EAAS,IAEb,MAAM8qC,EAAU,CAAEmiB,SAAQjtD,UAO1B,OANArpC,KAAK8kE,KAAK,QAAS,CACf+7G,OAAQ,UACRoG,QAAS,iBACT9yG,QAASywE,GAASzwE,GAClBohF,SAAUv1J,OAEPu1J,EAASphF,QAAQA,GAASvvE,MAAMutG,IACnCnyG,KAAK8kE,KAAK,QAAS,CACf+7G,OAAQ,WACRoG,QAAS,iBACT9yG,UACAg+B,WACAojD,SAAUv1J,OAEPmyG,KACPpzC,IAQA,MAPA/+D,KAAK8kE,KAAK,QAAS,CACf+7G,OAAQ,WACRoG,QAAS,iBACT9yG,UACApV,QACAw2F,SAAUv1J,OAER++D,CAAK,GAEnB,CACJ,CAuBmCuoH,CAAoB/xB,IAElCA,EAASgyB,UACdJ,EAAmBJ,GAAuBxxB,EAAUA,EAASgyB,UAAUrhJ,KAAKqvH,IAEvEA,EAAS50G,KACdwmI,EAAmBJ,GAAuBxxB,EAAUA,EAAS50G,KAAKza,KAAKqvH,IAGvE,GAAOnW,mBAAmB,uBAAwB,WAAYmW,GAE7DnpI,IACDA,EAAO,aAGfg5B,MAAMh5B,EAAM2/I,GACZ9nB,GAAejkJ,KAAM,mBAAoBmnL,GACzCljC,GAAejkJ,KAAM,WAAYonL,EACrC,CACAzmI,KAAK21C,EAAQjtD,GACT,OAAOrpC,KAAKmnL,iBAAiB7wF,EAAQjtD,EACzC,EC3GJ,MAAM,GAAS,IAAI21G,EAAO,IAG1B,SAASwoC,GAAmBzb,EAAS3gJ,GAKjC,GAJe,MAAX2gJ,IACAA,EAAU,aAGW,iBAAd,EAAwB,CAG/B,MAAMpiK,EAAQoiK,EAAQpiK,MAAM,kBAC5B,GAAIA,EACA,OAAQA,EAAM,GAAGw5C,eACb,IAAK,OACL,IAAK,QACD,OAAO,IAAI6pH,GAAgBjB,GAC/B,IAAK,KACL,IAAK,MACD,OAAO,IAAI0V,GAAkB1V,GACjC,QACI,GAAO3sB,mBAAmB,yBAA0B,UAAW2sB,GAG/E,CACA,MAAMnmK,EAAIkwJ,GAAWiW,GAOrB,OANKnmK,GAAMA,EAAEunK,kBACT,GAAO9sB,WAAW,yCAA0CrB,EAAOzlD,OAAOugF,cAAe,CACrF52I,UAAW,qBACX6oI,QAASA,IAGVnmK,EAAEunK,iBAAiB,CACtBN,iBAAgB,GAChBR,gBAAe,GACfM,aAAY,GACZF,mBAAkB,GAClBN,kBAAiB,GACjBF,eAAc,GACde,gBAAe,GACf0Z,kBAAiB,GACjBna,eAAc,GACd2a,aAAY,GACZnB,YAAW,IACZ36J,EACP,CClEO,MCMDq8J,GAAa,IAAIpsE,OAAO,mBACxBqsE,GAAc,IAAIrsE,OAAO,qBACzBssE,GAAa,IAAItsE,OAAO,wBAIxB,GAAS,IAAI2jC,EDZI,kBCavB,SAAS4oC,GAAMx2K,EAAMjR,EAAO2L,GACxB,OAAQsF,GACJ,IAAK,UACD,OAAItF,EACOs2I,EAAQjiJ,EAAO,IAEnByhJ,EAASzhJ,GACpB,IAAK,SACD,OAAO6oJ,GAAY7oJ,GACvB,IAAK,QACD,OAAOyhJ,EAASzhJ,GACpB,IAAK,OAED,OADAA,EAASA,EAAQ,OAAS,OACtB2L,EACOs2I,EAAQjiJ,EAAO,IAEnByhJ,EAASzhJ,GAExB,IAAIwJ,EAAQyH,EAAKzH,MAAM+9K,IACvB,GAAI/9K,EAAO,CAEP,IAAIi+D,EAAOt4D,SAAS3F,EAAM,IAAM,OAQhC,OAPKA,EAAM,IAAMzB,OAAO0/D,KAAUj+D,EAAM,IAAQi+D,EAAO,GAAM,GAAe,IAATA,GAAcA,EAAO,MACpF,GAAOw3E,mBAAmB,sBAAuB,OAAQhuI,GAEzDtF,IACA87D,EAAO,KAGJw6E,EADPjiJ,EAAQojJ,EAAUn4I,KAAKjL,GAAOsgG,OAAO74B,GACfA,EAAO,EACjC,CAEA,GADAj+D,EAAQyH,EAAKzH,MAAM89K,IACf99K,EAAO,CACP,MAAMi+D,EAAOt4D,SAAS3F,EAAM,IAO5B,OANIzB,OAAO0/D,KAAUj+D,EAAM,IAAe,IAATi+D,GAAcA,EAAO,KAClD,GAAOw3E,mBAAmB,qBAAsB,OAAQhuI,GAExDwwI,EAASzhJ,GAAOywD,aAAegX,GAC/B,GAAOw3E,mBAAmB,qBAAqBhuI,IAAQ,QAASjR,GAEhE2L,EACO81I,GAAUzhJ,EA7Cf,oEA6C8B86B,UAAU,EAAG,KAE1C96B,CACX,CAEA,GADAwJ,EAAQyH,EAAKzH,MAAMg+K,IACfh+K,GAAS1B,MAAM6D,QAAQ3L,GAAQ,CAC/B,MAAMqqJ,EAAW7gJ,EAAM,GACT2F,SAAS3F,EAAM,IAAMzB,OAAO/H,EAAM8F,UACnC9F,EAAM8F,QACf,GAAOm5I,mBAAmB,4BAA4BhuI,IAAQ,QAASjR,GAE3E,MAAMuE,EAAS,GAIf,OAHAvE,EAAM6L,SAAQ,SAAU7L,GACpBuE,EAAOwB,KAAK0hL,GAAMp9B,EAAUrqJ,GAAO,GACvC,IACO6B,EAAO0C,EAClB,CACA,OAAO,GAAO06I,mBAAmB,eAAgB,OAAQhuI,EAC7D,CAEO,SAAS,GAAK26I,EAAO7+I,GACpB6+I,EAAM9lJ,QAAUiH,EAAOjH,QACvB,GAAOm5I,mBAAmB,qDAAsD,SAAUlyI,GAE9F,MAAM26K,EAAQ,GAId,OAHA97B,EAAM//I,SAAQ,SAAUoF,EAAM5E,GAC1Bq7K,EAAM3hL,KAAK0hL,GAAMx2K,EAAMlE,EAAOV,IAClC,IACO81I,EAAQtgJ,EAAO6lL,GAC1B,CACO,SAAS,GAAU97B,EAAO7+I,GAC7B,OAAO,GAAc,GAAK6+I,EAAO7+I,GACrC,CACO,SAAS,GAAO6+I,EAAO7+I,GAC1B,OAAO,GAAW,GAAK6+I,EAAO7+I,GAClC,CCrFO,SAAS46K,GAAoBv4F,GAEhC,MAAMzrC,EAAQklG,GAAYz5D,GAE1B,GAAIzrC,EAAM79C,OAAS,GACf,MAAM,IAAIK,MAAM,6CAGpB,OAAOg8I,EAAQtgJ,EAAO,CAAC8hD,EAAO8nH,KAAWpgK,MAAM,EAAG,IACtD,CACO,SAASu8K,GAAmBjkI,GAC/B,MAAM15C,EAAOw3I,EAAS99F,GAEtB,GAAoB,KAAhB15C,EAAKnE,OACL,MAAM,IAAIK,MAAM,uCAEpB,GAAiB,IAAb8D,EAAK,IACL,MAAM,IAAI9D,MAAM,+CAGpB,IAAIL,EAAS,GACb,KAA4B,IAArBmE,EAAKnE,EAAS,IACjBA,IAGJ,OAAOojJ,GAAaj/I,EAAKoB,MAAM,EAAGvF,GACtC,CC9BO,MCID,GAAS,IAAI+4I,EDJI,eCKjBgpC,GAAQ,CACV,MACA,OACA,OACA,OACA,QACA,SACA,SAIG,SAASC,GAAQ9nL,GACpB,MAAM6uJ,EAAQ9mJ,OAAO/H,GAAOwM,MAAM,MAC9BqiJ,EAAM/oJ,OAAS,IAAM+oJ,EAAM,GAAGrlJ,MAAM,eAAkBqlJ,EAAM,KAAOA,EAAM,GAAGrlJ,MAAM,aAA0B,MAAVxJ,GAA2B,OAAVA,IACnH,GAAOi/I,mBAAmB,gBAAiB,QAASj/I,GAGxD,IAAIygK,EAAQ5R,EAAM,GACdpxD,EAAW,GAMf,IAL8B,MAA1BgjE,EAAM3lI,UAAU,EAAG,KACnB2iE,EAAW,IACXgjE,EAAQA,EAAM3lI,UAAU,IAGK,MAA1B2lI,EAAM3lI,UAAU,EAAG,IACtB2lI,EAAQA,EAAM3lI,UAAU,GAEd,KAAV2lI,IACAA,EAAQ,KAEZ,IAAIsnB,EAAS,GAIb,IAHqB,IAAjBl5B,EAAM/oJ,SACNiiL,EAAS,KAAOl5B,EAAM,IAAM,MAEzBk5B,EAAOjiL,OAAS,GAAmC,MAA9BiiL,EAAOA,EAAOjiL,OAAS,IAC/CiiL,EAASA,EAAOjtJ,UAAU,EAAGitJ,EAAOjiL,OAAS,GAEjD,MAAMkiL,EAAY,GAClB,KAAOvnB,EAAM36J,QAAQ,CACjB,GAAI26J,EAAM36J,QAAU,EAAG,CACnBkiL,EAAUlrF,QAAQ2jE,GAClB,KACJ,CACK,CACD,MAAMp0J,EAAQo0J,EAAM36J,OAAS,EAC7BkiL,EAAUlrF,QAAQ2jE,EAAM3lI,UAAUzuB,IAClCo0J,EAAQA,EAAM3lI,UAAU,EAAGzuB,EAC/B,CACJ,CACA,OAAOoxF,EAAWuqF,EAAUz7K,KAAK,KAAOw7K,CAC5C,CACO,SAASE,GAAYjoL,EAAOkoL,GAC/B,GAA0B,iBAAf,EAAyB,CAChC,MAAM77K,EAAQw7K,GAAMx+K,QAAQ6+K,IACb,IAAX77K,IACA67K,EAAW,EAAI77K,EAEvB,CACA,OAAOi0J,GAAYtgK,EAAoB,MAAZkoL,EAAoBA,EAAW,GAC9D,CACO,SAASC,GAAWnoL,EAAOkoL,GAI9B,GAHuB,iBAAZ,GACP,GAAOjpC,mBAAmB,yBAA0B,QAASj/I,GAEvC,iBAAf,EAAyB,CAChC,MAAMqM,EAAQw7K,GAAMx+K,QAAQ6+K,IACb,IAAX77K,IACA67K,EAAW,EAAI77K,EAEvB,CACA,OAAOq0J,GAAW1gK,EAAoB,MAAZkoL,EAAoBA,EAAW,GAC7D,CACO,SAASE,GAAYvnB,GACxB,OAAOonB,GAAYpnB,EAAK,GAC5B,CACO,SAASwnB,GAAWC,GACvB,OAAOH,GAAWG,EAAO,GAC7B,CClFO,MAAM,GAAU,eCejB,GAAS,IAAIzpC,EAAO,ICZ1B,IACI,MAAM6oB,EAAY9wG,OACO,MAArB8wG,EAAU6gB,UACV7gB,EAAU6gB,QAAU,EAGZ,CAAhB,MAAO3pH,GAAS,0BCchB,IAOI4pH,EAPA5tH,EAAuB,iBAAZ6tH,QAAuBA,QAAU,KAC5CC,EAAe9tH,GAAwB,mBAAZA,EAAEl2D,MAC7Bk2D,EAAEl2D,MACF,SAAsB0zG,EAAQ5rF,EAAUo4C,GACxC,OAAO+jH,SAASrnL,UAAUoD,MAAMtB,KAAKg1G,EAAQ5rF,EAAUo4C,EACzD,EAIA4jH,EADE5tH,GAA0B,mBAAdA,EAAEguH,QACChuH,EAAEguH,QACV9oL,OAAO+oL,sBACC,SAAwBzwE,GACvC,OAAOt4G,OAAOu+G,oBAAoBjG,GAC/Bv2G,OAAO/B,OAAO+oL,sBAAsBzwE,GACzC,EAEiB,SAAwBA,GACvC,OAAOt4G,OAAOu+G,oBAAoBjG,EACpC,EAOF,IAAI0wE,EAAc55K,OAAOkiD,OAAS,SAAqBpxD,GACrD,OAAOA,GAAUA,CACnB,EAEA,SAASqkE,IACPA,EAAa0kH,KAAK3lL,KAAKvD,KACzB,CACAJ,EAAOD,QAAU6kE,EACjB5kE,EAAOD,QAAQu9J,KAwYf,SAAcisB,EAAS7nJ,GACrB,OAAO,IAAIp9B,SAAQ,SAAUC,EAASC,GACpC,SAASglL,EAAcxlH,GACrBulH,EAAQn0B,eAAe1zH,EAAM25H,GAC7B72J,EAAOw/D,EACT,CAEA,SAASq3F,IAC+B,mBAA3BkuB,EAAQn0B,gBACjBm0B,EAAQn0B,eAAe,QAASo0B,GAElCjlL,EAAQ,GAAGqH,MAAMjI,KAAK0H,WACxB,CAEAo+K,EAA+BF,EAAS7nJ,EAAM25H,EAAU,CAAEiC,MAAM,IACnD,UAAT57H,GAMR,SAAuC6nJ,EAASG,EAASC,GAC7B,mBAAfJ,EAAQzkH,IACjB2kH,EAA+BF,EAAS,QAASG,EAPO,CAAEpsB,MAAM,GASpE,CATMssB,CAA8BL,EAASC,EAE3C,GACF,EAxZA5kH,EAAaA,aAAeA,EAE5BA,EAAa/iE,UAAUs3K,aAAUl2K,EACjC2hE,EAAa/iE,UAAUgoL,aAAe,EACtCjlH,EAAa/iE,UAAUioL,mBAAgB7mL,EAIvC,IAAI8mL,EAAsB,GAE1B,SAASC,EAAcn0E,GACrB,GAAwB,mBAAbA,EACT,MAAM,IAAI1vG,UAAU,0EAA4E0vG,EAEpG,CAoCA,SAASo0E,EAAiBC,GACxB,YAA2BjnL,IAAvBinL,EAAKJ,cACAllH,EAAamlH,oBACfG,EAAKJ,aACd,CAkDA,SAASK,EAAaxxE,EAAQnnG,EAAMqkG,EAAUu0E,GAC5C,IAAItnL,EACAqb,EACAksK,EA1HsB3rC,EAgJ1B,GApBAsrC,EAAcn0E,QAGC5yG,KADfkb,EAASw6F,EAAOwgE,UAEdh7J,EAASw6F,EAAOwgE,QAAU94K,OAAOuC,OAAO,MACxC+1G,EAAOkxE,aAAe,SAIK5mL,IAAvBkb,EAAOmsK,cACT3xE,EAAOzzC,KAAK,cAAe1zD,EACfqkG,EAASA,SAAWA,EAASA,SAAWA,GAIpD13F,EAASw6F,EAAOwgE,SAElBkR,EAAWlsK,EAAO3M,SAGHvO,IAAbonL,EAEFA,EAAWlsK,EAAO3M,GAAQqkG,IACxB8C,EAAOkxE,kBAeT,GAbwB,mBAAbQ,EAETA,EAAWlsK,EAAO3M,GAChB44K,EAAU,CAACv0E,EAAUw0E,GAAY,CAACA,EAAUx0E,GAErCu0E,EACTC,EAAShtF,QAAQwY,GAEjBw0E,EAAS/jL,KAAKuvG,IAIhB/yG,EAAImnL,EAAiBtxE,IACb,GAAK0xE,EAAShkL,OAASvD,IAAMunL,EAASE,OAAQ,CACpDF,EAASE,QAAS,EAGlB,IAAI1rF,EAAI,IAAIn4F,MAAM,+CACE2jL,EAAShkL,OAAS,IAAMiC,OAAOkJ,GADjC,qEAIlBqtF,EAAEn9D,KAAO,8BACTm9D,EAAE0qF,QAAU5wE,EACZ9Z,EAAErtF,KAAOA,EACTqtF,EAAEtwF,MAAQ87K,EAAShkL,OA7KGq4I,EA8KH7/C,EA7KnBx8F,SAAWA,QAAQm7G,MAAMn7G,QAAQm7G,KAAKkhC,EA8KxC,CAGF,OAAO/lC,CACT,CAaA,SAAS6xE,IACP,IAAKpqL,KAAKqqL,MAGR,OAFArqL,KAAKu4G,OAAOy8C,eAAeh1J,KAAKoR,KAAMpR,KAAKsqL,QAC3CtqL,KAAKqqL,OAAQ,EACY,IAArBp/K,UAAUhF,OACLjG,KAAKy1G,SAASlyG,KAAKvD,KAAKu4G,QAC1Bv4G,KAAKy1G,SAAS5wG,MAAM7E,KAAKu4G,OAAQttG,UAE5C,CAEA,SAASs/K,EAAUhyE,EAAQnnG,EAAMqkG,GAC/B,IAAIpoF,EAAQ,CAAEg9J,OAAO,EAAOC,YAAQznL,EAAW01G,OAAQA,EAAQnnG,KAAMA,EAAMqkG,SAAUA,GACjF+0E,EAAUJ,EAAYlkJ,KAAK7Y,GAG/B,OAFAm9J,EAAQ/0E,SAAWA,EACnBpoF,EAAMi9J,OAASE,EACRA,CACT,CAyHA,SAAS/lH,EAAW8zC,EAAQnnG,EAAMq5K,GAChC,IAAI1sK,EAASw6F,EAAOwgE,QAEpB,QAAel2K,IAAXkb,EACF,MAAO,GAET,IAAI2sK,EAAa3sK,EAAO3M,GACxB,YAAmBvO,IAAf6nL,EACK,GAEiB,mBAAfA,EACFD,EAAS,CAACC,EAAWj1E,UAAYi1E,GAAc,CAACA,GAElDD,EAsDT,SAAyB95H,GAEvB,IADA,IAAIkvC,EAAM,IAAI53F,MAAM0oD,EAAI1qD,QACf+E,EAAI,EAAGA,EAAI60F,EAAI55F,SAAU+E,EAChC60F,EAAI70F,GAAK2lD,EAAI3lD,GAAGyqG,UAAY9kD,EAAI3lD,GAElC,OAAO60F,CACT,CA3DI8qF,CAAgBD,GAAcE,EAAWF,EAAYA,EAAWzkL,OACpE,CAmBA,SAASm3J,EAAchsJ,GACrB,IAAI2M,EAAS/d,KAAK+4K,QAElB,QAAel2K,IAAXkb,EAAsB,CACxB,IAAI2sK,EAAa3sK,EAAO3M,GAExB,GAA0B,mBAAfs5K,EACT,OAAO,EACF,QAAmB7nL,IAAf6nL,EACT,OAAOA,EAAWzkL,MAEtB,CAEA,OAAO,CACT,CAMA,SAAS2kL,EAAWj6H,EAAK/qD,GAEvB,IADA,IAAI+oF,EAAO,IAAI1mF,MAAMrC,GACZoF,EAAI,EAAGA,EAAIpF,IAAKoF,EACvB2jF,EAAK3jF,GAAK2lD,EAAI3lD,GAChB,OAAO2jF,CACT,CA2CA,SAAS06F,EAA+BF,EAAS7nJ,EAAMm0E,EAAU8zE,GAC/D,GAA0B,mBAAfJ,EAAQzkH,GACb6kH,EAAMrsB,KACRisB,EAAQjsB,KAAK57H,EAAMm0E,GAEnB0zE,EAAQzkH,GAAGpjC,EAAMm0E,OAEd,IAAwC,mBAA7B0zE,EAAQx1E,iBAYxB,MAAM,IAAI5tG,UAAU,6EAA+EojL,GATnGA,EAAQx1E,iBAAiBryE,GAAM,SAASupJ,EAAal/K,GAG/C49K,EAAMrsB,MACRisB,EAAQ13E,oBAAoBnwE,EAAMupJ,GAEpCp1E,EAAS9pG,EACX,GAGF,CACF,CAraA1L,OAAOC,eAAeskE,EAAc,sBAAuB,CACzDthE,YAAY,EACZC,IAAK,WACH,OAAOwmL,CACT,EACA38K,IAAK,SAASrB,GACZ,GAAmB,iBAARA,GAAoBA,EAAM,GAAKs9K,EAAYt9K,GACpD,MAAM,IAAI0kH,WAAW,kGAAoG1kH,EAAM,KAEjIg+K,EAAsBh+K,CACxB,IAGF64D,EAAa0kH,KAAO,gBAEGrmL,IAAjB7C,KAAK+4K,SACL/4K,KAAK+4K,UAAY94K,OAAOypD,eAAe1pD,MAAM+4K,UAC/C/4K,KAAK+4K,QAAU94K,OAAOuC,OAAO,MAC7BxC,KAAKypL,aAAe,GAGtBzpL,KAAK0pL,cAAgB1pL,KAAK0pL,oBAAiB7mL,CAC7C,EAIA2hE,EAAa/iE,UAAUqpL,gBAAkB,SAAyBllL,GAChE,GAAiB,iBAANA,GAAkBA,EAAI,GAAKqjL,EAAYrjL,GAChD,MAAM,IAAIyqH,WAAW,gFAAkFzqH,EAAI,KAG7G,OADA5F,KAAK0pL,cAAgB9jL,EACd5F,IACT,EAQAwkE,EAAa/iE,UAAUspL,gBAAkB,WACvC,OAAOlB,EAAiB7pL,KAC1B,EAEAwkE,EAAa/iE,UAAUqjE,KAAO,SAAc1zD,GAE1C,IADA,IAAI2zD,EAAO,GACF/5D,EAAI,EAAGA,EAAIC,UAAUhF,OAAQ+E,IAAK+5D,EAAK7+D,KAAK+E,UAAUD,IAC/D,IAAIggL,EAAoB,UAAT55K,EAEX2M,EAAS/d,KAAK+4K,QAClB,QAAel2K,IAAXkb,EACFitK,EAAWA,QAA4BnoL,IAAjBkb,EAAOghD,WAC1B,IAAKisH,EACR,OAAO,EAGT,GAAIA,EAAS,CACX,IAAIp/H,EAGJ,GAFImZ,EAAK9+D,OAAS,IAChB2lD,EAAKmZ,EAAK,IACRnZ,aAActlD,MAGhB,MAAMslD,EAGR,IAAIgY,EAAM,IAAIt9D,MAAM,oBAAsBslD,EAAK,KAAOA,EAAGrkD,QAAU,IAAM,KAEzE,MADAq8D,EAAI2wC,QAAU3oD,EACRgY,CACR,CAEA,IAAI0lH,EAAUvrK,EAAO3M,GAErB,QAAgBvO,IAAZymL,EACF,OAAO,EAET,GAAuB,mBAAZA,EACTT,EAAaS,EAAStpL,KAAM+kE,OAE5B,KAAIrf,EAAM4jI,EAAQrjL,OACd4+D,EAAY+lH,EAAWtB,EAAS5jI,GACpC,IAAS16C,EAAI,EAAGA,EAAI06C,IAAO16C,EACzB69K,EAAahkH,EAAU75D,GAAIhL,KAAM+kE,EAHX,CAM1B,OAAO,CACT,EAgEAP,EAAa/iE,UAAUqzJ,YAAc,SAAqB1jJ,EAAMqkG,GAC9D,OAAOs0E,EAAa/pL,KAAMoR,EAAMqkG,GAAU,EAC5C,EAEAjxC,EAAa/iE,UAAUijE,GAAKF,EAAa/iE,UAAUqzJ,YAEnDtwF,EAAa/iE,UAAUwpL,gBACnB,SAAyB75K,EAAMqkG,GAC7B,OAAOs0E,EAAa/pL,KAAMoR,EAAMqkG,GAAU,EAC5C,EAoBJjxC,EAAa/iE,UAAUy7J,KAAO,SAAc9rJ,EAAMqkG,GAGhD,OAFAm0E,EAAcn0E,GACdz1G,KAAK0kE,GAAGtzD,EAAMm5K,EAAUvqL,KAAMoR,EAAMqkG,IAC7Bz1G,IACT,EAEAwkE,EAAa/iE,UAAUypL,oBACnB,SAA6B95K,EAAMqkG,GAGjC,OAFAm0E,EAAcn0E,GACdz1G,KAAKirL,gBAAgB75K,EAAMm5K,EAAUvqL,KAAMoR,EAAMqkG,IAC1Cz1G,IACT,EAGJwkE,EAAa/iE,UAAUuzJ,eACnB,SAAwB5jJ,EAAMqkG,GAC5B,IAAI4e,EAAMt2G,EAAQ2gG,EAAU1zG,EAAGmgL,EAK/B,GAHAvB,EAAcn0E,QAGC5yG,KADfkb,EAAS/d,KAAK+4K,SAEZ,OAAO/4K,KAGT,QAAa6C,KADbwxH,EAAOt2G,EAAO3M,IAEZ,OAAOpR,KAET,GAAIq0H,IAAS5e,GAAY4e,EAAK5e,WAAaA,EACb,KAAtBz1G,KAAKypL,aACTzpL,KAAK+4K,QAAU94K,OAAOuC,OAAO,cAEtBub,EAAO3M,GACV2M,EAAOi3I,gBACTh1J,KAAK8kE,KAAK,iBAAkB1zD,EAAMijH,EAAK5e,UAAYA,SAElD,GAAoB,mBAAT4e,EAAqB,CAGrC,IAFA3V,GAAY,EAEP1zG,EAAIqpH,EAAKpuH,OAAS,EAAG+E,GAAK,EAAGA,IAChC,GAAIqpH,EAAKrpH,KAAOyqG,GAAY4e,EAAKrpH,GAAGyqG,WAAaA,EAAU,CACzD01E,EAAmB92D,EAAKrpH,GAAGyqG,SAC3BiJ,EAAW1zG,EACX,KACF,CAGF,GAAI0zG,EAAW,EACb,OAAO1+G,KAEQ,IAAb0+G,EACF2V,EAAK3pE,QAiIf,SAAmB2pE,EAAM7nH,GACvB,KAAOA,EAAQ,EAAI6nH,EAAKpuH,OAAQuG,IAC9B6nH,EAAK7nH,GAAS6nH,EAAK7nH,EAAQ,GAC7B6nH,EAAKruH,KACP,CAnIUolL,CAAU/2D,EAAM3V,GAGE,IAAhB2V,EAAKpuH,SACP8X,EAAO3M,GAAQijH,EAAK,SAEQxxH,IAA1Bkb,EAAOi3I,gBACTh1J,KAAK8kE,KAAK,iBAAkB1zD,EAAM+5K,GAAoB11E,EAC1D,CAEA,OAAOz1G,IACT,EAEJwkE,EAAa/iE,UAAUmjE,IAAMJ,EAAa/iE,UAAUuzJ,eAEpDxwF,EAAa/iE,UAAU07J,mBACnB,SAA4B/rJ,GAC1B,IAAIyzD,EAAW9mD,EAAQ/S,EAGvB,QAAenI,KADfkb,EAAS/d,KAAK+4K,SAEZ,OAAO/4K,KAGT,QAA8B6C,IAA1Bkb,EAAOi3I,eAUT,OATyB,IAArB/pJ,UAAUhF,QACZjG,KAAK+4K,QAAU94K,OAAOuC,OAAO,MAC7BxC,KAAKypL,aAAe,QACM5mL,IAAjBkb,EAAO3M,KACY,KAAtBpR,KAAKypL,aACTzpL,KAAK+4K,QAAU94K,OAAOuC,OAAO,aAEtBub,EAAO3M,IAEXpR,KAIT,GAAyB,IAArBiL,UAAUhF,OAAc,CAC1B,IACIpE,EADAkK,EAAO9L,OAAO8L,KAAKgS,GAEvB,IAAK/S,EAAI,EAAGA,EAAIe,EAAK9F,SAAU+E,EAEjB,oBADZnJ,EAAMkK,EAAKf,KAEXhL,KAAKm9J,mBAAmBt7J,GAK1B,OAHA7B,KAAKm9J,mBAAmB,kBACxBn9J,KAAK+4K,QAAU94K,OAAOuC,OAAO,MAC7BxC,KAAKypL,aAAe,EACbzpL,IACT,CAIA,GAAyB,mBAFzB6kE,EAAY9mD,EAAO3M,IAGjBpR,KAAKg1J,eAAe5jJ,EAAMyzD,QACrB,QAAkBhiE,IAAdgiE,EAET,IAAK75D,EAAI65D,EAAU5+D,OAAS,EAAG+E,GAAK,EAAGA,IACrChL,KAAKg1J,eAAe5jJ,EAAMyzD,EAAU75D,IAIxC,OAAOhL,IACT,EAmBJwkE,EAAa/iE,UAAUojE,UAAY,SAAmBzzD,GACpD,OAAOqzD,EAAWzkE,KAAMoR,GAAM,EAChC,EAEAozD,EAAa/iE,UAAU4pL,aAAe,SAAsBj6K,GAC1D,OAAOqzD,EAAWzkE,KAAMoR,GAAM,EAChC,EAEAozD,EAAa44F,cAAgB,SAAS+rB,EAAS/3K,GAC7C,MAAqC,mBAA1B+3K,EAAQ/rB,cACV+rB,EAAQ/rB,cAAchsJ,GAEtBgsJ,EAAc75J,KAAK4lL,EAAS/3K,EAEvC,EAEAozD,EAAa/iE,UAAU27J,cAAgBA,EAiBvC54F,EAAa/iE,UAAU6pL,WAAa,WAClC,OAAOtrL,KAAKypL,aAAe,EAAId,EAAe3oL,KAAK+4K,SAAW,EAChE,mBCzaA,IAAI9qK,EAAS,gBACT4tH,EAAM,EAAQ,OA2ClBj8H,EAAOD,QAxCP,SAAyB4hD,EAAUzmB,EAAMywJ,EAASv/D,GAEhD,GADK/9G,EAAOymF,SAASnzC,KAAWA,EAAWtzC,EAAO7C,KAAKm2C,EAAU,WAC7DzmB,IACG7sB,EAAOymF,SAAS55D,KAAOA,EAAO7sB,EAAO7C,KAAK0vB,EAAM,WACjC,IAAhBA,EAAK70B,QAAc,MAAM,IAAIoqH,WAAW,4CAQ9C,IALA,IAAItE,EAASw/D,EAAU,EACnB1pL,EAAMoM,EAAOC,MAAM69G,GACnBr6B,EAAKzjF,EAAOC,MAAM89G,GAAS,GAC3B95D,EAAMjkD,EAAOC,MAAM,GAEhB69G,EAAS,GAAKC,EAAQ,GAAG,CAC9B,IAAIj2F,EAAO,IAAI8lG,EACf9lG,EAAK0vB,OAAOyM,GACZn8B,EAAK0vB,OAAOlE,GACRzmB,GAAM/E,EAAK0vB,OAAO3qB,GACtBo3B,EAAMn8B,EAAK6wB,SAEX,IAAI4kI,EAAO,EAEX,GAAIz/D,EAAS,EAAG,CACd,IAAI0/D,EAAW5pL,EAAIoE,OAAS8lH,EAC5By/D,EAAOz9K,KAAKy+B,IAAIu/E,EAAQ75D,EAAIjsD,QAC5BisD,EAAIy8B,KAAK9sF,EAAK4pL,EAAU,EAAGD,GAC3Bz/D,GAAUy/D,CACZ,CAEA,GAAIA,EAAOt5H,EAAIjsD,QAAU+lH,EAAQ,EAAG,CAClC,IAAI0/D,EAAUh6F,EAAGzrF,OAAS+lH,EACtB/lH,EAAS8H,KAAKy+B,IAAIw/E,EAAO95D,EAAIjsD,OAASulL,GAC1Ct5H,EAAIy8B,KAAK+C,EAAIg6F,EAASF,EAAMA,EAAOvlL,GACnC+lH,GAAS/lH,CACX,CACF,CAGA,OADAisD,EAAIjM,KAAK,GACF,CAAEpkD,IAAKA,EAAK6vF,GAAIA,EACzB,YCzCA9xF,EAAOD,QAAyB,iBAARI,KAAmBA,KAAK8+C,SAAWkY,OAAOlY,sCCAlE,IAAI5wC,EAAS,gBACTy4G,EAAY,mBAShB,SAASilE,EAAUziG,GACjBw9B,EAAUnjH,KAAKvD,MAEfA,KAAK60K,OAAS5mK,EAAOq1G,YAAYp6B,GACjClpF,KAAK4rL,WAAa1iG,EAClBlpF,KAAK6rL,aAAe,EACpB7rL,KAAK8rL,QAAU,CAAC,EAAG,EAAG,EAAG,GAEzB9rL,KAAK+rL,YAAa,CACpB,CAjBe,EAAQ,MAmBvBl4F,CAAS83F,EAAUjlE,GAEnBilE,EAASlqL,UAAUu4H,WAAa,SAAU51D,EAAO+G,EAAUsxC,GACzD,IAAI19C,EAAQ,KACZ,IACE/+D,KAAKylD,OAAO2e,EAAO+G,EAGrB,CAFE,MAAOvH,GACP7E,EAAQ6E,CACV,CAEA64C,EAAS19C,EACX,EAEA4sH,EAASlqL,UAAUw4H,OAAS,SAAUxd,GACpC,IAAI19C,EAAQ,KACZ,IACE/+D,KAAKkG,KAAKlG,KAAK4mD,SAGjB,CAFE,MAAOgd,GACP7E,EAAQ6E,CACV,CAEA64C,EAAS19C,EACX,EAEA4sH,EAASlqL,UAAUgkD,OAAS,SAAUr7C,EAAM+gE,GAE1C,GA3CF,SAAmCl+D,EAAKmY,GACtC,IAAKnX,EAAOymF,SAASznF,IAAuB,iBAARA,EAClC,MAAM,IAAIlH,UAAUqf,oCAExB,CAsCE4mK,CAAyB5hL,GACrBpK,KAAK+rL,WAAY,MAAM,IAAIzlL,MAAM,yBAChC2H,EAAOymF,SAAStqF,KAAOA,EAAO6D,EAAO7C,KAAKhB,EAAM+gE,IAKrD,IAFA,IAAIj0C,EAAQl3B,KAAK60K,OACb3pH,EAAS,EACNlrD,KAAK6rL,aAAezhL,EAAKnE,OAASilD,GAAUlrD,KAAK4rL,YAAY,CAClE,IAAK,IAAI5gL,EAAIhL,KAAK6rL,aAAc7gL,EAAIhL,KAAK4rL,YAAa10J,EAAMlsB,KAAOZ,EAAK8gD,KACxElrD,KAAKioH,UACLjoH,KAAK6rL,aAAe,CACtB,CACA,KAAO3gI,EAAS9gD,EAAKnE,QAAQixB,EAAMl3B,KAAK6rL,gBAAkBzhL,EAAK8gD,KAG/D,IAAK,IAAIjB,EAAI,EAAG+e,EAAsB,EAAd5+D,EAAKnE,OAAY+iE,EAAQ,IAAK/e,EACpDjqD,KAAK8rL,QAAQ7hI,IAAM+e,GACnBA,EAAShpE,KAAK8rL,QAAQ7hI,GAAK,WAAgB,GAC/B,IAAGjqD,KAAK8rL,QAAQ7hI,IAAM,WAAe+e,GAGnD,OAAOhpE,IACT,EAEA2rL,EAASlqL,UAAUwmH,QAAU,WAC3B,MAAM,IAAI3hH,MAAM,6BAClB,EAEAqlL,EAASlqL,UAAUmlD,OAAS,SAAUukB,GACpC,GAAInrE,KAAK+rL,WAAY,MAAM,IAAIzlL,MAAM,yBACrCtG,KAAK+rL,YAAa,EAElB,IAAInlI,EAAS5mD,KAAKisL,eACDppL,IAAbsoE,IAAwBvkB,EAASA,EAAOx/C,SAAS+jE,IAGrDnrE,KAAK60K,OAAO5uH,KAAK,GACjBjmD,KAAK6rL,aAAe,EACpB,IAAK,IAAI7gL,EAAI,EAAGA,EAAI,IAAKA,EAAGhL,KAAK8rL,QAAQ9gL,GAAK,EAE9C,OAAO47C,CACT,EAEA+kI,EAASlqL,UAAUwqL,QAAU,WAC3B,MAAM,IAAI3lL,MAAM,6BAClB,EAEA1G,EAAOD,QAAUgsL,mBC9FjB,IAAI51J,EAAOp2B,EAEXo2B,EAAKkW,MAAQ,EAAQ,OACrBlW,EAAKkiF,OAAS,EAAQ,OACtBliF,EAAK+lG,IAAM,EAAQ,OACnB/lG,EAAKm2J,OAAS,EAAQ,OACtBn2J,EAAKszB,KAAO,EAAQ,OAGpBtzB,EAAKo2J,KAAOp2J,EAAK+lG,IAAIqwD,KACrBp2J,EAAKhe,OAASge,EAAK+lG,IAAI/jH,OACvBge,EAAKq2J,OAASr2J,EAAK+lG,IAAIswD,OACvBr2J,EAAK23B,OAAS33B,EAAK+lG,IAAIpuE,OACvB33B,EAAK63B,OAAS73B,EAAK+lG,IAAIluE,OACvB73B,EAAKje,UAAYie,EAAKm2J,OAAOp0K,wCCZ7B,IAAIm0B,EAAQ,EAAQ,OAChB4Y,EAAS,EAAQ,OAErB,SAASwnI,IACPrsL,KAAK2jE,QAAU,KACf3jE,KAAKssL,aAAe,EACpBtsL,KAAKkpF,UAAYlpF,KAAKoI,YAAY8gF,UAClClpF,KAAKs3J,QAAUt3J,KAAKoI,YAAYkvJ,QAChCt3J,KAAKg6I,aAAeh6I,KAAKoI,YAAY4xI,aACrCh6I,KAAKusL,UAAYvsL,KAAKoI,YAAYmkL,UAAY,EAC9CvsL,KAAK09F,OAAS,MAEd19F,KAAKwsL,QAAUxsL,KAAKkpF,UAAY,EAChClpF,KAAKysL,SAAWzsL,KAAKkpF,UAAY,EACnC,CACAvpF,EAAQ0sL,UAAYA,EAEpBA,EAAU5qL,UAAUgkD,OAAS,SAAgBnqC,EAAK+4E,GAUhD,GARA/4E,EAAM2wB,EAAM5/B,QAAQiP,EAAK+4E,GACpBr0F,KAAK2jE,QAGR3jE,KAAK2jE,QAAU3jE,KAAK2jE,QAAQ3hE,OAAOsZ,GAFnCtb,KAAK2jE,QAAUroD,EAGjBtb,KAAKssL,cAAgBhxK,EAAIrV,OAGrBjG,KAAK2jE,QAAQ19D,QAAUjG,KAAKwsL,QAAS,CAIvC,IAAInkJ,GAHJ/sB,EAAMtb,KAAK2jE,SAGC19D,OAASjG,KAAKwsL,QAC1BxsL,KAAK2jE,QAAUroD,EAAI9P,MAAM8P,EAAIrV,OAASoiC,EAAG/sB,EAAIrV,QACjB,IAAxBjG,KAAK2jE,QAAQ19D,SACfjG,KAAK2jE,QAAU,MAEjBroD,EAAM2wB,EAAMygJ,OAAOpxK,EAAK,EAAGA,EAAIrV,OAASoiC,EAAGroC,KAAK09F,QAChD,IAAK,IAAI1yF,EAAI,EAAGA,EAAIsQ,EAAIrV,OAAQ+E,GAAKhL,KAAKysL,SACxCzsL,KAAKioH,QAAQ3sG,EAAKtQ,EAAGA,EAAIhL,KAAKysL,SAClC,CAEA,OAAOzsL,IACT,EAEAqsL,EAAU5qL,UAAUmlD,OAAS,SAAgBytC,GAI3C,OAHAr0F,KAAKylD,OAAOzlD,KAAKurI,QACjB1mF,EAAwB,OAAjB7kD,KAAK2jE,SAEL3jE,KAAKisL,QAAQ53F,EACtB,EAEAg4F,EAAU5qL,UAAU8pI,KAAO,WACzB,IAAI7lF,EAAM1lD,KAAKssL,aACXxoI,EAAQ9jD,KAAKwsL,QACb7pL,EAAImhD,GAAU4B,EAAM1lD,KAAKusL,WAAazoI,EACtCjX,EAAM,IAAI5kC,MAAMtF,EAAI3C,KAAKusL,WAC7B1/I,EAAI,GAAK,IACT,IAAK,IAAI7hC,EAAI,EAAGA,EAAIrI,EAAGqI,IACrB6hC,EAAI7hC,GAAK,EAIX,GADA06C,IAAQ,EACY,QAAhB1lD,KAAK09F,OAAkB,CACzB,IAAK,IAAIx4F,EAAI,EAAGA,EAAIlF,KAAKusL,UAAWrnL,IAClC2nC,EAAI7hC,KAAO,EAEb6hC,EAAI7hC,KAAO,EACX6hC,EAAI7hC,KAAO,EACX6hC,EAAI7hC,KAAO,EACX6hC,EAAI7hC,KAAO,EACX6hC,EAAI7hC,KAAQ06C,IAAQ,GAAM,IAC1B7Y,EAAI7hC,KAAQ06C,IAAQ,GAAM,IAC1B7Y,EAAI7hC,KAAQ06C,IAAQ,EAAK,IACzB7Y,EAAI7hC,KAAa,IAAN06C,CACb,MAUE,IATA7Y,EAAI7hC,KAAa,IAAN06C,EACX7Y,EAAI7hC,KAAQ06C,IAAQ,EAAK,IACzB7Y,EAAI7hC,KAAQ06C,IAAQ,GAAM,IAC1B7Y,EAAI7hC,KAAQ06C,IAAQ,GAAM,IAC1B7Y,EAAI7hC,KAAO,EACX6hC,EAAI7hC,KAAO,EACX6hC,EAAI7hC,KAAO,EACX6hC,EAAI7hC,KAAO,EAEN9F,EAAI,EAAGA,EAAIlF,KAAKusL,UAAWrnL,IAC9B2nC,EAAI7hC,KAAO,EAGf,OAAO6hC,CACT,gCCzFA,IAAIZ,EAAQ,EAAQ,OAChB4Y,EAAS,EAAQ,OAErB,SAASs3E,EAAKpmG,EAAMl0B,EAAKwyF,GACvB,KAAMr0F,gBAAgBm8H,GACpB,OAAO,IAAIA,EAAKpmG,EAAMl0B,EAAKwyF,GAC7Br0F,KAAKilD,KAAOlvB,EACZ/1B,KAAKkpF,UAAYnzD,EAAKmzD,UAAY,EAClClpF,KAAKs3J,QAAUvhI,EAAKuhI,QAAU,EAC9Bt3J,KAAK2sL,MAAQ,KACb3sL,KAAK4sL,MAAQ,KAEb5sL,KAAKu2F,MAAMtqD,EAAM5/B,QAAQxK,EAAKwyF,GAChC,CACAz0F,EAAOD,QAAUw8H,EAEjBA,EAAK16H,UAAU80F,MAAQ,SAAc10F,GAE/BA,EAAIoE,OAASjG,KAAKkpF,YACpBrnF,GAAM,IAAI7B,KAAKilD,MAAOQ,OAAO5jD,GAAK+kD,UACpC/B,EAAOhjD,EAAIoE,QAAUjG,KAAKkpF,WAG1B,IAAK,IAAIl+E,EAAInJ,EAAIoE,OAAQ+E,EAAIhL,KAAKkpF,UAAWl+E,IAC3CnJ,EAAIqE,KAAK,GAEX,IAAK8E,EAAI,EAAGA,EAAInJ,EAAIoE,OAAQ+E,IAC1BnJ,EAAImJ,IAAM,GAIZ,IAHAhL,KAAK2sL,OAAQ,IAAI3sL,KAAKilD,MAAOQ,OAAO5jD,GAG/BmJ,EAAI,EAAGA,EAAInJ,EAAIoE,OAAQ+E,IAC1BnJ,EAAImJ,IAAM,IACZhL,KAAK4sL,OAAQ,IAAI5sL,KAAKilD,MAAOQ,OAAO5jD,EACtC,EAEAs6H,EAAK16H,UAAUgkD,OAAS,SAAgBnqC,EAAK+4E,GAE3C,OADAr0F,KAAK2sL,MAAMlnI,OAAOnqC,EAAK+4E,GAChBr0F,IACT,EAEAm8H,EAAK16H,UAAUmlD,OAAS,SAAgBytC,GAEtC,OADAr0F,KAAK4sL,MAAMnnI,OAAOzlD,KAAK2sL,MAAM/lI,UACtB5mD,KAAK4sL,MAAMhmI,OAAOytC,EAC3B,gCC5CA,IAAIpoD,EAAQ,EAAQ,OAChBgsE,EAAS,EAAQ,OAEjB40E,EAAS5gJ,EAAM4gJ,OACfC,EAAQ7gJ,EAAM6gJ,MACdC,EAAU9gJ,EAAM8gJ,QAChBC,EAAU/gJ,EAAM+gJ,QAChBX,EAAYp0E,EAAOo0E,UAEvB,SAASrvI,IACP,KAAMh9C,gBAAgBg9C,GACpB,OAAO,IAAIA,EAEbqvI,EAAU9oL,KAAKvD,MAEfA,KAAKymD,EAAI,CAAE,WAAY,WAAY,WAAY,UAAY,YAC3DzmD,KAAK09F,OAAS,QAChB,CAyDA,SAAS14F,EAAEilD,EAAG79C,EAAGnH,EAAGw9C,GAClB,OAAIwH,GAAK,GACA79C,EAAInH,EAAIw9C,EACRwH,GAAK,GACJ79C,EAAInH,GAAQmH,EAAKq2C,EAClBwH,GAAK,IACJ79C,GAAMnH,GAAMw9C,EACbwH,GAAK,GACJ79C,EAAIq2C,EAAMx9C,GAAMw9C,EAEjBr2C,GAAKnH,GAAMw9C,EACtB,CAEA,SAASi1G,EAAEztG,GACT,OAAIA,GAAK,GACA,EACAA,GAAK,GACL,WACAA,GAAK,GACL,WACAA,GAAK,GACL,WAEA,UACX,CAEA,SAASgjI,EAAGhjI,GACV,OAAIA,GAAK,GACA,WACAA,GAAK,GACL,WACAA,GAAK,GACL,WACAA,GAAK,GACL,WAEA,CACX,CA7FAhe,EAAM4nD,SAAS72C,EAAWqvI,GAC1B1sL,EAAQmY,UAAYklC,EAEpBA,EAAUksC,UAAY,IACtBlsC,EAAUs6G,QAAU,IACpBt6G,EAAUg9F,aAAe,IACzBh9F,EAAUuvI,UAAY,GAEtBvvI,EAAUv7C,UAAUwmH,QAAU,SAAgB3sG,EAAK2oD,GAWjD,IAVA,IAAItX,EAAI3sD,KAAKymD,EAAE,GACXmG,EAAI5sD,KAAKymD,EAAE,GACXoG,EAAI7sD,KAAKymD,EAAE,GACXqG,EAAI9sD,KAAKymD,EAAE,GACXsG,EAAI/sD,KAAKymD,EAAE,GACXW,EAAKuF,EACLpF,EAAKqF,EACLlE,EAAKmE,EACL/D,EAAKgE,EACL9D,EAAK+D,EACA9C,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAC3B,IAAIu7G,EAAIsnB,EACND,EACEG,EAAQrgI,EAAG3nD,EAAEilD,EAAG2C,EAAGC,EAAGC,GAAIxxC,EAAI+sB,EAAE4hB,GAAKga,GAAQyzF,EAAEztG,IAC/Cl/C,EAAEk/C,IACJ8C,GACFJ,EAAII,EACJA,EAAID,EACJA,EAAI+/H,EAAOhgI,EAAG,IACdA,EAAID,EACJA,EAAI44G,EACJA,EAAIsnB,EACFD,EACEG,EAAQ5lI,EAAIpiD,EAAE,GAAKilD,EAAG1C,EAAImB,EAAII,GAAKxtC,EAAI4xK,EAAGjjI,GAAKga,GAAQgpH,EAAGhjI,IAC1DkjI,EAAGljI,IACLjB,GACF5B,EAAK4B,EACLA,EAAKF,EACLA,EAAK+jI,EAAOnkI,EAAI,IAChBA,EAAKnB,EACLA,EAAKi+G,CACP,CACAA,EAAIunB,EAAQ/sL,KAAKymD,EAAE,GAAIoG,EAAG/D,GAC1B9oD,KAAKymD,EAAE,GAAKsmI,EAAQ/sL,KAAKymD,EAAE,GAAIqG,EAAG9D,GAClChpD,KAAKymD,EAAE,GAAKsmI,EAAQ/sL,KAAKymD,EAAE,GAAIsG,EAAG3F,GAClCpnD,KAAKymD,EAAE,GAAKsmI,EAAQ/sL,KAAKymD,EAAE,GAAIkG,EAAGpF,GAClCvnD,KAAKymD,EAAE,GAAKsmI,EAAQ/sL,KAAKymD,EAAE,GAAImG,EAAGlE,GAClC1oD,KAAKymD,EAAE,GAAK++G,CACd,EAEAxoH,EAAUv7C,UAAUwqL,QAAU,SAAgB53F,GAC5C,MAAY,QAARA,EACKpoD,EAAMmhJ,QAAQptL,KAAKymD,EAAG,UAEtBxa,EAAMohJ,QAAQrtL,KAAKymD,EAAG,SACjC,EAyCA,IAAIpe,EAAI,CACN,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAClD,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EACnD,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAClD,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EACnD,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,IAGhD6kJ,EAAK,CACP,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAClD,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EACnD,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAClD,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,GAClD,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,IAGhDniL,EAAI,CACN,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EACrD,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GACpD,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EACrD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GACpD,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,GAGnDoiL,EAAK,CACP,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,EACrD,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,GACpD,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EACrD,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EACrD,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,kCC9ItDxtL,EAAQwsL,KAAO,EAAf,OACAxsL,EAAQysL,OAAS,EAAjB,OACAzsL,EAAQoY,OAAS,EAAjB,OACApY,EAAQ+tD,OAAS,EAAjB,OACA/tD,EAAQiuD,OAAS,EAAjB,qCCJA,IAAI3hB,EAAQ,EAAQ,OAChBgsE,EAAS,EAAQ,OACjBq1E,EAAY,EAAQ,OAEpBT,EAAS5gJ,EAAM4gJ,OACfC,EAAQ7gJ,EAAM6gJ,MACdS,EAAUthJ,EAAMshJ,QAChBC,EAAOF,EAAUE,KACjBnB,EAAYp0E,EAAOo0E,UAEnBoB,EAAS,CACX,WAAY,WACZ,WAAY,YAGd,SAASC,IACP,KAAM1tL,gBAAgB0tL,GACpB,OAAO,IAAIA,EAEbrB,EAAU9oL,KAAKvD,MACfA,KAAKymD,EAAI,CACP,WAAY,WAAY,WACxB,UAAY,YACdzmD,KAAK42D,EAAI,IAAI3uD,MAAM,GACrB,CAEAgkC,EAAM4nD,SAAS65F,EAAMrB,GACrBzsL,EAAOD,QAAU+tL,EAEjBA,EAAKxkG,UAAY,IACjBwkG,EAAKp2B,QAAU,IACfo2B,EAAK1zC,aAAe,GACpB0zC,EAAKnB,UAAY,GAEjBmB,EAAKjsL,UAAUwmH,QAAU,SAAiB3sG,EAAK2oD,GAG7C,IAFA,IAAIrN,EAAI52D,KAAK42D,EAEJ5rD,EAAI,EAAGA,EAAI,GAAIA,IACtB4rD,EAAE5rD,GAAKsQ,EAAI2oD,EAAQj5D,GAErB,KAAMA,EAAI4rD,EAAE3wD,OAAQ+E,IAClB4rD,EAAE5rD,GAAK6hL,EAAOj2H,EAAE5rD,EAAI,GAAK4rD,EAAE5rD,EAAI,GAAK4rD,EAAE5rD,EAAI,IAAM4rD,EAAE5rD,EAAI,IAAK,GAE7D,IAAIoC,EAAIpN,KAAKymD,EAAE,GACX3+C,EAAI9H,KAAKymD,EAAE,GACXl6C,EAAIvM,KAAKymD,EAAE,GACX5+C,EAAI7H,KAAKymD,EAAE,GACXjiD,EAAIxE,KAAKymD,EAAE,GAEf,IAAKz7C,EAAI,EAAGA,EAAI4rD,EAAE3wD,OAAQ+E,IAAK,CAC7B,IAAID,KAAOC,EAAI,IACX9F,EAAIqoL,EAAQV,EAAOz/K,EAAG,GAAIogL,EAAKziL,EAAGjD,EAAGyE,EAAG1E,GAAIrD,EAAGoyD,EAAE5rD,GAAIyiL,EAAO1iL,IAChEvG,EAAIqD,EACJA,EAAI0E,EACJA,EAAIsgL,EAAO/kL,EAAG,IACdA,EAAIsF,EACJA,EAAIlI,CACN,CAEAlF,KAAKymD,EAAE,GAAKqmI,EAAM9sL,KAAKymD,EAAE,GAAIr5C,GAC7BpN,KAAKymD,EAAE,GAAKqmI,EAAM9sL,KAAKymD,EAAE,GAAI3+C,GAC7B9H,KAAKymD,EAAE,GAAKqmI,EAAM9sL,KAAKymD,EAAE,GAAIl6C,GAC7BvM,KAAKymD,EAAE,GAAKqmI,EAAM9sL,KAAKymD,EAAE,GAAI5+C,GAC7B7H,KAAKymD,EAAE,GAAKqmI,EAAM9sL,KAAKymD,EAAE,GAAIjiD,EAC/B,EAEAkpL,EAAKjsL,UAAUwqL,QAAU,SAAgB53F,GACvC,MAAY,QAARA,EACKpoD,EAAMmhJ,QAAQptL,KAAKymD,EAAG,OAEtBxa,EAAMohJ,QAAQrtL,KAAKymD,EAAG,MACjC,gCCvEA,IAAIxa,EAAQ,EAAQ,OAChBjR,EAAS,EAAQ,OAErB,SAAS2yJ,IACP,KAAM3tL,gBAAgB2tL,GACpB,OAAO,IAAIA,EAEb3yJ,EAAOz3B,KAAKvD,MACZA,KAAKymD,EAAI,CACP,WAAY,UAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACxC,CACAxa,EAAM4nD,SAAS85F,EAAQ3yJ,GACvBp7B,EAAOD,QAAUguL,EAEjBA,EAAOzkG,UAAY,IACnBykG,EAAOr2B,QAAU,IACjBq2B,EAAO3zC,aAAe,IACtB2zC,EAAOpB,UAAY,GAEnBoB,EAAOlsL,UAAUwqL,QAAU,SAAgB53F,GAEzC,MAAY,QAARA,EACKpoD,EAAMmhJ,QAAQptL,KAAKymD,EAAEj7C,MAAM,EAAG,GAAI,OAElCygC,EAAMohJ,QAAQrtL,KAAKymD,EAAEj7C,MAAM,EAAG,GAAI,MAC7C,gCC1BA,IAAIygC,EAAQ,EAAQ,OAChBgsE,EAAS,EAAQ,OACjBq1E,EAAY,EAAQ,OACpBzoI,EAAS,EAAQ,OAEjBioI,EAAQ7gJ,EAAM6gJ,MACdE,EAAU/gJ,EAAM+gJ,QAChBO,EAAUthJ,EAAMshJ,QAChBK,EAAON,EAAUM,KACjBC,EAAQP,EAAUO,MAClBC,EAASR,EAAUQ,OACnBC,EAAST,EAAUS,OACnBC,EAASV,EAAUU,OACnBC,EAASX,EAAUW,OAEnB5B,EAAYp0E,EAAOo0E,UAEnB6B,EAAW,CACb,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,UAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,UACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,UACpC,UAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,UAAY,UAAY,UAAY,UACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,YAGtC,SAASlzJ,IACP,KAAMh7B,gBAAgBg7B,GACpB,OAAO,IAAIA,EAEbqxJ,EAAU9oL,KAAKvD,MACfA,KAAKymD,EAAI,CACP,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,YAEtCzmD,KAAK2C,EAAIurL,EACTluL,KAAK42D,EAAI,IAAI3uD,MAAM,GACrB,CACAgkC,EAAM4nD,SAAS74D,EAAQqxJ,GACvBzsL,EAAOD,QAAUq7B,EAEjBA,EAAOkuD,UAAY,IACnBluD,EAAOs8H,QAAU,IACjBt8H,EAAOg/G,aAAe,IACtBh/G,EAAOuxJ,UAAY,GAEnBvxJ,EAAOv5B,UAAUwmH,QAAU,SAAiB3sG,EAAK2oD,GAG/C,IAFA,IAAIrN,EAAI52D,KAAK42D,EAEJ5rD,EAAI,EAAGA,EAAI,GAAIA,IACtB4rD,EAAE5rD,GAAKsQ,EAAI2oD,EAAQj5D,GACrB,KAAOA,EAAI4rD,EAAE3wD,OAAQ+E,IACnB4rD,EAAE5rD,GAAKgiL,EAAQiB,EAAOr3H,EAAE5rD,EAAI,IAAK4rD,EAAE5rD,EAAI,GAAIgjL,EAAOp3H,EAAE5rD,EAAI,KAAM4rD,EAAE5rD,EAAI,KAEtE,IAAIoC,EAAIpN,KAAKymD,EAAE,GACX3+C,EAAI9H,KAAKymD,EAAE,GACXl6C,EAAIvM,KAAKymD,EAAE,GACX5+C,EAAI7H,KAAKymD,EAAE,GACXjiD,EAAIxE,KAAKymD,EAAE,GACXzhD,EAAIhF,KAAKymD,EAAE,GACXthD,EAAInF,KAAKymD,EAAE,GACXA,EAAIzmD,KAAKymD,EAAE,GAGf,IADA5B,EAAO7kD,KAAK2C,EAAEsD,SAAW2wD,EAAE3wD,QACtB+E,EAAI,EAAGA,EAAI4rD,EAAE3wD,OAAQ+E,IAAK,CAC7B,IAAIwiD,EAAK+/H,EAAQ9mI,EAAGsnI,EAAOvpL,GAAIopL,EAAKppL,EAAGQ,EAAGG,GAAInF,KAAK2C,EAAEqI,GAAI4rD,EAAE5rD,IACvDyiD,EAAKq/H,EAAMgB,EAAO1gL,GAAIygL,EAAMzgL,EAAGtF,EAAGyE,IACtCk6C,EAAIthD,EACJA,EAAIH,EACJA,EAAIR,EACJA,EAAIsoL,EAAMjlL,EAAG2lD,GACb3lD,EAAI0E,EACJA,EAAIzE,EACJA,EAAIsF,EACJA,EAAI0/K,EAAMt/H,EAAIC,EAChB,CAEAztD,KAAKymD,EAAE,GAAKqmI,EAAM9sL,KAAKymD,EAAE,GAAIr5C,GAC7BpN,KAAKymD,EAAE,GAAKqmI,EAAM9sL,KAAKymD,EAAE,GAAI3+C,GAC7B9H,KAAKymD,EAAE,GAAKqmI,EAAM9sL,KAAKymD,EAAE,GAAIl6C,GAC7BvM,KAAKymD,EAAE,GAAKqmI,EAAM9sL,KAAKymD,EAAE,GAAI5+C,GAC7B7H,KAAKymD,EAAE,GAAKqmI,EAAM9sL,KAAKymD,EAAE,GAAIjiD,GAC7BxE,KAAKymD,EAAE,GAAKqmI,EAAM9sL,KAAKymD,EAAE,GAAIzhD,GAC7BhF,KAAKymD,EAAE,GAAKqmI,EAAM9sL,KAAKymD,EAAE,GAAIthD,GAC7BnF,KAAKymD,EAAE,GAAKqmI,EAAM9sL,KAAKymD,EAAE,GAAIA,EAC/B,EAEAzrB,EAAOv5B,UAAUwqL,QAAU,SAAgB53F,GACzC,MAAY,QAARA,EACKpoD,EAAMmhJ,QAAQptL,KAAKymD,EAAG,OAEtBxa,EAAMohJ,QAAQrtL,KAAKymD,EAAG,MACjC,gCCtGA,IAAIxa,EAAQ,EAAQ,OAEhB4hB,EAAS,EAAQ,OAErB,SAASmC,IACP,KAAMhwD,gBAAgBgwD,GACpB,OAAO,IAAIA,EAEbnC,EAAOtqD,KAAKvD,MACZA,KAAKymD,EAAI,CACP,WAAY,WACZ,WAAY,UACZ,WAAY,UACZ,UAAY,WACZ,WAAY,WACZ,WAAY,WACZ,WAAY,WACZ,WAAY,WAChB,CACAxa,EAAM4nD,SAAS7jC,EAAQnC,GACvBjuD,EAAOD,QAAUqwD,EAEjBA,EAAOk5B,UAAY,KACnBl5B,EAAOsnG,QAAU,IACjBtnG,EAAOgqF,aAAe,IACtBhqF,EAAOu8H,UAAY,IAEnBv8H,EAAOvuD,UAAUwqL,QAAU,SAAgB53F,GACzC,MAAY,QAARA,EACKpoD,EAAMmhJ,QAAQptL,KAAKymD,EAAEj7C,MAAM,EAAG,IAAK,OAEnCygC,EAAMohJ,QAAQrtL,KAAKymD,EAAEj7C,MAAM,EAAG,IAAK,MAC9C,gCChCA,IAAIygC,EAAQ,EAAQ,OAChBgsE,EAAS,EAAQ,OACjBpzD,EAAS,EAAQ,OAEjBspI,EAAYliJ,EAAMkiJ,UAClBC,EAAYniJ,EAAMmiJ,UAClBC,EAAWpiJ,EAAMoiJ,SACjBC,EAAWriJ,EAAMqiJ,SACjBC,EAAQtiJ,EAAMsiJ,MACdC,EAAWviJ,EAAMuiJ,SACjBC,EAAWxiJ,EAAMwiJ,SACjBC,EAAaziJ,EAAMyiJ,WACnBC,EAAa1iJ,EAAM0iJ,WACnBC,EAAa3iJ,EAAM2iJ,WACnBC,EAAa5iJ,EAAM4iJ,WAEnBxC,EAAYp0E,EAAOo0E,UAEnByC,EAAW,CACb,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,UAAY,WAAY,UAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,UAAY,UACpC,UAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,UACpC,UAAY,WAAY,UAAY,WACpC,UAAY,WAAY,UAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,UAAY,WACpC,UAAY,WAAY,UAAY,UACpC,UAAY,UAAY,UAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,YAGtC,SAASjhI,IACP,KAAM7tD,gBAAgB6tD,GACpB,OAAO,IAAIA,EAEbw+H,EAAU9oL,KAAKvD,MACfA,KAAKymD,EAAI,CACP,WAAY,WACZ,WAAY,WACZ,WAAY,WACZ,WAAY,WACZ,WAAY,WACZ,WAAY,UACZ,UAAY,WACZ,WAAY,WACdzmD,KAAK2C,EAAImsL,EACT9uL,KAAK42D,EAAI,IAAI3uD,MAAM,IACrB,CAwIA,SAAS8mL,EAAQC,EAAIC,EAAIC,EAAIC,EAAIC,GAC/B,IAAI/mJ,EAAK2mJ,EAAKE,GAASF,EAAMI,EAG7B,OAFI/mJ,EAAI,IACNA,GAAK,YACAA,CACT,CAEA,SAASgnJ,EAAQL,EAAIC,EAAIC,EAAIC,EAAIC,EAAIE,GACnC,IAAIjnJ,EAAK4mJ,EAAKE,GAASF,EAAMK,EAG7B,OAFIjnJ,EAAI,IACNA,GAAK,YACAA,CACT,CAEA,SAASknJ,EAASP,EAAIC,EAAIC,EAAIC,EAAIC,GAChC,IAAI/mJ,EAAK2mJ,EAAKE,EAAOF,EAAKI,EAAOF,EAAKE,EAGtC,OAFI/mJ,EAAI,IACNA,GAAK,YACAA,CACT,CAEA,SAASmnJ,EAASR,EAAIC,EAAIC,EAAIC,EAAIC,EAAIE,GACpC,IAAIjnJ,EAAK4mJ,EAAKE,EAAOF,EAAKK,EAAOH,EAAKG,EAGtC,OAFIjnJ,EAAI,IACNA,GAAK,YACAA,CACT,CAEA,SAASonJ,EAAUT,EAAIC,GACrB,IAII5mJ,EAJQ8lJ,EAAUa,EAAIC,EAAI,IAClBd,EAAUc,EAAID,EAAI,GAClBb,EAAUc,EAAID,EAAI,GAK9B,OAFI3mJ,EAAI,IACNA,GAAK,YACAA,CACT,CAEA,SAASqnJ,EAAUV,EAAIC,GACrB,IAII5mJ,EAJQ+lJ,EAAUY,EAAIC,EAAI,IAClBb,EAAUa,EAAID,EAAI,GAClBZ,EAAUa,EAAID,EAAI,GAK9B,OAFI3mJ,EAAI,IACNA,GAAK,YACAA,CACT,CAaA,SAASsnJ,EAAUX,EAAIC,GACrB,IAII5mJ,EAJQ+lJ,EAAUY,EAAIC,EAAI,IAClBb,EAAUY,EAAIC,EAAI,IAClBb,EAAUa,EAAID,EAAI,GAK9B,OAFI3mJ,EAAI,IACNA,GAAK,YACAA,CACT,CAEA,SAASunJ,EAAUZ,EAAIC,GACrB,IAII5mJ,EAJQ8lJ,EAAUa,EAAIC,EAAI,GAClBd,EAAUa,EAAIC,EAAI,GAClBZ,EAASW,EAAIC,EAAI,GAK7B,OAFI5mJ,EAAI,IACNA,GAAK,YACAA,CACT,CAEA,SAASwnJ,EAAUb,EAAIC,GACrB,IAII5mJ,EAJQ+lJ,EAAUY,EAAIC,EAAI,GAClBb,EAAUY,EAAIC,EAAI,GAClBX,EAASU,EAAIC,EAAI,GAK7B,OAFI5mJ,EAAI,IACNA,GAAK,YACAA,CACT,CAaA,SAASynJ,EAAUd,EAAIC,GACrB,IAII5mJ,EAJQ+lJ,EAAUY,EAAIC,EAAI,IAClBb,EAAUa,EAAID,EAAI,IAClBV,EAASU,EAAIC,EAAI,GAK7B,OAFI5mJ,EAAI,IACNA,GAAK,YACAA,CACT,CAzPA4D,EAAM4nD,SAAShmC,EAAQw+H,GACvBzsL,EAAOD,QAAUkuD,EAEjBA,EAAOq7B,UAAY,KACnBr7B,EAAOypG,QAAU,IACjBzpG,EAAOmsF,aAAe,IACtBnsF,EAAO0+H,UAAY,IAEnB1+H,EAAOpsD,UAAUsuL,cAAgB,SAAuBz0K,EAAK2oD,GAI3D,IAHA,IAAIrN,EAAI52D,KAAK42D,EAGJ5rD,EAAI,EAAGA,EAAI,GAAIA,IACtB4rD,EAAE5rD,GAAKsQ,EAAI2oD,EAAQj5D,GACrB,KAAOA,EAAI4rD,EAAE3wD,OAAQ+E,GAAK,EAAG,CAC3B,IAAIglL,GAsNWhB,EAtNOp4H,EAAE5rD,EAAI,GAsNTikL,EAtNar4H,EAAE5rD,EAAI,GA2NpCq9B,YAJQ8lJ,EAAUa,EAAIC,EAAI,IAClBd,EAAUc,EAAID,EAAI,IAClBX,EAASW,EAAIC,EAAI,IAGrB,IACN5mJ,GAAK,YACAA,GA7ND4nJ,EAAQH,EAAUl5H,EAAE5rD,EAAI,GAAI4rD,EAAE5rD,EAAI,IAClCklL,EAAQt5H,EAAE5rD,EAAI,IACdmlL,EAAQv5H,EAAE5rD,EAAI,IACdolL,EAAQR,EAAUh5H,EAAE5rD,EAAI,IAAK4rD,EAAE5rD,EAAI,KACnCqlL,EAAQR,EAAUj5H,EAAE5rD,EAAI,IAAK4rD,EAAE5rD,EAAI,KACnCslL,EAAQ15H,EAAE5rD,EAAI,IACdulL,EAAQ35H,EAAE5rD,EAAI,IAElB4rD,EAAE5rD,GAAK0jL,EACLsB,EAAOC,EACPC,EAAOC,EACPC,EAAOC,EACPC,EAAOC,GACT35H,EAAE5rD,EAAI,GAAK2jL,EACTqB,EAAOC,EACPC,EAAOC,EACPC,EAAOC,EACPC,EAAOC,EACX,CAmMF,IAAmBvB,EAAIC,EAKjB5mJ,CAvMN,EAEAwlB,EAAOpsD,UAAUwmH,QAAU,SAAiB3sG,EAAK2oD,GAC/CjkE,KAAK+vL,cAAcz0K,EAAK2oD,GAExB,IAiJiB+qH,EAAIC,EAKjB5mJ,EAtJAuuB,EAAI52D,KAAK42D,EAET45H,EAAKxwL,KAAKymD,EAAE,GACZ2E,EAAKprD,KAAKymD,EAAE,GACZgqI,EAAKzwL,KAAKymD,EAAE,GACZ4E,EAAKrrD,KAAKymD,EAAE,GACZka,EAAK3gE,KAAKymD,EAAE,GACZ8E,EAAKvrD,KAAKymD,EAAE,GACZu2E,EAAKh9H,KAAKymD,EAAE,GACZgF,EAAKzrD,KAAKymD,EAAE,GACZiqI,EAAK1wL,KAAKymD,EAAE,GACZkF,EAAK3rD,KAAKymD,EAAE,GACZkqI,EAAK3wL,KAAKymD,EAAE,IACZmqI,EAAK5wL,KAAKymD,EAAE,IACZoqI,EAAK7wL,KAAKymD,EAAE,IACZqqI,EAAK9wL,KAAKymD,EAAE,IACZsqI,EAAK/wL,KAAKymD,EAAE,IACZuqI,EAAKhxL,KAAKymD,EAAE,IAEhB5B,EAAO7kD,KAAK2C,EAAEsD,SAAW2wD,EAAE3wD,QAC3B,IAAK,IAAI+E,EAAI,EAAGA,EAAI4rD,EAAE3wD,OAAQ+E,GAAK,EAAG,CACpC,IAAIglL,EAAQe,EACRd,EAAQe,EACRd,GA+HF7nJ,YAJQ8lJ,EADKa,EA1HO0B,EA0HHzB,EA1HOtjI,EA2HE,IAClBwiI,EAAUa,EAAIC,EAAI,IAClBd,EAAUc,EAAID,EAAI,IAGtB,IACN3mJ,GAAK,YACAA,GAjID8nJ,EAAQR,EAAUe,EAAI/kI,GACtBykI,EAAQrB,EAAQ2B,EAAI/kI,EAAIglI,EAAIC,EAAIC,GAChCR,EAAQhB,EAAQqB,EAAI/kI,EAAIglI,EAAIC,EAAIC,EAAIC,GACpCR,EAAQtwL,KAAK2C,EAAEqI,GACfulL,EAAQvwL,KAAK2C,EAAEqI,EAAI,GACnBimL,EAAQr6H,EAAE5rD,GACVkmL,EAAQt6H,EAAE5rD,EAAI,GAEdmmL,EAAQvC,EACVoB,EAAOC,EACPC,EAAOC,EACPC,EAAOC,EACPC,EAAOC,EACPU,EAAOC,GACLE,EAAQvC,EACVmB,EAAOC,EACPC,EAAOC,EACPC,EAAOC,EACPC,EAAOC,EACPU,EAAOC,GAETlB,EAAQP,EAAUe,EAAIplI,GACtB6kI,EAAQP,EAAUc,EAAIplI,GACtB8kI,EAAQX,EAASiB,EAAIplI,EAAIqlI,EAAIplI,EAAIsV,GACjCwvH,EAAQX,EAASgB,EAAIplI,EAAIqlI,EAAIplI,EAAIsV,EAAIpV,GAErC,IAAI8lI,EAAQ7C,EAASwB,EAAOC,EAAOC,EAAOC,GACtCmB,EAAQ7C,EAASuB,EAAOC,EAAOC,EAAOC,GAE1CY,EAAKF,EACLG,EAAKF,EAELD,EAAKF,EACLG,EAAKF,EAELD,EAAKD,EACLE,EAAKjlI,EAEL+kI,EAAKlC,EAASxxD,EAAIvxE,EAAI0lI,EAAOC,GAC7BzlI,EAAK8iI,EAAShjI,EAAIA,EAAI0lI,EAAOC,GAE7Bp0D,EAAKr8D,EACLlV,EAAKF,EAELoV,EAAK8vH,EACLllI,EAAKF,EAELolI,EAAKD,EACLnlI,EAAKD,EAELolI,EAAKhC,EAAS2C,EAAOC,EAAOC,EAAOC,GACnClmI,EAAKqjI,EAAS0C,EAAOC,EAAOC,EAAOC,EACrC,CAEA/C,EAAMvuL,KAAKymD,EAAG,EAAG+pI,EAAIplI,GACrBmjI,EAAMvuL,KAAKymD,EAAG,EAAGgqI,EAAIplI,GACrBkjI,EAAMvuL,KAAKymD,EAAG,EAAGka,EAAIpV,GACrBgjI,EAAMvuL,KAAKymD,EAAG,EAAGu2E,EAAIvxE,GACrB8iI,EAAMvuL,KAAKymD,EAAG,EAAGiqI,EAAI/kI,GACrB4iI,EAAMvuL,KAAKymD,EAAG,GAAIkqI,EAAIC,GACtBrC,EAAMvuL,KAAKymD,EAAG,GAAIoqI,EAAIC,GACtBvC,EAAMvuL,KAAKymD,EAAG,GAAIsqI,EAAIC,EACxB,EAEAnjI,EAAOpsD,UAAUwqL,QAAU,SAAgB53F,GACzC,MAAY,QAARA,EACKpoD,EAAMmhJ,QAAQptL,KAAKymD,EAAG,OAEtBxa,EAAMohJ,QAAQrtL,KAAKymD,EAAG,MACjC,gCCnNA,IACI8qI,EADQ,EAAQ,OACDA,OAYnB,SAAS3D,EAAKxhL,EAAGnH,EAAGw9C,GAClB,OAAQr2C,EAAInH,GAAQmH,EAAKq2C,CAC3B,CAGA,SAASorI,EAAMzhL,EAAGnH,EAAGw9C,GACnB,OAAQr2C,EAAInH,EAAMmH,EAAIq2C,EAAMx9C,EAAIw9C,CAClC,CAGA,SAAS+uI,EAAIplL,EAAGnH,EAAGw9C,GACjB,OAAOr2C,EAAInH,EAAIw9C,CACjB,CAdA9iD,EAAQ6tL,KARR,SAAcziL,EAAGqB,EAAGnH,EAAGw9C,GACrB,OAAU,IAAN13C,EACK6iL,EAAKxhL,EAAGnH,EAAGw9C,GACV,IAAN13C,GAAiB,IAANA,EACNymL,EAAIplL,EAAGnH,EAAGw9C,GACT,IAAN13C,EACK8iL,EAAMzhL,EAAGnH,EAAGw9C,QADrB,CAEF,EAMA9iD,EAAQiuL,KAAOA,EAKfjuL,EAAQkuL,MAAQA,EAKhBluL,EAAQ6xL,IAAMA,EAKd7xL,EAAQmuL,OAHR,SAAgB1hL,GACd,OAAOmlL,EAAOnlL,EAAG,GAAKmlL,EAAOnlL,EAAG,IAAMmlL,EAAOnlL,EAAG,GAClD,EAMAzM,EAAQouL,OAHR,SAAgB3hL,GACd,OAAOmlL,EAAOnlL,EAAG,GAAKmlL,EAAOnlL,EAAG,IAAMmlL,EAAOnlL,EAAG,GAClD,EAMAzM,EAAQquL,OAHR,SAAgB5hL,GACd,OAAOmlL,EAAOnlL,EAAG,GAAKmlL,EAAOnlL,EAAG,IAAOA,IAAM,CAC/C,EAMAzM,EAAQsuL,OAHR,SAAgB7hL,GACd,OAAOmlL,EAAOnlL,EAAG,IAAMmlL,EAAOnlL,EAAG,IAAOA,IAAM,EAChD,gCC7CA,IAAIy4C,EAAS,EAAQ,OACjBgvC,EAAW,EAAQ,OAIvB,SAAS49F,EAAgBn2K,EAAKtQ,GAC5B,OAAqC,QAAZ,MAApBsQ,EAAIynC,WAAW/3C,OAGhBA,EAAI,GAAKA,EAAI,GAAKsQ,EAAIrV,SAGkB,QAAZ,MAAxBqV,EAAIynC,WAAW/3C,EAAI,GAC7B,CAyDA,SAAS0mL,EAAMjzF,GAKb,OAJWA,IAAM,GACLA,IAAM,EAAK,MACXA,GAAK,EAAK,UACN,IAAJA,IAAa,MACV,CACjB,CAeA,SAASo/C,EAAMpzF,GACb,OAAoB,IAAhBA,EAAKxkD,OACA,IAAMwkD,EAENA,CACX,CAGA,SAASknI,EAAMlnI,GACb,OAAoB,IAAhBA,EAAKxkD,OACA,IAAMwkD,EACU,IAAhBA,EAAKxkD,OACL,KAAOwkD,EACS,IAAhBA,EAAKxkD,OACL,MAAQwkD,EACQ,IAAhBA,EAAKxkD,OACL,OAASwkD,EACO,IAAhBA,EAAKxkD,OACL,QAAUwkD,EACM,IAAhBA,EAAKxkD,OACL,SAAWwkD,EACK,IAAhBA,EAAKxkD,OACL,UAAYwkD,EAEZA,CACX,CAjHA9qD,EAAQk0F,SAAWA,EAyDnBl0F,EAAQ0M,QA7CR,SAAiBiP,EAAK+4E,GACpB,GAAIpsF,MAAM6D,QAAQwP,GAChB,OAAOA,EAAI9P,QACb,IAAK8P,EACH,MAAO,GACT,IAAIuxB,EAAM,GACV,GAAmB,iBAARvxB,EACT,GAAK+4E,GAyBE,GAAY,QAARA,EAIT,KAHA/4E,EAAMA,EAAI+G,QAAQ,eAAgB,KAC1Bpc,OAAS,GAAM,IACrBqV,EAAM,IAAMA,GACTtQ,EAAI,EAAGA,EAAIsQ,EAAIrV,OAAQ+E,GAAK,EAC/B6hC,EAAI3mC,KAAKoJ,SAASgM,EAAItQ,GAAKsQ,EAAItQ,EAAI,GAAI,UAxBzC,IADA,IAAI3H,EAAI,EACC2H,EAAI,EAAGA,EAAIsQ,EAAIrV,OAAQ+E,IAAK,CACnC,IAAIuB,EAAI+O,EAAIynC,WAAW/3C,GACnBuB,EAAI,IACNsgC,EAAIxpC,KAAOkJ,EACFA,EAAI,MACbsgC,EAAIxpC,KAAQkJ,GAAK,EAAK,IACtBsgC,EAAIxpC,KAAY,GAAJkJ,EAAU,KACbklL,EAAgBn2K,EAAKtQ,IAC9BuB,EAAI,QAAgB,KAAJA,IAAe,KAA6B,KAAtB+O,EAAIynC,aAAa/3C,IACvD6hC,EAAIxpC,KAAQkJ,GAAK,GAAM,IACvBsgC,EAAIxpC,KAASkJ,GAAK,GAAM,GAAM,IAC9BsgC,EAAIxpC,KAASkJ,GAAK,EAAK,GAAM,IAC7BsgC,EAAIxpC,KAAY,GAAJkJ,EAAU,MAEtBsgC,EAAIxpC,KAAQkJ,GAAK,GAAM,IACvBsgC,EAAIxpC,KAASkJ,GAAK,EAAK,GAAM,IAC7BsgC,EAAIxpC,KAAY,GAAJkJ,EAAU,IAE1B,MASF,IAAKvB,EAAI,EAAGA,EAAIsQ,EAAIrV,OAAQ+E,IAC1B6hC,EAAI7hC,GAAc,EAATsQ,EAAItQ,GAEjB,OAAO6hC,CACT,EASAltC,EAAQ87D,MANR,SAAengD,GAEb,IADA,IAAIuxB,EAAM,GACD7hC,EAAI,EAAGA,EAAIsQ,EAAIrV,OAAQ+E,IAC9B6hC,GAAOgxG,EAAMviI,EAAItQ,GAAG5D,SAAS,KAC/B,OAAOylC,CACT,EAUAltC,EAAQ+xL,MAAQA,EAYhB/xL,EAAQytL,QAVR,SAAiB9xK,EAAKoiF,GAEpB,IADA,IAAI7wD,EAAM,GACD7hC,EAAI,EAAGA,EAAIsQ,EAAIrV,OAAQ+E,IAAK,CACnC,IAAIyzF,EAAInjF,EAAItQ,GACG,WAAX0yF,IACFe,EAAIizF,EAAMjzF,IACZ5xD,GAAO8kJ,EAAMlzF,EAAEr3F,SAAS,IAC1B,CACA,OAAOylC,CACT,EASAltC,EAAQk+I,MAAQA,EAoBhBl+I,EAAQgyL,MAAQA,EAgBhBhyL,EAAQ+sL,OAdR,SAAgBpxK,EAAK2oD,EAAOC,EAAKw5B,GAC/B,IAAIh4C,EAAMwe,EAAMD,EAChBpf,EAAOa,EAAM,GAAM,GAEnB,IADA,IAAI7Y,EAAM,IAAI5kC,MAAMy9C,EAAM,GACjB16C,EAAI,EAAGrI,EAAIshE,EAAOj5D,EAAI6hC,EAAI5mC,OAAQ+E,IAAKrI,GAAK,EAAG,CACtD,IAAI87F,EAEFA,EADa,QAAXf,EACGpiF,EAAI3Y,IAAM,GAAO2Y,EAAI3Y,EAAI,IAAM,GAAO2Y,EAAI3Y,EAAI,IAAM,EAAK2Y,EAAI3Y,EAAI,GAEjE2Y,EAAI3Y,EAAI,IAAM,GAAO2Y,EAAI3Y,EAAI,IAAM,GAAO2Y,EAAI3Y,EAAI,IAAM,EAAK2Y,EAAI3Y,GACxEkqC,EAAI7hC,GAAKyzF,IAAM,CACjB,CACA,OAAO5xD,CACT,EAqBAltC,EAAQ0tL,QAlBR,SAAiB/xK,EAAKoiF,GAEpB,IADA,IAAI7wD,EAAM,IAAI5kC,MAAmB,EAAbqT,EAAIrV,QACf+E,EAAI,EAAGrI,EAAI,EAAGqI,EAAIsQ,EAAIrV,OAAQ+E,IAAKrI,GAAK,EAAG,CAClD,IAAID,EAAI4Y,EAAItQ,GACG,QAAX0yF,GACF7wD,EAAIlqC,GAAKD,IAAM,GACfmqC,EAAIlqC,EAAI,GAAMD,IAAM,GAAM,IAC1BmqC,EAAIlqC,EAAI,GAAMD,IAAM,EAAK,IACzBmqC,EAAIlqC,EAAI,GAAS,IAAJD,IAEbmqC,EAAIlqC,EAAI,GAAKD,IAAM,GACnBmqC,EAAIlqC,EAAI,GAAMD,IAAM,GAAM,IAC1BmqC,EAAIlqC,EAAI,GAAMD,IAAM,EAAK,IACzBmqC,EAAIlqC,GAAS,IAAJD,EAEb,CACA,OAAOmqC,CACT,EAMAltC,EAAQ4xL,OAHR,SAAgB9yF,EAAG32F,GACjB,OAAQ22F,IAAM32F,EAAM22F,GAAM,GAAK32F,CACjC,EAMAnI,EAAQktL,OAHR,SAAgBpuF,EAAG32F,GACjB,OAAQ22F,GAAK32F,EAAM22F,IAAO,GAAK32F,CACjC,EAMAnI,EAAQmtL,MAHR,SAAe1/K,EAAGtF,GAChB,OAAQsF,EAAItF,IAAO,CACrB,EAMAnI,EAAQotL,QAHR,SAAiB3/K,EAAGtF,EAAGyE,GACrB,OAAQa,EAAItF,EAAIyE,IAAO,CACzB,EAMA5M,EAAQqtL,QAHR,SAAiB5/K,EAAGtF,EAAGyE,EAAG1E,GACxB,OAAQuF,EAAItF,EAAIyE,EAAI1E,IAAO,CAC7B,EAMAlI,EAAQ4tL,QAHR,SAAiBngL,EAAGtF,EAAGyE,EAAG1E,EAAGrD,GAC3B,OAAQ4I,EAAItF,EAAIyE,EAAI1E,EAAIrD,IAAO,CACjC,EAYA7E,EAAQ4uL,MATR,SAAe7yK,EAAK2pC,EAAKmrI,EAAIplI,GAC3B,IAAIqlI,EAAK/0K,EAAI2pC,GAGTkiB,EAAMnc,EAFD1vC,EAAI2pC,EAAM,KAEI,EACnBmiB,GAAMD,EAAKnc,EAAK,EAAI,GAAKolI,EAAKC,EAClC/0K,EAAI2pC,GAAOmiB,IAAO,EAClB9rD,EAAI2pC,EAAM,GAAKkiB,CACjB,EAQA5nE,EAAQ6uL,SALR,SAAkBgC,EAAIplI,EAAIqlI,EAAIplI,GAG5B,OAFUD,EAAKC,IAAQ,EACRD,EAAK,EAAI,GAAKolI,EAAKC,IACpB,CAChB,EAOA9wL,EAAQ8uL,SAJR,SAAkB+B,EAAIplI,EAAIqlI,EAAIplI,GAE5B,OADSD,EAAKC,IACA,CAChB,EAgBA1rD,EAAQ+uL,WAbR,SAAoB8B,EAAIplI,EAAIqlI,EAAIplI,EAAIsV,EAAIpV,EAAIyxE,EAAIvxE,GAC9C,IAAIud,EAAQ,EACRzB,EAAKnc,EAST,OAPA4d,IADAzB,EAAMA,EAAKlc,IAAQ,GACLD,EAAK,EAAI,EAEvB4d,IADAzB,EAAMA,EAAKhc,IAAQ,GACLA,EAAK,EAAI,EAIdilI,EAAKC,EAAK9vH,EAAKq8D,GAFxBh0D,IADAzB,EAAMA,EAAK9b,IAAQ,GACLA,EAAK,EAAI,KAGT,CAChB,EAOA9rD,EAAQgvL,WAJR,SAAoB6B,EAAIplI,EAAIqlI,EAAIplI,EAAIsV,EAAIpV,EAAIyxE,EAAIvxE,GAE9C,OADSL,EAAKC,EAAKE,EAAKE,IACV,CAChB,EAkBA9rD,EAAQivL,WAfR,SAAoB4B,EAAIplI,EAAIqlI,EAAIplI,EAAIsV,EAAIpV,EAAIyxE,EAAIvxE,EAAIilI,EAAI/kI,GACtD,IAAIqd,EAAQ,EACRzB,EAAKnc,EAWT,OATA4d,IADAzB,EAAMA,EAAKlc,IAAQ,GACLD,EAAK,EAAI,EAEvB4d,IADAzB,EAAMA,EAAKhc,IAAQ,GACLA,EAAK,EAAI,EAEvByd,IADAzB,EAAMA,EAAK9b,IAAQ,GACLA,EAAK,EAAI,EAId+kI,EAAKC,EAAK9vH,EAAKq8D,EAAK0zD,GAF7B1nH,IADAzB,EAAMA,EAAK5b,IAAQ,GACLA,EAAK,EAAI,KAGT,CAChB,EAQAhsD,EAAQkvL,WALR,SAAoB2B,EAAIplI,EAAIqlI,EAAIplI,EAAIsV,EAAIpV,EAAIyxE,EAAIvxE,EAAIilI,EAAI/kI,GAGtD,OAFSP,EAAKC,EAAKE,EAAKE,EAAKE,IAEf,CAChB,EAOAhsD,EAAQwuL,UAJR,SAAmBqC,EAAIplI,EAAI+I,GAEzB,OADS/I,GAAO,GAAK+I,EAASq8H,IAAOr8H,KACxB,CACf,EAOAx0D,EAAQyuL,UAJR,SAAmBoC,EAAIplI,EAAI+I,GAEzB,OADSq8H,GAAO,GAAKr8H,EAAS/I,IAAO+I,KACxB,CACf,EAMAx0D,EAAQ0uL,SAHR,SAAkBmC,EAAIplI,EAAI+I,GACxB,OAAOq8H,IAAOr8H,CAChB,EAOAx0D,EAAQ2uL,SAJR,SAAkBkC,EAAIplI,EAAI+I,GAExB,OADSq8H,GAAO,GAAKr8H,EAAS/I,IAAO+I,KACxB,CACf,+BClRA,IAAIp+B,EAAO,EAAQ,OACfkW,EAAQ,EAAQ,OAChB4Y,EAAS,EAAQ,OAErB,SAAS20F,EAASpuH,GAChB,KAAMprB,gBAAgBw5I,GACpB,OAAO,IAAIA,EAASpuH,GACtBprB,KAAK+1B,KAAO3K,EAAQ2K,KACpB/1B,KAAKq3J,aAAejsI,EAAQisI,WAE5Br3J,KAAK8vG,OAAS9vG,KAAK+1B,KAAKuhI,QACxBt3J,KAAKu3J,WAAansI,EAAQmsI,YAAcv3J,KAAK+1B,KAAKikH,aAElDh6I,KAAKw3J,QAAU,KACfx3J,KAAKy3J,eAAiB,KACtBz3J,KAAK03J,EAAI,KACT13J,KAAK+1D,EAAI,KAET,IAAI+rD,EAAU71E,EAAM5/B,QAAQ+e,EAAQ02F,QAAS12F,EAAQ6uH,YAAc,OAC/Dn4E,EAAQ71B,EAAM5/B,QAAQ+e,EAAQ02C,MAAO12C,EAAQusI,UAAY,OACzD7d,EAAO7tG,EAAM5/B,QAAQ+e,EAAQ0uH,KAAM1uH,EAAQ2uH,SAAW,OAC1Dl1F,EAAOi9D,EAAQ77G,QAAWjG,KAAKu3J,WAAa,EACrC,mCAAqCv3J,KAAKu3J,WAAa,SAC9Dv3J,KAAKu2F,MAAMurB,EAAShgD,EAAOg4E,EAC7B,CACAl6I,EAAOD,QAAU65I,EAEjBA,EAAS/3I,UAAU80F,MAAQ,SAAcurB,EAAShgD,EAAOg4E,GACvD,IAAI1yG,EAAO06E,EAAQ9/G,OAAO8/D,GAAO9/D,OAAO83I,GAExC95I,KAAK03J,EAAI,IAAIzvJ,MAAMjI,KAAK8vG,OAAS,GACjC9vG,KAAK+1D,EAAI,IAAI9tD,MAAMjI,KAAK8vG,OAAS,GACjC,IAAK,IAAI9kG,EAAI,EAAGA,EAAIhL,KAAK+1D,EAAE9vD,OAAQ+E,IACjChL,KAAK03J,EAAE1sJ,GAAK,EACZhL,KAAK+1D,EAAE/qD,GAAK,EAGdhL,KAAKioH,QAAQ7gF,GACbpnC,KAAKw3J,QAAU,EACfx3J,KAAKy3J,eAAiB,eACxB,EAEAje,EAAS/3I,UAAUo2J,MAAQ,WACzB,OAAO,IAAI9hI,EAAKszB,KAAKrpD,KAAK+1B,KAAM/1B,KAAK03J,EACvC,EAEAle,EAAS/3I,UAAUwmH,QAAU,SAAgB7gF,GAC3C,IAAI0wH,EAAO93J,KAAK63J,QACApyG,OAAOzlD,KAAK+1D,GACZtQ,OAAO,CAAE,IACrBre,IACF0wH,EAAOA,EAAKryG,OAAOre,IACrBpnC,KAAK03J,EAAII,EAAKlxG,SACd5mD,KAAK+1D,EAAI/1D,KAAK63J,QAAQpyG,OAAOzlD,KAAK+1D,GAAGnP,SAChCxf,IAGLpnC,KAAK03J,EAAI13J,KAAK63J,QACApyG,OAAOzlD,KAAK+1D,GACZtQ,OAAO,CAAE,IACTA,OAAOre,GACPwf,SACd5mD,KAAK+1D,EAAI/1D,KAAK63J,QAAQpyG,OAAOzlD,KAAK+1D,GAAGnP,SACvC,EAEA4yF,EAAS/3I,UAAU6+D,OAAS,SAAgBwhD,EAASm4B,EAAYrwI,EAAKmuJ,GAE1C,iBAAf9d,IACT8d,EAASnuJ,EACTA,EAAMqwI,EACNA,EAAa,MAGfn4B,EAAU71E,EAAM5/B,QAAQy1G,EAASm4B,GACjCrwI,EAAMqiC,EAAM5/B,QAAQzC,EAAKmuJ,GAEzBlzG,EAAOi9D,EAAQ77G,QAAWjG,KAAKu3J,WAAa,EACrC,mCAAqCv3J,KAAKu3J,WAAa,SAE9Dv3J,KAAKioH,QAAQnG,EAAQ9/G,OAAO4H,GAAO,KACnC5J,KAAKw3J,QAAU,CACjB,EAEAhe,EAAS/3I,UAAU8+D,SAAW,SAAkB7a,EAAK2uC,EAAKzqF,EAAKmuJ,GAC7D,GAAI/3J,KAAKw3J,QAAUx3J,KAAKy3J,eACtB,MAAM,IAAInxJ,MAAM,sBAGC,iBAAR+tF,IACT0jE,EAASnuJ,EACTA,EAAMyqF,EACNA,EAAM,MAIJzqF,IACFA,EAAMqiC,EAAM5/B,QAAQzC,EAAKmuJ,GAAU,OACnC/3J,KAAKioH,QAAQr+G,IAIf,IADA,IAAIw9H,EAAO,GACJA,EAAKnhI,OAASy/C,GACnB1lD,KAAK+1D,EAAI/1D,KAAK63J,QAAQpyG,OAAOzlD,KAAK+1D,GAAGnP,SACrCwgF,EAAOA,EAAKplI,OAAOhC,KAAK+1D,GAG1B,IAAIlpB,EAAMu6F,EAAK57H,MAAM,EAAGk6C,GAGxB,OAFA1lD,KAAKioH,QAAQr+G,GACb5J,KAAKw3J,UACEvrH,EAAMz0B,OAAOq1B,EAAKwnD,EAC3B,iBC/GA10F,EAAQsoE,KAAO,SAAU3iB,EAAQ4F,EAAQ/F,EAAMysI,EAAMC,GACnD,IAAIrtL,EAAG9B,EACHovL,EAAiB,EAATD,EAAcD,EAAO,EAC7BG,GAAQ,GAAKD,GAAQ,EACrBE,EAAQD,GAAQ,EAChBE,GAAS,EACTjnL,EAAIm6C,EAAQ0sI,EAAS,EAAK,EAC1BhqL,EAAIs9C,GAAQ,EAAI,EAChBp6C,EAAIu6C,EAAO4F,EAASlgD,GAOxB,IALAA,GAAKnD,EAELrD,EAAIuG,GAAM,IAAOknL,GAAU,EAC3BlnL,KAAQknL,EACRA,GAASH,EACFG,EAAQ,EAAGztL,EAAS,IAAJA,EAAW8gD,EAAO4F,EAASlgD,GAAIA,GAAKnD,EAAGoqL,GAAS,GAKvE,IAHAvvL,EAAI8B,GAAM,IAAOytL,GAAU,EAC3BztL,KAAQytL,EACRA,GAASL,EACFK,EAAQ,EAAGvvL,EAAS,IAAJA,EAAW4iD,EAAO4F,EAASlgD,GAAIA,GAAKnD,EAAGoqL,GAAS,GAEvE,GAAU,IAANztL,EACFA,EAAI,EAAIwtL,MACH,IAAIxtL,IAAMutL,EACf,OAAOrvL,EAAIyjE,IAAsBC,KAAdr7D,GAAK,EAAI,GAE5BrI,GAAQqL,KAAKC,IAAI,EAAG4jL,GACpBptL,GAAQwtL,CACV,CACA,OAAQjnL,GAAK,EAAI,GAAKrI,EAAIqL,KAAKC,IAAI,EAAGxJ,EAAIotL,EAC5C,EAEAjyL,EAAQuoE,MAAQ,SAAU5iB,EAAQnlD,EAAO+qD,EAAQ/F,EAAMysI,EAAMC,GAC3D,IAAIrtL,EAAG9B,EAAG6J,EACNulL,EAAiB,EAATD,EAAcD,EAAO,EAC7BG,GAAQ,GAAKD,GAAQ,EACrBE,EAAQD,GAAQ,EAChBG,EAAe,KAATN,EAAc7jL,KAAKC,IAAI,GAAI,IAAMD,KAAKC,IAAI,GAAI,IAAM,EAC1DhD,EAAIm6C,EAAO,EAAK0sI,EAAS,EACzBhqL,EAAIs9C,EAAO,GAAK,EAChBp6C,EAAI5K,EAAQ,GAAgB,IAAVA,GAAe,EAAIA,EAAQ,EAAK,EAAI,EAmC1D,IAjCAA,EAAQ4N,KAAKozB,IAAIhhC,GAEboxD,MAAMpxD,IAAUA,IAAUimE,KAC5B1jE,EAAI6uD,MAAMpxD,GAAS,EAAI,EACvBqE,EAAIutL,IAEJvtL,EAAIuJ,KAAK8iD,MAAM9iD,KAAK7L,IAAI/B,GAAS4N,KAAK+3D,KAClC3lE,GAASoM,EAAIwB,KAAKC,IAAI,GAAIxJ,IAAM,IAClCA,IACA+H,GAAK,IAGLpM,GADEqE,EAAIwtL,GAAS,EACNE,EAAK3lL,EAEL2lL,EAAKnkL,KAAKC,IAAI,EAAG,EAAIgkL,IAEpBzlL,GAAK,IACf/H,IACA+H,GAAK,GAGH/H,EAAIwtL,GAASD,GACfrvL,EAAI,EACJ8B,EAAIutL,GACKvtL,EAAIwtL,GAAS,GACtBtvL,GAAMvC,EAAQoM,EAAK,GAAKwB,KAAKC,IAAI,EAAG4jL,GACpCptL,GAAQwtL,IAERtvL,EAAIvC,EAAQ4N,KAAKC,IAAI,EAAGgkL,EAAQ,GAAKjkL,KAAKC,IAAI,EAAG4jL,GACjDptL,EAAI,IAIDotL,GAAQ,EAAGtsI,EAAO4F,EAASlgD,GAAS,IAAJtI,EAAUsI,GAAKnD,EAAGnF,GAAK,IAAKkvL,GAAQ,GAI3E,IAFAptL,EAAKA,GAAKotL,EAAQlvL,EAClBovL,GAAQF,EACDE,EAAO,EAAGxsI,EAAO4F,EAASlgD,GAAS,IAAJxG,EAAUwG,GAAKnD,EAAGrD,GAAK,IAAKstL,GAAQ,GAE1ExsI,EAAO4F,EAASlgD,EAAInD,IAAU,IAAJkD,CAC5B,aCpF6B,mBAAlB9K,OAAOuC,OAEhB5C,EAAOD,QAAU,SAAkB09F,EAAMC,GACnCA,IACFD,EAAKE,OAASD,EACdD,EAAK57F,UAAYxB,OAAOuC,OAAO86F,EAAU77F,UAAW,CAClD2G,YAAa,CACXjI,MAAOk9F,EACPn6F,YAAY,EACZF,UAAU,EACVC,cAAc,KAItB,EAGArD,EAAOD,QAAU,SAAkB09F,EAAMC,GACvC,GAAIA,EAAW,CACbD,EAAKE,OAASD,EACd,IAAIE,EAAW,WAAa,EAC5BA,EAAS/7F,UAAY67F,EAAU77F,UAC/B47F,EAAK57F,UAAY,IAAI+7F,EACrBH,EAAK57F,UAAU2G,YAAci1F,CAC/B,CACF,mBCzBF,OASA,WACE,aAEA,IAAI80F,EAAc,wBAEdC,EAA2B,iBAAXr7H,OAChBt3D,EAAO2yL,EAASr7H,OAAS,CAAC,EAC1Bt3D,EAAK4yL,oBACPD,GAAS,GAEX,IAAIE,GAAcF,GAA0B,iBAATryL,MACpBN,EAAK8yL,oBAAyC,iBAAZ1sI,SAAwBA,QAAQ/1B,UAAY+1B,QAAQ/1B,SAASq5B,KAE5G1pD,EAAO,EAAA0F,EACEmtL,IACT7yL,EAAOM,MAET,IAAIyyL,GAAa/yL,EAAKgzL,sBAAsD7yL,EAAOD,QAC/E+yL,EAAsC,OACtCC,GAAgBlzL,EAAKmzL,yBAAkD,oBAAhBhkG,YACvDikG,EAAY,mBAAmBlmL,MAAM,IAErCmmL,EAAiB,CAAC,EAAG,KAAM,OAAQ,UAGnCC,EAAQ,CAAC,EAAG,EAAG,GAAI,IACnBC,EAAK,CAAC,EAAG,EAAG,MAAO,EAAG,MAAO,WAAY,WAAY,WAAY,MAAO,EAAG,WAC7E,EAAG,WAAY,WAAY,MAAO,WAAY,IAAK,EAAG,IAAK,EAAG,WAAY,EAC1E,WAAY,EAAG,WAAY,EAAG,IAAK,WAAY,MAAO,WAAY,MAClE,WAAY,MAAO,WAAY,IAAK,WAAY,MAAO,EAAG,WAAY,WACtE,WAAY,WAAY,MAAO,WAAY,WAAY,EAAG,WAAY,YACpEC,EAAO,CAAC,IAAK,IAAK,IAAK,KACvBC,EAAa,CAAC,IAAK,KACnBC,EAAe,CAAC,MAAO,SAAU,cAAe,QAAS,UACzDC,EAAiB,CACnB,IAAO,IACP,IAAO,MAGL3zL,EAAK8yL,oBAAuBtqL,MAAM6D,UACpC7D,MAAM6D,QAAU,SAAUoxC,GACxB,MAA+C,mBAAxCj9C,OAAOwB,UAAU2F,SAAS7D,KAAK25C,EACxC,IAGEy1I,IAAiBlzL,EAAK4zL,iCAAoCzkG,YAAYC,SACxED,YAAYC,OAAS,SAAU3xC,GAC7B,MAAsB,iBAARA,GAAoBA,EAAIoI,QAAUpI,EAAIoI,OAAOl9C,cAAgBwmF,WAC7E,GA+FF,IA5FA,IAAI0kG,EAAqB,SAAUzlL,EAAM+6D,EAAS2qH,GAChD,OAAO,SAAUhsL,GACf,OAAO,IAAIisL,EAAO3lL,EAAM+6D,EAAS/6D,GAAM43C,OAAOl+C,GAASgsL,IACzD,CACF,EAEIE,EAA0B,SAAU5lL,EAAM+6D,EAAS2qH,GACrD,OAAO,SAAUhsL,EAASmsL,GACxB,OAAO,IAAIF,EAAO3lL,EAAM+6D,EAAS8qH,GAAYjuI,OAAOl+C,GAASgsL,IAC/D,CACF,EAEII,EAA2B,SAAU9lL,EAAM+6D,EAAS2qH,GACtD,OAAO,SAAUhsL,EAASmsL,EAAY9tL,EAAGmF,GACvC,OAAOuqF,EAAQ,SAAWznF,GAAM43C,OAAOl+C,EAASmsL,EAAY9tL,EAAGmF,GAAGwoL,IACpE,CACF,EAEIK,EAAyB,SAAU/lL,EAAM+6D,EAAS2qH,GACpD,OAAO,SAAU1xL,EAAK0F,EAASmsL,EAAY3oL,GACzC,OAAOuqF,EAAQ,OAASznF,GAAM43C,OAAO5jD,EAAK0F,EAASmsL,EAAY3oL,GAAGwoL,IACpE,CACF,EAEIM,EAAsB,SAAUv9F,EAAQw9F,EAAcjmL,EAAM+6D,GAC9D,IAAK,IAAI59D,EAAI,EAAGA,EAAImoL,EAAaltL,SAAU+E,EAAG,CAC5C,IAAIoG,EAAO+hL,EAAanoL,GACxBsrF,EAAOllF,GAAQ0iL,EAAajmL,EAAM+6D,EAASx3D,EAC7C,CACA,OAAOklF,CACT,EAEIw9F,EAAe,SAAUjmL,EAAM+6D,GACjC,IAAI0tB,EAASg9F,EAAmBzlL,EAAM+6D,EAAS,OAO/C,OANA0tB,EAAO9zF,OAAS,WACd,OAAO,IAAIgxL,EAAO3lL,EAAM+6D,EAAS/6D,EACnC,EACAyoF,EAAO7wC,OAAS,SAAUl+C,GACxB,OAAO+uF,EAAO9zF,SAASijD,OAAOl+C,EAChC,EACOssL,EAAoBv9F,EAAQg9F,EAAoBzlL,EAAM+6D,EAC/D,EAyCI6kD,EAAa,CACf,CAAEnsF,KAAM,SAAUsnC,QA/GC,CAAC,EAAG,IAAK,MAAO,UA+GQ/6D,KAAMolL,EAAMa,aAAcA,GACrE,CAAExyJ,KAAM,OAAQsnC,QA/GJ,CAAC,EAAG,KAAM,OAAQ,WA+GI/6D,KAAMolL,EAAMa,aAAcA,GAC5D,CAAExyJ,KAAM,QAASsnC,QAnHC,CAAC,GAAI,KAAM,QAAS,WAmHG/6D,KAAMqlL,EAAYY,aA1CrC,SAAUjmL,EAAM+6D,GACtC,IAAI0tB,EAASm9F,EAAwB5lL,EAAM+6D,EAAS,OAOpD,OANA0tB,EAAO9zF,OAAS,SAAUkxL,GACxB,OAAO,IAAIF,EAAO3lL,EAAM+6D,EAAS8qH,EACnC,EACAp9F,EAAO7wC,OAAS,SAAUl+C,EAASmsL,GACjC,OAAOp9F,EAAO9zF,OAAOkxL,GAAYjuI,OAAOl+C,EAC1C,EACOssL,EAAoBv9F,EAAQm9F,EAAyB5lL,EAAM+6D,EACpE,GAkCE,CAAEtnC,KAAM,SAAUsnC,QAASkqH,EAAgBjlL,KAAMqlL,EAAYY,aAhCtC,SAAUjmL,EAAM+6D,GACvC,IAAI61B,EAAI20F,EAAevlL,GACnByoF,EAASq9F,EAAyB9lL,EAAM+6D,EAAS,OAWrD,OAVA0tB,EAAO9zF,OAAS,SAAUkxL,EAAY9tL,EAAGmF,GACvC,OAAKnF,GAAMmF,EAGF,IAAIyoL,EAAO3lL,EAAM+6D,EAAS8qH,GAAYK,QAAQ,CAACnuL,EAAGmF,GAAI0zF,GAFtDnJ,EAAQ,QAAUznF,GAAMrL,OAAOkxL,EAI1C,EACAp9F,EAAO7wC,OAAS,SAAUl+C,EAASmsL,EAAY9tL,EAAGmF,GAChD,OAAOurF,EAAO9zF,OAAOkxL,EAAY9tL,EAAGmF,GAAG06C,OAAOl+C,EAChD,EACOssL,EAAoBv9F,EAAQq9F,EAA0B9lL,EAAM+6D,EACrE,GAmBE,CAAEtnC,KAAM,OAAQsnC,QAASkqH,EAAgBjlL,KAAMqlL,EAAYY,aAjBtC,SAAUjmL,EAAM+6D,GACrC,IAAI61B,EAAI20F,EAAevlL,GACnByoF,EAASs9F,EAAuB/lL,EAAM+6D,EAAS,OAOnD,OANA0tB,EAAO9zF,OAAS,SAAUX,EAAK6xL,EAAY3oL,GACzC,OAAO,IAAIipL,EAAKnmL,EAAM+6D,EAAS8qH,GAAYK,QAAQ,CAAC,OAAQhpL,GAAI0zF,GAAGs1F,QAAQ,CAAClyL,GAAM48F,EACpF,EACAnI,EAAO7wC,OAAS,SAAU5jD,EAAK0F,EAASmsL,EAAY3oL,GAClD,OAAOurF,EAAO9zF,OAAOX,EAAK6xL,EAAY3oL,GAAG06C,OAAOl+C,EAClD,EACOssL,EAAoBv9F,EAAQs9F,EAAwB/lL,EAAM+6D,EACnE,IAUI0sB,EAAU,CAAC,EAAG2+F,EAAc,GAEvBjpL,EAAI,EAAGA,EAAIyiH,EAAWxnH,SAAU+E,EAGvC,IAFA,IAAI2iH,EAAYF,EAAWziH,GACvB6C,EAAO8/G,EAAU9/G,KACZo8C,EAAI,EAAGA,EAAIp8C,EAAK5H,SAAUgkD,EAAG,CACpC,IAAIiqI,EAAavmE,EAAUrsF,KAAO,IAAMzzB,EAAKo8C,GAG7C,GAFAgqI,EAAY/tL,KAAKguL,GACjB5+F,EAAQ4+F,GAAcvmE,EAAUmmE,aAAajmL,EAAKo8C,GAAI0jE,EAAU/kD,SACzC,SAAnB+kD,EAAUrsF,KAAiB,CAC7B,IAAI6yJ,EAAgBxmE,EAAUrsF,KAAOzzB,EAAKo8C,GAC1CgqI,EAAY/tL,KAAKiuL,GACjB7+F,EAAQ6+F,GAAiB7+F,EAAQ4+F,EACnC,CACF,CAGF,SAASV,EAAO3lL,EAAM+6D,EAAS8qH,GAC7B1zL,KAAKgkL,OAAS,GACdhkL,KAAK+K,EAAI,GACT/K,KAAK4oE,QAAUA,EACf5oE,KAAK0zL,WAAaA,EAClB1zL,KAAKo0L,OAAQ,EACbp0L,KAAKq0L,WAAY,EACjBr0L,KAAKk3B,MAAQ,EACbl3B,KAAKikE,MAAQ,EACbjkE,KAAKs0L,WAAc,MAAQzmL,GAAQ,IAAO,EAC1C7N,KAAKg3K,UAAYh3K,KAAKs0L,YAAc,EACpCt0L,KAAKu0L,aAAeb,GAAc,EAClC1zL,KAAKu/G,YAA2B,GAAbm0E,IAAoB,EAEvC,IAAK,IAAI1oL,EAAI,EAAGA,EAAI,KAAMA,EACxBhL,KAAK+K,EAAEC,GAAK,CAEhB,CAuQA,SAASgpL,EAAKnmL,EAAM+6D,EAAS8qH,GAC3BF,EAAOjwL,KAAKvD,KAAM6N,EAAM+6D,EAAS8qH,EACnC,CAvQAF,EAAO/xL,UAAUgkD,OAAS,SAAUl+C,GAClC,GAAIvH,KAAKq0L,UACP,MAAM,IAAI/tL,MA/KO,2BAiLnB,IAAIkuL,EAAWpjL,SAAc7J,EAC7B,GAAa,WAAT6J,EAAmB,CACrB,GAAa,WAATA,EAWF,MAAM,IAAI9K,MAAM6rL,GAVhB,GAAgB,OAAZ5qL,EACF,MAAM,IAAIjB,MAAM6rL,GACX,GAAIQ,GAAgBprL,EAAQa,cAAgBwmF,YACjDrnF,EAAU,IAAI8Q,WAAW9Q,QACpB,KAAKU,MAAM6D,QAAQvE,IACnBorL,GAAiB/jG,YAAYC,OAAOtnF,IACvC,MAAM,IAAIjB,MAAM6rL,GAMtBqC,GAAY,CACd,CAIA,IAHA,IACuDxpL,EAAGyS,EADtDumK,EAAShkL,KAAKgkL,OAAQhN,EAAYh3K,KAAKg3K,UAAW/wK,EAASsB,EAAQtB,OACrEquL,EAAat0L,KAAKs0L,WAAY9nL,EAAQ,EAAGzB,EAAI/K,KAAK+K,EAE7CyB,EAAQvG,GAAQ,CACrB,GAAIjG,KAAKo0L,MAGP,IAFAp0L,KAAKo0L,OAAQ,EACbpQ,EAAO,GAAKhkL,KAAKk3B,MACZlsB,EAAI,EAAGA,EAAIspL,EAAa,IAAKtpL,EAChCg5K,EAAOh5K,GAAK,EAGhB,GAAIwpL,EACF,IAAKxpL,EAAIhL,KAAKikE,MAAOz3D,EAAQvG,GAAU+E,EAAIgsK,IAAaxqK,EACtDw3K,EAAOh5K,GAAK,IAAMzD,EAAQiF,IAAUumL,EAAY,EAAN/nL,UAG5C,IAAKA,EAAIhL,KAAKikE,MAAOz3D,EAAQvG,GAAU+E,EAAIgsK,IAAaxqK,GACtDiR,EAAOlW,EAAQw7C,WAAWv2C,IACf,IACTw3K,EAAOh5K,GAAK,IAAMyS,GAAQs1K,EAAY,EAAN/nL,KACvByS,EAAO,MAChBumK,EAAOh5K,GAAK,KAAO,IAAQyS,GAAQ,IAAOs1K,EAAY,EAAN/nL,KAChDg5K,EAAOh5K,GAAK,KAAO,IAAe,GAAPyS,IAAiBs1K,EAAY,EAAN/nL,MACzCyS,EAAO,OAAUA,GAAQ,OAClCumK,EAAOh5K,GAAK,KAAO,IAAQyS,GAAQ,KAAQs1K,EAAY,EAAN/nL,KACjDg5K,EAAOh5K,GAAK,KAAO,IAASyS,GAAQ,EAAK,KAAUs1K,EAAY,EAAN/nL,KACzDg5K,EAAOh5K,GAAK,KAAO,IAAe,GAAPyS,IAAiBs1K,EAAY,EAAN/nL,OAElDyS,EAAO,QAAoB,KAAPA,IAAiB,GAAqC,KAA9BlW,EAAQw7C,aAAav2C,IACjEw3K,EAAOh5K,GAAK,KAAO,IAAQyS,GAAQ,KAAQs1K,EAAY,EAAN/nL,KACjDg5K,EAAOh5K,GAAK,KAAO,IAASyS,GAAQ,GAAM,KAAUs1K,EAAY,EAAN/nL,KAC1Dg5K,EAAOh5K,GAAK,KAAO,IAASyS,GAAQ,EAAK,KAAUs1K,EAAY,EAAN/nL,KACzDg5K,EAAOh5K,GAAK,KAAO,IAAe,GAAPyS,IAAiBs1K,EAAY,EAAN/nL,MAKxD,GADAhL,KAAKy0L,cAAgBzpL,EACjBA,GAAKgsK,EAAW,CAGlB,IAFAh3K,KAAKikE,MAAQj5D,EAAIgsK,EACjBh3K,KAAKk3B,MAAQ8sJ,EAAOsQ,GACftpL,EAAI,EAAGA,EAAIspL,IAActpL,EAC5BD,EAAEC,IAAMg5K,EAAOh5K,GAEjBhG,EAAE+F,GACF/K,KAAKo0L,OAAQ,CACf,MACEp0L,KAAKikE,MAAQj5D,CAEjB,CACA,OAAOhL,IACT,EAEAwzL,EAAO/xL,UAAU+V,OAAS,SAAUpL,EAAG+xF,GACrC,IAAI17F,EAAQ,IAAJ2J,EAASxG,EAAI,EACjBk+C,EAAQ,CAACrhD,GAGb,IADAA,EAAQ,KADR2J,IAAS,GAEF3J,EAAI,GACTqhD,EAAMm5C,QAAQx6F,GAEdA,EAAQ,KADR2J,IAAS,KAEPxG,EAQJ,OANIu4F,EACFr6C,EAAM59C,KAAKN,GAEXk+C,EAAMm5C,QAAQr3F,GAEhB5F,KAAKylD,OAAO3B,GACLA,EAAM79C,MACf,EAEAutL,EAAO/xL,UAAUizL,aAAe,SAAUhrL,GACxC,IAAI8qL,EAAWpjL,SAAc1H,EAC7B,GAAa,WAAT0H,EAAmB,CACrB,GAAa,WAATA,EAWF,MAAM,IAAI9K,MAAM6rL,GAVhB,GAAY,OAARzoL,EACF,MAAM,IAAIpD,MAAM6rL,GACX,GAAIQ,GAAgBjpL,EAAItB,cAAgBwmF,YAC7CllF,EAAM,IAAI2O,WAAW3O,QAChB,KAAKzB,MAAM6D,QAAQpC,IACnBipL,GAAiB/jG,YAAYC,OAAOnlF,IACvC,MAAM,IAAIpD,MAAM6rL,GAMtBqC,GAAY,CACd,CACA,IAAI1wI,EAAQ,EAAG79C,EAASyD,EAAIzD,OAC5B,GAAIuuL,EACF1wI,EAAQ79C,OAER,IAAK,IAAI+E,EAAI,EAAGA,EAAItB,EAAIzD,SAAU+E,EAAG,CACnC,IAAIyS,EAAO/T,EAAIq5C,WAAW/3C,GACtByS,EAAO,IACTqmC,GAAS,EACArmC,EAAO,KAChBqmC,GAAS,EACArmC,EAAO,OAAUA,GAAQ,MAClCqmC,GAAS,GAETrmC,EAAO,QAAoB,KAAPA,IAAiB,GAA6B,KAAtB/T,EAAIq5C,aAAa/3C,IAC7D84C,GAAS,EAEb,CAIF,OAFAA,GAAS9jD,KAAKwX,OAAe,EAARssC,GACrB9jD,KAAKylD,OAAO/7C,GACLo6C,CACT,EAEA0vI,EAAO/xL,UAAUsyL,QAAU,SAAUY,EAAMl2F,GAEzC,IADA,IAAI36C,EAAQ9jD,KAAKwX,OAAOinF,GACfzzF,EAAI,EAAGA,EAAI2pL,EAAK1uL,SAAU+E,EACjC84C,GAAS9jD,KAAK00L,aAAaC,EAAK3pL,IAElC,IAAI4pL,EAAen2F,EAAI36C,EAAQ26C,EAC3BS,EAAQ,GAGZ,OAFAA,EAAMj5F,OAAS2uL,EACf50L,KAAKylD,OAAOy5C,GACLl/F,IACT,EAEAwzL,EAAO/xL,UAAUozL,SAAW,WAC1B,IAAI70L,KAAKq0L,UAAT,CAGAr0L,KAAKq0L,WAAY,EACjB,IAAIrQ,EAAShkL,KAAKgkL,OAAQh5K,EAAIhL,KAAKy0L,cAAeH,EAAat0L,KAAKs0L,WAAYvpL,EAAI/K,KAAK+K,EAEzF,GADAi5K,EAAOh5K,GAAK,IAAMhL,KAAK4oE,QAAY,EAAJ59D,GAC3BhL,KAAKy0L,gBAAkBz0L,KAAKg3K,UAE9B,IADAgN,EAAO,GAAKA,EAAOsQ,GACdtpL,EAAI,EAAGA,EAAIspL,EAAa,IAAKtpL,EAChCg5K,EAAOh5K,GAAK,EAIhB,IADAg5K,EAAOsQ,EAAa,IAAM,WACrBtpL,EAAI,EAAGA,EAAIspL,IAActpL,EAC5BD,EAAEC,IAAMg5K,EAAOh5K,GAEjBhG,EAAE+F,EAdF,CAeF,EAEAyoL,EAAO/xL,UAAU2F,SAAWosL,EAAO/xL,UAAU0vD,IAAM,WACjDnxD,KAAK60L,WAKL,IAHA,IAEc39J,EAFVo9J,EAAat0L,KAAKs0L,WAAYvpL,EAAI/K,KAAK+K,EAAGwpL,EAAev0L,KAAKu0L,aAChEh1E,EAAav/G,KAAKu/G,WAAYv0G,EAAI,EAAGi/C,EAAI,EACvCkH,EAAM,GACHlH,EAAIsqI,GAAc,CACvB,IAAKvpL,EAAI,EAAGA,EAAIspL,GAAcrqI,EAAIsqI,IAAgBvpL,IAAKi/C,EACrD/yB,EAAQnsB,EAAEC,GACVmmD,GAAO0hI,EAAW37J,GAAS,EAAK,IAAQ27J,EAAkB,GAAR37J,GAChD27J,EAAW37J,GAAS,GAAM,IAAQ27J,EAAW37J,GAAS,EAAK,IAC3D27J,EAAW37J,GAAS,GAAM,IAAQ27J,EAAW37J,GAAS,GAAM,IAC5D27J,EAAW37J,GAAS,GAAM,IAAQ27J,EAAW37J,GAAS,GAAM,IAE5D+yB,EAAIqqI,GAAe,IACrBtvL,EAAE+F,GACFC,EAAI,EAER,CAWA,OAVIu0G,IACFroF,EAAQnsB,EAAEC,GACVmmD,GAAO0hI,EAAW37J,GAAS,EAAK,IAAQ27J,EAAkB,GAAR37J,GAC9CqoF,EAAa,IACfpuD,GAAO0hI,EAAW37J,GAAS,GAAM,IAAQ27J,EAAW37J,GAAS,EAAK,KAEhEqoF,EAAa,IACfpuD,GAAO0hI,EAAW37J,GAAS,GAAM,IAAQ27J,EAAW37J,GAAS,GAAM,MAGhEi6B,CACT,EAEAqiI,EAAO/xL,UAAUgvK,YAAc,WAC7BzwK,KAAK60L,WAEL,IAGIvvI,EAHAgvI,EAAat0L,KAAKs0L,WAAYvpL,EAAI/K,KAAK+K,EAAGwpL,EAAev0L,KAAKu0L,aAChEh1E,EAAav/G,KAAKu/G,WAAYv0G,EAAI,EAAGi/C,EAAI,EACvCnG,EAAQ9jD,KAAK0zL,YAAc,EAG7BpuI,EADEi6D,EACO,IAAI3wB,YAAa2lG,EAAe,GAAM,GAEtC,IAAI3lG,YAAY9qC,GAG3B,IADA,IAAIsN,EAAQ,IAAI/J,YAAY/B,GACrB2E,EAAIsqI,GAAc,CACvB,IAAKvpL,EAAI,EAAGA,EAAIspL,GAAcrqI,EAAIsqI,IAAgBvpL,IAAKi/C,EACrDmH,EAAMnH,GAAKl/C,EAAEC,GAEXi/C,EAAIqqI,GAAe,GACrBtvL,EAAE+F,EAEN,CAKA,OAJIw0G,IACFnuD,EAAMpmD,GAAKD,EAAEC,GACbs6C,EAASA,EAAO95C,MAAM,EAAGs4C,IAEpBwB,CACT,EAEAkuI,EAAO/xL,UAAU6jD,OAASkuI,EAAO/xL,UAAUgvK,YAE3C+iB,EAAO/xL,UAAUmlD,OAAS4sI,EAAO/xL,UAAU2vD,MAAQ,WACjDpxD,KAAK60L,WAKL,IAHA,IAEgB3pI,EAAQh0B,EAFpBo9J,EAAat0L,KAAKs0L,WAAYvpL,EAAI/K,KAAK+K,EAAGwpL,EAAev0L,KAAKu0L,aAChEh1E,EAAav/G,KAAKu/G,WAAYv0G,EAAI,EAAGi/C,EAAI,EACvCmH,EAAQ,GACLnH,EAAIsqI,GAAc,CACvB,IAAKvpL,EAAI,EAAGA,EAAIspL,GAAcrqI,EAAIsqI,IAAgBvpL,IAAKi/C,EACrDiB,EAASjB,GAAK,EACd/yB,EAAQnsB,EAAEC,GACVomD,EAAMlG,GAAkB,IAARh0B,EAChBk6B,EAAMlG,EAAS,GAAMh0B,GAAS,EAAK,IACnCk6B,EAAMlG,EAAS,GAAMh0B,GAAS,GAAM,IACpCk6B,EAAMlG,EAAS,GAAMh0B,GAAS,GAAM,IAElC+yB,EAAIqqI,GAAe,GACrBtvL,EAAE+F,EAEN,CAYA,OAXIw0G,IACFr0D,EAASjB,GAAK,EACd/yB,EAAQnsB,EAAEC,GACVomD,EAAMlG,GAAkB,IAARh0B,EACZqoF,EAAa,IACfnuD,EAAMlG,EAAS,GAAMh0B,GAAS,EAAK,KAEjCqoF,EAAa,IACfnuD,EAAMlG,EAAS,GAAMh0B,GAAS,GAAM,MAGjCk6B,CACT,EAMA4iI,EAAKvyL,UAAY,IAAI+xL,EAErBQ,EAAKvyL,UAAUozL,SAAW,WAExB,OADA70L,KAAKwX,OAAOxX,KAAK0zL,YAAY,GACtBF,EAAO/xL,UAAUozL,SAAStxL,KAAKvD,KACxC,EAEA,IAAIgF,EAAI,SAAU+F,GAChB,IAAI07C,EAAGl7C,EAAG3F,EAAGijI,EAAI7qE,EAAIC,EAAI62H,EAAIC,EAAIC,EAAIC,EAAIC,EAAI78C,EAAI88C,EAC/C/wF,EAAIvmC,EAAIvE,EAAIC,EAAIsrC,EAAIG,EAAIxrC,EAAI6rC,EAAIG,EAAI9rC,EAAI07H,EAAKz7H,EAAK07H,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAC3EC,EAAKC,EAAKC,EAAKC,EAAKl8H,EAAKm8H,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAC3EC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKt9H,GAAKu9H,GAAKC,GAAKC,GAAKC,GAAKC,GAC7E,IAAK5xL,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACvBijI,EAAK99H,EAAE,GAAKA,EAAE,IAAMA,EAAE,IAAMA,EAAE,IAAMA,EAAE,IACtCizD,EAAKjzD,EAAE,GAAKA,EAAE,IAAMA,EAAE,IAAMA,EAAE,IAAMA,EAAE,IACtCkzD,EAAKlzD,EAAE,GAAKA,EAAE,IAAMA,EAAE,IAAMA,EAAE,IAAMA,EAAE,IACtC+pL,EAAK/pL,EAAE,GAAKA,EAAE,IAAMA,EAAE,IAAMA,EAAE,IAAMA,EAAE,IACtCgqL,EAAKhqL,EAAE,GAAKA,EAAE,IAAMA,EAAE,IAAMA,EAAE,IAAMA,EAAE,IACtCiqL,EAAKjqL,EAAE,GAAKA,EAAE,IAAMA,EAAE,IAAMA,EAAE,IAAMA,EAAE,IACtCkqL,EAAKlqL,EAAE,GAAKA,EAAE,IAAMA,EAAE,IAAMA,EAAE,IAAMA,EAAE,IACtCmqL,EAAKnqL,EAAE,GAAKA,EAAE,IAAMA,EAAE,IAAMA,EAAE,IAAMA,EAAE,IAItC07C,GAHA4xF,EAAKttI,EAAE,GAAKA,EAAE,IAAMA,EAAE,IAAMA,EAAE,IAAMA,EAAE,MAG3BkzD,GAAM,EAAM62H,IAAO,IAC9BvpL,GAHA4pL,EAAKpqL,EAAE,GAAKA,EAAE,IAAMA,EAAE,IAAMA,EAAE,IAAMA,EAAE,MAG3B+pL,GAAM,EAAM72H,IAAO,IAC9BlzD,EAAE,IAAM07C,EACR17C,EAAE,IAAMQ,EACRR,EAAE,KAAO07C,EACT17C,EAAE,KAAOQ,EACTR,EAAE,KAAO07C,EACT17C,EAAE,KAAOQ,EACTR,EAAE,KAAO07C,EACT17C,EAAE,KAAOQ,EACTR,EAAE,KAAO07C,EACT17C,EAAE,KAAOQ,EACTk7C,EAAIoiF,GAAOksD,GAAM,EAAMC,IAAO,IAC9BzpL,EAAIyyD,GAAOg3H,GAAM,EAAMD,IAAO,IAC9BhqL,EAAE,IAAM07C,EACR17C,EAAE,IAAMQ,EACRR,EAAE,KAAO07C,EACT17C,EAAE,KAAOQ,EACTR,EAAE,KAAO07C,EACT17C,EAAE,KAAOQ,EACTR,EAAE,KAAO07C,EACT17C,EAAE,KAAOQ,EACTR,EAAE,KAAO07C,EACT17C,EAAE,KAAOQ,EACTk7C,EAAIwX,GAAOg3H,GAAM,EAAMC,IAAO,IAC9B3pL,EAAIupL,GAAOI,GAAM,EAAMD,IAAO,IAC9BlqL,EAAE,IAAM07C,EACR17C,EAAE,IAAMQ,EACRR,EAAE,KAAO07C,EACT17C,EAAE,KAAOQ,EACTR,EAAE,KAAO07C,EACT17C,EAAE,KAAOQ,EACTR,EAAE,KAAO07C,EACT17C,EAAE,KAAOQ,EACTR,EAAE,KAAO07C,EACT17C,EAAE,KAAOQ,EACTk7C,EAAIsuI,GAAO18C,GAAM,EAAM88C,IAAO,IAC9B5pL,EAAIypL,GAAOG,GAAM,EAAM98C,IAAO,IAC9BttI,EAAE,IAAM07C,EACR17C,EAAE,IAAMQ,EACRR,EAAE,KAAO07C,EACT17C,EAAE,KAAOQ,EACTR,EAAE,KAAO07C,EACT17C,EAAE,KAAOQ,EACTR,EAAE,KAAO07C,EACT17C,EAAE,KAAOQ,EACTR,EAAE,KAAO07C,EACT17C,EAAE,KAAOQ,EACTk7C,EAAIwuI,GAAOpsD,GAAM,EAAM7qE,IAAO,IAC9BzyD,EAAI2pL,GAAOl3H,GAAM,EAAM6qE,IAAO,IAC9B99H,EAAE,IAAM07C,EACR17C,EAAE,IAAMQ,EACRR,EAAE,KAAO07C,EACT17C,EAAE,KAAOQ,EACTR,EAAE,KAAO07C,EACT17C,EAAE,KAAOQ,EACTR,EAAE,KAAO07C,EACT17C,EAAE,KAAOQ,EACTR,EAAE,KAAO07C,EACT17C,EAAE,KAAOQ,EAET64F,EAAKr5F,EAAE,GACP8yD,EAAK9yD,EAAE,GACPyrL,EAAOzrL,EAAE,KAAO,EAAMA,EAAE,MAAQ,GAChC0rL,EAAO1rL,EAAE,KAAO,EAAMA,EAAE,MAAQ,GAChCwqL,EAAOxqL,EAAE,KAAO,EAAMA,EAAE,MAAQ,GAChCyqL,EAAOzqL,EAAE,KAAO,EAAMA,EAAE,MAAQ,GAChCssL,GAAOtsL,EAAE,KAAO,EAAMA,EAAE,MAAQ,GAChCusL,GAAOvsL,EAAE,KAAO,EAAMA,EAAE,MAAQ,GAChCqrL,EAAOrrL,EAAE,KAAO,GAAOA,EAAE,MAAQ,GACjCsrL,EAAOtrL,EAAE,KAAO,GAAOA,EAAE,MAAQ,GACjC8qL,EAAO9qL,EAAE,IAAM,EAAMA,EAAE,KAAO,GAC9B+qL,EAAO/qL,EAAE,IAAM,EAAMA,EAAE,KAAO,GAC9BuuD,EAAMvuD,EAAE,KAAO,GAAOA,EAAE,MAAQ,GAChCwuD,EAAMxuD,EAAE,KAAO,GAAOA,EAAE,MAAQ,GAChC2rL,EAAO3rL,EAAE,KAAO,GAAOA,EAAE,MAAQ,GACjC4rL,EAAO5rL,EAAE,KAAO,GAAOA,EAAE,MAAQ,GACjC0qL,EAAO1qL,EAAE,KAAO,GAAOA,EAAE,MAAQ,GACjC2qL,EAAO3qL,EAAE,KAAO,GAAOA,EAAE,MAAQ,GACjCwsL,GAAOxsL,EAAE,KAAO,EAAMA,EAAE,MAAQ,GAChCysL,GAAOzsL,EAAE,KAAO,EAAMA,EAAE,MAAQ,GAChCisL,GAAOjsL,EAAE,IAAM,GAAOA,EAAE,KAAO,EAC/BksL,GAAOlsL,EAAE,IAAM,GAAOA,EAAE,KAAO,EAC/B6uD,EAAO7uD,EAAE,KAAO,EAAMA,EAAE,MAAQ,GAChCgrL,EAAOhrL,EAAE,KAAO,EAAMA,EAAE,MAAQ,GAChC85F,EAAM95F,EAAE,KAAO,GAAOA,EAAE,MAAQ,GAChCi6F,EAAMj6F,EAAE,KAAO,GAAOA,EAAE,MAAQ,GAChC6rL,EAAO7rL,EAAE,KAAO,GAAOA,EAAE,MAAQ,GACjC8rL,EAAO9rL,EAAE,KAAO,GAAOA,EAAE,MAAQ,GACjC4qL,EAAO5qL,EAAE,KAAO,GAAOA,EAAE,MAAQ,EACjC6qL,EAAO7qL,EAAE,KAAO,GAAOA,EAAE,MAAQ,EACjCqqL,EAAOrqL,EAAE,IAAM,GAAOA,EAAE,KAAO,EAC/B4uD,EAAO5uD,EAAE,IAAM,GAAOA,EAAE,KAAO,EAC/BmsL,GAAOnsL,EAAE,KAAO,GAAOA,EAAE,MAAQ,EACjCosL,GAAOpsL,EAAE,KAAO,GAAOA,EAAE,MAAQ,EACjCirL,EAAOjrL,EAAE,KAAO,GAAOA,EAAE,MAAQ,EACjCkrL,EAAOlrL,EAAE,KAAO,GAAOA,EAAE,MAAQ,EACjCyuD,EAAMzuD,EAAE,KAAO,GAAOA,EAAE,MAAQ,GAChCs6F,EAAMt6F,EAAE,KAAO,GAAOA,EAAE,MAAQ,GAChC+rL,EAAO/rL,EAAE,KAAO,GAAOA,EAAE,MAAQ,EACjCgsL,GAAOhsL,EAAE,KAAO,GAAOA,EAAE,MAAQ,EACjCurL,EAAOvrL,EAAE,IAAM,GAAOA,EAAE,KAAO,EAC/BwrL,EAAOxrL,EAAE,IAAM,GAAOA,EAAE,KAAO,EAC/BsqL,EAAOtqL,EAAE,KAAO,GAAOA,EAAE,MAAQ,GACjCuqL,EAAOvqL,EAAE,KAAO,GAAOA,EAAE,MAAQ,GACjC8uD,GAAO9uD,EAAE,KAAO,EAAMA,EAAE,MAAQ,GAChCqsL,GAAOrsL,EAAE,KAAO,EAAMA,EAAE,MAAQ,GAChCmrL,EAAOnrL,EAAE,KAAO,EAAMA,EAAE,MAAQ,GAChCorL,EAAOprL,EAAE,KAAO,EAAMA,EAAE,MAAQ,GAChCy6F,EAAMz6F,EAAE,KAAO,GAAOA,EAAE,MAAQ,GAChC2uD,EAAM3uD,EAAE,KAAO,GAAOA,EAAE,MAAQ,GAEhCA,EAAE,GAAKq5F,GAAO9qC,EAAKurC,EACnB95F,EAAE,GAAK8yD,GAAOtE,EAAKyrC,EACnBj6F,EAAE,IAAMqqL,GAAQC,EAAME,EACtBxqL,EAAE,IAAM4uD,GAAQ27H,EAAME,EACtBzqL,EAAE,IAAM8qL,GAAQj8H,EAAMo8H,EACtBjrL,EAAE,IAAM+qL,GAAQC,EAAME,EACtBlrL,EAAE,IAAMurL,GAAQE,EAAME,EACtB3rL,EAAE,IAAMwrL,GAAQE,EAAME,EACtB5rL,EAAE,IAAMisL,IAAQE,GAAMr9H,GACtB9uD,EAAE,IAAMksL,IAAQE,GAAMC,GACtBrsL,EAAE,GAAKuuD,GAAOurC,EAAKrrC,EACnBzuD,EAAE,GAAKwuD,GAAOyrC,EAAKK,EACnBt6F,EAAE,IAAMsqL,GAAQE,EAAME,EACtB1qL,EAAE,IAAMuqL,GAAQE,EAAME,EACtB3qL,EAAE,IAAM6uD,GAAQo8H,EAAME,EACtBnrL,EAAE,IAAMgrL,GAAQE,EAAME,EACtBprL,EAAE,IAAMyrL,GAAQE,EAAME,EACtB7rL,EAAE,IAAM0rL,GAAQE,EAAME,EACtB9rL,EAAE,IAAMmsL,IAAQr9H,GAAMw9H,GACtBtsL,EAAE,IAAMosL,IAAQC,GAAME,GACtBvsL,EAAE,GAAK85F,GAAOrrC,EAAKgsC,EACnBz6F,EAAE,GAAKi6F,GAAOK,EAAK3rC,EACnB3uD,EAAE,IAAMwqL,GAAQE,EAAME,EACtB5qL,EAAE,IAAMyqL,GAAQE,EAAME,EACtB7qL,EAAE,IAAMirL,GAAQE,EAAME,EACtBrrL,EAAE,IAAMkrL,GAAQE,EAAME,EACtBtrL,EAAE,IAAM2rL,GAAQE,EAAME,EACtB/rL,EAAE,IAAM4rL,GAAQE,EAAME,GACtBhsL,EAAE,IAAM8uD,IAAQw9H,GAAME,GACtBxsL,EAAE,IAAMqsL,IAAQE,GAAME,GACtBzsL,EAAE,GAAKyuD,GAAOgsC,EAAKpB,EACnBr5F,EAAE,GAAKs6F,GAAO3rC,EAAKmE,EACnB9yD,EAAE,IAAM0qL,GAAQE,EAAMP,EACtBrqL,EAAE,IAAM2qL,GAAQE,EAAMj8H,EACtB5uD,EAAE,IAAMmrL,GAAQE,EAAMP,EACtB9qL,EAAE,IAAMorL,GAAQE,EAAMP,EACtB/qL,EAAE,IAAM6rL,GAAQE,EAAMR,EACtBvrL,EAAE,IAAM8rL,GAAQE,GAAMR,EACtBxrL,EAAE,IAAMssL,IAAQE,GAAMP,GACtBjsL,EAAE,IAAMusL,IAAQE,GAAMP,GACtBlsL,EAAE,GAAKy6F,GAAOpB,EAAK9qC,EACnBvuD,EAAE,GAAK2uD,GAAOmE,EAAKtE,EACnBxuD,EAAE,IAAM4qL,GAAQP,EAAMC,EACtBtqL,EAAE,IAAM6qL,GAAQj8H,EAAM27H,EACtBvqL,EAAE,IAAMqrL,GAAQP,EAAMj8H,EACtB7uD,EAAE,IAAMsrL,GAAQP,EAAMC,EACtBhrL,EAAE,IAAM+rL,GAAQR,EAAME,EACtBzrL,EAAE,IAAMgsL,IAAQR,EAAME,EACtB1rL,EAAE,IAAMwsL,IAAQP,GAAME,GACtBnsL,EAAE,IAAMysL,IAAQP,GAAME,GAEtBpsL,EAAE,IAAMioL,EAAGptL,GACXmF,EAAE,IAAMioL,EAAGptL,EAAI,EAEnB,EAEA,GAAI4sL,EACF5yL,EAAOD,QAAU21F,MACZ,CACL,IAAKtqF,EAAI,EAAGA,EAAIipL,EAAYhuL,SAAU+E,EACpCvL,EAAKw0L,EAAYjpL,IAAMsqF,EAAQ2+F,EAAYjpL,IAEzC0nL,SAGD,KAFD,aACE,OAAOp9F,CACR,gCAEL,CACD,CAtoBD,yBCToE11F,EAAOD,QAAkO,WAAW,aAAa,IAAI0oC,EAAE,CAACxgC,EAAE,SAASjC,EAAEV,GAAG,IAAI,IAAIV,KAAKU,EAAEmjC,EAAE5lC,EAAEyC,EAAEV,KAAK6jC,EAAE5lC,EAAEmD,EAAEpB,IAAIvE,OAAOC,eAAe0F,EAAEpB,EAAE,CAACtB,YAAW,EAAGC,IAAI+B,EAAEV,IAAI,GAAG6jC,EAAEljC,EAAE,WAAW,GAAG,iBAAiB0sE,WAAW,OAAOA,WAAW,IAAI,OAAO7xE,MAAM,IAAI8oL,SAAS,cAAb,EAA+E,CAAjD,MAAMzgJ,GAAG,GAAG,iBAAiB0uB,OAAO,OAAOA,MAAM,CAAC,CAA7J,GAAiK1uB,EAAE5lC,EAAE,SAAS4lC,EAAEziC,GAAG,OAAO3F,OAAOwB,UAAU6B,eAAeC,KAAK8kC,EAAEziC,EAAE,EAAEyiC,EAAEA,EAAE,SAASA,GAAG,oBAAoB3iC,QAAQA,OAAOi6H,aAAa1/H,OAAOC,eAAemoC,EAAE3iC,OAAOi6H,YAAY,CAACx/H,MAAM,WAAWF,OAAOC,eAAemoC,EAAE,IAAI,CAACloC,OAAM,GAAI,EAAE,IAAIyF,EAAE,CAAC,EAAEyiC,EAAEA,EAAEziC,GAAGyiC,EAAExgC,EAAEjC,EAAE,CAACi3C,OAAO,WAAW,OAAO4J,CAAC,IAAiZ,IAA7Y,IAAIvhD,EAA4K8F,EAAE,oBAAoB0wG,WAAWA,UAAUC,UAAUD,UAAUC,UAAUx4D,cAAc,GAAG1gD,GAAGyC,EAAEoK,UAAU,aAAa0+D,KAAKhjE,IAAI,IAAI,GAAG,IAAIumD,MAAMrsD,IAAIA,EAAEoK,UAAU,wBAAwB0+D,KAAKhjE,IAAI,IAAI,GAAG,KAAKumD,MAAMrsD,IAAIA,GAAGA,GAAWkI,EAAE,WAAW,GAAG,oBAAoB2pD,OAAO,CAAC,IAAInxD,EAAEmxD,OAAO3V,QAAQ2V,OAAOgtD,SAAS,IAAIn+G,EAAE,CAAC,GAAG,SAASyiC,EAAEziC,GAAG,OAAM,IAAKnD,GAAiBA,EAAEmD,CAAiD,CAA7F,CAA+F,EAAI,IAAI,OAAO3D,QAAQm7G,KAAK,kGAAkG,WAAW,OAAOrvG,KAAK8iD,MAAM,IAAI9iD,KAAK67H,UAAU,GAAG,EAAE,MAAM,IAAItjI,MAAM,0BAA0B,CAAC,OAAO,WAAW,OAAOV,EAAE+7C,gBAAgB,IAAI0F,YAAY,IAAI,EAAE,CAAC,CAAC,YAAO,IAAShf,EAAEljC,GAAGkjC,EAAEljC,EAAEi8C,OAAO,WAAW,OAAO/Y,EAAEljC,EAAEi8C,OAAOS,YAAY,GAAGi1E,aAAa,EAAE,WAAW,OAAO,qBAA8B,GAAGA,aAAa,CAAC,CAArnB,GAAynB9xH,EAAE,WAAW,SAASqjC,EAAEziC,EAAEV,GAAG,GAAG+C,MAAM6D,QAAQlG,KAAKA,EAAE,OAAO5F,KAAKgL,EAAE/C,MAAM6D,QAAQlG,GAAGA,EAAE,QAAQ5F,KAAKw9D,EAAE,iBAAiBt4D,EAAEA,EAAE,EAAElF,KAAKgL,EAAE/E,QAAQ,GAAGL,aAAayiC,EAAE,OAAOroC,KAAKgL,EAAEpF,EAAE4f,MAAMha,aAAaxL,KAAKw9D,EAAE53D,EAAE6xL,WAAW,IAAIjzL,EAAE,IAAIoB,aAAagpF,YAAYpqF,EAAE,IAAI6T,WAAWzS,IAAIA,aAAayS,YAAYzS,aAAa8xL,WAAW9xL,aAAa+xL,mBAAmB/xL,aAAagyL,YAAYhyL,aAAaiyL,aAAajyL,aAAakyL,YAAYlyL,aAAayhD,aAAazhD,aAAao/D,cAAcp/D,aAAa6gE,gBAAgBjiE,EAAE,IAAI6T,WAAWzS,EAAE0/C,OAAO1/C,EAAEsgD,WAAWtgD,EAAEgrD,YAAyD,CAA5C,MAAMvoB,GAAG,MAAM,IAAI/hC,MAAM,mBAAmB,CAAC,IAAI9B,EAAE,MAAM,IAAI8B,MAAM,oBAAoB,IAAI,IAAI0E,EAAExG,EAAEosD,WAAWnuD,EAAE,GAAG2K,EAAE,EAAEA,EAAEpC,EAAEoC,IAAI3K,EAAE2K,IAAI,IAAI5I,EAAE4I,IAAI,GAAGA,EAAE,EAAE,EAAEpN,KAAKgL,EAAEvI,EAAEzC,KAAKw9D,EAAExyD,CAAC,CAAC,OAAO/K,OAAOC,eAAemoC,EAAE5mC,UAAU,YAAY,CAAC0B,IAAI,WAAW,OAAOnD,KAAKw9D,CAAC,EAAExwD,IAAI,SAASq7B,GAAGroC,KAAKw9D,EAAEn1B,CAAC,EAAEnlC,YAAW,EAAGD,cAAa,IAAKhD,OAAOC,eAAemoC,EAAE5mC,UAAU,QAAQ,CAAC0B,IAAI,WAAW,OAAOnD,KAAKgL,CAAC,EAAE9H,YAAW,EAAGD,cAAa,IAAKolC,EAAE5mC,UAAU2F,SAAS,SAASihC,GAAG,OAAOA,EAAEA,EAAE7E,UAAUxjC,MAAhhE,SAASqoC,GAAG,IAAI,IAAIziC,EAAEyiC,EAAEovJ,UAAUvyL,EAAEmjC,EAAE7iB,MAAMhhB,EAAE,GAAGwG,EAAE,EAAEA,EAAEpF,EAAEoF,IAAI,CAAC,IAAIvI,EAAEyC,EAAE8F,IAAI,KAAK,GAAGA,EAAE,EAAE,EAAE,IAAIxG,EAAE0B,MAAMzD,IAAI,GAAG2E,SAAS,KAAK5C,EAAE0B,MAAM,GAAGzD,GAAG2E,SAAS,IAAI,CAAC,OAAO5C,EAAEkI,KAAK,GAAG,CAAg3DlI,CAAExE,KAAK,EAAEqoC,EAAE5mC,UAAUs7C,aAAa,WAAW,IAAI,IAAI1U,EAAEroC,KAAKgL,EAAEpF,EAAE5F,KAAKw9D,EAAEt4D,EAAE,IAAImT,WAAWzS,GAAGpB,EAAE,EAAEA,EAAEoB,EAAEpB,IAAIU,EAAEV,GAAG6jC,EAAE7jC,IAAI,KAAK,GAAGA,EAAE,EAAE,EAAE,IAAI,OAAOU,CAAC,EAAEmjC,EAAE5mC,UAAUO,OAAO,SAASqmC,GAAG,IAAIziC,EAAEyiC,EAAE7iB,MAAMha,QAAQtG,EAAEmjC,EAAEovJ,UAAU,GAAGz3L,KAAK6gC,QAAQ7gC,KAAKw9D,EAAE,EAAE,IAAI,IAAIh5D,EAAE,EAAEA,EAAEU,EAAEV,IAAI,CAAC,IAAIwG,EAAEpF,EAAEpB,IAAI,KAAK,GAAGA,EAAE,EAAE,EAAE,IAAIxE,KAAKgL,EAAEhL,KAAKw9D,EAAEh5D,IAAI,IAAIwG,GAAG,IAAIhL,KAAKw9D,EAAEh5D,GAAG,EAAE,CAAC,MAAM,IAAIA,EAAE,EAAEA,EAAEU,EAAEV,GAAG,EAAExE,KAAKgL,EAAEhL,KAAKw9D,EAAEh5D,IAAI,GAAGoB,EAAEpB,IAAI,GAAG,OAAOxE,KAAKw9D,GAAGt4D,EAAElF,IAAI,EAAEqoC,EAAE5mC,UAAUo/B,MAAM,WAAW,IAAIwH,EAAEroC,KAAKw9D,EAAEx9D,KAAKgL,EAAEq9B,IAAI,IAAI,YAAY,GAAGA,EAAE,EAAE,EAAEroC,KAAKgL,EAAE/E,OAAO8H,KAAK1E,KAAKg/B,EAAE,EAAE,EAAEA,EAAE5mC,UAAUm4B,MAAM,WAAW,OAAO,IAAIyO,EAAEroC,KAAKgL,EAAEQ,QAAQxL,KAAKw9D,EAAE,EAAEn1B,EAAEuhG,OAAO,SAAShkI,GAAG,IAAI,IAAIV,EAAE,GAAGV,EAAE,EAAEA,EAAEoB,EAAEpB,GAAG,EAAEU,EAAEgB,KAAKkH,KAAK,OAAO,IAAIi7B,EAAEnjC,EAAEU,EAAE,EAAEyiC,CAAC,CAA5pD,GAAgqDm1B,EAAE,oEAAoEzyD,EAAE,GAAGwB,EAAE,EAAEA,EAAEixD,EAAEv3D,OAAOsG,IAAIxB,EAAEyyD,EAAEza,WAAWx2C,IAAIA,EAAE,IAAIk6C,EAAE,CAACjjB,UAAU,SAAS6E,GAAG,IAAIziC,EAAEyiC,EAAE7iB,MAAMtgB,EAAEmjC,EAAEovJ,UAAUpvJ,EAAExH,QAAQ,IAAI,IAAIr8B,EAAE,GAAGwG,EAAE,EAAEA,EAAE9F,EAAE8F,GAAG,EAAE,IAAI,IAAIvI,GAAGmD,EAAEoF,IAAI,KAAK,GAAGA,EAAE,EAAE,EAAE,MAAM,IAAIpF,EAAEoF,EAAE,IAAI,KAAK,IAAIA,EAAE,GAAG,EAAE,EAAE,MAAM,EAAEpF,EAAEoF,EAAE,IAAI,KAAK,IAAIA,EAAE,GAAG,EAAE,EAAE,IAAIoC,EAAE,EAAEA,EAAE,GAAGpC,EAAE,IAAIoC,EAAElI,EAAEkI,IAAI5I,EAAE0B,KAAKs3D,EAAE9a,OAAOjgD,IAAI,GAAG,EAAE2K,GAAG,KAAK,IAAIpI,EAAEw4D,EAAE9a,OAAO,IAAI,GAAG19C,EAAE,KAAKR,EAAEyB,OAAO,GAAGzB,EAAE0B,KAAKlB,GAAG,OAAOR,EAAEkI,KAAK,GAAG,EAAE5D,MAAM,SAASu/B,GAAG,IAAIziC,EAAEyiC,EAAEpiC,OAAOf,EAAEs4D,EAAE9a,OAAO,IAAI,GAAGx9C,EAAE,CAAC,IAAIV,EAAE6jC,EAAE7+B,QAAQtE,IAAI,IAAIV,IAAIoB,EAAEpB,EAAE,CAAC,IAAI,IAAIwG,EAAE,GAAGvI,EAAE,EAAE2K,EAAE,EAAEA,EAAExH,EAAEwH,IAAI,GAAGA,EAAE,EAAE,CAAC,IAAIb,EAAExB,EAAEs9B,EAAE0a,WAAW31C,EAAE,KAAKA,EAAE,EAAE,EAAErC,EAAEs9B,EAAE0a,WAAW31C,MAAM,EAAEA,EAAE,EAAE,EAAEpC,EAAEvI,IAAI,IAAI8J,GAAG,GAAG9J,EAAE,EAAE,EAAEA,GAAG,CAAC,OAAO,IAAIuC,EAAEgG,EAAEvI,EAAE,GAAG,OAAOmD,CAAC,CAAv6H,0BCAzOhG,EAAOD,QAAkO,WAAW,aAAa,IAAIiG,EAAE,CAAC,KAAK,SAASA,EAAEV,EAAEmjC,GAAGA,EAAExgC,EAAE3C,EAAE,CAACV,EAAE,WAAW,OAAO/B,CAAC,IAAI,IAAI+B,EAAE6jC,EAAE,MAAMr9B,EAAEq9B,EAAE,MAAM5lC,EAAE,WAAW,SAASmD,EAAEV,EAAEmjC,GAAG,GAAGpgC,MAAM6D,QAAQ5G,KAAKA,EAAE,OAAOlF,KAAKkF,EAAE+C,MAAM6D,QAAQ5G,GAAGA,EAAE,QAAQlF,KAAKgL,EAAE,iBAAiBq9B,EAAEA,EAAE,EAAEroC,KAAKkF,EAAEe,QAAQ,GAAGf,aAAaU,EAAE,OAAO5F,KAAKkF,EAAEA,EAAEsgB,MAAMha,aAAaxL,KAAKgL,EAAE9F,EAAEuyL,WAAW,IAAIjzL,EAAE,IAAIU,aAAa0pF,YAAYpqF,EAAE,IAAI6T,WAAWnT,IAAIA,aAAamT,YAAYnT,aAAawyL,WAAWxyL,aAAayyL,mBAAmBzyL,aAAa0yL,YAAY1yL,aAAa2yL,aAAa3yL,aAAa4yL,YAAY5yL,aAAamiD,aAAaniD,aAAa8/D,cAAc9/D,aAAauhE,gBAAgBjiE,EAAE,IAAI6T,WAAWnT,EAAEogD,OAAOpgD,EAAEghD,WAAWhhD,EAAE0rD,YAAyD,CAA5C,MAAMhrD,GAAG,MAAM,IAAIU,MAAM,mBAAmB,CAAC,IAAI9B,EAAE,MAAM,IAAI8B,MAAM,oBAAoB,IAAI,IAAI0E,EAAExG,EAAEosD,WAAWnuD,EAAE,GAAG+6D,EAAE,EAAEA,EAAExyD,EAAEwyD,IAAI/6D,EAAE+6D,IAAI,IAAIh5D,EAAEg5D,IAAI,GAAGA,EAAE,EAAE,EAAEx9D,KAAKkF,EAAEzC,EAAEzC,KAAKgL,EAAEA,CAAC,CAAC,OAAO/K,OAAOC,eAAe0F,EAAEnE,UAAU,YAAY,CAAC0B,IAAI,WAAW,OAAOnD,KAAKgL,CAAC,EAAEgC,IAAI,SAASpH,GAAG5F,KAAKgL,EAAEpF,CAAC,EAAE1C,YAAW,EAAGD,cAAa,IAAKhD,OAAOC,eAAe0F,EAAEnE,UAAU,QAAQ,CAAC0B,IAAI,WAAW,OAAOnD,KAAKkF,CAAC,EAAEhC,YAAW,EAAGD,cAAa,IAAK2C,EAAEnE,UAAU2F,SAAS,SAASxB,GAAG,OAAOA,EAAEA,EAAE49B,UAAUxjC,MAAMwE,EAAEnB,EAAEmgC,UAAUxjC,KAAK,EAAE4F,EAAEnE,UAAUs7C,aAAa,WAAW,IAAI,IAAIn3C,EAAE5F,KAAKkF,EAAEA,EAAElF,KAAKgL,EAAEq9B,EAAE,IAAIhwB,WAAWnT,GAAGV,EAAE,EAAEA,EAAEU,EAAEV,IAAI6jC,EAAE7jC,GAAGoB,EAAEpB,IAAI,KAAK,GAAGA,EAAE,EAAE,EAAE,IAAI,OAAO6jC,CAAC,EAAEziC,EAAEnE,UAAUO,OAAO,SAAS4D,GAAG,IAAIV,EAAEU,EAAE4f,MAAMha,QAAQ68B,EAAEziC,EAAE6xL,UAAU,GAAGz3L,KAAK6gC,QAAQ7gC,KAAKgL,EAAE,EAAE,IAAI,IAAIxG,EAAE,EAAEA,EAAE6jC,EAAE7jC,IAAI,CAAC,IAAIwG,EAAE9F,EAAEV,IAAI,KAAK,GAAGA,EAAE,EAAE,EAAE,IAAIxE,KAAKkF,EAAElF,KAAKgL,EAAExG,IAAI,IAAIwG,GAAG,IAAIhL,KAAKgL,EAAExG,GAAG,EAAE,CAAC,MAAM,IAAIA,EAAE,EAAEA,EAAE6jC,EAAE7jC,GAAG,EAAExE,KAAKkF,EAAElF,KAAKgL,EAAExG,IAAI,GAAGU,EAAEV,IAAI,GAAG,OAAOxE,KAAKgL,GAAGq9B,EAAEroC,IAAI,EAAE4F,EAAEnE,UAAUo/B,MAAM,WAAW,IAAIj7B,EAAE5F,KAAKgL,EAAEhL,KAAKkF,EAAEU,IAAI,IAAI,YAAY,GAAGA,EAAE,EAAE,EAAE5F,KAAKkF,EAAEe,OAAO8H,KAAK1E,KAAKzD,EAAE,EAAE,EAAEA,EAAEnE,UAAUm4B,MAAM,WAAW,OAAO,IAAIh0B,EAAE5F,KAAKkF,EAAEsG,QAAQxL,KAAKgL,EAAE,EAAEpF,EAAEgkI,OAAO,SAAS1kI,GAAG,IAAI,IAAImjC,EAAE,GAAG7jC,EAAE,EAAEA,EAAEU,EAAEV,GAAG,EAAE6jC,EAAEniC,MAAK,EAAG8E,EAAEo5G,MAAM,OAAO,IAAIx+G,EAAEyiC,EAAEnjC,EAAE,EAAEU,CAAC,CAA9qD,EAAirD,EAAE,KAAK,SAASA,EAAEV,EAAEmjC,GAAGA,EAAExgC,EAAE3C,EAAE,CAAC2nD,EAAE,WAAW,OAAOpqD,CAAC,IAAI,IAAI+B,EAAE6jC,EAAE,MAAMr9B,EAAEq9B,EAAE,MAAM5lC,EAAE,WAAW,SAASmD,EAAEA,GAAG5F,KAAKw9D,EAAE,EAAEx9D,KAAKymD,EAAE,EAAEzmD,KAAK6F,EAAED,EAAE5F,KAAKuL,EAAE3F,QAAG,IAASA,EAAEwE,KAAKxE,EAAEwE,KAAKwvB,QAAQ,IAAIp1B,EAAEA,EAAExE,KAAKiqD,EAAErkD,GAAG,iBAAiBA,EAAEisL,OAAOjsL,EAAEisL,OAAO,CAAC,CAAC,OAAO5xL,OAAOC,eAAe0F,EAAEnE,UAAU,YAAY,CAAC0B,IAAI,WAAW,OAAOnD,KAAKymD,CAAC,EAAEvjD,YAAW,EAAGD,cAAa,IAAK2C,EAAEnE,UAAU2yL,MAAM,SAASxuL,EAAEV,GAAGlF,KAAKuL,OAAE,IAAS3F,EAAEA,EAAEg0B,QAAQ,IAAIp1B,EAAEA,EAAExE,KAAKiqD,EAAE,iBAAiB/kD,EAAEA,EAAE,CAAC,EAAEU,EAAEnE,UAAUkrD,EAAE,SAAS/mD,GAAG,IAAIV,EAAE,iBAAiBU,EAAEoF,EAAEnD,EAAEiB,MAAMlD,GAAGA,EAAE5F,KAAKuL,EAAEvJ,OAAOkD,GAAGlF,KAAKiqD,GAAG/kD,EAAEuyL,SAAS,EAAE7xL,EAAEnE,UAAU8rE,EAAE,SAAS3nE,GAAG,IAAIV,EAAEmjC,EAAEroC,KAAKuL,EAAEia,MAAMxa,EAAEhL,KAAKuL,EAAEksL,UAAUh1L,EAAEzC,KAAKymD,EAAE+W,EAAExyD,GAAG,EAAEhL,KAAKymD,GAAGzhD,GAAGw4D,EAAE53D,EAAEmI,KAAK1E,KAAKm0D,GAAGzvD,KAAKW,KAAK,EAAE8uD,GAAGx9D,KAAKw9D,EAAE,IAAI/6D,EAAE8J,EAAEwB,KAAKy+B,IAAI,EAAExnC,EAAEgG,GAAG,GAAGhG,EAAE,CAAC,IAAI,IAAIoI,EAAE,EAAEA,EAAEpI,EAAEoI,GAAG3K,EAAEzC,KAAK+3L,EAAE1vJ,EAAEj7B,GAAGlI,EAAEmjC,EAAE3yB,OAAO,EAAE1Q,GAAGhF,KAAKuL,EAAEksL,WAAWlrL,CAAC,CAAC,OAAO,IAAI/H,EAAEA,EAAEU,EAAEqH,EAAE,EAAE3G,EAAEnE,UAAUs2L,EAAE,SAASnyL,EAAEV,GAAG,MAAM,IAAIoB,MAAM,kBAAkB,EAAEV,CAAC,CAAhxB,EAAmxB,EAAE,KAAK,SAASA,EAAEV,EAAEmjC,GAAGA,EAAExgC,EAAE3C,EAAE,CAAClB,EAAE,WAAW,OAAOw5D,CAAC,IAAI,IAAIh5D,EAAEwG,EAAEq9B,EAAE,MAAM5lC,GAAG+B,EAAE,SAASoB,EAAEV,GAAG,OAAOV,EAAEvE,OAAO8H,gBAAgB,CAACC,UAAU,cAAcC,OAAO,SAASrC,EAAEV,GAAGU,EAAEoC,UAAU9C,CAAC,GAAG,SAASU,EAAEV,GAAG,IAAI,IAAImjC,KAAKnjC,EAAEjF,OAAOwB,UAAU6B,eAAeC,KAAK2B,EAAEmjC,KAAKziC,EAAEyiC,GAAGnjC,EAAEmjC,GAAG,GAAGziC,EAAEV,EAAE,EAAE,SAASU,EAAEV,GAAG,SAASmjC,IAAIroC,KAAKoI,YAAYxC,CAAC,CAACpB,EAAEoB,EAAEV,GAAGU,EAAEnE,UAAU,OAAOyD,EAAEjF,OAAOuC,OAAO0C,IAAImjC,EAAE5mC,UAAUyD,EAAEzD,UAAU,IAAI4mC,EAAE,GAAGm1B,EAAE,SAAS53D,GAAG,SAASV,EAAEA,GAAG,IAAImjC,EAAEziC,EAAErC,KAAKvD,KAAKkF,IAAIlF,KAAK,OAAOqoC,EAAEoe,EAAE,GAAGpe,EAAExiC,EAAEX,EAAEA,GAAG,iBAAiBA,EAAEgkF,YAAY7gD,EAAEoe,EAAEvhD,EAAEgkF,WAAW7gD,EAAE+rJ,MAAMlvL,EAAEA,EAAEkF,UAAK,EAAOlF,EAAEA,EAAE2sL,YAAO,GAAQxpJ,CAAC,CAAC,OAAO5lC,EAAEyC,EAAEU,GAAG3F,OAAOC,eAAegF,EAAEzD,UAAU,YAAY,CAAC0B,IAAI,WAAW,OAAOnD,KAAKymD,CAAC,EAAEvjD,YAAW,EAAGD,cAAa,IAAKiC,EAAEzD,UAAU2yL,MAAM,SAASlvL,EAAEmjC,GAAGziC,EAAEnE,UAAU2yL,MAAM7wL,KAAKvD,KAAKkF,EAAEmjC,GAAGroC,KAAKylK,GAAG,EAAEvgK,EAAEzD,UAAUgkD,OAAO,SAAS7/C,GAAG,OAAO5F,KAAK2sD,EAAE/mD,GAAG5F,KAAKutE,IAAIvtE,IAAI,EAAEkF,EAAEzD,UAAUozL,SAAS,SAASjvL,GAAG,OAAOA,GAAG5F,KAAK2sD,EAAE/mD,GAAG5F,KAAKoF,GAAG,EAAEF,EAAEzD,UAAUgkK,EAAE,WAAW,MAAM,IAAIn/J,MAAM,kBAAkB,EAAEpB,EAAEzD,UAAU2D,EAAE,WAAW,MAAM,IAAIkB,MAAM,kBAAkB,EAAEpB,CAAC,CAAxmB,CAA0mB8F,EAAE6hD,EAAE,EAAE,KAAK,SAASjnD,EAAEV,EAAEmjC,GAAGA,EAAExgC,EAAE3C,EAAE,CAACu5F,EAAE,WAAW,OAAOjhC,CAAC,IAAI,IAAIh5D,EAAEwG,EAAE,oBAAoB0wG,WAAWA,UAAUC,UAAUD,UAAUC,UAAUx4D,cAAc,GAAG1gD,GAAG+B,EAAE8K,UAAU,aAAa0+D,KAAKhjE,IAAI,IAAI,GAAG,IAAIumD,MAAM/sD,IAAIA,EAAE8K,UAAU,wBAAwB0+D,KAAKhjE,IAAI,IAAI,GAAG,KAAKumD,MAAM/sD,IAAIA,GAAGA,GAAG,SAASg5D,EAAE53D,EAAEV,GAAG,OAAM,IAAKzC,KAAKyC,IAAI,MAAMU,EAAEnD,EAAEyC,EAAE,OAAOU,EAAEnD,GAAGyC,EAAE,MAAMU,EAAEnD,EAAEyC,EAAE,OAAOU,EAAEnD,GAAGyC,EAAEzC,IAAIyC,GAAG,CAAC,EAAE,KAAK,SAASU,EAAEV,EAAEmjC,GAAGA,EAAExgC,EAAE3C,EAAE,CAAC7B,EAAE,WAAW,OAAO2H,CAAC,IAAI,IAAIxG,EAAE6jC,EAAE,MAAMr9B,EAAE,CAACw4B,UAAU,SAAS59B,GAAG,IAAI,IAAIV,EAAEU,EAAE6xL,UAAUpvJ,EAAEziC,EAAE4f,MAAMhhB,EAAE,GAAGwG,EAAE,EAAEA,EAAE9F,EAAE8F,IAAI,CAAC,IAAIvI,EAAE4lC,EAAEr9B,IAAI,KAAK,GAAGA,EAAE,EAAE,EAAE,IAAIxG,EAAE0B,MAAMzD,IAAI,GAAG2E,SAAS,KAAK5C,EAAE0B,MAAM,GAAGzD,GAAG2E,SAAS,IAAI,CAAC,OAAO5C,EAAEkI,KAAK,GAAG,EAAE5D,MAAM,SAASlD,GAAG,IAAIV,EAAEU,EAAEK,OAAO,GAAGf,EAAE,GAAG,EAAE,MAAM,IAAIoB,MAAM,iCAAiC,IAAI,iBAAiBi+D,KAAK3+D,GAAG,MAAM,IAAIU,MAAM,uBAAuBV,GAAG,IAAI,IAAIyiC,EAAE,GAAGr9B,EAAE,EAAEA,EAAE9F,EAAE8F,GAAG,EAAEq9B,EAAEr9B,IAAI,IAAIsE,SAAS1J,EAAE6pF,OAAOzkF,EAAE,GAAG,KAAK,GAAGA,EAAE,EAAE,EAAE,OAAO,IAAIxG,EAAEA,EAAE6jC,EAAEnjC,EAAE,EAAE,EAAE,EAAE,KAAK,SAASU,EAAEV,EAAEmjC,GAAGA,EAAExgC,EAAE3C,EAAE,CAACxC,EAAE,WAAW,OAAOsI,CAAC,IAAI,IAAIxG,EAAE6jC,EAAE,MAAMr9B,EAAE,CAACw4B,UAAU,SAAS59B,GAAG,IAAI,IAAIV,EAAEU,EAAE6xL,UAAUpvJ,EAAEziC,EAAE4f,MAAMhhB,EAAE,GAAGwG,EAAE,EAAEA,EAAE9F,EAAE8F,IAAI,CAAC,IAAIvI,EAAE4lC,EAAEr9B,IAAI,KAAK,GAAGA,EAAE,EAAE,EAAE,IAAIxG,EAAE0B,KAAKgC,OAAOm8D,aAAa5hE,GAAG,CAAC,OAAO+B,EAAEkI,KAAK,GAAG,EAAE5D,MAAM,SAASlD,GAAG,IAAI,IAAIV,EAAEU,EAAEK,OAAOoiC,EAAE,GAAGr9B,EAAE,EAAEA,EAAE9F,EAAE8F,IAAIq9B,EAAEr9B,IAAI,KAAK,IAAIpF,EAAEm9C,WAAW/3C,KAAK,GAAGA,EAAE,EAAE,EAAE,OAAO,IAAIxG,EAAEA,EAAE6jC,EAAEnjC,EAAE,EAAE,EAAE,KAAK,SAASU,EAAEV,EAAEmjC,GAAGA,EAAExgC,EAAE3C,EAAE,CAAC2C,EAAE,WAAW,OAAOmD,CAAC,IAAI,IAAIxG,EAAE6jC,EAAE,MAAMr9B,EAAE,CAACw4B,UAAU,SAAS59B,GAAG,IAAI,OAAO01G,mBAAmB08E,OAAOxzL,EAAE9B,EAAE8gC,UAAU59B,IAAqD,CAAhD,MAAMA,GAAG,MAAM,IAAIU,MAAM,uBAAuB,CAAC,EAAEwC,MAAM,SAASlD,GAAG,OAAOpB,EAAE9B,EAAEoG,MAAM+oG,SAASC,mBAAmBlsG,IAAI,EAAE,EAAE,KAAK,SAASA,EAAEV,EAAEmjC,GAAGA,EAAExgC,EAAE3C,EAAE,CAACk/G,EAAE,WAAW,OAAOp5G,CAAC,IAAI,IAAIxG,EAAE6jC,EAAE,MAAUr9B,EAAE,WAAW,GAAG,oBAAoB+rD,OAAO,CAAC,IAAInxD,EAAEmxD,OAAO3V,QAAQ2V,OAAOgtD,SAAS,IAAIn+G,EAAE,CAAC,IAAG,EAAGpB,EAAEi6F,GAAG,IAAI,IAAI,OAAOx8F,QAAQm7G,KAAK,kGAAkG,WAAW,OAAOrvG,KAAK8iD,MAAM,IAAI9iD,KAAK67H,UAAU,GAAG,EAAE,MAAM,IAAItjI,MAAM,0BAA0B,CAAC,OAAO,WAAW,OAAOV,EAAE+7C,gBAAgB,IAAI0F,YAAY,IAAI,EAAE,CAAC,CAAC,YAAO,IAAShf,EAAEljC,GAAGkjC,EAAEljC,EAAEi8C,OAAO,WAAW,OAAO/Y,EAAEljC,EAAEi8C,OAAOS,YAAY,GAAGi1E,aAAa,EAAE,WAAW,OAAO,qBAA8B,GAAGA,aAAa,CAAC,CAA9hB,EAAiiB,GAAG5xH,EAAE,CAAC,EAAE,SAASmjC,EAAE7jC,GAAG,IAAIwG,EAAE9F,EAAEV,GAAG,QAAG,IAASwG,EAAE,OAAOA,EAAErL,QAAQ,IAAI8C,EAAEyC,EAAEV,GAAG,CAAC7E,QAAQ,CAAC,GAAG,OAAOiG,EAAEpB,GAAG/B,EAAEA,EAAE9C,QAAQ0oC,GAAG5lC,EAAE9C,OAAO,CAAC0oC,EAAExgC,EAAE,SAASjC,EAAEV,GAAG,IAAI,IAAIV,KAAKU,EAAEmjC,EAAE5lC,EAAEyC,EAAEV,KAAK6jC,EAAE5lC,EAAEmD,EAAEpB,IAAIvE,OAAOC,eAAe0F,EAAEpB,EAAE,CAACtB,YAAW,EAAGC,IAAI+B,EAAEV,IAAI,EAAE6jC,EAAEljC,EAAE,WAAW,GAAG,iBAAiB0sE,WAAW,OAAOA,WAAW,IAAI,OAAO7xE,MAAM,IAAI8oL,SAAS,cAAb,EAA+E,CAAjD,MAAMljL,GAAG,GAAG,iBAAiBmxD,OAAO,OAAOA,MAAM,CAAC,CAA7J,GAAiK1uB,EAAE5lC,EAAE,SAASmD,EAAEV,GAAG,OAAOjF,OAAOwB,UAAU6B,eAAeC,KAAKqC,EAAEV,EAAE,EAAEmjC,EAAEA,EAAE,SAASziC,GAAG,oBAAoBF,QAAQA,OAAOi6H,aAAa1/H,OAAOC,eAAe0F,EAAEF,OAAOi6H,YAAY,CAACx/H,MAAM,WAAWF,OAAOC,eAAe0F,EAAE,IAAI,CAACzF,OAAM,GAAI,EAAE,IAAIqE,EAAE,CAAC,EAAE,OAAO,WAAW6jC,EAAEA,EAAE7jC,GAAG6jC,EAAExgC,EAAErD,EAAE,CAACw4C,UAAU,WAAW,OAAO35C,CAAC,IAAI,IAAIuC,EAAEV,EAAEmjC,EAAE,MAAMr9B,EAAEq9B,EAAE,MAAM5lC,GAAGmD,EAAE,SAASV,EAAEmjC,GAAG,OAAOziC,EAAE3F,OAAO8H,gBAAgB,CAACC,UAAU,cAAcC,OAAO,SAASrC,EAAEV,GAAGU,EAAEoC,UAAU9C,CAAC,GAAG,SAASU,EAAEV,GAAG,IAAI,IAAImjC,KAAKnjC,EAAEjF,OAAOwB,UAAU6B,eAAeC,KAAK2B,EAAEmjC,KAAKziC,EAAEyiC,GAAGnjC,EAAEmjC,GAAG,GAAGnjC,EAAEmjC,EAAE,EAAE,SAASnjC,EAAEmjC,GAAG,SAAS7jC,IAAIxE,KAAKoI,YAAYlD,CAAC,CAACU,EAAEV,EAAEmjC,GAAGnjC,EAAEzD,UAAU,OAAO4mC,EAAEpoC,OAAOuC,OAAO6lC,IAAI7jC,EAAE/C,UAAU4mC,EAAE5mC,UAAU,IAAI+C,EAAE,GAAGg5D,EAAE,IAAIxyD,EAAExG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,KAAKQ,EAAE,IAAIgG,EAAExG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,KAAK+H,EAAE,IAAIvB,EAAExG,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,IAAI4I,EAAE,IAAIpC,EAAExG,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,KAAKuG,EAAE,IAAIC,EAAExG,EAAE,CAAC,EAAE,WAAW,WAAW,WAAW,aAAaiiD,EAAE,IAAIz7C,EAAExG,EAAE,CAAC,WAAW,WAAW,WAAW,WAAW,IAAI,SAASqB,EAAED,EAAEV,EAAEmjC,GAAG,OAAOziC,EAAEV,EAAEmjC,CAAC,CAAC,SAASo2D,EAAE74F,EAAEV,EAAEmjC,GAAG,OAAOziC,EAAEV,GAAGU,EAAEyiC,CAAC,CAAC,SAASxgC,EAAEjC,EAAEV,EAAEmjC,GAAG,OAAOziC,GAAGV,GAAGmjC,CAAC,CAAC,SAAS98B,EAAE3F,EAAEV,EAAEmjC,GAAG,OAAOziC,EAAEyiC,EAAEnjC,GAAGmjC,CAAC,CAAC,SAASpjC,EAAEW,EAAEV,EAAEmjC,GAAG,OAAOziC,GAAGV,GAAGmjC,EAAE,CAAC,SAASvgC,EAAElC,EAAEV,GAAG,OAAOU,GAAGV,EAAEU,IAAI,GAAGV,CAAC,CAAC,IAAI7B,EAAE,SAASuC,GAAG,SAASV,EAAEA,GAAG,IAAImjC,EAAEziC,EAAErC,KAAKvD,KAAKkF,IAAIlF,KAAK,OAAOqoC,EAAEm/D,EAAE,IAAIx8F,EAAExG,EAAE,CAAC,WAAW,WAAW,WAAW,UAAU,aAAa6jC,EAAExiC,EAAEX,EAAEA,QAAG,IAASA,EAAE6wB,OAAOsS,EAAEm/D,EAAEtiG,EAAE6wB,KAAK6D,SAASyO,CAAC,CAAC,OAAO5lC,EAAEyC,EAAEU,GAAGV,EAAEzD,UAAUgkK,EAAE,WAAWzlK,KAAKwnG,EAAE,IAAIx8F,EAAExG,EAAE,CAAC,WAAW,WAAW,WAAW,UAAU,YAAY,EAAEU,EAAEzD,UAAUs2L,EAAE,SAASnyL,EAAEV,GAAG,IAAI,IAAImjC,EAAE,EAAEA,EAAE,GAAGA,IAAI,CAAC,IAAI7jC,EAAEU,EAAEmjC,EAAEr9B,EAAEpF,EAAEpB,GAAGoB,EAAEpB,GAAG,UAAUwG,GAAG,EAAEA,IAAI,IAAI,YAAYA,GAAG,GAAGA,IAAI,EAAE,CAAC,IAAIvI,EAAEY,EAAEX,EAAEyC,EAAE8kD,EAAE0C,EAAE4gB,EAAEwqH,EAAEhrI,EAAEq3D,EAAEqhD,EAAErgK,EAAEpF,KAAKwnG,EAAEhiF,MAAMsqE,EAAE/kF,EAAEya,MAAMgiF,EAAE/gD,EAAEjhC,MAAMpZ,EAAEoxD,EAAEh4C,MAAMqnC,EAAE7nD,EAAEwgB,MAAMwnC,EAAEzgD,EAAEiZ,MAAM7iB,EAAEyK,EAAEoY,MAAmD,IAA7CmnC,EAAElqD,EAAE2C,EAAE,GAAGmoE,EAAElqE,EAAE+B,EAAE,GAAG2yL,EAAEr1L,EAAE0C,EAAE,GAAG2nD,EAAE5nD,EAAEC,EAAE,GAAGg/G,EAAEn6D,EAAE7kD,EAAE,GAAOijC,EAAE,EAAEA,EAAE,GAAGA,GAAG,EAAEo9H,EAAEhjK,EAAEmD,EAAEV,EAAEkH,EAAEi8B,IAAI,EAAEo9H,GAAGp9H,EAAE,GAAGxiC,EAAExC,EAAEX,EAAEyC,GAAG2qF,EAAE,GAAGznD,EAAE,GAAGo2D,EAAEp7F,EAAEX,EAAEyC,GAAG2qF,EAAE,GAAGznD,EAAE,GAAGxgC,EAAExE,EAAEX,EAAEyC,GAAG2qF,EAAE,GAAGznD,EAAE,GAAG98B,EAAElI,EAAEX,EAAEyC,GAAG2qF,EAAE,GAAG7qF,EAAE5B,EAAEX,EAAEyC,GAAG2qF,EAAE,GAAG21E,GAAGA,EAAE39J,EAAE29J,GAAG,EAAEz4G,EAAE3kB,KAAK4hB,EAAE,EAAExnD,EAAEwnD,EAAEA,EAAE9kD,EAAEA,EAAE2C,EAAEpF,EAAE,IAAIA,EAAEW,EAAEA,EAAEoiK,EAAEA,EAAE94G,EAAE/mD,EAAEV,EAAE2nD,EAAExkB,IAAI,EAAEo9H,GAAGp9H,EAAE,GAAGpjC,EAAEsoE,EAAEwqH,EAAEhrI,GAAGy6C,EAAE,GAAGn/D,EAAE,GAAG98B,EAAEgiE,EAAEwqH,EAAEhrI,GAAGy6C,EAAE,GAAGn/D,EAAE,GAAGxgC,EAAE0lE,EAAEwqH,EAAEhrI,GAAGy6C,EAAE,GAAGn/D,EAAE,GAAGo2D,EAAElxB,EAAEwqH,EAAEhrI,GAAGy6C,EAAE,GAAG3hG,EAAE0nE,EAAEwqH,EAAEhrI,GAAGy6C,EAAE,GAAGi+D,GAAGA,EAAE39J,EAAE29J,GAAG,EAAE9iK,EAAE0lC,KAAK+7E,EAAE,EAAEz3D,EAAEy3D,EAAEA,EAAEr3D,EAAEA,EAAEjlD,EAAEiwL,EAAE,IAAIA,EAAExqH,EAAEA,EAAEk4F,EAAEA,EAAErgK,EAAE,GAAG1C,EAAEqqD,EAAE,EAAE3nD,EAAE,GAAGA,EAAE,GAAGD,EAAEi/G,EAAE,EAAEh/G,EAAE,GAAGA,EAAE,GAAG6kD,EAAE0C,EAAE,EAAEvnD,EAAE,GAAGA,EAAE,GAAG3C,EAAE8qE,EAAE,EAAEnoE,EAAE,GAAGA,EAAE,GAAG/B,EAAE00L,EAAE,EAAE3yL,EAAE,GAAGqgK,CAAC,EAAEvgK,EAAEzD,UAAU2D,EAAE,WAAW,IAAIQ,EAAE5F,KAAKuL,EAAErG,EAAEU,EAAE4f,MAAM6iB,EAAE,EAAEroC,KAAKiqD,EAAEzlD,EAAE,EAAEoB,EAAE6xL,UAAUvyL,EAAEV,IAAI,IAAI,KAAK,GAAGA,EAAE,GAAGU,EAAE,IAAIV,EAAE,KAAK,GAAG,IAAI,UAAU6jC,GAAG,EAAEA,IAAI,IAAI,YAAYA,GAAG,GAAGA,IAAI,GAAGziC,EAAE6xL,UAAU,GAAGvyL,EAAEe,OAAO,GAAGjG,KAAKutE,IAAI,IAAI,IAAIviE,EAAEhL,KAAKwnG,EAAE/kG,EAAEuI,EAAEwa,MAAMg4C,EAAE,EAAEA,EAAE,EAAEA,IAAI,CAAC,IAAIx4D,EAAEvC,EAAE+6D,GAAG/6D,EAAE+6D,GAAG,UAAUx4D,GAAG,EAAEA,IAAI,IAAI,YAAYA,GAAG,GAAGA,IAAI,EAAE,CAAC,OAAOgG,CAAC,EAAE9F,EAAEzD,UAAUm4B,MAAM,WAAW,OAAO,IAAI10B,EAAE,CAAC6wB,KAAK/1B,KAAKwnG,EAAEte,UAAUlpF,KAAKymD,EAAEr8C,KAAKpK,KAAKuL,EAAEsmL,OAAO7xL,KAAKiqD,GAAG,EAAE/kD,EAAE6wB,KAAK,SAASnwB,EAAEyiC,GAAG,OAAO,IAAInjC,EAAEmjC,GAAGwsJ,SAASjvL,EAAE,EAAEV,CAAC,CAAn6C,CAAq6CA,EAAElB,EAAE,CAA98F,GAAk9FQ,CAAC,CAApyS,0BCAzO5E,EAAOD,QAAkO,WAAW,aAAa,IAAIiG,EAAE,CAAC,KAAK,SAASA,EAAEV,EAAEmjC,GAAGA,EAAExgC,EAAE3C,EAAE,CAACV,EAAE,WAAW,OAAO/B,CAAC,IAAI,IAAIuI,EAAEq9B,EAAE,MAAM7jC,EAAE6jC,EAAE,MAAM5lC,EAAE,WAAW,SAASmD,EAAEV,EAAEmjC,GAAG,GAAGpgC,MAAM6D,QAAQ5G,KAAKA,EAAE,OAAOlF,KAAKkF,EAAE+C,MAAM6D,QAAQ5G,GAAGA,EAAE,QAAQlF,KAAKgL,EAAE,iBAAiBq9B,EAAEA,EAAE,EAAEroC,KAAKkF,EAAEe,QAAQ,GAAGf,aAAaU,EAAE,OAAO5F,KAAKkF,EAAEA,EAAEsgB,MAAMha,aAAaxL,KAAKgL,EAAE9F,EAAEuyL,WAAW,IAAIzsL,EAAE,IAAI9F,aAAa0pF,YAAY5jF,EAAE,IAAIqN,WAAWnT,IAAIA,aAAamT,YAAYnT,aAAawyL,WAAWxyL,aAAayyL,mBAAmBzyL,aAAa0yL,YAAY1yL,aAAa2yL,aAAa3yL,aAAa4yL,YAAY5yL,aAAamiD,aAAaniD,aAAa8/D,cAAc9/D,aAAauhE,gBAAgBz7D,EAAE,IAAIqN,WAAWnT,EAAEogD,OAAOpgD,EAAEghD,WAAWhhD,EAAE0rD,YAAyD,CAA5C,MAAMhrD,GAAG,MAAM,IAAIU,MAAM,mBAAmB,CAAC,IAAI0E,EAAE,MAAM,IAAI1E,MAAM,oBAAoB,IAAI,IAAI9B,EAAEwG,EAAE4lD,WAAWnuD,EAAE,GAAG+6D,EAAE,EAAEA,EAAEh5D,EAAEg5D,IAAI/6D,EAAE+6D,IAAI,IAAIxyD,EAAEwyD,IAAI,GAAGA,EAAE,EAAE,EAAEx9D,KAAKkF,EAAEzC,EAAEzC,KAAKgL,EAAExG,CAAC,CAAC,OAAOvE,OAAOC,eAAe0F,EAAEnE,UAAU,YAAY,CAAC0B,IAAI,WAAW,OAAOnD,KAAKgL,CAAC,EAAEgC,IAAI,SAASpH,GAAG5F,KAAKgL,EAAEpF,CAAC,EAAE1C,YAAW,EAAGD,cAAa,IAAKhD,OAAOC,eAAe0F,EAAEnE,UAAU,QAAQ,CAAC0B,IAAI,WAAW,OAAOnD,KAAKkF,CAAC,EAAEhC,YAAW,EAAGD,cAAa,IAAK2C,EAAEnE,UAAU2F,SAAS,SAASxB,GAAG,OAAOA,EAAEA,EAAE49B,UAAUxjC,MAAMgL,EAAE3H,EAAEmgC,UAAUxjC,KAAK,EAAE4F,EAAEnE,UAAUs7C,aAAa,WAAW,IAAI,IAAIn3C,EAAE5F,KAAKkF,EAAEA,EAAElF,KAAKgL,EAAEq9B,EAAE,IAAIhwB,WAAWnT,GAAG8F,EAAE,EAAEA,EAAE9F,EAAE8F,IAAIq9B,EAAEr9B,GAAGpF,EAAEoF,IAAI,KAAK,GAAGA,EAAE,EAAE,EAAE,IAAI,OAAOq9B,CAAC,EAAEziC,EAAEnE,UAAUO,OAAO,SAAS4D,GAAG,IAAIV,EAAEU,EAAE4f,MAAMha,QAAQ68B,EAAEziC,EAAE6xL,UAAU,GAAGz3L,KAAK6gC,QAAQ7gC,KAAKgL,EAAE,EAAE,IAAI,IAAIA,EAAE,EAAEA,EAAEq9B,EAAEr9B,IAAI,CAAC,IAAIxG,EAAEU,EAAE8F,IAAI,KAAK,GAAGA,EAAE,EAAE,EAAE,IAAIhL,KAAKkF,EAAElF,KAAKgL,EAAEA,IAAI,IAAIxG,GAAG,IAAIxE,KAAKgL,EAAEA,GAAG,EAAE,CAAC,MAAM,IAAIA,EAAE,EAAEA,EAAEq9B,EAAEr9B,GAAG,EAAEhL,KAAKkF,EAAElF,KAAKgL,EAAEA,IAAI,GAAG9F,EAAE8F,IAAI,GAAG,OAAOhL,KAAKgL,GAAGq9B,EAAEroC,IAAI,EAAE4F,EAAEnE,UAAUo/B,MAAM,WAAW,IAAIj7B,EAAE5F,KAAKgL,EAAEhL,KAAKkF,EAAEU,IAAI,IAAI,YAAY,GAAGA,EAAE,EAAE,EAAE5F,KAAKkF,EAAEe,OAAO8H,KAAK1E,KAAKzD,EAAE,EAAE,EAAEA,EAAEnE,UAAUm4B,MAAM,WAAW,OAAO,IAAIh0B,EAAE5F,KAAKkF,EAAEsG,QAAQxL,KAAKgL,EAAE,EAAEpF,EAAEgkI,OAAO,SAAS1kI,GAAG,IAAI,IAAImjC,EAAE,GAAGr9B,EAAE,EAAEA,EAAE9F,EAAE8F,GAAG,EAAEq9B,EAAEniC,MAAK,EAAG1B,EAAE4/G,MAAM,OAAO,IAAIx+G,EAAEyiC,EAAEnjC,EAAE,EAAEU,CAAC,CAA9qD,EAAirD,EAAE,KAAK,SAASA,EAAEV,EAAEmjC,GAAGA,EAAExgC,EAAE3C,EAAE,CAAC2nD,EAAE,WAAW,OAAOpqD,CAAC,IAAI,IAAIuI,EAAEq9B,EAAE,MAAM7jC,EAAE6jC,EAAE,MAAM5lC,EAAE,WAAW,SAASmD,EAAEA,GAAG5F,KAAKw9D,EAAE,EAAEx9D,KAAKymD,EAAE,EAAEzmD,KAAK6F,EAAED,EAAE5F,KAAKuL,EAAE3F,QAAG,IAASA,EAAEwE,KAAKxE,EAAEwE,KAAKwvB,QAAQ,IAAI5uB,EAAExG,EAAExE,KAAK2sD,EAAE/mD,GAAG,iBAAiBA,EAAEisL,OAAOjsL,EAAEisL,OAAO,CAAC,CAAC,OAAO5xL,OAAOC,eAAe0F,EAAEnE,UAAU,YAAY,CAAC0B,IAAI,WAAW,OAAOnD,KAAKymD,CAAC,EAAEvjD,YAAW,EAAGD,cAAa,IAAK2C,EAAEnE,UAAU2yL,MAAM,SAASxuL,EAAEV,GAAGlF,KAAKuL,OAAE,IAAS3F,EAAEA,EAAEg0B,QAAQ,IAAI5uB,EAAExG,EAAExE,KAAK2sD,EAAE,iBAAiBznD,EAAEA,EAAE,CAAC,EAAEU,EAAEnE,UAAUwoD,EAAE,SAASrkD,GAAG,IAAIV,EAAE,iBAAiBU,EAAEpB,EAAEqD,EAAEiB,MAAMlD,GAAGA,EAAE5F,KAAKuL,EAAEvJ,OAAOkD,GAAGlF,KAAK2sD,GAAGznD,EAAEuyL,SAAS,EAAE7xL,EAAEnE,UAAUs2L,EAAE,SAASnyL,GAAG,IAAIV,EAAEmjC,EAAEroC,KAAKuL,EAAEia,MAAMhhB,EAAExE,KAAKuL,EAAEksL,UAAUh1L,EAAEzC,KAAKymD,EAAE+W,EAAEh5D,GAAG,EAAExE,KAAKymD,GAAGzhD,GAAGw4D,EAAE53D,EAAEmI,KAAK1E,KAAKm0D,GAAGzvD,KAAKW,KAAK,EAAE8uD,GAAGx9D,KAAKw9D,EAAE,IAAI/6D,EAAE8J,EAAEwB,KAAKy+B,IAAI,EAAExnC,EAAER,GAAG,GAAGQ,EAAE,CAAC,IAAI,IAAIoI,EAAE,EAAEA,EAAEpI,EAAEoI,GAAG3K,EAAEzC,KAAKutE,EAAEllC,EAAEj7B,GAAGlI,EAAEmjC,EAAE3yB,OAAO,EAAE1Q,GAAGhF,KAAKuL,EAAEksL,WAAWlrL,CAAC,CAAC,OAAO,IAAIvB,EAAExG,EAAEU,EAAEqH,EAAE,EAAE3G,EAAEnE,UAAU8rE,EAAE,SAAS3nE,EAAEV,GAAG,MAAM,IAAIoB,MAAM,kBAAkB,EAAEV,CAAC,CAAhxB,EAAmxB,EAAE,KAAK,SAASA,EAAEV,EAAEmjC,GAAGA,EAAExgC,EAAE3C,EAAE,CAAClB,EAAE,WAAW,OAAOw5D,CAAC,IAAI,IAAIxyD,EAAExG,EAAE6jC,EAAE,MAAM5lC,GAAGuI,EAAE,SAASpF,EAAEV,GAAG,OAAO8F,EAAE/K,OAAO8H,gBAAgB,CAACC,UAAU,cAAcC,OAAO,SAASrC,EAAEV,GAAGU,EAAEoC,UAAU9C,CAAC,GAAG,SAASU,EAAEV,GAAG,IAAI,IAAImjC,KAAKnjC,EAAEjF,OAAOwB,UAAU6B,eAAeC,KAAK2B,EAAEmjC,KAAKziC,EAAEyiC,GAAGnjC,EAAEmjC,GAAG,GAAGziC,EAAEV,EAAE,EAAE,SAASU,EAAEV,GAAG,SAASmjC,IAAIroC,KAAKoI,YAAYxC,CAAC,CAACoF,EAAEpF,EAAEV,GAAGU,EAAEnE,UAAU,OAAOyD,EAAEjF,OAAOuC,OAAO0C,IAAImjC,EAAE5mC,UAAUyD,EAAEzD,UAAU,IAAI4mC,EAAE,GAAGm1B,EAAE,SAAS53D,GAAG,SAASV,EAAEA,GAAG,IAAImjC,EAAEziC,EAAErC,KAAKvD,KAAKkF,IAAIlF,KAAK,OAAOqoC,EAAEoe,EAAE,GAAGpe,EAAExiC,EAAEX,EAAEA,GAAG,iBAAiBA,EAAEgkF,YAAY7gD,EAAEoe,EAAEvhD,EAAEgkF,WAAW7gD,EAAE+rJ,MAAMlvL,EAAEA,EAAEkF,UAAK,EAAOlF,EAAEA,EAAE2sL,YAAO,GAAQxpJ,CAAC,CAAC,OAAO5lC,EAAEyC,EAAEU,GAAG3F,OAAOC,eAAegF,EAAEzD,UAAU,YAAY,CAAC0B,IAAI,WAAW,OAAOnD,KAAKymD,CAAC,EAAEvjD,YAAW,EAAGD,cAAa,IAAKiC,EAAEzD,UAAU2yL,MAAM,SAASlvL,EAAEmjC,GAAGziC,EAAEnE,UAAU2yL,MAAM7wL,KAAKvD,KAAKkF,EAAEmjC,GAAGroC,KAAKylK,GAAG,EAAEvgK,EAAEzD,UAAUgkD,OAAO,SAAS7/C,GAAG,OAAO5F,KAAKiqD,EAAErkD,GAAG5F,KAAK+3L,IAAI/3L,IAAI,EAAEkF,EAAEzD,UAAUozL,SAAS,SAASjvL,GAAG,OAAOA,GAAG5F,KAAKiqD,EAAErkD,GAAG5F,KAAKoF,GAAG,EAAEF,EAAEzD,UAAUgkK,EAAE,WAAW,MAAM,IAAIn/J,MAAM,kBAAkB,EAAEpB,EAAEzD,UAAU2D,EAAE,WAAW,MAAM,IAAIkB,MAAM,kBAAkB,EAAEpB,CAAC,CAAxmB,CAA0mBV,EAAEqoD,EAAE,EAAE,KAAK,SAASjnD,EAAEV,EAAEmjC,GAAGA,EAAExgC,EAAE3C,EAAE,CAACu5F,EAAE,WAAW,OAAOjhC,CAAC,IAAI,IAAIxyD,EAAExG,EAAE,oBAAoBk3G,WAAWA,UAAUC,UAAUD,UAAUC,UAAUx4D,cAAc,GAAG1gD,GAAGuI,EAAEsE,UAAU,aAAa0+D,KAAKxpE,IAAI,IAAI,GAAG,IAAI+sD,MAAMvmD,IAAIA,EAAEsE,UAAU,wBAAwB0+D,KAAKxpE,IAAI,IAAI,GAAG,KAAK+sD,MAAMvmD,IAAIA,GAAGA,GAAG,SAASwyD,EAAE53D,EAAEV,GAAG,OAAM,IAAKzC,KAAKyC,IAAI,MAAMU,EAAEnD,EAAEyC,EAAE,OAAOU,EAAEnD,GAAGyC,EAAE,MAAMU,EAAEnD,EAAEyC,EAAE,OAAOU,EAAEnD,GAAGyC,EAAEzC,IAAIyC,GAAG,CAAC,EAAE,KAAK,SAASU,EAAEV,EAAEmjC,GAAGA,EAAExgC,EAAE3C,EAAE,CAAC7B,EAAE,WAAW,OAAOmB,CAAC,IAAI,IAAIwG,EAAEq9B,EAAE,MAAM7jC,EAAE,CAACg/B,UAAU,SAAS59B,GAAG,IAAI,IAAIV,EAAEU,EAAE6xL,UAAUpvJ,EAAEziC,EAAE4f,MAAMxa,EAAE,GAAGxG,EAAE,EAAEA,EAAEU,EAAEV,IAAI,CAAC,IAAI/B,EAAE4lC,EAAE7jC,IAAI,KAAK,GAAGA,EAAE,EAAE,EAAE,IAAIwG,EAAE9E,MAAMzD,IAAI,GAAG2E,SAAS,KAAK4D,EAAE9E,MAAM,GAAGzD,GAAG2E,SAAS,IAAI,CAAC,OAAO4D,EAAE0B,KAAK,GAAG,EAAE5D,MAAM,SAASlD,GAAG,IAAIV,EAAEU,EAAEK,OAAO,GAAGf,EAAE,GAAG,EAAE,MAAM,IAAIoB,MAAM,iCAAiC,IAAI,iBAAiBi+D,KAAK3+D,GAAG,MAAM,IAAIU,MAAM,uBAAuBV,GAAG,IAAI,IAAIyiC,EAAE,GAAG7jC,EAAE,EAAEA,EAAEU,EAAEV,GAAG,EAAE6jC,EAAE7jC,IAAI,IAAI8K,SAAS1J,EAAE6pF,OAAOjrF,EAAE,GAAG,KAAK,GAAGA,EAAE,EAAE,EAAE,OAAO,IAAIwG,EAAExG,EAAE6jC,EAAEnjC,EAAE,EAAE,EAAE,EAAE,KAAK,SAASU,EAAEV,EAAEmjC,GAAGA,EAAExgC,EAAE3C,EAAE,CAACxC,EAAE,WAAW,OAAO8B,CAAC,IAAI,IAAIwG,EAAEq9B,EAAE,MAAM7jC,EAAE,CAACg/B,UAAU,SAAS59B,GAAG,IAAI,IAAIV,EAAEU,EAAE6xL,UAAUpvJ,EAAEziC,EAAE4f,MAAMxa,EAAE,GAAGxG,EAAE,EAAEA,EAAEU,EAAEV,IAAI,CAAC,IAAI/B,EAAE4lC,EAAE7jC,IAAI,KAAK,GAAGA,EAAE,EAAE,EAAE,IAAIwG,EAAE9E,KAAKgC,OAAOm8D,aAAa5hE,GAAG,CAAC,OAAOuI,EAAE0B,KAAK,GAAG,EAAE5D,MAAM,SAASlD,GAAG,IAAI,IAAIV,EAAEU,EAAEK,OAAOoiC,EAAE,GAAG7jC,EAAE,EAAEA,EAAEU,EAAEV,IAAI6jC,EAAE7jC,IAAI,KAAK,IAAIoB,EAAEm9C,WAAWv+C,KAAK,GAAGA,EAAE,EAAE,EAAE,OAAO,IAAIwG,EAAExG,EAAE6jC,EAAEnjC,EAAE,EAAE,EAAE,KAAK,SAASU,EAAEV,EAAEmjC,GAAGA,EAAExgC,EAAE3C,EAAE,CAAC2C,EAAE,WAAW,OAAOrD,CAAC,IAAI,IAAIwG,EAAEq9B,EAAE,MAAM7jC,EAAE,CAACg/B,UAAU,SAAS59B,GAAG,IAAI,OAAO01G,mBAAmB08E,OAAOhtL,EAAEtI,EAAE8gC,UAAU59B,IAAqD,CAAhD,MAAMA,GAAG,MAAM,IAAIU,MAAM,uBAAuB,CAAC,EAAEwC,MAAM,SAASlD,GAAG,OAAOoF,EAAEtI,EAAEoG,MAAM+oG,SAASC,mBAAmBlsG,IAAI,EAAE,EAAE,KAAK,SAASA,EAAEV,EAAEmjC,GAAGA,EAAExgC,EAAE3C,EAAE,CAACk/G,EAAE,WAAW,OAAO5/G,CAAC,IAAI,IAAIwG,EAAEq9B,EAAE,MAAU7jC,EAAE,WAAW,GAAG,oBAAoBuyD,OAAO,CAAC,IAAInxD,EAAEmxD,OAAO3V,QAAQ2V,OAAOgtD,SAAS,IAAIn+G,EAAE,CAAC,IAAG,EAAGoF,EAAEyzF,GAAG,IAAI,IAAI,OAAOx8F,QAAQm7G,KAAK,kGAAkG,WAAW,OAAOrvG,KAAK8iD,MAAM,IAAI9iD,KAAK67H,UAAU,GAAG,EAAE,MAAM,IAAItjI,MAAM,0BAA0B,CAAC,OAAO,WAAW,OAAOV,EAAE+7C,gBAAgB,IAAI0F,YAAY,IAAI,EAAE,CAAC,CAAC,YAAO,IAAShf,EAAEljC,GAAGkjC,EAAEljC,EAAEi8C,OAAO,WAAW,OAAO/Y,EAAEljC,EAAEi8C,OAAOS,YAAY,GAAGi1E,aAAa,EAAE,WAAW,OAAO,qBAA8B,GAAGA,aAAa,CAAC,CAA9hB,EAAiiB,GAAG5xH,EAAE,CAAC,EAAE,SAASmjC,EAAEr9B,GAAG,IAAIxG,EAAEU,EAAE8F,GAAG,QAAG,IAASxG,EAAE,OAAOA,EAAE7E,QAAQ,IAAI8C,EAAEyC,EAAE8F,GAAG,CAACrL,QAAQ,CAAC,GAAG,OAAOiG,EAAEoF,GAAGvI,EAAEA,EAAE9C,QAAQ0oC,GAAG5lC,EAAE9C,OAAO,CAAC0oC,EAAExgC,EAAE,SAASjC,EAAEV,GAAG,IAAI,IAAI8F,KAAK9F,EAAEmjC,EAAE5lC,EAAEyC,EAAE8F,KAAKq9B,EAAE5lC,EAAEmD,EAAEoF,IAAI/K,OAAOC,eAAe0F,EAAEoF,EAAE,CAAC9H,YAAW,EAAGC,IAAI+B,EAAE8F,IAAI,EAAEq9B,EAAEljC,EAAE,WAAW,GAAG,iBAAiB0sE,WAAW,OAAOA,WAAW,IAAI,OAAO7xE,MAAM,IAAI8oL,SAAS,cAAb,EAA+E,CAAjD,MAAMljL,GAAG,GAAG,iBAAiBmxD,OAAO,OAAOA,MAAM,CAAC,CAA7J,GAAiK1uB,EAAE5lC,EAAE,SAASmD,EAAEV,GAAG,OAAOjF,OAAOwB,UAAU6B,eAAeC,KAAKqC,EAAEV,EAAE,EAAEmjC,EAAEA,EAAE,SAASziC,GAAG,oBAAoBF,QAAQA,OAAOi6H,aAAa1/H,OAAOC,eAAe0F,EAAEF,OAAOi6H,YAAY,CAACx/H,MAAM,WAAWF,OAAOC,eAAe0F,EAAE,IAAI,CAACzF,OAAM,GAAI,EAAE,IAAI6K,EAAE,CAAC,EAAE,OAAO,WAAWq9B,EAAEA,EAAEr9B,GAAGq9B,EAAExgC,EAAEmD,EAAE,CAACgwB,OAAO,WAAW,OAAOyrB,CAAC,IAAI,IAAI7gD,EAAEV,EAAEmjC,EAAE,MAAM7jC,EAAE6jC,EAAE,MAAM5lC,GAAGmD,EAAE,SAASV,EAAEmjC,GAAG,OAAOziC,EAAE3F,OAAO8H,gBAAgB,CAACC,UAAU,cAAcC,OAAO,SAASrC,EAAEV,GAAGU,EAAEoC,UAAU9C,CAAC,GAAG,SAASU,EAAEV,GAAG,IAAI,IAAImjC,KAAKnjC,EAAEjF,OAAOwB,UAAU6B,eAAeC,KAAK2B,EAAEmjC,KAAKziC,EAAEyiC,GAAGnjC,EAAEmjC,GAAG,GAAGnjC,EAAEmjC,EAAE,EAAE,SAASnjC,EAAEmjC,GAAG,SAASr9B,IAAIhL,KAAKoI,YAAYlD,CAAC,CAACU,EAAEV,EAAEmjC,GAAGnjC,EAAEzD,UAAU,OAAO4mC,EAAEpoC,OAAOuC,OAAO6lC,IAAIr9B,EAAEvJ,UAAU4mC,EAAE5mC,UAAU,IAAIuJ,EAAE,GAAGwyD,EAAE,GAAGx4D,EAAE,GAAG,SAASuH,EAAE3G,GAAG,IAAI,IAAIV,EAAE6I,KAAKugG,KAAK1oG,GAAGyiC,EAAE,EAAEA,GAAGnjC,EAAEmjC,IAAI,KAAKziC,EAAEyiC,GAAG,OAAM,EAAG,OAAM,CAAE,CAAC,SAASj7B,EAAExH,GAAG,OAAO,YAAYA,GAAG,EAAEA,IAAI,CAAC,EAAE,WAAW,IAAI,IAAIA,EAAE,EAAEV,EAAE,EAAEA,EAAE,IAAIqH,EAAE3G,KAAKV,EAAE,IAAIs4D,EAAEt4D,GAAGkI,EAAEW,KAAKC,IAAIpI,EAAE,MAAMZ,EAAEE,GAAGkI,EAAEW,KAAKC,IAAIpI,EAAE,EAAE,IAAIV,KAAKU,GAAG,CAAtG,GAA0G,IAAImF,EAAE,GAAG07C,EAAE,SAAS7gD,GAAG,SAASV,EAAEA,GAAG,IAAImjC,EAAEziC,EAAErC,KAAKvD,KAAKkF,IAAIlF,KAAK,OAAOqoC,EAAEm/D,EAAE,IAAIhjG,EAAEA,EAAEg5D,EAAEhyD,MAAM,IAAI68B,EAAExiC,EAAEX,EAAEA,QAAG,IAASA,EAAE6wB,OAAOsS,EAAEm/D,EAAEtiG,EAAE6wB,KAAK6D,SAASyO,CAAC,CAAC,OAAO5lC,EAAEyC,EAAEU,GAAGV,EAAEzD,UAAUgkK,EAAE,WAAWzlK,KAAKwnG,EAAE,IAAIhjG,EAAEA,EAAEg5D,EAAEhyD,MAAM,GAAG,EAAEtG,EAAEzD,UAAU8rE,EAAE,SAAS3nE,EAAEV,GAAG,IAAI,IAAImjC,EAAEroC,KAAKwnG,EAAEhiF,MAAMxa,EAAEq9B,EAAE,GAAG7jC,EAAE6jC,EAAE,GAAG5lC,EAAE4lC,EAAE,GAAGm1B,EAAEn1B,EAAE,GAAG97B,EAAE87B,EAAE,GAAGj7B,EAAEi7B,EAAE,GAAGoe,EAAEpe,EAAE,GAAGxiC,EAAEwiC,EAAE,GAAGxgC,EAAE,EAAEA,EAAE,GAAGA,IAAI,CAAC,GAAGA,EAAE,GAAGkD,EAAElD,GAAG,EAAEjC,EAAEV,EAAE2C,OAAO,CAAC,IAAI42F,EAAE1zF,EAAElD,EAAE,IAAI0D,GAAGkzF,GAAG,GAAGA,IAAI,IAAIA,GAAG,GAAGA,IAAI,IAAIA,IAAI,EAAEx5F,EAAE8F,EAAElD,EAAE,GAAGC,GAAG7C,GAAG,GAAGA,IAAI,KAAKA,GAAG,GAAGA,IAAI,IAAIA,IAAI,GAAG8F,EAAElD,GAAG0D,EAAER,EAAElD,EAAE,GAAGC,EAAEiD,EAAElD,EAAE,GAAG,CAAC,IAAIxE,EAAE2H,EAAExG,EAAEwG,EAAEvI,EAAE+B,EAAE/B,EAAEC,GAAGsI,GAAG,GAAGA,IAAI,IAAIA,GAAG,GAAGA,IAAI,KAAKA,GAAG,GAAGA,IAAI,IAAI7F,EAAEU,IAAI0G,GAAG,GAAGA,IAAI,IAAIA,GAAG,GAAGA,IAAI,KAAKA,GAAG,EAAEA,IAAI,MAAMA,EAAEa,GAAGb,EAAEk6C,GAAGzhD,EAAE6C,GAAGkD,EAAElD,GAAGhC,EAAE4gD,EAAEA,EAAEr5C,EAAEA,EAAEb,EAAEA,EAAEixD,EAAEr4D,EAAE,EAAEq4D,EAAE/6D,EAAEA,EAAE+B,EAAEA,EAAEwG,EAAEA,EAAE7F,GAAGzC,EAAEW,GAAG,CAAC,CAACglC,EAAE,GAAGA,EAAE,GAAGr9B,EAAE,EAAEq9B,EAAE,GAAGA,EAAE,GAAG7jC,EAAE,EAAE6jC,EAAE,GAAGA,EAAE,GAAG5lC,EAAE,EAAE4lC,EAAE,GAAGA,EAAE,GAAGm1B,EAAE,EAAEn1B,EAAE,GAAGA,EAAE,GAAG97B,EAAE,EAAE87B,EAAE,GAAGA,EAAE,GAAGj7B,EAAE,EAAEi7B,EAAE,GAAGA,EAAE,GAAGoe,EAAE,EAAEpe,EAAE,GAAGA,EAAE,GAAGxiC,EAAE,CAAC,EAAEX,EAAEzD,UAAU2D,EAAE,WAAW,IAAIQ,EAAE5F,KAAKuL,EAAEia,MAAMtgB,EAAE,EAAElF,KAAK2sD,EAAEtkB,EAAE,EAAEroC,KAAKuL,EAAEksL,UAAU,OAAO7xL,EAAEyiC,IAAI,IAAI,KAAK,GAAGA,EAAE,GAAGziC,EAAE,IAAIyiC,EAAE,KAAK,GAAG,IAAIt6B,KAAK8iD,MAAM3rD,EAAE,YAAYU,EAAE,IAAIyiC,EAAE,KAAK,GAAG,IAAInjC,EAAElF,KAAKuL,EAAEksL,UAAU,EAAE7xL,EAAEK,OAAOjG,KAAK+3L,IAAI/3L,KAAKwnG,CAAC,EAAEtiG,EAAEzD,UAAUm4B,MAAM,WAAW,OAAO,IAAI10B,EAAE,CAAC6wB,KAAK/1B,KAAKwnG,EAAEte,UAAUlpF,KAAKymD,EAAEr8C,KAAKpK,KAAKuL,EAAEsmL,OAAO7xL,KAAK2sD,GAAG,EAAEznD,EAAE6wB,KAAK,SAASnwB,EAAEyiC,GAAG,OAAO,IAAInjC,EAAEmjC,GAAGwsJ,SAASjvL,EAAE,EAAEV,CAAC,CAA5mC,CAA8mCA,EAAElB,EAAE,CAAvwD,GAA2wDgH,CAAC,CAA7lQ,0BCAzOpL,EAAOD,QAAkO,WAAW,aAAa,IAAIiG,EAAE,CAAC,KAAK,SAASA,EAAEV,EAAEmjC,GAAGA,EAAExgC,EAAE3C,EAAE,CAACurF,IAAI,WAAW,OAAOrrF,CAAC,IAAI,IAAI4F,EAAExG,EAAE6jC,EAAE,MAAM5lC,EAAE4lC,EAAE,KAAKm1B,EAAEn1B,EAAE,MAAMrjC,EAAEqjC,EAAE,MAAM97B,GAAGvB,EAAE,SAASpF,EAAEV,GAAG,OAAO8F,EAAE/K,OAAO8H,gBAAgB,CAACC,UAAU,cAAcC,OAAO,SAASrC,EAAEV,GAAGU,EAAEoC,UAAU9C,CAAC,GAAG,SAASU,EAAEV,GAAG,IAAI,IAAImjC,KAAKnjC,EAAEjF,OAAOwB,UAAU6B,eAAeC,KAAK2B,EAAEmjC,KAAKziC,EAAEyiC,GAAGnjC,EAAEmjC,GAAG,GAAGziC,EAAEV,EAAE,EAAE,SAASU,EAAEV,GAAG,SAASmjC,IAAIroC,KAAKoI,YAAYxC,CAAC,CAACoF,EAAEpF,EAAEV,GAAGU,EAAEnE,UAAU,OAAOyD,EAAEjF,OAAOuC,OAAO0C,IAAImjC,EAAE5mC,UAAUyD,EAAEzD,UAAU,IAAI4mC,EAAE,GAAGt9B,EAAE,WAAW,OAAOA,EAAE9K,OAAO6K,QAAQ,SAASlF,GAAG,IAAI,IAAIV,EAAEmjC,EAAE,EAAEr9B,EAAEC,UAAUhF,OAAOoiC,EAAEr9B,EAAEq9B,IAAI,IAAI,IAAI7jC,KAAKU,EAAE+F,UAAUo9B,GAAGpoC,OAAOwB,UAAU6B,eAAeC,KAAK2B,EAAEV,KAAKoB,EAAEpB,GAAGU,EAAEV,IAAI,OAAOoB,CAAC,GAAGf,MAAM7E,KAAKiL,UAAU,EAAEmC,EAAE,GAAGq5C,EAAE,GAAG5gD,EAAE,GAAG44F,EAAE,GAAGlzF,EAAE,GAAGzD,EAAE,GAAGD,EAAE,GAAG5C,EAAE,GAAG5B,EAAE,GAAG00L,EAAE,IAAI,WAAW,IAAI,IAAInyL,EAAE,GAAGV,EAAE,EAAEA,EAAE,IAAIA,IAAIU,EAAEV,GAAGA,EAAE,IAAIA,GAAG,EAAEA,GAAG,EAAE,IAAI,IAAImjC,EAAE,EAAEr9B,EAAE,EAAE,IAAI9F,EAAE,EAAEA,EAAE,IAAIA,IAAI,CAAC,IAAIV,EAAEwG,EAAEA,GAAG,EAAEA,GAAG,EAAEA,GAAG,EAAEA,GAAG,EAAExG,EAAEA,IAAI,EAAE,IAAIA,EAAE,GAAG4I,EAAEi7B,GAAG7jC,EAAEiiD,EAAEjiD,GAAG6jC,EAAE,IAAI5lC,EAAEmD,EAAEyiC,GAAGm1B,EAAE53D,EAAEnD,GAAGuC,EAAEY,EAAE43D,GAAGjxD,EAAE,IAAI3G,EAAEpB,GAAG,SAASA,EAAEqB,EAAEwiC,GAAG97B,GAAG,GAAGA,IAAI,EAAEkyF,EAAEp2D,GAAG97B,GAAG,GAAGA,IAAI,GAAGhB,EAAE88B,GAAG97B,GAAG,EAAEA,IAAI,GAAGzE,EAAEugC,GAAG97B,EAAEA,EAAE,SAASvH,EAAE,MAAMw4D,EAAE,IAAI/6D,EAAE,SAAS4lC,EAAExgC,EAAErD,GAAG+H,GAAG,GAAGA,IAAI,EAAEtH,EAAET,GAAG+H,GAAG,GAAGA,IAAI,GAAGlJ,EAAEmB,GAAG+H,GAAG,EAAEA,IAAI,GAAGwrL,EAAEvzL,GAAG+H,EAAE87B,GAAGA,EAAE5lC,EAAEmD,EAAEA,EAAEA,EAAEZ,EAAEvC,KAAKuI,GAAGpF,EAAEA,EAAEoF,KAAKq9B,EAAEr9B,EAAE,CAAC,CAAC,CAA1Y,GAA8Y,IAAIi/C,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI7kD,EAAE,SAASQ,GAAG,SAASV,EAAEA,GAAG,IAAImjC,EAAEziC,EAAErC,KAAKvD,KAAKkF,IAAIlF,KAAK,OAAOqoC,EAAEm1B,EAAE,EAAEn1B,EAAEoe,EAAE,GAAGpe,EAAExiC,EAAE,GAAGwiC,EAAE0vJ,EAAE7yL,EAAEmjC,EAAEskB,IAAItkB,CAAC,CAAC,OAAO97B,EAAErH,EAAEU,GAAGV,EAAEzD,UAAUkrD,EAAE,WAAW,IAAI/mD,EAAE,IAAI5F,KAAKw9D,GAAGx9D,KAAK2C,IAAI3C,KAAKktD,EAAE,CAAC,IAAI,IAAIhoD,EAAElF,KAAK2C,EAAE3C,KAAKktD,EAAE7kB,EAAEnjC,EAAEsgB,MAAMxa,EAAE9F,EAAEuyL,UAAU,EAAEjzL,EAAE,IAAIxE,KAAKw9D,EAAExyD,EAAE,GAAG,GAAGvI,EAAEzC,KAAKymD,EAAE,GAAG+W,EAAE,EAAEA,EAAEh5D,EAAEg5D,IAAIA,EAAExyD,EAAEvI,EAAE+6D,GAAGn1B,EAAEm1B,IAAI53D,EAAEnD,EAAE+6D,EAAE,GAAGA,EAAExyD,EAAEA,EAAE,GAAGwyD,EAAExyD,GAAG,IAAIpF,EAAEwH,EAAExH,IAAI,KAAK,GAAGwH,EAAExH,IAAI,GAAG,MAAM,GAAGwH,EAAExH,IAAI,EAAE,MAAM,EAAEwH,EAAE,IAAIxH,KAAKA,EAAEwH,GAAGxH,EAAEA,GAAG,EAAEA,IAAI,MAAM,KAAK,GAAGwH,EAAExH,IAAI,GAAG,MAAM,GAAGwH,EAAExH,IAAI,EAAE,MAAM,EAAEwH,EAAE,IAAIxH,GAAGA,GAAGqkD,EAAEuT,EAAExyD,EAAE,IAAI,IAAIvI,EAAE+6D,GAAG/6D,EAAE+6D,EAAExyD,GAAGpF,GAAG5F,KAAK6F,EAAE,GAAG,IAAI,IAAIb,EAAE,EAAEA,EAAER,EAAEQ,IAAKw4D,EAAEh5D,EAAEQ,EAAEY,EAAEZ,EAAE,EAAEvC,EAAE+6D,GAAG/6D,EAAE+6D,EAAE,GAAGx9D,KAAK6F,EAAEb,GAAGA,EAAE,GAAGw4D,GAAG,EAAE53D,EAAEiC,EAAEuF,EAAExH,IAAI,KAAKX,EAAEmI,EAAExH,IAAI,GAAG,MAAMvC,EAAE+J,EAAExH,IAAI,EAAE,MAAMmyL,EAAE3qL,EAAE,IAAIxH,GAAI,CAAC,EAAEV,EAAEzD,UAAU2kH,aAAa,SAASxgH,EAAEV,GAAGlF,KAAK4sD,EAAEhnD,EAAEV,EAAElF,KAAKymD,EAAE5gD,EAAE44F,EAAElzF,EAAEzD,EAAEsF,EAAE,EAAElI,EAAEzD,UAAU6kH,aAAa,SAAS1gH,EAAEV,GAAG,IAAImjC,EAAEziC,EAAEV,EAAE,GAAGU,EAAEV,EAAE,GAAGU,EAAEV,EAAE,GAAGU,EAAEV,EAAE,GAAGmjC,EAAEroC,KAAK4sD,EAAEhnD,EAAEV,EAAElF,KAAK6F,EAAEgC,EAAE5C,EAAE5B,EAAE00L,EAAEtxI,GAAGpe,EAAEziC,EAAEV,EAAE,GAAGU,EAAEV,EAAE,GAAGU,EAAEV,EAAE,GAAGU,EAAEV,EAAE,GAAGmjC,CAAC,EAAEnjC,EAAEzD,UAAUmrD,EAAE,SAAShnD,EAAEV,EAAEmjC,EAAEr9B,EAAExG,EAAE/B,EAAE+6D,EAAEx4D,GAAG,IAAI,IAAIuH,EAAEvM,KAAKw9D,EAAEzyD,EAAEnF,EAAEV,GAAGmjC,EAAE,GAAGj7B,EAAExH,EAAEV,EAAE,GAAGmjC,EAAE,GAAGoe,EAAE7gD,EAAEV,EAAE,GAAGmjC,EAAE,GAAGxiC,EAAED,EAAEV,EAAE,GAAGmjC,EAAE,GAAGo2D,EAAE,EAAElzF,EAAE,EAAEA,EAAEgB,EAAEhB,IAAI,CAAC,IAAIzD,EAAEkD,EAAED,IAAI,IAAIvG,EAAE4I,IAAI,GAAG,KAAK3K,EAAEgkD,IAAI,EAAE,KAAK+W,EAAE,IAAI33D,GAAGwiC,EAAEo2D,KAAK52F,EAAEmD,EAAEoC,IAAI,IAAI5I,EAAEiiD,IAAI,GAAG,KAAKhkD,EAAEoD,IAAI,EAAE,KAAK23D,EAAE,IAAIzyD,GAAGs9B,EAAEo2D,KAAKx5F,EAAE+F,EAAEy7C,IAAI,IAAIjiD,EAAEqB,IAAI,GAAG,KAAKpD,EAAEsI,IAAI,EAAE,KAAKyyD,EAAE,IAAIpwD,GAAGi7B,EAAEo2D,KAAKp7F,EAAE2H,EAAEnF,IAAI,IAAIrB,EAAEuG,IAAI,GAAG,KAAKtI,EAAE2K,IAAI,EAAE,KAAKowD,EAAE,IAAI/W,GAAGpe,EAAEo2D,KAAK1zF,EAAEjD,EAAEsF,EAAEvF,EAAE4+C,EAAExhD,EAAEY,EAAExC,CAAC,CAAC,IAAI00L,GAAG/yL,EAAE+F,IAAI,KAAK,GAAG/F,EAAEoI,IAAI,GAAG,MAAM,GAAGpI,EAAEyhD,IAAI,EAAE,MAAM,EAAEzhD,EAAE,IAAIa,IAAIwiC,EAAEo2D,KAAKx0C,GAAGjlD,EAAEoI,IAAI,KAAK,GAAGpI,EAAEyhD,IAAI,GAAG,MAAM,GAAGzhD,EAAEa,IAAI,EAAE,MAAM,EAAEb,EAAE,IAAI+F,IAAIs9B,EAAEo2D,KAAKr5F,GAAGJ,EAAEyhD,IAAI,KAAK,GAAGzhD,EAAEa,IAAI,GAAG,MAAM,GAAGb,EAAE+F,IAAI,EAAE,MAAM,EAAE/F,EAAE,IAAIoI,IAAIi7B,EAAEo2D,KAAK/7F,GAAGsC,EAAEa,IAAI,KAAK,GAAGb,EAAE+F,IAAI,GAAG,MAAM,GAAG/F,EAAEoI,IAAI,EAAE,MAAM,EAAEpI,EAAE,IAAIyhD,IAAIpe,EAAEo2D,KAAK74F,EAAEV,GAAG6yL,EAAEnyL,EAAEV,EAAE,GAAG+kD,EAAErkD,EAAEV,EAAE,GAAGE,EAAEQ,EAAEV,EAAE,GAAGxC,CAAC,EAAEwC,EAAE+yL,gBAAgB,SAASryL,EAAEyiC,GAAG,OAAO,IAAInjC,EAAE6F,EAAEA,EAAE,CAAC,EAAEs9B,OAAE,IAASA,EAAE,CAAC,EAAEA,GAAG,CAACxmC,IAAI+D,EAAEsyL,cAAc1zL,EAAEU,EAAEizL,qBAAqB,EAAEjzL,EAAEkzL,gBAAgB,SAASxyL,EAAEyiC,GAAG,OAAO,IAAInjC,EAAE6F,EAAEA,EAAE,CAAC,EAAEs9B,OAAE,IAASA,EAAE,CAAC,EAAEA,GAAG,CAACxmC,IAAI+D,EAAEsyL,cAAc1zL,EAAEU,EAAEmzL,qBAAqB,EAAEnzL,EAAEisF,QAAQ,SAASvrF,EAAEyiC,EAAEr9B,GAAG,GAAG,iBAAiBq9B,EAAE,OAAOm1B,EAAEzQ,EAAEokC,QAAQjsF,EAAEU,EAAEyiC,EAAEr9B,GAAG,GAAGq9B,EAAEovJ,UAAU,GAAG,EAAE,MAAM,IAAInxL,MAAM,kDAAkD,OAAOtB,EAAE8nD,EAAEqkC,QAAQjsF,EAAEU,EAAEyiC,EAAEr9B,EAAE,EAAE9F,EAAEmsF,QAAQ,SAASzrF,EAAEyiC,EAAEr9B,GAAG,GAAG,iBAAiBq9B,EAAE,OAAOm1B,EAAEzQ,EAAEskC,QAAQnsF,EAAEU,EAAEyiC,EAAEr9B,GAAG,GAAGq9B,EAAEovJ,UAAU,GAAG,EAAE,MAAM,IAAInxL,MAAM,kDAAkD,OAAOtB,EAAE8nD,EAAEukC,QAAQnsF,EAAEU,EAAEyiC,EAAEr9B,EAAE,EAAE9F,EAAEwgH,QAAQ,EAAExgH,CAAC,CAA/kE,CAAilEzC,EAAEwqD,EAAE,EAAE,KAAK,SAASrnD,EAAEV,EAAEmjC,GAAGA,EAAExgC,EAAE3C,EAAE,CAACozL,OAAO,WAAW,OAAOtzL,CAAC,IAAI,IAAIgG,EAAEq9B,EAAE,MAAM7jC,EAAE6jC,EAAE,MAAM5lC,EAAE4lC,EAAE,MAAMm1B,EAAEn1B,EAAE,MAAM,SAASrjC,EAAEY,EAAEV,EAAEmjC,EAAErjC,EAAEuH,EAAExB,GAAG,IAAIqC,EAAErC,GAAGA,EAAE89G,OAAO99G,EAAE89G,OAAOpmH,EAAEguF,IAAIhqC,EAAE,iBAAiBpe,EAAEr9B,EAAEnD,EAAEiB,MAAMu/B,GAAGA,EAAExiC,EAAEb,GAAG,IAAIR,EAAEA,EAAE,CAAC,EAAE,IAAIi6F,EAAE,iBAAiBv5F,EAAE8F,EAAEnD,EAAEiB,MAAM5D,GAAGA,EAAEqG,EAAE,iBAAiB3F,EAAEoF,EAAEnD,EAAEiB,MAAMlD,GAAGA,EAAEkC,EAAEyE,GAAG,GAAG,OAAOixD,EAAEk6F,EAAEuT,IAAI79J,EAAEq5C,EAAE5gD,EAAE44F,EAAElzF,EAAEzD,EAAE,CAAC,EAAE,KAAK,SAASlC,EAAEV,EAAEmjC,GAAGA,EAAExgC,EAAE3C,EAAE,CAAC0mH,IAAI,WAAW,OAAO9jH,CAAC,IAAI,IAAIkD,EAAExG,EAAE6jC,EAAE,KAAK5lC,EAAE4lC,EAAE,MAAMm1B,EAAEn1B,EAAE,MAAMrjC,EAAEqjC,EAAE,MAAM97B,GAAGvB,EAAE,SAASpF,EAAEV,GAAG,OAAO8F,EAAE/K,OAAO8H,gBAAgB,CAACC,UAAU,cAAcC,OAAO,SAASrC,EAAEV,GAAGU,EAAEoC,UAAU9C,CAAC,GAAG,SAASU,EAAEV,GAAG,IAAI,IAAImjC,KAAKnjC,EAAEjF,OAAOwB,UAAU6B,eAAeC,KAAK2B,EAAEmjC,KAAKziC,EAAEyiC,GAAGnjC,EAAEmjC,GAAG,GAAGziC,EAAEV,EAAE,EAAE,SAASU,EAAEV,GAAG,SAASmjC,IAAIroC,KAAKoI,YAAYxC,CAAC,CAACoF,EAAEpF,EAAEV,GAAGU,EAAEnE,UAAU,OAAOyD,EAAEjF,OAAOuC,OAAO0C,IAAImjC,EAAE5mC,UAAUyD,EAAEzD,UAAU,IAAI4mC,EAAE,GAAGt9B,EAAE,WAAW,OAAOA,EAAE9K,OAAO6K,QAAQ,SAASlF,GAAG,IAAI,IAAIV,EAAEmjC,EAAE,EAAEr9B,EAAEC,UAAUhF,OAAOoiC,EAAEr9B,EAAEq9B,IAAI,IAAI,IAAI7jC,KAAKU,EAAE+F,UAAUo9B,GAAGpoC,OAAOwB,UAAU6B,eAAeC,KAAK2B,EAAEV,KAAKoB,EAAEpB,GAAGU,EAAEV,IAAI,OAAOoB,CAAC,GAAGf,MAAM7E,KAAKiL,UAAU,EAAEmC,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAGq5C,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI5gD,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI44F,EAAE,CAAC,CAAC,EAAE,QAAQ,UAAU,MAAM,UAAU,QAAQ,UAAU,EAAE,WAAW,IAAI,WAAW,QAAQ,WAAW,QAAQ,WAAW,QAAQ,WAAW,IAAI,WAAW,QAAQ,WAAW,MAAM,WAAW,QAAQ,WAAW,MAAM,WAAW,QAAQ,WAAW,EAAE,WAAW,MAAM,UAAU,EAAE,UAAU,QAAQ,UAAU,MAAM,UAAU,MAAM,WAAW,QAAQ,WAAW,IAAI,WAAW,QAAQ,WAAW,EAAE,WAAW,QAAQ,WAAW,MAAM,WAAW,QAAQ,WAAW,QAAQ,WAAW,QAAQ,WAAW,MAAM,WAAW,IAAI,WAAW,QAAQ,EAAE,MAAM,UAAU,EAAE,UAAU,QAAQ,UAAU,QAAQ,WAAW,QAAQ,WAAW,MAAM,WAAW,IAAI,WAAW,QAAQ,WAAW,QAAQ,WAAW,QAAQ,WAAW,QAAQ,WAAW,MAAM,WAAW,IAAI,WAAW,QAAQ,WAAW,MAAM,WAAW,EAAE,UAAU,QAAQ,UAAU,QAAQ,UAAU,QAAQ,UAAU,IAAI,WAAW,MAAM,WAAW,QAAQ,WAAW,EAAE,WAAW,MAAM,WAAW,MAAM,WAAW,QAAQ,WAAW,IAAI,WAAW,QAAQ,WAAW,QAAQ,WAAW,EAAE,WAAW,MAAM,WAAW,SAAS,CAAC,EAAE,WAAW,SAAS,MAAM,SAAS,OAAO,SAAS,WAAW,SAAS,WAAW,SAAS,WAAW,UAAU,WAAW,UAAU,GAAG,UAAU,OAAO,UAAU,WAAW,UAAU,WAAW,UAAU,OAAO,UAAU,OAAO,UAAU,EAAE,UAAU,MAAM,UAAU,WAAW,QAAQ,WAAW,SAAS,OAAO,SAAS,GAAG,SAAS,WAAW,SAAS,WAAW,SAAS,WAAW,UAAU,OAAO,UAAU,WAAW,UAAU,OAAO,UAAU,EAAE,UAAU,MAAM,UAAU,WAAW,UAAU,WAAW,UAAU,OAAO,UAAU,WAAW,UAAU,MAAM,UAAU,EAAE,UAAU,WAAW,UAAU,WAAW,UAAU,WAAW,UAAU,WAAW,UAAU,GAAG,UAAU,OAAO,UAAU,MAAM,UAAU,MAAM,UAAU,OAAO,UAAU,OAAO,UAAU,WAAW,UAAU,OAAO,UAAU,WAAW,UAAU,WAAW,UAAU,WAAW,UAAU,OAAO,UAAU,OAAO,UAAU,WAAW,UAAU,MAAM,UAAU,WAAW,UAAU,WAAW,UAAU,GAAG,UAAU,WAAW,UAAU,WAAW,UAAU,WAAW,UAAU,WAAW,UAAU,OAAO,UAAU,EAAE,UAAU,MAAM,UAAU,WAAW,UAAU,QAAQ,CAAC,EAAE,IAAI,QAAQ,EAAE,QAAQ,SAAS,QAAQ,MAAM,QAAQ,MAAM,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,SAAS,MAAM,SAAS,SAAS,SAAS,SAAS,SAAS,MAAM,SAAS,EAAE,SAAS,IAAI,OAAO,SAAS,QAAQ,SAAS,QAAQ,EAAE,QAAQ,SAAS,QAAQ,SAAS,QAAQ,MAAM,QAAQ,MAAM,QAAQ,IAAI,QAAQ,EAAE,QAAQ,IAAI,SAAS,SAAS,SAAS,MAAM,SAAS,MAAM,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,MAAM,SAAS,MAAM,SAAS,SAAS,SAAS,IAAI,SAAS,SAAS,SAAS,SAAS,SAAS,EAAE,SAAS,SAAS,SAAS,SAAS,SAAS,EAAE,SAAS,MAAM,SAAS,SAAS,SAAS,IAAI,SAAS,MAAM,SAAS,SAAS,SAAS,SAAS,SAAS,IAAI,SAAS,SAAS,SAAS,EAAE,SAAS,MAAM,SAAS,SAAS,SAAS,IAAI,SAAS,SAAS,SAAS,MAAM,SAAS,SAAS,SAAS,MAAM,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,EAAE,SAAS,OAAO,CAAC,EAAE,WAAW,MAAM,WAAW,OAAO,QAAQ,OAAO,WAAW,OAAO,EAAE,OAAO,QAAQ,OAAO,WAAW,OAAO,QAAQ,OAAO,WAAW,OAAO,QAAQ,OAAO,GAAG,OAAO,WAAW,OAAO,WAAW,OAAO,KAAK,OAAO,KAAK,OAAO,WAAW,MAAM,WAAW,MAAM,GAAG,OAAO,WAAW,OAAO,WAAW,OAAO,QAAQ,OAAO,WAAW,OAAO,EAAE,OAAO,WAAW,OAAO,KAAK,OAAO,WAAW,OAAO,QAAQ,OAAO,KAAK,OAAO,WAAW,OAAO,QAAQ,OAAO,QAAQ,QAAQ,WAAW,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,WAAW,QAAQ,EAAE,QAAQ,KAAK,QAAQ,WAAW,QAAQ,WAAW,QAAQ,WAAW,QAAQ,WAAW,QAAQ,WAAW,QAAQ,WAAW,QAAQ,QAAQ,QAAQ,WAAW,QAAQ,QAAQ,QAAQ,GAAG,QAAQ,KAAK,QAAQ,WAAW,QAAQ,WAAW,QAAQ,EAAE,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,WAAW,QAAQ,WAAW,QAAQ,GAAG,QAAQ,WAAW,QAAQ,KAAK,QAAQ,WAAW,QAAQ,WAAW,QAAQ,KAAK,QAAQ,WAAW,QAAQ,QAAQ,QAAQ,SAAS,CAAC,EAAE,IAAI,KAAK,SAAS,KAAK,OAAO,MAAM,UAAU,MAAM,UAAU,MAAM,SAAS,MAAM,UAAU,MAAM,OAAO,MAAM,SAAS,MAAM,UAAU,MAAM,UAAU,MAAM,UAAU,MAAM,UAAU,MAAM,EAAE,MAAM,SAAS,MAAM,UAAU,KAAK,SAAS,KAAK,UAAU,MAAM,IAAI,MAAM,SAAS,MAAM,OAAO,MAAM,UAAU,MAAM,UAAU,MAAM,UAAU,MAAM,UAAU,MAAM,EAAE,MAAM,UAAU,MAAM,SAAS,MAAM,UAAU,MAAM,UAAU,MAAM,SAAS,MAAM,OAAO,MAAM,OAAO,MAAM,IAAI,MAAM,UAAU,MAAM,UAAU,MAAM,SAAS,MAAM,UAAU,MAAM,UAAU,MAAM,SAAS,MAAM,UAAU,OAAO,UAAU,OAAO,SAAS,OAAO,UAAU,OAAO,OAAO,OAAO,UAAU,OAAO,EAAE,OAAO,SAAS,MAAM,UAAU,MAAM,SAAS,MAAM,SAAS,MAAM,UAAU,MAAM,UAAU,MAAM,SAAS,MAAM,IAAI,MAAM,UAAU,OAAO,OAAO,OAAO,UAAU,OAAO,EAAE,OAAO,UAAU,OAAO,SAAS,OAAO,OAAO,OAAO,UAAU,OAAO,WAAW,CAAC,EAAE,UAAU,IAAI,KAAK,IAAI,UAAU,IAAI,UAAU,KAAK,UAAU,KAAK,QAAQ,KAAK,QAAQ,KAAK,UAAU,KAAK,EAAE,KAAK,UAAU,KAAK,QAAQ,KAAK,EAAE,KAAK,UAAU,KAAK,QAAQ,KAAK,KAAK,KAAK,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,EAAE,IAAI,QAAQ,KAAK,QAAQ,KAAK,UAAU,KAAK,UAAU,KAAK,KAAK,KAAK,QAAQ,KAAK,KAAK,KAAK,UAAU,KAAK,UAAU,KAAK,EAAE,KAAK,UAAU,KAAK,QAAQ,KAAK,UAAU,KAAK,UAAU,KAAK,UAAU,KAAK,UAAU,KAAK,KAAK,KAAK,QAAQ,KAAK,UAAU,KAAK,UAAU,KAAK,QAAQ,KAAK,QAAQ,KAAK,EAAE,KAAK,EAAE,KAAK,UAAU,KAAK,KAAK,KAAK,UAAU,KAAK,UAAU,KAAK,QAAQ,KAAK,EAAE,KAAK,QAAQ,KAAK,QAAQ,KAAK,UAAU,KAAK,UAAU,KAAK,KAAK,KAAK,UAAU,KAAK,UAAU,KAAK,UAAU,KAAK,UAAU,KAAK,KAAK,KAAK,QAAQ,KAAK,QAAQ,KAAK,EAAE,KAAK,UAAU,KAAK,WAAW,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,SAAS,GAAG,EAAE,GAAG,EAAE,IAAI,SAAS,IAAI,SAAS,IAAI,QAAQ,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,KAAK,IAAI,QAAQ,IAAI,SAAS,EAAE,SAAS,GAAG,EAAE,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,IAAI,SAAS,IAAI,KAAK,IAAI,QAAQ,IAAI,SAAS,IAAI,SAAS,IAAI,QAAQ,IAAI,KAAK,IAAI,SAAS,IAAI,EAAE,IAAI,QAAQ,IAAI,SAAS,IAAI,QAAQ,IAAI,SAAS,IAAI,SAAS,IAAI,QAAQ,IAAI,SAAS,IAAI,SAAS,IAAI,QAAQ,IAAI,KAAK,IAAI,SAAS,IAAI,QAAQ,IAAI,EAAE,IAAI,EAAE,IAAI,SAAS,IAAI,SAAS,IAAI,KAAK,IAAI,QAAQ,IAAI,SAAS,IAAI,SAAS,IAAI,EAAE,IAAI,SAAS,IAAI,QAAQ,IAAI,KAAK,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,EAAE,IAAI,SAAS,IAAI,QAAQ,IAAI,KAAK,IAAI,SAAS,IAAI,SAAS,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,KAAK,GAAG,EAAE,GAAG,UAAU,GAAG,OAAO,WAAW,KAAK,WAAW,UAAU,WAAW,UAAU,WAAW,UAAU,WAAW,UAAU,WAAW,OAAO,WAAW,OAAO,WAAW,GAAG,WAAW,UAAU,WAAW,KAAK,WAAW,OAAO,WAAW,UAAU,WAAW,EAAE,WAAW,UAAU,WAAW,UAAU,WAAW,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,GAAG,GAAG,KAAK,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,GAAG,EAAE,GAAG,OAAO,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,GAAG,KAAK,GAAG,UAAU,WAAW,OAAO,WAAW,KAAK,WAAW,UAAU,WAAW,OAAO,WAAW,GAAG,WAAW,UAAU,WAAW,UAAU,WAAW,UAAU,WAAW,UAAU,WAAW,UAAU,WAAW,UAAU,WAAW,EAAE,WAAW,OAAO,WAAW,KAAK,WAAW,OAAO,WAAW,YAAYlzF,EAAE,CAAC,WAAW,UAAU,SAAS,QAAQ,OAAO,KAAK,IAAI,YAAYzD,EAAE,SAASlC,GAAG,SAASV,EAAEA,GAAG,IAAImjC,EAAEziC,EAAErC,KAAKvD,KAAKkF,IAAIlF,KAAK,OAAOqoC,EAAEm/D,EAAE,EAAEn/D,EAAEklC,EAAE,GAAGllC,EAAEo9H,EAAE,GAAGp9H,EAAEkwJ,EAAE,EAAElwJ,EAAE2kB,EAAE,EAAE3kB,EAAE0vJ,EAAE7yL,EAAEmjC,EAAEskB,IAAItkB,CAAC,CAAC,OAAO97B,EAAErH,EAAEU,GAAGV,EAAEzD,UAAUkrD,EAAE,WAAW,IAAI,IAAI/mD,EAAE5F,KAAKktD,EAAE1nC,MAAMtgB,EAAE,GAAGmjC,EAAE,EAAEA,EAAE,GAAGA,IAAI,CAAC,IAAIr9B,EAAEoC,EAAEi7B,GAAG,EAAEnjC,EAAEmjC,GAAGziC,EAAEoF,IAAI,KAAK,GAAGA,EAAE,GAAG,CAAC,CAAC,IAAI,IAAIxG,EAAExE,KAAKutE,EAAE,GAAG9qE,EAAE,EAAEA,EAAE,GAAGA,IAAI,CAAC,IAAI+6D,EAAEh5D,EAAE/B,GAAG,GAAGuC,EAAEa,EAAEpD,GAAG,IAAI4lC,EAAE,EAAEA,EAAE,GAAGA,IAAIm1B,EAAEn1B,EAAE,EAAE,IAAInjC,GAAGuhD,EAAEpe,GAAG,EAAErjC,GAAG,KAAK,GAAGqjC,EAAE,EAAEm1B,EAAE,GAAGn1B,EAAE,EAAE,KAAKnjC,EAAE,IAAIuhD,EAAEpe,EAAE,IAAI,EAAErjC,GAAG,KAAK,GAAGqjC,EAAE,EAAyB,IAAvBm1B,EAAE,GAAGA,EAAE,IAAI,EAAEA,EAAE,KAAK,GAAOn1B,EAAE,EAAEA,EAAE,EAAEA,IAAIm1B,EAAEn1B,GAAGm1B,EAAEn1B,KAAK,GAAGA,EAAE,GAAG,EAAEm1B,EAAE,GAAGA,EAAE,IAAI,EAAEA,EAAE,KAAK,EAAE,CAAW,IAAVx9D,KAAKylK,EAAE,GAAOp9H,EAAE,EAAEA,EAAE,GAAGA,IAAIroC,KAAKylK,EAAEp9H,GAAG7jC,EAAE,GAAG6jC,EAAE,EAAEnjC,EAAEzD,UAAU2kH,aAAa,SAASxgH,EAAEV,GAAGlF,KAAK+6D,EAAEn1D,EAAEV,EAAElF,KAAKutE,EAAE,EAAEroE,EAAEzD,UAAU6kH,aAAa,SAAS1gH,EAAEV,GAAGlF,KAAK+6D,EAAEn1D,EAAEV,EAAElF,KAAKylK,EAAE,EAAEvgK,EAAEzD,UAAUs5D,EAAE,SAASn1D,EAAEV,EAAEmjC,GAAGroC,KAAKu4L,EAAE3yL,EAAEV,GAAGlF,KAAKgtD,EAAEpnD,EAAEV,EAAE,GAAGlF,KAAKw4L,EAAE,EAAE,WAAWx4L,KAAKw4L,EAAE,GAAG,OAAOx4L,KAAKy4L,EAAE,EAAE,WAAWz4L,KAAKy4L,EAAE,EAAE,UAAUz4L,KAAKw4L,EAAE,EAAE,YAAY,IAAI,IAAIxtL,EAAE,EAAEA,EAAE,GAAGA,IAAI,CAAC,IAAI,IAAIxG,EAAE6jC,EAAEr9B,GAAGvI,EAAEzC,KAAKu4L,EAAE/6H,EAAEx9D,KAAKgtD,EAAEhoD,EAAE,EAAEuH,EAAE,EAAEA,EAAE,EAAEA,IAAI,CAAC,IAAIxB,GAAGyyD,EAAEh5D,EAAE+H,IAAIhB,EAAEgB,GAAGvH,GAAGy5F,EAAElyF,GAAGxB,IAAI,EAAE,CAAC/K,KAAKu4L,EAAE/6H,EAAEx9D,KAAKgtD,EAAEvqD,EAAEuC,CAAC,CAAC,IAAIoI,EAAEpN,KAAKu4L,EAAEv4L,KAAKu4L,EAAEv4L,KAAKgtD,EAAEhtD,KAAKgtD,EAAE5/C,EAAEpN,KAAKw4L,EAAE,EAAE,YAAYx4L,KAAKy4L,EAAE,EAAE,UAAUz4L,KAAKy4L,EAAE,EAAE,WAAWz4L,KAAKw4L,EAAE,GAAG,OAAOx4L,KAAKw4L,EAAE,EAAE,WAAW5yL,EAAEV,GAAGlF,KAAKu4L,EAAE3yL,EAAEV,EAAE,GAAGlF,KAAKgtD,CAAC,EAAE9nD,EAAEzD,UAAU+2L,EAAE,SAAS5yL,EAAEV,GAAG,IAAImjC,GAAGroC,KAAKu4L,IAAI3yL,EAAE5F,KAAKgtD,GAAG9nD,EAAElF,KAAKgtD,GAAG3kB,EAAEroC,KAAKu4L,GAAGlwJ,GAAGziC,CAAC,EAAEV,EAAEzD,UAAUg3L,EAAE,SAAS7yL,EAAEV,GAAG,IAAImjC,GAAGroC,KAAKgtD,IAAIpnD,EAAE5F,KAAKu4L,GAAGrzL,EAAElF,KAAKu4L,GAAGlwJ,EAAEroC,KAAKgtD,GAAG3kB,GAAGziC,CAAC,EAAEV,EAAE+yL,gBAAgB,SAASryL,EAAEyiC,GAAG,OAAO,IAAInjC,EAAE6F,EAAEA,EAAE,CAAC,EAAEs9B,OAAE,IAASA,EAAE,CAAC,EAAEA,GAAG,CAACxmC,IAAI+D,EAAEsyL,cAAcz1L,EAAEyC,EAAEizL,qBAAqB,EAAEjzL,EAAEkzL,gBAAgB,SAASxyL,EAAEyiC,GAAG,OAAO,IAAInjC,EAAE6F,EAAEA,EAAE,CAAC,EAAEs9B,OAAE,IAASA,EAAE,CAAC,EAAEA,GAAG,CAACxmC,IAAI+D,EAAEsyL,cAAcz1L,EAAEyC,EAAEmzL,qBAAqB,EAAEnzL,EAAEisF,QAAQ,SAASvrF,EAAEyiC,EAAEr9B,GAAG,MAAM,iBAAiBq9B,EAAEm1B,EAAEzQ,EAAEokC,QAAQjsF,EAAEU,EAAEyiC,EAAEr9B,GAAGhG,EAAE8nD,EAAEqkC,QAAQjsF,EAAEU,EAAEyiC,EAAEr9B,EAAE,EAAE9F,EAAEmsF,QAAQ,SAASzrF,EAAEyiC,EAAEr9B,GAAG,MAAM,iBAAiBq9B,EAAEm1B,EAAEzQ,EAAEskC,QAAQnsF,EAAEU,EAAEyiC,EAAEr9B,GAAGhG,EAAE8nD,EAAEukC,QAAQnsF,EAAEU,EAAEyiC,EAAEr9B,EAAE,EAAE9F,EAAEwgH,QAAQ,EAAExgH,EAAEwzL,OAAO,EAAExzL,CAAC,CAA5oD,CAA8oDV,EAAEyoD,EAAE,EAAE,KAAK,SAASrnD,EAAEV,EAAEmjC,GAAGA,EAAExgC,EAAE3C,EAAE,CAACyzL,KAAK,WAAW,OAAO9yL,CAAC,IAAI,IAAImF,EAAExG,EAAE6jC,EAAE,MAAM5lC,EAAE4lC,EAAE,KAAKm1B,EAAEn1B,EAAE,MAAMrjC,EAAEqjC,EAAE,MAAM97B,EAAE87B,EAAE,MAAMt9B,EAAEs9B,EAAE,MAAMj7B,GAAGpC,EAAE,SAASpF,EAAEV,GAAG,OAAO8F,EAAE/K,OAAO8H,gBAAgB,CAACC,UAAU,cAAcC,OAAO,SAASrC,EAAEV,GAAGU,EAAEoC,UAAU9C,CAAC,GAAG,SAASU,EAAEV,GAAG,IAAI,IAAImjC,KAAKnjC,EAAEjF,OAAOwB,UAAU6B,eAAeC,KAAK2B,EAAEmjC,KAAKziC,EAAEyiC,GAAGnjC,EAAEmjC,GAAG,GAAGziC,EAAEV,EAAE,EAAE,SAASU,EAAEV,GAAG,SAASmjC,IAAIroC,KAAKoI,YAAYxC,CAAC,CAACoF,EAAEpF,EAAEV,GAAGU,EAAEnE,UAAU,OAAOyD,EAAEjF,OAAOuC,OAAO0C,IAAImjC,EAAE5mC,UAAUyD,EAAEzD,UAAU,IAAI4mC,EAAE,GAAGoe,EAAE,WAAW,OAAOA,EAAExmD,OAAO6K,QAAQ,SAASlF,GAAG,IAAI,IAAIV,EAAEmjC,EAAE,EAAEr9B,EAAEC,UAAUhF,OAAOoiC,EAAEr9B,EAAEq9B,IAAI,IAAI,IAAI7jC,KAAKU,EAAE+F,UAAUo9B,GAAGpoC,OAAOwB,UAAU6B,eAAeC,KAAK2B,EAAEV,KAAKoB,EAAEpB,GAAGU,EAAEV,IAAI,OAAOoB,CAAC,GAAGf,MAAM7E,KAAKiL,UAAU,EAAEpF,EAAE,SAASD,GAAG,SAASV,EAAEA,GAAG,IAAImjC,EAAEziC,EAAErC,KAAKvD,KAAKkF,IAAIlF,KAAKqoC,EAAEm/D,EAAE,EAAEn/D,EAAE0vJ,EAAE7yL,EAAE,IAAI8F,EAAEq9B,EAAEuwJ,IAAI,OAAOvwJ,EAAEwwJ,EAAE7tL,EAAE,GAAGq9B,EAAEywJ,EAAE9tL,EAAE,GAAGq9B,EAAE0wJ,GAAG/tL,EAAE,GAAGq9B,CAAC,CAAC,OAAOj7B,EAAElI,EAAEU,GAAGV,EAAEzD,UAAUm3L,EAAE,WAAW,IAAIhzL,EAAE5F,KAAKktD,EAAE1nC,MAAM,GAAG,IAAI5f,EAAEK,QAAQ,IAAIL,EAAEK,QAAQL,EAAEK,OAAO,EAAE,MAAM,IAAIK,MAAM,iFAAiF,IAAIpB,EAAEU,EAAE4F,MAAM,EAAE,GAAG68B,EAAEziC,EAAEK,OAAO,EAAEL,EAAE4F,MAAM,EAAE,GAAG5F,EAAE4F,MAAM,EAAE,GAAGR,EAAEpF,EAAEK,OAAO,EAAEL,EAAE4F,MAAM,EAAE,GAAG5F,EAAE4F,MAAM,EAAE,GAAG,MAAM,CAACxG,EAAE4mH,IAAIqsE,gBAAgB,IAAI1rL,EAAE/H,EAAEU,IAAIF,EAAE4mH,IAAIqsE,gBAAgB,IAAI1rL,EAAE/H,EAAE6jC,IAAIrjC,EAAE4mH,IAAIqsE,gBAAgB,IAAI1rL,EAAE/H,EAAEwG,IAAI,EAAE9F,EAAEzD,UAAUkrD,EAAE,WAAW,IAAI/mD,EAAE5F,KAAK44L,IAAI54L,KAAK64L,EAAEjzL,EAAE,GAAG5F,KAAK84L,EAAElzL,EAAE,GAAG5F,KAAK+4L,GAAGnzL,EAAE,EAAE,EAAEV,EAAEzD,UAAU2kH,aAAa,SAASxgH,EAAEV,GAAGlF,KAAK64L,EAAEzyE,aAAaxgH,EAAEV,GAAGlF,KAAK84L,EAAExyE,aAAa1gH,EAAEV,GAAGlF,KAAK+4L,GAAG3yE,aAAaxgH,EAAEV,EAAE,EAAEA,EAAEzD,UAAU6kH,aAAa,SAAS1gH,EAAEV,GAAGlF,KAAK+4L,GAAGzyE,aAAa1gH,EAAEV,GAAGlF,KAAK84L,EAAE1yE,aAAaxgH,EAAEV,GAAGlF,KAAK64L,EAAEvyE,aAAa1gH,EAAEV,EAAE,EAAEA,EAAE+yL,gBAAgB,SAASryL,EAAEyiC,GAAG,OAAO,IAAInjC,EAAEuhD,EAAEA,EAAE,CAAC,EAAEpe,OAAE,IAASA,EAAE,CAAC,EAAEA,GAAG,CAACxmC,IAAI+D,EAAEsyL,cAAc16H,EAAEt4D,EAAEizL,qBAAqB,EAAEjzL,EAAEkzL,gBAAgB,SAASxyL,EAAEyiC,GAAG,OAAO,IAAInjC,EAAEuhD,EAAEA,EAAE,CAAC,EAAEpe,OAAE,IAASA,EAAE,CAAC,EAAEA,GAAG,CAACxmC,IAAI+D,EAAEsyL,cAAc16H,EAAEt4D,EAAEmzL,qBAAqB,EAAEnzL,EAAEisF,QAAQ,SAASvrF,EAAEyiC,EAAEr9B,GAAG,MAAM,iBAAiBq9B,EAAEt9B,EAAEgiD,EAAEokC,QAAQjsF,EAAEU,EAAEyiC,EAAEr9B,GAAGxG,EAAEsoD,EAAEqkC,QAAQjsF,EAAEU,EAAEyiC,EAAEr9B,EAAE,EAAE9F,EAAEmsF,QAAQ,SAASzrF,EAAEyiC,EAAEr9B,GAAG,MAAM,iBAAiBq9B,EAAEt9B,EAAEgiD,EAAEskC,QAAQnsF,EAAEU,EAAEyiC,EAAEr9B,GAAGxG,EAAEsoD,EAAEukC,QAAQnsF,EAAEU,EAAEyiC,EAAEr9B,EAAE,EAAE9F,EAAEwgH,QAAQ,EAAExgH,EAAEwzL,OAAO,EAAExzL,CAAC,CAA/vC,CAAiwCzC,EAAEwqD,EAAE,EAAE,KAAK,SAASrnD,EAAEV,EAAEmjC,GAAGA,EAAExgC,EAAE3C,EAAE,CAAC8zL,KAAK,WAAW,OAAOh0L,CAAC,IAAI,IAAIgG,EAAEq9B,EAAE,MAAM7jC,EAAE6jC,EAAE,MAAM5lC,EAAE4lC,EAAE,MAAMm1B,EAAEn1B,EAAE,MAAM,SAASrjC,EAAEY,EAAEV,EAAEmjC,EAAErjC,EAAEuH,GAAG,IAAIxB,EAAE,iBAAiBnF,EAAEoF,EAAEnD,EAAEiB,MAAMlD,GAAGA,EAAEwH,EAAEi7B,GAAG,IAAI7jC,EAAEA,EAAE,CAAC,EAAE,EAAE,EAAE,IAAIiiD,EAAEl6C,GAAGA,EAAEs8G,OAAOt8G,EAAEs8G,OAAOpmH,EAAEguF,IAAI5qF,EAAE,iBAAiBX,EAAE8F,EAAEnD,EAAEiB,MAAM5D,GAAGA,EAAEu5F,EAAEz5F,GAAG,GAAG,OAAOw4D,EAAEzH,EAAEk1G,IAAIxkH,EAAE5gD,EAAEuH,EAAErC,OAAE,EAAO0zF,EAAE,CAAC,EAAE,KAAK,SAAS74F,EAAEV,EAAEmjC,GAAGA,EAAExgC,EAAE3C,EAAE,CAACi3H,KAAK,WAAW,OAAO33H,CAAC,IAAI,IAAIwG,EAAEq9B,EAAE,MAAM7jC,EAAE,WAAW,SAASoB,EAAEA,EAAEV,GAAGlF,KAAKi5L,GAAGrzL,EAAE,iBAAiBV,IAAIA,EAAE8F,EAAEnD,EAAEiB,MAAM5D,IAAI,IAAImjC,EAAEziC,EAAEsjF,UAAU1kF,EAAE,EAAE6jC,EAAEnjC,EAAEuyL,UAAUjzL,IAAIU,EAAEU,EAAEivL,SAAS3vL,IAAIA,EAAE27B,QAAQ,IAAI,IAAIp+B,EAAEzC,KAAKk5L,GAAGh0L,EAAE00B,QAAQ4jC,EAAEx9D,KAAKkmK,GAAGhhK,EAAE00B,QAAQ50B,EAAEvC,EAAE+iB,MAAMjZ,EAAEixD,EAAEh4C,MAAMza,EAAE,EAAEA,EAAEs9B,EAAEt9B,IAAI/F,EAAE+F,IAAI,WAAWwB,EAAExB,IAAI,UAAUyyD,EAAEi6H,UAAUjzL,EAAE/B,EAAEg1L,UAAUjzL,EAAExE,KAAKo0L,OAAO,CAAC,OAAOxuL,EAAEnE,UAAU2yL,MAAM,WAAWp0L,KAAKi5L,GAAG7E,QAAQp0L,KAAKi5L,GAAGxzI,OAAOzlD,KAAKkmK,GAAG,EAAEtgK,EAAEnE,UAAUgkD,OAAO,SAAS7/C,GAAG,OAAO5F,KAAKi5L,GAAGxzI,OAAO7/C,GAAG5F,IAAI,EAAE4F,EAAEnE,UAAUozL,SAAS,SAASjvL,GAAG,IAAIV,EAAElF,KAAKi5L,GAAGpE,SAASjvL,GAAG,OAAO5F,KAAKi5L,GAAG7E,QAAQp0L,KAAKi5L,GAAGpE,SAAS70L,KAAKk5L,GAAGt/J,QAAQ53B,OAAOkD,GAAG,EAAEU,CAAC,CAAljB,EAAqjB,EAAE,KAAK,SAASA,EAAEV,EAAEmjC,GAAGA,EAAExgC,EAAE3C,EAAE,CAACi0L,QAAQ,WAAW,OAAO12L,CAAC,IAAI,IAAIuI,EAAEq9B,EAAE,MAAM7jC,EAAE6jC,EAAE,KAAK,SAAS5lC,EAAEmD,EAAEV,GAAG,OAAO,IAAI8F,EAAEmxH,KAAK,IAAI33H,EAAEq3H,IAAI32H,GAAG2vL,SAASjvL,EAAE,CAAC,EAAE,IAAI,SAASA,EAAEV,EAAEmjC,GAAGA,EAAExgC,EAAE3C,EAAE,CAACk0L,SAAS,WAAW,OAAO32L,CAAC,IAAI,IAAIuI,EAAEq9B,EAAE,MAAM7jC,EAAE6jC,EAAE,MAAM,SAAS5lC,EAAEmD,EAAEV,GAAG,OAAO,IAAI8F,EAAEmxH,KAAK,IAAI33H,EAAEkpL,KAAKxoL,GAAG2vL,SAASjvL,EAAE,CAAC,EAAE,KAAK,SAASA,EAAEV,EAAEmjC,GAAGA,EAAExgC,EAAE3C,EAAE,CAACm0L,WAAW,WAAW,OAAO52L,CAAC,IAAI,IAAIuI,EAAEq9B,EAAE,MAAM7jC,EAAE6jC,EAAE,KAAK,SAAS5lC,EAAEmD,EAAEV,GAAG,OAAO,IAAI8F,EAAEmxH,KAAK,IAAI33H,EAAEmpL,OAAOzoL,GAAG2vL,SAASjvL,EAAE,CAAC,EAAE,IAAI,SAASA,EAAEV,EAAEmjC,GAAGA,EAAExgC,EAAE3C,EAAE,CAACo0L,WAAW,WAAW,OAAO72L,CAAC,IAAI,IAAIuI,EAAEq9B,EAAE,MAAM7jC,EAAE6jC,EAAE,MAAM,SAAS5lC,EAAEmD,EAAEV,GAAG,OAAO,IAAI8F,EAAEmxH,KAAK,IAAI33H,EAAEw2B,OAAO91B,GAAG2vL,SAASjvL,EAAE,CAAC,EAAE,KAAK,SAASA,EAAEV,EAAEmjC,GAAGA,EAAExgC,EAAE3C,EAAE,CAACq0L,WAAW,WAAW,OAAO92L,CAAC,IAAI,IAAIuI,EAAEq9B,EAAE,MAAM7jC,EAAE6jC,EAAE,MAAM,SAAS5lC,EAAEmD,EAAEV,GAAG,OAAO,IAAI8F,EAAEmxH,KAAK,IAAI33H,EAAEwrD,OAAO9qD,GAAG2vL,SAASjvL,EAAE,CAAC,EAAE,KAAK,SAASA,EAAEV,EAAEmjC,GAAGA,EAAExgC,EAAE3C,EAAE,CAACs0L,WAAW,WAAW,OAAO/2L,CAAC,IAAI,IAAIuI,EAAEq9B,EAAE,MAAM7jC,EAAE6jC,EAAE,MAAM,SAAS5lC,EAAEmD,EAAEV,GAAG,OAAO,IAAI8F,EAAEmxH,KAAK,IAAI33H,EAAEqpD,OAAO3oD,GAAG2vL,SAASjvL,EAAE,CAAC,EAAE,IAAI,SAASA,EAAEV,EAAEmjC,GAAGA,EAAExgC,EAAE3C,EAAE,CAAC22H,IAAI,WAAW,OAAOh2H,CAAC,IAAI,IAAImF,EAAExG,EAAE6jC,EAAE,MAAM5lC,EAAE4lC,EAAE,MAAMm1B,GAAGxyD,EAAE,SAASpF,EAAEV,GAAG,OAAO8F,EAAE/K,OAAO8H,gBAAgB,CAACC,UAAU,cAAcC,OAAO,SAASrC,EAAEV,GAAGU,EAAEoC,UAAU9C,CAAC,GAAG,SAASU,EAAEV,GAAG,IAAI,IAAImjC,KAAKnjC,EAAEjF,OAAOwB,UAAU6B,eAAeC,KAAK2B,EAAEmjC,KAAKziC,EAAEyiC,GAAGnjC,EAAEmjC,GAAG,GAAGziC,EAAEV,EAAE,EAAE,SAASU,EAAEV,GAAG,SAASmjC,IAAIroC,KAAKoI,YAAYxC,CAAC,CAACoF,EAAEpF,EAAEV,GAAGU,EAAEnE,UAAU,OAAOyD,EAAEjF,OAAOuC,OAAO0C,IAAImjC,EAAE5mC,UAAUyD,EAAEzD,UAAU,IAAI4mC,EAAE,GAAGrjC,EAAE,GAAG,SAASuH,EAAE3G,EAAEV,EAAEmjC,EAAEr9B,EAAExG,EAAE/B,EAAE+6D,GAAG,IAAIx4D,EAAEY,GAAGV,EAAEmjC,GAAGnjC,EAAE8F,GAAGxG,EAAEg5D,EAAE,OAAOx4D,GAAGvC,EAAEuC,IAAI,GAAGvC,GAAGyC,CAAC,CAAC,SAAS6F,EAAEnF,EAAEV,EAAEmjC,EAAEr9B,EAAExG,EAAE/B,EAAE+6D,GAAG,IAAIx4D,EAAEY,GAAGV,EAAE8F,EAAEq9B,GAAGr9B,GAAGxG,EAAEg5D,EAAE,OAAOx4D,GAAGvC,EAAEuC,IAAI,GAAGvC,GAAGyC,CAAC,CAAC,SAASkI,EAAExH,EAAEV,EAAEmjC,EAAEr9B,EAAExG,EAAE/B,EAAE+6D,GAAG,IAAIx4D,EAAEY,GAAGV,EAAEmjC,EAAEr9B,GAAGxG,EAAEg5D,EAAE,OAAOx4D,GAAGvC,EAAEuC,IAAI,GAAGvC,GAAGyC,CAAC,CAAC,SAASuhD,EAAE7gD,EAAEV,EAAEmjC,EAAEr9B,EAAExG,EAAE/B,EAAE+6D,GAAG,IAAIx4D,EAAEY,GAAGyiC,GAAGnjC,GAAG8F,IAAIxG,EAAEg5D,EAAE,OAAOx4D,GAAGvC,EAAEuC,IAAI,GAAGvC,GAAGyC,CAAC,EAAE,WAAW,IAAI,IAAIU,EAAE,EAAEA,EAAE,GAAGA,IAAIZ,EAAEY,GAAG,WAAWmI,KAAKozB,IAAIpzB,KAAKu6F,IAAI1iG,EAAE,IAAI,CAAC,CAAzE,GAA6E,IAAIC,EAAE,SAASD,GAAG,SAASV,EAAEA,GAAG,IAAImjC,EAAEziC,EAAErC,KAAKvD,KAAKkF,IAAIlF,KAAK,OAAOqoC,EAAEq8B,GAAG,IAAIlgE,EAAEA,EAAE,CAAC,WAAW,WAAW,WAAW,YAAYU,QAAG,IAASA,EAAE6wB,OAAOsS,EAAEq8B,GAAGx/D,EAAE6wB,KAAK6D,SAASyO,CAAC,CAAC,OAAOm1B,EAAEt4D,EAAEU,GAAGV,EAAEzD,UAAUkrD,EAAE,WAAW3sD,KAAK0kE,GAAG,IAAIlgE,EAAEA,EAAE,CAAC,WAAW,WAAW,WAAW,WAAW,EAAEU,EAAEzD,UAAUg4L,GAAG,SAAS7zL,EAAEV,GAAG,IAAI,IAAImjC,EAAE,EAAEA,EAAE,GAAGA,IAAI,CAAC,IAAIr9B,EAAE9F,EAAEmjC,EAAE7jC,EAAEoB,EAAEoF,GAAGpF,EAAEoF,GAAG,UAAUxG,GAAG,EAAEA,IAAI,IAAI,YAAYA,GAAG,GAAGA,IAAI,EAAE,CAAC,IAAI/B,EAAEzC,KAAK0kE,GAAGl/C,MAAMg4C,EAAE53D,EAAEV,GAAGW,EAAED,EAAEV,EAAE,GAAGu5F,EAAE74F,EAAEV,EAAE,GAAGqG,EAAE3F,EAAEV,EAAE,GAAG4C,EAAElC,EAAEV,EAAE,GAAG2C,EAAEjC,EAAEV,EAAE,GAAGD,EAAEW,EAAEV,EAAE,GAAG7B,EAAEuC,EAAEV,EAAE,GAAG6yL,EAAEnyL,EAAEV,EAAE,GAAG+kD,EAAErkD,EAAEV,EAAE,GAAGE,EAAEQ,EAAEV,EAAE,IAAIxC,EAAEkD,EAAEV,EAAE,IAAIynD,EAAE/mD,EAAEV,EAAE,IAAIC,EAAES,EAAEV,EAAE,IAAI6nD,EAAEnnD,EAAEV,EAAE,IAAI4qF,EAAElqF,EAAEV,EAAE,IAAIk/G,EAAE3hH,EAAE,GAAGE,EAAEF,EAAE,GAAGyqD,EAAEzqD,EAAE,GAAGoqD,EAAEpqD,EAAE,GAAG2hH,EAAE73G,EAAE63G,EAAEzhH,EAAEuqD,EAAEL,EAAE2Q,EAAE,EAAEx4D,EAAE,IAAI6nD,EAAEtgD,EAAEsgD,EAAEu3D,EAAEzhH,EAAEuqD,EAAErnD,EAAE,GAAGb,EAAE,IAAIkoD,EAAE3gD,EAAE2gD,EAAEL,EAAEu3D,EAAEzhH,EAAE87F,EAAE,GAAGz5F,EAAE,IAAIrC,EAAE4J,EAAE5J,EAAEuqD,EAAEL,EAAEu3D,EAAE74G,EAAE,GAAGvG,EAAE,IAAIo/G,EAAE73G,EAAE63G,EAAEzhH,EAAEuqD,EAAEL,EAAE/kD,EAAE,EAAE9C,EAAE,IAAI6nD,EAAEtgD,EAAEsgD,EAAEu3D,EAAEzhH,EAAEuqD,EAAErlD,EAAE,GAAG7C,EAAE,IAAIkoD,EAAE3gD,EAAE2gD,EAAEL,EAAEu3D,EAAEzhH,EAAEsC,EAAE,GAAGD,EAAE,IAAIrC,EAAE4J,EAAE5J,EAAEuqD,EAAEL,EAAEu3D,EAAE/gH,EAAE,GAAG2B,EAAE,IAAIo/G,EAAE73G,EAAE63G,EAAEzhH,EAAEuqD,EAAEL,EAAEkrI,EAAE,EAAE/yL,EAAE,IAAI6nD,EAAEtgD,EAAEsgD,EAAEu3D,EAAEzhH,EAAEuqD,EAAEjD,EAAE,GAAGjlD,EAAE,IAAIkoD,EAAE3gD,EAAE2gD,EAAEL,EAAEu3D,EAAEzhH,EAAEyC,EAAE,GAAGJ,EAAE,KAAKrC,EAAE4J,EAAE5J,EAAEuqD,EAAEL,EAAEu3D,EAAE1hH,EAAE,GAAGsC,EAAE,KAAKo/G,EAAE73G,EAAE63G,EAAEzhH,EAAEuqD,EAAEL,EAAEF,EAAE,EAAE3nD,EAAE,KAAK6nD,EAAEtgD,EAAEsgD,EAAEu3D,EAAEzhH,EAAEuqD,EAAE/nD,EAAE,GAAGH,EAAE,KAAKkoD,EAAE3gD,EAAE2gD,EAAEL,EAAEu3D,EAAEzhH,EAAEoqD,EAAE,GAAG/nD,EAAE,KAAKo/G,EAAEr5G,EAAEq5G,EAAEzhH,EAAE4J,EAAE5J,EAAEuqD,EAAEL,EAAEu3D,EAAEt0B,EAAE,GAAG9qF,EAAE,KAAKkoD,EAAEL,EAAEhnD,EAAE,EAAEb,EAAE,KAAK6nD,EAAE9hD,EAAE8hD,EAAEu3D,EAAEzhH,EAAEuqD,EAAEjoD,EAAE,EAAED,EAAE,KAAKkoD,EAAEniD,EAAEmiD,EAAEL,EAAEu3D,EAAEzhH,EAAED,EAAE,GAAGsC,EAAE,KAAKrC,EAAEoI,EAAEpI,EAAEuqD,EAAEL,EAAEu3D,EAAE5mD,EAAE,GAAGx4D,EAAE,KAAKo/G,EAAEr5G,EAAEq5G,EAAEzhH,EAAEuqD,EAAEL,EAAEhlD,EAAE,EAAE7C,EAAE,KAAK6nD,EAAE9hD,EAAE8hD,EAAEu3D,EAAEzhH,EAAEuqD,EAAE9nD,EAAE,EAAEJ,EAAE,KAAKkoD,EAAEniD,EAAEmiD,EAAEL,EAAEu3D,EAAEzhH,EAAEmtF,EAAE,GAAG9qF,EAAE,KAAKrC,EAAEoI,EAAEpI,EAAEuqD,EAAEL,EAAEu3D,EAAEt8G,EAAE,GAAG9C,EAAE,KAAKo/G,EAAEr5G,EAAEq5G,EAAEzhH,EAAEuqD,EAAEL,EAAE5C,EAAE,EAAEjlD,EAAE,KAAK6nD,EAAE9hD,EAAE8hD,EAAEu3D,EAAEzhH,EAAEuqD,EAAEH,EAAE,EAAE/nD,EAAE,KAAKkoD,EAAEniD,EAAEmiD,EAAEL,EAAEu3D,EAAEzhH,EAAE4I,EAAE,GAAGvG,EAAE,KAAKrC,EAAEoI,EAAEpI,EAAEuqD,EAAEL,EAAEu3D,EAAE2zE,EAAE,GAAG/yL,EAAE,KAAKo/G,EAAEr5G,EAAEq5G,EAAEzhH,EAAEuqD,EAAEL,EAAE1nD,EAAE,EAAEH,EAAE,KAAK6nD,EAAE9hD,EAAE8hD,EAAEu3D,EAAEzhH,EAAEuqD,EAAEuxC,EAAE,EAAEz5F,EAAE,KAAKkoD,EAAEniD,EAAEmiD,EAAEL,EAAEu3D,EAAEzhH,EAAEU,EAAE,GAAG2B,EAAE,KAAKo/G,EAAEh3G,EAAEg3G,EAAEzhH,EAAEoI,EAAEpI,EAAEuqD,EAAEL,EAAEu3D,EAAEz3D,EAAE,GAAG3nD,EAAE,KAAKkoD,EAAEL,EAAEhlD,EAAE,EAAE7C,EAAE,KAAK6nD,EAAEz/C,EAAEy/C,EAAEu3D,EAAEzhH,EAAEuqD,EAAE6qI,EAAE,GAAG/yL,EAAE,KAAKkoD,EAAE9/C,EAAE8/C,EAAEL,EAAEu3D,EAAEzhH,EAAED,EAAE,GAAGsC,EAAE,KAAKrC,EAAEyK,EAAEzK,EAAEuqD,EAAEL,EAAEu3D,EAAEr3D,EAAE,GAAG/nD,EAAE,KAAKo/G,EAAEh3G,EAAEg3G,EAAEzhH,EAAEuqD,EAAEL,EAAEhnD,EAAE,EAAEb,EAAE,KAAK6nD,EAAEz/C,EAAEy/C,EAAEu3D,EAAEzhH,EAAEuqD,EAAEplD,EAAE,GAAG9C,EAAE,KAAKkoD,EAAE9/C,EAAE8/C,EAAEL,EAAEu3D,EAAEzhH,EAAEU,EAAE,GAAG2B,EAAE,KAAKrC,EAAEyK,EAAEzK,EAAEuqD,EAAEL,EAAEu3D,EAAEh/G,EAAE,GAAGJ,EAAE,KAAKo/G,EAAEh3G,EAAEg3G,EAAEzhH,EAAEuqD,EAAEL,EAAE1nD,EAAE,EAAEH,EAAE,KAAK6nD,EAAEz/C,EAAEy/C,EAAEu3D,EAAEzhH,EAAEuqD,EAAEsQ,EAAE,GAAGx4D,EAAE,KAAKkoD,EAAE9/C,EAAE8/C,EAAEL,EAAEu3D,EAAEzhH,EAAE4I,EAAE,GAAGvG,EAAE,KAAKrC,EAAEyK,EAAEzK,EAAEuqD,EAAEL,EAAEu3D,EAAEn/G,EAAE,GAAGD,EAAE,KAAKo/G,EAAEh3G,EAAEg3G,EAAEzhH,EAAEuqD,EAAEL,EAAE5C,EAAE,EAAEjlD,EAAE,KAAK6nD,EAAEz/C,EAAEy/C,EAAEu3D,EAAEzhH,EAAEuqD,EAAEP,EAAE,GAAG3nD,EAAE,KAAKkoD,EAAE9/C,EAAE8/C,EAAEL,EAAEu3D,EAAEzhH,EAAEmtF,EAAE,GAAG9qF,EAAE,KAAKo/G,EAAE39D,EAAE29D,EAAEzhH,EAAEyK,EAAEzK,EAAEuqD,EAAEL,EAAEu3D,EAAE3lB,EAAE,GAAGz5F,EAAE,KAAKkoD,EAAEL,EAAE2Q,EAAE,EAAEx4D,EAAE,KAAK6nD,EAAEpG,EAAEoG,EAAEu3D,EAAEzhH,EAAEuqD,EAAE7pD,EAAE,GAAG2B,EAAE,KAAKkoD,EAAEzG,EAAEyG,EAAEL,EAAEu3D,EAAEzhH,EAAEoqD,EAAE,GAAG/nD,EAAE,KAAKrC,EAAE8jD,EAAE9jD,EAAEuqD,EAAEL,EAAEu3D,EAAEv8G,EAAE,GAAG7C,EAAE,KAAKo/G,EAAE39D,EAAE29D,EAAEzhH,EAAEuqD,EAAEL,EAAEF,EAAE,EAAE3nD,EAAE,KAAK6nD,EAAEpG,EAAEoG,EAAEu3D,EAAEzhH,EAAEuqD,EAAE3hD,EAAE,GAAGvG,EAAE,KAAKkoD,EAAEzG,EAAEyG,EAAEL,EAAEu3D,EAAEzhH,EAAEyC,EAAE,GAAGJ,EAAE,KAAKrC,EAAE8jD,EAAE9jD,EAAEuqD,EAAEL,EAAEu3D,EAAEv+G,EAAE,GAAGb,EAAE,KAAKo/G,EAAE39D,EAAE29D,EAAEzhH,EAAEuqD,EAAEL,EAAEkrI,EAAE,EAAE/yL,EAAE,KAAK6nD,EAAEpG,EAAEoG,EAAEu3D,EAAEzhH,EAAEuqD,EAAE4iC,EAAE,GAAG9qF,EAAE,KAAKkoD,EAAEzG,EAAEyG,EAAEL,EAAEu3D,EAAEzhH,EAAEsC,EAAE,GAAGD,EAAE,KAAKrC,EAAE8jD,EAAE9jD,EAAEuqD,EAAEL,EAAEu3D,EAAEj/G,EAAE,GAAGH,EAAE,KAAKo/G,EAAE39D,EAAE29D,EAAEzhH,EAAEuqD,EAAEL,EAAE/kD,EAAE,EAAE9C,EAAE,KAAK6nD,EAAEpG,EAAEoG,EAAEu3D,EAAEzhH,EAAEuqD,EAAExqD,EAAE,GAAGsC,EAAE,KAAKkoD,EAAEzG,EAAEyG,EAAEL,EAAEu3D,EAAEzhH,EAAE87F,EAAE,GAAGz5F,EAAE,KAAKrC,EAAE8jD,EAAE9jD,EAAEuqD,EAAEL,EAAEu3D,EAAEn6D,EAAE,GAAGjlD,EAAE,KAAKvC,EAAE,GAAGA,EAAE,GAAG2hH,EAAE,EAAE3hH,EAAE,GAAGA,EAAE,GAAGE,EAAE,EAAEF,EAAE,GAAGA,EAAE,GAAGyqD,EAAE,EAAEzqD,EAAE,GAAGA,EAAE,GAAGoqD,EAAE,CAAC,EAAE3nD,EAAEzD,UAAU6L,GAAG,WAAW,IAAI1H,EAAE5F,KAAK05L,GAAGx0L,EAAEU,EAAE4f,MAAM6iB,EAAE,EAAEroC,KAAK25L,GAAG3uL,EAAE,EAAEpF,EAAE6xL,UAAUvyL,EAAE8F,IAAI,IAAI,KAAK,GAAGA,EAAE,GAAG,IAAIxG,EAAEuJ,KAAK8iD,MAAMxoB,EAAE,YAAY5lC,EAAE4lC,EAAEnjC,EAAE,IAAI8F,EAAE,KAAK,GAAG,IAAI,UAAUxG,GAAG,EAAEA,IAAI,IAAI,YAAYA,GAAG,GAAGA,IAAI,GAAGU,EAAE,IAAI8F,EAAE,KAAK,GAAG,IAAI,UAAUvI,GAAG,EAAEA,IAAI,IAAI,YAAYA,GAAG,GAAGA,IAAI,GAAGmD,EAAE6xL,UAAU,GAAGvyL,EAAEe,OAAO,GAAGjG,KAAK45L,KAAK,IAAI,IAAIp8H,EAAEx9D,KAAK0kE,GAAG1/D,EAAEw4D,EAAEh4C,MAAMjZ,EAAE,EAAEA,EAAE,EAAEA,IAAI,CAAC,IAAIxB,EAAE/F,EAAEuH,GAAGvH,EAAEuH,GAAG,UAAUxB,GAAG,EAAEA,IAAI,IAAI,YAAYA,GAAG,GAAGA,IAAI,EAAE,CAAC,OAAOyyD,CAAC,EAAEt4D,EAAEzD,UAAUm4B,MAAM,WAAW,OAAO,IAAI10B,EAAE,CAAC6wB,KAAK/1B,KAAK0kE,GAAGwkB,UAAUlpF,KAAKwnG,EAAEp9F,KAAKpK,KAAK05L,GAAG7H,OAAO7xL,KAAK25L,IAAI,EAAEz0L,EAAE6wB,KAAK,SAASnwB,GAAG,OAAM,IAAKV,GAAG2vL,SAASjvL,EAAE,EAAEV,CAAC,CAA1pF,CAA4pFzC,EAAEuB,EAAE,EAAE,KAAK,SAAS4B,EAAEV,EAAEmjC,GAAGA,EAAExgC,EAAE3C,EAAE,CAAC20L,IAAI,WAAW,OAAO9uL,CAAC,IAAI,IAAIC,EAAExG,EAAE6jC,EAAE,IAAI5lC,EAAE4lC,EAAE,MAAMm1B,EAAEn1B,EAAE,MAAMrjC,GAAGgG,EAAE,SAASpF,EAAEV,GAAG,OAAO8F,EAAE/K,OAAO8H,gBAAgB,CAACC,UAAU,cAAcC,OAAO,SAASrC,EAAEV,GAAGU,EAAEoC,UAAU9C,CAAC,GAAG,SAASU,EAAEV,GAAG,IAAI,IAAImjC,KAAKnjC,EAAEjF,OAAOwB,UAAU6B,eAAeC,KAAK2B,EAAEmjC,KAAKziC,EAAEyiC,GAAGnjC,EAAEmjC,GAAG,GAAGziC,EAAEV,EAAE,EAAE,SAASU,EAAEV,GAAG,SAASmjC,IAAIroC,KAAKoI,YAAYxC,CAAC,CAACoF,EAAEpF,EAAEV,GAAGU,EAAEnE,UAAU,OAAOyD,EAAEjF,OAAOuC,OAAO0C,IAAImjC,EAAE5mC,UAAUyD,EAAEzD,UAAU,IAAI4mC,EAAE,GAAG97B,EAAE,WAAW,OAAOA,EAAEtM,OAAO6K,QAAQ,SAASlF,GAAG,IAAI,IAAIV,EAAEmjC,EAAE,EAAEr9B,EAAEC,UAAUhF,OAAOoiC,EAAEr9B,EAAEq9B,IAAI,IAAI,IAAI7jC,KAAKU,EAAE+F,UAAUo9B,GAAGpoC,OAAOwB,UAAU6B,eAAeC,KAAK2B,EAAEV,KAAKoB,EAAEpB,GAAGU,EAAEV,IAAI,OAAOoB,CAAC,GAAGf,MAAM7E,KAAKiL,UAAU,EAAEF,EAAE,SAASnF,GAAG,SAASV,EAAEA,GAAG,IAAImjC,EAAEziC,EAAErC,KAAKvD,KAAKkF,IAAIlF,KAAK,OAAOqoC,EAAEynD,EAAE,GAAGznD,EAAEr9B,EAAE,EAAEq9B,EAAE4hB,EAAE,EAAE5hB,EAAE0vJ,EAAE7yL,EAAEmjC,EAAEskB,IAAItkB,CAAC,CAAC,OAAOrjC,EAAEE,EAAEU,GAAGV,EAAEzD,UAAUkrD,EAAE,WAAW,IAAI/mD,EAAE5F,KAAKktD,EAAEhoD,EAAEU,EAAE4f,MAAM6iB,EAAEziC,EAAE6xL,UAAUz3L,KAAK8vF,EAAE,GAAG,IAAI,IAAI9kF,EAAE,EAAEA,EAAE,IAAIA,IAAIhL,KAAK8vF,EAAE9kF,GAAGA,EAAEA,EAAE,EAAE,IAAI,IAAIxG,EAAE,EAAEwG,EAAE,IAAIA,IAAI,CAAC,IAAIvI,EAAEuI,EAAEq9B,EAAEm1B,EAAEt4D,EAAEzC,IAAI,KAAK,GAAGA,EAAE,EAAE,EAAE,IAAI+B,GAAGA,EAAExE,KAAK8vF,EAAE9kF,GAAGwyD,GAAG,IAAI,IAAIx4D,EAAEhF,KAAK8vF,EAAE9kF,GAAGhL,KAAK8vF,EAAE9kF,GAAGhL,KAAK8vF,EAAEtrF,GAAGxE,KAAK8vF,EAAEtrF,GAAGQ,CAAC,CAAChF,KAAKgL,EAAEhL,KAAKiqD,EAAE,CAAC,EAAE/kD,EAAEzD,UAAUg4L,GAAG,SAAS7zL,EAAEV,GAAGU,EAAEV,IAAIlF,KAAK85L,uBAAuB,EAAE50L,EAAEzD,UAAUq4L,sBAAsB,WAAW,IAAI,IAAIl0L,EAAE5F,KAAK8vF,EAAE5qF,EAAElF,KAAKgL,EAAEq9B,EAAEroC,KAAKiqD,EAAEj/C,EAAE,EAAExG,EAAE,EAAEA,EAAE,EAAEA,IAAI,CAAC6jC,GAAGA,EAAEziC,EAAEV,GAAGA,EAAE,GAAG,MAAM,IAAI,IAAIzC,EAAEmD,EAAEV,GAAGU,EAAEV,GAAGU,EAAEyiC,GAAGziC,EAAEyiC,GAAG5lC,EAAEuI,GAAGpF,GAAGA,EAAEV,GAAGU,EAAEyiC,IAAI,MAAM,GAAG,EAAE7jC,CAAC,CAAC,OAAOxE,KAAKgL,EAAE9F,EAAElF,KAAKiqD,EAAE5hB,EAAEr9B,CAAC,EAAE9F,EAAE+yL,gBAAgB,SAASryL,EAAEyiC,GAAG,OAAO,IAAInjC,EAAEqH,EAAEA,EAAE,CAAC,EAAE87B,OAAE,IAASA,EAAE,CAAC,EAAEA,GAAG,CAACxmC,IAAI+D,IAAI,EAAEV,EAAEkzL,gBAAgB,SAASxyL,EAAEyiC,GAAG,OAAO,IAAInjC,EAAEqH,EAAEA,EAAE,CAAC,EAAE87B,OAAE,IAASA,EAAE,CAAC,EAAEA,GAAG,CAACxmC,IAAI+D,IAAI,EAAEV,EAAEisF,QAAQ,SAASvrF,EAAEyiC,EAAEr9B,GAAG,MAAM,iBAAiBq9B,EAAE5lC,EAAEsqD,EAAEokC,QAAQjsF,EAAEU,EAAEyiC,EAAEr9B,GAAGwyD,EAAE1Q,EAAEqkC,QAAQjsF,EAAEU,EAAEyiC,EAAEr9B,EAAE,EAAE9F,EAAEmsF,QAAQ,SAASzrF,EAAEyiC,EAAEr9B,GAAG,MAAM,iBAAiBq9B,EAAE5lC,EAAEsqD,EAAEskC,QAAQnsF,EAAEU,EAAEyiC,EAAEr9B,GAAGwyD,EAAE1Q,EAAEukC,QAAQnsF,EAAEU,EAAEyiC,EAAEr9B,EAAE,EAAE9F,EAAEwzL,OAAO,EAAExzL,EAAEwgH,QAAQ,EAAExgH,CAAC,CAAp/B,CAAs/BV,EAAEi5D,EAAE,EAAE,KAAK,SAAS73D,EAAEV,EAAEmjC,GAAGA,EAAExgC,EAAE3C,EAAE,CAAC60L,QAAQ,WAAW,OAAOhvL,CAAC,IAAI,IAAIC,EAAExG,EAAE6jC,EAAE,MAAM5lC,EAAE4lC,EAAE,MAAMm1B,EAAEn1B,EAAE,MAAMrjC,GAAGgG,EAAE,SAASpF,EAAEV,GAAG,OAAO8F,EAAE/K,OAAO8H,gBAAgB,CAACC,UAAU,cAAcC,OAAO,SAASrC,EAAEV,GAAGU,EAAEoC,UAAU9C,CAAC,GAAG,SAASU,EAAEV,GAAG,IAAI,IAAImjC,KAAKnjC,EAAEjF,OAAOwB,UAAU6B,eAAeC,KAAK2B,EAAEmjC,KAAKziC,EAAEyiC,GAAGnjC,EAAEmjC,GAAG,GAAGziC,EAAEV,EAAE,EAAE,SAASU,EAAEV,GAAG,SAASmjC,IAAIroC,KAAKoI,YAAYxC,CAAC,CAACoF,EAAEpF,EAAEV,GAAGU,EAAEnE,UAAU,OAAOyD,EAAEjF,OAAOuC,OAAO0C,IAAImjC,EAAE5mC,UAAUyD,EAAEzD,UAAU,IAAI4mC,EAAE,GAAG97B,EAAE,WAAW,OAAOA,EAAEtM,OAAO6K,QAAQ,SAASlF,GAAG,IAAI,IAAIV,EAAEmjC,EAAE,EAAEr9B,EAAEC,UAAUhF,OAAOoiC,EAAEr9B,EAAEq9B,IAAI,IAAI,IAAI7jC,KAAKU,EAAE+F,UAAUo9B,GAAGpoC,OAAOwB,UAAU6B,eAAeC,KAAK2B,EAAEV,KAAKoB,EAAEpB,GAAGU,EAAEV,IAAI,OAAOoB,CAAC,GAAGf,MAAM7E,KAAKiL,UAAU,EAAEF,EAAE,SAASnF,GAAG,SAASV,EAAEA,GAAG,IAAImjC,EAAEziC,EAAErC,KAAKvD,KAAKkF,IAAIlF,KAAK,OAAOqoC,EAAE2xJ,KAAK,IAAI3xJ,EAAE0vJ,EAAE7yL,EAAEA,GAAG,iBAAiBA,EAAE80L,OAAO3xJ,EAAE2xJ,KAAK90L,EAAE80L,MAAM3xJ,EAAEskB,IAAItkB,CAAC,CAAC,OAAOrjC,EAAEE,EAAEU,GAAGV,EAAEzD,UAAUkrD,EAAE,WAAW/mD,EAAEnE,UAAUkrD,EAAEppD,KAAKvD,MAAM,IAAI,IAAIkF,EAAElF,KAAKg6L,KAAK90L,EAAE,EAAEA,IAAIlF,KAAK85L,uBAAuB,EAAE50L,EAAE+yL,gBAAgB,SAASryL,EAAEyiC,GAAG,OAAO,IAAInjC,EAAEqH,EAAEA,EAAE,CAAC,EAAE87B,OAAE,IAASA,EAAE,CAAC,EAAEA,GAAG,CAACxmC,IAAI+D,IAAI,EAAEV,EAAEkzL,gBAAgB,SAASxyL,EAAEyiC,GAAG,OAAO,IAAInjC,EAAEqH,EAAEA,EAAE,CAAC,EAAE87B,OAAE,IAASA,EAAE,CAAC,EAAEA,GAAG,CAACxmC,IAAI+D,IAAI,EAAEV,EAAEisF,QAAQ,SAASvrF,EAAEyiC,EAAEr9B,GAAG,MAAM,iBAAiBq9B,EAAE7jC,EAAEuoD,EAAEokC,QAAQjsF,EAAEU,EAAEyiC,EAAEr9B,GAAGvI,EAAEqqD,EAAEqkC,QAAQjsF,EAAEU,EAAEyiC,EAAEr9B,EAAE,EAAE9F,EAAEmsF,QAAQ,SAASzrF,EAAEyiC,EAAEr9B,GAAG,MAAM,iBAAiBq9B,EAAE7jC,EAAEuoD,EAAEskC,QAAQnsF,EAAEU,EAAEyiC,EAAEr9B,GAAGvI,EAAEqqD,EAAEukC,QAAQnsF,EAAEU,EAAEyiC,EAAEr9B,EAAE,EAAE9F,CAAC,CAA5lB,CAA8lBs4D,EAAEq8H,IAAI,EAAE,KAAK,SAASj0L,EAAEV,EAAEmjC,GAAGA,EAAExgC,EAAE3C,EAAE,CAAC83C,UAAU,WAAW,OAAO+6I,CAAC,IAAI,IAAI/sL,EAAExG,EAAE6jC,EAAE,MAAM5lC,EAAE4lC,EAAE,MAAMm1B,GAAGxyD,EAAE,SAASpF,EAAEV,GAAG,OAAO8F,EAAE/K,OAAO8H,gBAAgB,CAACC,UAAU,cAAcC,OAAO,SAASrC,EAAEV,GAAGU,EAAEoC,UAAU9C,CAAC,GAAG,SAASU,EAAEV,GAAG,IAAI,IAAImjC,KAAKnjC,EAAEjF,OAAOwB,UAAU6B,eAAeC,KAAK2B,EAAEmjC,KAAKziC,EAAEyiC,GAAGnjC,EAAEmjC,GAAG,GAAGziC,EAAEV,EAAE,EAAE,SAASU,EAAEV,GAAG,SAASmjC,IAAIroC,KAAKoI,YAAYxC,CAAC,CAACoF,EAAEpF,EAAEV,GAAGU,EAAEnE,UAAU,OAAOyD,EAAEjF,OAAOuC,OAAO0C,IAAImjC,EAAE5mC,UAAUyD,EAAEzD,UAAU,IAAI4mC,EAAE,GAAGrjC,EAAE,IAAIvC,EAAE+B,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,KAAK+H,EAAE,IAAI9J,EAAE+B,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,KAAKuG,EAAE,IAAItI,EAAE+B,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,IAAI4I,EAAE,IAAI3K,EAAE+B,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GA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E,WAAW,YAAY,IAAI5lC,EAAE4lC,EAAE,UAAU,YAAY,IAAI5lC,EAAE4lC,EAAE,UAAU,WAAW,IAAI5lC,EAAE4lC,EAAE,UAAU,YAAY,IAAI5lC,EAAE4lC,EAAE,UAAU,YAAY,IAAI5lC,EAAE4lC,EAAE,WAAW,YAAY,IAAI5lC,EAAE4lC,EAAE,WAAW,YAAY,IAAI5lC,EAAE4lC,EAAE,WAAW,YAAY,IAAI5lC,EAAE4lC,EAAE,WAAW,YAAY,IAAI5lC,EAAE4lC,EAAE,WAAW,YAAY,IAAI5lC,EAAE4lC,EAAE,WAAW,WAAW,IAAI5lC,EAAE4lC,EAAE,WAAW,YAAY,IAAI5lC,EAAE4lC,EAAE,WAAW,YAAY,IAAI5lC,EAAE4lC,EAAE,WAAW,YAAY,IAAI5lC,EAAE4lC,EAAE,WAAW,WAAW,IAAI5lC,EAAE4lC,EAAE,WAAW,YAAY,IAAI5lC,EAAE4lC,EAAE,WAAW,YAAY,IAAI5lC,EAAE4lC,EAAE,WAAW,YAAY,IAAI5lC,EAAE4lC,EAAE,UAAU,WAAW,IAAI5lC,EAAE4lC,EAAE,UAAU,YAAY,IAAI5lC,EAAE4lC,EAAE,UAAU,YAAY,IAAI5lC,EAAE4lC,EAAE,UAAU,YAAY,IAAI5lC,EAAE4lC,EAAE,UAAU,YAAY,IAAI5lC,EAAE4lC,EAAE,UAAU,YAAY,IAAI5lC,EAAE4lC,EAAE,WAAW,YAAY,IAAI5lC,EAAE4lC,EAAE,WAAW,YAAY,IAAI5lC,EAAE4lC,EAAE,WAAW,YAAY,IAAI5lC,EAAE4lC,EAAE,WAAW,YAAY,IAAI5lC,EAAE4lC,EAAE,WAAW,YAAY,IAAI5lC,EAAE4lC,EAAE,WAAW,YAAY,IAAI5lC,EAAE4lC,EAAE,WAAW,WAAW,IAAI5lC,EAAE4lC,EAAE,WAAW,WAAW,IAAI5lC,EAAE4lC,EAAE,WAAW,YAAY,IAAI5lC,EAAE4lC,EAAE,WAAW,YAAY,IAAI5lC,EAAE4lC,EAAE,WAAW,YAAY,IAAI5lC,EAAE4lC,EAAE,WAAW,YAAY,IAAI5lC,EAAE4lC,EAAE,WAAW,WAAW,IAAI5lC,EAAE4lC,EAAE,WAAW,YAAY,IAAI5lC,EAAE4lC,EAAE,WAAW,YAAY,IAAI5lC,EA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","sources":["webpack://jmes/webpack/universalModuleDefinition","webpack://jmes/./build/CONSTANTS.js","webpack://jmes/./build/Client/Client.js","webpack://jmes/./build/Client/index.js","webpack://jmes/./build/Client/providers/FaucetAPI/FaucetAPI.js","webpack://jmes/./build/Client/providers/FaucetAPI/methods/requestCredit.js","webpack://jmes/./build/Client/providers/IdentityAPI/IdentityAPI.js","webpack://jmes/./build/Client/providers/IdentityAPI/methods/createIdentity.js","webpack://jmes/./build/Client/providers/IdentityAPI/methods/getIdentity.js","webpack://jmes/./build/Client/providers/IdentityAPI/methods/getToken.js","webpack://jmes/./build/Client/providers/LCDClient/core/Block.js","webpack://jmes/./build/Client/providers/LCDClient/core/Coin.js","webpack://jmes/./build/Client/providers/LCDClient/core/Coins.js","webpack://jmes/./build/Client/providers/LCDClient/core/CompactBitArray.js","webpack://jmes/./build/Client/providers/LCDClient/core/Denom.js","webpack://jmes/./build/Client/providers/LCDClient/core/Deposit.js","webpack://jmes/./build/Client/providers/LCDClient/core/Fee.js","webpack://jmes/./build/Client/providers/LCDClient/core/Msg.js","webpack://jmes/./build/Client/providers/LCDClient/core/MultiSignature.js","webpack://jmes/./build/Client/providers/LCDClient/core/PublicKey.js","webpack://jmes/./build/Client/providers/LCDClient/core/SignDoc.js","webpack://jmes/./build/Client/providers/LCDClient/core/SignatureV2.js","webpack://jmes/./build/Client/providers/LCDClient/core/Tx.js","webpack://jmes/./build/Client/providers/LCDClient/core/TxInfo.js","webpack://jmes/./build/Client/providers/LCDClient/core/ValidatorSet.js","webpack://jmes/./build/Client/providers/LCDClient/core/auth/Account.js","webpack://jmes/./build/Client/providers/LCDClient/core/auth/BaseAccount.js","webpack://jmes/./build/Client/providers/LCDClient/core/auth/BaseVestingAccount.js","webpack://jmes/./build/Client/providers/LCDClient/core/auth/ContinuousVestingAccount.js","webpack://jmes/./build/Client/providers/LCDClient/core/auth/DelayedVestingAccount.js","webpack://jmes/./build/Client/providers/LCDClient/core/auth/LazyGradedVestingAccount.js","webpack://jmes/./build/Client/providers/LCDClient/core/auth/PeriodicVestingAccount.js","webpack://jmes/./build/Client/providers/LCDClient/core/authz/authorizations/Authorization.js","webpack://jmes/./build/Client/providers/LCDClient/core/authz/authorizations/GenericAuthorization.js","webpack://jmes/./build/Client/providers/LCDClient/core/authz/authorizations/SendAuthorization.js","webpack://jmes/./build/Client/providers/LCDClient/core/authz/authorizations/StakeAuthorization.js","webpack://jmes/./build/Client/providers/LCDClient/core/authz/authorizations/index.js","webpack://jmes/./build/Client/providers/LCDClient/core/authz/msgs/MsgExecAuthorized.js","webpack://jmes/./build/Client/providers/LCDClient/core/authz/msgs/MsgGrantAuthorization.js","webpack://jmes/./build/Client/providers/LCDClient/core/authz/msgs/MsgRevokeAuthorization.js","webpack://jmes/./build/Client/providers/LCDClient/core/authz/msgs/index.js","webpack://jmes/./build/Client/providers/LCDClient/core/bank/msgs/MsgMultiSend.js","webpack://jmes/./build/Client/providers/LCDClient/core/bank/msgs/MsgSend.js","webpack://jmes/./build/Client/providers/LCDClient/core/bank/msgs/index.js","webpack://jmes/./build/Client/providers/LCDClient/core/bech32.js","webpack://jmes/./build/Client/providers/LCDClient/core/crisis/MsgVerifyInvariant.js","webpack://jmes/./build/Client/providers/LCDClient/core/crisis/index.js","webpack://jmes/./build/Client/providers/LCDClient/core/distribution/msgs/MsgFundCommunityPool.js","webpack://jmes/./build/Client/providers/LCDClient/core/distribution/msgs/MsgSetWithdrawAddress.js","webpack://jmes/./build/Client/providers/LCDClient/core/distribution/msgs/MsgWithdrawDelegatorReward.js","webpack://jmes/./build/Client/providers/LCDClient/core/distribution/msgs/MsgWithdrawValidatorCommission.js","webpack://jmes/./build/Client/providers/LCDClient/core/distribution/msgs/index.js","webpack://jmes/./build/Client/providers/LCDClient/core/distribution/proposals/CommunityPoolSpendProposal.js","webpack://jmes/./build/Client/providers/LCDClient/core/distribution/proposals/index.js","webpack://jmes/./build/Client/providers/LCDClient/core/feegrant/allowances/AllowedMsgAllowance.js","webpack://jmes/./build/Client/providers/LCDClient/core/feegrant/allowances/BasicAllowance.js","webpack://jmes/./build/Client/providers/LCDClient/core/feegrant/allowances/PeriodicAllowance.js","webpack://jmes/./build/Client/providers/LCDClient/core/feegrant/allowances/index.js","webpack://jmes/./build/Client/providers/LCDClient/core/feegrant/msgs/MsgGrantAllowance.js","webpack://jmes/./build/Client/providers/LCDClient/core/feegrant/msgs/MsgRevokeAllowance.js","webpack://jmes/./build/Client/providers/LCDClient/core/feegrant/msgs/index.js","webpack://jmes/./build/Client/providers/LCDClient/core/gov/Proposal.js","webpack://jmes/./build/Client/providers/LCDClient/core/gov/Vote.js","webpack://jmes/./build/Client/providers/LCDClient/core/gov/msgs/MsgDeposit.js","webpack://jmes/./build/Client/providers/LCDClient/core/gov/msgs/MsgSubmitProposal.js","webpack://jmes/./build/Client/providers/LCDClient/core/gov/msgs/MsgVote.js","webpack://jmes/./build/Client/providers/LCDClient/core/gov/msgs/MsgVoteWeighted.js","webpack://jmes/./build/Client/providers/LCDClient/core/gov/msgs/index.js","webpack://jmes/./build/Client/providers/LCDClient/core/gov/proposals/TextProposal.js","webpack://jmes/./build/Client/providers/LCDClient/core/gov/proposals/index.js","webpack://jmes/./build/Client/providers/LCDClient/core/ibc/applications/interchain-account/host/Params.js","webpack://jmes/./build/Client/providers/LCDClient/core/ibc/applications/transfer/index.js","webpack://jmes/./build/Client/providers/LCDClient/core/ibc/applications/transfer/v1/DenomTrace.js","webpack://jmes/./build/Client/providers/LCDClient/core/ibc/applications/transfer/v1/msgs/MsgTransfer.js","webpack://jmes/./build/Client/providers/LCDClient/core/ibc/applications/transfer/v2/FungibleTokenPacketData.js","webpack://jmes/./build/Client/providers/LCDClient/core/ibc/core/channel/Channel.js","webpack://jmes/./build/Client/providers/LCDClient/core/ibc/core/channel/Counterparty.js","webpack://jmes/./build/Client/providers/LCDClient/core/ibc/core/channel/Packet.js","webpack://jmes/./build/Client/providers/LCDClient/core/ibc/core/channel/PacketId.js","webpack://jmes/./build/Client/providers/LCDClient/core/ibc/core/channel/index.js","webpack://jmes/./build/Client/providers/LCDClient/core/ibc/core/client/Height.js","webpack://jmes/./build/Client/providers/LCDClient/core/ibc/core/client/IdentifiedClient.js","webpack://jmes/./build/Client/providers/LCDClient/core/ibc/core/commitment/MerklePrefix.js","webpack://jmes/./build/Client/providers/LCDClient/core/ibc/core/connection/Counterparty.js","webpack://jmes/./build/Client/providers/LCDClient/core/ibc/core/connection/IdentifiedConnection.js","webpack://jmes/./build/Client/providers/LCDClient/core/ibc/core/connection/Version.js","webpack://jmes/./build/Client/providers/LCDClient/core/ibc/core/connection/index.js","webpack://jmes/./build/Client/providers/LCDClient/core/ibc/lightclient/tendermint/Header.js","webpack://jmes/./build/Client/providers/LCDClient/core/ibc/msgs/channel/MsgChannelCloseConfirm.js","webpack://jmes/./build/Client/providers/LCDClient/core/ibc/msgs/channel/MsgChannelCloseInit.js","webpack://jmes/./build/Client/providers/LCDClient/core/ibc/msgs/channel/MsgChannelOpenAck.js","webpack://jmes/./build/Client/providers/LCDClient/core/ibc/msgs/channel/MsgChannelOpenConfirm.js","webpack://jmes/./build/Client/providers/LCDClient/core/ibc/msgs/channel/MsgChannelOpenInit.js","webpack://jmes/./build/Client/providers/LCDClient/core/ibc/msgs/channel/MsgChannelOpenTry.js","webpack://jmes/./build/Client/providers/LCDClient/core/ibc/msgs/channel/MsgRecvAcknowledgement.js","webpack://jmes/./build/Client/providers/LCDClient/core/ibc/msgs/channel/MsgRecvPacket.js","webpack://jmes/./build/Client/providers/LCDClient/core/ibc/msgs/channel/MsgTimeout.js","webpack://jmes/./build/Client/providers/LCDClient/core/ibc/msgs/channel/MsgTimeoutClose.js","webpack://jmes/./build/Client/providers/LCDClient/core/ibc/msgs/channel/index.js","webpack://jmes/./build/Client/providers/LCDClient/core/ibc/msgs/client/MsgCreateClient.js","webpack://jmes/./build/Client/providers/LCDClient/core/ibc/msgs/client/MsgSubmitMisbehaviour.js","webpack://jmes/./build/Client/providers/LCDClient/core/ibc/msgs/client/MsgUpdateClient.js","webpack://jmes/./build/Client/providers/LCDClient/core/ibc/msgs/client/MsgUpgradeClient.js","webpack://jmes/./build/Client/providers/LCDClient/core/ibc/msgs/client/index.js","webpack://jmes/./build/Client/providers/LCDClient/core/ibc/msgs/client/tendermint/crypto.js","webpack://jmes/./build/Client/providers/LCDClient/core/ibc/msgs/client/tendermint/types.js","webpack://jmes/./build/Client/providers/LCDClient/core/ibc/msgs/client/tendermint/version.js","webpack://jmes/./build/Client/providers/LCDClient/core/ibc/msgs/connection/MsgConnectionOpenAck.js","webpack://jmes/./build/Client/providers/LCDClient/core/ibc/msgs/connection/MsgConnectionOpenConfirm.js","webpack://jmes/./build/Client/providers/LCDClient/core/ibc/msgs/connection/MsgConnectionOpenInit.js","webpack://jmes/./build/Client/providers/LCDClient/core/ibc/msgs/connection/MsgConnectionOpenTry.js","webpack://jmes/./build/Client/providers/LCDClient/core/ibc/msgs/connection/index.js","webpack://jmes/./build/Client/providers/LCDClient/core/ibc/proposals/ClientUpdateProposal.js","webpack://jmes/./build/Client/providers/LCDClient/core/ibc/proposals/index.js","webpack://jmes/./build/Client/providers/LCDClient/core/index.js","webpack://jmes/./build/Client/providers/LCDClient/core/market/msgs/MsgSwap.js","webpack://jmes/./build/Client/providers/LCDClient/core/market/msgs/MsgSwapSend.js","webpack://jmes/./build/Client/providers/LCDClient/core/market/msgs/index.js","webpack://jmes/./build/Client/providers/LCDClient/core/numeric.js","webpack://jmes/./build/Client/providers/LCDClient/core/oracle/AggregateExchangeRatePrevote.js","webpack://jmes/./build/Client/providers/LCDClient/core/oracle/AggregateExchangeRateVote.js","webpack://jmes/./build/Client/providers/LCDClient/core/oracle/msgs/MsgAggregateExchangeRatePrevote.js","webpack://jmes/./build/Client/providers/LCDClient/core/oracle/msgs/MsgAggregateExchangeRateVote.js","webpack://jmes/./build/Client/providers/LCDClient/core/oracle/msgs/MsgDelegateFeedConsent.js","webpack://jmes/./build/Client/providers/LCDClient/core/oracle/msgs/index.js","webpack://jmes/./build/Client/providers/LCDClient/core/params/ParamChange.js","webpack://jmes/./build/Client/providers/LCDClient/core/params/proposals/ParameterChangeProposal.js","webpack://jmes/./build/Client/providers/LCDClient/core/params/proposals/index.js","webpack://jmes/./build/Client/providers/LCDClient/core/slashing/msgs/MsgUnjail.js","webpack://jmes/./build/Client/providers/LCDClient/core/slashing/msgs/index.js","webpack://jmes/./build/Client/providers/LCDClient/core/staking/Delegation.js","webpack://jmes/./build/Client/providers/LCDClient/core/staking/Redelegation.js","webpack://jmes/./build/Client/providers/LCDClient/core/staking/UnbondingDelegation.js","webpack://jmes/./build/Client/providers/LCDClient/core/staking/Validator.js","webpack://jmes/./build/Client/providers/LCDClient/core/staking/msgs/MsgBeginRedelegate.js","webpack://jmes/./build/Client/providers/LCDClient/core/staking/msgs/MsgCreateValidator.js","webpack://jmes/./build/Client/providers/LCDClient/core/staking/msgs/MsgDelegate.js","webpack://jmes/./build/Client/providers/LCDClient/core/staking/msgs/MsgEditValidator.js","webpack://jmes/./build/Client/providers/LCDClient/core/staking/msgs/MsgUndelegate.js","webpack://jmes/./build/Client/providers/LCDClient/core/staking/msgs/index.js","webpack://jmes/./build/Client/providers/LCDClient/core/treasury/PolicyConstraints.js","webpack://jmes/./build/Client/providers/LCDClient/core/upgrade/Plan.js","webpack://jmes/./build/Client/providers/LCDClient/core/upgrade/index.js","webpack://jmes/./build/Client/providers/LCDClient/core/upgrade/proposals/CancelSoftwareUpgradeProposal.js","webpack://jmes/./build/Client/providers/LCDClient/core/upgrade/proposals/SoftwareUpgradeProposal.js","webpack://jmes/./build/Client/providers/LCDClient/core/upgrade/proposals/index.js","webpack://jmes/./build/Client/providers/LCDClient/core/vesting/Period.js","webpack://jmes/./build/Client/providers/LCDClient/core/vesting/index.js","webpack://jmes/./build/Client/providers/LCDClient/core/vesting/msgs/MsgCreatePeriodicVestingAccount.js","webpack://jmes/./build/Client/providers/LCDClient/core/vesting/msgs/MsgCreateVestingAccount.js","webpack://jmes/./build/Client/providers/LCDClient/core/vesting/msgs/MsgDonateAllVestingTokens.js","webpack://jmes/./build/Client/providers/LCDClient/core/vesting/msgs/index.js","webpack://jmes/./build/Client/providers/LCDClient/core/wasm/AbsoluteTxPosition.js","webpack://jmes/./build/Client/providers/LCDClient/core/wasm/AccessConfig.js","webpack://jmes/./build/Client/providers/LCDClient/core/wasm/AccessConfigUpdate.js","webpack://jmes/./build/Client/providers/LCDClient/core/wasm/AccessTypeParam.js","webpack://jmes/./build/Client/providers/LCDClient/core/wasm/HistoryEntry.js","webpack://jmes/./build/Client/providers/LCDClient/core/wasm/index.js","webpack://jmes/./build/Client/providers/LCDClient/core/wasm/msgs/MsgClearContractAdmin.js","webpack://jmes/./build/Client/providers/LCDClient/core/wasm/msgs/MsgExecuteContract.js","webpack://jmes/./build/Client/providers/LCDClient/core/wasm/msgs/MsgInstantiateContract.js","webpack://jmes/./build/Client/providers/LCDClient/core/wasm/msgs/MsgMigrateCode.js","webpack://jmes/./build/Client/providers/LCDClient/core/wasm/msgs/MsgMigrateContract.js","webpack://jmes/./build/Client/providers/LCDClient/core/wasm/msgs/MsgStoreCode.js","webpack://jmes/./build/Client/providers/LCDClient/core/wasm/msgs/MsgUpdateContractAdmin.js","webpack://jmes/./build/Client/providers/LCDClient/core/wasm/msgs/index.js","webpack://jmes/./build/Client/providers/LCDClient/core/wasm/proposals/ClearAdminProposal.js","webpack://jmes/./build/Client/providers/LCDClient/core/wasm/proposals/ExecuteContractProposal.js","webpack://jmes/./build/Client/providers/LCDClient/core/wasm/proposals/InstantiateContractProposal.js","webpack://jmes/./build/Client/providers/LCDClient/core/wasm/proposals/MigrateContractProposal.js","webpack://jmes/./build/Client/providers/LCDClient/core/wasm/proposals/PinCodesProposal.js","webpack://jmes/./build/Client/providers/LCDClient/core/wasm/proposals/StoreCodeProposal.js","webpack://jmes/./build/Client/providers/LCDClient/core/wasm/proposals/SudoContractProposal.js","webpack://jmes/./build/Client/providers/LCDClient/core/wasm/proposals/UnpinCodesProposal.js","webpack://jmes/./build/Client/providers/LCDClient/core/wasm/proposals/UpdateAdminProposal.js","webpack://jmes/./build/Client/providers/LCDClient/core/wasm/proposals/UpdateInstantiateConfigProposal.js","webpack://jmes/./build/Client/providers/LCDClient/core/wasm/proposals/index.js","webpack://jmes/./build/Client/providers/LCDClient/core/wasm/util.js","webpack://jmes/./build/Client/providers/LCDClient/key/Key.js","webpack://jmes/./build/Client/providers/LCDClient/key/MnemonicKey.js","webpack://jmes/./build/Client/providers/LCDClient/key/RawKey.js","webpack://jmes/./build/Client/providers/LCDClient/key/index.js","webpack://jmes/./build/Client/providers/LCDClient/lcd/APIRequester.js","webpack://jmes/./build/Client/providers/LCDClient/lcd/LCDClient.js","webpack://jmes/./build/Client/providers/LCDClient/lcd/LCDUtils.js","webpack://jmes/./build/Client/providers/LCDClient/lcd/Wallet.js","webpack://jmes/./build/Client/providers/LCDClient/lcd/api/AuthAPI.js","webpack://jmes/./build/Client/providers/LCDClient/lcd/api/AuthzAPI.js","webpack://jmes/./build/Client/providers/LCDClient/lcd/api/BankAPI.js","webpack://jmes/./build/Client/providers/LCDClient/lcd/api/BaseAPI.js","webpack://jmes/./build/Client/providers/LCDClient/lcd/api/DistributionAPI.js","webpack://jmes/./build/Client/providers/LCDClient/lcd/api/FeeGrantAPI.js","webpack://jmes/./build/Client/providers/LCDClient/lcd/api/GovAPI.js","webpack://jmes/./build/Client/providers/LCDClient/lcd/api/IbcAPI.js","webpack://jmes/./build/Client/providers/LCDClient/lcd/api/IbcTransferAPI.js","webpack://jmes/./build/Client/providers/LCDClient/lcd/api/MarketAPI.js","webpack://jmes/./build/Client/providers/LCDClient/lcd/api/MintAPI.js","webpack://jmes/./build/Client/providers/LCDClient/lcd/api/OracleAPI.js","webpack://jmes/./build/Client/providers/LCDClient/lcd/api/SlashingAPI.js","webpack://jmes/./build/Client/providers/LCDClient/lcd/api/StakingAPI.js","webpack://jmes/./build/Client/providers/LCDClient/lcd/api/TendermintAPI.js","webpack://jmes/./build/Client/providers/LCDClient/lcd/api/TreasuryAPI.js","webpack://jmes/./build/Client/providers/LCDClient/lcd/api/TxAPI.js","webpack://jmes/./build/Client/providers/LCDClient/lcd/api/WasmAPI.js","webpack://jmes/./build/Client/providers/LCDClient/lcd/api/index.js","webpack://jmes/./build/Client/providers/LCDClient/util/hash.js","webpack://jmes/./build/Client/providers/LCDClient/util/json.js","webpack://jmes/./build/Client/providers/MarketplaceAPI/MarketplaceAPI.js","webpack://jmes/./build/Client/providers/MarketplaceAPI/methods/findItem.js","webpack://jmes/./build/Client/providers/MarketplaceAPI/methods/getAllItems.js","webpack://jmes/./build/Client/providers/MarketplaceAPI/methods/getAuthor.js","webpack://jmes/./build/Client/providers/MarketplaceAPI/methods/getAuthors.js","webpack://jmes/./build/Client/providers/MarketplaceAPI/methods/getFeed.js","webpack://jmes/./build/Client/providers/MarketplaceAPI/methods/getItem.js","webpack://jmes/./build/Client/providers/MarketplaceAPI/methods/mintItem.js","webpack://jmes/./build/Client/providers/MarketplaceAPI/methods/postItemOffer.js","webpack://jmes/./build/Client/providers/MarketplaceAPI/methods/postItemVote.js","webpack://jmes/./build/index.js","webpack://jmes/./build/primitives/Account/Account.js","webpack://jmes/./build/primitives/Account/index.js","webpack://jmes/./build/primitives/DerivableKey/DerivableKey.js","webpack://jmes/./build/primitives/DerivableKey/index.js","webpack://jmes/./build/primitives/Mnemonic/Mnemonic.js","webpack://jmes/./build/primitives/Mnemonic/index.js","webpack://jmes/./build/primitives/Wallet/Wallet.js","webpack://jmes/./build/primitives/Wallet/index.js","webpack://jmes/./build/primitives/index.js","webpack://jmes/./node_modules/@ethersproject/providers/node_modules/bech32/index.js","webpack://jmes/./node_modules/@noble/hashes/_assert.js","webpack://jmes/./node_modules/@noble/hashes/_sha2.js","webpack://jmes/./node_modules/@noble/hashes/_u64.js","webpack://jmes/./node_modules/@noble/hashes/cryptoBrowser.js","webpack://jmes/./node_modules/@noble/hashes/hmac.js","webpack://jmes/./node_modules/@noble/hashes/ripemd160.js","webpack://jmes/./node_modules/@noble/hashes/sha256.js","webpack://jmes/./node_modules/@noble/hashes/sha512.js","webpack://jmes/./node_modules/@noble/hashes/utils.js","webpack://jmes/./node_modules/@noble/secp256k1/lib/index.js","webpack://jmes/./node_modules/@protobufjs/aspromise/index.js","webpack://jmes/./node_modules/@protobufjs/base64/index.js","webpack://jmes/./node_modules/@protobufjs/eventemitter/index.js","webpack://jmes/./node_modules/@protobufjs/float/index.js","webpack://jmes/./node_modules/@protobufjs/inquire/index.js","webpack://jmes/./node_modules/@protobufjs/pool/index.js","webpack://jmes/./node_modules/@protobufjs/utf8/index.js","webpack://jmes/./node_modules/@scure/base/lib/index.js","webpack://jmes/./node_modules/@scure/bip32/lib/index.js","webpack://jmes/./node_modules/@terra-money/legacy.proto/cosmos/auth/v1beta1/auth.js","webpack://jmes/./node_modules/@terra-money/legacy.proto/cosmos/base/abci/v1beta1/abci.js","webpack://jmes/./node_modules/@terra-money/legacy.proto/cosmos/base/query/v1beta1/pagination.js","webpack://jmes/./node_modules/@terra-money/legacy.proto/cosmos/base/v1beta1/coin.js","webpack://jmes/./node_modules/@terra-money/legacy.proto/cosmos/crypto/multisig/v1beta1/multisig.js","webpack://jmes/./node_modules/@terra-money/legacy.proto/cosmos/distribution/v1beta1/tx.js","webpack://jmes/./node_modules/@terra-money/legacy.proto/cosmos/gov/v1beta1/gov.js","webpack://jmes/./node_modules/@terra-money/legacy.proto/cosmos/params/v1beta1/params.js","webpack://jmes/./node_modules/@terra-money/legacy.proto/cosmos/tx/signing/v1beta1/signing.js","webpack://jmes/./node_modules/@terra-money/legacy.proto/cosmos/tx/v1beta1/service.js","webpack://jmes/./node_modules/@terra-money/legacy.proto/cosmos/tx/v1beta1/tx.js","webpack://jmes/./node_modules/@terra-money/legacy.proto/cosmos/upgrade/v1beta1/upgrade.js","webpack://jmes/./node_modules/@terra-money/legacy.proto/cosmos/vesting/v1beta1/vesting.js","webpack://jmes/./node_modules/@terra-money/legacy.proto/google/protobuf/any.js","webpack://jmes/./node_modules/@terra-money/legacy.proto/google/protobuf/duration.js","webpack://jmes/./node_modules/@terra-money/legacy.proto/google/protobuf/timestamp.js","webpack://jmes/./node_modules/@terra-money/legacy.proto/ibc/applications/transfer/v1/transfer.js","webpack://jmes/./node_modules/@terra-money/legacy.proto/tendermint/abci/types.js","webpack://jmes/./node_modules/@terra-money/legacy.proto/tendermint/crypto/keys.js","webpack://jmes/./node_modules/@terra-money/legacy.proto/tendermint/crypto/proof.js","webpack://jmes/./node_modules/@terra-money/legacy.proto/tendermint/types/params.js","webpack://jmes/./node_modules/@terra-money/legacy.proto/tendermint/types/types.js","webpack://jmes/./node_modules/@terra-money/legacy.proto/tendermint/types/validator.js","webpack://jmes/./node_modules/@terra-money/legacy.proto/tendermint/version/types.js","webpack://jmes/./node_modules/@terra-money/legacy.proto/terra/market/v1beta1/tx.js","webpack://jmes/./node_modules/@terra-money/legacy.proto/terra/oracle/v1beta1/oracle.js","webpack://jmes/./node_modules/@terra-money/legacy.proto/terra/oracle/v1beta1/tx.js","webpack://jmes/./node_modules/@terra-money/legacy.proto/terra/treasury/v1beta1/treasury.js","webpack://jmes/./node_modules/@terra-money/legacy.proto/terra/vesting/v1beta1/vesting.js","webpack://jmes/./node_modules/@terra-money/legacy.proto/terra/wasm/v1beta1/tx.js","webpack://jmes/./node_modules/aes-js/index.js","webpack://jmes/./node_modules/asn1.js/lib/asn1.js","webpack://jmes/./node_modules/asn1.js/lib/asn1/api.js","webpack://jmes/./node_modules/asn1.js/lib/asn1/base/buffer.js","webpack://jmes/./node_modules/asn1.js/lib/asn1/base/index.js","webpack://jmes/./node_modules/asn1.js/lib/asn1/base/node.js","webpack://jmes/./node_modules/asn1.js/lib/asn1/base/reporter.js","webpack://jmes/./node_modules/asn1.js/lib/asn1/constants/der.js","webpack://jmes/./node_modules/asn1.js/lib/asn1/constants/index.js","webpack://jmes/./node_modules/asn1.js/lib/asn1/decoders/der.js","webpack://jmes/./node_modules/asn1.js/lib/asn1/decoders/index.js","webpack://jmes/./node_modules/asn1.js/lib/asn1/decoders/pem.js","webpack://jmes/./node_modules/asn1.js/lib/asn1/encoders/der.js","webpack://jmes/./node_modules/asn1.js/lib/asn1/encoders/index.js","webpack://jmes/./node_modules/asn1.js/lib/asn1/encoders/pem.js","webpack://jmes/./node_modules/asn1.js/node_modules/bn.js/lib/bn.js","webpack://jmes/./node_modules/axios/index.js","webpack://jmes/./node_modules/axios/lib/adapters/xhr.js","webpack://jmes/./node_modules/axios/lib/axios.js","webpack://jmes/./node_modules/axios/lib/cancel/CancelToken.js","webpack://jmes/./node_modules/axios/lib/cancel/CanceledError.js","webpack://jmes/./node_modules/axios/lib/cancel/isCancel.js","webpack://jmes/./node_modules/axios/lib/core/Axios.js","webpack://jmes/./node_modules/axios/lib/core/AxiosError.js","webpack://jmes/./node_modules/axios/lib/core/InterceptorManager.js","webpack://jmes/./node_modules/axios/lib/core/buildFullPath.js","webpack://jmes/./node_modules/axios/lib/core/dispatchRequest.js","webpack://jmes/./node_modules/axios/lib/core/mergeConfig.js","webpack://jmes/./node_modules/axios/lib/core/settle.js","webpack://jmes/./node_modules/axios/lib/core/transformData.js","webpack://jmes/./node_modules/axios/lib/defaults/index.js","webpack://jmes/./node_modules/axios/lib/defaults/transitional.js","webpack://jmes/./node_modules/axios/lib/env/data.js","webpack://jmes/./node_modules/axios/lib/helpers/bind.js","webpack://jmes/./node_modules/axios/lib/helpers/buildURL.js","webpack://jmes/./node_modules/axios/lib/helpers/combineURLs.js","webpack://jmes/./node_modules/axios/lib/helpers/cookies.js","webpack://jmes/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://jmes/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://jmes/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://jmes/./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://jmes/./node_modules/axios/lib/helpers/null.js","webpack://jmes/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://jmes/./node_modules/axios/lib/helpers/parseProtocol.js","webpack://jmes/./node_modules/axios/lib/helpers/spread.js","webpack://jmes/./node_modules/axios/lib/helpers/toFormData.js","webpack://jmes/./node_modules/axios/lib/helpers/validator.js","webpack://jmes/./node_modules/axios/lib/utils.js","webpack://jmes/./node_modules/base64-js/index.js","webpack://jmes/./node_modules/bech32/dist/index.js","webpack://jmes/./node_modules/bip39/src/_wordlists.js","webpack://jmes/./node_modules/bip39/src/index.js","webpack://jmes/./node_modules/bn.js/lib/bn.js","webpack://jmes/./node_modules/brorand/index.js","webpack://jmes/./node_modules/browserify-aes/aes.js","webpack://jmes/./node_modules/browserify-aes/authCipher.js","webpack://jmes/./node_modules/browserify-aes/browser.js","webpack://jmes/./node_modules/browserify-aes/decrypter.js","webpack://jmes/./node_modules/browserify-aes/encrypter.js","webpack://jmes/./node_modules/browserify-aes/ghash.js","webpack://jmes/./node_modules/browserify-aes/incr32.js","webpack://jmes/./node_modules/browserify-aes/modes/cbc.js","webpack://jmes/./node_modules/browserify-aes/modes/cfb.js","webpack://jmes/./node_modules/browserify-aes/modes/cfb1.js","webpack://jmes/./node_modules/browserify-aes/modes/cfb8.js","webpack://jmes/./node_modules/browserify-aes/modes/ctr.js","webpack://jmes/./node_modules/browserify-aes/modes/ecb.js","webpack://jmes/./node_modules/browserify-aes/modes/index.js","webpack://jmes/./node_modules/browserify-aes/modes/ofb.js","webpack://jmes/./node_modules/browserify-aes/streamCipher.js","webpack://jmes/./node_modules/browserify-cipher/browser.js","webpack://jmes/./node_modules/browserify-des/index.js","webpack://jmes/./node_modules/browserify-des/modes.js","webpack://jmes/./node_modules/browserify-rsa/index.js","webpack://jmes/./node_modules/browserify-sign/algos.js","webpack://jmes/./node_modules/browserify-sign/browser/index.js","webpack://jmes/./node_modules/browserify-sign/browser/sign.js","webpack://jmes/./node_modules/browserify-sign/browser/verify.js","webpack://jmes/./node_modules/buffer-xor/index.js","webpack://jmes/./node_modules/buffer/index.js","webpack://jmes/./node_modules/cipher-base/index.js","webpack://jmes/./node_modules/create-ecdh/browser.js","webpack://jmes/./node_modules/create-ecdh/node_modules/bn.js/lib/bn.js","webpack://jmes/./node_modules/create-hash/browser.js","webpack://jmes/./node_modules/create-hash/md5.js","webpack://jmes/./node_modules/create-hmac/browser.js","webpack://jmes/./node_modules/create-hmac/legacy.js","webpack://jmes/./node_modules/crypto-browserify/index.js","webpack://jmes/./node_modules/decimal.js/decimal.js","webpack://jmes/./node_modules/des.js/lib/des.js","webpack://jmes/./node_modules/des.js/lib/des/cbc.js","webpack://jmes/./node_modules/des.js/lib/des/cipher.js","webpack://jmes/./node_modules/des.js/lib/des/des.js","webpack://jmes/./node_modules/des.js/lib/des/ede.js","webpack://jmes/./node_modules/des.js/lib/des/utils.js","webpack://jmes/./node_modules/diffie-hellman/browser.js","webpack://jmes/./node_modules/diffie-hellman/lib/dh.js","webpack://jmes/./node_modules/diffie-hellman/lib/generatePrime.js","webpack://jmes/./node_modules/diffie-hellman/node_modules/bn.js/lib/bn.js","webpack://jmes/./node_modules/elliptic/lib/elliptic.js","webpack://jmes/./node_modules/elliptic/lib/elliptic/curve/base.js","webpack://jmes/./node_modules/elliptic/lib/elliptic/curve/edwards.js","webpack://jmes/./node_modules/elliptic/lib/elliptic/curve/index.js","webpack://jmes/./node_modules/elliptic/lib/elliptic/curve/mont.js","webpack://jmes/./node_modules/elliptic/lib/elliptic/curve/short.js","webpack://jmes/./node_modules/elliptic/lib/elliptic/curves.js","webpack://jmes/./node_modules/elliptic/lib/elliptic/ec/index.js","webpack://jmes/./node_modules/elliptic/lib/elliptic/ec/key.js","webpack://jmes/./node_modules/elliptic/lib/elliptic/ec/signature.js","webpack://jmes/./node_modules/elliptic/lib/elliptic/eddsa/index.js","webpack://jmes/./node_modules/elliptic/lib/elliptic/eddsa/key.js","webpack://jmes/./node_modules/elliptic/lib/elliptic/eddsa/signature.js","webpack://jmes/./node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js","webpack://jmes/./node_modules/elliptic/lib/elliptic/utils.js","webpack://jmes/./node_modules/elliptic/node_modules/bn.js/lib/bn.js","webpack://jmes/./node_modules/@ethersproject/logger/lib.esm/index.js","webpack://jmes/./node_modules/@ethersproject/logger/lib.esm/_version.js","webpack://jmes/./node_modules/@ethersproject/bytes/lib.esm/_version.js","webpack://jmes/./node_modules/@ethersproject/bytes/lib.esm/index.js","webpack://jmes/./node_modules/@ethersproject/bignumber/lib.esm/_version.js","webpack://jmes/./node_modules/@ethersproject/bignumber/lib.esm/bignumber.js","webpack://jmes/./node_modules/@ethersproject/properties/lib.esm/index.js","webpack://jmes/./node_modules/@ethersproject/properties/lib.esm/_version.js","webpack://jmes/./node_modules/@ethersproject/abi/lib.esm/_version.js","webpack://jmes/./node_modules/@ethersproject/abi/lib.esm/coders/abstract-coder.js","webpack://jmes/./node_modules/@ethersproject/keccak256/lib.esm/index.js","webpack://jmes/./node_modules/@ethersproject/rlp/lib.esm/_version.js","webpack://jmes/./node_modules/@ethersproject/rlp/lib.esm/index.js","webpack://jmes/./node_modules/@ethersproject/address/lib.esm/_version.js","webpack://jmes/./node_modules/@ethersproject/address/lib.esm/index.js","webpack://jmes/./node_modules/@ethersproject/strings/lib.esm/_version.js","webpack://jmes/./node_modules/@ethersproject/strings/lib.esm/utf8.js","webpack://jmes/./node_modules/@ethersproject/hash/lib.esm/id.js","webpack://jmes/./node_modules/@ethersproject/abi/lib.esm/coders/address.js","webpack://jmes/./node_modules/@ethersproject/abi/lib.esm/coders/anonymous.js","webpack://jmes/./node_modules/@ethersproject/abi/lib.esm/coders/array.js","webpack://jmes/./node_modules/@ethersproject/abi/lib.esm/coders/boolean.js","webpack://jmes/./node_modules/@ethersproject/abi/lib.esm/coders/bytes.js","webpack://jmes/./node_modules/@ethersproject/abi/lib.esm/coders/fixed-bytes.js","webpack://jmes/./node_modules/@ethersproject/abi/lib.esm/coders/null.js","webpack://jmes/./node_modules/@ethersproject/constants/lib.esm/bignumbers.js","webpack://jmes/./node_modules/@ethersproject/abi/lib.esm/coders/number.js","webpack://jmes/./node_modules/@ethersproject/abi/lib.esm/coders/string.js","webpack://jmes/./node_modules/@ethersproject/abi/lib.esm/coders/tuple.js","webpack://jmes/./node_modules/@ethersproject/abi/lib.esm/fragments.js","webpack://jmes/./node_modules/@ethersproject/abi/lib.esm/abi-coder.js","webpack://jmes/./node_modules/@ethersproject/abi/lib.esm/interface.js","webpack://jmes/./node_modules/@ethersproject/abstract-provider/lib.esm/index.js","webpack://jmes/./node_modules/@ethersproject/abstract-provider/lib.esm/_version.js","webpack://jmes/./node_modules/@ethersproject/abstract-signer/lib.esm/index.js","webpack://jmes/./node_modules/@ethersproject/abstract-signer/lib.esm/_version.js","webpack://jmes/./node_modules/@ethersproject/signing-key/lib.esm/elliptic.js","webpack://jmes/./node_modules/@ethersproject/signing-key/lib.esm/_version.js","webpack://jmes/./node_modules/@ethersproject/signing-key/lib.esm/index.js","webpack://jmes/./node_modules/@ethersproject/transactions/lib.esm/_version.js","webpack://jmes/./node_modules/@ethersproject/transactions/lib.esm/index.js","webpack://jmes/./node_modules/@ethersproject/contracts/lib.esm/index.js","webpack://jmes/./node_modules/@ethersproject/contracts/lib.esm/_version.js","webpack://jmes/./node_modules/@ethersproject/bignumber/lib.esm/fixednumber.js","webpack://jmes/./node_modules/@ethersproject/hash/lib.esm/message.js","webpack://jmes/./node_modules/@ethersproject/hash/lib.esm/_version.js","webpack://jmes/./node_modules/@ethersproject/hash/lib.esm/typed-data.js","webpack://jmes/./node_modules/@ethersproject/basex/lib.esm/index.js","webpack://jmes/./node_modules/@ethersproject/sha2/lib.esm/types.js","webpack://jmes/./node_modules/@ethersproject/sha2/lib.esm/_version.js","webpack://jmes/./node_modules/@ethersproject/sha2/lib.esm/sha2.js","webpack://jmes/./node_modules/@ethersproject/pbkdf2/lib.esm/pbkdf2.js","webpack://jmes/./node_modules/@ethersproject/wordlists/lib.esm/_version.js","webpack://jmes/./node_modules/@ethersproject/wordlists/lib.esm/wordlist.js","webpack://jmes/./node_modules/@ethersproject/wordlists/lib.esm/lang-en.js","webpack://jmes/./node_modules/@ethersproject/wordlists/lib.esm/wordlists.js","webpack://jmes/./node_modules/@ethersproject/hdnode/lib.esm/index.js","webpack://jmes/./node_modules/@ethersproject/hdnode/lib.esm/_version.js","webpack://jmes/./node_modules/@ethersproject/random/lib.esm/_version.js","webpack://jmes/./node_modules/@ethersproject/random/lib.esm/random.js","webpack://jmes/./node_modules/@ethersproject/json-wallets/lib.esm/utils.js","webpack://jmes/./node_modules/@ethersproject/json-wallets/lib.esm/_version.js","webpack://jmes/./node_modules/@ethersproject/json-wallets/lib.esm/keystore.js","webpack://jmes/./node_modules/@ethersproject/json-wallets/lib.esm/crowdsale.js","webpack://jmes/./node_modules/@ethersproject/json-wallets/lib.esm/inspect.js","webpack://jmes/./node_modules/@ethersproject/json-wallets/lib.esm/index.js","webpack://jmes/./node_modules/@ethersproject/wallet/lib.esm/index.js","webpack://jmes/./node_modules/@ethersproject/wallet/lib.esm/_version.js","webpack://jmes/./node_modules/@ethersproject/constants/lib.esm/addresses.js","webpack://jmes/./node_modules/@ethersproject/constants/lib.esm/hashes.js","webpack://jmes/./node_modules/@ethersproject/constants/lib.esm/strings.js","webpack://jmes/./node_modules/@ethersproject/networks/lib.esm/index.js","webpack://jmes/./node_modules/@ethersproject/networks/lib.esm/_version.js","webpack://jmes/./node_modules/@ethersproject/base64/lib.esm/base64.js","webpack://jmes/./node_modules/@ethersproject/strings/lib.esm/idna.js","webpack://jmes/./node_modules/@ethersproject/hash/lib.esm/namehash.js","webpack://jmes/./node_modules/@ethersproject/web/lib.esm/geturl.js","webpack://jmes/./node_modules/@ethersproject/web/lib.esm/index.js","webpack://jmes/./node_modules/@ethersproject/web/lib.esm/_version.js","webpack://jmes/./node_modules/@ethersproject/providers/lib.esm/_version.js","webpack://jmes/./node_modules/@ethersproject/providers/lib.esm/formatter.js","webpack://jmes/./node_modules/@ethersproject/providers/lib.esm/base-provider.js","webpack://jmes/./node_modules/@ethersproject/providers/lib.esm/json-rpc-provider.js","webpack://jmes/./node_modules/@ethersproject/providers/lib.esm/ws.js","webpack://jmes/./node_modules/@ethersproject/providers/lib.esm/websocket-provider.js","webpack://jmes/./node_modules/@ethersproject/providers/lib.esm/url-json-rpc-provider.js","webpack://jmes/./node_modules/@ethersproject/providers/lib.esm/alchemy-provider.js","webpack://jmes/./node_modules/@ethersproject/providers/lib.esm/ankr-provider.js","webpack://jmes/./node_modules/@ethersproject/providers/lib.esm/cloudflare-provider.js","webpack://jmes/./node_modules/@ethersproject/providers/lib.esm/etherscan-provider.js","webpack://jmes/./node_modules/@ethersproject/random/lib.esm/shuffle.js","webpack://jmes/./node_modules/@ethersproject/providers/lib.esm/fallback-provider.js","webpack://jmes/./node_modules/@ethersproject/providers/lib.esm/ipc-provider.js","webpack://jmes/./node_modules/@ethersproject/providers/lib.esm/infura-provider.js","webpack://jmes/./node_modules/@ethersproject/providers/lib.esm/json-rpc-batch-provider.js","webpack://jmes/./node_modules/@ethersproject/providers/lib.esm/nodesmith-provider.js","webpack://jmes/./node_modules/@ethersproject/providers/lib.esm/pocket-provider.js","webpack://jmes/./node_modules/@ethersproject/providers/lib.esm/web3-provider.js","webpack://jmes/./node_modules/@ethersproject/providers/lib.esm/index.js","webpack://jmes/./node_modules/@ethersproject/solidity/lib.esm/_version.js","webpack://jmes/./node_modules/@ethersproject/solidity/lib.esm/index.js","webpack://jmes/./node_modules/@ethersproject/strings/lib.esm/bytes32.js","webpack://jmes/./node_modules/@ethersproject/units/lib.esm/_version.js","webpack://jmes/./node_modules/@ethersproject/units/lib.esm/index.js","webpack://jmes/./node_modules/ethers/lib.esm/_version.js","webpack://jmes/./node_modules/ethers/lib.esm/ethers.js","webpack://jmes/./node_modules/ethers/lib.esm/index.js","webpack://jmes/./node_modules/events/events.js","webpack://jmes/./node_modules/evp_bytestokey/index.js","webpack://jmes/./node_modules/form-data/lib/browser.js","webpack://jmes/./node_modules/hash-base/index.js","webpack://jmes/./node_modules/hash.js/lib/hash.js","webpack://jmes/./node_modules/hash.js/lib/hash/common.js","webpack://jmes/./node_modules/hash.js/lib/hash/hmac.js","webpack://jmes/./node_modules/hash.js/lib/hash/ripemd.js","webpack://jmes/./node_modules/hash.js/lib/hash/sha.js","webpack://jmes/./node_modules/hash.js/lib/hash/sha/1.js","webpack://jmes/./node_modules/hash.js/lib/hash/sha/224.js","webpack://jmes/./node_modules/hash.js/lib/hash/sha/256.js","webpack://jmes/./node_modules/hash.js/lib/hash/sha/384.js","webpack://jmes/./node_modules/hash.js/lib/hash/sha/512.js","webpack://jmes/./node_modules/hash.js/lib/hash/sha/common.js","webpack://jmes/./node_modules/hash.js/lib/hash/utils.js","webpack://jmes/./node_modules/hmac-drbg/lib/hmac-drbg.js","webpack://jmes/./node_modules/ieee754/index.js","webpack://jmes/./node_modules/inherits/inherits_browser.js","webpack://jmes/./node_modules/js-sha3/src/sha3.js","webpack://jmes/./node_modules/jscrypto/Base64.js","webpack://jmes/./node_modules/jscrypto/RIPEMD160.js","webpack://jmes/./node_modules/jscrypto/SHA256.js","webpack://jmes/./node_modules/jscrypto/index.js","webpack://jmes/./node_modules/long/src/long.js","webpack://jmes/./node_modules/md5.js/index.js","webpack://jmes/./node_modules/miller-rabin/lib/mr.js","webpack://jmes/./node_modules/miller-rabin/node_modules/bn.js/lib/bn.js","webpack://jmes/./node_modules/minimalistic-assert/index.js","webpack://jmes/./node_modules/minimalistic-crypto-utils/lib/utils.js","webpack://jmes/./node_modules/parse-asn1/asn1.js","webpack://jmes/./node_modules/parse-asn1/certificate.js","webpack://jmes/./node_modules/parse-asn1/fixProc.js","webpack://jmes/./node_modules/parse-asn1/index.js","webpack://jmes/./node_modules/pbkdf2/browser.js","webpack://jmes/./node_modules/pbkdf2/lib/async.js","webpack://jmes/./node_modules/pbkdf2/lib/default-encoding.js","webpack://jmes/./node_modules/pbkdf2/lib/precondition.js","webpack://jmes/./node_modules/pbkdf2/lib/sync-browser.js","webpack://jmes/./node_modules/pbkdf2/lib/to-buffer.js","webpack://jmes/./node_modules/protobufjs/minimal.js","webpack://jmes/./node_modules/protobufjs/src/index-minimal.js","webpack://jmes/./node_modules/protobufjs/src/reader.js","webpack://jmes/./node_modules/protobufjs/src/reader_buffer.js","webpack://jmes/./node_modules/protobufjs/src/roots.js","webpack://jmes/./node_modules/protobufjs/src/rpc.js","webpack://jmes/./node_modules/protobufjs/src/rpc/service.js","webpack://jmes/./node_modules/protobufjs/src/util/longbits.js","webpack://jmes/./node_modules/protobufjs/src/util/minimal.js","webpack://jmes/./node_modules/protobufjs/src/writer.js","webpack://jmes/./node_modules/protobufjs/src/writer_buffer.js","webpack://jmes/./node_modules/public-encrypt/browser.js","webpack://jmes/./node_modules/public-encrypt/mgf.js","webpack://jmes/./node_modules/public-encrypt/node_modules/bn.js/lib/bn.js","webpack://jmes/./node_modules/public-encrypt/privateDecrypt.js","webpack://jmes/./node_modules/public-encrypt/publicEncrypt.js","webpack://jmes/./node_modules/public-encrypt/withPublic.js","webpack://jmes/./node_modules/public-encrypt/xor.js","webpack://jmes/./node_modules/randombytes/browser.js","webpack://jmes/./node_modules/randomfill/browser.js","webpack://jmes/./node_modules/readable-stream/errors-browser.js","webpack://jmes/./node_modules/readable-stream/lib/_stream_duplex.js","webpack://jmes/./node_modules/readable-stream/lib/_stream_passthrough.js","webpack://jmes/./node_modules/readable-stream/lib/_stream_readable.js","webpack://jmes/./node_modules/readable-stream/lib/_stream_transform.js","webpack://jmes/./node_modules/readable-stream/lib/_stream_writable.js","webpack://jmes/./node_modules/readable-stream/lib/internal/streams/async_iterator.js","webpack://jmes/./node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack://jmes/./node_modules/readable-stream/lib/internal/streams/destroy.js","webpack://jmes/./node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack://jmes/./node_modules/readable-stream/lib/internal/streams/from-browser.js","webpack://jmes/./node_modules/readable-stream/lib/internal/streams/pipeline.js","webpack://jmes/./node_modules/readable-stream/lib/internal/streams/state.js","webpack://jmes/./node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack://jmes/./node_modules/readable-stream/readable-browser.js","webpack://jmes/./node_modules/ripemd160/index.js","webpack://jmes/./node_modules/safe-buffer/index.js","webpack://jmes/./node_modules/safer-buffer/safer.js","webpack://jmes/./node_modules/scrypt-js/scrypt.js","webpack://jmes/./node_modules/sha.js/hash.js","webpack://jmes/./node_modules/sha.js/index.js","webpack://jmes/./node_modules/sha.js/sha.js","webpack://jmes/./node_modules/sha.js/sha1.js","webpack://jmes/./node_modules/sha.js/sha224.js","webpack://jmes/./node_modules/sha.js/sha256.js","webpack://jmes/./node_modules/sha.js/sha384.js","webpack://jmes/./node_modules/sha.js/sha512.js","webpack://jmes/./node_modules/stream-browserify/index.js","webpack://jmes/./node_modules/string_decoder/lib/string_decoder.js","webpack://jmes/./node_modules/util-deprecate/browser.js","webpack://jmes/../node_modules/@improbable-eng/grpc-web/dist/grpc-web-client.umd.js","webpack://jmes/../node_modules/@protobufjs/aspromise/index.js","webpack://jmes/../node_modules/@protobufjs/base64/index.js","webpack://jmes/../node_modules/@protobufjs/eventemitter/index.js","webpack://jmes/../node_modules/@protobufjs/float/index.js","webpack://jmes/../node_modules/@protobufjs/inquire/index.js","webpack://jmes/../node_modules/@protobufjs/pool/index.js","webpack://jmes/../node_modules/@protobufjs/utf8/index.js","webpack://jmes/../node_modules/@terra-money/terra.proto/confio/proofs.js","webpack://jmes/../node_modules/@terra-money/terra.proto/cosmos/auth/v1beta1/auth.js","webpack://jmes/../node_modules/@terra-money/terra.proto/cosmos/authz/v1beta1/authz.js","webpack://jmes/../node_modules/@terra-money/terra.proto/cosmos/authz/v1beta1/tx.js","webpack://jmes/../node_modules/@terra-money/terra.proto/cosmos/bank/v1beta1/authz.js","webpack://jmes/../node_modules/@terra-money/terra.proto/cosmos/bank/v1beta1/bank.js","webpack://jmes/../node_modules/@terra-money/terra.proto/cosmos/bank/v1beta1/tx.js","webpack://jmes/../node_modules/@terra-money/terra.proto/cosmos/base/abci/v1beta1/abci.js","webpack://jmes/../node_modules/@terra-money/terra.proto/cosmos/base/v1beta1/coin.js","webpack://jmes/../node_modules/@terra-money/terra.proto/cosmos/crisis/v1beta1/tx.js","webpack://jmes/../node_modules/@terra-money/terra.proto/cosmos/crypto/ed25519/keys.js","webpack://jmes/../node_modules/@terra-money/terra.proto/cosmos/crypto/multisig/keys.js","webpack://jmes/../node_modules/@terra-money/terra.proto/cosmos/crypto/multisig/v1beta1/multisig.js","webpack://jmes/../node_modules/@terra-money/terra.proto/cosmos/crypto/secp256k1/keys.js","webpack://jmes/../node_modules/@terra-money/terra.proto/cosmos/distribution/v1beta1/distribution.js","webpack://jmes/../node_modules/@terra-money/terra.proto/cosmos/distribution/v1beta1/tx.js","webpack://jmes/../node_modules/@terra-money/terra.proto/cosmos/feegrant/v1beta1/feegrant.js","webpack://jmes/../node_modules/@terra-money/terra.proto/cosmos/feegrant/v1beta1/tx.js","webpack://jmes/../node_modules/@terra-money/terra.proto/cosmos/gov/v1beta1/gov.js","webpack://jmes/../node_modules/@terra-money/terra.proto/cosmos/gov/v1beta1/tx.js","webpack://jmes/../node_modules/@terra-money/terra.proto/cosmos/params/v1beta1/params.js","webpack://jmes/../node_modules/@terra-money/terra.proto/cosmos/slashing/v1beta1/tx.js","webpack://jmes/../node_modules/@terra-money/terra.proto/cosmos/staking/v1beta1/authz.js","webpack://jmes/../node_modules/@terra-money/terra.proto/cosmos/staking/v1beta1/staking.js","webpack://jmes/../node_modules/@terra-money/terra.proto/cosmos/staking/v1beta1/tx.js","webpack://jmes/../node_modules/@terra-money/terra.proto/cosmos/tx/signing/v1beta1/signing.js","webpack://jmes/../node_modules/@terra-money/terra.proto/cosmos/tx/v1beta1/tx.js","webpack://jmes/../node_modules/@terra-money/terra.proto/cosmos/upgrade/v1beta1/upgrade.js","webpack://jmes/../node_modules/@terra-money/terra.proto/cosmos/vesting/v1beta1/tx.js","webpack://jmes/../node_modules/@terra-money/terra.proto/cosmos/vesting/v1beta1/vesting.js","webpack://jmes/../node_modules/@terra-money/terra.proto/cosmwasm/wasm/v1/proposal.js","webpack://jmes/../node_modules/@terra-money/terra.proto/cosmwasm/wasm/v1/tx.js","webpack://jmes/../node_modules/@terra-money/terra.proto/cosmwasm/wasm/v1/types.js","webpack://jmes/../node_modules/@terra-money/terra.proto/google/protobuf/any.js","webpack://jmes/../node_modules/@terra-money/terra.proto/google/protobuf/duration.js","webpack://jmes/../node_modules/@terra-money/terra.proto/google/protobuf/timestamp.js","webpack://jmes/../node_modules/@terra-money/terra.proto/ibc/applications/interchain_accounts/host/v1/host.js","webpack://jmes/../node_modules/@terra-money/terra.proto/ibc/applications/transfer/v1/tx.js","webpack://jmes/../node_modules/@terra-money/terra.proto/ibc/applications/transfer/v2/packet.js","webpack://jmes/../node_modules/@terra-money/terra.proto/ibc/core/channel/v1/channel.js","webpack://jmes/../node_modules/@terra-money/terra.proto/ibc/core/channel/v1/tx.js","webpack://jmes/../node_modules/@terra-money/terra.proto/ibc/core/client/v1/client.js","webpack://jmes/../node_modules/@terra-money/terra.proto/ibc/core/client/v1/tx.js","webpack://jmes/../node_modules/@terra-money/terra.proto/ibc/core/commitment/v1/commitment.js","webpack://jmes/../node_modules/@terra-money/terra.proto/ibc/core/connection/v1/connection.js","webpack://jmes/../node_modules/@terra-money/terra.proto/ibc/core/connection/v1/tx.js","webpack://jmes/../node_modules/@terra-money/terra.proto/ibc/lightclients/tendermint/v1/tendermint.js","webpack://jmes/../node_modules/@terra-money/terra.proto/tendermint/abci/types.js","webpack://jmes/../node_modules/@terra-money/terra.proto/tendermint/crypto/keys.js","webpack://jmes/../node_modules/@terra-money/terra.proto/tendermint/crypto/proof.js","webpack://jmes/../node_modules/@terra-money/terra.proto/tendermint/types/params.js","webpack://jmes/../node_modules/@terra-money/terra.proto/tendermint/types/types.js","webpack://jmes/../node_modules/@terra-money/terra.proto/tendermint/types/validator.js","webpack://jmes/../node_modules/@terra-money/terra.proto/tendermint/version/types.js","webpack://jmes/../node_modules/browser-headers/dist/browser-headers.umd.js","webpack://jmes/../node_modules/long/src/long.js","webpack://jmes/../node_modules/protobufjs/minimal.js","webpack://jmes/../node_modules/protobufjs/src/index-minimal.js","webpack://jmes/../node_modules/protobufjs/src/reader.js","webpack://jmes/../node_modules/protobufjs/src/reader_buffer.js","webpack://jmes/../node_modules/protobufjs/src/roots.js","webpack://jmes/../node_modules/protobufjs/src/rpc.js","webpack://jmes/../node_modules/protobufjs/src/rpc/service.js","webpack://jmes/../node_modules/protobufjs/src/util/longbits.js","webpack://jmes/../node_modules/protobufjs/src/util/minimal.js","webpack://jmes/../node_modules/protobufjs/src/writer.js","webpack://jmes/../node_modules/protobufjs/src/writer_buffer.js","webpack://jmes/webpack/bootstrap","webpack://jmes/webpack/runtime/amd options","webpack://jmes/webpack/runtime/compat get default export","webpack://jmes/webpack/runtime/define property getters","webpack://jmes/webpack/runtime/global","webpack://jmes/webpack/runtime/hasOwnProperty shorthand","webpack://jmes/webpack/runtime/make namespace object","webpack://jmes/webpack/runtime/node module decorator","webpack://jmes/webpack/startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"jmes\"] = factory();\n\telse\n\t\troot[\"jmes\"] = factory();\n})((typeof self !== 'undefined' ? self : this), () => {\nreturn ","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JMES_COIN_TYPE = void 0;\nexports.JMES_COIN_TYPE = 6280;\n//# sourceMappingURL=CONSTANTS.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Client = void 0;\nvar Wallet_1 = require(\"../primitives/Wallet\");\nvar MarketplaceAPI_1 = __importDefault(require(\"./providers/MarketplaceAPI/MarketplaceAPI\"));\nvar IdentityAPI_1 = __importDefault(require(\"./providers/IdentityAPI/IdentityAPI\"));\nvar FaucetAPI_1 = __importDefault(require(\"./providers/FaucetAPI/FaucetAPI\"));\nvar LCDClient_1 = require(\"./providers/LCDClient/lcd/LCDClient\");\nvar CONSTANTS_1 = require(\"../CONSTANTS\");\nvar Client = /** @class */ (function () {\n function Client(config) {\n var _a, _b, _c;\n // Specific provider to external services\n this.providers = {\n marketplaceAPI: new MarketplaceAPI_1.default((_a = config === null || config === void 0 ? void 0 : config.providers) === null || _a === void 0 ? void 0 : _a.marketplaceAPI),\n identityAPI: new IdentityAPI_1.default((_b = config === null || config === void 0 ? void 0 : config.providers) === null || _b === void 0 ? void 0 : _b.identityAPI),\n faucetAPI: new FaucetAPI_1.default((_c = config === null || config === void 0 ? void 0 : config.providers) === null || _c === void 0 ? void 0 : _c.faucetAPI),\n LCDC: null\n };\n }\n Client.prototype.createLCDClient = function (config) {\n this.providers.LCDC = new LCDClient_1.LCDClient(config);\n return this.providers.LCDC;\n };\n Client.prototype.createWallet = function (key, lcdcUrl) {\n // Where 8888 is specific JMES Path for mainnet.\n // jmes-888 in testnet\n var bip44Path = \"m/44'/\".concat(CONSTANTS_1.JMES_COIN_TYPE, \"'\");\n console.log(\"Generating a new wallet with key on BIP Path \".concat(bip44Path));\n // If it's a mnemonic based key, we create a derivableKey first.\n // @ts-ignore\n var derivableKey = (key.toMasterDerivableKey) ? key.toMasterDerivableKey() : key;\n // @ts-ignore\n var chainDerivedKey = derivableKey.derivePath(bip44Path);\n return new Wallet_1.Wallet(chainDerivedKey, lcdcUrl);\n };\n return Client;\n}());\nexports.Client = Client;\n//# sourceMappingURL=Client.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./Client\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar requestCredit_1 = __importDefault(require(\"./methods/requestCredit\"));\n/**\n * Identity API is a specific provider that handles identity resolving for JMES Protocol users\n */\nvar FaucetAPI = /** @class */ (function () {\n function FaucetAPI(config) {\n var _a, _b;\n this.endpoint = {\n api_url: (_b = (_a = config === null || config === void 0 ? void 0 : config.endpoint) === null || _a === void 0 ? void 0 : _a.api_url) !== null && _b !== void 0 ? _b : 'http://51.38.52.37:3002'\n };\n }\n return FaucetAPI;\n}());\nexports.default = FaucetAPI;\n;\nFaucetAPI.prototype.requestCredit = requestCredit_1.default;\n//# sourceMappingURL=FaucetAPI.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar axios_1 = __importDefault(require(\"axios\"));\nfunction requestCredit(address) {\n return __awaiter(this, void 0, void 0, function () {\n var endpoint, url;\n return __generator(this, function (_a) {\n console.log('Request credit from', address);\n if (!address)\n throw new Error('Address required');\n endpoint = this.endpoint;\n url = \"\".concat(endpoint.api_url, \"/credit?address=\").concat(address, \"&denom=ujmes\");\n console.log(url);\n return [2 /*return*/, axios_1.default.get(url)];\n });\n });\n}\nexports.default = requestCredit;\n;\n//# sourceMappingURL=requestCredit.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar getIdentity_1 = __importDefault(require(\"./methods/getIdentity\"));\nvar getToken_1 = __importDefault(require(\"./methods/getToken\"));\nvar createIdentity_1 = __importDefault(require(\"./methods/createIdentity\"));\n/**\n * Identity API is a specific provider that handles identity resolving for JMES Protocol users\n */\nvar IdentityAPI = /** @class */ (function () {\n function IdentityAPI(config) {\n var _a, _b;\n this.endpoint = {\n api_url: (_b = (_a = config === null || config === void 0 ? void 0 : config.endpoint) === null || _a === void 0 ? void 0 : _a.api_url) !== null && _b !== void 0 ? _b : 'http://51.38.52.37:3001'\n };\n }\n return IdentityAPI;\n}());\nexports.default = IdentityAPI;\n;\nIdentityAPI.prototype.getIdentity = getIdentity_1.default;\nIdentityAPI.prototype.getToken = getToken_1.default;\nIdentityAPI.prototype.createIdentity = createIdentity_1.default;\n//# sourceMappingURL=IdentityAPI.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar axios_1 = __importDefault(require(\"axios\"));\nfunction createIdentity(username, account) {\n return __awaiter(this, void 0, void 0, function () {\n var address, publicKey, endpoint, url;\n return __generator(this, function (_a) {\n console.log('Create identity with uname', username);\n if (!username)\n throw new Error('Username required');\n address = account.getAddress();\n publicKey = account.getPublic();\n console.log({ address: address, publicKey: publicKey });\n endpoint = this.endpoint;\n url = \"\".concat(endpoint.api_url, \"/identity/\").concat(username);\n console.log({ url: url });\n // const signature = '123abc';\n // @ts-ignore\n return [2 /*return*/, axios_1.default.post(url, { publicKey: publicKey.toString('hex'), address: address })];\n });\n });\n}\nexports.default = createIdentity;\n;\n//# sourceMappingURL=createIdentity.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar axios_1 = __importDefault(require(\"axios\"));\nfunction getIdentity(identityName) {\n return __awaiter(this, void 0, void 0, function () {\n var endpoint, url;\n return __generator(this, function (_a) {\n console.log('Search for identity name', identityName);\n endpoint = this.endpoint;\n url = \"\".concat(endpoint.api_url, \"/identity/\").concat(identityName);\n return [2 /*return*/, axios_1.default.get(url)];\n });\n });\n}\nexports.default = getIdentity;\n;\n//# sourceMappingURL=getIdentity.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar axios_1 = __importDefault(require(\"axios\"));\nfunction getToken(account) {\n return __awaiter(this, void 0, void 0, function () {\n var ts, message, signature, address, endpoint, url;\n return __generator(this, function (_a) {\n console.log('Get JWT Token for account');\n ts = +new Date();\n message = ts.toString();\n signature = account.signMessage(message).toString('hex');\n address = account.getAddress();\n endpoint = this.endpoint;\n url = \"\".concat(endpoint.api_url, \"/identity/token\");\n console.log({ url: url }, { signature: signature, ts: ts, address: address });\n // const signature = '123abc';\n // @ts-ignore\n return [2 /*return*/, axios_1.default.post(url, { signature: signature, ts: ts, address: address })];\n });\n });\n}\nexports.default = getToken;\n;\n//# sourceMappingURL=getToken.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=Block.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Coin = void 0;\nvar json_1 = require(\"../util/json\");\nvar numeric_1 = require(\"./numeric\");\nvar coin_1 = require(\"@terra-money/terra.proto/cosmos/base/v1beta1/coin\");\n/**\n * Captures `sdk.Coin` and `sdk.DecCoin` from Cosmos SDK. A composite value that combines\n * a denomination with an amount value. Coins are immutable once created, and operations\n * that return Coin will return a new Coin. See [[Coins]] for a collection of Coin objects.\n */\nvar Coin = /** @class */ (function (_super) {\n __extends(Coin, _super);\n /**\n * Creates a new coin. Depending on the type of amount, it will be converted to an\n * integer coin or decimal coin.\n *\n * @param denom denomination\n * @param amount coin's amount\n */\n function Coin(denom, amount) {\n var _this = _super.call(this) || this;\n _this.denom = denom;\n _this.amount = numeric_1.Numeric.parse(amount);\n return _this;\n }\n /**\n * Checks whether the Coin is an Integer coin.\n */\n Coin.prototype.isIntCoin = function () {\n // TODO: convert into typeguard\n return this.amount instanceof numeric_1.Int;\n };\n /**\n * Checks whether the Coin is a Decimal coin.\n */\n Coin.prototype.isDecCoin = function () {\n return this.amount instanceof numeric_1.Dec;\n };\n /**\n * Turns the Coin into an Integer coin.\n */\n Coin.prototype.toIntCoin = function () {\n return new Coin(this.denom, new numeric_1.Int(this.amount));\n };\n /**\n * Turns the Coin into an Integer coin with ceiling the amount.\n */\n Coin.prototype.toIntCeilCoin = function () {\n return new Coin(this.denom, new numeric_1.Int(this.amount.ceil()));\n };\n /**\n * Turns the Coin into a Decimal coin.\n */\n Coin.prototype.toDecCoin = function () {\n return new Coin(this.denom, new numeric_1.Dec(this.amount));\n };\n /**\n * Outputs ``.\n *\n * Eg: `Coin('ujmes', 1500) -> 1500ujmes`\n */\n Coin.prototype.toString = function () {\n var amount = this.amount.toFixed();\n if (this.isDecCoin() && amount.indexOf('.') === -1) {\n return \"\".concat(amount, \".0\").concat(this.denom);\n }\n return \"\".concat(amount).concat(this.denom);\n };\n Coin.fromString = function (str) {\n var m = str.match(/^(-?[0-9]+(\\.[0-9]+)?)([0-9a-zA-Z/]+)$/);\n if (m === null) {\n throw new Error(\"failed to parse to Coin: \".concat(str));\n }\n var amount = m[1];\n var denom = m[3];\n return new Coin(denom, amount);\n };\n /**\n * Creates a new Coin adding to the current value.\n *\n * @param other\n */\n Coin.prototype.add = function (other) {\n var otherAmount;\n if (other instanceof Coin) {\n if (other.denom !== this.denom) {\n throw new Coin.ArithmeticError(\"cannot add two Coins of different denoms: \".concat(this.denom, \" and \").concat(other.denom));\n }\n otherAmount = other.amount;\n }\n else {\n otherAmount = other;\n }\n otherAmount = numeric_1.Numeric.parse(otherAmount);\n return new Coin(this.denom, this.amount.add(otherAmount));\n };\n /**\n * Creates a new Coin subtracting from the current value.\n * @param other\n */\n Coin.prototype.sub = function (other) {\n var otherAmount;\n if (other instanceof Coin) {\n if (other.denom !== this.denom) {\n throw new Coin.ArithmeticError(\"cannot subtract two Coins of different denoms: \".concat(this.denom, \" and \").concat(other.denom));\n }\n otherAmount = other.amount;\n }\n else {\n otherAmount = other;\n }\n otherAmount = numeric_1.Numeric.parse(otherAmount);\n return new Coin(this.denom, this.amount.sub(otherAmount));\n };\n /**\n * Multiplies the current value with an amount.\n * @param other\n */\n Coin.prototype.mul = function (other) {\n var otherAmount = numeric_1.Numeric.parse(other);\n return new Coin(this.denom, this.amount.mul(otherAmount));\n };\n /**\n * Divides the current value with an amount.\n * @param other\n */\n Coin.prototype.div = function (other) {\n var otherAmount = numeric_1.Numeric.parse(other);\n return new Coin(this.denom, this.amount.div(otherAmount));\n };\n /**\n * Modulo the current value with an amount.\n * @param other\n */\n Coin.prototype.mod = function (other) {\n var otherAmount = numeric_1.Numeric.parse(other);\n return new Coin(this.denom, this.amount.mod(otherAmount));\n };\n Coin.fromAmino = function (data) {\n var denom = data.denom, amount = data.amount;\n return new Coin(denom, amount);\n };\n Coin.prototype.toAmino = function () {\n var _a = this, denom = _a.denom, amount = _a.amount;\n return {\n denom: denom,\n amount: amount.toString(),\n };\n };\n Coin.fromData = function (data) {\n var denom = data.denom, amount = data.amount;\n return new Coin(denom, amount);\n };\n Coin.prototype.toData = function () {\n var _a = this, denom = _a.denom, amount = _a.amount;\n return {\n denom: denom,\n amount: amount.toString(),\n };\n };\n Coin.fromProto = function (proto) {\n return new Coin(proto.denom, numeric_1.Numeric.parse(proto.amount));\n };\n Coin.prototype.toProto = function () {\n return coin_1.Coin.fromPartial({\n denom: this.denom,\n amount: this.amount.toString(),\n });\n };\n return Coin;\n}(json_1.JSONSerializable));\nexports.Coin = Coin;\n(function (Coin) {\n var ArithmeticError = /** @class */ (function () {\n function ArithmeticError(message) {\n this.message = message;\n }\n return ArithmeticError;\n }());\n Coin.ArithmeticError = ArithmeticError;\n})(Coin = exports.Coin || (exports.Coin = {}));\nexports.Coin = Coin;\n//# sourceMappingURL=Coin.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Coins = void 0;\nvar Coin_1 = require(\"./Coin\");\nvar json_1 = require(\"../util/json\");\n/**\n * Analagous to `sdk.Coins` and `sdk.DecCoins` from Cosmos-SDK, and represents a collection\n * of [[Coin]] objects.\n *\n */\nvar Coins = /** @class */ (function (_super) {\n __extends(Coins, _super);\n /**\n * @param arg coins to input\n */\n function Coins(arg) {\n if (arg === void 0) { arg = {}; }\n var _this = _super.call(this) || this;\n if (arg instanceof Coins) {\n _this._coins = __assign({}, arg._coins);\n }\n else if (typeof arg === 'string') {\n _this._coins = Coins.fromString(arg)._coins;\n }\n else {\n _this._coins = {};\n var coins_2;\n if (!Array.isArray(arg)) {\n coins_2 = [];\n Object.keys(arg).forEach(function (denom) {\n return coins_2.push(new Coin_1.Coin(denom, arg[denom]));\n });\n }\n else {\n coins_2 = arg;\n }\n for (var _i = 0, coins_1 = coins_2; _i < coins_1.length; _i++) {\n var coin = coins_1[_i];\n var denom = coin.denom;\n var x = _this._coins[denom];\n if (x !== undefined) {\n _this._coins[denom] = x.add(coin);\n }\n else {\n _this._coins[denom] = coin;\n }\n }\n // convert all coins to Dec if one is Dec\n if (!_this.toArray().every(function (c) { return c.isIntCoin(); })) {\n for (var _a = 0, _b = Object.keys(_this._coins); _a < _b.length; _a++) {\n var denom = _b[_a];\n _this._coins[denom] = _this._coins[denom].toDecCoin();\n }\n }\n }\n return _this;\n }\n // implement iterator interface for interop\n Coins.prototype[Symbol.iterator] = function () {\n var index = -1;\n var data = this.toArray();\n return {\n next: function () { return ({\n value: data[++index],\n done: (index === data.length),\n }); },\n };\n };\n /**\n * Converts the Coins information to a comma-separated list.\n *\n * Eg: `15000ukrw,12000ujmes`\n */\n Coins.prototype.toString = function () {\n return this.toArray()\n .map(function (c) { return c.toString(); })\n .join(',');\n };\n /**\n * Converts a comma-separated list of coins to a Coins object\n *\n * Eg. `1500ukrw,12302ujmes`\n *\n * @param str comma-separated list of coins\n */\n Coins.fromString = function (str) {\n var coin_strings = str.split(/,\\s*/);\n var coins = coin_strings.map(function (s) { return Coin_1.Coin.fromString(s); });\n return new Coins(coins);\n };\n /**\n * Gets the list of denominations\n */\n Coins.prototype.denoms = function () {\n return this.map(function (c) { return c.denom; });\n };\n /**\n * Creates a new Coins object with all Decimal coins\n */\n Coins.prototype.toDecCoins = function () {\n return new Coins(this.map(function (c) { return c.toDecCoin(); }));\n };\n /**\n * Creates a new Coins object with all Integer coins\n */\n Coins.prototype.toIntCoins = function () {\n return new Coins(this.map(function (c) { return c.toIntCoin(); }));\n };\n /**\n * Creates a new Coins object with all Integer coins with ceiling the amount\n */\n Coins.prototype.toIntCeilCoins = function () {\n return new Coins(this.map(function (c) { return c.toIntCeilCoin(); }));\n };\n /**\n * Gets the Coin for denomination if it exists in the collection.\n * @param denom denomination to lookup\n */\n Coins.prototype.get = function (denom) {\n return this._coins[denom];\n };\n /**\n * Sets the Coin value for a denomination.\n * @param denom denomination to set\n * @param value value to set\n */\n Coins.prototype.set = function (denom, value) {\n var val;\n if (value instanceof Coin_1.Coin) {\n if (value.denom != denom) {\n throw new Error(\"Denoms must match when setting: \".concat(denom, \", \").concat(value.denom));\n }\n val = value;\n }\n else {\n val = new Coin_1.Coin(denom, value);\n }\n this._coins[denom] = val;\n };\n /**\n * Gets the individual elements of the collection.\n */\n Coins.prototype.toArray = function () {\n return Object.values(this._coins).sort(function (a, b) {\n return a.denom.localeCompare(b.denom);\n });\n };\n /**\n * Adds a value from the elements of the collection. Coins of a similar denomination\n * will be clobbered into one value containing their sum.\n * @param other\n */\n Coins.prototype.add = function (other) {\n if (other instanceof Coin_1.Coin) {\n return new Coins(__spreadArray([other], Object.values(this._coins), true));\n }\n else {\n return new Coins(__spreadArray(__spreadArray([], Object.values(other._coins), true), Object.values(this._coins), true));\n }\n };\n /**\n * Subtracts a value from the elements of the collection.\n * @param other\n */\n Coins.prototype.sub = function (other) {\n return this.add(other.mul(-1));\n };\n /**\n * Multiplies the elements of the collection by a value.\n * @param other\n */\n Coins.prototype.mul = function (other) {\n return new Coins(this.map(function (c) { return c.mul(other); }));\n };\n /**\n * Divides the elements of the collection by a value.\n * @param other\n */\n Coins.prototype.div = function (other) {\n return new Coins(this.map(function (c) { return c.div(other); }));\n };\n /**\n * Modulos the elements of the collection with a value.\n * @param other\n */\n Coins.prototype.mod = function (other) {\n return new Coins(this.map(function (c) { return c.mod(other); }));\n };\n /**\n * Map a value onto the elements of the Coin collection.\n * @param fn\n */\n Coins.prototype.map = function (fn) {\n return this.toArray().map(fn);\n };\n /**\n * Filters out the Coin objects that don't match the predicate\n * @param fn predicate\n */\n Coins.prototype.filter = function (fn) {\n return new Coins(this.toArray().filter(fn));\n };\n Coins.fromAmino = function (data) {\n return new Coins((data !== null && data !== void 0 ? data : []).map(Coin_1.Coin.fromAmino));\n };\n Coins.prototype.toAmino = function () {\n return this.toArray().map(function (c) { return c.toAmino(); });\n };\n Coins.fromData = function (data) {\n return new Coins((data !== null && data !== void 0 ? data : []).map(Coin_1.Coin.fromData));\n };\n Coins.prototype.toData = function () {\n return this.toArray().map(function (c) { return c.toData(); });\n };\n Coins.fromProto = function (data) {\n return new Coins((data !== null && data !== void 0 ? data : []).map(Coin_1.Coin.fromProto));\n };\n Coins.prototype.toProto = function () {\n return this.toArray().map(function (c) { return c.toProto(); });\n };\n return Coins;\n}(json_1.JSONSerializable));\nexports.Coins = Coins;\n//# sourceMappingURL=Coins.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CompactBitArray = void 0;\nvar multisig_1 = require(\"@terra-money/terra.proto/cosmos/crypto/multisig/v1beta1/multisig\");\nvar CompactBitArray = /** @class */ (function () {\n function CompactBitArray(extra_bits_stored, elems) {\n this.extra_bits_stored = extra_bits_stored;\n this.elems = elems;\n }\n CompactBitArray.fromBits = function (bits) {\n if (bits <= 0) {\n throw new Error('CompactBitArray bits must be bigger than 0');\n }\n var num_elems = (bits + 7) / 8;\n if (num_elems <= 0 || num_elems > Math.pow(2, 32) - 1) {\n // We encountered an overflow here, and shouldn't pass negatives\n // to make, nor should we allow unreasonable limits > maxint32.\n // See https://github.com/cosmos/cosmos-sdk/issues/9162\n throw new Error('CompactBitArray overflow');\n }\n return new CompactBitArray(bits % 8, Buffer.alloc(num_elems));\n };\n // returns the number of bits in the bitarray\n CompactBitArray.prototype.count = function () {\n if (this.extra_bits_stored == 0) {\n return this.elems.length * 8;\n }\n return (this.elems.length - 1) * 8 + this.extra_bits_stored;\n };\n // returns true if the bit at index i is set; returns false otherwise.\n // The behavior is undefined if i >= bA.Count()\n CompactBitArray.prototype.getIndex = function (i) {\n if (i < 0 || i >= this.count()) {\n return false;\n }\n return (this.elems.readUInt8(i >> 3) & (1 << (7 - (i % 8)))) > 0;\n };\n // sets the bit at index i within the bit array. Returns true if and only if the\n // operation succeeded. The behavior is undefined if i >= bA.Count()\n CompactBitArray.prototype.setIndex = function (i, v) {\n if (i < 0 || i >= this.count()) {\n return false;\n }\n if (v) {\n this.elems[i >> 3] |= 1 << (7 - (i % 8));\n }\n else {\n this.elems[i >> 3] &= ~(1 << (7 - (i % 8)));\n }\n return true;\n };\n // returns the number of bits set to true before the\n // given index. e.g. if bA = _XX__XX, NumOfTrueBitsBefore(4) = 2, since\n // there are two bits set to true before index 4.\n CompactBitArray.prototype.numTrueBitsBefore = function (index) {\n var countOneBits = function (n) {\n return n.toString(2).split('0').join('').length;\n };\n var ones_count = 0;\n var max = this.count();\n if (index > max) {\n index = max;\n }\n // below we iterate over the bytes then over bits (in low endian) and count bits set to 1\n for (var elem = 0;; elem++) {\n if (elem * 8 + 7 >= index) {\n ones_count += countOneBits(this.elems[elem] >> (7 - (index % 8) + 1));\n return ones_count;\n }\n ones_count += countOneBits(this.elems[elem]);\n }\n };\n CompactBitArray.fromData = function (data) {\n return new CompactBitArray(data.extra_bits_stored, Buffer.from(data.elems, 'base64'));\n };\n CompactBitArray.prototype.toData = function () {\n return {\n elems: this.elems.toString('base64'),\n extra_bits_stored: this.extra_bits_stored,\n };\n };\n CompactBitArray.fromProto = function (proto) {\n return new CompactBitArray(proto.extraBitsStored, Buffer.from(proto.elems));\n };\n CompactBitArray.prototype.toProto = function () {\n return multisig_1.CompactBitArray.fromPartial({\n elems: this.elems,\n extraBitsStored: this.extra_bits_stored,\n });\n };\n return CompactBitArray;\n}());\nexports.CompactBitArray = CompactBitArray;\n//# sourceMappingURL=CompactBitArray.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=Denom.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Deposit = void 0;\nvar Coins_1 = require(\"./Coins\");\nvar json_1 = require(\"../util/json\");\nvar gov_1 = require(\"@terra-money/terra.proto/cosmos/gov/v1beta1/gov\");\nvar Long = __importStar(require(\"long\"));\n/**\n * Stores deposit information for a proposal\n */\nvar Deposit = /** @class */ (function (_super) {\n __extends(Deposit, _super);\n /**\n * @param proposal_id Id of porposal to deposit to\n * @param depositor depositor's account address\n * @param amount amount to deposit\n */\n function Deposit(proposal_id, depositor, amount) {\n var _this = _super.call(this) || this;\n _this.proposal_id = proposal_id;\n _this.depositor = depositor;\n _this.amount = new Coins_1.Coins(amount);\n return _this;\n }\n Deposit.fromAmino = function (data) {\n var proposal_id = data.proposal_id, depositor = data.depositor, amount = data.amount;\n return new Deposit(Number.parseInt(proposal_id), depositor, Coins_1.Coins.fromAmino(amount));\n };\n Deposit.prototype.toAmino = function () {\n var _a = this, proposal_id = _a.proposal_id, depositor = _a.depositor, amount = _a.amount;\n return {\n proposal_id: proposal_id.toString(),\n depositor: depositor,\n amount: amount.toAmino(),\n };\n };\n Deposit.fromData = function (data) {\n var proposal_id = data.proposal_id, depositor = data.depositor, amount = data.amount;\n return new Deposit(Number.parseInt(proposal_id), depositor, Coins_1.Coins.fromData(amount));\n };\n Deposit.prototype.toData = function () {\n var _a = this, proposal_id = _a.proposal_id, depositor = _a.depositor, amount = _a.amount;\n return {\n proposal_id: proposal_id.toString(),\n depositor: depositor,\n amount: amount.toData(),\n };\n };\n Deposit.fromProto = function (data) {\n return new Deposit(data.proposalId.toNumber(), data.depositor, Coins_1.Coins.fromProto(data.amount));\n };\n Deposit.prototype.toProto = function () {\n var _a = this, proposal_id = _a.proposal_id, depositor = _a.depositor, amount = _a.amount;\n return gov_1.Deposit.fromPartial({\n proposalId: Long.fromNumber(proposal_id),\n depositor: depositor,\n amount: amount.toProto(),\n });\n };\n return Deposit;\n}(json_1.JSONSerializable));\nexports.Deposit = Deposit;\n//# sourceMappingURL=Deposit.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Fee = void 0;\nvar json_1 = require(\"../util/json\");\nvar Coins_1 = require(\"./Coins\");\nvar numeric_1 = require(\"./numeric\");\nvar tx_1 = require(\"@terra-money/terra.proto/cosmos/tx/v1beta1/tx\");\nvar Long = __importStar(require(\"long\"));\n/**\n * A transaction must include a fee, otherwise it will be rejected.\n */\nvar Fee = /** @class */ (function (_super) {\n __extends(Fee, _super);\n /**\n * Creates a new Fee object.\n * @param gas gas limit\n * @param amount amount to be paid to validator\n */\n function Fee(gas_limit, amount, payer, granter) {\n var _this = _super.call(this) || this;\n _this.gas_limit = gas_limit;\n _this.payer = payer;\n _this.granter = granter;\n _this.amount = new Coins_1.Coins(amount);\n return _this;\n }\n Fee.fromAmino = function (data) {\n var gas = data.gas, amount = data.amount;\n return new Fee(Number.parseInt(gas), Coins_1.Coins.fromAmino(amount), '', '');\n };\n Fee.prototype.toAmino = function () {\n return {\n gas: new numeric_1.Int(this.gas_limit).toString(),\n amount: this.amount.toAmino(),\n };\n };\n Fee.fromData = function (data) {\n return new Fee(Number.parseInt(data.gas_limit), Coins_1.Coins.fromData(data.amount), data.payer, data.granter);\n };\n Fee.prototype.toData = function () {\n var _a = this, amount = _a.amount, gas_limit = _a.gas_limit, payer = _a.payer, granter = _a.granter;\n return {\n amount: amount.toData(),\n gas_limit: gas_limit.toFixed(),\n granter: granter !== null && granter !== void 0 ? granter : '',\n payer: payer !== null && payer !== void 0 ? payer : '',\n };\n };\n Fee.fromProto = function (proto) {\n return new Fee(proto.gasLimit.toNumber(), Coins_1.Coins.fromProto(proto.amount), proto.payer, proto.granter);\n };\n Fee.prototype.toProto = function () {\n var _a = this, amount = _a.amount, gas_limit = _a.gas_limit, payer = _a.payer, granter = _a.granter;\n return tx_1.Fee.fromPartial({\n amount: amount.toProto(),\n gasLimit: Long.fromNumber(gas_limit),\n granter: granter,\n payer: payer,\n });\n };\n /**\n * Gets the minimum gas prices implied by the fee. Minimum gas prices are `fee amount / gas`.\n */\n Fee.prototype.gasPrices = function () {\n return this.amount.toDecCoins().div(this.gas_limit);\n };\n return Fee;\n}(json_1.JSONSerializable));\nexports.Fee = Fee;\n//# sourceMappingURL=Fee.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Msg = void 0;\nvar msgs_1 = require(\"./bank/msgs\");\nvar msgs_2 = require(\"./distribution/msgs\");\nvar msgs_3 = require(\"./feegrant/msgs\");\nvar msgs_4 = require(\"./gov/msgs\");\nvar msgs_5 = require(\"./market/msgs\");\nvar msgs_6 = require(\"./authz/msgs\");\nvar msgs_7 = require(\"./oracle/msgs\");\nvar msgs_8 = require(\"./slashing/msgs\");\nvar msgs_9 = require(\"./staking/msgs\");\nvar msgs_10 = require(\"./vesting/msgs\");\nvar msgs_11 = require(\"./wasm/msgs\");\nvar transfer_1 = require(\"./ibc/applications/transfer\");\nvar client_1 = require(\"./ibc/msgs/client\");\nvar connection_1 = require(\"./ibc/msgs/connection\");\nvar channel_1 = require(\"./ibc/msgs/channel\");\nvar crisis_1 = require(\"./crisis\");\nvar Msg;\n(function (Msg) {\n function fromAmino(data, isClassic) {\n switch (data.type) {\n // bank\n case 'bank/MsgSend':\n case 'cosmos-sdk/MsgSend':\n return msgs_1.MsgSend.fromAmino(data, isClassic);\n case 'bank/MsgMultiSend':\n case 'cosmos-sdk/MsgMultiSend':\n return msgs_1.MsgMultiSend.fromAmino(data, isClassic);\n // distribution\n case 'distribution/MsgModifyWithdrawAddress':\n case 'cosmos-sdk/MsgModifyWithdrawAddress':\n return msgs_2.MsgSetWithdrawAddress.fromAmino(data, isClassic);\n case 'distribution/MsgWithdrawDelegationReward':\n case 'cosmos-sdk/MsgWithdrawDelegationReward':\n return msgs_2.MsgWithdrawDelegatorReward.fromAmino(data, isClassic);\n case 'distribution/MsgWithdrawValidatorCommission':\n case 'cosmos-sdk/MsgWithdrawValidatorCommission':\n return msgs_2.MsgWithdrawValidatorCommission.fromAmino(data, isClassic);\n case 'distribution/MsgFundCommunityPool':\n case 'cosmos-sdk/MsgFundCommunityPool':\n return msgs_2.MsgFundCommunityPool.fromAmino(data, isClassic);\n // feegrant\n case 'feegrant/MsgGrantAllowance':\n case 'cosmos-sdk/MsgGrantAllowance':\n return msgs_3.MsgGrantAllowance.fromAmino(data, isClassic);\n case 'feegrant/MsgRevokeAllowance':\n case 'cosmos-sdk/MsgRevokeAllowance':\n return msgs_3.MsgRevokeAllowance.fromAmino(data, isClassic);\n // gov\n case 'gov/MsgDeposit':\n case 'cosmos-sdk/MsgDeposit':\n return msgs_4.MsgDeposit.fromAmino(data, isClassic);\n case 'gov/MsgSubmitProposal':\n case 'cosmos-sdk/MsgSubmitProposal':\n return msgs_4.MsgSubmitProposal.fromAmino(data, isClassic);\n case 'gov/MsgVote':\n case 'cosmos-sdk/MsgVote':\n return msgs_4.MsgVote.fromAmino(data, isClassic);\n case 'gov/MsgVoteWeighted':\n case 'cosmos-sdk/MsgVoteWeighted':\n return msgs_4.MsgVoteWeighted.fromAmino(data, isClassic);\n // market\n case 'market/MsgSwap':\n return msgs_5.MsgSwap.fromAmino(data, isClassic);\n case 'market/MsgSwapSend':\n return msgs_5.MsgSwapSend.fromAmino(data, isClassic);\n // msgauth\n case 'msgauth/MsgGrantAuthorization':\n case 'cosmos-sdk/MsgGrant':\n return msgs_6.MsgGrantAuthorization.fromAmino(data, isClassic);\n case 'msgauth/MsgRevokeAuthorization':\n case 'cosmos-sdk/MsgRevoke':\n return msgs_6.MsgRevokeAuthorization.fromAmino(data, isClassic);\n case 'msgauth/MsgExecAuthorized':\n case 'cosmos-sdk/MsgExec':\n return msgs_6.MsgExecAuthorized.fromAmino(data, isClassic);\n // oracle\n case 'oracle/MsgDelegateFeedConsent':\n return msgs_7.MsgDelegateFeedConsent.fromAmino(data, isClassic);\n case 'oracle/MsgAggregateExchangeRatePrevote':\n return msgs_7.MsgAggregateExchangeRatePrevote.fromAmino(data, isClassic);\n case 'oracle/MsgAggregateExchangeRateVote':\n return msgs_7.MsgAggregateExchangeRateVote.fromAmino(data, isClassic);\n // slashing\n case 'slashing/MsgUnjail':\n case 'cosmos-sdk/MsgUnjail':\n return msgs_8.MsgUnjail.fromAmino(data, isClassic);\n // staking\n case 'staking/MsgDelegate':\n case 'cosmos-sdk/MsgDelegate':\n return msgs_9.MsgDelegate.fromAmino(data, isClassic);\n case 'staking/MsgUndelegate':\n case 'cosmos-sdk/MsgUndelegate':\n return msgs_9.MsgUndelegate.fromAmino(data, isClassic);\n case 'staking/MsgBeginRedelegate':\n case 'cosmos-sdk/MsgBeginRedelegate':\n return msgs_9.MsgBeginRedelegate.fromAmino(data, isClassic);\n case 'staking/MsgCreateValidator':\n case 'cosmos-sdk/MsgCreateValidator':\n return msgs_9.MsgCreateValidator.fromAmino(data, isClassic);\n case 'staking/MsgEditValidator':\n case 'cosmos-sdk/MsgEditValidator':\n return msgs_9.MsgEditValidator.fromAmino(data, isClassic);\n // vesting\n case 'cosmos-sdk/MsgCreatePeriodicVestingAccount':\n return msgs_10.MsgCreatePeriodicVestingAccount.fromAmino(data, isClassic);\n case 'cosmos-sdk/MsgCreateVestingAccount':\n return msgs_10.MsgCreateVestingAccount.fromAmino(data, isClassic);\n case 'cosmos-sdk/MsgDonateAllVestingTokens':\n return msgs_10.MsgDonateAllVestingTokens.fromAmino(data, isClassic);\n // wasm\n case 'wasm/MsgStoreCode':\n return msgs_11.MsgStoreCode.fromAmino(data, isClassic);\n case 'wasm/MsgMigrateCode':\n return msgs_11.MsgMigrateCode.fromAmino(data, isClassic);\n case 'wasm/MsgInstantiateContract':\n return msgs_11.MsgInstantiateContract.fromAmino(data, isClassic);\n case 'wasm/MsgExecuteContract':\n return msgs_11.MsgExecuteContract.fromAmino(data, isClassic);\n case 'wasm/MsgMigrateContract':\n return msgs_11.MsgMigrateContract.fromAmino(data, isClassic);\n case 'wasm/MsgUpdateContractAdmin':\n case 'wasm/MsgUpdateAdmin':\n return msgs_11.MsgUpdateContractAdmin.fromAmino(data, isClassic);\n case 'wasm/MsgClearContractAdmin':\n case 'wasm/MsgClearAdmin':\n return msgs_11.MsgClearContractAdmin.fromAmino(data, isClassic);\n // ibc-transfer\n case 'cosmos-sdk/MsgTransfer':\n return transfer_1.MsgTransfer.fromAmino(data, isClassic);\n // crisis\n case 'crisis/MsgVerifyInvariant':\n case 'cosmos-sdk/MsgVerifyInvariant':\n return crisis_1.MsgVerifyInvariant.fromAmino(data, isClassic);\n }\n }\n Msg.fromAmino = fromAmino;\n function fromData(data, isClassic) {\n switch (data['@type']) {\n // bank\n case '/cosmos.bank.v1beta1.MsgSend':\n return msgs_1.MsgSend.fromData(data, isClassic);\n case '/cosmos.bank.v1beta1.MsgMultiSend':\n return msgs_1.MsgMultiSend.fromData(data, isClassic);\n // distribution\n case '/cosmos.distribution.v1beta1.MsgSetWithdrawAddress':\n return msgs_2.MsgSetWithdrawAddress.fromData(data, isClassic);\n case '/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward':\n return msgs_2.MsgWithdrawDelegatorReward.fromData(data, isClassic);\n case '/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission':\n return msgs_2.MsgWithdrawValidatorCommission.fromData(data, isClassic);\n case '/cosmos.distribution.v1beta1.MsgFundCommunityPool':\n return msgs_2.MsgFundCommunityPool.fromData(data, isClassic);\n // feegrant\n case '/cosmos.feegrant.v1beta1.MsgGrantAllowance':\n return msgs_3.MsgGrantAllowance.fromData(data, isClassic);\n case '/cosmos.feegrant.v1beta1.MsgRevokeAllowance':\n return msgs_3.MsgRevokeAllowance.fromData(data, isClassic);\n // gov\n case '/cosmos.gov.v1beta1.MsgDeposit':\n return msgs_4.MsgDeposit.fromData(data, isClassic);\n case '/cosmos.gov.v1beta1.MsgSubmitProposal':\n return msgs_4.MsgSubmitProposal.fromData(data, isClassic);\n case '/cosmos.gov.v1beta1.MsgVote':\n return msgs_4.MsgVote.fromData(data, isClassic);\n case '/cosmos.gov.v1beta1.MsgVoteWeighted':\n return msgs_4.MsgVoteWeighted.fromData(data, isClassic);\n // market\n case '/terra.market.v1beta1.MsgSwap':\n return msgs_5.MsgSwap.fromData(data, isClassic);\n case '/terra.market.v1beta1.MsgSwapSend':\n return msgs_5.MsgSwapSend.fromData(data, isClassic);\n // authz\n case '/cosmos.authz.v1beta1.MsgGrant':\n return msgs_6.MsgGrantAuthorization.fromData(data, isClassic);\n case '/cosmos.authz.v1beta1.MsgRevoke':\n return msgs_6.MsgRevokeAuthorization.fromData(data, isClassic);\n case '/cosmos.authz.v1beta1.MsgExec':\n return msgs_6.MsgExecAuthorized.fromData(data, isClassic);\n // oracle\n case '/terra.oracle.v1beta1.MsgDelegateFeedConsent':\n return msgs_7.MsgDelegateFeedConsent.fromData(data, isClassic);\n case '/terra.oracle.v1beta1.MsgAggregateExchangeRatePrevote':\n return msgs_7.MsgAggregateExchangeRatePrevote.fromData(data, isClassic);\n case '/terra.oracle.v1beta1.MsgAggregateExchangeRateVote':\n return msgs_7.MsgAggregateExchangeRateVote.fromData(data, isClassic);\n // slashing\n case '/cosmos.slashing.v1beta1.MsgUnjail':\n return msgs_8.MsgUnjail.fromData(data, isClassic);\n // staking\n case '/cosmos.staking.v1beta1.MsgDelegate':\n return msgs_9.MsgDelegate.fromData(data, isClassic);\n case '/cosmos.staking.v1beta1.MsgUndelegate':\n return msgs_9.MsgUndelegate.fromData(data, isClassic);\n case '/cosmos.staking.v1beta1.MsgBeginRedelegate':\n return msgs_9.MsgBeginRedelegate.fromData(data, isClassic);\n case '/cosmos.staking.v1beta1.MsgCreateValidator':\n return msgs_9.MsgCreateValidator.fromData(data, isClassic);\n case '/cosmos.staking.v1beta1.MsgEditValidator':\n return msgs_9.MsgEditValidator.fromData(data, isClassic);\n // vesting\n case '/cosmos.vesting.v1beta1.MsgCreatePeriodicVestingAccount':\n return msgs_10.MsgCreatePeriodicVestingAccount.fromData(data, isClassic);\n case '/cosmos.vesting.v1beta1.MsgCreateVestingAccount':\n return msgs_10.MsgCreateVestingAccount.fromData(data, isClassic);\n case '/cosmos.vesting.v1beta1.MsgDonateAllVestingTokens':\n return msgs_10.MsgDonateAllVestingTokens.fromData(data, isClassic);\n // wasm\n case '/jmes.wasm.v1beta1.MsgStoreCode':\n case '/cosmwasm.wasm.v1.MsgStoreCode':\n return msgs_11.MsgStoreCode.fromData(data, isClassic);\n case '/jmes.wasm.v1beta1.MsgMigrateCode': // isClassic only\n return msgs_11.MsgMigrateCode.fromData(data, isClassic);\n case '/jmes.wasm.v1beta1.MsgInstantiateContract':\n case '/cosmwasm.wasm.v1.MsgInstantiateContract':\n return msgs_11.MsgInstantiateContract.fromData(data, isClassic);\n case '/jmes.wasm.v1beta1.MsgExecuteContract':\n case '/cosmwasm.wasm.v1.MsgExecuteContract':\n return msgs_11.MsgExecuteContract.fromData(data, isClassic);\n case '/jmes.wasm.v1beta1.MsgMigrateContract':\n case '/cosmwasm.wasm.v1.MsgMigrateContract':\n return msgs_11.MsgMigrateContract.fromData(data, isClassic);\n case '/jmes.wasm.v1beta1.MsgUpdateContractAdmin':\n case '/cosmwasm.wasm.v1.MsgUpdateAdmin':\n return msgs_11.MsgUpdateContractAdmin.fromData(data, isClassic);\n case '/jmes.wasm.v1beta1.MsgClearContractAdmin':\n case '/cosmwasm.wasm.v1.MsgClearAdmin':\n return msgs_11.MsgClearContractAdmin.fromData(data, isClassic);\n // ibc-transfer\n case '/ibc.applications.transfer.v1.MsgTransfer':\n return transfer_1.MsgTransfer.fromData(data, isClassic);\n // ibc-client\n case '/ibc.core.client.v1.MsgCreateClient':\n return client_1.MsgCreateClient.fromData(data, isClassic);\n case '/ibc.core.client.v1.MsgUpdateClient':\n return client_1.MsgUpdateClient.fromData(data, isClassic);\n case '/ibc.core.client.v1.MsgUpgradeClient':\n return client_1.MsgUpgradeClient.fromData(data, isClassic);\n case '/ibc.core.client.v1.MsgSubmitMisbehaviour':\n return client_1.MsgSubmitMisbehaviour.fromData(data, isClassic);\n // ibc-connection\n case '/ibc.core.connection.v1.MsgConnectionOpenInit':\n return connection_1.MsgConnectionOpenInit.fromData(data, isClassic);\n case '/ibc.core.connection.v1.MsgConnectionOpenTry':\n return connection_1.MsgConnectionOpenTry.fromData(data, isClassic);\n case '/ibc.core.connection.v1.MsgConnectionOpenConfirm':\n return connection_1.MsgConnectionOpenConfirm.fromData(data, isClassic);\n case '/ibc.core.connection.v1.MsgConnectionOpenAck':\n return connection_1.MsgConnectionOpenAck.fromData(data, isClassic);\n // ibc-channel\n case '/ibc.core.channel.v1.MsgChannelOpenInit':\n return channel_1.MsgChannelOpenInit.fromData(data, isClassic);\n case '/ibc.core.channel.v1.MsgChannelOpenTry':\n return channel_1.MsgChannelOpenTry.fromData(data, isClassic);\n case '/ibc.core.channel.v1.MsgChannelOpenConfirm':\n return channel_1.MsgChannelOpenConfirm.fromData(data, isClassic);\n case '/ibc.core.channel.v1.MsgChannelOpenAck':\n return channel_1.MsgChannelOpenAck.fromData(data, isClassic);\n case '/ibc.core.channel.v1.MsgChannelCloseInit':\n return channel_1.MsgChannelCloseInit.fromData(data, isClassic);\n case '/ibc.core.channel.v1.MsgChannelCloseConfirm':\n return channel_1.MsgChannelCloseConfirm.fromData(data, isClassic);\n case '/ibc.core.channel.v1.MsgRecvPacket':\n return channel_1.MsgRecvPacket.fromData(data, isClassic);\n case '/ibc.core.channel.v1.MsgAcknowledgement':\n return channel_1.MsgAcknowledgement.fromData(data, isClassic);\n case '/ibc.core.channel.v1.MsgTimeout':\n return channel_1.MsgTimeout.fromData(data, isClassic);\n case '/ibc.core.channel.v1.MsgTimeoutOnClose':\n return channel_1.MsgTimeoutOnClose.fromData(data, isClassic);\n // crisis\n case '/cosmos.crisis.v1beta1.MsgVerifyInvariant':\n return crisis_1.MsgVerifyInvariant.fromData(data, isClassic);\n default:\n throw Error(\"not supported msg \".concat(data['@type']));\n }\n }\n Msg.fromData = fromData;\n function fromProto(proto, isClassic) {\n switch (proto.typeUrl) {\n // bank\n case '/cosmos.bank.v1beta1.MsgSend':\n return msgs_1.MsgSend.unpackAny(proto, isClassic);\n case '/cosmos.bank.v1beta1.MsgMultiSend':\n return msgs_1.MsgMultiSend.unpackAny(proto, isClassic);\n // distribution\n case '/cosmos.distribution.v1beta1.MsgSetWithdrawAddress':\n return msgs_2.MsgSetWithdrawAddress.unpackAny(proto, isClassic);\n case '/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward':\n return msgs_2.MsgWithdrawDelegatorReward.unpackAny(proto, isClassic);\n case '/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission':\n return msgs_2.MsgWithdrawValidatorCommission.unpackAny(proto, isClassic);\n case '/cosmos.distribution.v1beta1.MsgFundCommunityPool':\n return msgs_2.MsgFundCommunityPool.unpackAny(proto, isClassic);\n // feegrant\n case '/cosmos.feegrant.v1beta1.MsgGrantAllowance':\n return msgs_3.MsgGrantAllowance.unpackAny(proto, isClassic);\n case '/cosmos.feegrant.v1beta1.MsgRevokeAllowance':\n return msgs_3.MsgRevokeAllowance.unpackAny(proto, isClassic);\n // gov\n case '/cosmos.gov.v1beta1.MsgDeposit':\n return msgs_4.MsgDeposit.unpackAny(proto, isClassic);\n case '/cosmos.gov.v1beta1.MsgSubmitProposal':\n return msgs_4.MsgSubmitProposal.unpackAny(proto, isClassic);\n case '/cosmos.gov.v1beta1.MsgVote':\n return msgs_4.MsgVote.unpackAny(proto, isClassic);\n // market\n case '/terra.market.v1beta1.MsgSwap':\n return msgs_5.MsgSwap.unpackAny(proto, isClassic);\n case '/terra.market.v1beta1.MsgSwapSend':\n return msgs_5.MsgSwapSend.unpackAny(proto, isClassic);\n // authz\n case '/cosmos.authz.v1beta1.MsgGrant':\n return msgs_6.MsgGrantAuthorization.unpackAny(proto, isClassic);\n case '/cosmos.authz.v1beta1.MsgRevoke':\n return msgs_6.MsgRevokeAuthorization.unpackAny(proto, isClassic);\n case '/cosmos.authz.v1beta1.MsgExec':\n return msgs_6.MsgExecAuthorized.unpackAny(proto, isClassic);\n // oracle\n case '/terra.oracle.v1beta1.MsgDelegateFeedConsent':\n return msgs_7.MsgDelegateFeedConsent.unpackAny(proto, isClassic);\n case '/terra.oracle.v1beta1.MsgAggregateExchangeRatePrevote':\n return msgs_7.MsgAggregateExchangeRatePrevote.unpackAny(proto, isClassic);\n case '/terra.oracle.v1beta1.MsgAggregateExchangeRateVote':\n return msgs_7.MsgAggregateExchangeRateVote.unpackAny(proto, isClassic);\n // slashing\n case '/cosmos.slashing.v1beta1.MsgUnjail':\n return msgs_8.MsgUnjail.unpackAny(proto, isClassic);\n // staking\n case '/cosmos.staking.v1beta1.MsgDelegate':\n return msgs_9.MsgDelegate.unpackAny(proto, isClassic);\n case '/cosmos.staking.v1beta1.MsgUndelegate':\n return msgs_9.MsgUndelegate.unpackAny(proto, isClassic);\n case '/cosmos.staking.v1beta1.MsgBeginRedelegate':\n return msgs_9.MsgBeginRedelegate.unpackAny(proto, isClassic);\n case '/cosmos.staking.v1beta1.MsgCreateValidator':\n return msgs_9.MsgCreateValidator.unpackAny(proto, isClassic);\n case '/cosmos.staking.v1beta1.MsgEditValidator':\n return msgs_9.MsgEditValidator.unpackAny(proto, isClassic);\n // vesting\n case '/cosmos.vesting.v1beta1.MsgCreatePeriodicVestingAccount':\n return msgs_10.MsgCreatePeriodicVestingAccount.unpackAny(proto, isClassic);\n case '/cosmos.vesting.v1beta1.MsgCreateVestingAccount':\n return msgs_10.MsgCreateVestingAccount.unpackAny(proto, isClassic);\n case '/cosmos.vesting.v1beta1.MsgDonateAllVestingTokens':\n return msgs_10.MsgDonateAllVestingTokens.unpackAny(proto, isClassic);\n // wasm\n case '/jmes.wasm.v1beta1.MsgStoreCode':\n case '/cosmwasm.wasm.v1.MsgStoreCode':\n return msgs_11.MsgStoreCode.unpackAny(proto, isClassic);\n case '/jmes.wasm.v1beta1.MsgMigrateCode': // isClassic only\n return msgs_11.MsgMigrateCode.unpackAny(proto, isClassic);\n case '/jmes.wasm.v1beta1.MsgInstantiateContract':\n case '/cosmwasm.wasm.v1.MsgInstantiateContract':\n return msgs_11.MsgInstantiateContract.unpackAny(proto, isClassic);\n case '/jmes.wasm.v1beta1.MsgExecuteContract':\n case '/cosmwasm.wasm.v1.MsgExecuteContract':\n return msgs_11.MsgExecuteContract.unpackAny(proto, isClassic);\n case '/jmes.wasm.v1beta1.MsgMigrateContract':\n case '/cosmwasm.wasm.v1beta1.MsgMigrateContract':\n return msgs_11.MsgMigrateContract.unpackAny(proto, isClassic);\n case '/jmes.wasm.v1beta1.MsgUpdateContractAdmin':\n case '/cosmwasm.wasm.v1beta1.MsgUpdateAdmin':\n return msgs_11.MsgUpdateContractAdmin.unpackAny(proto, isClassic);\n case '/jmes.wasm.v1beta1.MsgClearContractAdmin':\n case '/cosmwasm.wasm.v1.MsgClearAdmin':\n return msgs_11.MsgClearContractAdmin.unpackAny(proto, isClassic);\n // ibc-transfer\n case '/ibc.applications.transfer.v1.MsgTransfer':\n return transfer_1.MsgTransfer.unpackAny(proto, isClassic);\n // ibc-client\n case '/ibc.core.client.v1.MsgCreateClient':\n return client_1.MsgCreateClient.unpackAny(proto, isClassic);\n case '/ibc.core.client.v1.MsgUpdateClient':\n return client_1.MsgUpdateClient.unpackAny(proto, isClassic);\n case '/ibc.core.client.v1.MsgUpgradeClient':\n return client_1.MsgUpgradeClient.unpackAny(proto, isClassic);\n case '/ibc.core.client.v1.MsgSubmitMisbehaviour':\n return client_1.MsgSubmitMisbehaviour.unpackAny(proto, isClassic);\n // ibc-connection\n case '/ibc.core.connection.v1.MsgConnectionOpenInit':\n return connection_1.MsgConnectionOpenInit.unpackAny(proto, isClassic);\n case '/ibc.core.connection.v1.MsgConnectionOpenTry':\n return connection_1.MsgConnectionOpenTry.unpackAny(proto, isClassic);\n case '/ibc.core.connection.v1.MsgConnectionOpenConfirm':\n return connection_1.MsgConnectionOpenConfirm.unpackAny(proto, isClassic);\n case '/ibc.core.connection.v1.MsgConnectionOpenAck':\n return connection_1.MsgConnectionOpenAck.unpackAny(proto, isClassic);\n // ibc-channel\n case '/ibc.core.channel.v1.MsgChannelOpenInit':\n return channel_1.MsgChannelOpenInit.unpackAny(proto, isClassic);\n case '/ibc.core.channel.v1.MsgChannelOpenTry':\n return channel_1.MsgChannelOpenTry.unpackAny(proto, isClassic);\n case '/ibc.core.channel.v1.MsgChannelOpenConfirm':\n return channel_1.MsgChannelOpenConfirm.unpackAny(proto, isClassic);\n case '/ibc.core.channel.v1.MsgChannelOpenAck':\n return channel_1.MsgChannelOpenAck.unpackAny(proto, isClassic);\n case '/ibc.core.channel.v1.MsgChannelCloseInit':\n return channel_1.MsgChannelCloseInit.unpackAny(proto, isClassic);\n case '/ibc.core.channel.v1.MsgChannelCloseConfirm':\n return channel_1.MsgChannelCloseConfirm.unpackAny(proto, isClassic);\n case '/ibc.core.channel.v1.MsgRecvPacket':\n return channel_1.MsgRecvPacket.unpackAny(proto, isClassic);\n case '/ibc.core.channel.v1.MsgAcknowledgement':\n return channel_1.MsgAcknowledgement.unpackAny(proto, isClassic);\n case '/ibc.core.channel.v1.MsgTimeout':\n return channel_1.MsgTimeout.unpackAny(proto, isClassic);\n case '/ibc.core.channel.v1.MsgTimeoutOnClose':\n return channel_1.MsgTimeoutOnClose.unpackAny(proto, isClassic);\n // crisis\n case '/cosmos.crisis.v1beta1.MsgVerifyInvariant':\n return crisis_1.MsgVerifyInvariant.unpackAny(proto, isClassic);\n default:\n throw Error(\"not supported msg \".concat(proto.typeUrl));\n }\n }\n Msg.fromProto = fromProto;\n})(Msg = exports.Msg || (exports.Msg = {}));\n//# sourceMappingURL=Msg.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MultiSignature = void 0;\nvar PublicKey_1 = require(\"./PublicKey\");\nvar CompactBitArray_1 = require(\"./CompactBitArray\");\nvar SignatureV2_1 = require(\"./SignatureV2\");\nvar MultiSignature = /** @class */ (function () {\n /**\n * MultiSignature constructor\n * public_keys order must be guaranteed\n */\n function MultiSignature(multisig_pubkey) {\n this.multisig_pubkey = multisig_pubkey;\n var n = multisig_pubkey.pubkeys.length;\n this.bitarray = CompactBitArray_1.CompactBitArray.fromBits(n);\n this.signatures = [];\n }\n MultiSignature.prototype.appendSignature = function (signature_data, index) {\n var newSigIndex = this.bitarray.numTrueBitsBefore(index);\n // Signature already exists, just replace the value there\n if (this.bitarray.getIndex(index)) {\n this.signatures[newSigIndex] = signature_data;\n return;\n }\n this.bitarray.setIndex(index, true);\n // Optimization if the index is the greatest index\n if (newSigIndex == this.signatures.length) {\n this.signatures.push(signature_data);\n return;\n }\n this.signatures.splice(newSigIndex, 0, signature_data);\n };\n // adds a signature to the multisig, at the index in\n // keys corresponding to the provided pubkey.\n MultiSignature.prototype.appendSignatureFromPubKey = function (signature_data, public_key) {\n var index = this.multisig_pubkey.pubkeys.findIndex(function (v) { return v.key === public_key.key; });\n if (index == -1) {\n throw new Error(\"provided key doesn't exist in public_keys\");\n }\n this.appendSignature(signature_data, index);\n };\n MultiSignature.prototype.appendSignatureV2s = function (signatures) {\n for (var _i = 0, signatures_1 = signatures; _i < signatures_1.length; _i++) {\n var signature = signatures_1[_i];\n if (!(signature.public_key instanceof PublicKey_1.SimplePublicKey)) {\n throw new Error('non-SimplePublicKey cannot be used to sign multisig');\n }\n this.appendSignatureFromPubKey(signature.data, signature.public_key);\n }\n };\n MultiSignature.prototype.toSignatureDescriptor = function () {\n return new SignatureV2_1.SignatureV2.Descriptor(new SignatureV2_1.SignatureV2.Descriptor.Multi(this.bitarray, this.signatures));\n };\n return MultiSignature;\n}());\nexports.MultiSignature = MultiSignature;\n//# sourceMappingURL=MultiSignature.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ValConsPublicKey = exports.LegacyAminoMultisigPublicKey = exports.SimplePublicKey = exports.PublicKey = void 0;\nvar json_1 = require(\"../util/json\");\nvar hash_1 = require(\"../util/hash\");\nvar keys_1 = require(\"@terra-money/terra.proto/cosmos/crypto/multisig/keys\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar keys_2 = require(\"@terra-money/terra.proto/cosmos/crypto/secp256k1/keys\");\nvar keys_3 = require(\"@terra-money/terra.proto/cosmos/crypto/ed25519/keys\");\nvar bech32_1 = require(\"bech32\");\n// As discussed in https://github.com/binance-chain/javascript-sdk/issues/163\n// Prefixes listed here: https://github.com/tendermint/tendermint/blob/d419fffe18531317c28c29a292ad7d253f6cafdf/docs/spec/blockchain/encoding.md#public-key-cryptography\n// Last bytes is varint-encoded length prefix\nvar pubkeyAminoPrefixSecp256k1 = Buffer.from('eb5ae987' + '21' /* fixed length */, 'hex');\nvar pubkeyAminoPrefixEd25519 = Buffer.from('1624de64' + '20' /* fixed length */, 'hex');\n/** See https://github.com/tendermint/tendermint/commit/38b401657e4ad7a7eeb3c30a3cbf512037df3740 */\nvar pubkeyAminoPrefixMultisigThreshold = Buffer.from('22c1f7e2' /* variable length not included */, 'hex');\nvar encodeUvarint = function (value) {\n var checked = Number.parseInt(value.toString());\n if (checked > 127) {\n throw new Error('Encoding numbers > 127 is not supported here. Please tell those lazy CosmJS maintainers to port the binary.PutUvarint implementation from the Go standard library and write some tests.');\n }\n return [checked];\n};\nvar PublicKey;\n(function (PublicKey) {\n function fromAmino(data) {\n switch (data.type) {\n case 'tendermint/PubKeySecp256k1':\n return SimplePublicKey.fromAmino(data);\n case 'tendermint/PubKeyMultisigThreshold':\n return LegacyAminoMultisigPublicKey.fromAmino(data);\n case 'tendermint/PubKeyEd25519':\n return ValConsPublicKey.fromAmino(data);\n }\n }\n PublicKey.fromAmino = fromAmino;\n function fromData(data) {\n switch (data['@type']) {\n case '/cosmos.crypto.secp256k1.PubKey':\n return SimplePublicKey.fromData(data);\n case '/cosmos.crypto.multisig.LegacyAminoPubKey':\n return LegacyAminoMultisigPublicKey.fromData(data);\n case '/cosmos.crypto.ed25519.PubKey':\n return ValConsPublicKey.fromData(data);\n }\n }\n PublicKey.fromData = fromData;\n function fromProto(pubkeyAny) {\n var typeUrl = pubkeyAny.typeUrl;\n if (typeUrl === '/cosmos.crypto.secp256k1.PubKey') {\n return SimplePublicKey.unpackAny(pubkeyAny);\n }\n else if (typeUrl === '/cosmos.crypto.multisig.LegacyAminoPubKey') {\n return LegacyAminoMultisigPublicKey.unpackAny(pubkeyAny);\n }\n else if (typeUrl === '/cosmos.crypto.ed25519.PubKey') {\n return ValConsPublicKey.unpackAny(pubkeyAny);\n }\n throw new Error(\"Pubkey type \".concat(typeUrl, \" not recognized\"));\n }\n PublicKey.fromProto = fromProto;\n})(PublicKey = exports.PublicKey || (exports.PublicKey = {}));\nvar SimplePublicKey = /** @class */ (function (_super) {\n __extends(SimplePublicKey, _super);\n function SimplePublicKey(key) {\n var _this = _super.call(this) || this;\n _this.key = key;\n return _this;\n }\n SimplePublicKey.fromAmino = function (data) {\n return new SimplePublicKey(data.value);\n };\n SimplePublicKey.prototype.toAmino = function () {\n return {\n type: 'tendermint/PubKeySecp256k1',\n value: this.key,\n };\n };\n SimplePublicKey.fromData = function (data) {\n return new SimplePublicKey(data.key);\n };\n SimplePublicKey.prototype.toData = function () {\n return {\n '@type': '/cosmos.crypto.secp256k1.PubKey',\n key: this.key,\n };\n };\n SimplePublicKey.fromProto = function (pubkeyProto) {\n return new SimplePublicKey(Buffer.from(pubkeyProto.key).toString('base64'));\n };\n SimplePublicKey.prototype.toProto = function () {\n return keys_2.PubKey.fromPartial({\n key: Buffer.from(this.key, 'base64'),\n });\n };\n SimplePublicKey.prototype.packAny = function () {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.crypto.secp256k1.PubKey',\n value: keys_2.PubKey.encode(this.toProto()).finish(),\n });\n };\n SimplePublicKey.unpackAny = function (pubkeyAny) {\n return SimplePublicKey.fromProto(keys_2.PubKey.decode(pubkeyAny.value));\n };\n SimplePublicKey.prototype.encodeAminoPubkey = function () {\n return Buffer.concat([\n pubkeyAminoPrefixSecp256k1,\n Buffer.from(this.key, 'base64'),\n ]);\n };\n SimplePublicKey.prototype.rawAddress = function () {\n var pubkeyData = Buffer.from(this.key, 'base64');\n return (0, hash_1.ripemd160)((0, hash_1.sha256)(pubkeyData));\n };\n SimplePublicKey.prototype.address = function () {\n return bech32_1.bech32.encode('jmes', bech32_1.bech32.toWords(this.rawAddress()));\n };\n SimplePublicKey.prototype.pubkeyAddress = function () {\n return bech32_1.bech32.encode('jmespub', bech32_1.bech32.toWords(this.encodeAminoPubkey()));\n };\n return SimplePublicKey;\n}(json_1.JSONSerializable));\nexports.SimplePublicKey = SimplePublicKey;\nvar LegacyAminoMultisigPublicKey = /** @class */ (function (_super) {\n __extends(LegacyAminoMultisigPublicKey, _super);\n function LegacyAminoMultisigPublicKey(threshold, pubkeys) {\n var _this = _super.call(this) || this;\n _this.threshold = threshold;\n _this.pubkeys = pubkeys;\n return _this;\n }\n LegacyAminoMultisigPublicKey.prototype.encodeAminoPubkey = function () {\n var out = Array.from(pubkeyAminoPrefixMultisigThreshold);\n out.push(0x08);\n out.push.apply(out, encodeUvarint(this.threshold));\n for (var _i = 0, _a = this.pubkeys.map(function (p) { return p.encodeAminoPubkey(); }); _i < _a.length; _i++) {\n var pubkeyData = _a[_i];\n out.push(0x12);\n out.push.apply(out, encodeUvarint(pubkeyData.length));\n out.push.apply(out, Array.from(pubkeyData));\n }\n return new Uint8Array(out);\n };\n LegacyAminoMultisigPublicKey.prototype.rawAddress = function () {\n var pubkeyData = this.encodeAminoPubkey();\n return (0, hash_1.sha256)(pubkeyData).slice(0, 20);\n };\n LegacyAminoMultisigPublicKey.prototype.address = function () {\n return bech32_1.bech32.encode('jmes', bech32_1.bech32.toWords(this.rawAddress()));\n };\n LegacyAminoMultisigPublicKey.prototype.pubkeyAddress = function () {\n return bech32_1.bech32.encode('jmespub', bech32_1.bech32.toWords(this.encodeAminoPubkey()));\n };\n LegacyAminoMultisigPublicKey.fromAmino = function (data) {\n return new LegacyAminoMultisigPublicKey(Number.parseInt(data.value.threshold), data.value.pubkeys.map(function (p) { return SimplePublicKey.fromAmino(p); }));\n };\n LegacyAminoMultisigPublicKey.prototype.toAmino = function () {\n return {\n type: 'tendermint/PubKeyMultisigThreshold',\n value: {\n threshold: this.threshold.toFixed(),\n pubkeys: this.pubkeys.map(function (p) { return p.toAmino(); }),\n },\n };\n };\n LegacyAminoMultisigPublicKey.fromData = function (data) {\n return new LegacyAminoMultisigPublicKey(Number.parseInt(data.threshold), data.public_keys.map(function (v) { return SimplePublicKey.fromData(v); }));\n };\n LegacyAminoMultisigPublicKey.prototype.toData = function () {\n return {\n '@type': '/cosmos.crypto.multisig.LegacyAminoPubKey',\n threshold: this.threshold.toFixed(),\n public_keys: this.pubkeys.map(function (p) { return p.toData(); }),\n };\n };\n LegacyAminoMultisigPublicKey.fromProto = function (pubkeyProto) {\n return new LegacyAminoMultisigPublicKey(pubkeyProto.threshold, pubkeyProto.publicKeys.map(function (v) { return SimplePublicKey.unpackAny(v); }));\n };\n LegacyAminoMultisigPublicKey.prototype.toProto = function () {\n return keys_1.LegacyAminoPubKey.fromPartial({\n threshold: this.threshold,\n publicKeys: this.pubkeys.map(function (v) { return v.packAny(); }),\n });\n };\n LegacyAminoMultisigPublicKey.prototype.packAny = function () {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.crypto.multisig.LegacyAminoPubKey',\n value: keys_1.LegacyAminoPubKey.encode(this.toProto()).finish(),\n });\n };\n LegacyAminoMultisigPublicKey.unpackAny = function (pubkeyAny) {\n return LegacyAminoMultisigPublicKey.fromProto(keys_1.LegacyAminoPubKey.decode(pubkeyAny.value));\n };\n return LegacyAminoMultisigPublicKey;\n}(json_1.JSONSerializable));\nexports.LegacyAminoMultisigPublicKey = LegacyAminoMultisigPublicKey;\nvar ValConsPublicKey = /** @class */ (function (_super) {\n __extends(ValConsPublicKey, _super);\n function ValConsPublicKey(key) {\n var _this = _super.call(this) || this;\n _this.key = key;\n return _this;\n }\n ValConsPublicKey.fromAmino = function (data) {\n return new ValConsPublicKey(data.value);\n };\n ValConsPublicKey.prototype.toAmino = function () {\n return {\n type: 'tendermint/PubKeyEd25519',\n value: this.key,\n };\n };\n ValConsPublicKey.fromData = function (data) {\n return new ValConsPublicKey(data.key);\n };\n ValConsPublicKey.prototype.toData = function () {\n return {\n '@type': '/cosmos.crypto.ed25519.PubKey',\n key: this.key,\n };\n };\n ValConsPublicKey.fromProto = function (pubkeyProto) {\n return new ValConsPublicKey(Buffer.from(pubkeyProto.key).toString('base64'));\n };\n ValConsPublicKey.prototype.toProto = function () {\n return keys_2.PubKey.fromPartial({\n key: Buffer.from(this.key, 'base64'),\n });\n };\n ValConsPublicKey.prototype.packAny = function () {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.crypto.ed25519.PubKey',\n value: keys_3.PubKey.encode(this.toProto()).finish(),\n });\n };\n ValConsPublicKey.unpackAny = function (pubkeyAny) {\n return ValConsPublicKey.fromProto(keys_3.PubKey.decode(pubkeyAny.value));\n };\n ValConsPublicKey.prototype.encodeAminoPubkey = function () {\n return Buffer.concat([\n pubkeyAminoPrefixEd25519,\n Buffer.from(this.key, 'base64'),\n ]);\n };\n ValConsPublicKey.prototype.rawAddress = function () {\n var pubkeyData = Buffer.from(this.key, 'base64');\n return (0, hash_1.sha256)(pubkeyData).slice(0, 20);\n };\n ValConsPublicKey.prototype.address = function () {\n return bech32_1.bech32.encode('jmesvalcons', bech32_1.bech32.toWords(this.rawAddress()));\n };\n ValConsPublicKey.prototype.pubkeyAddress = function () {\n return bech32_1.bech32.encode('jmesvalconspub', bech32_1.bech32.toWords(this.encodeAminoPubkey()));\n };\n return ValConsPublicKey;\n}(json_1.JSONSerializable));\nexports.ValConsPublicKey = ValConsPublicKey;\n//# sourceMappingURL=PublicKey.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SignDoc = void 0;\nvar json_1 = require(\"../util/json\");\nvar Long = __importStar(require(\"long\"));\nvar tx_1 = require(\"@terra-money/terra.proto/cosmos/tx/v1beta1/tx\");\nvar Tx_1 = require(\"./Tx\");\n/**\n * A sign message is a data structure that is used to create a [[StdSignature]] to be later\n * appended to the list of signatures in an [[StdTx]]. Essentially, it contains all the\n * information needed to sign and build a transaction, and can be described as an\n * \"unsigned transaction.\"\n */\nvar SignDoc = /** @class */ (function (_super) {\n __extends(SignDoc, _super);\n /**\n *\n * @param chain_id ID of blockchain to submit transaction to\n * @param account_number account number on blockchain\n * @param sequence Sequence number (nonce), number of signed previous transactions by\n * account included on the blockchain at time of broadcast.\n * @param fee transaction fee\n * @param msgs list of messages to include\n * @param memo optional note\n * @param timeout_height optional transaction timeout height, does not support amino\n * @param public_key Signer's public key, only used at direct sign mode\n */\n function SignDoc(chain_id, account_number, sequence, auth_info, tx_body) {\n var _this = _super.call(this) || this;\n _this.chain_id = chain_id;\n _this.account_number = account_number;\n _this.sequence = sequence;\n _this.auth_info = auth_info;\n _this.tx_body = tx_body;\n return _this;\n }\n SignDoc.prototype.toAmino = function (isClassic) {\n var _a = this, chain_id = _a.chain_id, account_number = _a.account_number, sequence = _a.sequence, _b = _a.tx_body, memo = _b.memo, messages = _b.messages, timeout_height = _b.timeout_height, fee = _a.auth_info.fee;\n return {\n chain_id: chain_id,\n account_number: account_number.toString(),\n sequence: sequence.toString(),\n timeout_height: timeout_height && timeout_height !== 0\n ? timeout_height.toString()\n : undefined,\n fee: fee.toAmino(),\n msgs: messages.map(function (m) { return m.toAmino(isClassic); }),\n memo: memo !== null && memo !== void 0 ? memo : '',\n };\n };\n SignDoc.prototype.toData = function (isClassic) {\n var _a = this, account_number = _a.account_number, chain_id = _a.chain_id, tx_body = _a.tx_body, auth_info = _a.auth_info;\n return {\n body_bytes: Buffer.from(tx_body.toBytes(isClassic)).toString('base64'),\n auth_info_bytes: Buffer.from(auth_info.toBytes()).toString('base64'),\n account_number: account_number.toFixed(),\n chain_id: chain_id,\n };\n };\n SignDoc.prototype.toProto = function (isClassic) {\n var _a = this, account_number = _a.account_number, chain_id = _a.chain_id, tx_body = _a.tx_body, auth_info = _a.auth_info;\n return tx_1.SignDoc.fromPartial({\n bodyBytes: tx_body.toBytes(isClassic),\n authInfoBytes: auth_info.toBytes(),\n accountNumber: Long.fromNumber(account_number),\n chainId: chain_id,\n });\n };\n SignDoc.prototype.toUnSignedTx = function () {\n return new Tx_1.Tx(this.tx_body, this.auth_info, []);\n };\n SignDoc.prototype.toBytes = function (isClassic) {\n return tx_1.SignDoc.encode(this.toProto(isClassic)).finish();\n };\n return SignDoc;\n}(json_1.JSONSerializable));\nexports.SignDoc = SignDoc;\n//# sourceMappingURL=SignDoc.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SignatureV2 = exports.SignMode = void 0;\nvar PublicKey_1 = require(\"./PublicKey\");\nvar Tx_1 = require(\"./Tx\");\nvar CompactBitArray_1 = require(\"./CompactBitArray\");\nvar signing_1 = require(\"@terra-money/terra.proto/cosmos/tx/signing/v1beta1/signing\");\nvar multisig_1 = require(\"@terra-money/terra.proto/cosmos/crypto/multisig/v1beta1/multisig\");\nvar signing_2 = require(\"@terra-money/terra.proto/cosmos/tx/signing/v1beta1/signing\");\nObject.defineProperty(exports, \"SignMode\", { enumerable: true, get: function () { return signing_2.SignMode; } });\nvar SignatureV2 = /** @class */ (function () {\n function SignatureV2(public_key, data, sequence) {\n this.public_key = public_key;\n this.data = data;\n this.sequence = sequence;\n }\n SignatureV2.fromData = function (data) {\n return new SignatureV2(PublicKey_1.PublicKey.fromData(data.public_key), SignatureV2.Descriptor.fromData(data.data), Number.parseInt(data.sequence));\n };\n SignatureV2.prototype.toData = function () {\n return {\n public_key: this.public_key.toData(),\n data: this.data.toData(),\n sequence: this.sequence.toFixed(),\n };\n };\n SignatureV2.fromAmino = function (data) {\n return new SignatureV2(PublicKey_1.PublicKey.fromAmino(data.pub_key), new SignatureV2.Descriptor(new SignatureV2.Descriptor.Single(SignatureV2.SignMode.SIGN_MODE_LEGACY_AMINO_JSON, data.signature)), 0);\n };\n return SignatureV2;\n}());\nexports.SignatureV2 = SignatureV2;\n(function (SignatureV2) {\n SignatureV2.SignMode = signing_1.SignMode;\n var Descriptor = /** @class */ (function () {\n function Descriptor(data) {\n data instanceof Descriptor.Single\n ? (this.single = data)\n : (this.multi = data);\n }\n Descriptor.fromData = function (data) {\n if (data.single) {\n return new Descriptor(Descriptor.Single.fromData(data.single));\n }\n if (data.multi) {\n return new Descriptor(Descriptor.Multi.fromData(data.multi));\n }\n throw new Error('must be one of single or multi');\n };\n Descriptor.prototype.toData = function () {\n if (this.single) {\n return {\n single: this.single.toData(),\n };\n }\n if (this.multi) {\n return {\n multi: this.multi.toData(),\n };\n }\n throw new Error('must be one of single or multi');\n };\n Descriptor.prototype.toModeInfoAndSignature = function () {\n if (this.single) {\n var sigData = this.single;\n return [\n new Tx_1.ModeInfo(new Tx_1.ModeInfo.Single(sigData.mode)),\n Buffer.from(sigData.signature, 'base64'),\n ];\n }\n if (this.multi) {\n var sigData = this.multi;\n var modeInfos = [];\n var signatures = [];\n for (var _i = 0, _a = sigData.signatures; _i < _a.length; _i++) {\n var signature = _a[_i];\n var _b = signature.toModeInfoAndSignature(), modeInfo = _b[0], sigBytes = _b[1];\n modeInfos.push(modeInfo);\n signatures.push(sigBytes);\n }\n var multisigBytes = multisig_1.MultiSignature.encode(multisig_1.MultiSignature.fromPartial({\n signatures: signatures,\n })).finish();\n return [\n new Tx_1.ModeInfo(new Tx_1.ModeInfo.Multi(sigData.bitarray, modeInfos)),\n multisigBytes,\n ];\n }\n throw new Error('invalid signature descriptor');\n };\n return Descriptor;\n }());\n SignatureV2.Descriptor = Descriptor;\n (function (Descriptor) {\n var Single = /** @class */ (function () {\n function Single(mode, signature) {\n this.mode = mode;\n this.signature = signature;\n }\n Single.fromData = function (data) {\n return new Single((0, signing_1.signModeFromJSON)(data.mode), data.signature);\n };\n Single.prototype.toData = function () {\n var _a = this, mode = _a.mode, signature = _a.signature;\n return {\n mode: (0, signing_1.signModeToJSON)(mode),\n signature: signature,\n };\n };\n return Single;\n }());\n Descriptor.Single = Single;\n var Multi = /** @class */ (function () {\n function Multi(bitarray, signatures) {\n this.bitarray = bitarray;\n this.signatures = signatures;\n }\n Multi.fromData = function (data) {\n return new Multi(CompactBitArray_1.CompactBitArray.fromData(data.bitarray), data.signatures.map(function (v) { return Descriptor.fromData(v); }));\n };\n Multi.prototype.toData = function () {\n return {\n bitarray: this.bitarray.toData(),\n signatures: this.signatures.map(function (sig) { return sig.toData(); }),\n };\n };\n return Multi;\n }());\n Descriptor.Multi = Multi;\n })(Descriptor = SignatureV2.Descriptor || (SignatureV2.Descriptor = {}));\n})(SignatureV2 = exports.SignatureV2 || (exports.SignatureV2 = {}));\nexports.SignatureV2 = SignatureV2;\n//# sourceMappingURL=SignatureV2.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ModeInfo = exports.SignerInfo = exports.AuthInfo = exports.TxBody = exports.Tx = void 0;\nvar PublicKey_1 = require(\"./PublicKey\");\nvar signing_1 = require(\"@terra-money/terra.proto/cosmos/tx/signing/v1beta1/signing\");\nvar tx_1 = require(\"@terra-money/terra.proto/cosmos/tx/v1beta1/tx\");\nvar CompactBitArray_1 = require(\"./CompactBitArray\");\nvar Msg_1 = require(\"./Msg\");\nvar Fee_1 = require(\"./Fee\");\nvar Long = __importStar(require(\"long\"));\nvar SignatureV2_1 = require(\"./SignatureV2\");\nvar Tx = /** @class */ (function () {\n function Tx(body, auth_info, signatures) {\n this.body = body;\n this.auth_info = auth_info;\n this.signatures = signatures;\n }\n Tx.fromAmino = function (data, isClassic) {\n var signatures = data.value.signatures.map(function (s) { return SignatureV2_1.SignatureV2.fromAmino(s); });\n return new Tx(new TxBody(data.value.msg.map(function (m) { return Msg_1.Msg.fromAmino(m, isClassic); }), data.value.memo, Number.parseInt(data.value.timeout_height)), new AuthInfo([], Fee_1.Fee.fromAmino(data.value.fee)), signatures.map(function (s) { var _a; return ((_a = s.data.single) === null || _a === void 0 ? void 0 : _a.signature) || ''; }));\n };\n Tx.fromData = function (data, isClassic) {\n return new Tx(TxBody.fromData(data.body, isClassic), AuthInfo.fromData(data.auth_info), data.signatures);\n };\n Tx.prototype.toData = function (isClassic) {\n return {\n body: this.body.toData(isClassic),\n auth_info: this.auth_info.toData(),\n signatures: this.signatures,\n };\n };\n Tx.unpackAny = function (anyProto, isClassic) {\n return this.fromProto(tx_1.Tx.decode(anyProto.value), isClassic);\n };\n Tx.fromProto = function (proto, isClassic) {\n return new Tx(TxBody.fromProto(proto.body, isClassic), AuthInfo.fromProto(proto.authInfo), proto.signatures.map(function (sig) { return Buffer.from(sig).toString('base64'); }));\n };\n Tx.prototype.toProto = function (isClassic) {\n return tx_1.Tx.fromPartial({\n body: this.body.toProto(isClassic),\n authInfo: this.auth_info.toProto(),\n signatures: this.signatures.map(function (s) { return Buffer.from(s, 'base64'); }),\n });\n };\n Tx.prototype.toBytes = function (isClassic) {\n return tx_1.Tx.encode(this.toProto(isClassic)).finish();\n };\n Tx.fromBuffer = function (buf, isClassic) {\n return Tx.fromProto(tx_1.Tx.decode(buf), isClassic);\n };\n Tx.prototype.appendEmptySignatures = function (signers) {\n var _this = this;\n signers.forEach(function (signer) {\n var signerInfo;\n if (signer.publicKey) {\n if (signer.publicKey instanceof PublicKey_1.LegacyAminoMultisigPublicKey) {\n signerInfo = new SignerInfo(signer.publicKey, signer.sequenceNumber, new ModeInfo(new ModeInfo.Multi(CompactBitArray_1.CompactBitArray.fromBits(signer.publicKey.pubkeys.length), [])));\n }\n else {\n signerInfo = new SignerInfo(signer.publicKey, signer.sequenceNumber, new ModeInfo(new ModeInfo.Single(ModeInfo.SignMode.SIGN_MODE_DIRECT)));\n }\n }\n else {\n signerInfo = new SignerInfo(new PublicKey_1.SimplePublicKey(''), signer.sequenceNumber, new ModeInfo(new ModeInfo.Single(ModeInfo.SignMode.SIGN_MODE_DIRECT)));\n }\n _this.auth_info.signer_infos.push(signerInfo);\n _this.signatures.push('');\n });\n };\n Tx.prototype.clearSignatures = function () {\n this.auth_info.signer_infos = [];\n this.signatures = [];\n };\n Tx.prototype.appendSignatures = function (signatures) {\n for (var _i = 0, signatures_1 = signatures; _i < signatures_1.length; _i++) {\n var signature = signatures_1[_i];\n var _a = signature.data.toModeInfoAndSignature(), modeInfo = _a[0], sigBytes = _a[1];\n this.signatures.push(Buffer.from(sigBytes).toString('base64'));\n this.auth_info.signer_infos.push(new SignerInfo(signature.public_key, signature.sequence, modeInfo));\n }\n };\n return Tx;\n}());\nexports.Tx = Tx;\nvar TxBody = /** @class */ (function () {\n function TxBody(messages, memo, timeout_height) {\n this.messages = messages;\n this.memo = memo;\n this.timeout_height = timeout_height;\n }\n TxBody.fromData = function (data, isClassic) {\n return new TxBody(data.messages.map(function (m) { return Msg_1.Msg.fromData(m, isClassic); }), data.memo, Number.parseInt(data.timeout_height));\n };\n TxBody.prototype.toData = function (isClassic) {\n var _a, _b;\n return {\n memo: (_a = this.memo) !== null && _a !== void 0 ? _a : '',\n messages: this.messages.map(function (m) { return m.toData(isClassic); }),\n timeout_height: ((_b = this.timeout_height) !== null && _b !== void 0 ? _b : 0).toFixed(),\n };\n };\n TxBody.fromProto = function (proto, isClassic) {\n return new TxBody(proto.messages.map(function (m) { return Msg_1.Msg.fromProto(m, isClassic); }), proto.memo, proto.timeoutHeight.toNumber());\n };\n TxBody.prototype.toProto = function (isClassic) {\n var _a;\n return tx_1.TxBody.fromPartial({\n memo: this.memo,\n messages: this.messages.map(function (m) { return m.packAny(isClassic); }),\n timeoutHeight: Long.fromNumber((_a = this.timeout_height) !== null && _a !== void 0 ? _a : 0),\n });\n };\n TxBody.prototype.toBytes = function (isClassic) {\n return tx_1.TxBody.encode(this.toProto(isClassic)).finish();\n };\n return TxBody;\n}());\nexports.TxBody = TxBody;\nvar AuthInfo = /** @class */ (function () {\n function AuthInfo(signer_infos, fee) {\n this.signer_infos = signer_infos;\n this.fee = fee;\n }\n AuthInfo.fromData = function (data) {\n return new AuthInfo(data.signer_infos.map(function (s) { return SignerInfo.fromData(s); }), Fee_1.Fee.fromData(data.fee));\n };\n AuthInfo.prototype.toData = function () {\n return {\n fee: this.fee.toData(),\n signer_infos: this.signer_infos.map(function (info) { return info.toData(); }),\n };\n };\n AuthInfo.fromProto = function (proto) {\n return new AuthInfo(proto.signerInfos.map(function (s) { return SignerInfo.fromProto(s); }), Fee_1.Fee.fromProto(proto.fee));\n };\n AuthInfo.prototype.toProto = function () {\n return tx_1.AuthInfo.fromPartial({\n fee: this.fee.toProto(),\n signerInfos: this.signer_infos.map(function (info) { return info.toProto(); }),\n });\n };\n AuthInfo.prototype.toBytes = function () {\n return tx_1.AuthInfo.encode(this.toProto()).finish();\n };\n return AuthInfo;\n}());\nexports.AuthInfo = AuthInfo;\nvar SignerInfo = /** @class */ (function () {\n function SignerInfo(public_key, sequence, mode_info) {\n this.public_key = public_key;\n this.sequence = sequence;\n this.mode_info = mode_info;\n }\n SignerInfo.fromData = function (data) {\n var _a;\n return new SignerInfo(PublicKey_1.PublicKey.fromData((_a = data.public_key) !== null && _a !== void 0 ? _a : new PublicKey_1.SimplePublicKey('').toData()), Number.parseInt(data.sequence), ModeInfo.fromData(data.mode_info));\n };\n SignerInfo.prototype.toData = function () {\n var _a = this, public_key = _a.public_key, sequence = _a.sequence, mode_info = _a.mode_info;\n return {\n mode_info: mode_info.toData(),\n public_key: (public_key === null || public_key === void 0 ? void 0 : public_key.toData()) || null,\n sequence: sequence.toFixed(),\n };\n };\n SignerInfo.fromProto = function (proto) {\n var _a;\n return new SignerInfo(PublicKey_1.PublicKey.fromProto((_a = proto.publicKey) !== null && _a !== void 0 ? _a : new PublicKey_1.SimplePublicKey('').packAny()), proto.sequence.toNumber(), ModeInfo.fromProto(proto.modeInfo));\n };\n SignerInfo.prototype.toProto = function () {\n var _a = this, public_key = _a.public_key, sequence = _a.sequence, mode_info = _a.mode_info;\n return tx_1.SignerInfo.fromPartial({\n modeInfo: mode_info.toProto(),\n publicKey: public_key === null || public_key === void 0 ? void 0 : public_key.packAny(),\n sequence: Long.fromNumber(sequence),\n });\n };\n return SignerInfo;\n}());\nexports.SignerInfo = SignerInfo;\nvar ModeInfo = /** @class */ (function () {\n function ModeInfo(mode_info) {\n if (mode_info instanceof ModeInfo.Single) {\n this.single = mode_info;\n }\n else {\n this.multi = mode_info;\n }\n }\n ModeInfo.fromData = function (data) {\n if (data.single) {\n return new ModeInfo(ModeInfo.Single.fromData(data.single));\n }\n if (data.multi) {\n return new ModeInfo(ModeInfo.Multi.fromData(data.multi));\n }\n throw new Error('must be one of single or multi');\n };\n ModeInfo.prototype.toData = function () {\n var _a, _b;\n return {\n single: (_a = this.single) === null || _a === void 0 ? void 0 : _a.toData(),\n multi: (_b = this.multi) === null || _b === void 0 ? void 0 : _b.toData(),\n };\n };\n ModeInfo.fromProto = function (proto) {\n var singleMode = proto.single;\n var multiMode = proto.multi;\n return new ModeInfo(singleMode\n ? ModeInfo.Single.fromProto(singleMode)\n : ModeInfo.Multi.fromProto(multiMode));\n };\n ModeInfo.prototype.toProto = function () {\n var _a, _b;\n return tx_1.ModeInfo.fromPartial({\n multi: (_a = this.multi) === null || _a === void 0 ? void 0 : _a.toProto(),\n single: (_b = this.single) === null || _b === void 0 ? void 0 : _b.toProto(),\n });\n };\n return ModeInfo;\n}());\nexports.ModeInfo = ModeInfo;\n(function (ModeInfo) {\n ModeInfo.SignMode = signing_1.SignMode;\n var Single = /** @class */ (function () {\n function Single(mode) {\n this.mode = mode;\n }\n Single.fromData = function (data) {\n return new Single((0, signing_1.signModeFromJSON)(data.mode));\n };\n Single.prototype.toData = function () {\n return {\n mode: (0, signing_1.signModeToJSON)(this.mode),\n };\n };\n Single.fromProto = function (proto) {\n return new Single(proto.mode);\n };\n Single.prototype.toProto = function () {\n return tx_1.ModeInfo_Single.fromPartial({\n mode: this.mode,\n });\n };\n return Single;\n }());\n ModeInfo.Single = Single;\n var Multi = /** @class */ (function () {\n function Multi(bitarray, modeInfos) {\n this.bitarray = bitarray;\n this.modeInfos = modeInfos;\n }\n Multi.fromData = function (proto) {\n return new Multi(CompactBitArray_1.CompactBitArray.fromData(proto.bitarray), proto.mode_infos.map(function (m) { return ModeInfo.fromData(m); }));\n };\n Multi.prototype.toData = function () {\n return {\n bitarray: this.bitarray.toData(),\n mode_infos: this.modeInfos.map(function (m) { return m.toData(); }),\n };\n };\n Multi.fromProto = function (proto) {\n return new Multi(CompactBitArray_1.CompactBitArray.fromProto(proto.bitarray), proto.modeInfos.map(function (m) { return ModeInfo.fromProto(m); }));\n };\n Multi.prototype.toProto = function () {\n return tx_1.ModeInfo_Multi.fromPartial({\n bitarray: this.bitarray.toProto(),\n modeInfos: this.modeInfos.map(function (m) { return m.toProto(); }),\n });\n };\n return Multi;\n }());\n ModeInfo.Multi = Multi;\n})(ModeInfo = exports.ModeInfo || (exports.ModeInfo = {}));\nexports.ModeInfo = ModeInfo;\n//# sourceMappingURL=Tx.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TxLog = exports.EventsByType = exports.TxInfo = void 0;\nvar Tx_1 = require(\"./Tx\");\nvar abci_1 = require(\"@terra-money/terra.proto/cosmos/base/abci/v1beta1/abci\");\n/**\n * A TxInfo data structure is used to capture information from a transaction lookup for\n * a transaction already included in a block\n */\nvar TxInfo = /** @class */ (function () {\n /**\n *\n * @param height height of the block in which the transaction was included.\n * @param txhash transaction's hash.\n * @param raw_log raw log information, as a string.\n * @param logs log information\n * @param gas_wanted gas limited submitted in fee\n * @param gas_used actual gas consumption\n * @param tx transaction content\n * @param timestamp time of inclusion\n * @param code error code\n */\n function TxInfo(height, txhash, raw_log, logs, gas_wanted, gas_used, tx, timestamp, code, codespace) {\n this.height = height;\n this.txhash = txhash;\n this.raw_log = raw_log;\n this.logs = logs;\n this.gas_wanted = gas_wanted;\n this.gas_used = gas_used;\n this.tx = tx;\n this.timestamp = timestamp;\n this.code = code;\n this.codespace = codespace;\n }\n TxInfo.fromProto = function (proto) {\n return new TxInfo(proto.height.toNumber(), proto.txhash, proto.rawLog, proto.logs.map(function (log) { return TxLog.fromProto(log); }), proto.gasWanted.toNumber(), proto.gasUsed.toNumber(), Tx_1.Tx.unpackAny(proto.tx), proto.timestamp, proto.code, proto.codespace);\n };\n TxInfo.fromData = function (data, isClassic) {\n return new TxInfo(Number.parseInt(data.height), data.txhash, data.raw_log, data.logs.map(function (log) { return TxLog.fromData(log); }), Number.parseInt(data.gas_wanted), Number.parseInt(data.gas_used), Tx_1.Tx.fromData(data.tx, isClassic), data.timestamp, data.code, data.codespace);\n };\n return TxInfo;\n}());\nexports.TxInfo = TxInfo;\nvar EventsByType;\n(function (EventsByType) {\n function parse(eventAmino) {\n var events = {};\n eventAmino.forEach(function (ev) {\n ev.attributes.forEach(function (attr) {\n if (!(ev.type in events)) {\n events[ev.type] = {};\n }\n if (!(attr.key in events[ev.type])) {\n events[ev.type][attr.key] = [];\n }\n events[ev.type][attr.key].push(attr.value);\n });\n });\n return events;\n }\n EventsByType.parse = parse;\n})(EventsByType = exports.EventsByType || (exports.EventsByType = {}));\nvar TxLog = /** @class */ (function () {\n function TxLog(msg_index, log, events) {\n this.msg_index = msg_index;\n this.log = log;\n this.events = events;\n this.eventsByType = EventsByType.parse(this.events);\n }\n TxLog.fromData = function (data) {\n return new TxLog(data.msg_index, data.log, data.events.map(function (e) {\n return {\n type: e.type,\n attributes: e.attributes.map(function (attr) {\n return {\n key: attr.key,\n value: attr.value,\n };\n }),\n };\n }));\n };\n TxLog.prototype.toData = function () {\n var _a = this, msg_index = _a.msg_index, log = _a.log, events = _a.events;\n return {\n msg_index: msg_index,\n log: log,\n events: events,\n };\n };\n TxLog.fromProto = function (proto) {\n return new TxLog(proto.msgIndex, proto.log, proto.events.map(function (e) {\n return {\n type: e.type,\n attributes: e.attributes.map(function (attr) {\n return {\n key: attr.key,\n value: attr.value,\n };\n }),\n };\n }));\n };\n TxLog.prototype.toProto = function () {\n var _a = this, msg_index = _a.msg_index, log = _a.log, events = _a.events;\n return abci_1.ABCIMessageLog.fromPartial({\n msgIndex: msg_index,\n log: log,\n events: events,\n });\n };\n return TxLog;\n}());\nexports.TxLog = TxLog;\n//# sourceMappingURL=TxInfo.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=ValidatorSet.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Account = void 0;\nvar BaseAccount_1 = require(\"./BaseAccount\");\nvar LazyGradedVestingAccount_1 = require(\"./LazyGradedVestingAccount\");\nvar ContinuousVestingAccount_1 = require(\"./ContinuousVestingAccount\");\nvar DelayedVestingAccount_1 = require(\"./DelayedVestingAccount\");\nvar PeriodicVestingAccount_1 = require(\"./PeriodicVestingAccount\");\nvar BaseVestingAccount_1 = require(\"./BaseVestingAccount\");\n/**\n * Stores information about an account fetched from the blockchain.\n */\nvar Account;\n(function (Account) {\n function fromAmino(amino, isClassic) {\n switch (amino.type) {\n case 'core/Account':\n case 'cosmos-sdk/BaseAccount':\n return BaseAccount_1.BaseAccount.fromAmino(amino, isClassic);\n case 'core/BaseVestingAccount':\n case 'cosmos-sdk/BaseVestingAccount':\n return BaseVestingAccount_1.BaseVestingAccount.fromAmino(amino, isClassic);\n case 'core/LazyGradedVestingAccount':\n return LazyGradedVestingAccount_1.LazyGradedVestingAccount.fromAmino(amino, isClassic);\n case 'cosmos-sdk/ContinuousVestingAccount':\n return ContinuousVestingAccount_1.ContinuousVestingAccount.fromAmino(amino, isClassic);\n case 'cosmos-sdk/DelayedVestingAccount':\n return DelayedVestingAccount_1.DelayedVestingAccount.fromAmino(amino, isClassic);\n case 'cosmos-sdk/PeriodicVestingAccount':\n return PeriodicVestingAccount_1.PeriodicVestingAccount.fromAmino(amino, isClassic);\n }\n }\n Account.fromAmino = fromAmino;\n function fromData(data, isClassic) {\n switch (data['@type']) {\n case '/cosmos.auth.v1beta1.BaseAccount':\n return BaseAccount_1.BaseAccount.fromData(data, isClassic);\n case '/cosmos.vesting.v1beta1.BaseVestingAccount':\n return BaseVestingAccount_1.BaseVestingAccount.fromData(data, isClassic);\n case '/terra.vesting.v1beta1.LazyGradedVestingAccount':\n return LazyGradedVestingAccount_1.LazyGradedVestingAccount.fromData(data, isClassic);\n case '/cosmos.vesting.v1beta1.ContinuousVestingAccount':\n return ContinuousVestingAccount_1.ContinuousVestingAccount.fromData(data, isClassic);\n case '/cosmos.vesting.v1beta1.DelayedVestingAccount':\n return DelayedVestingAccount_1.DelayedVestingAccount.fromData(data, isClassic);\n case '/cosmos.vesting.v1beta1.PeriodicVestingAccount':\n return PeriodicVestingAccount_1.PeriodicVestingAccount.fromData(data, isClassic);\n }\n }\n Account.fromData = fromData;\n function fromProto(accountAny, isClassic) {\n var typeUrl = accountAny.typeUrl;\n if (typeUrl === '/cosmos.auth.v1beta1.BaseAccount') {\n return BaseAccount_1.BaseAccount.unpackAny(accountAny, isClassic);\n }\n else if (typeUrl === '/terra.vesting.v1beta1.LazyGradedVestingAccount') {\n return LazyGradedVestingAccount_1.LazyGradedVestingAccount.unpackAny(accountAny, isClassic);\n }\n else if (typeUrl === '/cosmos.vesting.v1beta1.ContinuousVestingAccount') {\n return ContinuousVestingAccount_1.ContinuousVestingAccount.unpackAny(accountAny, isClassic);\n }\n else if (typeUrl === '/cosmos.vesting.v1beta1.DelayedVestingAccount') {\n return DelayedVestingAccount_1.DelayedVestingAccount.unpackAny(accountAny, isClassic);\n }\n else if (typeUrl === '/cosmos.vesting.v1beta1.PeriodicVestingAccount') {\n return PeriodicVestingAccount_1.PeriodicVestingAccount.unpackAny(accountAny, isClassic);\n }\n throw new Error(\"Account type \".concat(typeUrl, \" not recognized\"));\n }\n Account.fromProto = fromProto;\n})(Account = exports.Account || (exports.Account = {}));\n//# sourceMappingURL=Account.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BaseAccount = void 0;\nvar PublicKey_1 = require(\"../PublicKey\");\nvar json_1 = require(\"../../util/json\");\n// import { BaseAccount as BaseAccount_pb } from '@terra-money/legacy.proto/cosmos/auth/v1beta1/auth';\n// import { Any } from '@terra-money/legacy.proto/google/protobuf/any';\nvar auth_1 = require(\"@terra-money/terra.proto/cosmos/auth/v1beta1/auth\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar Long = __importStar(require(\"long\"));\n/**\n * Stores information about an account fetched from the blockchain.\n */\nvar BaseAccount = /** @class */ (function (_super) {\n __extends(BaseAccount, _super);\n /**\n * Creates a new Account object, holding information about a basic account.\n *\n * @param address account address\n * @param public_key account's public key information\n * @param account_number account number on the blockchain\n * @param sequence sequence number, or number of transactions that have been posted\n */\n function BaseAccount(address, public_key, account_number, sequence) {\n var _this = _super.call(this) || this;\n _this.address = address;\n _this.public_key = public_key;\n _this.account_number = account_number;\n _this.sequence = sequence;\n return _this;\n }\n BaseAccount.prototype.getAccountNumber = function () {\n return this.account_number;\n };\n BaseAccount.prototype.getSequenceNumber = function () {\n return this.sequence;\n };\n BaseAccount.prototype.getPublicKey = function () {\n return this.public_key;\n };\n BaseAccount.prototype.toAmino = function (isClassic) {\n var _a = this, address = _a.address, public_key = _a.public_key, account_number = _a.account_number, sequence = _a.sequence;\n return {\n type: isClassic ? 'core/Account' : 'cosmos-sdk/BaseAccount',\n value: {\n address: address,\n public_key: public_key ? public_key.toAmino() : null,\n account_number: account_number.toFixed(),\n sequence: sequence.toFixed(),\n },\n };\n };\n BaseAccount.fromAmino = function (data, _) {\n _;\n var _a = data.value, address = _a.address, public_key = _a.public_key, account_number = _a.account_number, sequence = _a.sequence;\n return new BaseAccount(address || '', public_key ? PublicKey_1.PublicKey.fromAmino(public_key) : null, Number.parseInt(account_number) || 0, Number.parseInt(sequence) || 0);\n };\n BaseAccount.fromData = function (data, _) {\n _;\n var address = data.address, pub_key = data.pub_key, account_number = data.account_number, sequence = data.sequence;\n return new BaseAccount(address || '', pub_key ? PublicKey_1.PublicKey.fromData(pub_key) : null, Number.parseInt(account_number) || 0, Number.parseInt(sequence) || 0);\n };\n BaseAccount.prototype.toData = function (_) {\n _;\n var _a = this, address = _a.address, public_key = _a.public_key, account_number = _a.account_number, sequence = _a.sequence;\n return {\n '@type': '/cosmos.auth.v1beta1.BaseAccount',\n address: address,\n pub_key: public_key ? public_key.toData() : null,\n account_number: account_number.toFixed(),\n sequence: sequence.toFixed(),\n };\n };\n BaseAccount.prototype.toProto = function (_) {\n _;\n var _a = this, address = _a.address, public_key = _a.public_key, account_number = _a.account_number, sequence = _a.sequence;\n return auth_1.BaseAccount.fromPartial({\n address: address,\n pubKey: public_key === null || public_key === void 0 ? void 0 : public_key.packAny(),\n accountNumber: Long.fromNumber(account_number),\n sequence: Long.fromNumber(sequence),\n });\n };\n BaseAccount.fromProto = function (baseAccountProto, _) {\n _;\n var pubkey = baseAccountProto.pubKey;\n return new BaseAccount(baseAccountProto.address, pubkey ? PublicKey_1.PublicKey.fromProto(pubkey) : null, baseAccountProto.accountNumber.toNumber(), baseAccountProto.sequence.toNumber());\n };\n BaseAccount.prototype.packAny = function (isClassic) {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.auth.v1beta1.BaseAccount',\n value: auth_1.BaseAccount.encode(this.toProto(isClassic)).finish(),\n });\n };\n BaseAccount.unpackAny = function (pubkeyAny, isClassic) {\n return BaseAccount.fromProto(auth_1.BaseAccount.decode(pubkeyAny.value), isClassic);\n };\n return BaseAccount;\n}(json_1.JSONSerializable));\nexports.BaseAccount = BaseAccount;\n//# sourceMappingURL=BaseAccount.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BaseVestingAccount = void 0;\nvar json_1 = require(\"../../util/json\");\nvar Coins_1 = require(\"../Coins\");\nvar BaseAccount_1 = require(\"./BaseAccount\");\nvar vesting_1 = require(\"@terra-money/terra.proto/cosmos/vesting/v1beta1/vesting\");\nvar Long = __importStar(require(\"long\"));\n/**\n * Holds information about a Account which has vesting information.\n */\nvar BaseVestingAccount = /** @class */ (function (_super) {\n __extends(BaseVestingAccount, _super);\n /**\n *\n * @param base_account account information\n * @param original_vesting initial vesting amount\n * @param delegated_free\n * @param delegated_vesting\n * @param end_time\n */\n function BaseVestingAccount(base_account, original_vesting, delegated_free, delegated_vesting, end_time) {\n var _this = _super.call(this) || this;\n _this.base_account = base_account;\n _this.original_vesting = original_vesting;\n _this.delegated_free = delegated_free;\n _this.delegated_vesting = delegated_vesting;\n _this.end_time = end_time;\n return _this;\n }\n BaseVestingAccount.prototype.getAccountNumber = function () {\n return this.base_account.account_number;\n };\n BaseVestingAccount.prototype.getSequenceNumber = function () {\n return this.base_account.sequence;\n };\n BaseVestingAccount.prototype.getPublicKey = function () {\n return this.base_account.public_key;\n };\n BaseVestingAccount.prototype.toAmino = function (isClassic) {\n var _a = this, base_account = _a.base_account, original_vesting = _a.original_vesting, delegated_free = _a.delegated_free, delegated_vesting = _a.delegated_vesting, end_time = _a.end_time;\n return {\n type: isClassic\n ? 'core/BaseVestingAccount'\n : 'cosmos-sdk/BaseVestingAccount',\n value: {\n base_account: base_account.toAmino().value,\n delegated_free: delegated_free.toAmino(),\n delegated_vesting: delegated_vesting.toAmino(),\n end_time: end_time.toFixed(),\n original_vesting: original_vesting.toAmino(),\n },\n };\n };\n BaseVestingAccount.fromAmino = function (amino, isClassic) {\n var base_account = BaseAccount_1.BaseAccount.fromAmino({\n type: isClassic ? 'core/Account' : 'cosmos-sdk/BaseAccount',\n value: amino.value.base_account,\n });\n return new BaseVestingAccount(base_account, Coins_1.Coins.fromAmino(amino.value.original_vesting), Coins_1.Coins.fromAmino(amino.value.delegated_free), Coins_1.Coins.fromAmino(amino.value.delegated_vesting), Number.parseInt(amino.value.end_time));\n };\n BaseVestingAccount.prototype.toData = function (_) {\n _;\n var _a = this, base_account = _a.base_account, original_vesting = _a.original_vesting, delegated_free = _a.delegated_free, delegated_vesting = _a.delegated_vesting, end_time = _a.end_time;\n return {\n '@type': '/cosmos.vesting.v1beta1.BaseVestingAccount',\n base_account: base_account.toData(),\n delegated_free: delegated_free.toData(),\n delegated_vesting: delegated_vesting.toData(),\n end_time: end_time.toFixed(),\n original_vesting: original_vesting.toData(),\n };\n };\n BaseVestingAccount.fromData = function (data, _) {\n _;\n var base_account = BaseAccount_1.BaseAccount.fromData(__assign({ '@type': '/cosmos.auth.v1beta1.BaseAccount' }, data.base_account));\n return new BaseVestingAccount(base_account, Coins_1.Coins.fromData(data.original_vesting), Coins_1.Coins.fromData(data.delegated_free), Coins_1.Coins.fromData(data.delegated_vesting), Number.parseInt(data.end_time));\n };\n BaseVestingAccount.prototype.toProto = function (_) {\n _;\n var _a = this, base_account = _a.base_account, original_vesting = _a.original_vesting, delegated_free = _a.delegated_free, delegated_vesting = _a.delegated_vesting, end_time = _a.end_time;\n return vesting_1.BaseVestingAccount.fromPartial({\n baseAccount: base_account.toProto(),\n delegatedFree: delegated_free.toProto(),\n delegatedVesting: delegated_vesting.toProto(),\n endTime: Long.fromNumber(end_time),\n originalVesting: original_vesting.toProto(),\n });\n };\n BaseVestingAccount.fromProto = function (proto, _) {\n _;\n var baseAccount = BaseAccount_1.BaseAccount.fromProto(proto.baseAccount);\n return new BaseVestingAccount(baseAccount, Coins_1.Coins.fromProto(proto.originalVesting), Coins_1.Coins.fromProto(proto.delegatedFree), Coins_1.Coins.fromProto(proto.delegatedVesting), proto.endTime.toNumber());\n };\n return BaseVestingAccount;\n}(json_1.JSONSerializable));\nexports.BaseVestingAccount = BaseVestingAccount;\n//# sourceMappingURL=BaseVestingAccount.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ContinuousVestingAccount = void 0;\nvar json_1 = require(\"../../util/json\");\nvar BaseVestingAccount_1 = require(\"./BaseVestingAccount\");\nvar Long = __importStar(require(\"long\"));\nvar vesting_1 = require(\"@terra-money/terra.proto/cosmos/vesting/v1beta1/vesting\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\n/**\n * ContinuousVestingAccount implements the VestingAccount interface. It\n * continuously vests by unlocking coins linearly with respect to time.\n */\nvar ContinuousVestingAccount = /** @class */ (function (_super) {\n __extends(ContinuousVestingAccount, _super);\n /**\n *\n * @param base_vesting_account account information\n * @param start_time vesting start time\n */\n function ContinuousVestingAccount(base_vesting_account, start_time) {\n var _this = _super.call(this) || this;\n _this.base_vesting_account = base_vesting_account;\n _this.start_time = start_time;\n return _this;\n }\n ContinuousVestingAccount.prototype.getAccountNumber = function () {\n return this.base_vesting_account.getAccountNumber();\n };\n ContinuousVestingAccount.prototype.getSequenceNumber = function () {\n return this.base_vesting_account.getSequenceNumber();\n };\n ContinuousVestingAccount.prototype.getPublicKey = function () {\n return this.base_vesting_account.base_account.public_key;\n };\n ContinuousVestingAccount.prototype.toAmino = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = this, base_vesting_account = _a.base_vesting_account, start_time = _a.start_time;\n return {\n type: 'cosmos-sdk/ContinuousVestingAccount',\n value: {\n base_vesting_account: base_vesting_account.toAmino().value,\n start_time: start_time.toFixed(),\n },\n };\n };\n ContinuousVestingAccount.fromAmino = function (data, isClassic) {\n var base_vesting_account = BaseVestingAccount_1.BaseVestingAccount.fromAmino({\n type: 'cosmos-sdk/BaseVestingAccount',\n value: data.value.base_vesting_account,\n });\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return new ContinuousVestingAccount(base_vesting_account, Number.parseInt(data.value.start_time));\n };\n ContinuousVestingAccount.prototype.toData = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = this, base_vesting_account = _a.base_vesting_account, start_time = _a.start_time;\n return {\n '@type': '/cosmos.vesting.v1beta1.ContinuousVestingAccount',\n base_vesting_account: base_vesting_account.toData(),\n start_time: start_time.toFixed(),\n };\n };\n ContinuousVestingAccount.fromData = function (data, isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var base_vesting_account = BaseVestingAccount_1.BaseVestingAccount.fromData(__assign({ '@type': '/cosmos.vesting.v1beta1.BaseVestingAccount' }, data.base_vesting_account));\n return new ContinuousVestingAccount(base_vesting_account, Number.parseInt(data.start_time));\n };\n ContinuousVestingAccount.prototype.toProto = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = this, base_vesting_account = _a.base_vesting_account, start_time = _a.start_time;\n return vesting_1.ContinuousVestingAccount.fromPartial({\n baseVestingAccount: base_vesting_account.toProto(),\n startTime: Long.fromNumber(start_time),\n });\n };\n ContinuousVestingAccount.fromProto = function (ContinuousVestingAccountProto, isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var baseVestingAccount = BaseVestingAccount_1.BaseVestingAccount.fromProto(ContinuousVestingAccountProto.baseVestingAccount);\n return new ContinuousVestingAccount(baseVestingAccount, ContinuousVestingAccountProto.startTime.toNumber());\n };\n ContinuousVestingAccount.prototype.packAny = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.vesting.v1beta1.ContinuousVestingAccount',\n value: vesting_1.ContinuousVestingAccount.encode(this.toProto(isClassic)).finish(),\n });\n };\n ContinuousVestingAccount.unpackAny = function (pubkeyAny, isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return ContinuousVestingAccount.fromProto(vesting_1.ContinuousVestingAccount.decode(pubkeyAny.value), isClassic);\n };\n return ContinuousVestingAccount;\n}(json_1.JSONSerializable));\nexports.ContinuousVestingAccount = ContinuousVestingAccount;\n//# sourceMappingURL=ContinuousVestingAccount.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DelayedVestingAccount = void 0;\nvar json_1 = require(\"../../util/json\");\nvar BaseVestingAccount_1 = require(\"./BaseVestingAccount\");\nvar vesting_1 = require(\"@terra-money/terra.proto/cosmos/vesting/v1beta1/vesting\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\n/**\n * DelayedVestingAccount implements the VestingAccount interface. It vests all\n * coins after a specific time, but non prior. In other words, it keeps them\n * locked until a specified time.\n */\nvar DelayedVestingAccount = /** @class */ (function (_super) {\n __extends(DelayedVestingAccount, _super);\n /**\n *\n * @param base_vesting_account account information\n */\n function DelayedVestingAccount(base_vesting_account) {\n var _this = _super.call(this) || this;\n _this.base_vesting_account = base_vesting_account;\n return _this;\n }\n DelayedVestingAccount.prototype.getAccountNumber = function () {\n return this.base_vesting_account.getAccountNumber();\n };\n DelayedVestingAccount.prototype.getSequenceNumber = function () {\n return this.base_vesting_account.getSequenceNumber();\n };\n DelayedVestingAccount.prototype.getPublicKey = function () {\n return this.base_vesting_account.base_account.public_key;\n };\n DelayedVestingAccount.prototype.toAmino = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var base_vesting_account = this.base_vesting_account;\n return {\n type: 'cosmos-sdk/DelayedVestingAccount',\n value: {\n base_vesting_account: base_vesting_account.toAmino().value,\n },\n };\n };\n DelayedVestingAccount.fromAmino = function (data, isClassic) {\n var base_vesting_account = BaseVestingAccount_1.BaseVestingAccount.fromAmino({\n type: 'cosmos-sdk/BaseVestingAccount',\n value: data.value.base_vesting_account,\n });\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return new DelayedVestingAccount(base_vesting_account);\n };\n DelayedVestingAccount.prototype.toData = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var base_vesting_account = this.base_vesting_account;\n return {\n '@type': '/cosmos.vesting.v1beta1.DelayedVestingAccount',\n base_vesting_account: base_vesting_account.toData(),\n };\n };\n DelayedVestingAccount.fromData = function (data, isClassic) {\n var base_vesting_account = BaseVestingAccount_1.BaseVestingAccount.fromData(__assign({ '@type': '/cosmos.vesting.v1beta1.BaseVestingAccount' }, data.base_vesting_account));\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return new DelayedVestingAccount(base_vesting_account);\n };\n DelayedVestingAccount.prototype.toProto = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var base_vesting_account = this.base_vesting_account;\n return vesting_1.DelayedVestingAccount.fromPartial({\n baseVestingAccount: base_vesting_account.toProto(),\n });\n };\n DelayedVestingAccount.fromProto = function (DelayedVestingAccountProto, isClassic) {\n var baseVestingAccount = BaseVestingAccount_1.BaseVestingAccount.fromProto(DelayedVestingAccountProto.baseVestingAccount);\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return new DelayedVestingAccount(baseVestingAccount);\n };\n DelayedVestingAccount.prototype.packAny = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.vesting.v1beta1.DelayedVestingAccount',\n value: vesting_1.DelayedVestingAccount.encode(this.toProto(isClassic)).finish(),\n });\n };\n DelayedVestingAccount.unpackAny = function (pubkeyAny, isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return DelayedVestingAccount.fromProto(vesting_1.DelayedVestingAccount.decode(pubkeyAny.value), isClassic);\n };\n return DelayedVestingAccount;\n}(json_1.JSONSerializable));\nexports.DelayedVestingAccount = DelayedVestingAccount;\n//# sourceMappingURL=DelayedVestingAccount.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LazyGradedVestingAccount = void 0;\nvar json_1 = require(\"../../util/json\");\nvar BaseVestingAccount_1 = require(\"./BaseVestingAccount\");\nvar numeric_1 = require(\"../numeric\");\nvar vesting_1 = require(\"@terra-money/legacy.proto/terra/vesting/v1beta1/vesting\");\nvar any_1 = require(\"@terra-money/legacy.proto/google/protobuf/any\");\nvar Long = __importStar(require(\"long\"));\n/**\n * Holds information about a Account which has vesting information.\n */\nvar LazyGradedVestingAccount = /** @class */ (function (_super) {\n __extends(LazyGradedVestingAccount, _super);\n /**\n *\n * @param base_vesting_account account information\n * @param vesting_schedules Entries that make up vesting\n */\n function LazyGradedVestingAccount(base_vesting_account, vesting_schedules) {\n var _this = _super.call(this) || this;\n _this.base_vesting_account = base_vesting_account;\n _this.vesting_schedules = vesting_schedules;\n return _this;\n }\n LazyGradedVestingAccount.prototype.getAccountNumber = function () {\n return this.base_vesting_account.getAccountNumber();\n };\n LazyGradedVestingAccount.prototype.getSequenceNumber = function () {\n return this.base_vesting_account.getSequenceNumber();\n };\n LazyGradedVestingAccount.prototype.getPublicKey = function () {\n return this.base_vesting_account.base_account.public_key;\n };\n LazyGradedVestingAccount.prototype.toAmino = function (_) {\n _;\n var _a = this, base_vesting_account = _a.base_vesting_account, vesting_schedules = _a.vesting_schedules;\n return {\n type: 'core/LazyGradedVestingAccount',\n value: {\n base_vesting_account: base_vesting_account.toAmino().value,\n vesting_schedules: vesting_schedules.map(function (vs) { return vs.toAmino(); }),\n },\n };\n };\n LazyGradedVestingAccount.fromAmino = function (data, _) {\n _;\n var base_vesting_account = BaseVestingAccount_1.BaseVestingAccount.fromAmino({\n type: 'core/BaseVestingAccount',\n value: data.value.base_vesting_account,\n });\n return new LazyGradedVestingAccount(base_vesting_account, data.value.vesting_schedules.map(function (vs) {\n return LazyGradedVestingAccount.VestingSchedule.fromAmino(vs);\n }));\n };\n LazyGradedVestingAccount.prototype.toData = function (_) {\n _;\n var _a = this, base_vesting_account = _a.base_vesting_account, vesting_schedules = _a.vesting_schedules;\n return {\n '@type': '/terra.vesting.v1beta1.LazyGradedVestingAccount',\n base_vesting_account: base_vesting_account.toData(),\n vesting_schedules: vesting_schedules.map(function (vs) { return vs.toData(); }),\n };\n };\n LazyGradedVestingAccount.fromData = function (data, _) {\n _;\n var base_vesting_account = BaseVestingAccount_1.BaseVestingAccount.fromData(__assign({ '@type': '/cosmos.vesting.v1beta1.BaseVestingAccount' }, data.base_vesting_account));\n return new LazyGradedVestingAccount(base_vesting_account, data.vesting_schedules.map(function (vs) {\n return LazyGradedVestingAccount.VestingSchedule.fromData(vs);\n }));\n };\n LazyGradedVestingAccount.prototype.toProto = function (_) {\n _;\n var _a = this, base_vesting_account = _a.base_vesting_account, vesting_schedules = _a.vesting_schedules;\n return vesting_1.LazyGradedVestingAccount.fromPartial({\n baseVestingAccount: base_vesting_account.toProto(),\n vestingSchedules: vesting_schedules.map(function (s) { return s.toProto(); }),\n });\n };\n LazyGradedVestingAccount.fromProto = function (lazyGradedVestingAccountProto, _) {\n var _this = this;\n _;\n var baseVestingAccount = BaseVestingAccount_1.BaseVestingAccount.fromProto(lazyGradedVestingAccountProto.baseVestingAccount);\n return new LazyGradedVestingAccount(baseVestingAccount, lazyGradedVestingAccountProto.vestingSchedules.map(function (s) {\n return _this.VestingSchedule.fromProto(s);\n }));\n };\n LazyGradedVestingAccount.prototype.packAny = function (isClassic) {\n return any_1.Any.fromPartial({\n typeUrl: '/terra.vesting.v1beta1.LazyGradedVestingAccount',\n value: vesting_1.LazyGradedVestingAccount.encode(this.toProto(isClassic)).finish(),\n });\n };\n LazyGradedVestingAccount.unpackAny = function (pubkeyAny, isClassic) {\n return LazyGradedVestingAccount.fromProto(vesting_1.LazyGradedVestingAccount.decode(pubkeyAny.value), isClassic);\n };\n return LazyGradedVestingAccount;\n}(json_1.JSONSerializable));\nexports.LazyGradedVestingAccount = LazyGradedVestingAccount;\n(function (LazyGradedVestingAccount) {\n var VestingSchedule = /** @class */ (function (_super) {\n __extends(VestingSchedule, _super);\n function VestingSchedule(denom, schedules) {\n var _this = _super.call(this) || this;\n _this.denom = denom;\n _this.schedules = schedules;\n return _this;\n }\n VestingSchedule.prototype.toAmino = function () {\n var _a = this, denom = _a.denom, schedules = _a.schedules;\n return {\n denom: denom,\n schedules: schedules.map(function (s) { return s.toAmino(); }),\n };\n };\n VestingSchedule.fromAmino = function (data) {\n var denom = data.denom, schedules = data.schedules;\n return new VestingSchedule(denom, schedules.map(function (s) { return VestingSchedule.Entry.fromAmino(s); }));\n };\n VestingSchedule.prototype.toData = function () {\n var _a = this, denom = _a.denom, schedules = _a.schedules;\n return {\n denom: denom,\n schedules: schedules.map(function (s) { return s.toData(); }),\n };\n };\n VestingSchedule.fromData = function (data) {\n var denom = data.denom, schedules = data.schedules;\n return new VestingSchedule(denom, schedules.map(function (s) { return VestingSchedule.Entry.fromData(s); }));\n };\n VestingSchedule.prototype.toProto = function () {\n var _a = this, denom = _a.denom, schedules = _a.schedules;\n return vesting_1.VestingSchedule.fromPartial({\n denom: denom,\n schedules: schedules.map(function (s) { return s.toProto(); }),\n });\n };\n VestingSchedule.fromProto = function (vestingScheduleProto) {\n return new VestingSchedule(vestingScheduleProto.denom, vestingScheduleProto.schedules.map(function (s) {\n return VestingSchedule.Entry.fromProto(s);\n }));\n };\n return VestingSchedule;\n }(json_1.JSONSerializable));\n LazyGradedVestingAccount.VestingSchedule = VestingSchedule;\n (function (VestingSchedule) {\n var Entry = /** @class */ (function (_super) {\n __extends(Entry, _super);\n /**\n *\n * @param start_time Starting time (block height)\n * @param end_time Ending time (block height)\n * @param ratio Ratio (percentage of vested funds that should be released)\n */\n function Entry(start_time, end_time, ratio) {\n var _this = _super.call(this) || this;\n _this.start_time = start_time;\n _this.end_time = end_time;\n _this.ratio = ratio;\n return _this;\n }\n Entry.fromAmino = function (data) {\n var start_time = data.start_time, end_time = data.end_time, ratio = data.ratio;\n return new Entry(Number.parseInt(start_time), Number.parseInt(end_time), new numeric_1.Dec(ratio));\n };\n Entry.prototype.toAmino = function () {\n return {\n start_time: this.start_time.toFixed(),\n end_time: this.end_time.toFixed(),\n ratio: this.ratio.toString(),\n };\n };\n Entry.fromData = function (data) {\n var start_time = data.start_time, end_time = data.end_time, ratio = data.ratio;\n return new Entry(Number.parseInt(start_time), Number.parseInt(end_time), new numeric_1.Dec(ratio));\n };\n Entry.prototype.toData = function () {\n return {\n start_time: this.start_time.toFixed(),\n end_time: this.end_time.toFixed(),\n ratio: this.ratio.toString(),\n };\n };\n Entry.fromProto = function (entryProto) {\n return new Entry(entryProto.endTime.toNumber(), entryProto.startTime.toNumber(), new numeric_1.Dec(entryProto.ratio));\n };\n Entry.prototype.toProto = function () {\n return vesting_1.Schedule.fromPartial({\n endTime: Long.fromNumber(this.end_time),\n ratio: this.ratio.toString(),\n startTime: Long.fromNumber(this.start_time),\n });\n };\n return Entry;\n }(json_1.JSONSerializable));\n VestingSchedule.Entry = Entry;\n })(VestingSchedule = LazyGradedVestingAccount.VestingSchedule || (LazyGradedVestingAccount.VestingSchedule = {}));\n})(LazyGradedVestingAccount = exports.LazyGradedVestingAccount || (exports.LazyGradedVestingAccount = {}));\nexports.LazyGradedVestingAccount = LazyGradedVestingAccount;\n//# sourceMappingURL=LazyGradedVestingAccount.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PeriodicVestingAccount = void 0;\nvar json_1 = require(\"../../util/json\");\nvar BaseVestingAccount_1 = require(\"./BaseVestingAccount\");\nvar Coins_1 = require(\"../Coins\");\nvar vesting_1 = require(\"@terra-money/terra.proto/cosmos/vesting/v1beta1/vesting\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar Long = __importStar(require(\"long\"));\n/**\n * PeriodicVestingAccount implements the VestingAccount interface. It\n * periodically vests by unlocking coins during each specified period.\n */\nvar PeriodicVestingAccount = /** @class */ (function (_super) {\n __extends(PeriodicVestingAccount, _super);\n /**\n *\n * @param base_vesting_account account information\n * @param start_time vesting start time\n * @param vesting_periods vesting period entries\n */\n function PeriodicVestingAccount(base_vesting_account, start_time, vesting_periods) {\n var _this = _super.call(this) || this;\n _this.base_vesting_account = base_vesting_account;\n _this.start_time = start_time;\n _this.vesting_periods = vesting_periods;\n return _this;\n }\n PeriodicVestingAccount.prototype.getAccountNumber = function () {\n return this.base_vesting_account.getAccountNumber();\n };\n PeriodicVestingAccount.prototype.getSequenceNumber = function () {\n return this.base_vesting_account.getSequenceNumber();\n };\n PeriodicVestingAccount.prototype.getPublicKey = function () {\n return this.base_vesting_account.base_account.public_key;\n };\n PeriodicVestingAccount.prototype.toAmino = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = this, base_vesting_account = _a.base_vesting_account, start_time = _a.start_time, vesting_periods = _a.vesting_periods;\n return {\n type: 'cosmos-sdk/PeriodicVestingAccount',\n value: {\n base_vesting_account: base_vesting_account.toAmino().value,\n start_time: start_time.toFixed(),\n vesting_periods: vesting_periods.map(function (vs) { return vs.toAmino(); }),\n },\n };\n };\n PeriodicVestingAccount.fromAmino = function (data, isClassic) {\n var base_vesting_account = BaseVestingAccount_1.BaseVestingAccount.fromAmino({\n type: 'cosmos-sdk/BaseVestingAccount',\n value: data.value.base_vesting_account,\n });\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return new PeriodicVestingAccount(base_vesting_account, Number.parseInt(data.value.start_time), data.value.vesting_periods.map(function (vs) {\n return PeriodicVestingAccount.Period.fromAmino(vs);\n }));\n };\n PeriodicVestingAccount.prototype.toData = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = this, base_vesting_account = _a.base_vesting_account, start_time = _a.start_time, vesting_periods = _a.vesting_periods;\n return {\n '@type': '/cosmos.vesting.v1beta1.PeriodicVestingAccount',\n base_vesting_account: base_vesting_account.toData(),\n start_time: start_time.toFixed(),\n vesting_periods: vesting_periods.map(function (vs) { return vs.toData(); }),\n };\n };\n PeriodicVestingAccount.fromData = function (data, isClassic) {\n var base_vesting_account = BaseVestingAccount_1.BaseVestingAccount.fromData(__assign({ '@type': '/cosmos.vesting.v1beta1.BaseVestingAccount' }, data.base_vesting_account));\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return new PeriodicVestingAccount(base_vesting_account, Number.parseInt(data.start_time), data.vesting_periods.map(function (vs) { return PeriodicVestingAccount.Period.fromData(vs); }));\n };\n PeriodicVestingAccount.prototype.toProto = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = this, base_vesting_account = _a.base_vesting_account, vesting_periods = _a.vesting_periods;\n return vesting_1.PeriodicVestingAccount.fromPartial({\n baseVestingAccount: base_vesting_account.toProto(),\n vestingPeriods: vesting_periods.map(function (s) { return s.toProto(); }),\n });\n };\n PeriodicVestingAccount.fromProto = function (proto, isClassic) {\n var _this = this;\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var baseVestingAccount = BaseVestingAccount_1.BaseVestingAccount.fromProto(proto.baseVestingAccount);\n return new PeriodicVestingAccount(baseVestingAccount, proto.startTime.toNumber(), proto.vestingPeriods.map(function (s) { return _this.Period.fromProto(s); }));\n };\n PeriodicVestingAccount.prototype.packAny = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.vesting.v1beta1.PeriodicVestingAccount',\n value: vesting_1.PeriodicVestingAccount.encode(this.toProto(isClassic)).finish(),\n });\n };\n PeriodicVestingAccount.unpackAny = function (pubkeyAny, isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return PeriodicVestingAccount.fromProto(vesting_1.PeriodicVestingAccount.decode(pubkeyAny.value), isClassic);\n };\n return PeriodicVestingAccount;\n}(json_1.JSONSerializable));\nexports.PeriodicVestingAccount = PeriodicVestingAccount;\n(function (PeriodicVestingAccount) {\n var Period = /** @class */ (function (_super) {\n __extends(Period, _super);\n function Period(length, amount) {\n var _this = _super.call(this) || this;\n _this.length = length;\n _this.amount = amount;\n return _this;\n }\n Period.prototype.toAmino = function () {\n var _a = this, length = _a.length, amount = _a.amount;\n return {\n length: length.toFixed(),\n amount: amount.toAmino(),\n };\n };\n Period.fromAmino = function (data) {\n var length = data.length, amount = data.amount;\n return new Period(Number.parseInt(length), Coins_1.Coins.fromAmino(amount));\n };\n Period.prototype.toData = function () {\n var _a = this, length = _a.length, amount = _a.amount;\n return {\n length: length.toFixed(),\n amount: amount.toData(),\n };\n };\n Period.fromData = function (data) {\n var length = data.length, amount = data.amount;\n return new Period(Number.parseInt(length), Coins_1.Coins.fromData(amount));\n };\n Period.prototype.toProto = function () {\n var _a = this, length = _a.length, amount = _a.amount;\n return vesting_1.Period.fromPartial({\n length: Long.fromNumber(length),\n amount: amount.toProto(),\n });\n };\n Period.fromProto = function (proto) {\n return new Period(proto.length.toNumber(), Coins_1.Coins.fromProto(proto.amount));\n };\n return Period;\n }(json_1.JSONSerializable));\n PeriodicVestingAccount.Period = Period;\n})(PeriodicVestingAccount = exports.PeriodicVestingAccount || (exports.PeriodicVestingAccount = {}));\nexports.PeriodicVestingAccount = PeriodicVestingAccount;\n//# sourceMappingURL=PeriodicVestingAccount.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Authorization = exports.AuthorizationGrant = void 0;\nvar json_1 = require(\"../../../util/json\");\nvar GenericAuthorization_1 = require(\"./GenericAuthorization\");\nvar SendAuthorization_1 = require(\"./SendAuthorization\");\nvar StakeAuthorization_1 = require(\"./StakeAuthorization\");\nvar authz_1 = require(\"@terra-money/terra.proto/cosmos/authz/v1beta1/authz\");\nvar AuthorizationGrant = /** @class */ (function (_super) {\n __extends(AuthorizationGrant, _super);\n function AuthorizationGrant(authorization, expiration) {\n var _this = _super.call(this) || this;\n _this.authorization = authorization;\n _this.expiration = expiration;\n return _this;\n }\n AuthorizationGrant.fromAmino = function (amino, isClassic) {\n var authorization = amino.authorization, expiration = amino.expiration;\n return new AuthorizationGrant(Authorization.fromAmino(authorization, isClassic), new Date(expiration));\n };\n AuthorizationGrant.prototype.toAmino = function (isClassic) {\n var _a = this, authorization = _a.authorization, expiration = _a.expiration;\n return {\n authorization: authorization.toAmino(isClassic),\n expiration: expiration.toISOString().replace(/\\.000Z$/, 'Z'),\n };\n };\n AuthorizationGrant.fromData = function (data, isClassic) {\n var authorization = data.authorization, expiration = data.expiration;\n return new AuthorizationGrant(Authorization.fromData(authorization, isClassic), new Date(expiration));\n };\n AuthorizationGrant.prototype.toData = function (isClassic) {\n var _a = this, authorization = _a.authorization, expiration = _a.expiration;\n return {\n authorization: authorization.toData(isClassic),\n expiration: expiration.toISOString().replace(/\\.000Z$/, 'Z'),\n };\n };\n AuthorizationGrant.fromProto = function (proto, isClassic) {\n return new AuthorizationGrant(Authorization.fromProto(proto.authorization, isClassic), proto.expiration);\n };\n AuthorizationGrant.prototype.toProto = function (isClassic) {\n var _a = this, authorization = _a.authorization, expiration = _a.expiration;\n return authz_1.Grant.fromPartial({\n authorization: authorization.packAny(isClassic),\n expiration: expiration,\n });\n };\n return AuthorizationGrant;\n}(json_1.JSONSerializable));\nexports.AuthorizationGrant = AuthorizationGrant;\nvar Authorization;\n(function (Authorization) {\n function fromAmino(data, isClassic) {\n switch (data.type) {\n case 'msgauth/SendAuthorization':\n case 'cosmos-sdk/SendAuthorization':\n return SendAuthorization_1.SendAuthorization.fromAmino(data, isClassic);\n case 'msgauth/GenericAuthorization':\n case 'cosmos-sdk/GenericAuthorization':\n return GenericAuthorization_1.GenericAuthorization.fromAmino(data, isClassic);\n }\n }\n Authorization.fromAmino = fromAmino;\n function fromData(data, isClassic) {\n switch (data['@type']) {\n case '/cosmos.authz.v1beta1.GenericAuthorization':\n return GenericAuthorization_1.GenericAuthorization.fromData(data, isClassic);\n case '/cosmos.bank.v1beta1.SendAuthorization':\n return SendAuthorization_1.SendAuthorization.fromData(data, isClassic);\n case '/cosmos.staking.v1beta1.StakeAuthorization':\n return StakeAuthorization_1.StakeAuthorization.fromData(data, isClassic);\n }\n }\n Authorization.fromData = fromData;\n function fromProto(proto, isClassic) {\n var typeUrl = proto.typeUrl;\n switch (typeUrl) {\n case '/cosmos.authz.v1beta1.GenericAuthorization':\n return GenericAuthorization_1.GenericAuthorization.unpackAny(proto, isClassic);\n case '/cosmos.bank.v1beta1.SendAuthorization':\n return SendAuthorization_1.SendAuthorization.unpackAny(proto, isClassic);\n case '/cosmos.staking.v1beta1.StakeAuthorization':\n return StakeAuthorization_1.StakeAuthorization.unpackAny(proto, isClassic);\n }\n throw new Error(\"Authorization type \".concat(typeUrl, \" not recognized\"));\n }\n Authorization.fromProto = fromProto;\n})(Authorization = exports.Authorization || (exports.Authorization = {}));\n//# sourceMappingURL=Authorization.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GenericAuthorization = void 0;\nvar json_1 = require(\"../../../util/json\");\nvar authz_1 = require(\"@terra-money/terra.proto/cosmos/authz/v1beta1/authz\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar GenericAuthorization = /** @class */ (function (_super) {\n __extends(GenericAuthorization, _super);\n function GenericAuthorization(msg) {\n var _this = _super.call(this) || this;\n _this.msg = msg;\n return _this;\n }\n GenericAuthorization.fromAmino = function (data, _) {\n _;\n return new GenericAuthorization(data.value.msg);\n };\n GenericAuthorization.prototype.toAmino = function (isClassic) {\n var msg = this.msg;\n return {\n type: isClassic\n ? 'msgauth/GenericAuthorization'\n : 'cosmos-sdk/GenericAuthorization',\n value: {\n msg: msg,\n },\n };\n };\n GenericAuthorization.fromData = function (data, _) {\n _;\n return new GenericAuthorization(data.msg);\n };\n GenericAuthorization.prototype.toData = function (_) {\n _;\n var msg = this.msg;\n return {\n '@type': '/cosmos.authz.v1beta1.GenericAuthorization',\n msg: msg,\n };\n };\n GenericAuthorization.fromProto = function (data, _) {\n _;\n return new GenericAuthorization(data.msg);\n };\n GenericAuthorization.prototype.toProto = function (_) {\n _;\n return authz_1.GenericAuthorization.fromPartial({\n msg: this.msg,\n });\n };\n GenericAuthorization.prototype.packAny = function (isClassic) {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.authz.v1beta1.GenericAuthorization',\n value: authz_1.GenericAuthorization.encode(this.toProto(isClassic)).finish(),\n });\n };\n GenericAuthorization.unpackAny = function (msgAny, isClassic) {\n return GenericAuthorization.fromProto(authz_1.GenericAuthorization.decode(msgAny.value), isClassic);\n };\n return GenericAuthorization;\n}(json_1.JSONSerializable));\nexports.GenericAuthorization = GenericAuthorization;\n//# sourceMappingURL=GenericAuthorization.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SendAuthorization = void 0;\nvar json_1 = require(\"../../../util/json\");\nvar Coins_1 = require(\"../../Coins\");\nvar authz_1 = require(\"@terra-money/terra.proto/cosmos/bank/v1beta1/authz\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar SendAuthorization = /** @class */ (function (_super) {\n __extends(SendAuthorization, _super);\n function SendAuthorization(spend_limit) {\n var _this = _super.call(this) || this;\n _this.spend_limit = new Coins_1.Coins(spend_limit);\n return _this;\n }\n SendAuthorization.fromAmino = function (data, _) {\n _;\n return new SendAuthorization(Coins_1.Coins.fromAmino(data.value.spend_limit));\n };\n SendAuthorization.prototype.toAmino = function (isClassic) {\n var spend_limit = this.spend_limit;\n return {\n type: isClassic\n ? 'msgauth/SendAuthorization'\n : 'cosmos-sdk/SendAuthorization',\n value: {\n spend_limit: spend_limit.toAmino(),\n },\n };\n };\n SendAuthorization.fromData = function (data, _) {\n _;\n return new SendAuthorization(Coins_1.Coins.fromData(data.spend_limit));\n };\n SendAuthorization.prototype.toData = function (_) {\n _;\n var spend_limit = this.spend_limit;\n return {\n '@type': '/cosmos.bank.v1beta1.SendAuthorization',\n spend_limit: spend_limit.toAmino(),\n };\n };\n SendAuthorization.fromProto = function (proto, _) {\n _;\n return new SendAuthorization(Coins_1.Coins.fromProto(proto.spendLimit));\n };\n SendAuthorization.prototype.toProto = function (_) {\n _;\n return authz_1.SendAuthorization.fromPartial({\n spendLimit: this.spend_limit.toProto(),\n });\n };\n SendAuthorization.prototype.packAny = function (isClassic) {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.bank.v1beta1.SendAuthorization',\n value: authz_1.SendAuthorization.encode(this.toProto(isClassic)).finish(),\n });\n };\n SendAuthorization.unpackAny = function (msgAny, isClassic) {\n return SendAuthorization.fromProto(authz_1.SendAuthorization.decode(msgAny.value), isClassic);\n };\n return SendAuthorization;\n}(json_1.JSONSerializable));\nexports.SendAuthorization = SendAuthorization;\n//# sourceMappingURL=SendAuthorization.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StakeAuthorizationValidators = exports.StakeAuthorization = void 0;\nvar json_1 = require(\"../../../util/json\");\nvar Coin_1 = require(\"../../Coin\");\nvar authz_1 = require(\"@terra-money/terra.proto/cosmos/staking/v1beta1/authz\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar StakeAuthorization = /** @class */ (function (_super) {\n __extends(StakeAuthorization, _super);\n function StakeAuthorization(authorization_type, max_tokens, allow_list, deny_list) {\n var _this = _super.call(this) || this;\n _this.authorization_type = authorization_type;\n _this.max_tokens = max_tokens;\n _this.allow_list = allow_list;\n _this.deny_list = deny_list;\n return _this;\n }\n StakeAuthorization.fromAmino = function (_, isClassic) {\n _;\n isClassic;\n throw new Error('Amino not supported');\n };\n StakeAuthorization.prototype.toAmino = function (_) {\n _;\n throw new Error('Amino not supported');\n };\n StakeAuthorization.fromData = function (data, isClassic) {\n return new StakeAuthorization((0, authz_1.authorizationTypeFromJSON)(data.authorization_type), data.max_tokens ? Coin_1.Coin.fromProto(data.max_tokens) : undefined, data.allow_list\n ? StakeAuthorizationValidators.fromData(data.allow_list, isClassic)\n : undefined, data.deny_list\n ? StakeAuthorizationValidators.fromData(data.deny_list, isClassic)\n : undefined);\n };\n StakeAuthorization.prototype.toData = function (isClassic) {\n var _a = this, max_tokens = _a.max_tokens, allow_list = _a.allow_list, deny_list = _a.deny_list, authorization_type = _a.authorization_type;\n return {\n '@type': '/cosmos.staking.v1beta1.StakeAuthorization',\n authorization_type: (0, authz_1.authorizationTypeToJSON)(authorization_type),\n max_tokens: max_tokens === null || max_tokens === void 0 ? void 0 : max_tokens.toData(),\n allow_list: allow_list === null || allow_list === void 0 ? void 0 : allow_list.toData(isClassic),\n deny_list: deny_list === null || deny_list === void 0 ? void 0 : deny_list.toData(isClassic),\n };\n };\n StakeAuthorization.fromProto = function (proto, isClassic) {\n return new StakeAuthorization(proto.authorizationType, proto.maxTokens ? Coin_1.Coin.fromProto(proto.maxTokens) : undefined, proto.allowList\n ? StakeAuthorizationValidators.fromProto(proto.allowList, isClassic)\n : undefined, proto.denyList\n ? StakeAuthorizationValidators.fromProto(proto.denyList, isClassic)\n : undefined);\n };\n StakeAuthorization.prototype.toProto = function (isClassic) {\n var _a = this, max_tokens = _a.max_tokens, allow_list = _a.allow_list, deny_list = _a.deny_list, authorization_type = _a.authorization_type;\n return authz_1.StakeAuthorization.fromPartial({\n allowList: allow_list === null || allow_list === void 0 ? void 0 : allow_list.toProto(isClassic),\n authorizationType: authorization_type,\n denyList: deny_list === null || deny_list === void 0 ? void 0 : deny_list.toProto(isClassic),\n maxTokens: max_tokens === null || max_tokens === void 0 ? void 0 : max_tokens.toProto(),\n });\n };\n StakeAuthorization.prototype.packAny = function (isClassic) {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.staking.v1beta1.StakeAuthorization',\n value: authz_1.StakeAuthorization.encode(this.toProto(isClassic)).finish(),\n });\n };\n StakeAuthorization.unpackAny = function (msgAny, isClassic) {\n return StakeAuthorization.fromProto(authz_1.StakeAuthorization.decode(msgAny.value), isClassic);\n };\n return StakeAuthorization;\n}(json_1.JSONSerializable));\nexports.StakeAuthorization = StakeAuthorization;\nvar StakeAuthorizationValidators = /** @class */ (function (_super) {\n __extends(StakeAuthorizationValidators, _super);\n function StakeAuthorizationValidators(address) {\n var _this = _super.call(this) || this;\n _this.address = address;\n return _this;\n }\n StakeAuthorizationValidators.fromAmino = function (_, isClassic) {\n _;\n isClassic;\n throw new Error('Amino not supported');\n };\n StakeAuthorizationValidators.prototype.toAmino = function (_) {\n _;\n throw new Error('Amino not supported');\n };\n StakeAuthorizationValidators.fromData = function (data, _) {\n _;\n return new StakeAuthorizationValidators(data.address);\n };\n StakeAuthorizationValidators.prototype.toData = function (_) {\n _;\n return {\n address: this.address,\n };\n };\n StakeAuthorizationValidators.fromProto = function (proto, _) {\n _;\n return new StakeAuthorizationValidators(proto.address);\n };\n StakeAuthorizationValidators.prototype.toProto = function (_) {\n _;\n return authz_1.StakeAuthorization_Validators.fromPartial({\n address: this.address,\n });\n };\n return StakeAuthorizationValidators;\n}(json_1.JSONSerializable));\nexports.StakeAuthorizationValidators = StakeAuthorizationValidators;\n(function (StakeAuthorization) {\n StakeAuthorization.Type = authz_1.AuthorizationType;\n})(StakeAuthorization = exports.StakeAuthorization || (exports.StakeAuthorization = {}));\nexports.StakeAuthorization = StakeAuthorization;\n//# sourceMappingURL=StakeAuthorization.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./StakeAuthorization\"), exports);\n__exportStar(require(\"./SendAuthorization\"), exports);\n__exportStar(require(\"./GenericAuthorization\"), exports);\n__exportStar(require(\"./Authorization\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgExecAuthorized = void 0;\nvar json_1 = require(\"../../../util/json\");\nvar Msg_1 = require(\"../../Msg\");\nvar tx_1 = require(\"@terra-money/terra.proto/cosmos/authz/v1beta1/tx\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar MsgExecAuthorized = /** @class */ (function (_super) {\n __extends(MsgExecAuthorized, _super);\n /**\n * @param grantee authorization grantee\n * @param msgs list of messages to execute\n */\n function MsgExecAuthorized(grantee, msgs) {\n var _this = _super.call(this) || this;\n _this.grantee = grantee;\n _this.msgs = msgs;\n return _this;\n }\n MsgExecAuthorized.fromAmino = function (data, isClassic) {\n var _a = data.value, grantee = _a.grantee, msgs = _a.msgs;\n return new MsgExecAuthorized(grantee, msgs.map(function (x) { return Msg_1.Msg.fromAmino(x, isClassic); }));\n };\n MsgExecAuthorized.prototype.toAmino = function (isClassic) {\n var _a = this, grantee = _a.grantee, msgs = _a.msgs;\n return {\n type: isClassic ? 'msgauth/MsgExecAuthorized' : 'cosmos-sdk/MsgExec',\n value: {\n grantee: grantee,\n msgs: msgs.map(function (msg) {\n return msg.toAmino(isClassic);\n }),\n },\n };\n };\n MsgExecAuthorized.fromData = function (proto, isClassic) {\n var grantee = proto.grantee, msgs = proto.msgs;\n return new MsgExecAuthorized(grantee, msgs.map(function (x) { return Msg_1.Msg.fromData(x, isClassic); }));\n };\n MsgExecAuthorized.prototype.toData = function (isClassic) {\n var _a = this, grantee = _a.grantee, msgs = _a.msgs;\n return {\n '@type': '/cosmos.authz.v1beta1.MsgExec',\n grantee: grantee,\n msgs: msgs.map(function (msg) { return msg.toData(isClassic); }),\n };\n };\n MsgExecAuthorized.fromProto = function (proto, isClassic) {\n return new MsgExecAuthorized(proto.grantee, proto.msgs.map(function (x) { return Msg_1.Msg.fromProto(x, isClassic); }));\n };\n MsgExecAuthorized.prototype.toProto = function (isClassic) {\n var _a = this, grantee = _a.grantee, msgs = _a.msgs;\n return tx_1.MsgExec.fromPartial({\n grantee: grantee,\n msgs: msgs.map(function (m) { return m.packAny(isClassic); }),\n });\n };\n MsgExecAuthorized.prototype.packAny = function (isClassic) {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.authz.v1beta1.MsgExec',\n value: tx_1.MsgExec.encode(this.toProto(isClassic)).finish(),\n });\n };\n MsgExecAuthorized.unpackAny = function (msgAny, isClassic) {\n return MsgExecAuthorized.fromProto(tx_1.MsgExec.decode(msgAny.value), isClassic);\n };\n return MsgExecAuthorized;\n}(json_1.JSONSerializable));\nexports.MsgExecAuthorized = MsgExecAuthorized;\n//# sourceMappingURL=MsgExecAuthorized.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgGrantAuthorization = void 0;\nvar json_1 = require(\"../../../util/json\");\nvar authorizations_1 = require(\"../authorizations\");\nvar tx_1 = require(\"@terra-money/terra.proto/cosmos/authz/v1beta1/tx\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar MsgGrantAuthorization = /** @class */ (function (_super) {\n __extends(MsgGrantAuthorization, _super);\n /**\n * @param depositor depositor's account address\n * @param amount coins to fund the community pool\n */\n function MsgGrantAuthorization(granter, grantee, grant) {\n var _this = _super.call(this) || this;\n _this.granter = granter;\n _this.grantee = grantee;\n _this.grant = grant;\n return _this;\n }\n MsgGrantAuthorization.fromAmino = function (data, isClassic) {\n var _a = data.value, granter = _a.granter, grantee = _a.grantee, grant = _a.grant;\n return new MsgGrantAuthorization(granter, grantee, authorizations_1.AuthorizationGrant.fromAmino(grant, isClassic));\n };\n MsgGrantAuthorization.prototype.toAmino = function (isClassic) {\n var _a = this, granter = _a.granter, grantee = _a.grantee, grant = _a.grant;\n return {\n type: isClassic ? 'msgauth/MsgGrantAuthorization' : 'cosmos-sdk/MsgGrant',\n value: {\n granter: granter,\n grantee: grantee,\n grant: grant.toAmino(isClassic),\n },\n };\n };\n MsgGrantAuthorization.fromData = function (data, isClassic) {\n var granter = data.granter, grantee = data.grantee, grant = data.grant;\n return new MsgGrantAuthorization(granter, grantee, authorizations_1.AuthorizationGrant.fromData(grant, isClassic));\n };\n MsgGrantAuthorization.prototype.toData = function (isClassic) {\n var _a = this, granter = _a.granter, grantee = _a.grantee, grant = _a.grant;\n return {\n '@type': '/cosmos.authz.v1beta1.MsgGrant',\n granter: granter,\n grantee: grantee,\n grant: grant.toData(isClassic),\n };\n };\n MsgGrantAuthorization.fromProto = function (data, isClassic) {\n return new MsgGrantAuthorization(data.granter, data.grantee, authorizations_1.AuthorizationGrant.fromProto(data.grant, isClassic));\n };\n MsgGrantAuthorization.prototype.toProto = function (isClassic) {\n var _a = this, grant = _a.grant, granter = _a.granter, grantee = _a.grantee;\n return tx_1.MsgGrant.fromPartial({\n grant: grant.toProto(isClassic),\n grantee: grantee,\n granter: granter,\n });\n };\n MsgGrantAuthorization.prototype.packAny = function (isClassic) {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.authz.v1beta1.MsgGrant',\n value: tx_1.MsgGrant.encode(this.toProto(isClassic)).finish(),\n });\n };\n MsgGrantAuthorization.unpackAny = function (msgAny, isClassic) {\n return MsgGrantAuthorization.fromProto(tx_1.MsgGrant.decode(msgAny.value), isClassic);\n };\n return MsgGrantAuthorization;\n}(json_1.JSONSerializable));\nexports.MsgGrantAuthorization = MsgGrantAuthorization;\n//# sourceMappingURL=MsgGrantAuthorization.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgRevokeAuthorization = void 0;\nvar json_1 = require(\"../../../util/json\");\nvar tx_1 = require(\"@terra-money/terra.proto/cosmos/authz/v1beta1/tx\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar MsgRevokeAuthorization = /** @class */ (function (_super) {\n __extends(MsgRevokeAuthorization, _super);\n /**\n * @param granter authorization granter\n * @param grantee authorization grantee\n * @param authorization_msg_type type of message to revoke\n */\n function MsgRevokeAuthorization(granter, grantee, msg_type_url) {\n var _this = _super.call(this) || this;\n _this.granter = granter;\n _this.grantee = grantee;\n _this.msg_type_url = msg_type_url;\n return _this;\n }\n MsgRevokeAuthorization.fromAmino = function (data, _) {\n _;\n var _a = data.value, granter = _a.granter, grantee = _a.grantee, msg_type_url = _a.msg_type_url;\n return new MsgRevokeAuthorization(granter, grantee, msg_type_url);\n };\n MsgRevokeAuthorization.prototype.toAmino = function (isClassic) {\n var _a = this, granter = _a.granter, grantee = _a.grantee, msg_type_url = _a.msg_type_url;\n return {\n type: isClassic\n ? 'msgauth/MsgRevokeAuthorization'\n : 'cosmos-sdk/MsgRevoke',\n value: {\n granter: granter,\n grantee: grantee,\n msg_type_url: msg_type_url,\n },\n };\n };\n MsgRevokeAuthorization.fromData = function (data, _) {\n _;\n var granter = data.granter, grantee = data.grantee, msg_type_url = data.msg_type_url;\n return new MsgRevokeAuthorization(granter, grantee, msg_type_url);\n };\n MsgRevokeAuthorization.prototype.toData = function (_) {\n _;\n var _a = this, granter = _a.granter, grantee = _a.grantee, msg_type_url = _a.msg_type_url;\n return {\n '@type': '/cosmos.authz.v1beta1.MsgRevoke',\n granter: granter,\n grantee: grantee,\n msg_type_url: msg_type_url,\n };\n };\n MsgRevokeAuthorization.fromProto = function (proto, _) {\n _;\n return new MsgRevokeAuthorization(proto.granter, proto.grantee, proto.msgTypeUrl);\n };\n MsgRevokeAuthorization.prototype.toProto = function (_) {\n _;\n var _a = this, granter = _a.granter, grantee = _a.grantee, msg_type_url = _a.msg_type_url;\n return tx_1.MsgRevoke.fromPartial({\n grantee: grantee,\n granter: granter,\n msgTypeUrl: msg_type_url,\n });\n };\n MsgRevokeAuthorization.prototype.packAny = function (isClassic) {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.authz.v1beta1.MsgRevoke',\n value: tx_1.MsgRevoke.encode(this.toProto(isClassic)).finish(),\n });\n };\n MsgRevokeAuthorization.unpackAny = function (msgAny, isClassic) {\n return MsgRevokeAuthorization.fromProto(tx_1.MsgRevoke.decode(msgAny.value), isClassic);\n };\n return MsgRevokeAuthorization;\n}(json_1.JSONSerializable));\nexports.MsgRevokeAuthorization = MsgRevokeAuthorization;\n//# sourceMappingURL=MsgRevokeAuthorization.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./MsgGrantAuthorization\"), exports);\n__exportStar(require(\"./MsgRevokeAuthorization\"), exports);\n__exportStar(require(\"./MsgExecAuthorized\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgMultiSend = void 0;\nvar json_1 = require(\"../../../util/json\");\nvar Coins_1 = require(\"../../Coins\");\nvar any_1 = require(\"@terra-money/legacy.proto/google/protobuf/any\");\n// there's no difference between two protos\n//import { MsgMultiSend as MsgMultiSend_legacy_pb } from '@terra-money/legacy.proto/cosmos/bank/v1beta1/tx';\nvar tx_1 = require(\"@terra-money/terra.proto/cosmos/bank/v1beta1/tx\");\nvar bank_1 = require(\"@terra-money/terra.proto/cosmos/bank/v1beta1/bank\");\n/**\n * If you have multiple senders and/or multiple recipients, you can use MsgMultiSend,\n * which can batch together the senders and recipients in one message to save on gas\n * fees.\n *\n * Specify the senders and recipients and their corresponding deposit contribution /\n * receiving amounts with [[MsgMultiSend.Input]] or [[MsgMultiSend.Output]].\n *\n * Example:\n *\n * ```ts\n * import { MsgMultiSend } from \"@terra-money/terra.js\";\n *\n * const inputs: MsgMultiSend.Input[] = [\n * new MsgMultiSend.Input(\n * 'terra105rz2q5a4w7nv7239tl9c4px5cjy7axx3axf6p',\n * {\n * ukrw: 123123,\n * })\n * ),\n * new MsgMultiSend.Input('terra105rz2q5a4w7nv7239tl9c4px5cjy7axx3axfad', [\n * new Coin('ujmes', 123123),\n * ]),\n * ];\n * const outputs: MsgMultiSend.Output[] = [\n * new MsgMultiSend.Output(\n * 'terra105rz2q5a4w7nv7239tl9c4px5cjy7axx3axfad',\n * {\n * ukrw: 123123,\n * }\n * ),\n * new MsgMultiSend.Output('terra105rz2q5a4w7nv7239tl9c4px5cjy7axx3axfga',\n * {\n * ujmes: 123123,\n * }\n * ),\n * ];\n * const multisend = new MsgMultiSend(inputs, outputs);\n * ```\n */\nvar MsgMultiSend = /** @class */ (function (_super) {\n __extends(MsgMultiSend, _super);\n /**\n * @param inputs inputs\n * @param outputs outputs\n */\n function MsgMultiSend(inputs, outputs) {\n var _this = _super.call(this) || this;\n _this.inputs = inputs;\n _this.outputs = outputs;\n return _this;\n }\n MsgMultiSend.fromAmino = function (data, _) {\n _;\n var _a = data.value, inputs = _a.inputs, outputs = _a.outputs;\n return new MsgMultiSend(inputs.map(function (i) { return MsgMultiSend.Input.fromAmino(i); }), outputs.map(function (o) { return MsgMultiSend.Output.fromAmino(o); }));\n };\n MsgMultiSend.prototype.toAmino = function (isClassic) {\n var _a = this, inputs = _a.inputs, outputs = _a.outputs;\n return {\n type: isClassic ? 'bank/MsgMultiSend' : 'cosmos-sdk/MsgMultiSend',\n value: {\n inputs: inputs.map(function (i) { return i.toAmino(); }),\n outputs: outputs.map(function (o) { return o.toAmino(); }),\n },\n };\n };\n MsgMultiSend.fromData = function (data, _) {\n _;\n var inputs = data.inputs, outputs = data.outputs;\n return new MsgMultiSend(inputs.map(function (i) { return MsgMultiSend.Input.fromData(i); }), outputs.map(function (o) { return MsgMultiSend.Output.fromData(o); }));\n };\n MsgMultiSend.prototype.toData = function (_) {\n _;\n var _a = this, inputs = _a.inputs, outputs = _a.outputs;\n return {\n '@type': '/cosmos.bank.v1beta1.MsgMultiSend',\n inputs: inputs.map(function (i) { return i.toData(); }),\n outputs: outputs.map(function (o) { return o.toData(); }),\n };\n };\n MsgMultiSend.fromProto = function (proto, _) {\n _;\n return new MsgMultiSend(proto.inputs.map(function (i) { return MsgMultiSend.Input.fromProto(i); }), proto.outputs.map(function (o) { return MsgMultiSend.Output.fromProto(o); }));\n };\n MsgMultiSend.prototype.toProto = function (_) {\n _;\n var _a = this, inputs = _a.inputs, outputs = _a.outputs;\n return tx_1.MsgMultiSend.fromPartial({\n inputs: inputs.map(function (i) { return i.toProto(); }),\n outputs: outputs.map(function (i) { return i.toProto(); }),\n });\n };\n MsgMultiSend.prototype.packAny = function (isClassic) {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.bank.v1beta1.MsgMultiSend',\n value: tx_1.MsgMultiSend.encode(this.toProto(isClassic)).finish(),\n });\n };\n MsgMultiSend.unpackAny = function (msgAny, isClassic) {\n return MsgMultiSend.fromProto(tx_1.MsgMultiSend.decode(msgAny.value), isClassic);\n };\n return MsgMultiSend;\n}(json_1.JSONSerializable));\nexports.MsgMultiSend = MsgMultiSend;\n(function (MsgMultiSend) {\n var Input = /** @class */ (function (_super) {\n __extends(Input, _super);\n /**\n * @param address address\n * @param coinsInput coins-compatible input\n */\n function Input(address, coinsInput) {\n var _this = _super.call(this) || this;\n _this.address = address;\n _this.coins = new Coins_1.Coins(coinsInput);\n return _this;\n }\n Input.prototype.toAmino = function (_) {\n _;\n var _a = this, address = _a.address, coins = _a.coins;\n return {\n address: address,\n coins: coins.toAmino(),\n };\n };\n Input.fromAmino = function (data, _) {\n _;\n var address = data.address, coins = data.coins;\n return new Input(address, Coins_1.Coins.fromAmino(coins));\n };\n Input.prototype.toData = function (_) {\n _;\n var _a = this, address = _a.address, coins = _a.coins;\n return {\n address: address,\n coins: coins.toData(),\n };\n };\n Input.fromData = function (data, _) {\n _;\n var address = data.address, coins = data.coins;\n return new Input(address, Coins_1.Coins.fromData(coins));\n };\n Input.prototype.toProto = function (_) {\n _;\n var _a = this, address = _a.address, coins = _a.coins;\n return bank_1.Input.fromPartial({\n address: address,\n coins: coins.toProto(),\n });\n };\n Input.fromProto = function (proto, _) {\n _;\n return new Input(proto.address, Coins_1.Coins.fromProto(proto.coins));\n };\n return Input;\n }(json_1.JSONSerializable));\n MsgMultiSend.Input = Input;\n var Output = /** @class */ (function (_super) {\n __extends(Output, _super);\n /**\n * @param address address\n * @param coinsOutput coins-compatible input\n */\n function Output(address, coinsInput) {\n var _this = _super.call(this) || this;\n _this.address = address;\n _this.coins = new Coins_1.Coins(coinsInput);\n return _this;\n }\n Output.prototype.toAmino = function (_) {\n _;\n var _a = this, address = _a.address, coins = _a.coins;\n return {\n address: address,\n coins: coins.toAmino(),\n };\n };\n Output.fromAmino = function (data, _) {\n _;\n var address = data.address, coins = data.coins;\n return new Output(address, Coins_1.Coins.fromAmino(coins));\n };\n Output.prototype.toData = function (_) {\n _;\n var _a = this, address = _a.address, coins = _a.coins;\n return {\n address: address,\n coins: coins.toData(),\n };\n };\n Output.fromData = function (data, _) {\n _;\n var address = data.address, coins = data.coins;\n return new Output(address, Coins_1.Coins.fromData(coins));\n };\n Output.prototype.toProto = function (_) {\n _;\n var _a = this, address = _a.address, coins = _a.coins;\n return bank_1.Output.fromPartial({\n address: address,\n coins: coins.toProto(),\n });\n };\n Output.fromProto = function (proto, _) {\n _;\n return new Output(proto.address, Coins_1.Coins.fromProto(proto.coins));\n };\n return Output;\n }(json_1.JSONSerializable));\n MsgMultiSend.Output = Output;\n})(MsgMultiSend = exports.MsgMultiSend || (exports.MsgMultiSend = {}));\nexports.MsgMultiSend = MsgMultiSend;\n//# sourceMappingURL=MsgMultiSend.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgSend = void 0;\nvar Coins_1 = require(\"../../Coins\");\nvar json_1 = require(\"../../../util/json\");\nvar any_1 = require(\"@terra-money/legacy.proto/google/protobuf/any\");\n// there's no difference between two protos\n//import { MsgSend as MsgSend_legacy_pb } from '@terra-money/legacy.proto/cosmos/bank/v1beta1/tx';\nvar tx_1 = require(\"@terra-money/terra.proto/cosmos/bank/v1beta1/tx\");\n/**\n * A basic message for sending [[Coins]] between Terra accounts.\n */\nvar MsgSend = /** @class */ (function (_super) {\n __extends(MsgSend, _super);\n /**\n * @param from_address sender's address\n * @param to_address recipient's address\n * @param amount value of the transaction\n */\n function MsgSend(from_address, to_address, amount) {\n var _this = _super.call(this) || this;\n _this.from_address = from_address;\n _this.to_address = to_address;\n _this.amount = new Coins_1.Coins(amount);\n return _this;\n }\n MsgSend.fromAmino = function (data, _) {\n _;\n var _a = data.value, from_address = _a.from_address, to_address = _a.to_address, amount = _a.amount;\n return new MsgSend(from_address, to_address, Coins_1.Coins.fromAmino(amount));\n };\n MsgSend.prototype.toAmino = function (isClassic) {\n var _a = this, from_address = _a.from_address, to_address = _a.to_address, amount = _a.amount;\n return {\n type: isClassic ? 'bank/MsgSend' : 'cosmos-sdk/MsgSend',\n value: {\n from_address: from_address,\n to_address: to_address,\n amount: amount.toAmino(),\n },\n };\n };\n MsgSend.fromData = function (data, isClassic) {\n isClassic;\n var from_address = data.from_address, to_address = data.to_address, amount = data.amount;\n return new MsgSend(from_address, to_address, Coins_1.Coins.fromData(amount));\n };\n MsgSend.prototype.toData = function (_) {\n _;\n var _a = this, from_address = _a.from_address, to_address = _a.to_address, amount = _a.amount;\n return {\n '@type': '/cosmos.bank.v1beta1.MsgSend',\n from_address: from_address,\n to_address: to_address,\n amount: amount.toData(),\n };\n };\n MsgSend.fromProto = function (proto, _) {\n _;\n return new MsgSend(proto.fromAddress, proto.toAddress, Coins_1.Coins.fromProto(proto.amount));\n };\n MsgSend.prototype.toProto = function (_) {\n _;\n var _a = this, from_address = _a.from_address, to_address = _a.to_address, amount = _a.amount;\n return tx_1.MsgSend.fromPartial({\n fromAddress: from_address,\n toAddress: to_address,\n amount: amount.toProto(),\n });\n };\n MsgSend.prototype.packAny = function (isClassic) {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.bank.v1beta1.MsgSend',\n value: tx_1.MsgSend.encode(this.toProto(isClassic)).finish(),\n });\n };\n MsgSend.unpackAny = function (msgAny, isClassic) {\n return MsgSend.fromProto(tx_1.MsgSend.decode(msgAny.value), isClassic);\n };\n return MsgSend;\n}(json_1.JSONSerializable));\nexports.MsgSend = MsgSend;\n//# sourceMappingURL=MsgSend.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./MsgSend\"), exports);\n__exportStar(require(\"./MsgMultiSend\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ValConsAddress = exports.ValPubKey = exports.ValAddress = exports.AccPubKey = exports.AccAddress = void 0;\nvar bech32_1 = require(\"bech32\");\nfunction checkPrefixAndLength(prefix, data, length) {\n try {\n var vals = bech32_1.bech32.decode(data);\n return vals.prefix === prefix && data.length == length;\n }\n catch (e) {\n return false;\n }\n}\nvar AccAddress;\n(function (AccAddress) {\n /**\n * Checks if a string is a valid Terra account address.\n *\n * @param data string to check\n */\n function validate(data) {\n // 44 for normal account and 64 for contract account\n return (checkPrefixAndLength('jmes', data, 44) ||\n checkPrefixAndLength('jmes', data, 64));\n }\n AccAddress.validate = validate;\n /**\n * Converts a validator address into an account address\n *\n * @param address validator address\n */\n function fromValAddress(address) {\n var vals = bech32_1.bech32.decode(address);\n return bech32_1.bech32.encode('jmes', vals.words);\n }\n AccAddress.fromValAddress = fromValAddress;\n})(AccAddress = exports.AccAddress || (exports.AccAddress = {}));\nvar AccPubKey;\n(function (AccPubKey) {\n /**\n * Checks if a string is a jmes account's public key\n * @param data string to check\n */\n function validate(data) {\n return checkPrefixAndLength('jmespub', data, 47);\n }\n AccPubKey.validate = validate;\n /**\n * Converts a jmes validator pubkey to an account pubkey.\n * @param address validator pubkey to convert\n */\n function fromAccAddress(address) {\n var vals = bech32_1.bech32.decode(address);\n return bech32_1.bech32.encode('jmespub', vals.words);\n }\n AccPubKey.fromAccAddress = fromAccAddress;\n})(AccPubKey = exports.AccPubKey || (exports.AccPubKey = {}));\nvar ValAddress;\n(function (ValAddress) {\n /**\n * Checks if a string is a jmes validator address.\n *\n * @param data string to check\n */\n function validate(data) {\n return checkPrefixAndLength('jmesvaloper', data, 51);\n }\n ValAddress.validate = validate;\n /**\n * Converts a jmes account address to a validator address.\n * @param address account address to convert\n */\n function fromAccAddress(address) {\n var vals = bech32_1.bech32.decode(address);\n return bech32_1.bech32.encode('jmesvaloper', vals.words);\n }\n ValAddress.fromAccAddress = fromAccAddress;\n})(ValAddress = exports.ValAddress || (exports.ValAddress = {}));\nvar ValPubKey;\n(function (ValPubKey) {\n /**\n * Checks if a string is a jmes validator pubkey\n * @param data string to check\n */\n function validate(data) {\n return checkPrefixAndLength('jmesvaloperpub', data, 54);\n }\n ValPubKey.validate = validate;\n /**\n * Converts a jmes validator operator address to a validator pubkey.\n * @param valAddress account pubkey\n */\n function fromValAddress(valAddress) {\n var vals = bech32_1.bech32.decode(valAddress);\n return bech32_1.bech32.encode('jmesvaloperpub', vals.words);\n }\n ValPubKey.fromValAddress = fromValAddress;\n})(ValPubKey = exports.ValPubKey || (exports.ValPubKey = {}));\nvar ValConsAddress;\n(function (ValConsAddress) {\n /**\n * Checks if a string is a jmes validator consensus address\n * @param data string to check\n */\n function validate(data) {\n return checkPrefixAndLength('jmesvalcons', data, 51);\n }\n ValConsAddress.validate = validate;\n})(ValConsAddress = exports.ValConsAddress || (exports.ValConsAddress = {}));\n//# sourceMappingURL=bech32.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgVerifyInvariant = void 0;\nvar json_1 = require(\"../../util/json\");\nvar any_1 = require(\"@terra-money/legacy.proto/google/protobuf/any\");\n//import { MsgVerifyInvariant as MsgVerifyInvariant_pb } from '@terra-money/legacy.proto/cosmos/crisis/v1beta1/tx';\nvar tx_1 = require(\"@terra-money/terra.proto/cosmos/crisis/v1beta1/tx\");\n/**\n * MsgVerifyInvariant represents a message to verify a particular invariance.\n */\nvar MsgVerifyInvariant = /** @class */ (function (_super) {\n __extends(MsgVerifyInvariant, _super);\n /**\n * @param sender sender's address\n * @param invariantModuleName module name to verify invariant\n * @param invariantRoute route to verify\n */\n function MsgVerifyInvariant(sender, invariantModuleName, invariantRoute) {\n var _this = _super.call(this) || this;\n _this.sender = sender;\n _this.invariantModuleName = invariantModuleName;\n _this.invariantRoute = invariantRoute;\n return _this;\n }\n MsgVerifyInvariant.fromAmino = function (data, _) {\n _;\n var _a = data.value, sender = _a.sender, invariantModuleName = _a.invariantModuleName, invariantRoute = _a.invariantRoute;\n return new MsgVerifyInvariant(sender, invariantModuleName, invariantRoute);\n };\n MsgVerifyInvariant.prototype.toAmino = function (_) {\n _;\n throw new Error('MsgVerifyInvarant is not allowed to send');\n };\n MsgVerifyInvariant.fromData = function (data, _) {\n _;\n var sender = data.sender, invariantModuleName = data.invariantModuleName, invariantRoute = data.invariantRoute;\n return new MsgVerifyInvariant(sender, invariantModuleName, invariantRoute);\n };\n MsgVerifyInvariant.prototype.toData = function (_) {\n _;\n var _a = this, sender = _a.sender, invariantModuleName = _a.invariantModuleName, invariantRoute = _a.invariantRoute;\n return {\n '@type': '/cosmos.crisis.v1beta1.MsgVerifyInvariant',\n sender: sender,\n invariantModuleName: invariantModuleName,\n invariantRoute: invariantRoute,\n };\n };\n MsgVerifyInvariant.fromProto = function (proto, _) {\n _;\n return new MsgVerifyInvariant(proto.sender, proto.invariantModuleName, proto.invariantRoute);\n };\n MsgVerifyInvariant.prototype.toProto = function (_) {\n _;\n throw new Error('MsgVerifyInvarant is not allowed to send');\n };\n MsgVerifyInvariant.prototype.packAny = function (isClassic) {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.crisis.v1beta1.MsgVerifyInvariant',\n value: tx_1.MsgVerifyInvariant.encode(this.toProto(isClassic)).finish(),\n });\n };\n MsgVerifyInvariant.unpackAny = function (msgAny, isClassic) {\n return MsgVerifyInvariant.fromProto(tx_1.MsgVerifyInvariant.decode(msgAny.value), isClassic);\n };\n return MsgVerifyInvariant;\n}(json_1.JSONSerializable));\nexports.MsgVerifyInvariant = MsgVerifyInvariant;\n//# sourceMappingURL=MsgVerifyInvariant.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./MsgVerifyInvariant\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgFundCommunityPool = void 0;\nvar json_1 = require(\"../../../util/json\");\nvar Coins_1 = require(\"../../Coins\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\n// there's no difference between two protos\n// import { MsgFundCommunityPool as MsgFundCommunityPool_legacy_pb } from '@terra-money/legacy.proto/cosmos/distribution/v1beta1/tx';\nvar tx_1 = require(\"@terra-money/terra.proto/cosmos/distribution/v1beta1/tx\");\nvar MsgFundCommunityPool = /** @class */ (function (_super) {\n __extends(MsgFundCommunityPool, _super);\n /**\n * @param depositor depositor's account address\n * @param amount coins to fund the community pool\n */\n function MsgFundCommunityPool(depositor, amount) {\n var _this = _super.call(this) || this;\n _this.depositor = depositor;\n _this.amount = new Coins_1.Coins(amount);\n return _this;\n }\n MsgFundCommunityPool.fromAmino = function (data, _) {\n var _a = data.value, depositor = _a.depositor, amount = _a.amount;\n _;\n return new MsgFundCommunityPool(depositor, Coins_1.Coins.fromAmino(amount));\n };\n MsgFundCommunityPool.prototype.toAmino = function (isClassic) {\n var _a = this, depositor = _a.depositor, amount = _a.amount;\n return {\n type: isClassic\n ? 'distribution/MsgFundCommunityPool'\n : 'cosmos-sdk/MsgFundCommunityPool',\n value: {\n depositor: depositor,\n amount: amount.toAmino(),\n },\n };\n };\n MsgFundCommunityPool.fromData = function (proto, _) {\n _;\n var depositor = proto.depositor, amount = proto.amount;\n return new MsgFundCommunityPool(depositor, Coins_1.Coins.fromData(amount));\n };\n MsgFundCommunityPool.prototype.toData = function (_) {\n _;\n var _a = this, depositor = _a.depositor, amount = _a.amount;\n return {\n '@type': '/cosmos.distribution.v1beta1.MsgFundCommunityPool',\n depositor: depositor,\n amount: amount.toData(),\n };\n };\n MsgFundCommunityPool.fromProto = function (proto, _) {\n _;\n return new MsgFundCommunityPool(proto.depositor, Coins_1.Coins.fromProto(proto.amount));\n };\n MsgFundCommunityPool.prototype.toProto = function (_) {\n _;\n var _a = this, depositor = _a.depositor, amount = _a.amount;\n return tx_1.MsgFundCommunityPool.fromPartial({\n amount: amount.toProto(),\n depositor: depositor,\n });\n };\n MsgFundCommunityPool.prototype.packAny = function (isClassic) {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.distribution.v1beta1.MsgFundCommunityPool',\n value: tx_1.MsgFundCommunityPool.encode(this.toProto(isClassic)).finish(),\n });\n };\n MsgFundCommunityPool.unpackAny = function (msgAny, isClassic) {\n return MsgFundCommunityPool.fromProto(tx_1.MsgFundCommunityPool.decode(msgAny.value), isClassic);\n };\n return MsgFundCommunityPool;\n}(json_1.JSONSerializable));\nexports.MsgFundCommunityPool = MsgFundCommunityPool;\n//# sourceMappingURL=MsgFundCommunityPool.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgSetWithdrawAddress = void 0;\nvar json_1 = require(\"../../../util/json\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\n// there's no difference between two protos\n// import { MsgSetWithdrawAddress as MsgSetWithdrawAddress_legacy_pb } from '@terra-money/legacy.proto/cosmos/distribution/v1beta1/tx';\nvar tx_1 = require(\"@terra-money/terra.proto/cosmos/distribution/v1beta1/tx\");\n/**\n * A validator can withdraw their outstanding commission rewards accrued from all\n * delegations (not including its self-delegation) into their associated account's\n * withdraw address.\n */\nvar MsgSetWithdrawAddress = /** @class */ (function (_super) {\n __extends(MsgSetWithdrawAddress, _super);\n /**\n * @param delegator_address delegator's account address\n * @param withdraw_address desired new withdraw address\n */\n function MsgSetWithdrawAddress(delegator_address, withdraw_address) {\n var _this = _super.call(this) || this;\n _this.delegator_address = delegator_address;\n _this.withdraw_address = withdraw_address;\n return _this;\n }\n MsgSetWithdrawAddress.fromAmino = function (data, _) {\n _;\n var _a = data.value, delegator_address = _a.delegator_address, withdraw_address = _a.withdraw_address;\n return new MsgSetWithdrawAddress(delegator_address, withdraw_address);\n };\n MsgSetWithdrawAddress.prototype.toAmino = function (isClassic) {\n var _a = this, delegator_address = _a.delegator_address, withdraw_address = _a.withdraw_address;\n return {\n type: isClassic\n ? 'distribution/MsgModifyWithdrawAddress'\n : 'cosmos-sdk/MsgModifyWithdrawAddress',\n value: {\n delegator_address: delegator_address,\n withdraw_address: withdraw_address,\n },\n };\n };\n MsgSetWithdrawAddress.fromData = function (data, _) {\n _;\n var delegator_address = data.delegator_address, withdraw_address = data.withdraw_address;\n return new MsgSetWithdrawAddress(delegator_address, withdraw_address);\n };\n MsgSetWithdrawAddress.prototype.toData = function (_) {\n _;\n var _a = this, delegator_address = _a.delegator_address, withdraw_address = _a.withdraw_address;\n return {\n '@type': '/cosmos.distribution.v1beta1.MsgSetWithdrawAddress',\n delegator_address: delegator_address,\n withdraw_address: withdraw_address,\n };\n };\n MsgSetWithdrawAddress.fromProto = function (proto, _) {\n _;\n return new MsgSetWithdrawAddress(proto.delegatorAddress, proto.withdrawAddress);\n };\n MsgSetWithdrawAddress.prototype.toProto = function (_) {\n _;\n var _a = this, delegator_address = _a.delegator_address, withdraw_address = _a.withdraw_address;\n return tx_1.MsgSetWithdrawAddress.fromPartial({\n delegatorAddress: delegator_address,\n withdrawAddress: withdraw_address,\n });\n };\n MsgSetWithdrawAddress.prototype.packAny = function (isClassic) {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.distribution.v1beta1.MsgSetWithdrawAddress',\n value: tx_1.MsgSetWithdrawAddress.encode(this.toProto(isClassic)).finish(),\n });\n };\n MsgSetWithdrawAddress.unpackAny = function (msgAny, isClassic) {\n return MsgSetWithdrawAddress.fromProto(tx_1.MsgSetWithdrawAddress.decode(msgAny.value), isClassic);\n };\n return MsgSetWithdrawAddress;\n}(json_1.JSONSerializable));\nexports.MsgSetWithdrawAddress = MsgSetWithdrawAddress;\n//# sourceMappingURL=MsgSetWithdrawAddress.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgWithdrawDelegatorReward = void 0;\nvar json_1 = require(\"../../../util/json\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\n// there's no difference between two protos\n// import { MsgWithdrawDelegatorReward as MsgWithdrawDelegatorReward_legacy_pb } from '@terra-money/legacy.proto/cosmos/distribution/v1beta1/tx';\nvar tx_1 = require(\"@terra-money/terra.proto/cosmos/distribution/v1beta1/tx\");\n/**\n * A delegator can withdraw currently outstanding rewards accrued from their delegation\n * toward a validator by submitting the following message.\n *\n * The rewards will be deposited to their Withdraw Address.\n */\nvar MsgWithdrawDelegatorReward = /** @class */ (function (_super) {\n __extends(MsgWithdrawDelegatorReward, _super);\n /**\n *\n * @param delegator_address delegator's account address\n * @param validator_address validator's operator address\n */\n function MsgWithdrawDelegatorReward(delegator_address, validator_address) {\n var _this = _super.call(this) || this;\n _this.delegator_address = delegator_address;\n _this.validator_address = validator_address;\n return _this;\n }\n MsgWithdrawDelegatorReward.fromAmino = function (data, _) {\n _;\n var _a = data.value, delegator_address = _a.delegator_address, validator_address = _a.validator_address;\n return new MsgWithdrawDelegatorReward(delegator_address, validator_address);\n };\n MsgWithdrawDelegatorReward.prototype.toAmino = function (isClassic) {\n var _a = this, delegator_address = _a.delegator_address, validator_address = _a.validator_address;\n return {\n type: isClassic\n ? 'distribution/MsgWithdrawDelegationReward'\n : 'cosmos-sdk/MsgWithdrawDelegationReward',\n value: {\n delegator_address: delegator_address,\n validator_address: validator_address,\n },\n };\n };\n MsgWithdrawDelegatorReward.fromData = function (proto, _) {\n _;\n var delegator_address = proto.delegator_address, validator_address = proto.validator_address;\n return new MsgWithdrawDelegatorReward(delegator_address, validator_address);\n };\n MsgWithdrawDelegatorReward.prototype.toData = function (_) {\n _;\n var _a = this, delegator_address = _a.delegator_address, validator_address = _a.validator_address;\n return {\n '@type': '/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward',\n delegator_address: delegator_address,\n validator_address: validator_address,\n };\n };\n MsgWithdrawDelegatorReward.fromProto = function (proto, _) {\n _;\n return new MsgWithdrawDelegatorReward(proto.delegatorAddress, proto.validatorAddress);\n };\n MsgWithdrawDelegatorReward.prototype.toProto = function (_) {\n _;\n var _a = this, delegator_address = _a.delegator_address, validator_address = _a.validator_address;\n return tx_1.MsgWithdrawDelegatorReward.fromPartial({\n delegatorAddress: delegator_address,\n validatorAddress: validator_address,\n });\n };\n MsgWithdrawDelegatorReward.prototype.packAny = function (isClassic) {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward',\n value: tx_1.MsgWithdrawDelegatorReward.encode(this.toProto(isClassic)).finish(),\n });\n };\n MsgWithdrawDelegatorReward.unpackAny = function (msgAny, isClassic) {\n return MsgWithdrawDelegatorReward.fromProto(tx_1.MsgWithdrawDelegatorReward.decode(msgAny.value), isClassic);\n };\n return MsgWithdrawDelegatorReward;\n}(json_1.JSONSerializable));\nexports.MsgWithdrawDelegatorReward = MsgWithdrawDelegatorReward;\n//# sourceMappingURL=MsgWithdrawDelegatorReward.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgWithdrawValidatorCommission = void 0;\nvar json_1 = require(\"../../../util/json\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar tx_1 = require(\"@terra-money/legacy.proto/cosmos/distribution/v1beta1/tx\");\n/**\n * A validator can withdraw their outstanding commission rewards accrued from all\n * delegations (not including its self-delegation) into their associated account's\n * withdraw address.\n */\nvar MsgWithdrawValidatorCommission = /** @class */ (function (_super) {\n __extends(MsgWithdrawValidatorCommission, _super);\n /**\n * @param validator_address validator's operator address\n */\n function MsgWithdrawValidatorCommission(validator_address) {\n var _this = _super.call(this) || this;\n _this.validator_address = validator_address;\n return _this;\n }\n MsgWithdrawValidatorCommission.fromAmino = function (data, _) {\n _;\n var validator_address = data.value.validator_address;\n return new MsgWithdrawValidatorCommission(validator_address);\n };\n MsgWithdrawValidatorCommission.prototype.toAmino = function (isClassic) {\n var validator_address = this.validator_address;\n return {\n type: isClassic\n ? 'distribution/MsgWithdrawValidatorCommission'\n : 'cosmos-sdk/MsgWithdrawValidatorCommission',\n value: {\n validator_address: validator_address,\n },\n };\n };\n MsgWithdrawValidatorCommission.fromData = function (proto, _) {\n _;\n var validator_address = proto.validator_address;\n return new MsgWithdrawValidatorCommission(validator_address);\n };\n MsgWithdrawValidatorCommission.prototype.toData = function (_) {\n _;\n var validator_address = this.validator_address;\n return {\n '@type': '/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission',\n validator_address: validator_address,\n };\n };\n MsgWithdrawValidatorCommission.fromProto = function (proto, _) {\n _;\n return new MsgWithdrawValidatorCommission(proto.validatorAddress);\n };\n MsgWithdrawValidatorCommission.prototype.toProto = function (_) {\n _;\n var validator_address = this.validator_address;\n return tx_1.MsgWithdrawValidatorCommission.fromPartial({\n validatorAddress: validator_address,\n });\n };\n MsgWithdrawValidatorCommission.prototype.packAny = function (isClassic) {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission',\n value: tx_1.MsgWithdrawValidatorCommission.encode(this.toProto(isClassic)).finish(),\n });\n };\n MsgWithdrawValidatorCommission.unpackAny = function (msgAny, isClassic) {\n return MsgWithdrawValidatorCommission.fromProto(tx_1.MsgWithdrawValidatorCommission.decode(msgAny.value), isClassic);\n };\n return MsgWithdrawValidatorCommission;\n}(json_1.JSONSerializable));\nexports.MsgWithdrawValidatorCommission = MsgWithdrawValidatorCommission;\n//# sourceMappingURL=MsgWithdrawValidatorCommission.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./MsgSetWithdrawAddress\"), exports);\n__exportStar(require(\"./MsgWithdrawDelegatorReward\"), exports);\n__exportStar(require(\"./MsgWithdrawValidatorCommission\"), exports);\n__exportStar(require(\"./MsgFundCommunityPool\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CommunityPoolSpendProposal = void 0;\nvar json_1 = require(\"../../../util/json\");\nvar Coins_1 = require(\"../../Coins\");\nvar any_1 = require(\"@terra-money/legacy.proto/google/protobuf/any\");\n// there's no difference between two protos\n// import { CommunityPoolSpendProposal as CommunityPoolSpendProposal_legacy_pb } from '@terra-money/legacy.proto/cosmos/distribution/v1beta1/distribution';\nvar distribution_1 = require(\"@terra-money/terra.proto/cosmos/distribution/v1beta1/distribution\");\n/**\n * Proposal that disburses funds from the Distribution module's community pool to the\n * specified recipient if passed.\n */\nvar CommunityPoolSpendProposal = /** @class */ (function (_super) {\n __extends(CommunityPoolSpendProposal, _super);\n /**\n * @param title proposal's title\n * @param description proposal's description\n * @param recipient recipient address\n * @param amount amount to give recipient\n */\n function CommunityPoolSpendProposal(title, description, recipient, amount) {\n var _this = _super.call(this) || this;\n _this.title = title;\n _this.description = description;\n _this.recipient = recipient;\n _this.amount = new Coins_1.Coins(amount);\n return _this;\n }\n CommunityPoolSpendProposal.fromAmino = function (data, _) {\n _;\n var _a = data.value, title = _a.title, description = _a.description, recipient = _a.recipient, amount = _a.amount;\n return new CommunityPoolSpendProposal(title, description, recipient, Coins_1.Coins.fromAmino(amount));\n };\n CommunityPoolSpendProposal.prototype.toAmino = function (isClassic) {\n var _a = this, title = _a.title, description = _a.description, recipient = _a.recipient, amount = _a.amount;\n return {\n type: isClassic\n ? 'distribution/CommunityPoolSpendProposal'\n : 'cosmos-sdk/CommunityPoolSpendProposal',\n value: {\n title: title,\n description: description,\n recipient: recipient,\n amount: amount.toAmino(),\n },\n };\n };\n CommunityPoolSpendProposal.fromData = function (data, _) {\n _;\n var title = data.title, description = data.description, recipient = data.recipient, amount = data.amount;\n return new CommunityPoolSpendProposal(title, description, recipient, Coins_1.Coins.fromData(amount));\n };\n CommunityPoolSpendProposal.prototype.toData = function (_) {\n _;\n var _a = this, title = _a.title, description = _a.description, recipient = _a.recipient, amount = _a.amount;\n return {\n '@type': '/cosmos.distribution.v1beta1.CommunityPoolSpendProposal',\n title: title,\n description: description,\n recipient: recipient,\n amount: amount.toData(),\n };\n };\n CommunityPoolSpendProposal.fromProto = function (proto, _) {\n _;\n return new CommunityPoolSpendProposal(proto.title, proto.description, proto.recipient, Coins_1.Coins.fromProto(proto.amount));\n };\n CommunityPoolSpendProposal.prototype.toProto = function (_) {\n _;\n var _a = this, title = _a.title, description = _a.description, recipient = _a.recipient, amount = _a.amount;\n return distribution_1.CommunityPoolSpendProposal.fromPartial({\n amount: amount.toProto(),\n description: description,\n recipient: recipient,\n title: title,\n });\n };\n CommunityPoolSpendProposal.prototype.packAny = function (isClassic) {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.distribution.v1beta1.CommunityPoolSpendProposal',\n value: distribution_1.CommunityPoolSpendProposal.encode(this.toProto(isClassic)).finish(),\n });\n };\n CommunityPoolSpendProposal.unpackAny = function (msgAny, isClassic) {\n return CommunityPoolSpendProposal.fromProto(distribution_1.CommunityPoolSpendProposal.decode(msgAny.value), isClassic);\n };\n return CommunityPoolSpendProposal;\n}(json_1.JSONSerializable));\nexports.CommunityPoolSpendProposal = CommunityPoolSpendProposal;\n//# sourceMappingURL=CommunityPoolSpendProposal.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./CommunityPoolSpendProposal\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AllowedMsgAllowance = void 0;\nvar json_1 = require(\"../../../util/json\");\nvar BasicAllowance_1 = require(\"./BasicAllowance\");\nvar PeriodicAllowance_1 = require(\"./PeriodicAllowance\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar feegrant_1 = require(\"@terra-money/terra.proto/cosmos/feegrant/v1beta1/feegrant\");\n/**\n * AllowedMsgAllowance creates allowance only for specified message types.\n */\nvar AllowedMsgAllowance = /** @class */ (function (_super) {\n __extends(AllowedMsgAllowance, _super);\n /**\n * @param allowance any of basic and periodic fee allowance.\n * @param allowed_messages the messages for which the grantee has the access.\n */\n function AllowedMsgAllowance(allowance, allowed_messages) {\n var _this = _super.call(this) || this;\n _this.allowance = allowance;\n _this.allowed_messages = allowed_messages;\n return _this;\n }\n AllowedMsgAllowance.fromAmino = function (data, isClassic) {\n var _a = data.value, allowance = _a.allowance, allowed_messages = _a.allowed_messages;\n return new AllowedMsgAllowance(allowance.type === 'feegrant/BasicAllowance' ||\n allowance.type === 'cosmos-sdk/BasicAllowance'\n ? BasicAllowance_1.BasicAllowance.fromAmino(allowance, isClassic)\n : PeriodicAllowance_1.PeriodicAllowance.fromAmino(allowance, isClassic), allowed_messages);\n };\n AllowedMsgAllowance.prototype.toAmino = function (isClassic) {\n var _a = this, allowance = _a.allowance, allowed_messages = _a.allowed_messages;\n return {\n type: isClassic\n ? 'feegrant/AllowedMsgAllowance'\n : 'cosmos-sdk/AllowedMsgAllowance',\n value: {\n allowance: allowance.toAmino(isClassic),\n allowed_messages: allowed_messages,\n },\n };\n };\n AllowedMsgAllowance.fromData = function (proto, _) {\n _;\n var allowance = proto.allowance, allowed_messages = proto.allowed_messages;\n return new AllowedMsgAllowance(allowance['@type'] === '/cosmos.feegrant.v1beta1.BasicAllowance'\n ? BasicAllowance_1.BasicAllowance.fromData(allowance)\n : PeriodicAllowance_1.PeriodicAllowance.fromData(allowance), allowed_messages);\n };\n AllowedMsgAllowance.prototype.toData = function (_) {\n _;\n var _a = this, allowance = _a.allowance, allowed_messages = _a.allowed_messages;\n return {\n '@type': '/cosmos.feegrant.v1beta1.AllowedMsgAllowance',\n allowance: allowance.toData(),\n allowed_messages: allowed_messages,\n };\n };\n AllowedMsgAllowance.fromProto = function (proto, isClassic) {\n var allowance = proto.allowance;\n return new AllowedMsgAllowance((allowance === null || allowance === void 0 ? void 0 : allowance.typeUrl) === '/cosmos.feegrant.v1beta1.BasicAllowance'\n ? BasicAllowance_1.BasicAllowance.unpackAny(allowance, isClassic)\n : PeriodicAllowance_1.PeriodicAllowance.unpackAny(allowance, isClassic), proto.allowedMessages);\n };\n AllowedMsgAllowance.prototype.toProto = function (isClassic) {\n var _a = this, allowance = _a.allowance, allowed_messages = _a.allowed_messages;\n return feegrant_1.AllowedMsgAllowance.fromPartial({\n allowance: allowance.packAny(isClassic),\n allowedMessages: allowed_messages,\n });\n };\n AllowedMsgAllowance.prototype.packAny = function (isClassic) {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.feegrant.v1beta1.AllowedMsgAllowance',\n value: feegrant_1.AllowedMsgAllowance.encode(this.toProto(isClassic)).finish(),\n });\n };\n AllowedMsgAllowance.unpackAny = function (msgAny, isClassic) {\n return AllowedMsgAllowance.fromProto(feegrant_1.AllowedMsgAllowance.decode(msgAny.value), isClassic);\n };\n return AllowedMsgAllowance;\n}(json_1.JSONSerializable));\nexports.AllowedMsgAllowance = AllowedMsgAllowance;\n//# sourceMappingURL=AllowedMsgAllowance.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BasicAllowance = void 0;\nvar json_1 = require(\"../../../util/json\");\nvar Coins_1 = require(\"../../Coins\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar feegrant_1 = require(\"@terra-money/terra.proto/cosmos/feegrant/v1beta1/feegrant\");\n/**\n * BasicAllowance implements Allowance with a one-time grant of tokens\n * that optionally expires. The grantee can use up to SpendLimit to cover fees.\n */\nvar BasicAllowance = /** @class */ (function (_super) {\n __extends(BasicAllowance, _super);\n /**\n * @param spend_limit spend_limit allowed to be spent as fee\n * @param expiration allowance's expiration\n */\n function BasicAllowance(spend_limit, expiration) {\n var _this = _super.call(this) || this;\n _this.expiration = expiration;\n var hasNotPositive = false;\n if (spend_limit) {\n _this.spend_limit = new Coins_1.Coins(spend_limit);\n _this.spend_limit.map(function (c) {\n // isPositive() from decimal.js returns true when the amount is 0.\n // but Coins.IsAllPositive() from cosmos-sdk will return false in same case.\n // so we use lessThanorEquenTo(0) instead of isPositive() == false\n if (c.amount.lessThanOrEqualTo(0)) {\n hasNotPositive = true;\n }\n });\n }\n if (spend_limit && hasNotPositive) {\n throw Error('spend_limit must be positive');\n }\n return _this;\n }\n BasicAllowance.fromAmino = function (data, _) {\n _;\n var _a = data.value, spend_limit = _a.spend_limit, expiration = _a.expiration;\n return new BasicAllowance(spend_limit ? Coins_1.Coins.fromAmino(spend_limit) : undefined, expiration ? new Date(expiration) : undefined);\n new BasicAllowance('');\n };\n BasicAllowance.prototype.toAmino = function (isClassic) {\n var _a = this, spend_limit = _a.spend_limit, expiration = _a.expiration;\n return {\n type: isClassic ? 'feegrant/BasicAllowance' : 'cosmos-sdk/BasicAllowance',\n value: {\n spend_limit: (spend_limit === null || spend_limit === void 0 ? void 0 : spend_limit.toAmino()) || undefined,\n expiration: (expiration === null || expiration === void 0 ? void 0 : expiration.toISOString().replace(/\\.000Z$/, 'Z')) || undefined,\n },\n };\n };\n BasicAllowance.fromData = function (proto, _) {\n _;\n var spend_limit = proto.spend_limit, expiration = proto.expiration;\n return new BasicAllowance(spend_limit ? Coins_1.Coins.fromData(spend_limit) : undefined, expiration ? new Date(expiration) : undefined);\n };\n BasicAllowance.prototype.toData = function (_) {\n _;\n var _a = this, spend_limit = _a.spend_limit, expiration = _a.expiration;\n return {\n '@type': '/cosmos.feegrant.v1beta1.BasicAllowance',\n spend_limit: (spend_limit === null || spend_limit === void 0 ? void 0 : spend_limit.toData()) || undefined,\n expiration: (expiration === null || expiration === void 0 ? void 0 : expiration.toISOString().replace(/\\.000Z$/, 'Z')) || undefined,\n };\n };\n BasicAllowance.fromProto = function (proto, _) {\n _;\n return new BasicAllowance(Coins_1.Coins.fromProto(proto.spendLimit), proto.expiration ? proto.expiration : undefined);\n };\n BasicAllowance.prototype.toProto = function (_) {\n _;\n var _a = this, spend_limit = _a.spend_limit, expiration = _a.expiration;\n return feegrant_1.BasicAllowance.fromPartial({\n expiration: expiration,\n spendLimit: (spend_limit === null || spend_limit === void 0 ? void 0 : spend_limit.toProto()) || undefined,\n });\n };\n BasicAllowance.prototype.packAny = function (isClassic) {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.feegrant.v1beta1.BasicAllowance',\n value: feegrant_1.BasicAllowance.encode(this.toProto(isClassic)).finish(),\n });\n };\n BasicAllowance.unpackAny = function (msgAny, isClassic) {\n return BasicAllowance.fromProto(feegrant_1.BasicAllowance.decode(msgAny.value), isClassic);\n };\n return BasicAllowance;\n}(json_1.JSONSerializable));\nexports.BasicAllowance = BasicAllowance;\n//# sourceMappingURL=BasicAllowance.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PeriodicAllowance = void 0;\nvar json_1 = require(\"../../../util/json\");\nvar Coins_1 = require(\"../../Coins\");\nvar BasicAllowance_1 = require(\"./BasicAllowance\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar feegrant_1 = require(\"@terra-money/terra.proto/cosmos/feegrant/v1beta1/feegrant\");\nvar Long = __importStar(require(\"long\"));\n/**\n * PeriodicAllowance extends Allowance to allow for both a maximum cap,\n * as well as a limit per time period.\n */\nvar PeriodicAllowance = /** @class */ (function (_super) {\n __extends(PeriodicAllowance, _super);\n /**\n * @param basic basic allowance given per period\n * @param period the time duration in which period_spend_limit coins can be spent before that allowance is reset\n * @param period_spend_limit the maximum number of coins that can be spent in the period\n * @param period_can_spend the number of coins left to be spent before the period_reset time\n * @param period_reset the time at which this period resets and a new one begins\n */\n function PeriodicAllowance(basic, period, period_spend_limit, period_can_spend, period_reset) {\n var _this = _super.call(this) || this;\n _this.basic = basic;\n _this.period = period;\n _this.period_reset = period_reset;\n _this.period_spend_limit = new Coins_1.Coins(period_spend_limit);\n _this.period_can_spend = new Coins_1.Coins(period_can_spend);\n return _this;\n }\n PeriodicAllowance.fromAmino = function (data, isClassic) {\n var _a = data.value, basic = _a.basic, period = _a.period, period_spend_limit = _a.period_spend_limit, period_can_spend = _a.period_can_spend, period_reset = _a.period_reset;\n return new PeriodicAllowance(BasicAllowance_1.BasicAllowance.fromAmino(basic, isClassic), Number.parseInt(period), Coins_1.Coins.fromAmino(period_spend_limit), Coins_1.Coins.fromAmino(period_can_spend), new Date(period_reset));\n };\n PeriodicAllowance.prototype.toAmino = function (isClassic) {\n var _a = this, basic = _a.basic, period = _a.period, period_spend_limit = _a.period_spend_limit, period_can_spend = _a.period_can_spend, period_reset = _a.period_reset;\n return {\n type: isClassic\n ? 'feegrant/PeriodicAllowance'\n : 'cosmos-sdk/PeriodicAllowance',\n value: {\n basic: basic.toAmino(isClassic),\n period: period.toString(),\n period_spend_limit: period_spend_limit.toAmino(),\n period_can_spend: period_can_spend.toAmino(),\n period_reset: period_reset.toISOString().replace(/\\.000Z$/, 'Z'),\n },\n };\n };\n PeriodicAllowance.fromData = function (proto, _) {\n _;\n var basic = proto.basic, period = proto.period, period_spend_limit = proto.period_spend_limit, period_can_spend = proto.period_can_spend, period_reset = proto.period_reset;\n return new PeriodicAllowance(BasicAllowance_1.BasicAllowance.fromData(basic), Number.parseInt(period), Coins_1.Coins.fromData(period_spend_limit), Coins_1.Coins.fromData(period_can_spend), new Date(period_reset));\n };\n PeriodicAllowance.prototype.toData = function (_) {\n _;\n var _a = this, basic = _a.basic, period = _a.period, period_spend_limit = _a.period_spend_limit, period_can_spend = _a.period_can_spend, period_reset = _a.period_reset;\n return {\n '@type': '/cosmos.feegrant.v1beta1.PeriodicAllowance',\n basic: basic.toData(),\n period: period.toString(),\n period_spend_limit: period_spend_limit.toData(),\n period_can_spend: period_can_spend.toData(),\n period_reset: period_reset.toISOString().replace(/\\.000Z$/, 'Z'),\n };\n };\n PeriodicAllowance.fromProto = function (proto, _) {\n var _a;\n _;\n return new PeriodicAllowance(BasicAllowance_1.BasicAllowance.fromProto(proto.basic), (_a = proto.period) === null || _a === void 0 ? void 0 : _a.seconds.toNumber(), Coins_1.Coins.fromProto(proto.periodSpendLimit), Coins_1.Coins.fromProto(proto.periodCanSpend), proto.periodReset);\n };\n PeriodicAllowance.prototype.toProto = function (_) {\n _;\n var _a = this, basic = _a.basic, period = _a.period, period_spend_limit = _a.period_spend_limit, period_can_spend = _a.period_can_spend, period_reset = _a.period_reset;\n return feegrant_1.PeriodicAllowance.fromPartial({\n basic: basic,\n period: { seconds: Long.fromNumber(period) },\n periodCanSpend: period_can_spend.toProto(),\n periodReset: period_reset,\n periodSpendLimit: period_spend_limit.toProto(),\n });\n };\n PeriodicAllowance.prototype.packAny = function (isClassic) {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.feegrant.v1beta1.PeriodicAllowance',\n value: feegrant_1.PeriodicAllowance.encode(this.toProto(isClassic)).finish(),\n });\n };\n PeriodicAllowance.unpackAny = function (msgAny, isClassic) {\n return PeriodicAllowance.fromProto(feegrant_1.PeriodicAllowance.decode(msgAny.value), isClassic);\n };\n return PeriodicAllowance;\n}(json_1.JSONSerializable));\nexports.PeriodicAllowance = PeriodicAllowance;\n//# sourceMappingURL=PeriodicAllowance.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Allowance = void 0;\nvar BasicAllowance_1 = require(\"./BasicAllowance\");\nvar PeriodicAllowance_1 = require(\"./PeriodicAllowance\");\nvar AllowedMsgAllowance_1 = require(\"./AllowedMsgAllowance\");\n__exportStar(require(\"./BasicAllowance\"), exports);\n__exportStar(require(\"./PeriodicAllowance\"), exports);\n__exportStar(require(\"./AllowedMsgAllowance\"), exports);\nvar Allowance;\n(function (Allowance) {\n function fromAmino(data, isClassic) {\n switch (data.type) {\n case 'feegrant/BasicAllowance':\n case 'cosmos-sdk/BasicAllowance':\n return BasicAllowance_1.BasicAllowance.fromAmino(data, isClassic);\n case 'feegrant/PeriodicAllowance':\n case 'cosmos-sdk/PeriodicAllowance':\n return PeriodicAllowance_1.PeriodicAllowance.fromAmino(data, isClassic);\n case 'feegrant/AllowedMsgAllowance':\n case 'cosmos-sdk/AllowedMsgAllowance':\n return AllowedMsgAllowance_1.AllowedMsgAllowance.fromAmino(data, isClassic);\n }\n }\n Allowance.fromAmino = fromAmino;\n function fromData(data, isClassic) {\n switch (data['@type']) {\n case '/cosmos.feegrant.v1beta1.PeriodicAllowance':\n return PeriodicAllowance_1.PeriodicAllowance.fromData(data, isClassic);\n case '/cosmos.feegrant.v1beta1.BasicAllowance':\n return BasicAllowance_1.BasicAllowance.fromData(data, isClassic);\n case '/cosmos.feegrant.v1beta1.AllowedMsgAllowance':\n return AllowedMsgAllowance_1.AllowedMsgAllowance.fromData(data, isClassic);\n }\n }\n Allowance.fromData = fromData;\n function fromProto(proto, isClassic) {\n switch (proto.typeUrl) {\n case '/cosmos.feegrant.v1beta1.PeriodicAllowance':\n return PeriodicAllowance_1.PeriodicAllowance.unpackAny(proto, isClassic);\n case '/cosmos.feegrant.v1beta1.BasicAllowance':\n return BasicAllowance_1.BasicAllowance.unpackAny(proto, isClassic);\n case '/cosmos.feegrant.v1beta1.AllowedMsgAllowance':\n return AllowedMsgAllowance_1.AllowedMsgAllowance.unpackAny(proto, isClassic);\n }\n throw new Error(\"not supported allowance \".concat(proto.typeUrl));\n }\n Allowance.fromProto = fromProto;\n})(Allowance = exports.Allowance || (exports.Allowance = {}));\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgGrantAllowance = void 0;\nvar json_1 = require(\"../../../util/json\");\nvar allowances_1 = require(\"../allowances\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar tx_1 = require(\"@terra-money/terra.proto/cosmos/feegrant/v1beta1/tx\");\n/**\n * MsgGrantAllowance adds permission for Grantee to spend up to Allowance\n * of fees from the account of Granter.\n */\nvar MsgGrantAllowance = /** @class */ (function (_super) {\n __extends(MsgGrantAllowance, _super);\n /**\n *\n * @param granter granter's account address\n * @param grantee grantee's account address\n * @param allowance allowance willing to grant\n */\n function MsgGrantAllowance(granter, grantee, allowance) {\n var _this = _super.call(this) || this;\n _this.granter = granter;\n _this.grantee = grantee;\n _this.allowance = allowance;\n return _this;\n }\n MsgGrantAllowance.fromAmino = function (data, isClassic) {\n var _a = data.value, granter = _a.granter, grantee = _a.grantee, allowance = _a.allowance;\n return new MsgGrantAllowance(granter, grantee, allowances_1.Allowance.fromAmino(allowance, isClassic));\n };\n MsgGrantAllowance.prototype.toAmino = function (isClassic) {\n var _a = this, granter = _a.granter, grantee = _a.grantee, allowance = _a.allowance;\n return {\n type: isClassic\n ? 'feegrant/MsgGrantAllowance'\n : 'cosmos-sdk/MsgGrantAllowance',\n value: {\n granter: granter,\n grantee: grantee,\n allowance: allowance.toAmino(isClassic),\n },\n };\n };\n MsgGrantAllowance.fromData = function (data, isClassic) {\n var granter = data.granter, grantee = data.grantee, allowance = data.allowance;\n return new MsgGrantAllowance(granter, grantee, allowances_1.Allowance.fromData(allowance, isClassic));\n };\n MsgGrantAllowance.prototype.toData = function (isClassic) {\n var _a = this, granter = _a.granter, grantee = _a.grantee, allowance = _a.allowance;\n return {\n '@type': '/cosmos.feegrant.v1beta1.MsgGrantAllowance',\n granter: granter,\n grantee: grantee,\n allowance: allowance.toData(isClassic),\n };\n };\n MsgGrantAllowance.fromProto = function (proto, isClassic) {\n return new MsgGrantAllowance(proto.granter, proto.grantee, allowances_1.Allowance.fromProto(proto.allowance, isClassic));\n };\n MsgGrantAllowance.prototype.toProto = function (isClassic) {\n var _a = this, granter = _a.granter, grantee = _a.grantee, allowance = _a.allowance;\n return tx_1.MsgGrantAllowance.fromPartial({\n allowance: allowance.packAny(isClassic),\n grantee: grantee,\n granter: granter,\n });\n };\n MsgGrantAllowance.prototype.packAny = function (isClassic) {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.feegrant.v1beta1.MsgGrantAllowance',\n value: tx_1.MsgGrantAllowance.encode(this.toProto(isClassic)).finish(),\n });\n };\n MsgGrantAllowance.unpackAny = function (msgAny, isClassic) {\n return MsgGrantAllowance.fromProto(tx_1.MsgGrantAllowance.decode(msgAny.value), isClassic);\n };\n return MsgGrantAllowance;\n}(json_1.JSONSerializable));\nexports.MsgGrantAllowance = MsgGrantAllowance;\n//# sourceMappingURL=MsgGrantAllowance.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgRevokeAllowance = void 0;\nvar json_1 = require(\"../../../util/json\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar tx_1 = require(\"@terra-money/terra.proto/cosmos/feegrant/v1beta1/tx\");\n/**\n * MsgRevokeAllowance remove permission any existing Allowance from Granter to Grantee.\n */\nvar MsgRevokeAllowance = /** @class */ (function (_super) {\n __extends(MsgRevokeAllowance, _super);\n /**\n *\n * @param granter granter's account address\n * @param grantee grantee's account address\n */\n function MsgRevokeAllowance(granter, grantee) {\n var _this = _super.call(this) || this;\n _this.granter = granter;\n _this.grantee = grantee;\n return _this;\n }\n MsgRevokeAllowance.fromAmino = function (data, _) {\n _;\n var _a = data.value, granter = _a.granter, grantee = _a.grantee;\n return new MsgRevokeAllowance(granter, grantee);\n };\n MsgRevokeAllowance.prototype.toAmino = function (isClassic) {\n var _a = this, granter = _a.granter, grantee = _a.grantee;\n return {\n type: isClassic\n ? 'feegrant/MsgRevokeAllowance'\n : 'cosmos-sdk/MsgRevokeAllowance',\n value: {\n granter: granter,\n grantee: grantee,\n },\n };\n };\n MsgRevokeAllowance.fromData = function (proto, _) {\n _;\n var granter = proto.granter, grantee = proto.grantee;\n return new MsgRevokeAllowance(granter, grantee);\n };\n MsgRevokeAllowance.prototype.toData = function (_) {\n _;\n var _a = this, granter = _a.granter, grantee = _a.grantee;\n return {\n '@type': '/cosmos.feegrant.v1beta1.MsgRevokeAllowance',\n granter: granter,\n grantee: grantee,\n };\n };\n MsgRevokeAllowance.fromProto = function (proto, _) {\n _;\n return new MsgRevokeAllowance(proto.granter, proto.grantee);\n };\n MsgRevokeAllowance.prototype.toProto = function (_) {\n _;\n var _a = this, granter = _a.granter, grantee = _a.grantee;\n return tx_1.MsgRevokeAllowance.fromPartial({\n grantee: grantee,\n granter: granter,\n });\n };\n MsgRevokeAllowance.prototype.packAny = function (isClassic) {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.feegrant.v1beta1.MsgRevokeAllowance',\n value: tx_1.MsgRevokeAllowance.encode(this.toProto(isClassic)).finish(),\n });\n };\n MsgRevokeAllowance.unpackAny = function (msgAny, isClassic) {\n return MsgRevokeAllowance.fromProto(tx_1.MsgRevokeAllowance.decode(msgAny.value), isClassic);\n };\n return MsgRevokeAllowance;\n}(json_1.JSONSerializable));\nexports.MsgRevokeAllowance = MsgRevokeAllowance;\n//# sourceMappingURL=MsgRevokeAllowance.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./MsgGrantAllowance\"), exports);\n__exportStar(require(\"./MsgRevokeAllowance\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Proposal = void 0;\nvar Coins_1 = require(\"../Coins\");\nvar numeric_1 = require(\"../numeric\");\nvar json_1 = require(\"../../util/json\");\nvar proposals_1 = require(\"../distribution/proposals\");\nvar proposals_2 = require(\"../params/proposals\");\nvar proposals_3 = require(\"../ibc/proposals\");\nvar proposals_4 = require(\"./proposals\");\nvar proposals_5 = require(\"../upgrade/proposals\");\nvar proposals_6 = require(\"../wasm/proposals\");\nvar gov_1 = require(\"@terra-money/terra.proto/cosmos/gov/v1beta1/gov\");\nvar Long = __importStar(require(\"long\"));\n/**\n * Stores information pertaining to a submitted proposal, such as its status and time of\n * the voting period\n */\nvar Proposal = /** @class */ (function (_super) {\n __extends(Proposal, _super);\n /**\n *\n * @param id proposal's ID\n * @param content content of the proposal\n * @param status proposal's status\n * @param final_tally_result tally result\n * @param submit_time time proposal was submitted and deposit period started\n * @param deposit_end_time time deposit period will end\n * @param total_deposit amount of coins deposited by all users\n * @param voting_start_time time voting period will start\n * @param voting_end_time time voting period will end\n */\n function Proposal(id, content, status, final_tally_result, submit_time, deposit_end_time, total_deposit, voting_start_time, voting_end_time) {\n var _this = _super.call(this) || this;\n _this.id = id;\n _this.content = content;\n _this.status = status;\n _this.final_tally_result = final_tally_result;\n _this.submit_time = submit_time;\n _this.deposit_end_time = deposit_end_time;\n _this.total_deposit = total_deposit;\n _this.voting_start_time = voting_start_time;\n _this.voting_end_time = voting_end_time;\n return _this;\n }\n Proposal.fromAmino = function (data, isClassic) {\n var id = data.id, content = data.content, status = data.status, final_tally_result = data.final_tally_result, submit_time = data.submit_time, deposit_end_time = data.deposit_end_time, total_deposit = data.total_deposit, voting_start_time = data.voting_start_time, voting_end_time = data.voting_end_time;\n return new Proposal(Number.parseInt(id), Proposal.Content.fromAmino(content, isClassic), status, {\n yes: new numeric_1.Int(final_tally_result.yes || 0),\n no: new numeric_1.Int(final_tally_result.no || 0),\n abstain: new numeric_1.Int(final_tally_result.abstain || 0),\n no_with_veto: new numeric_1.Int(final_tally_result.no_with_veto || 0),\n }, new Date(submit_time), new Date(deposit_end_time), Coins_1.Coins.fromAmino(total_deposit), new Date(voting_start_time), new Date(voting_end_time));\n };\n Proposal.prototype.toAmino = function (isClassic) {\n var _a = this, status = _a.status, final_tally_result = _a.final_tally_result;\n return {\n id: this.id.toFixed(),\n content: this.content.toAmino(isClassic),\n status: status,\n final_tally_result: {\n yes: final_tally_result.yes.toFixed(),\n no: final_tally_result.no.toFixed(),\n abstain: final_tally_result.abstain.toFixed(),\n no_with_veto: final_tally_result.no_with_veto.toFixed(),\n },\n submit_time: this.submit_time.toISOString(),\n deposit_end_time: this.deposit_end_time.toISOString(),\n total_deposit: this.total_deposit.toAmino(),\n voting_start_time: this.voting_start_time.toISOString(),\n voting_end_time: this.voting_end_time.toISOString(),\n };\n };\n Proposal.fromData = function (data, isClassic) {\n var proposal_id = data.proposal_id, content = data.content, status = data.status, final_tally_result = data.final_tally_result, submit_time = data.submit_time, deposit_end_time = data.deposit_end_time, total_deposit = data.total_deposit, voting_start_time = data.voting_start_time, voting_end_time = data.voting_end_time;\n return new Proposal(Number.parseInt(proposal_id), Proposal.Content.fromData(content, isClassic), (0, gov_1.proposalStatusFromJSON)(status), {\n yes: new numeric_1.Int((final_tally_result === null || final_tally_result === void 0 ? void 0 : final_tally_result.yes) || 0),\n no: new numeric_1.Int((final_tally_result === null || final_tally_result === void 0 ? void 0 : final_tally_result.no) || 0),\n abstain: new numeric_1.Int((final_tally_result === null || final_tally_result === void 0 ? void 0 : final_tally_result.abstain) || 0),\n no_with_veto: new numeric_1.Int((final_tally_result === null || final_tally_result === void 0 ? void 0 : final_tally_result.no_with_veto) || 0),\n }, new Date(submit_time), new Date(deposit_end_time), Coins_1.Coins.fromData(total_deposit), new Date(voting_start_time), new Date(voting_end_time));\n };\n Proposal.prototype.toData = function (isClassic) {\n var _a = this, status = _a.status, final_tally_result = _a.final_tally_result;\n return {\n proposal_id: this.id.toFixed(),\n content: this.content.toData(isClassic),\n status: (0, gov_1.proposalStatusToJSON)(status),\n final_tally_result: {\n yes: final_tally_result.yes.toString(),\n no: final_tally_result.no.toString(),\n abstain: final_tally_result.abstain.toString(),\n no_with_veto: final_tally_result.no_with_veto.toString(),\n },\n submit_time: this.submit_time.toISOString(),\n deposit_end_time: this.deposit_end_time.toISOString(),\n total_deposit: this.total_deposit.toData(),\n voting_start_time: this.voting_start_time.toISOString(),\n voting_end_time: this.voting_end_time.toISOString(),\n };\n };\n Proposal.fromProto = function (data, isClassic) {\n var id = data.proposalId;\n var content = data.content;\n var status = data.status;\n var final_tally_result = data.finalTallyResult;\n var submit_time = data.submitTime;\n var deposit_end_time = data.depositEndTime;\n var total_deposit = data.totalDeposit;\n var voting_start_time = data.votingStartTime;\n var voting_end_time = data.votingEndTime;\n return new Proposal(id.toNumber(), Proposal.Content.fromProto(content, isClassic), status, {\n yes: new numeric_1.Int((final_tally_result === null || final_tally_result === void 0 ? void 0 : final_tally_result.yes) || 0),\n no: new numeric_1.Int((final_tally_result === null || final_tally_result === void 0 ? void 0 : final_tally_result.no) || 0),\n abstain: new numeric_1.Int((final_tally_result === null || final_tally_result === void 0 ? void 0 : final_tally_result.abstain) || 0),\n no_with_veto: new numeric_1.Int((final_tally_result === null || final_tally_result === void 0 ? void 0 : final_tally_result.noWithVeto) || 0),\n }, submit_time, deposit_end_time, Coins_1.Coins.fromProto(total_deposit), voting_start_time, voting_end_time);\n };\n Proposal.prototype.toProto = function (isClassic) {\n var _a = this, status = _a.status, final_tally_result = _a.final_tally_result;\n var ftr;\n if (final_tally_result) {\n ftr = gov_1.TallyResult.fromPartial({\n yes: final_tally_result.yes.toString(),\n no: final_tally_result.no.toString(),\n abstain: final_tally_result.abstain.toString(),\n noWithVeto: final_tally_result.no_with_veto.toString(),\n });\n }\n return gov_1.Proposal.fromPartial({\n proposalId: Long.fromNumber(this.id),\n content: this.content.packAny(isClassic),\n status: status,\n finalTallyResult: ftr,\n submitTime: this.submit_time,\n depositEndTime: this.deposit_end_time,\n totalDeposit: this.total_deposit.toProto(),\n votingEndTime: this.voting_end_time,\n votingStartTime: this.voting_start_time,\n });\n };\n return Proposal;\n}(json_1.JSONSerializable));\nexports.Proposal = Proposal;\n(function (Proposal) {\n Proposal.Status = gov_1.ProposalStatus;\n var Content;\n (function (Content) {\n function fromAmino(amino, isClassic) {\n switch (amino.type) {\n case 'gov/TextProposal':\n case 'cosmos-sdk/TextProposal':\n return proposals_4.TextProposal.fromAmino(amino, isClassic);\n case 'distribution/CommunityPoolSpendProposal':\n case 'cosmos-sdk/CommunityPoolSpendProposal':\n return proposals_1.CommunityPoolSpendProposal.fromAmino(amino, isClassic);\n case 'params/ParameterChangeProposal':\n case 'cosmos-sdk/ParameterChangeProposal':\n return proposals_2.ParameterChangeProposal.fromAmino(amino, isClassic);\n case 'upgrade/SoftwareUpgradeProposal':\n case 'cosmos-sdk/SoftwareUpgradeProposal':\n return proposals_5.SoftwareUpgradeProposal.fromAmino(amino, isClassic);\n case 'upgrade/CancelSoftwareUpgradeProposal':\n case 'cosmos-sdk/CancelSoftwareUpgradeProposal':\n return proposals_5.CancelSoftwareUpgradeProposal.fromAmino(amino, isClassic);\n case 'ibc/ClientUpdateProposal':\n return proposals_3.ClientUpdateProposal.fromAmino(amino, isClassic);\n case 'wasm/ClearAdminProposal':\n return proposals_6.ClearAdminProposal.fromAmino(amino, isClassic);\n case 'wasm/ExecuteContractProposal':\n return proposals_6.ExecuteContractProposal.fromAmino(amino, isClassic);\n case 'wasm/InstantiateContractProposal':\n return proposals_6.InstantiateContractProposal.fromAmino(amino, isClassic);\n case 'wasm/MigrateContractProposal':\n return proposals_6.MigrateContractProposal.fromAmino(amino, isClassic);\n case 'wasm/PinCodesProposal':\n return proposals_6.PinCodesProposal.fromAmino(amino, isClassic);\n case 'wasm/StoreCodeProposal':\n return proposals_6.StoreCodeProposal.fromAmino(amino, isClassic);\n case 'wasm/SudoContractProposal':\n return proposals_6.SudoContractProposal.fromAmino(amino, isClassic);\n case 'wasm/UnpinCodesProposal':\n return proposals_6.UnpinCodesProposal.fromAmino(amino, isClassic);\n case 'wasm/UpdateAdminProposal':\n return proposals_6.UpdateAdminProposal.fromAmino(amino, isClassic);\n case 'wasm/UpdateInstantiateConfigProposal':\n return proposals_6.UpdateInstantiateConfigProposal.fromAmino(amino, isClassic);\n }\n }\n Content.fromAmino = fromAmino;\n function fromData(data, isClassic) {\n switch (data['@type']) {\n case '/cosmos.gov.v1beta1.TextProposal':\n return proposals_4.TextProposal.fromData(data, isClassic);\n case '/cosmos.distribution.v1beta1.CommunityPoolSpendProposal':\n return proposals_1.CommunityPoolSpendProposal.fromData(data, isClassic);\n case '/cosmos.params.v1beta1.ParameterChangeProposal':\n return proposals_2.ParameterChangeProposal.fromData(data, isClassic);\n case '/cosmos.upgrade.v1beta1.SoftwareUpgradeProposal':\n return proposals_5.SoftwareUpgradeProposal.fromData(data, isClassic);\n case '/cosmos.upgrade.v1beta1.CancelSoftwareUpgradeProposal':\n return proposals_5.CancelSoftwareUpgradeProposal.fromData(data, isClassic);\n case '/ibc.core.client.v1.ClientUpdateProposal':\n return proposals_3.ClientUpdateProposal.fromData(data, isClassic);\n case '/cosmwasm.wasm.v1.ClearAdminProposal':\n return proposals_6.ClearAdminProposal.fromData(data, isClassic);\n case '/cosmwasm.wasm.v1.ExecuteContractProposal':\n return proposals_6.ExecuteContractProposal.fromData(data, isClassic);\n case '/cosmwasm.wasm.v1.InstantiateContractProposal':\n return proposals_6.InstantiateContractProposal.fromData(data, isClassic);\n case '/cosmwasm.wasm.v1.MigrateContractProposal':\n return proposals_6.MigrateContractProposal.fromData(data, isClassic);\n case '/cosmwasm.wasm.v1.PinCodesProposal':\n return proposals_6.PinCodesProposal.fromData(data, isClassic);\n case '/cosmwasm.wasm.v1.StoreCodeProposal':\n return proposals_6.StoreCodeProposal.fromData(data, isClassic);\n case '/cosmwasm.wasm.v1.SudoContractProposal':\n return proposals_6.SudoContractProposal.fromData(data, isClassic);\n case '/cosmwasm.wasm.v1.UnpinCodesProposal':\n return proposals_6.UnpinCodesProposal.fromData(data, isClassic);\n case '/cosmwasm.wasm.v1.UpdateAdminProposal':\n return proposals_6.UpdateAdminProposal.fromData(data, isClassic);\n case '/cosmwasm.wasm.v1.UpdateInstantiateConfigProposal':\n return proposals_6.UpdateInstantiateConfigProposal.fromData(data, isClassic);\n }\n }\n Content.fromData = fromData;\n function fromProto(anyProto, isClassic) {\n var typeUrl = anyProto.typeUrl;\n switch (typeUrl) {\n case '/cosmos.gov.v1beta1.TextProposal':\n return proposals_4.TextProposal.unpackAny(anyProto, isClassic);\n case '/cosmos.distribution.v1beta1.CommunityPoolSpendProposal':\n return proposals_1.CommunityPoolSpendProposal.unpackAny(anyProto, isClassic);\n case '/cosmos.params.v1beta1.ParameterChangeProposal':\n return proposals_2.ParameterChangeProposal.unpackAny(anyProto, isClassic);\n case '/cosmos.upgrade.v1beta1.SoftwareUpgradeProposal':\n return proposals_5.SoftwareUpgradeProposal.unpackAny(anyProto, isClassic);\n case '/cosmos.upgrade.v1beta1.CancelSoftwareUpgradeProposal':\n return proposals_5.CancelSoftwareUpgradeProposal.unpackAny(anyProto, isClassic);\n case '/ibc.core.client.v1.ClientUpdateProposal':\n return proposals_3.ClientUpdateProposal.unpackAny(anyProto, isClassic);\n case '/cosmwasm.wasm.v1.ClearAdminProposal':\n return proposals_6.ClearAdminProposal.unpackAny(anyProto, isClassic);\n case '/cosmwasm.wasm.v1.ExecuteContractProposal':\n return proposals_6.ExecuteContractProposal.unpackAny(anyProto, isClassic);\n case '/cosmwasm.wasm.v1.InstantiateContractProposal':\n return proposals_6.InstantiateContractProposal.unpackAny(anyProto, isClassic);\n case '/cosmwasm.wasm.v1.MigrateContractProposal':\n return proposals_6.MigrateContractProposal.unpackAny(anyProto, isClassic);\n case '/cosmwasm.wasm.v1.PinCodesProposal':\n return proposals_6.PinCodesProposal.unpackAny(anyProto, isClassic);\n case '/cosmwasm.wasm.v1.StoreCodeProposal':\n return proposals_6.StoreCodeProposal.unpackAny(anyProto, isClassic);\n case '/cosmwasm.wasm.v1.SudoContractProposal':\n return proposals_6.SudoContractProposal.unpackAny(anyProto, isClassic);\n case '/cosmwasm.wasm.v1.UnpinCodesProposal':\n return proposals_6.UnpinCodesProposal.unpackAny(anyProto, isClassic);\n case '/cosmwasm.wasm.v1.UpdateAdminProposal':\n return proposals_6.UpdateAdminProposal.unpackAny(anyProto, isClassic);\n case '/cosmwasm.wasm.v1.UpdateInstantiateConfigProposal':\n return proposals_6.UpdateInstantiateConfigProposal.unpackAny(anyProto, isClassic);\n }\n throw \"Proposal content \".concat(typeUrl, \" not recognized\");\n }\n Content.fromProto = fromProto;\n })(Content = Proposal.Content || (Proposal.Content = {}));\n})(Proposal = exports.Proposal || (exports.Proposal = {}));\nexports.Proposal = Proposal;\n//# sourceMappingURL=Proposal.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WeightedVoteOption = exports.Vote = void 0;\nvar json_1 = require(\"../../util/json\");\nvar gov_1 = require(\"@terra-money/terra.proto/cosmos/gov/v1beta1/gov\");\nvar numeric_1 = require(\"../numeric\");\nvar Long = __importStar(require(\"long\"));\n/**\n * Stores vote information for a proposal\n */\nvar Vote = /** @class */ (function (_super) {\n __extends(Vote, _super);\n /**\n * @param proposal_id ID of proposal to vote on\n * @param voter voter's account address\n * @param options voting options\n */\n function Vote(proposal_id, voter, options) {\n var _this = _super.call(this) || this;\n _this.proposal_id = proposal_id;\n _this.voter = voter;\n _this.options = options;\n _this.Option = gov_1.VoteOption;\n return _this;\n }\n Vote.fromAmino = function (data, _) {\n _;\n var proposal_id = data.proposal_id, voter = data.voter, options = data.options;\n return new Vote(Number.parseInt(proposal_id), voter, options.map(function (v) { return WeightedVoteOption.fromAmino(v); }));\n };\n Vote.prototype.toAmino = function (_) {\n _;\n var _a = this, proposal_id = _a.proposal_id, voter = _a.voter, options = _a.options;\n var res = {\n proposal_id: proposal_id.toFixed(),\n voter: voter,\n options: options.map(function (v) { return v.toAmino(); }),\n };\n return res;\n };\n Vote.fromData = function (data, _) {\n _;\n var proposal_id = data.proposal_id, voter = data.voter, options = data.options;\n return new Vote(Number.parseInt(proposal_id), voter, options.map(function (v) { return WeightedVoteOption.fromData(v); }));\n };\n Vote.prototype.toData = function (_) {\n _;\n var _a = this, proposal_id = _a.proposal_id, voter = _a.voter, options = _a.options;\n var res = {\n proposal_id: proposal_id.toFixed(),\n voter: voter,\n options: options.map(function (v) { return v.toData(); }),\n };\n return res;\n };\n Vote.fromProto = function (proto, _) {\n _;\n return new Vote(proto.proposalId.toNumber(), proto.voter, proto.options.map(function (o) { return WeightedVoteOption.fromProto(o); }));\n };\n Vote.prototype.toProto = function (_) {\n _;\n var _a = this, proposal_id = _a.proposal_id, voter = _a.voter, options = _a.options;\n return gov_1.Vote.fromPartial({\n options: options.map(function (o) { return o.toProto(); }),\n proposalId: Long.fromNumber(proposal_id),\n voter: voter,\n });\n };\n return Vote;\n}(json_1.JSONSerializable));\nexports.Vote = Vote;\n(function (Vote) {\n Vote.Option = gov_1.VoteOption;\n})(Vote = exports.Vote || (exports.Vote = {}));\nexports.Vote = Vote;\nvar WeightedVoteOption = /** @class */ (function (_super) {\n __extends(WeightedVoteOption, _super);\n function WeightedVoteOption(option, weight) {\n var _this = _super.call(this) || this;\n _this.option = option;\n _this.weight = new numeric_1.Dec(weight);\n return _this;\n }\n WeightedVoteOption.fromAmino = function (data, _) {\n _;\n var option = data.option, weight = data.weight;\n return new WeightedVoteOption(option, weight);\n };\n WeightedVoteOption.prototype.toAmino = function (_) {\n _;\n var _a = this, option = _a.option, weight = _a.weight;\n return {\n option: option,\n weight: weight.toString(),\n };\n };\n WeightedVoteOption.fromData = function (data, _) {\n _;\n var option = data.option, weight = data.weight;\n return new WeightedVoteOption(option, weight);\n };\n WeightedVoteOption.prototype.toData = function (_) {\n _;\n var _a = this, option = _a.option, weight = _a.weight;\n return {\n option: option,\n weight: weight.toString(),\n };\n };\n WeightedVoteOption.fromProto = function (proto, _) {\n _;\n return new WeightedVoteOption(proto.option, proto.weight);\n };\n WeightedVoteOption.prototype.toProto = function (_) {\n _;\n var _a = this, option = _a.option, weight = _a.weight;\n return gov_1.WeightedVoteOption.fromPartial({\n option: option,\n weight: weight.toString(),\n });\n };\n return WeightedVoteOption;\n}(json_1.JSONSerializable));\nexports.WeightedVoteOption = WeightedVoteOption;\n//# sourceMappingURL=Vote.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgDeposit = void 0;\nvar Coins_1 = require(\"../../Coins\");\nvar json_1 = require(\"../../../util/json\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar tx_1 = require(\"@terra-money/terra.proto/cosmos/gov/v1beta1/tx\");\nvar Long = __importStar(require(\"long\"));\n/**\n * Add a deposit for a proposal\n */\nvar MsgDeposit = /** @class */ (function (_super) {\n __extends(MsgDeposit, _super);\n /**\n * @param proposal_id Id of porposal to deposit to\n * @param depositor depositor's account address\n * @param amount amount to deposit\n */\n function MsgDeposit(proposal_id, depositor, amount) {\n var _this = _super.call(this) || this;\n _this.proposal_id = proposal_id;\n _this.depositor = depositor;\n _this.amount = new Coins_1.Coins(amount);\n return _this;\n }\n MsgDeposit.fromAmino = function (data, _) {\n _;\n var _a = data.value, proposal_id = _a.proposal_id, depositor = _a.depositor, amount = _a.amount;\n return new MsgDeposit(Number.parseInt(proposal_id), depositor, Coins_1.Coins.fromAmino(amount));\n };\n MsgDeposit.prototype.toAmino = function (isClassic) {\n var _a = this, proposal_id = _a.proposal_id, depositor = _a.depositor, amount = _a.amount;\n return {\n type: isClassic ? 'gov/MsgDeposit' : 'cosmos-sdk/MsgDeposit',\n value: {\n proposal_id: proposal_id.toString(),\n depositor: depositor,\n amount: amount.toAmino(),\n },\n };\n };\n MsgDeposit.fromData = function (data, _) {\n _;\n var proposal_id = data.proposal_id, depositor = data.depositor, amount = data.amount;\n return new MsgDeposit(Number.parseInt(proposal_id), depositor, Coins_1.Coins.fromData(amount));\n };\n MsgDeposit.prototype.toData = function (_) {\n _;\n var _a = this, proposal_id = _a.proposal_id, depositor = _a.depositor, amount = _a.amount;\n return {\n '@type': '/cosmos.gov.v1beta1.MsgDeposit',\n proposal_id: proposal_id.toString(),\n depositor: depositor,\n amount: amount.toData(),\n };\n };\n MsgDeposit.fromProto = function (proto, _) {\n _;\n return new MsgDeposit(proto.proposalId.toNumber(), proto.depositor, Coins_1.Coins.fromProto(proto.amount));\n };\n MsgDeposit.prototype.toProto = function (_) {\n _;\n var _a = this, proposal_id = _a.proposal_id, depositor = _a.depositor, amount = _a.amount;\n return tx_1.MsgDeposit.fromPartial({\n amount: amount.toProto(),\n depositor: depositor,\n proposalId: Long.fromNumber(proposal_id),\n });\n };\n MsgDeposit.prototype.packAny = function (isClassic) {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.gov.v1beta1.MsgDeposit',\n value: tx_1.MsgDeposit.encode(this.toProto(isClassic)).finish(),\n });\n };\n MsgDeposit.unpackAny = function (msgAny, isClassic) {\n return MsgDeposit.fromProto(tx_1.MsgDeposit.decode(msgAny.value), isClassic);\n };\n return MsgDeposit;\n}(json_1.JSONSerializable));\nexports.MsgDeposit = MsgDeposit;\n//# sourceMappingURL=MsgDeposit.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgSubmitProposal = void 0;\nvar Coins_1 = require(\"../../Coins\");\nvar Proposal_1 = require(\"../Proposal\");\nvar json_1 = require(\"../../../util/json\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar tx_1 = require(\"@terra-money/terra.proto/cosmos/gov/v1beta1/tx\");\n/**\n * Submit a proposal alongside an initial deposit.\n */\nvar MsgSubmitProposal = /** @class */ (function (_super) {\n __extends(MsgSubmitProposal, _super);\n /**\n * @param content proposal content to submit\n * @param initial_deposit deposit provided\n * @param proposer proposer's account address\n */\n function MsgSubmitProposal(content, initial_deposit, proposer) {\n var _this = _super.call(this) || this;\n _this.content = content;\n _this.proposer = proposer;\n _this.initial_deposit = new Coins_1.Coins(initial_deposit);\n return _this;\n }\n MsgSubmitProposal.fromAmino = function (data, isClassic) {\n var _a = data.value, content = _a.content, initial_deposit = _a.initial_deposit, proposer = _a.proposer;\n return new MsgSubmitProposal(Proposal_1.Proposal.Content.fromAmino(content, isClassic), Coins_1.Coins.fromAmino(initial_deposit), proposer);\n };\n MsgSubmitProposal.prototype.toAmino = function (isClassic) {\n var _a = this, content = _a.content, initial_deposit = _a.initial_deposit, proposer = _a.proposer;\n return {\n type: isClassic\n ? 'gov/MsgSubmitProposal'\n : 'cosmos-sdk/MsgSubmitProposal',\n value: {\n content: content.toAmino(isClassic),\n initial_deposit: initial_deposit.toAmino(),\n proposer: proposer,\n },\n };\n };\n MsgSubmitProposal.fromData = function (data, isClassic) {\n var content = data.content, initial_deposit = data.initial_deposit, proposer = data.proposer;\n return new MsgSubmitProposal(Proposal_1.Proposal.Content.fromData(content, isClassic), Coins_1.Coins.fromData(initial_deposit), proposer);\n };\n MsgSubmitProposal.prototype.toData = function (isClassic) {\n var _a = this, content = _a.content, initial_deposit = _a.initial_deposit, proposer = _a.proposer;\n return {\n '@type': '/cosmos.gov.v1beta1.MsgSubmitProposal',\n content: content.toData(isClassic),\n initial_deposit: initial_deposit.toData(),\n proposer: proposer,\n };\n };\n MsgSubmitProposal.fromProto = function (proto, isClassic) {\n return new MsgSubmitProposal(Proposal_1.Proposal.Content.fromProto(proto.content, isClassic), Coins_1.Coins.fromProto(proto.initialDeposit), proto.proposer);\n };\n MsgSubmitProposal.prototype.toProto = function (isClassic) {\n var _a = this, content = _a.content, initial_deposit = _a.initial_deposit, proposer = _a.proposer;\n return tx_1.MsgSubmitProposal.fromPartial({\n content: content.packAny(isClassic),\n initialDeposit: initial_deposit.toProto(),\n proposer: proposer,\n });\n };\n MsgSubmitProposal.prototype.packAny = function (isClassic) {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.gov.v1beta1.MsgSubmitProposal',\n value: tx_1.MsgSubmitProposal.encode(this.toProto(isClassic)).finish(),\n });\n };\n MsgSubmitProposal.unpackAny = function (msgAny, isClassic) {\n return MsgSubmitProposal.fromProto(tx_1.MsgSubmitProposal.decode(msgAny.value), isClassic);\n };\n return MsgSubmitProposal;\n}(json_1.JSONSerializable));\nexports.MsgSubmitProposal = MsgSubmitProposal;\n//# sourceMappingURL=MsgSubmitProposal.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgVote = void 0;\nvar json_1 = require(\"../../../util/json\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar tx_1 = require(\"@terra-money/terra.proto/cosmos/gov/v1beta1/tx\");\nvar gov_1 = require(\"@terra-money/terra.proto/cosmos/gov/v1beta1/gov\");\nvar Long = __importStar(require(\"long\"));\n/**\n * Vote for a proposal\n */\nvar MsgVote = /** @class */ (function (_super) {\n __extends(MsgVote, _super);\n /**\n * @param proposal_id ID of proposal to vote on\n * @param voter voter's account address\n * @param option one of voting options\n */\n function MsgVote(proposal_id, voter, option) {\n var _this = _super.call(this) || this;\n _this.proposal_id = proposal_id;\n _this.voter = voter;\n _this.option = option;\n return _this;\n }\n MsgVote.fromAmino = function (data, _) {\n _;\n var _a = data.value, proposal_id = _a.proposal_id, voter = _a.voter, option = _a.option;\n return new MsgVote(Number.parseInt(proposal_id), voter, option);\n };\n MsgVote.prototype.toAmino = function (isClassic) {\n var _a = this, proposal_id = _a.proposal_id, voter = _a.voter, option = _a.option;\n return {\n type: isClassic ? 'gov/MsgVote' : 'cosmos-sdk/MsgVote',\n value: {\n proposal_id: proposal_id.toFixed(),\n voter: voter,\n option: option,\n },\n };\n };\n MsgVote.fromData = function (data, _) {\n _;\n var proposal_id = data.proposal_id, voter = data.voter, option = data.option;\n return new MsgVote(Number.parseInt(proposal_id), voter, option);\n };\n MsgVote.prototype.toData = function (_) {\n _;\n var _a = this, proposal_id = _a.proposal_id, voter = _a.voter, option = _a.option;\n return {\n '@type': '/cosmos.gov.v1beta1.MsgVote',\n proposal_id: proposal_id.toFixed(),\n voter: voter,\n option: option,\n };\n };\n MsgVote.fromProto = function (proto, _) {\n _;\n return new MsgVote(proto.proposalId.toNumber(), proto.voter, proto.option);\n };\n MsgVote.prototype.toProto = function (_) {\n _;\n var _a = this, proposal_id = _a.proposal_id, voter = _a.voter, option = _a.option;\n return tx_1.MsgVote.fromPartial({\n option: option,\n proposalId: Long.fromNumber(proposal_id),\n voter: voter,\n });\n };\n MsgVote.prototype.packAny = function (_) {\n _;\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.gov.v1beta1.MsgVote',\n value: tx_1.MsgVote.encode(this.toProto()).finish(),\n });\n };\n MsgVote.unpackAny = function (msgAny, _) {\n _;\n return MsgVote.fromProto(tx_1.MsgVote.decode(msgAny.value));\n };\n return MsgVote;\n}(json_1.JSONSerializable));\nexports.MsgVote = MsgVote;\n(function (MsgVote) {\n MsgVote.Option = gov_1.VoteOption;\n})(MsgVote = exports.MsgVote || (exports.MsgVote = {}));\nexports.MsgVote = MsgVote;\n//# sourceMappingURL=MsgVote.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgVoteWeighted = void 0;\nvar json_1 = require(\"../../../util/json\");\nvar Vote_1 = require(\"../Vote\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar tx_1 = require(\"@terra-money/terra.proto/cosmos/gov/v1beta1/tx\");\nvar Long = __importStar(require(\"long\"));\n/**\n * Weighted vote for a proposal\n */\nvar MsgVoteWeighted = /** @class */ (function (_super) {\n __extends(MsgVoteWeighted, _super);\n /**\n * @param proposal_id ID of proposal to vote on\n * @param voter voter's account address\n * @param option one of voting options\n */\n function MsgVoteWeighted(proposal_id, voter, options) {\n var _this = _super.call(this) || this;\n _this.proposal_id = proposal_id;\n _this.voter = voter;\n _this.options = options;\n return _this;\n }\n MsgVoteWeighted.fromAmino = function (data, _) {\n _;\n var _a = data.value, proposal_id = _a.proposal_id, voter = _a.voter, options = _a.options;\n return new MsgVoteWeighted(Number.parseInt(proposal_id), voter, options.map(function (o) { return Vote_1.WeightedVoteOption.fromAmino(o); }));\n };\n MsgVoteWeighted.prototype.toAmino = function (isClassic) {\n var _a = this, proposal_id = _a.proposal_id, voter = _a.voter, options = _a.options;\n return {\n type: isClassic ? 'gov/MsgVoteWeighted' : 'cosmos-sdk/MsgVoteWeighted',\n value: {\n proposal_id: proposal_id.toFixed(),\n voter: voter,\n options: options.map(function (o) { return o.toAmino(); }),\n },\n };\n };\n MsgVoteWeighted.fromData = function (data, _) {\n _;\n var proposal_id = data.proposal_id, voter = data.voter, options = data.options;\n return new MsgVoteWeighted(Number.parseInt(proposal_id), voter, options.map(function (o) { return Vote_1.WeightedVoteOption.fromData(o); }));\n };\n MsgVoteWeighted.prototype.toData = function (_) {\n _;\n var _a = this, proposal_id = _a.proposal_id, voter = _a.voter, options = _a.options;\n return {\n '@type': '/cosmos.gov.v1beta1.MsgVoteWeighted',\n proposal_id: proposal_id.toFixed(),\n voter: voter,\n options: options.map(function (o) { return o.toData(); }),\n };\n };\n MsgVoteWeighted.fromProto = function (proto, _) {\n _;\n return new MsgVoteWeighted(proto.proposalId.toNumber(), proto.voter, proto.options.map(function (o) { return Vote_1.WeightedVoteOption.fromProto(o); }));\n };\n MsgVoteWeighted.prototype.toProto = function (_) {\n _;\n var _a = this, proposal_id = _a.proposal_id, voter = _a.voter, options = _a.options;\n return tx_1.MsgVoteWeighted.fromPartial({\n options: options.map(function (o) { return o.toProto(); }),\n proposalId: Long.fromNumber(proposal_id),\n voter: voter,\n });\n };\n MsgVoteWeighted.prototype.packAny = function (_) {\n _;\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.gov.v1beta1.MsgVoteWeighted',\n value: tx_1.MsgVoteWeighted.encode(this.toProto()).finish(),\n });\n };\n MsgVoteWeighted.unpackAny = function (msgAny, _) {\n _;\n return MsgVoteWeighted.fromProto(tx_1.MsgVoteWeighted.decode(msgAny.value));\n };\n return MsgVoteWeighted;\n}(json_1.JSONSerializable));\nexports.MsgVoteWeighted = MsgVoteWeighted;\n//# sourceMappingURL=MsgVoteWeighted.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./MsgDeposit\"), exports);\n__exportStar(require(\"./MsgSubmitProposal\"), exports);\n__exportStar(require(\"./MsgVote\"), exports);\n__exportStar(require(\"./MsgVoteWeighted\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TextProposal = void 0;\nvar json_1 = require(\"../../../util/json\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar gov_1 = require(\"@terra-money/terra.proto/cosmos/gov/v1beta1/gov\");\n/**\n * Basic proposal which describes the candidate proposition that must be put into effect\n * manually if passed. Used as a general-purpose way of discovering community's\n * sentiment / interest for an arbitrary change.\n */\nvar TextProposal = /** @class */ (function (_super) {\n __extends(TextProposal, _super);\n /**\n * @param title proposal's title\n * @param description proposal's description\n */\n function TextProposal(title, description) {\n var _this = _super.call(this) || this;\n _this.title = title;\n _this.description = description;\n return _this;\n }\n TextProposal.fromAmino = function (data, _) {\n _;\n var _a = data.value, title = _a.title, description = _a.description;\n return new TextProposal(title, description);\n };\n TextProposal.prototype.toAmino = function (isClassic) {\n var _a = this, title = _a.title, description = _a.description;\n return {\n type: isClassic ? 'gov/TextProposal' : 'cosmos-sdk/TextProposal',\n value: {\n title: title,\n description: description,\n },\n };\n };\n TextProposal.fromData = function (proto, _) {\n _;\n var title = proto.title, description = proto.description;\n return new TextProposal(title, description);\n };\n TextProposal.prototype.toData = function (_) {\n _;\n var _a = this, title = _a.title, description = _a.description;\n return {\n '@type': '/cosmos.gov.v1beta1.TextProposal',\n title: title,\n description: description,\n };\n };\n TextProposal.fromProto = function (proto, _) {\n _;\n return new TextProposal(proto.title, proto.description);\n };\n TextProposal.prototype.toProto = function (_) {\n _;\n var _a = this, title = _a.title, description = _a.description;\n return gov_1.TextProposal.fromPartial({\n description: description,\n title: title,\n });\n };\n TextProposal.prototype.packAny = function (isClassic) {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.gov.v1beta1.TextProposal',\n value: gov_1.TextProposal.encode(this.toProto(isClassic)).finish(),\n });\n };\n TextProposal.unpackAny = function (msgAny, isClassic) {\n return TextProposal.fromProto(gov_1.TextProposal.decode(msgAny.value), isClassic);\n };\n return TextProposal;\n}(json_1.JSONSerializable));\nexports.TextProposal = TextProposal;\n//# sourceMappingURL=TextProposal.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./TextProposal\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Params = void 0;\nvar host_1 = require(\"@terra-money/terra.proto/ibc/applications/interchain_accounts/host/v1/host\");\nvar json_1 = require(\"../../../../../util/json\");\n/**\n * Params defines the set of on-chain interchain accounts parameters.\n * The following parameters may be used to disable the host submodule.\n */\nvar Params = /** @class */ (function (_super) {\n __extends(Params, _super);\n /**\n * @param host_enabled host_enabled enables or disables the host submodule.\n */\n function Params(host_enabled, allowed_messages) {\n var _this = _super.call(this) || this;\n _this.host_enabled = host_enabled;\n _this.allowed_messages = allowed_messages;\n return _this;\n }\n Params.fromAmino = function (data) {\n var host_enabled = data.host_enabled, allowed_messages = data.allowed_messages;\n return new Params(host_enabled, allowed_messages);\n };\n Params.prototype.toAmino = function () {\n var _a = this, host_enabled = _a.host_enabled, allowed_messages = _a.allowed_messages;\n var res = {\n host_enabled: host_enabled,\n allowed_messages: allowed_messages,\n };\n return res;\n };\n Params.fromData = function (data) {\n var host_enabled = data.host_enabled, allowed_messages = data.allowed_messages;\n return new Params(host_enabled, allowed_messages);\n };\n Params.prototype.toData = function () {\n var _a = this, host_enabled = _a.host_enabled, allowed_messages = _a.allowed_messages;\n var res = {\n host_enabled: host_enabled,\n allowed_messages: allowed_messages,\n };\n return res;\n };\n Params.fromProto = function (proto) {\n return new Params(proto.hostEnabled, proto.allowMessages);\n };\n Params.prototype.toProto = function () {\n var _a = this, host_enabled = _a.host_enabled, allowed_messages = _a.allowed_messages;\n return host_1.Params.fromPartial({\n hostEnabled: host_enabled,\n allowMessages: allowed_messages,\n });\n };\n return Params;\n}(json_1.JSONSerializable));\nexports.Params = Params;\n//# sourceMappingURL=Params.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./v1/msgs/MsgTransfer\"), exports);\n__exportStar(require(\"./v2/FungibleTokenPacketData\"), exports);\n__exportStar(require(\"./v1/DenomTrace\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DenomTrace = void 0;\nvar transfer_1 = require(\"@terra-money/legacy.proto/ibc/applications/transfer/v1/transfer\");\nvar json_1 = require(\"../../../../../util/json\");\n/**\n * DenomTrace is a monotonically increasing data type\n * that can be compared against another DenomTrace for the purposes of updating and\n * freezing clients\n *\n * Normally the RevisionDenomTrace is incremented at each height while keeping\n * RevisionNumber the same. However some consensus algorithms may choose to\n * reset the height in certain conditions e.g. hard forks, state-machine\n * breaking changes In these cases, the RevisionNumber is incremented so that\n * height continues to be monitonically increasing even as the RevisionDenomTrace\n * gets reset\n */\nvar DenomTrace = /** @class */ (function (_super) {\n __extends(DenomTrace, _super);\n /**\n * @param path the revision that the client is currently on\n * @param base_denom the height within the given revision\n */\n function DenomTrace(path, base_denom) {\n var _this = _super.call(this) || this;\n _this.path = path;\n _this.base_denom = base_denom;\n return _this;\n }\n DenomTrace.fromAmino = function (data) {\n var path = data.path, base_denom = data.base_denom;\n return new DenomTrace(path, base_denom);\n };\n DenomTrace.prototype.toAmino = function () {\n var _a = this, path = _a.path, base_denom = _a.base_denom;\n var res = {\n path: path,\n base_denom: base_denom,\n };\n return res;\n };\n DenomTrace.fromData = function (data) {\n var path = data.path, base_denom = data.base_denom;\n return new DenomTrace(path, base_denom);\n };\n DenomTrace.prototype.toData = function () {\n var _a = this, path = _a.path, base_denom = _a.base_denom;\n var res = {\n path: path,\n base_denom: base_denom,\n };\n return res;\n };\n DenomTrace.fromProto = function (proto) {\n return new DenomTrace(proto.path, proto.baseDenom);\n };\n DenomTrace.prototype.toProto = function () {\n var _a = this, path = _a.path, base_denom = _a.base_denom;\n return transfer_1.DenomTrace.fromPartial({ path: path, baseDenom: base_denom });\n };\n return DenomTrace;\n}(json_1.JSONSerializable));\nexports.DenomTrace = DenomTrace;\n//# sourceMappingURL=DenomTrace.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgTransfer = void 0;\nvar json_1 = require(\"../../../../../../util/json\");\nvar Coin_1 = require(\"../../../../../Coin\");\nvar Long = __importStar(require(\"long\"));\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar tx_1 = require(\"@terra-money/terra.proto/ibc/applications/transfer/v1/tx\");\nvar Height_1 = require(\"../../../../core/client/Height\");\nvar numeric_1 = require(\"../../../../../numeric\");\n/**\n * A basic message for transfer [[Coin]] via IBC.\n */\nvar MsgTransfer = /** @class */ (function (_super) {\n __extends(MsgTransfer, _super);\n /**\n * @param source_port the port on which the packet will be sent\n * @param source_channel the channel by which the packet will be sent\n * @param token the tokens to be transferred\n * @param sender the sender address\n * @param receiver the recipient address on the destination chain\n * @param timeout_height Timeout height relative to the current block height. (0 to disable)\n * @param timeout_timestamp Timeout timestamp (in nanoseconds) relative to the current block timestamp. (0 to disable)\n */\n function MsgTransfer(source_port, source_channel, token, sender, receiver, timeout_height, timeout_timestamp) {\n var _this = _super.call(this) || this;\n if (!timeout_height && !timeout_timestamp) {\n throw 'both of timeout_height and timeout_timestamp are undefined';\n }\n _this.source_port = source_port;\n _this.source_channel = source_channel;\n _this.token = token;\n _this.sender = sender;\n _this.receiver = receiver;\n _this.timeout_height = timeout_height;\n _this.timeout_timestamp = timeout_timestamp\n ? numeric_1.Numeric.parse(timeout_timestamp)\n : undefined;\n return _this;\n }\n MsgTransfer.fromAmino = function (data, _) {\n _;\n var _a = data.value, source_port = _a.source_port, source_channel = _a.source_channel, token = _a.token, sender = _a.sender, receiver = _a.receiver, timeout_height = _a.timeout_height, timeout_timestamp = _a.timeout_timestamp;\n if (!timeout_height && !timeout_timestamp) {\n throw 'both of timeout_height and timeout_timestamp are undefined';\n }\n return new MsgTransfer(source_port, source_channel, token ? Coin_1.Coin.fromAmino(token) : undefined, sender, receiver, timeout_height ? Height_1.Height.fromAmino(timeout_height) : undefined, timeout_timestamp ? numeric_1.Numeric.parse(timeout_timestamp) : undefined);\n };\n MsgTransfer.prototype.toAmino = function (_) {\n _;\n var _a = this, source_port = _a.source_port, source_channel = _a.source_channel, token = _a.token, sender = _a.sender, receiver = _a.receiver, timeout_height = _a.timeout_height, timeout_timestamp = _a.timeout_timestamp;\n return {\n type: 'cosmos-sdk/MsgTransfer',\n value: {\n source_port: source_port,\n source_channel: source_channel,\n token: token ? token.toAmino() : undefined,\n sender: sender,\n receiver: receiver,\n timeout_height: (timeout_height === null || timeout_height === void 0 ? void 0 : timeout_height.toAmino()) || {},\n timeout_timestamp: (timeout_timestamp === null || timeout_timestamp === void 0 ? void 0 : timeout_timestamp.toFixed()) || undefined,\n },\n };\n };\n MsgTransfer.fromData = function (data, _) {\n _;\n var source_port = data.source_port, source_channel = data.source_channel, token = data.token, sender = data.sender, receiver = data.receiver, timeout_timestamp = data.timeout_timestamp, timeout_height = data.timeout_height;\n if (!timeout_height && !timeout_timestamp) {\n throw 'both of timeout_height and timeout_timestamp are undefined';\n }\n return new MsgTransfer(source_port, source_channel, token ? Coin_1.Coin.fromData(token) : undefined, sender, receiver, timeout_height ? Height_1.Height.fromData(timeout_height) : undefined, timeout_timestamp ? Number.parseInt(timeout_timestamp) : undefined);\n };\n MsgTransfer.prototype.toData = function (_) {\n _;\n var _a = this, source_port = _a.source_port, source_channel = _a.source_channel, token = _a.token, sender = _a.sender, receiver = _a.receiver, timeout_height = _a.timeout_height, timeout_timestamp = _a.timeout_timestamp;\n return {\n '@type': '/ibc.applications.transfer.v1.MsgTransfer',\n source_port: source_port,\n source_channel: source_channel,\n token: token ? token.toData() : undefined,\n sender: sender,\n receiver: receiver,\n timeout_height: timeout_height\n ? timeout_height.toData()\n : new Height_1.Height(0, 0).toData(),\n timeout_timestamp: (timeout_timestamp === null || timeout_timestamp === void 0 ? void 0 : timeout_timestamp.toFixed()) || '0',\n };\n };\n MsgTransfer.fromProto = function (proto, _) {\n _;\n if (!proto.timeoutHeight && proto.timeoutTimestamp.toNumber() == 0) {\n throw 'both of timeout_height and timeout_timestamp are empty';\n }\n return new MsgTransfer(proto.sourcePort, proto.sourceChannel, proto.token ? Coin_1.Coin.fromProto(proto.token) : undefined, proto.sender, proto.receiver, proto.timeoutHeight ? Height_1.Height.fromProto(proto.timeoutHeight) : undefined, proto.timeoutTimestamp.toNumber());\n };\n MsgTransfer.prototype.toProto = function (_) {\n _;\n var _a = this, source_port = _a.source_port, source_channel = _a.source_channel, token = _a.token, sender = _a.sender, receiver = _a.receiver, timeout_height = _a.timeout_height, timeout_timestamp = _a.timeout_timestamp;\n return tx_1.MsgTransfer.fromPartial({\n sourcePort: source_port,\n sourceChannel: source_channel,\n token: token ? token.toProto() : undefined,\n sender: sender,\n receiver: receiver,\n timeoutHeight: timeout_height ? timeout_height.toProto() : undefined,\n timeoutTimestamp: Long.fromString((timeout_timestamp === null || timeout_timestamp === void 0 ? void 0 : timeout_timestamp.toFixed()) || '0'),\n });\n };\n MsgTransfer.prototype.packAny = function (isClassic) {\n return any_1.Any.fromPartial({\n typeUrl: '/ibc.applications.transfer.v1.MsgTransfer',\n value: tx_1.MsgTransfer.encode(this.toProto(isClassic)).finish(),\n });\n };\n MsgTransfer.unpackAny = function (msgAny, isClassic) {\n return MsgTransfer.fromProto(tx_1.MsgTransfer.decode(msgAny.value), isClassic);\n };\n return MsgTransfer;\n}(json_1.JSONSerializable));\nexports.MsgTransfer = MsgTransfer;\n//# sourceMappingURL=MsgTransfer.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FungibleTokenPacketData = void 0;\nvar packet_1 = require(\"@terra-money/terra.proto/ibc/applications/transfer/v2/packet\");\nvar json_1 = require(\"../../../../../util/json\");\n/**\n * FungibleTokenPacketData defines a struct for the packet payload\n * See FungibleTokenPacketData spec:\n * https://github.com/cosmos/ibc/tree/master/spec/app/ics-020-fungible-token-transfer#data-structures\n */\nvar FungibleTokenPacketData = /** @class */ (function (_super) {\n __extends(FungibleTokenPacketData, _super);\n /**\n * @param denom the token denomination to be transferred\n * @param amount the token amount to be transferred\n * @param sender the sender address\n * @param receiver the recipient address on the destination chain\n */\n function FungibleTokenPacketData(denom, amount, sender, receiver) {\n var _this = _super.call(this) || this;\n _this.denom = denom;\n _this.amount = amount;\n _this.sender = sender;\n _this.receiver = receiver;\n return _this;\n }\n FungibleTokenPacketData.fromAmino = function (data) {\n var denom = data.denom, amount = data.amount, sender = data.sender, receiver = data.receiver;\n return new FungibleTokenPacketData(denom, amount, sender, receiver);\n };\n FungibleTokenPacketData.prototype.toAmino = function () {\n var _a = this, denom = _a.denom, amount = _a.amount, sender = _a.sender, receiver = _a.receiver;\n var res = {\n denom: denom,\n amount: amount,\n sender: sender,\n receiver: receiver,\n };\n return res;\n };\n FungibleTokenPacketData.fromData = function (data) {\n var denom = data.denom, amount = data.amount, sender = data.sender, receiver = data.receiver;\n return new FungibleTokenPacketData(denom, amount, sender, receiver);\n };\n FungibleTokenPacketData.prototype.toData = function () {\n var _a = this, denom = _a.denom, amount = _a.amount, sender = _a.sender, receiver = _a.receiver;\n var res = {\n denom: denom,\n amount: amount,\n sender: sender,\n receiver: receiver\n };\n return res;\n };\n FungibleTokenPacketData.fromProto = function (proto) {\n return new FungibleTokenPacketData(proto.denom, proto.amount, proto.sender, proto.receiver);\n };\n FungibleTokenPacketData.prototype.toProto = function () {\n var _a = this, denom = _a.denom, amount = _a.amount, sender = _a.sender, receiver = _a.receiver;\n return packet_1.FungibleTokenPacketData.fromPartial({\n denom: denom,\n amount: amount,\n sender: sender,\n receiver: receiver\n });\n };\n return FungibleTokenPacketData;\n}(json_1.JSONSerializable));\nexports.FungibleTokenPacketData = FungibleTokenPacketData;\n//# sourceMappingURL=FungibleTokenPacketData.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Channel = void 0;\nvar channel_1 = require(\"@terra-money/terra.proto/ibc/core/channel/v1/channel\");\nvar json_1 = require(\"../../../../util/json\");\nvar Counterparty_1 = require(\"./Counterparty\");\n/**\n * Channel is a monotonically increasing data type\n * that can be compared against another Channel for the purposes of updating and\n * freezing clients\n *\n * Normally the RevisionChannel is incremented at each height while keeping\n * RevisionNumber the same. However some consensus algorithms may choose to\n * reset the height in certain conditions e.g. hard forks, state-machine\n * breaking changes In these cases, the RevisionNumber is incremented so that\n * height continues to be monitonically increasing even as the RevisionChannel\n * gets reset\n */\nvar Channel = /** @class */ (function (_super) {\n __extends(Channel, _super);\n /**\n * @param state current state of the channel end\n * @param ordering whether the channel is ordered or unordered\n * @param counterparty counterparty channel end\n * @param connection_hops list of connection identifiers, in order, along which packets sent on this channel will travel\n * @param version opaque channel version, which is agreed upon during the handshake\n */\n function Channel(state, ordering, counterparty, connection_hops, version) {\n var _this = _super.call(this) || this;\n _this.state = state;\n _this.ordering = ordering;\n _this.counterparty = counterparty;\n _this.connection_hops = connection_hops;\n _this.version = version;\n return _this;\n }\n Channel.fromAmino = function (data) {\n var state = data.state, ordering = data.ordering, counterparty = data.counterparty, connection_hops = data.connection_hops, version = data.version;\n return new Channel(state, ordering, counterparty ? Counterparty_1.Counterparty.fromAmino(counterparty) : undefined, connection_hops, version);\n };\n Channel.prototype.toAmino = function () {\n var _a = this, state = _a.state, ordering = _a.ordering, counterparty = _a.counterparty, connection_hops = _a.connection_hops, version = _a.version;\n var res = {\n state: state,\n ordering: ordering,\n counterparty: counterparty ? counterparty.toAmino() : undefined,\n connection_hops: connection_hops,\n version: version,\n };\n return res;\n };\n Channel.fromData = function (data) {\n var state = data.state, ordering = data.ordering, counterparty = data.counterparty, connection_hops = data.connection_hops, version = data.version;\n return new Channel(state, ordering, counterparty ? Counterparty_1.Counterparty.fromData(counterparty) : undefined, connection_hops, version);\n };\n Channel.prototype.toData = function () {\n var _a = this, state = _a.state, ordering = _a.ordering, counterparty = _a.counterparty, connection_hops = _a.connection_hops, version = _a.version;\n var res = {\n state: state,\n ordering: ordering,\n counterparty: counterparty ? counterparty.toData() : undefined,\n connection_hops: connection_hops,\n version: version,\n };\n return res;\n };\n Channel.fromProto = function (proto) {\n return new Channel(proto.state, proto.ordering, proto.counterparty\n ? Counterparty_1.Counterparty.fromProto(proto.counterparty)\n : undefined, proto.connectionHops, proto.version);\n };\n Channel.prototype.toProto = function () {\n var _a = this, state = _a.state, ordering = _a.ordering, counterparty = _a.counterparty, connection_hops = _a.connection_hops, version = _a.version;\n return channel_1.Channel.fromPartial({\n state: state,\n ordering: ordering,\n counterparty: counterparty ? counterparty.toProto() : undefined,\n connectionHops: connection_hops,\n version: version,\n });\n };\n return Channel;\n}(json_1.JSONSerializable));\nexports.Channel = Channel;\n//# sourceMappingURL=Channel.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Counterparty = void 0;\nvar channel_1 = require(\"@terra-money/terra.proto/ibc/core/channel/v1/channel\");\nvar json_1 = require(\"../../../../util/json\");\n/** Counterparty defines a channel end counterparty */\nvar Counterparty = /** @class */ (function (_super) {\n __extends(Counterparty, _super);\n /**\n * @param port_id port on the counterparty chain which owns the other end of the channel.\n * @param channel_id channel end on the counterparty chain\n */\n function Counterparty(port_id, channel_id) {\n var _this = _super.call(this) || this;\n _this.port_id = port_id;\n _this.channel_id = channel_id;\n return _this;\n }\n Counterparty.fromAmino = function (data) {\n var port_id = data.port_id, channel_id = data.channel_id;\n return new Counterparty(port_id, channel_id);\n };\n Counterparty.prototype.toAmino = function () {\n var _a = this, port_id = _a.port_id, channel_id = _a.channel_id;\n var res = {\n port_id: port_id,\n channel_id: channel_id,\n };\n return res;\n };\n Counterparty.fromData = function (data) {\n var port_id = data.port_id, channel_id = data.channel_id;\n return new Counterparty(port_id, channel_id);\n };\n Counterparty.prototype.toData = function () {\n var _a = this, port_id = _a.port_id, channel_id = _a.channel_id;\n var res = {\n port_id: port_id,\n channel_id: channel_id,\n };\n return res;\n };\n Counterparty.fromProto = function (proto) {\n return new Counterparty(proto.portId, proto.channelId);\n };\n Counterparty.prototype.toProto = function () {\n var _a = this, port_id = _a.port_id, channel_id = _a.channel_id;\n return channel_1.Counterparty.fromPartial({\n portId: port_id,\n channelId: channel_id,\n });\n };\n return Counterparty;\n}(json_1.JSONSerializable));\nexports.Counterparty = Counterparty;\n//# sourceMappingURL=Counterparty.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Packet = void 0;\nvar channel_1 = require(\"@terra-money/terra.proto/ibc/core/channel/v1/channel\");\nvar long_1 = __importDefault(require(\"long\"));\nvar json_1 = require(\"../../../../util/json\");\nvar Height_1 = require(\"../client/Height\");\n/** Packet defines a type that carries data across different chains through IBC */\nvar Packet = /** @class */ (function (_super) {\n __extends(Packet, _super);\n /**\n * @param port_id port on the counterparty chain which owns the other end of the channel.\n * @param channel_id channel end on the counterparty chain\n */\n function Packet(sequence, source_port, source_channel, destination_port, destination_channel, data, timeout_height, timeout_timestamp) {\n var _this = _super.call(this) || this;\n _this.sequence = sequence;\n _this.source_port = source_port;\n _this.source_channel = source_channel;\n _this.destination_port = destination_port;\n _this.destination_channel = destination_channel;\n _this.data = data;\n _this.timeout_height = timeout_height;\n _this.timeout_timestamp = timeout_timestamp;\n return _this;\n }\n Packet.fromAmino = function (_data) {\n var sequence = _data.sequence, source_port = _data.source_port, source_channel = _data.source_channel, destination_port = _data.destination_port, destination_channel = _data.destination_channel, data = _data.data, timeout_height = _data.timeout_height, timeout_timestamp = _data.timeout_timestamp;\n return new Packet(sequence, source_port, source_channel, destination_port, destination_channel, data, timeout_height ? Height_1.Height.fromAmino(timeout_height) : undefined, timeout_timestamp);\n };\n Packet.prototype.toAmino = function () {\n var _a = this, sequence = _a.sequence, source_port = _a.source_port, source_channel = _a.source_channel, destination_port = _a.destination_port, destination_channel = _a.destination_channel, data = _a.data, timeout_height = _a.timeout_height, timeout_timestamp = _a.timeout_timestamp;\n var res = {\n sequence: sequence,\n source_port: source_port,\n source_channel: source_channel,\n destination_port: destination_port,\n destination_channel: destination_channel,\n data: data,\n timeout_height: timeout_height ? timeout_height.toAmino() : undefined,\n timeout_timestamp: timeout_timestamp,\n };\n return res;\n };\n Packet.fromData = function (_data) {\n var sequence = _data.sequence, source_port = _data.source_port, source_channel = _data.source_channel, destination_port = _data.destination_port, destination_channel = _data.destination_channel, data = _data.data, timeout_height = _data.timeout_height, timeout_timestamp = _data.timeout_timestamp;\n return new Packet(sequence, source_port, source_channel, destination_port, destination_channel, data, timeout_height ? Height_1.Height.fromData(timeout_height) : undefined, Number.parseInt(timeout_timestamp));\n };\n Packet.prototype.toData = function () {\n var _a = this, sequence = _a.sequence, source_port = _a.source_port, source_channel = _a.source_channel, destination_port = _a.destination_port, destination_channel = _a.destination_channel, data = _a.data, timeout_height = _a.timeout_height, timeout_timestamp = _a.timeout_timestamp;\n var res = {\n sequence: sequence,\n source_port: source_port,\n source_channel: source_channel,\n destination_port: destination_port,\n destination_channel: destination_channel,\n data: data,\n timeout_height: timeout_height ? timeout_height.toData() : undefined,\n timeout_timestamp: timeout_timestamp.toFixed(),\n };\n return res;\n };\n Packet.fromProto = function (proto) {\n return new Packet(proto.sequence.toNumber(), proto.sourcePort, proto.sourceChannel, proto.destinationPort, proto.destinationChannel, Buffer.from(proto.data).toString('base64'), proto.timeoutHeight ? Height_1.Height.fromProto(proto.timeoutHeight) : undefined, proto.timeoutTimestamp.toNumber());\n };\n Packet.prototype.toProto = function () {\n var _a = this, sequence = _a.sequence, source_port = _a.source_port, source_channel = _a.source_channel, destination_port = _a.destination_port, destination_channel = _a.destination_channel, data = _a.data, timeout_height = _a.timeout_height, timeout_timestamp = _a.timeout_timestamp;\n return channel_1.Packet.fromPartial({\n sequence: long_1.default.fromNumber(sequence),\n sourcePort: source_port,\n sourceChannel: source_channel,\n destinationPort: destination_port,\n destinationChannel: destination_channel,\n data: Buffer.from(data, 'base64'),\n timeoutHeight: timeout_height ? timeout_height.toProto() : undefined,\n timeoutTimestamp: long_1.default.fromNumber(timeout_timestamp),\n });\n };\n return Packet;\n}(json_1.JSONSerializable));\nexports.Packet = Packet;\n//# sourceMappingURL=Packet.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PacketId = void 0;\nvar channel_1 = require(\"@terra-money/terra.proto/ibc/core/channel/v1/channel\");\nvar json_1 = require(\"../../../../util/json\");\nvar Long = __importStar(require(\"long\"));\n/**\n * PacketId is an identifer for a unique Packet\n * Source chains refer to packets by source port/channel\n * Destination chains refer to packets by destination port/channel\n */\nvar PacketId = /** @class */ (function (_super) {\n __extends(PacketId, _super);\n /**\n * @param port_id channel port identifier\n * @param channel_id channel unique identifier\n * @param sequence packet sequence\n */\n function PacketId(port_id, channel_id, sequence) {\n var _this = _super.call(this) || this;\n _this.port_id = port_id;\n _this.channel_id = channel_id;\n _this.sequence = sequence;\n return _this;\n }\n PacketId.fromAmino = function (data) {\n var port_id = data.port_id, channel_id = data.channel_id, sequence = data.sequence;\n return new PacketId(port_id, channel_id, Number.parseInt(sequence));\n };\n PacketId.prototype.toAmino = function () {\n var _a = this, port_id = _a.port_id, channel_id = _a.channel_id, sequence = _a.sequence;\n var res = {\n port_id: port_id,\n channel_id: channel_id,\n sequence: sequence.toFixed(),\n };\n return res;\n };\n PacketId.fromData = function (data) {\n var port_id = data.port_id, channel_id = data.channel_id, sequence = data.sequence;\n return new PacketId(port_id, channel_id, Number.parseInt(sequence));\n };\n PacketId.prototype.toData = function () {\n var _a = this, port_id = _a.port_id, channel_id = _a.channel_id, sequence = _a.sequence;\n var res = {\n port_id: port_id,\n channel_id: channel_id,\n sequence: sequence.toFixed(),\n };\n return res;\n };\n PacketId.fromProto = function (proto) {\n return new PacketId(proto.portId, proto.channelId, proto.sequence.toNumber());\n };\n PacketId.prototype.toProto = function () {\n var _a = this, port_id = _a.port_id, channel_id = _a.channel_id, sequence = _a.sequence;\n return channel_1.PacketId.fromPartial({\n portId: port_id,\n channelId: channel_id,\n sequence: Long.fromNumber(sequence),\n });\n };\n return PacketId;\n}(json_1.JSONSerializable));\nexports.PacketId = PacketId;\n//# sourceMappingURL=PacketId.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./Channel\"), exports);\n__exportStar(require(\"./PacketId\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Height = void 0;\nvar client_1 = require(\"@terra-money/terra.proto/ibc/core/client/v1/client\");\nvar Long = __importStar(require(\"long\"));\nvar json_1 = require(\"../../../../util/json\");\n/**\n * Height is a monotonically increasing data type\n * that can be compared against another Height for the purposes of updating and\n * freezing clients\n *\n * Normally the RevisionHeight is incremented at each height while keeping\n * RevisionNumber the same. However some consensus algorithms may choose to\n * reset the height in certain conditions e.g. hard forks, state-machine\n * breaking changes In these cases, the RevisionNumber is incremented so that\n * height continues to be monitonically increasing even as the RevisionHeight\n * gets reset\n */\nvar Height = /** @class */ (function (_super) {\n __extends(Height, _super);\n /**\n * @param revision_number the revision that the client is currently on\n * @param revision_height the height within the given revision\n */\n function Height(revision_number, revision_height) {\n var _this = _super.call(this) || this;\n _this.revision_number = revision_number;\n _this.revision_height = revision_height;\n return _this;\n }\n Height.fromAmino = function (data) {\n var revision_number = data.revision_number, revision_height = data.revision_height;\n return new Height(parseInt(revision_number || '0'), parseInt(revision_height || '0'));\n };\n Height.prototype.toAmino = function () {\n var _a = this, revision_number = _a.revision_number, revision_height = _a.revision_height;\n var res = {\n revision_number: revision_number > 0 ? revision_number.toFixed() : undefined,\n revision_height: revision_height > 0 ? revision_height.toFixed() : undefined,\n };\n return res;\n };\n Height.fromData = function (data) {\n var revision_number = data.revision_number, revision_height = data.revision_height;\n return new Height(Number.parseInt(revision_number), Number.parseInt(revision_height));\n };\n Height.prototype.toData = function () {\n var _a = this, revision_number = _a.revision_number, revision_height = _a.revision_height;\n var res = {\n revision_number: revision_number.toFixed(),\n revision_height: revision_height.toFixed(),\n };\n return res;\n };\n Height.fromProto = function (proto) {\n return new Height(proto.revisionNumber.toNumber(), proto.revisionHeight.toNumber());\n };\n Height.prototype.toProto = function () {\n var _a = this, revision_number = _a.revision_number, revision_height = _a.revision_height;\n return client_1.Height.fromPartial({\n revisionNumber: Long.fromNumber(revision_number),\n revisionHeight: Long.fromNumber(revision_height),\n });\n };\n return Height;\n}(json_1.JSONSerializable));\nexports.Height = Height;\n//# sourceMappingURL=Height.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IdentifiedClientState = void 0;\nvar client_1 = require(\"@terra-money/terra.proto/ibc/core/client/v1/client\");\nvar json_1 = require(\"../../../../util/json\");\n/**\n * IdentifiedClientState defines a client state with an additional client identifier field\n */\nvar IdentifiedClientState = /** @class */ (function (_super) {\n __extends(IdentifiedClientState, _super);\n /**\n * @param client_id client identifier\n * @param client_state client state\n */\n function IdentifiedClientState(client_id, client_state) {\n var _this = _super.call(this) || this;\n _this.client_id = client_id;\n _this.client_state = client_state;\n return _this;\n }\n IdentifiedClientState.fromAmino = function (data) {\n var client_id = data.client_id, client_state = data.client_state;\n return new IdentifiedClientState(client_id, client_state);\n };\n IdentifiedClientState.prototype.toAmino = function () {\n var _a = this, client_id = _a.client_id, client_state = _a.client_state;\n var res = {\n client_id: client_id,\n client_state: client_state,\n };\n return res;\n };\n IdentifiedClientState.fromData = function (data) {\n var client_id = data.client_id, client_state = data.client_state;\n return new IdentifiedClientState(client_id, client_state);\n };\n IdentifiedClientState.prototype.toData = function () {\n var _a = this, client_id = _a.client_id, client_state = _a.client_state;\n var res = {\n client_id: client_id,\n client_state: client_state,\n };\n return res;\n };\n IdentifiedClientState.fromProto = function (proto) {\n return new IdentifiedClientState(proto.clientId, proto.clientState);\n };\n IdentifiedClientState.prototype.toProto = function () {\n var _a = this, client_id = _a.client_id, client_state = _a.client_state;\n return client_1.IdentifiedClientState.fromPartial({\n clientId: client_id,\n clientState: client_state,\n });\n };\n return IdentifiedClientState;\n}(json_1.JSONSerializable));\nexports.IdentifiedClientState = IdentifiedClientState;\n//# sourceMappingURL=IdentifiedClient.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MerklePrefix = void 0;\nvar commitment_1 = require(\"@terra-money/terra.proto/ibc/core/commitment/v1/commitment\");\nvar json_1 = require(\"../../../../util/json\");\n/*\n * MerklePrefix is merkle path prefixed to the key.\n * The constructed key from the Path and the key will be append(Path.KeyPath,\n * append(Path.KeyPrefix, key...))\n */\nvar MerklePrefix = /** @class */ (function (_super) {\n __extends(MerklePrefix, _super);\n /**\n * @param key_prefix\n */\n function MerklePrefix(key_prefix) {\n var _this = _super.call(this) || this;\n _this.key_prefix = key_prefix;\n return _this;\n }\n MerklePrefix.fromAmino = function (data) {\n var key_prefix = data.key_prefix;\n return new MerklePrefix(key_prefix);\n };\n MerklePrefix.prototype.toAmino = function () {\n var key_prefix = this.key_prefix;\n var res = {\n key_prefix: key_prefix,\n };\n return res;\n };\n MerklePrefix.fromData = function (data) {\n var key_prefix = data.key_prefix;\n return new MerklePrefix(key_prefix);\n };\n MerklePrefix.prototype.toData = function () {\n var key_prefix = this.key_prefix;\n var res = {\n key_prefix: key_prefix,\n };\n return res;\n };\n MerklePrefix.fromProto = function (proto) {\n return new MerklePrefix(Buffer.from(proto.keyPrefix).toString('base64'));\n };\n MerklePrefix.prototype.toProto = function () {\n var key_prefix = this.key_prefix;\n return commitment_1.MerklePrefix.fromPartial({\n keyPrefix: Buffer.from(key_prefix, 'base64'),\n });\n };\n return MerklePrefix;\n}(json_1.JSONSerializable));\nexports.MerklePrefix = MerklePrefix;\n//# sourceMappingURL=MerklePrefix.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Counterparty = void 0;\nvar connection_1 = require(\"@terra-money/terra.proto/ibc/core/connection/v1/connection\");\nvar json_1 = require(\"../../../../util/json\");\nvar MerklePrefix_1 = require(\"../commitment/MerklePrefix\");\n/** Counterparty defines a channel end counterparty */\nvar Counterparty = /** @class */ (function (_super) {\n __extends(Counterparty, _super);\n /**\n * @param client_id identifies the client on the counterparty chain associated with a given connection.\n * @param connection_id identifies the connection end on the counterparty chain associated with a given connection.\n * @param prefix commitment merkle prefix of the counterparty chain.\n */\n function Counterparty(client_id, connection_id, prefix) {\n var _this = _super.call(this) || this;\n _this.client_id = client_id;\n _this.connection_id = connection_id;\n _this.prefix = prefix;\n return _this;\n }\n Counterparty.fromAmino = function (data) {\n var client_id = data.client_id, connection_id = data.connection_id, prefix = data.prefix;\n return new Counterparty(client_id, connection_id, prefix ? MerklePrefix_1.MerklePrefix.fromAmino(prefix) : undefined);\n };\n Counterparty.prototype.toAmino = function () {\n var _a = this, client_id = _a.client_id, connection_id = _a.connection_id, prefix = _a.prefix;\n var res = {\n client_id: client_id,\n connection_id: connection_id,\n prefix: prefix,\n };\n return res;\n };\n Counterparty.fromData = function (data) {\n var client_id = data.client_id, connection_id = data.connection_id, prefix = data.prefix;\n return new Counterparty(client_id, connection_id, prefix ? MerklePrefix_1.MerklePrefix.fromData(prefix) : undefined);\n };\n Counterparty.prototype.toData = function () {\n var _a = this, client_id = _a.client_id, connection_id = _a.connection_id, prefix = _a.prefix;\n var res = {\n client_id: client_id,\n connection_id: connection_id,\n prefix: prefix ? prefix.toData() : undefined,\n };\n return res;\n };\n Counterparty.fromProto = function (proto) {\n return new Counterparty(proto.clientId, proto.connectionId, proto.prefix ? MerklePrefix_1.MerklePrefix.fromProto(proto.prefix) : undefined);\n };\n Counterparty.prototype.toProto = function () {\n var _a = this, client_id = _a.client_id, connection_id = _a.connection_id, prefix = _a.prefix;\n return connection_1.Counterparty.fromPartial({\n clientId: client_id,\n connectionId: connection_id,\n prefix: prefix ? prefix.toProto() : undefined,\n });\n };\n return Counterparty;\n}(json_1.JSONSerializable));\nexports.Counterparty = Counterparty;\n//# sourceMappingURL=Counterparty.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IdentifiedConnection = exports.stateToJSON = exports.stateFromJSON = exports.State = void 0;\nvar connection_1 = require(\"@terra-money/terra.proto/ibc/core/connection/v1/connection\");\nvar json_1 = require(\"../../../../util/json\");\nvar Version_1 = require(\"./Version\");\nvar connection_2 = require(\"@terra-money/terra.proto/ibc/core/connection/v1/connection\");\nObject.defineProperty(exports, \"State\", { enumerable: true, get: function () { return connection_2.State; } });\nObject.defineProperty(exports, \"stateFromJSON\", { enumerable: true, get: function () { return connection_2.stateFromJSON; } });\nObject.defineProperty(exports, \"stateToJSON\", { enumerable: true, get: function () { return connection_2.stateToJSON; } });\nvar Counterparty_1 = require(\"./Counterparty\");\nvar long_1 = __importDefault(require(\"long\"));\n/**\n * IdentifiedConnection defines a connection with additional connection identifier field\n */\nvar IdentifiedConnection = /** @class */ (function (_super) {\n __extends(IdentifiedConnection, _super);\n /**\n * @param id connection identifier\n * @param client_id client associated with this connection.\n * @param versions IBC version which can be utilised to determine encodings or protocols for channels or packets utilising this connection\n * @param state current state of the connection end\n * @param counterparty counterparty chain associated with this connection\n * @param delay_period delay period associated with this connection\n */\n function IdentifiedConnection(id, client_id, versions, state, counterparty, delay_period) {\n var _this = _super.call(this) || this;\n _this.id = id;\n _this.client_id = client_id;\n _this.versions = versions;\n _this.state = state;\n _this.counterparty = counterparty;\n _this.delay_period = delay_period;\n return _this;\n }\n IdentifiedConnection.fromAmino = function (data) {\n var id = data.id, client_id = data.client_id, versions = data.versions, state = data.state, counterparty = data.counterparty, delay_period = data.delay_period;\n return new IdentifiedConnection(id, client_id, versions.map(Version_1.Version.fromAmino), (0, connection_2.stateFromJSON)(state), counterparty ? Counterparty_1.Counterparty.fromAmino(counterparty) : undefined, Number.parseInt(delay_period));\n };\n IdentifiedConnection.prototype.toAmino = function () {\n var _a = this, id = _a.id, client_id = _a.client_id, versions = _a.versions, state = _a.state, counterparty = _a.counterparty, delay_period = _a.delay_period;\n var res = {\n id: id,\n client_id: client_id,\n versions: versions.map(function (version) { return version.toAmino(); }),\n state: (0, connection_2.stateToJSON)(state),\n counterparty: counterparty === null || counterparty === void 0 ? void 0 : counterparty.toAmino(),\n delay_period: delay_period.toFixed(),\n };\n return res;\n };\n IdentifiedConnection.fromData = function (data) {\n var id = data.id, client_id = data.client_id, versions = data.versions, state = data.state, counterparty = data.counterparty, delay_period = data.delay_period;\n return new IdentifiedConnection(id, client_id, versions.map(Version_1.Version.fromData), (0, connection_2.stateFromJSON)(state), counterparty ? Counterparty_1.Counterparty.fromData(counterparty) : undefined, Number.parseInt(delay_period));\n };\n IdentifiedConnection.prototype.toData = function () {\n var _a = this, id = _a.id, client_id = _a.client_id, versions = _a.versions, state = _a.state, counterparty = _a.counterparty, delay_period = _a.delay_period;\n var res = {\n id: id,\n client_id: client_id,\n versions: versions.map(function (version) { return version.toData(); }),\n state: (0, connection_2.stateToJSON)(state),\n counterparty: counterparty === null || counterparty === void 0 ? void 0 : counterparty.toData(),\n delay_period: delay_period.toFixed(),\n };\n return res;\n };\n IdentifiedConnection.fromProto = function (proto) {\n return new IdentifiedConnection(proto.id, proto.clientId, proto.versions.map(Version_1.Version.fromProto), proto.state, proto.counterparty\n ? Counterparty_1.Counterparty.fromProto(proto.counterparty)\n : undefined, proto.delayPeriod.toNumber());\n };\n IdentifiedConnection.prototype.toProto = function () {\n var _a = this, id = _a.id, client_id = _a.client_id, versions = _a.versions, state = _a.state, counterparty = _a.counterparty, delay_period = _a.delay_period;\n return connection_1.IdentifiedConnection.fromPartial({\n id: id,\n clientId: client_id,\n versions: versions.map(function (v) { return v.toProto(); }),\n state: state,\n counterparty: counterparty === null || counterparty === void 0 ? void 0 : counterparty.toProto(),\n delayPeriod: long_1.default.fromNumber(delay_period),\n });\n };\n return IdentifiedConnection;\n}(json_1.JSONSerializable));\nexports.IdentifiedConnection = IdentifiedConnection;\n//# sourceMappingURL=IdentifiedConnection.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Version = void 0;\nvar connection_1 = require(\"@terra-money/terra.proto/ibc/core/connection/v1/connection\");\nvar json_1 = require(\"../../../../util/json\");\n/*\n * Version defines the versioning scheme used to negotiate the IBC verison in the connection handshake.\n */\nvar Version = /** @class */ (function (_super) {\n __extends(Version, _super);\n /**\n * @param identifier unique version identifier\n * @param features list of features compatible with the specified identifier\n */\n function Version(identifier, features) {\n var _this = _super.call(this) || this;\n _this.identifier = identifier;\n _this.features = features;\n return _this;\n }\n Version.fromAmino = function (data) {\n var identifier = data.identifier, features = data.features;\n return new Version(identifier, features);\n };\n Version.prototype.toAmino = function () {\n var _a = this, identifier = _a.identifier, features = _a.features;\n var res = {\n identifier: identifier,\n features: features,\n };\n return res;\n };\n Version.fromData = function (data) {\n var identifier = data.identifier, features = data.features;\n return new Version(identifier, features);\n };\n Version.prototype.toData = function () {\n var _a = this, identifier = _a.identifier, features = _a.features;\n var res = {\n identifier: identifier,\n features: features,\n };\n return res;\n };\n Version.fromProto = function (proto) {\n return new Version(proto.identifier, proto.features);\n };\n Version.prototype.toProto = function () {\n var _a = this, identifier = _a.identifier, features = _a.features;\n return connection_1.Version.fromPartial({ identifier: identifier, features: features });\n };\n return Version;\n}(json_1.JSONSerializable));\nexports.Version = Version;\n//# sourceMappingURL=Version.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./Counterparty\"), exports);\n__exportStar(require(\"./Version\"), exports);\n__exportStar(require(\"./IdentifiedConnection\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Header = void 0;\nvar json_1 = require(\"../../../../util/json\");\nvar tendermint_1 = require(\"@terra-money/terra.proto/ibc/lightclients/tendermint/v1/tendermint\");\nvar Height_1 = require(\"../../core/client/Height\");\nvar types_1 = require(\"../../msgs/client/tendermint/types\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\n/**\n * Header defines the Tendermint client consensus Header.\n * It encapsulates all the information necessary to update from a trusted\n * Tendermint ConsensusState. The inclusion of TrustedHeight and\n * TrustedValidators allows this update to process correctly, so long as the\n * ConsensusState for the TrustedHeight exists, this removes race conditions\n * among relayers The SignedHeader and ValidatorSet are the new untrusted update\n * fields for the client. The TrustedHeight is the height of a stored\n * ConsensusState on the client that will be used to verify the new untrusted\n * header. The Trusted ConsensusState must be within the unbonding period of\n * current time in order to correctly verify, and the TrustedValidators must\n * hash to TrustedConsensusState.NextValidatorsHash since that is the last\n * trusted validator set at the TrustedHeight.\n */\nvar Header = /** @class */ (function (_super) {\n __extends(Header, _super);\n /**\n * @param signedHeader\n * @param validatorSet\n * @param trustedHeight\n * @param trustedValidators\n */\n function Header(signedHeader, validatorSet, trustedHeight, trustedValidators) {\n var _this = _super.call(this) || this;\n _this.signedHeader = signedHeader;\n _this.validatorSet = validatorSet;\n _this.trustedHeight = trustedHeight;\n _this.trustedValidators = trustedValidators;\n return _this;\n }\n Header.fromAmino = function (_) {\n _;\n throw new Error('Amino not supported');\n };\n Header.prototype.toAmino = function () {\n throw new Error('Amino not supported');\n };\n Header.fromData = function (data) {\n var signedHeader = data.signed_header, validatorSet = data.validator_set, trustedHeight = data.trusted_height, trustedValidators = data.trusted_validators;\n return new Header(signedHeader ? types_1.SignedHeader.fromData(signedHeader) : undefined, validatorSet ? types_1.ValidatorSet.fromData(validatorSet) : undefined, trustedHeight ? Height_1.Height.fromData(trustedHeight) : undefined, trustedValidators ? types_1.ValidatorSet.fromData(trustedValidators) : undefined);\n };\n Header.prototype.toData = function () {\n var _a = this, signedHeader = _a.signedHeader, validatorSet = _a.validatorSet, trustedHeight = _a.trustedHeight, trustedValidators = _a.trustedValidators;\n return {\n signed_header: (signedHeader === null || signedHeader === void 0 ? void 0 : signedHeader.toData()) || undefined,\n validator_set: (validatorSet === null || validatorSet === void 0 ? void 0 : validatorSet.toData()) || undefined,\n trusted_height: (trustedHeight === null || trustedHeight === void 0 ? void 0 : trustedHeight.toData()) || undefined,\n trusted_validators: (trustedValidators === null || trustedValidators === void 0 ? void 0 : trustedValidators.toData()) || undefined,\n };\n };\n Header.fromProto = function (proto) {\n var signedHeader = proto.signedHeader, validatorSet = proto.validatorSet, trustedHeight = proto.trustedHeight, trustedValidators = proto.trustedValidators;\n return new Header(signedHeader ? types_1.SignedHeader.fromProto(signedHeader) : undefined, validatorSet ? types_1.ValidatorSet.fromProto(validatorSet) : undefined, trustedHeight ? Height_1.Height.fromProto(trustedHeight) : undefined, trustedValidators ? types_1.ValidatorSet.fromProto(trustedValidators) : undefined);\n };\n Header.prototype.toProto = function () {\n var _a = this, signedHeader = _a.signedHeader, validatorSet = _a.validatorSet, trustedHeight = _a.trustedHeight, trustedValidators = _a.trustedValidators;\n return tendermint_1.Header.fromPartial({\n signedHeader: (signedHeader === null || signedHeader === void 0 ? void 0 : signedHeader.toProto()) || undefined,\n validatorSet: (validatorSet === null || validatorSet === void 0 ? void 0 : validatorSet.toProto()) || undefined,\n trustedHeight: (trustedHeight === null || trustedHeight === void 0 ? void 0 : trustedHeight.toProto()) || undefined,\n trustedValidators: (trustedValidators === null || trustedValidators === void 0 ? void 0 : trustedValidators.toProto()) || undefined,\n });\n };\n Header.prototype.packAny = function () {\n return any_1.Any.fromPartial({\n typeUrl: 'ibc.lightclients.tendermint.v1.Header',\n value: tendermint_1.Header.encode(this.toProto()).finish(),\n });\n };\n Header.unpackAny = function (msgAny) {\n return Header.fromProto(tendermint_1.Header.decode(msgAny.value));\n };\n return Header;\n}(json_1.JSONSerializable));\nexports.Header = Header;\n//# sourceMappingURL=Header.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgChannelCloseConfirm = void 0;\nvar json_1 = require(\"../../../../util/json\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar Height_1 = require(\"../../core/client/Height\");\nvar tx_1 = require(\"@terra-money/terra.proto/ibc/core/channel/v1/tx\");\n/**\n * MsgChannelCloseConfirm defines a msg sent by a Relayer to Chain B to acknowledge the change of channel state to CLOSED on Chain A.\n */\nvar MsgChannelCloseConfirm = /** @class */ (function (_super) {\n __extends(MsgChannelCloseConfirm, _super);\n /**\n * @param port_id identifier of the port to use\n * @param channel_id\n * @param proof_init\n * @param proof_height\n * @param signer signer address\n */\n function MsgChannelCloseConfirm(port_id, channel_id, proof_init, proof_height, signer) {\n var _this = _super.call(this) || this;\n _this.port_id = port_id;\n _this.channel_id = channel_id;\n _this.proof_init = proof_init;\n _this.proof_height = proof_height;\n _this.signer = signer;\n return _this;\n }\n MsgChannelCloseConfirm.fromAmino = function (_, isClassic) {\n _;\n isClassic;\n throw new Error('Amino not supported');\n };\n MsgChannelCloseConfirm.prototype.toAmino = function (_) {\n _;\n throw new Error('Amino not supported');\n };\n MsgChannelCloseConfirm.fromData = function (data, _) {\n _;\n var port_id = data.port_id, channel_id = data.channel_id, proof_init = data.proof_init, proof_height = data.proof_height, signer = data.signer;\n return new MsgChannelCloseConfirm(port_id, channel_id, proof_init, proof_height ? Height_1.Height.fromData(proof_height) : undefined, signer);\n };\n MsgChannelCloseConfirm.prototype.toData = function (_) {\n _;\n var _a = this, port_id = _a.port_id, channel_id = _a.channel_id, proof_init = _a.proof_init, proof_height = _a.proof_height, signer = _a.signer;\n return {\n '@type': '/ibc.core.channel.v1.MsgChannelCloseConfirm',\n port_id: port_id,\n channel_id: channel_id,\n proof_init: proof_init,\n proof_height: proof_height ? proof_height.toData() : undefined,\n signer: signer,\n };\n };\n MsgChannelCloseConfirm.fromProto = function (proto, _) {\n _;\n return new MsgChannelCloseConfirm(proto.portId, proto.channelId, Buffer.from(proto.proofInit).toString('base64'), proto.proofHeight ? Height_1.Height.fromProto(proto.proofHeight) : undefined, proto.signer);\n };\n MsgChannelCloseConfirm.prototype.toProto = function (_) {\n _;\n var _a = this, port_id = _a.port_id, channel_id = _a.channel_id, proof_init = _a.proof_init, proof_height = _a.proof_height, signer = _a.signer;\n return tx_1.MsgChannelCloseConfirm.fromPartial({\n portId: port_id,\n channelId: channel_id,\n proofInit: Buffer.from(proof_init, 'base64'),\n proofHeight: proof_height ? proof_height.toProto() : undefined,\n signer: signer,\n });\n };\n MsgChannelCloseConfirm.prototype.packAny = function (_) {\n _;\n return any_1.Any.fromPartial({\n typeUrl: '/ibc.core.channel.v1.MsgChannelCloseConfirm',\n value: tx_1.MsgChannelCloseConfirm.encode(this.toProto()).finish(),\n });\n };\n MsgChannelCloseConfirm.unpackAny = function (msgAny, _) {\n _;\n return MsgChannelCloseConfirm.fromProto(tx_1.MsgChannelCloseConfirm.decode(msgAny.value));\n };\n return MsgChannelCloseConfirm;\n}(json_1.JSONSerializable));\nexports.MsgChannelCloseConfirm = MsgChannelCloseConfirm;\n//# sourceMappingURL=MsgChannelCloseConfirm.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgChannelCloseInit = void 0;\nvar json_1 = require(\"../../../../util/json\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar tx_1 = require(\"@terra-money/terra.proto/ibc/core/channel/v1/tx\");\n/**\n * MsgChannelCloseInit defines a msg sent by a Relayer to Chain A to close a channel with Chain B.\n */\nvar MsgChannelCloseInit = /** @class */ (function (_super) {\n __extends(MsgChannelCloseInit, _super);\n /**\n * @param port_id identifier of the port to use\n * @param channel channel info\n * @param signer signer address\n */\n function MsgChannelCloseInit(port_id, channel_id, signer) {\n var _this = _super.call(this) || this;\n _this.port_id = port_id;\n _this.channel_id = channel_id;\n _this.signer = signer;\n return _this;\n }\n MsgChannelCloseInit.fromAmino = function (_, isClassic) {\n _;\n isClassic;\n throw new Error('Amino not supported');\n };\n MsgChannelCloseInit.prototype.toAmino = function (_) {\n _;\n throw new Error('Amino not supported');\n };\n MsgChannelCloseInit.fromData = function (data, _) {\n _;\n var port_id = data.port_id, channel_id = data.channel_id, signer = data.signer;\n return new MsgChannelCloseInit(port_id, channel_id, signer);\n };\n MsgChannelCloseInit.prototype.toData = function (_) {\n _;\n var _a = this, port_id = _a.port_id, channel_id = _a.channel_id, signer = _a.signer;\n return {\n '@type': '/ibc.core.channel.v1.MsgChannelCloseInit',\n port_id: port_id,\n channel_id: channel_id,\n signer: signer,\n };\n };\n MsgChannelCloseInit.fromProto = function (proto, _) {\n _;\n return new MsgChannelCloseInit(proto.portId, proto.channelId, proto.signer);\n };\n MsgChannelCloseInit.prototype.toProto = function (_) {\n _;\n var _a = this, port_id = _a.port_id, channel_id = _a.channel_id, signer = _a.signer;\n return tx_1.MsgChannelCloseInit.fromPartial({\n portId: port_id,\n channelId: channel_id,\n signer: signer,\n });\n };\n MsgChannelCloseInit.prototype.packAny = function (_) {\n _;\n return any_1.Any.fromPartial({\n typeUrl: '/ibc.core.channel.v1.MsgChannelCloseInit',\n value: tx_1.MsgChannelCloseInit.encode(this.toProto()).finish(),\n });\n };\n MsgChannelCloseInit.unpackAny = function (msgAny, _) {\n _;\n return MsgChannelCloseInit.fromProto(tx_1.MsgChannelCloseInit.decode(msgAny.value));\n };\n return MsgChannelCloseInit;\n}(json_1.JSONSerializable));\nexports.MsgChannelCloseInit = MsgChannelCloseInit;\n//# sourceMappingURL=MsgChannelCloseInit.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgChannelOpenAck = void 0;\nvar json_1 = require(\"../../../../util/json\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar Height_1 = require(\"../../core/client/Height\");\nvar tx_1 = require(\"@terra-money/terra.proto/ibc/core/channel/v1/tx\");\n/**\n * MsgChannelOpenAck defines a msg sent by a Relayer to Chain A to acknowledge the change of channel state to TRYOPEN on Chain B.\n */\nvar MsgChannelOpenAck = /** @class */ (function (_super) {\n __extends(MsgChannelOpenAck, _super);\n /**\n * @param port_id identifier of the port to use\n * @param channel_id\n * @param counterparty_channel_id\n * @param counterparty_version\n * @param proof_try\n * @param proof_height\n * @param signer signer address\n */\n function MsgChannelOpenAck(port_id, channel_id, counterparty_channel_id, counterparty_version, proof_try, proof_height, signer) {\n var _this = _super.call(this) || this;\n _this.port_id = port_id;\n _this.channel_id = channel_id;\n _this.counterparty_channel_id = counterparty_channel_id;\n _this.counterparty_version = counterparty_version;\n _this.proof_try = proof_try;\n _this.proof_height = proof_height;\n _this.signer = signer;\n return _this;\n }\n MsgChannelOpenAck.fromAmino = function (_, isClassic) {\n _;\n isClassic;\n throw new Error('Amino not supported');\n };\n MsgChannelOpenAck.prototype.toAmino = function (_) {\n _;\n throw new Error('Amino not supported');\n };\n MsgChannelOpenAck.fromData = function (data, _) {\n _;\n var port_id = data.port_id, channel_id = data.channel_id, counterparty_channel_id = data.counterparty_channel_id, counterparty_version = data.counterparty_version, proof_try = data.proof_try, proof_height = data.proof_height, signer = data.signer;\n return new MsgChannelOpenAck(port_id, channel_id, counterparty_channel_id, counterparty_version, proof_try, proof_height ? Height_1.Height.fromData(proof_height) : undefined, signer);\n };\n MsgChannelOpenAck.prototype.toData = function (_) {\n _;\n var _a = this, port_id = _a.port_id, channel_id = _a.channel_id, counterparty_channel_id = _a.counterparty_channel_id, counterparty_version = _a.counterparty_version, proof_try = _a.proof_try, proof_height = _a.proof_height, signer = _a.signer;\n return {\n '@type': '/ibc.core.channel.v1.MsgChannelOpenAck',\n port_id: port_id,\n channel_id: channel_id,\n counterparty_channel_id: counterparty_channel_id,\n counterparty_version: counterparty_version,\n proof_try: proof_try,\n proof_height: proof_height ? proof_height.toData() : undefined,\n signer: signer,\n };\n };\n MsgChannelOpenAck.fromProto = function (proto, _) {\n _;\n return new MsgChannelOpenAck(proto.portId, proto.channelId, proto.counterpartyChannelId, proto.counterpartyVersion, Buffer.from(proto.proofTry).toString('base64'), proto.proofHeight ? Height_1.Height.fromProto(proto.proofHeight) : undefined, proto.signer);\n };\n MsgChannelOpenAck.prototype.toProto = function (_) {\n _;\n var _a = this, port_id = _a.port_id, channel_id = _a.channel_id, counterparty_channel_id = _a.counterparty_channel_id, counterparty_version = _a.counterparty_version, proof_try = _a.proof_try, proof_height = _a.proof_height, signer = _a.signer;\n return tx_1.MsgChannelOpenAck.fromPartial({\n portId: port_id,\n channelId: channel_id,\n counterpartyChannelId: counterparty_channel_id,\n counterpartyVersion: counterparty_version,\n proofTry: Buffer.from(proof_try, 'base64'),\n proofHeight: proof_height ? proof_height.toProto() : undefined,\n signer: signer,\n });\n };\n MsgChannelOpenAck.prototype.packAny = function (_) {\n _;\n return any_1.Any.fromPartial({\n typeUrl: '/ibc.core.channel.v1.MsgChannelOpenAck',\n value: tx_1.MsgChannelOpenAck.encode(this.toProto()).finish(),\n });\n };\n MsgChannelOpenAck.unpackAny = function (msgAny, _) {\n _;\n return MsgChannelOpenAck.fromProto(tx_1.MsgChannelOpenAck.decode(msgAny.value));\n };\n return MsgChannelOpenAck;\n}(json_1.JSONSerializable));\nexports.MsgChannelOpenAck = MsgChannelOpenAck;\n//# sourceMappingURL=MsgChannelOpenAck.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgChannelOpenConfirm = void 0;\nvar json_1 = require(\"../../../../util/json\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar Height_1 = require(\"../../core/client/Height\");\nvar tx_1 = require(\"@terra-money/terra.proto/ibc/core/channel/v1/tx\");\n/**\n * MsgChannelOpenConfirm defines a msg sent by a Relayer to Chain B to acknowledge the change of channel state to OPEN on Chain A.\n */\nvar MsgChannelOpenConfirm = /** @class */ (function (_super) {\n __extends(MsgChannelOpenConfirm, _super);\n /**\n * @param port_id identifier of the port to use\n * @param channel_id\n * @param proof_ack\n * @param proof_height\n * @param signer signer address\n */\n function MsgChannelOpenConfirm(port_id, channel_id, proof_ack, proof_height, signer) {\n var _this = _super.call(this) || this;\n _this.port_id = port_id;\n _this.channel_id = channel_id;\n _this.proof_ack = proof_ack;\n _this.proof_height = proof_height;\n _this.signer = signer;\n return _this;\n }\n MsgChannelOpenConfirm.fromAmino = function (_, isClassic) {\n _;\n isClassic;\n throw new Error('Amino not supported');\n };\n MsgChannelOpenConfirm.prototype.toAmino = function (_) {\n _;\n throw new Error('Amino not supported');\n };\n MsgChannelOpenConfirm.fromData = function (data, _) {\n _;\n var port_id = data.port_id, channel_id = data.channel_id, proof_ack = data.proof_ack, proof_height = data.proof_height, signer = data.signer;\n return new MsgChannelOpenConfirm(port_id, channel_id, proof_ack, proof_height ? Height_1.Height.fromData(proof_height) : undefined, signer);\n };\n MsgChannelOpenConfirm.prototype.toData = function (_) {\n _;\n var _a = this, port_id = _a.port_id, channel_id = _a.channel_id, proof_ack = _a.proof_ack, proof_height = _a.proof_height, signer = _a.signer;\n return {\n '@type': '/ibc.core.channel.v1.MsgChannelOpenConfirm',\n port_id: port_id,\n channel_id: channel_id,\n proof_ack: proof_ack,\n proof_height: proof_height ? proof_height.toData() : undefined,\n signer: signer,\n };\n };\n MsgChannelOpenConfirm.fromProto = function (proto, _) {\n _;\n return new MsgChannelOpenConfirm(proto.portId, proto.channelId, Buffer.from(proto.proofAck).toString('base64'), proto.proofHeight ? Height_1.Height.fromProto(proto.proofHeight) : undefined, proto.signer);\n };\n MsgChannelOpenConfirm.prototype.toProto = function (_) {\n _;\n var _a = this, port_id = _a.port_id, channel_id = _a.channel_id, proof_ack = _a.proof_ack, proof_height = _a.proof_height, signer = _a.signer;\n return tx_1.MsgChannelOpenConfirm.fromPartial({\n portId: port_id,\n channelId: channel_id,\n proofAck: Buffer.from(proof_ack, 'base64'),\n proofHeight: proof_height ? proof_height.toProto() : undefined,\n signer: signer,\n });\n };\n MsgChannelOpenConfirm.prototype.packAny = function (_) {\n _;\n return any_1.Any.fromPartial({\n typeUrl: '/ibc.core.channel.v1.MsgChannelOpenConfirm',\n value: tx_1.MsgChannelOpenConfirm.encode(this.toProto()).finish(),\n });\n };\n MsgChannelOpenConfirm.unpackAny = function (msgAny, _) {\n _;\n return MsgChannelOpenConfirm.fromProto(tx_1.MsgChannelOpenConfirm.decode(msgAny.value));\n };\n return MsgChannelOpenConfirm;\n}(json_1.JSONSerializable));\nexports.MsgChannelOpenConfirm = MsgChannelOpenConfirm;\n//# sourceMappingURL=MsgChannelOpenConfirm.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgChannelOpenInit = void 0;\nvar json_1 = require(\"../../../../util/json\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar Channel_1 = require(\"../../core/channel/Channel\");\nvar tx_1 = require(\"@terra-money/terra.proto/ibc/core/channel/v1/tx\");\n/**\n * MsgChannelOpenInit defines an sdk.Msg to initialize a channel handshake. It is called by a relayer on Chain A.\n */\nvar MsgChannelOpenInit = /** @class */ (function (_super) {\n __extends(MsgChannelOpenInit, _super);\n /**\n * @param port_id identifier of the port to use\n * @param channel channel info\n * @param signer signer address\n */\n function MsgChannelOpenInit(port_id, channel, signer) {\n var _this = _super.call(this) || this;\n _this.port_id = port_id;\n _this.channel = channel;\n _this.signer = signer;\n return _this;\n }\n MsgChannelOpenInit.fromAmino = function (_, isClassic) {\n _;\n isClassic;\n throw new Error('Amino not supported');\n };\n MsgChannelOpenInit.prototype.toAmino = function (_) {\n _;\n throw new Error('Amino not supported');\n };\n MsgChannelOpenInit.fromData = function (data, _) {\n _;\n var port_id = data.port_id, channel = data.channel, signer = data.signer;\n return new MsgChannelOpenInit(port_id, channel ? Channel_1.Channel.fromData(channel) : undefined, signer);\n };\n MsgChannelOpenInit.prototype.toData = function (_) {\n _;\n var _a = this, port_id = _a.port_id, channel = _a.channel, signer = _a.signer;\n return {\n '@type': '/ibc.core.channel.v1.MsgChannelOpenInit',\n port_id: port_id,\n channel: channel ? channel.toData() : undefined,\n signer: signer,\n };\n };\n MsgChannelOpenInit.fromProto = function (proto, _) {\n _;\n return new MsgChannelOpenInit(proto.portId, proto.channel ? Channel_1.Channel.fromProto(proto.channel) : undefined, proto.signer);\n };\n MsgChannelOpenInit.prototype.toProto = function (_) {\n _;\n var _a = this, port_id = _a.port_id, channel = _a.channel, signer = _a.signer;\n return tx_1.MsgChannelOpenInit.fromPartial({\n portId: port_id,\n channel: channel ? channel.toProto() : undefined,\n signer: signer,\n });\n };\n MsgChannelOpenInit.prototype.packAny = function (_) {\n _;\n return any_1.Any.fromPartial({\n typeUrl: '/ibc.core.channel.v1.MsgChannelOpenInit',\n value: tx_1.MsgChannelOpenInit.encode(this.toProto()).finish(),\n });\n };\n MsgChannelOpenInit.unpackAny = function (msgAny, _) {\n _;\n return MsgChannelOpenInit.fromProto(tx_1.MsgChannelOpenInit.decode(msgAny.value));\n };\n return MsgChannelOpenInit;\n}(json_1.JSONSerializable));\nexports.MsgChannelOpenInit = MsgChannelOpenInit;\n//# sourceMappingURL=MsgChannelOpenInit.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgChannelOpenTry = void 0;\nvar json_1 = require(\"../../../../util/json\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar Channel_1 = require(\"../../core/channel/Channel\");\nvar Height_1 = require(\"../../core/client/Height\");\nvar tx_1 = require(\"@terra-money/terra.proto/ibc/core/channel/v1/tx\");\n/**\n * MsgChannelOpenTry defines a msg sent by a Relayer to try to open a channel on Chain B\n */\nvar MsgChannelOpenTry = /** @class */ (function (_super) {\n __extends(MsgChannelOpenTry, _super);\n /**\n * @param port_id identifier of the port to use\n * @param previous_channel_id\n * @param channel channel info\n * @param counterparty_version\n * @param proof_init\n * @param proof_height\n * @param signer signer address\n */\n function MsgChannelOpenTry(port_id, previous_channel_id, channel, counterparty_version, proof_init, proof_height, signer) {\n var _this = _super.call(this) || this;\n _this.port_id = port_id;\n _this.previous_channel_id = previous_channel_id;\n _this.channel = channel;\n _this.counterparty_version = counterparty_version;\n _this.proof_init = proof_init;\n _this.proof_height = proof_height;\n _this.signer = signer;\n return _this;\n }\n MsgChannelOpenTry.fromAmino = function (_, isClassic) {\n _;\n isClassic;\n throw new Error('Amino not supported');\n };\n MsgChannelOpenTry.prototype.toAmino = function (_) {\n _;\n throw new Error('Amino not supported');\n };\n MsgChannelOpenTry.fromData = function (data, _) {\n _;\n var port_id = data.port_id, previous_channel_id = data.previous_channel_id, channel = data.channel, counterparty_version = data.counterparty_version, proof_init = data.proof_init, proof_height = data.proof_height, signer = data.signer;\n return new MsgChannelOpenTry(port_id, previous_channel_id, channel ? Channel_1.Channel.fromData(channel) : undefined, counterparty_version, proof_init, proof_height ? Height_1.Height.fromData(proof_height) : undefined, signer);\n };\n MsgChannelOpenTry.prototype.toData = function (_) {\n _;\n var _a = this, port_id = _a.port_id, previous_channel_id = _a.previous_channel_id, channel = _a.channel, counterparty_version = _a.counterparty_version, proof_init = _a.proof_init, proof_height = _a.proof_height, signer = _a.signer;\n return {\n '@type': '/ibc.core.channel.v1.MsgChannelOpenTry',\n port_id: port_id,\n previous_channel_id: previous_channel_id,\n channel: channel ? channel.toData() : undefined,\n counterparty_version: counterparty_version,\n proof_init: proof_init,\n proof_height: proof_height ? proof_height.toData() : undefined,\n signer: signer,\n };\n };\n MsgChannelOpenTry.fromProto = function (proto, _) {\n _;\n return new MsgChannelOpenTry(proto.portId, proto.previousChannelId, proto.channel ? Channel_1.Channel.fromProto(proto.channel) : undefined, proto.counterpartyVersion, Buffer.from(proto.proofInit).toString('base64'), proto.proofHeight ? Height_1.Height.fromProto(proto.proofHeight) : undefined, proto.signer);\n };\n MsgChannelOpenTry.prototype.toProto = function (_) {\n _;\n var _a = this, port_id = _a.port_id, previous_channel_id = _a.previous_channel_id, channel = _a.channel, counterparty_version = _a.counterparty_version, proof_init = _a.proof_init, proof_height = _a.proof_height, signer = _a.signer;\n return tx_1.MsgChannelOpenTry.fromPartial({\n portId: port_id,\n previousChannelId: previous_channel_id,\n channel: channel ? channel.toProto() : undefined,\n counterpartyVersion: counterparty_version,\n proofInit: Buffer.from(proof_init, 'base64'),\n proofHeight: proof_height ? proof_height.toProto() : undefined,\n signer: signer,\n });\n };\n MsgChannelOpenTry.prototype.packAny = function (_) {\n _;\n return any_1.Any.fromPartial({\n typeUrl: '/ibc.core.channel.v1.MsgChannelOpenTry',\n value: tx_1.MsgChannelOpenTry.encode(this.toProto()).finish(),\n });\n };\n MsgChannelOpenTry.unpackAny = function (msgAny, _) {\n _;\n return MsgChannelOpenTry.fromProto(tx_1.MsgChannelOpenTry.decode(msgAny.value));\n };\n return MsgChannelOpenTry;\n}(json_1.JSONSerializable));\nexports.MsgChannelOpenTry = MsgChannelOpenTry;\n//# sourceMappingURL=MsgChannelOpenTry.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgAcknowledgement = void 0;\nvar json_1 = require(\"../../../../util/json\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar Height_1 = require(\"../../core/client/Height\");\nvar Packet_1 = require(\"../../core/channel/Packet\");\nvar tx_1 = require(\"@terra-money/terra.proto/ibc/core/channel/v1/tx\");\n/**\n * MsgAcknowledgement receives incoming IBC acknowledgement\n */\nvar MsgAcknowledgement = /** @class */ (function (_super) {\n __extends(MsgAcknowledgement, _super);\n /**\n * @param packet\n * @param acknowledgement\n * @param proof_acked\n * @param proof_height\n * @param signer signer address\n */\n function MsgAcknowledgement(packet, acknowledgement, proof_acked, proof_height, signer) {\n var _this = _super.call(this) || this;\n _this.packet = packet;\n _this.acknowledgement = acknowledgement;\n _this.proof_acked = proof_acked;\n _this.proof_height = proof_height;\n _this.signer = signer;\n return _this;\n }\n MsgAcknowledgement.fromAmino = function (_, isClassic) {\n _;\n isClassic;\n throw new Error('Amino not supported');\n };\n MsgAcknowledgement.prototype.toAmino = function (_) {\n _;\n throw new Error('Amino not supported');\n };\n MsgAcknowledgement.fromData = function (data, _) {\n _;\n var packet = data.packet, acknowledgement = data.acknowledgement, proof_acked = data.proof_acked, proof_height = data.proof_height, signer = data.signer;\n return new MsgAcknowledgement(packet ? Packet_1.Packet.fromData(packet) : undefined, proof_acked, acknowledgement, proof_height ? Height_1.Height.fromData(proof_height) : undefined, signer);\n };\n MsgAcknowledgement.prototype.toData = function (_) {\n _;\n var _a = this, packet = _a.packet, acknowledgement = _a.acknowledgement, proof_acked = _a.proof_acked, proof_height = _a.proof_height, signer = _a.signer;\n return {\n '@type': '/ibc.core.channel.v1.MsgAcknowledgement',\n packet: packet ? packet.toData() : undefined,\n acknowledgement: acknowledgement,\n proof_acked: proof_acked,\n proof_height: proof_height ? proof_height.toData() : undefined,\n signer: signer,\n };\n };\n MsgAcknowledgement.fromProto = function (proto, _) {\n _;\n return new MsgAcknowledgement(proto.packet ? Packet_1.Packet.fromProto(proto.packet) : undefined, Buffer.from(proto.acknowledgement).toString('base64'), Buffer.from(proto.proofAcked).toString('base64'), proto.proofHeight ? Height_1.Height.fromProto(proto.proofHeight) : undefined, proto.signer);\n };\n MsgAcknowledgement.prototype.toProto = function (_) {\n _;\n var _a = this, packet = _a.packet, acknowledgement = _a.acknowledgement, proof_acked = _a.proof_acked, proof_height = _a.proof_height, signer = _a.signer;\n return tx_1.MsgAcknowledgement.fromPartial({\n packet: packet ? packet.toProto() : undefined,\n acknowledgement: Buffer.from(acknowledgement, 'base64'),\n proofAcked: Buffer.from(proof_acked, 'base64'),\n proofHeight: proof_height ? proof_height.toProto() : undefined,\n signer: signer,\n });\n };\n MsgAcknowledgement.prototype.packAny = function (_) {\n _;\n return any_1.Any.fromPartial({\n typeUrl: '/ibc.core.channel.v1.MsgAcknowledgement',\n value: tx_1.MsgAcknowledgement.encode(this.toProto()).finish(),\n });\n };\n MsgAcknowledgement.unpackAny = function (msgAny, _) {\n _;\n return MsgAcknowledgement.fromProto(tx_1.MsgAcknowledgement.decode(msgAny.value));\n };\n return MsgAcknowledgement;\n}(json_1.JSONSerializable));\nexports.MsgAcknowledgement = MsgAcknowledgement;\n//# sourceMappingURL=MsgRecvAcknowledgement.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgRecvPacket = void 0;\nvar json_1 = require(\"../../../../util/json\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar Height_1 = require(\"../../core/client/Height\");\nvar Packet_1 = require(\"../../core/channel/Packet\");\nvar tx_1 = require(\"@terra-money/terra.proto/ibc/core/channel/v1/tx\");\n/**\n * MsgRecvPacket receives incoming IBC packet\n */\nvar MsgRecvPacket = /** @class */ (function (_super) {\n __extends(MsgRecvPacket, _super);\n /**\n * @param packet\n * @param proof_commitment\n * @param proof_height\n * @param signer signer address\n */\n function MsgRecvPacket(packet, proof_commitment, proof_height, signer) {\n var _this = _super.call(this) || this;\n _this.packet = packet;\n _this.proof_commitment = proof_commitment;\n _this.proof_height = proof_height;\n _this.signer = signer;\n return _this;\n }\n MsgRecvPacket.fromAmino = function (_, isClassic) {\n _;\n isClassic;\n throw new Error('Amino not supported');\n };\n MsgRecvPacket.prototype.toAmino = function (_) {\n _;\n throw new Error('Amino not supported');\n };\n MsgRecvPacket.fromData = function (data, _) {\n _;\n var packet = data.packet, proof_commitment = data.proof_commitment, proof_height = data.proof_height, signer = data.signer;\n return new MsgRecvPacket(packet ? Packet_1.Packet.fromData(packet) : undefined, proof_commitment, proof_height ? Height_1.Height.fromData(proof_height) : undefined, signer);\n };\n MsgRecvPacket.prototype.toData = function (_) {\n _;\n var _a = this, packet = _a.packet, proof_commitment = _a.proof_commitment, proof_height = _a.proof_height, signer = _a.signer;\n return {\n '@type': '/ibc.core.channel.v1.MsgRecvPacket',\n packet: packet ? packet.toData() : undefined,\n proof_commitment: proof_commitment,\n proof_height: proof_height ? proof_height.toData() : undefined,\n signer: signer,\n };\n };\n MsgRecvPacket.fromProto = function (proto, _) {\n _;\n return new MsgRecvPacket(proto.packet ? Packet_1.Packet.fromProto(proto.packet) : undefined, Buffer.from(proto.proofCommitment).toString('base64'), proto.proofHeight ? Height_1.Height.fromProto(proto.proofHeight) : undefined, proto.signer);\n };\n MsgRecvPacket.prototype.toProto = function (_) {\n _;\n var _a = this, packet = _a.packet, proof_commitment = _a.proof_commitment, proof_height = _a.proof_height, signer = _a.signer;\n return tx_1.MsgRecvPacket.fromPartial({\n packet: packet ? packet.toProto() : undefined,\n proofCommitment: Buffer.from(proof_commitment, 'base64'),\n proofHeight: proof_height ? proof_height.toProto() : undefined,\n signer: signer,\n });\n };\n MsgRecvPacket.prototype.packAny = function (_) {\n _;\n return any_1.Any.fromPartial({\n typeUrl: '/ibc.core.channel.v1.MsgRecvPacket',\n value: tx_1.MsgRecvPacket.encode(this.toProto()).finish(),\n });\n };\n MsgRecvPacket.unpackAny = function (msgAny, _) {\n _;\n return MsgRecvPacket.fromProto(tx_1.MsgRecvPacket.decode(msgAny.value));\n };\n return MsgRecvPacket;\n}(json_1.JSONSerializable));\nexports.MsgRecvPacket = MsgRecvPacket;\n//# sourceMappingURL=MsgRecvPacket.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgTimeout = void 0;\nvar json_1 = require(\"../../../../util/json\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar Height_1 = require(\"../../core/client/Height\");\nvar Packet_1 = require(\"../../core/channel/Packet\");\nvar tx_1 = require(\"@terra-money/terra.proto/ibc/core/channel/v1/tx\");\nvar long_1 = __importDefault(require(\"long\"));\n/**\n * MsgTimeout receives timed-out packet\n */\nvar MsgTimeout = /** @class */ (function (_super) {\n __extends(MsgTimeout, _super);\n /**\n * @param packet\n * @param proof_unreceived\n * @param proof_height\n * @param next_seuqnce_recv\n * @param signer signer address\n */\n function MsgTimeout(packet, proof_unreceived, proof_height, next_sequence_recv, signer) {\n var _this = _super.call(this) || this;\n _this.packet = packet;\n _this.proof_unreceived = proof_unreceived;\n _this.proof_height = proof_height;\n _this.next_sequence_recv = next_sequence_recv;\n _this.signer = signer;\n return _this;\n }\n MsgTimeout.fromAmino = function (_, isClassic) {\n _;\n isClassic;\n throw new Error('Amino not supported');\n };\n MsgTimeout.prototype.toAmino = function (_) {\n _;\n throw new Error('Amino not supported');\n };\n MsgTimeout.fromData = function (data, _) {\n _;\n var packet = data.packet, proof_unreceived = data.proof_unreceived, proof_height = data.proof_height, next_sequence_recv = data.next_sequence_recv, signer = data.signer;\n return new MsgTimeout(packet ? Packet_1.Packet.fromData(packet) : undefined, proof_unreceived, proof_height ? Height_1.Height.fromData(proof_height) : undefined, Number.parseInt(next_sequence_recv), signer);\n };\n MsgTimeout.prototype.toData = function (_) {\n _;\n var _a = this, packet = _a.packet, proof_unreceived = _a.proof_unreceived, proof_height = _a.proof_height, next_sequence_recv = _a.next_sequence_recv, signer = _a.signer;\n return {\n '@type': '/ibc.core.channel.v1.MsgTimeout',\n packet: packet ? packet.toData() : undefined,\n proof_unreceived: proof_unreceived,\n proof_height: proof_height ? proof_height.toData() : undefined,\n next_sequence_recv: next_sequence_recv.toFixed(),\n signer: signer,\n };\n };\n MsgTimeout.fromProto = function (proto, _) {\n _;\n return new MsgTimeout(proto.packet ? Packet_1.Packet.fromProto(proto.packet) : undefined, Buffer.from(proto.proofUnreceived).toString('base64'), proto.proofHeight ? Height_1.Height.fromProto(proto.proofHeight) : undefined, proto.nextSequenceRecv.toNumber(), proto.signer);\n };\n MsgTimeout.prototype.toProto = function (_) {\n _;\n var _a = this, packet = _a.packet, proof_unreceived = _a.proof_unreceived, proof_height = _a.proof_height, next_sequence_recv = _a.next_sequence_recv, signer = _a.signer;\n return tx_1.MsgTimeout.fromPartial({\n packet: packet ? packet.toProto() : undefined,\n proofUnreceived: Buffer.from(proof_unreceived, 'base64'),\n proofHeight: proof_height ? proof_height.toProto() : undefined,\n nextSequenceRecv: long_1.default.fromNumber(next_sequence_recv),\n signer: signer,\n });\n };\n MsgTimeout.prototype.packAny = function (_) {\n _;\n return any_1.Any.fromPartial({\n typeUrl: '/ibc.core.channel.v1.MsgTimeout',\n value: tx_1.MsgTimeout.encode(this.toProto()).finish(),\n });\n };\n MsgTimeout.unpackAny = function (msgAny, _) {\n _;\n return MsgTimeout.fromProto(tx_1.MsgTimeout.decode(msgAny.value));\n };\n return MsgTimeout;\n}(json_1.JSONSerializable));\nexports.MsgTimeout = MsgTimeout;\n//# sourceMappingURL=MsgTimeout.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgTimeoutOnClose = void 0;\nvar json_1 = require(\"../../../../util/json\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar Height_1 = require(\"../../core/client/Height\");\nvar Packet_1 = require(\"../../core/channel/Packet\");\nvar tx_1 = require(\"@terra-money/terra.proto/ibc/core/channel/v1/tx\");\nvar long_1 = __importDefault(require(\"long\"));\n/**\n * MsgTimeoutOnClose timed-out packet upon counterparty channel closure.\n */\nvar MsgTimeoutOnClose = /** @class */ (function (_super) {\n __extends(MsgTimeoutOnClose, _super);\n /**\n * @param packet\n * @param proof_unreceived\n * @param proof_height\n * @param proof_close\n * @param next_seuqnce_recv\n * @param signer signer address\n */\n function MsgTimeoutOnClose(packet, proof_unreceived, proof_close, proof_height, next_sequence_recv, signer) {\n var _this = _super.call(this) || this;\n _this.packet = packet;\n _this.proof_unreceived = proof_unreceived;\n _this.proof_close = proof_close;\n _this.proof_height = proof_height;\n _this.next_sequence_recv = next_sequence_recv;\n _this.signer = signer;\n return _this;\n }\n MsgTimeoutOnClose.fromAmino = function (_, isClassic) {\n _;\n isClassic;\n throw new Error('Amino not supported');\n };\n MsgTimeoutOnClose.prototype.toAmino = function (_) {\n _;\n throw new Error('Amino not supported');\n };\n MsgTimeoutOnClose.fromData = function (data, _) {\n _;\n var packet = data.packet, proof_unreceived = data.proof_unreceived, proof_close = data.proof_close, proof_height = data.proof_height, next_sequence_recv = data.next_sequence_recv, signer = data.signer;\n return new MsgTimeoutOnClose(packet ? Packet_1.Packet.fromData(packet) : undefined, proof_close, proof_unreceived, proof_height ? Height_1.Height.fromData(proof_height) : undefined, Number.parseInt(next_sequence_recv), signer);\n };\n MsgTimeoutOnClose.prototype.toData = function (_) {\n _;\n var _a = this, packet = _a.packet, proof_unreceived = _a.proof_unreceived, proof_close = _a.proof_close, proof_height = _a.proof_height, next_sequence_recv = _a.next_sequence_recv, signer = _a.signer;\n return {\n '@type': '/ibc.core.channel.v1.MsgTimeoutOnClose',\n packet: packet ? packet.toData() : undefined,\n proof_unreceived: proof_unreceived,\n proof_close: proof_close,\n proof_height: proof_height ? proof_height.toData() : undefined,\n next_sequence_recv: next_sequence_recv.toFixed(),\n signer: signer,\n };\n };\n MsgTimeoutOnClose.fromProto = function (proto, _) {\n _;\n return new MsgTimeoutOnClose(proto.packet ? Packet_1.Packet.fromProto(proto.packet) : undefined, Buffer.from(proto.proofUnreceived).toString('base64'), Buffer.from(proto.proofClose).toString('base64'), proto.proofHeight ? Height_1.Height.fromProto(proto.proofHeight) : undefined, proto.nextSequenceRecv.toNumber(), proto.signer);\n };\n MsgTimeoutOnClose.prototype.toProto = function (_) {\n _;\n var _a = this, packet = _a.packet, proof_unreceived = _a.proof_unreceived, proof_close = _a.proof_close, proof_height = _a.proof_height, next_sequence_recv = _a.next_sequence_recv, signer = _a.signer;\n return tx_1.MsgTimeoutOnClose.fromPartial({\n packet: packet ? packet.toProto() : undefined,\n proofUnreceived: Buffer.from(proof_unreceived, 'base64'),\n proofClose: Buffer.from(proof_close, 'base64'),\n proofHeight: proof_height ? proof_height.toProto() : undefined,\n nextSequenceRecv: long_1.default.fromNumber(next_sequence_recv),\n signer: signer,\n });\n };\n MsgTimeoutOnClose.prototype.packAny = function (_) {\n _;\n return any_1.Any.fromPartial({\n typeUrl: '/ibc.core.channel.v1.MsgTimeoutOnClose',\n value: tx_1.MsgTimeoutOnClose.encode(this.toProto()).finish(),\n });\n };\n MsgTimeoutOnClose.unpackAny = function (msgAny, _) {\n _;\n return MsgTimeoutOnClose.fromProto(tx_1.MsgTimeoutOnClose.decode(msgAny.value));\n };\n return MsgTimeoutOnClose;\n}(json_1.JSONSerializable));\nexports.MsgTimeoutOnClose = MsgTimeoutOnClose;\n//# sourceMappingURL=MsgTimeoutClose.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./MsgChannelOpenInit\"), exports);\n__exportStar(require(\"./MsgChannelOpenTry\"), exports);\n__exportStar(require(\"./MsgChannelOpenConfirm\"), exports);\n__exportStar(require(\"./MsgChannelOpenAck\"), exports);\n__exportStar(require(\"./MsgChannelCloseInit\"), exports);\n__exportStar(require(\"./MsgChannelCloseConfirm\"), exports);\n__exportStar(require(\"./MsgRecvPacket\"), exports);\n__exportStar(require(\"./MsgRecvAcknowledgement\"), exports);\n__exportStar(require(\"./MsgTimeout\"), exports);\n__exportStar(require(\"./MsgTimeoutClose\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgCreateClient = void 0;\nvar json_1 = require(\"../../../../util/json\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar tx_1 = require(\"@terra-money/terra.proto/ibc/core/client/v1/tx\");\n/**\n * MsgCreateClient defines a message to create an IBC client\n */\nvar MsgCreateClient = /** @class */ (function (_super) {\n __extends(MsgCreateClient, _super);\n /**\n * @param client_state light client state\n * @param consensus_state consensus state associated with the client that corresponds to a given\n * @param signer signer address\n */\n function MsgCreateClient(client_state, consensus_state, signer) {\n var _this = _super.call(this) || this;\n _this.client_state = client_state;\n _this.consensus_state = consensus_state;\n _this.signer = signer;\n return _this;\n }\n MsgCreateClient.fromAmino = function (_, isClassic) {\n _;\n isClassic;\n throw new Error('Amino not supported');\n };\n MsgCreateClient.prototype.toAmino = function (_) {\n _;\n throw new Error('Amino not supported');\n };\n MsgCreateClient.fromData = function (data, _) {\n _;\n var client_state = data.client_state, consensus_state = data.consensus_state, signer = data.signer;\n return new MsgCreateClient(client_state, consensus_state, signer);\n };\n MsgCreateClient.prototype.toData = function (_) {\n _;\n var _a = this, client_state = _a.client_state, consensus_state = _a.consensus_state, signer = _a.signer;\n return {\n '@type': '/ibc.core.client.v1.MsgCreateClient',\n client_state: client_state,\n consensus_state: consensus_state,\n signer: signer,\n };\n };\n MsgCreateClient.fromProto = function (proto, _) {\n _;\n return new MsgCreateClient(proto.clientState, proto.consensusState, proto.signer);\n };\n MsgCreateClient.prototype.toProto = function (_) {\n _;\n var _a = this, client_state = _a.client_state, consensus_state = _a.consensus_state, signer = _a.signer;\n return tx_1.MsgCreateClient.fromPartial({\n clientState: client_state,\n consensusState: consensus_state,\n signer: signer,\n });\n };\n MsgCreateClient.prototype.packAny = function (_) {\n _;\n return any_1.Any.fromPartial({\n typeUrl: '/ibc.core.client.v1.MsgCreateClient',\n value: tx_1.MsgCreateClient.encode(this.toProto()).finish(),\n });\n };\n MsgCreateClient.unpackAny = function (msgAny, _) {\n _;\n return MsgCreateClient.fromProto(tx_1.MsgCreateClient.decode(msgAny.value));\n };\n return MsgCreateClient;\n}(json_1.JSONSerializable));\nexports.MsgCreateClient = MsgCreateClient;\n//# sourceMappingURL=MsgCreateClient.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgSubmitMisbehaviour = void 0;\nvar json_1 = require(\"../../../../util/json\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar tx_1 = require(\"@terra-money/terra.proto/ibc/core/client/v1/tx\");\n/**\n * MsgSubmitMisbehaviour defines an sdk.Msg type that submits Evidence for light client misbehaviour.\n */\nvar MsgSubmitMisbehaviour = /** @class */ (function (_super) {\n __extends(MsgSubmitMisbehaviour, _super);\n /**\n * @param client_id client unique identifier\n * @param misbehaviour misbehaviour used for freezing the light client\n * @param signer signer address\n */\n function MsgSubmitMisbehaviour(client_id, misbehaviour, signer) {\n var _this = _super.call(this) || this;\n _this.client_id = client_id;\n _this.misbehaviour = misbehaviour;\n _this.signer = signer;\n return _this;\n }\n MsgSubmitMisbehaviour.fromAmino = function (_, isClassic) {\n _;\n isClassic;\n throw new Error('Amino not supported');\n };\n MsgSubmitMisbehaviour.prototype.toAmino = function (_) {\n _;\n throw new Error('Amino not supported');\n };\n MsgSubmitMisbehaviour.fromData = function (data, _) {\n _;\n var client_id = data.client_id, misbehaviour = data.misbehaviour, signer = data.signer;\n return new MsgSubmitMisbehaviour(client_id, misbehaviour, signer);\n };\n MsgSubmitMisbehaviour.prototype.toData = function (_) {\n _;\n var _a = this, client_id = _a.client_id, misbehaviour = _a.misbehaviour, signer = _a.signer;\n return {\n '@type': '/ibc.core.client.v1.MsgSubmitMisbehaviour',\n client_id: client_id,\n misbehaviour: misbehaviour,\n signer: signer,\n };\n };\n MsgSubmitMisbehaviour.fromProto = function (proto, _) {\n _;\n return new MsgSubmitMisbehaviour(proto.clientId, proto.misbehaviour, proto.signer);\n };\n MsgSubmitMisbehaviour.prototype.toProto = function (_) {\n _;\n var _a = this, client_id = _a.client_id, misbehaviour = _a.misbehaviour, signer = _a.signer;\n return tx_1.MsgSubmitMisbehaviour.fromPartial({\n clientId: client_id,\n misbehaviour: misbehaviour,\n signer: signer,\n });\n };\n MsgSubmitMisbehaviour.prototype.packAny = function (_) {\n _;\n return any_1.Any.fromPartial({\n typeUrl: '/ibc.core.client.v1.MsgSubmitMisbehaviour',\n value: tx_1.MsgSubmitMisbehaviour.encode(this.toProto()).finish(),\n });\n };\n MsgSubmitMisbehaviour.unpackAny = function (msgAny, _) {\n _;\n return MsgSubmitMisbehaviour.fromProto(tx_1.MsgSubmitMisbehaviour.decode(msgAny.value));\n };\n return MsgSubmitMisbehaviour;\n}(json_1.JSONSerializable));\nexports.MsgSubmitMisbehaviour = MsgSubmitMisbehaviour;\n//# sourceMappingURL=MsgSubmitMisbehaviour.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgUpdateClient = void 0;\nvar json_1 = require(\"../../../../util/json\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar tx_1 = require(\"@terra-money/terra.proto/ibc/core/client/v1/tx\");\nvar Header_1 = require(\"../../lightclient/tendermint/Header\");\n/**\n * MsgUpdateClient defines an sdk.Msg to update a IBC client state using the given header\n */\nvar MsgUpdateClient = /** @class */ (function (_super) {\n __extends(MsgUpdateClient, _super);\n /**\n * @param client_id client unique identifier\n * @param header header to update the light client\n * @param signer signer address\n */\n function MsgUpdateClient(client_id, header, signer) {\n var _this = _super.call(this) || this;\n _this.client_id = client_id;\n _this.header = header;\n _this.signer = signer;\n return _this;\n }\n MsgUpdateClient.fromAmino = function (_, isClassic) {\n _;\n isClassic;\n throw new Error('Amino not supported');\n };\n MsgUpdateClient.prototype.toAmino = function () {\n throw new Error('Amino not supported');\n };\n MsgUpdateClient.fromData = function (data, _) {\n _;\n var client_id = data.client_id, header = data.header, signer = data.signer;\n return new MsgUpdateClient(client_id, header ? Header_1.Header.fromData(header) : undefined, signer);\n };\n MsgUpdateClient.prototype.toData = function (_) {\n _;\n var _a = this, client_id = _a.client_id, header = _a.header, signer = _a.signer;\n return {\n '@type': '/ibc.core.client.v1.MsgUpdateClient',\n client_id: client_id,\n header: (header === null || header === void 0 ? void 0 : header.toData()) || undefined,\n signer: signer,\n };\n };\n MsgUpdateClient.fromProto = function (proto, _) {\n _;\n return new MsgUpdateClient(proto.clientId, proto.header ? Header_1.Header.unpackAny(proto.header) : undefined, proto.signer);\n };\n MsgUpdateClient.prototype.toProto = function (_) {\n _;\n var _a = this, client_id = _a.client_id, header = _a.header, signer = _a.signer;\n return tx_1.MsgUpdateClient.fromPartial({\n clientId: client_id,\n header: (header === null || header === void 0 ? void 0 : header.packAny()) || undefined,\n signer: signer,\n });\n };\n MsgUpdateClient.prototype.packAny = function (_) {\n _;\n return any_1.Any.fromPartial({\n typeUrl: '/ibc.core.client.v1.MsgUpdateClient',\n value: tx_1.MsgUpdateClient.encode(this.toProto()).finish(),\n });\n };\n MsgUpdateClient.unpackAny = function (msgAny, _) {\n _;\n return MsgUpdateClient.fromProto(tx_1.MsgUpdateClient.decode(msgAny.value));\n };\n return MsgUpdateClient;\n}(json_1.JSONSerializable));\nexports.MsgUpdateClient = MsgUpdateClient;\n//# sourceMappingURL=MsgUpdateClient.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgUpgradeClient = void 0;\nvar json_1 = require(\"../../../../util/json\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar tx_1 = require(\"@terra-money/terra.proto/ibc/core/client/v1/tx\");\n/**\n * MsgUpgradeClient defines an sdk.Msg to upgrade an IBC client to a new client state\n */\nvar MsgUpgradeClient = /** @class */ (function (_super) {\n __extends(MsgUpgradeClient, _super);\n /**\n * @param client_id client unique identifier\n * @param client_state upgraded client state\n * @param consensus_state upgraded consensus state, only contains enough information to serve as a basis of trust in update logic\n * @param proof_upgrade_client proof that old chain committed to new client\n * @param proof_upgrade_consensus_state proof that old chain committed to new consensus state\n * @param signer signer address\n */\n function MsgUpgradeClient(client_id, client_state, consensus_state, proof_upgrade_client, proof_upgrade_consensus_state, signer) {\n var _this = _super.call(this) || this;\n _this.client_id = client_id;\n _this.client_state = client_state;\n _this.consensus_state = consensus_state;\n _this.proof_upgrade_client = proof_upgrade_client;\n _this.proof_upgrade_consensus_state = proof_upgrade_consensus_state;\n _this.signer = signer;\n return _this;\n }\n MsgUpgradeClient.fromAmino = function (_, isClassic) {\n _;\n isClassic;\n throw new Error('Amino not supported');\n };\n MsgUpgradeClient.prototype.toAmino = function (_) {\n _;\n throw new Error('Amino not supported');\n };\n MsgUpgradeClient.fromData = function (data, _) {\n _;\n var client_id = data.client_id, client_state = data.client_state, consensus_state = data.consensus_state, proof_upgrade_client = data.proof_upgrade_client, proof_upgrade_consensus_state = data.proof_upgrade_consensus_state, signer = data.signer;\n return new MsgUpgradeClient(client_id, client_state, consensus_state, proof_upgrade_client, proof_upgrade_consensus_state, signer);\n };\n MsgUpgradeClient.prototype.toData = function (_) {\n _;\n var _a = this, client_id = _a.client_id, client_state = _a.client_state, consensus_state = _a.consensus_state, proof_upgrade_client = _a.proof_upgrade_client, proof_upgrade_consensus_state = _a.proof_upgrade_consensus_state, signer = _a.signer;\n return {\n '@type': '/ibc.core.client.v1.MsgUpgradeClient',\n client_id: client_id,\n client_state: client_state,\n consensus_state: consensus_state,\n proof_upgrade_client: proof_upgrade_client,\n proof_upgrade_consensus_state: proof_upgrade_consensus_state,\n signer: signer,\n };\n };\n MsgUpgradeClient.fromProto = function (proto, _) {\n _;\n return new MsgUpgradeClient(proto.clientId, proto.clientState, proto.consensusState, Buffer.from(proto.proofUpgradeClient).toString('base64'), Buffer.from(proto.proofUpgradeConsensusState).toString('base64'), proto.signer);\n };\n MsgUpgradeClient.prototype.toProto = function (_) {\n _;\n var _a = this, client_id = _a.client_id, client_state = _a.client_state, consensus_state = _a.consensus_state, proof_upgrade_client = _a.proof_upgrade_client, proof_upgrade_consensus_state = _a.proof_upgrade_consensus_state, signer = _a.signer;\n return tx_1.MsgUpgradeClient.fromPartial({\n clientId: client_id,\n clientState: client_state,\n consensusState: consensus_state,\n proofUpgradeClient: Buffer.from(proof_upgrade_client, 'base64'),\n proofUpgradeConsensusState: Buffer.from(proof_upgrade_consensus_state, 'base64'),\n signer: signer,\n });\n };\n MsgUpgradeClient.prototype.packAny = function (_) {\n _;\n return any_1.Any.fromPartial({\n typeUrl: '/ibc.core.client.v1.MsgUpgradeClient',\n value: tx_1.MsgUpgradeClient.encode(this.toProto()).finish(),\n });\n };\n MsgUpgradeClient.unpackAny = function (msgAny, _) {\n _;\n return MsgUpgradeClient.fromProto(tx_1.MsgUpgradeClient.decode(msgAny.value));\n };\n return MsgUpgradeClient;\n}(json_1.JSONSerializable));\nexports.MsgUpgradeClient = MsgUpgradeClient;\n//# sourceMappingURL=MsgUpgradeClient.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./MsgCreateClient\"), exports);\n__exportStar(require(\"./MsgUpdateClient\"), exports);\n__exportStar(require(\"./MsgUpgradeClient\"), exports);\n__exportStar(require(\"./MsgSubmitMisbehaviour\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PublicKey = exports.Proof = void 0;\nvar proof_1 = require(\"@terra-money/terra.proto/tendermint/crypto/proof\");\nvar keys_1 = require(\"@terra-money/terra.proto/tendermint/crypto/keys\");\nvar Long = __importStar(require(\"long\"));\nvar json_1 = require(\"../../../../../util/json\");\nvar Proof = /** @class */ (function (_super) {\n __extends(Proof, _super);\n /**\n * @param total\n * @param index\n * @param leafHash\n * @param aunts\n */\n function Proof(total, index, leafHash, aunts) {\n var _this = _super.call(this) || this;\n _this.total = total;\n _this.index = index;\n _this.leafHash = leafHash;\n _this.aunts = aunts;\n return _this;\n }\n Proof.fromAmino = function (_) {\n _;\n throw new Error('Amino not supported');\n };\n Proof.prototype.toAmino = function () {\n throw new Error('Amino not supported');\n };\n Proof.fromData = function (data) {\n var total = data.total, index = data.index, leafHash = data.leaf_hash, aunts = data.aunts;\n return new Proof(Number.parseInt(total), Number.parseInt(index), leafHash, aunts);\n };\n Proof.prototype.toData = function () {\n var _a = this, total = _a.total, index = _a.index, leafHash = _a.leafHash, aunts = _a.aunts;\n var res = {\n total: total.toFixed(),\n index: index.toFixed(),\n leaf_hash: leafHash,\n aunts: aunts,\n };\n return res;\n };\n Proof.fromProto = function (proto) {\n return new Proof(proto.total.toNumber(), proto.index.toNumber(), Buffer.from(proto.leafHash).toString('base64'), proto.aunts.map(function (aunt) { return Buffer.from(aunt).toString('base64'); }));\n };\n Proof.prototype.toProto = function () {\n var _a = this, total = _a.total, index = _a.index, leafHash = _a.leafHash, aunts = _a.aunts;\n return proof_1.Proof.fromPartial({\n total: Long.fromNumber(total),\n index: Long.fromNumber(index),\n leafHash: Buffer.from(leafHash, 'base64'),\n aunts: aunts.map(function (aunt) { return Buffer.from(aunt, 'base64'); }),\n });\n };\n return Proof;\n}(json_1.JSONSerializable));\nexports.Proof = Proof;\n/** PublicKey defines the keys available for use with Tendermint Validators */\nvar PublicKey = /** @class */ (function (_super) {\n __extends(PublicKey, _super);\n /**\n * @param ed25519\n * @param secp256k1\n */\n function PublicKey(ed25519, secp256k1) {\n var _this = _super.call(this) || this;\n _this.ed25519 = ed25519;\n _this.secp256k1 = secp256k1;\n return _this;\n }\n PublicKey.fromAmino = function (_) {\n _;\n throw new Error('Amino not supported');\n };\n PublicKey.prototype.toAmino = function () {\n throw new Error('Amino not supported');\n };\n PublicKey.fromData = function (data) {\n var ed25519 = data.ed25519, secp256k1 = data.secp256k1;\n return new PublicKey(ed25519, secp256k1);\n };\n PublicKey.prototype.toData = function () {\n var _a = this, ed25519 = _a.ed25519, secp256k1 = _a.secp256k1;\n var res = {\n ed25519: ed25519,\n secp256k1: secp256k1,\n };\n return res;\n };\n PublicKey.fromProto = function (proto) {\n var ed25519 = proto.ed25519, secp256k1 = proto.secp256k1;\n return new PublicKey(ed25519 ? Buffer.from(ed25519).toString('base64') : undefined, secp256k1 ? Buffer.from(secp256k1).toString('base64') : undefined);\n };\n PublicKey.prototype.toProto = function () {\n var _a = this, ed25519 = _a.ed25519, secp256k1 = _a.secp256k1;\n return keys_1.PublicKey.fromPartial({\n ed25519: ed25519 ? Buffer.from(ed25519, 'base64') : undefined,\n secp256k1: secp256k1 ? Buffer.from(secp256k1, 'base64') : undefined,\n });\n };\n return PublicKey;\n}(json_1.JSONSerializable));\nexports.PublicKey = PublicKey;\n//# sourceMappingURL=crypto.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Validator = exports.ValidatorSet = exports.CommitSig = exports.Commit = exports.PartSetHeader = exports.BlockID = exports.SignedHeader = exports.Header = void 0;\nvar types_1 = require(\"@terra-money/terra.proto/tendermint/types/types\");\nvar validator_1 = require(\"@terra-money/terra.proto/tendermint/types/validator\");\nvar Long = __importStar(require(\"long\"));\nvar json_1 = require(\"../../../../../util/json\");\nvar version_1 = require(\"./version\");\nvar crypto_1 = require(\"./crypto\");\n/** Header defines the structure of a Tendermint block header. */\nvar Header = /** @class */ (function (_super) {\n __extends(Header, _super);\n /**\n * @param total\n * @param hash\n */\n function Header(version, chainId, height, time, lastBlockId, lastCommitHash, dataHash, validatorsHash, nextValidatorsHash, consensusHash, appHash, lastResultsHash, evidenceHash, proposerAddress) {\n var _this = _super.call(this) || this;\n _this.version = version;\n _this.chainId = chainId;\n _this.height = height;\n _this.time = time;\n _this.lastBlockId = lastBlockId;\n _this.lastCommitHash = lastCommitHash;\n _this.dataHash = dataHash;\n _this.validatorsHash = validatorsHash;\n _this.nextValidatorsHash = nextValidatorsHash;\n _this.consensusHash = consensusHash;\n _this.appHash = appHash;\n _this.lastResultsHash = lastResultsHash;\n _this.evidenceHash = evidenceHash;\n _this.proposerAddress = proposerAddress;\n return _this;\n }\n Header.fromAmino = function (_) {\n _;\n throw new Error('Amino not supported');\n };\n Header.prototype.toAmino = function () {\n throw new Error('Amino not supported');\n };\n Header.fromData = function (data) {\n var version = data.version, chainId = data.chain_id, height = data.height, time = data.time, lastBlockId = data.last_block_id, lastCommitHash = data.last_commit_hash, dataHash = data.data_hash, validatorsHash = data.validators_hash, nextValidatorsHash = data.next_validators_hash, consensusHash = data.consensus_hash, appHash = data.app_hash, lastResultsHash = data.last_results_hash, evidenceHash = data.evidence_hash, proposerAddress = data.proposer_address;\n return new Header(version ? version_1.Consensus.fromData(version) : undefined, chainId, height, time ? new Date(time) : undefined, lastBlockId ? BlockID.fromData(lastBlockId) : undefined, lastCommitHash, dataHash, validatorsHash, nextValidatorsHash, consensusHash, appHash, lastResultsHash, evidenceHash, proposerAddress);\n };\n Header.prototype.toData = function () {\n var _a = this, version = _a.version, chainId = _a.chainId, height = _a.height, time = _a.time, lastBlockId = _a.lastBlockId, lastCommitHash = _a.lastCommitHash, dataHash = _a.dataHash, validatorsHash = _a.validatorsHash, nextValidatorsHash = _a.nextValidatorsHash, consensusHash = _a.consensusHash, appHash = _a.appHash, lastResultsHash = _a.lastResultsHash, evidenceHash = _a.evidenceHash, proposerAddress = _a.proposerAddress;\n var res = {\n version: version === null || version === void 0 ? void 0 : version.toData(),\n chain_id: chainId,\n height: height,\n time: time ? time.toISOString().replace(/\\.000Z$/, 'Z') : undefined,\n last_block_id: lastBlockId ? lastBlockId.toData() : undefined,\n last_commit_hash: lastCommitHash,\n data_hash: dataHash,\n validators_hash: validatorsHash,\n next_validators_hash: nextValidatorsHash,\n consensus_hash: consensusHash,\n app_hash: appHash,\n last_results_hash: lastResultsHash,\n evidence_hash: evidenceHash,\n proposer_address: proposerAddress,\n };\n return res;\n };\n Header.fromProto = function (proto) {\n var version = proto.version, chainId = proto.chainId, height = proto.height, time = proto.time, lastBlockId = proto.lastBlockId, lastCommitHash = proto.lastCommitHash, dataHash = proto.dataHash, validatorsHash = proto.validatorsHash, nextValidatorsHash = proto.nextValidatorsHash, consensusHash = proto.consensusHash, appHash = proto.appHash, lastResultsHash = proto.lastResultsHash, evidenceHash = proto.evidenceHash, proposerAddress = proto.proposerAddress;\n return new Header(version ? version_1.Consensus.fromProto(version) : undefined, chainId, height.toString(), time, lastBlockId ? BlockID.fromProto(lastBlockId) : undefined, Buffer.from(lastCommitHash).toString('base64'), Buffer.from(dataHash).toString('base64'), Buffer.from(validatorsHash).toString('base64'), Buffer.from(nextValidatorsHash).toString('base64'), Buffer.from(consensusHash).toString('base64'), Buffer.from(appHash).toString('base64'), Buffer.from(lastResultsHash).toString('base64'), Buffer.from(evidenceHash).toString('base64'), proposerAddress.toString());\n };\n Header.prototype.toProto = function () {\n var _a = this, version = _a.version, chainId = _a.chainId, height = _a.height, time = _a.time, lastBlockId = _a.lastBlockId, lastCommitHash = _a.lastCommitHash, dataHash = _a.dataHash, validatorsHash = _a.validatorsHash, nextValidatorsHash = _a.nextValidatorsHash, consensusHash = _a.consensusHash, appHash = _a.appHash, lastResultsHash = _a.lastResultsHash, evidenceHash = _a.evidenceHash, proposerAddress = _a.proposerAddress;\n return types_1.Header.fromPartial({\n version: version === null || version === void 0 ? void 0 : version.toProto(),\n chainId: chainId,\n height: Long.fromString(height),\n time: time,\n lastBlockId: lastBlockId === null || lastBlockId === void 0 ? void 0 : lastBlockId.toProto(),\n lastCommitHash: Buffer.from(lastCommitHash, 'base64'),\n dataHash: Buffer.from(dataHash, 'base64'),\n validatorsHash: Buffer.from(validatorsHash, 'base64'),\n nextValidatorsHash: Buffer.from(nextValidatorsHash, 'base64'),\n consensusHash: Buffer.from(consensusHash, 'base64'),\n appHash: Buffer.from(appHash, 'base64'),\n lastResultsHash: Buffer.from(lastResultsHash, 'base64'),\n evidenceHash: Buffer.from(evidenceHash, 'base64'),\n proposerAddress: Buffer.from(proposerAddress),\n });\n };\n return Header;\n}(json_1.JSONSerializable));\nexports.Header = Header;\nvar SignedHeader = /** @class */ (function (_super) {\n __extends(SignedHeader, _super);\n /**\n * @param header\n * @param commit\n */\n function SignedHeader(header, commit) {\n var _this = _super.call(this) || this;\n _this.header = header;\n _this.commit = commit;\n return _this;\n }\n SignedHeader.fromAmino = function (_) {\n _;\n throw new Error('Amino not supported');\n };\n SignedHeader.prototype.toAmino = function () {\n throw new Error('Amino not supported');\n };\n SignedHeader.fromData = function (data) {\n var header = data.header, commit = data.commit;\n return new SignedHeader(header ? Header.fromData(header) : undefined, commit ? Commit.fromData(commit) : undefined);\n };\n SignedHeader.prototype.toData = function () {\n var _a = this, header = _a.header, commit = _a.commit;\n var res = {\n header: header === null || header === void 0 ? void 0 : header.toData(),\n commit: commit === null || commit === void 0 ? void 0 : commit.toData(),\n };\n return res;\n };\n SignedHeader.fromProto = function (proto) {\n return new SignedHeader(proto.header ? Header.fromProto(proto.header) : undefined, proto.commit ? Commit.fromProto(proto.commit) : undefined);\n };\n SignedHeader.prototype.toProto = function () {\n var _a = this, header = _a.header, commit = _a.commit;\n return types_1.SignedHeader.fromPartial({\n header: header === null || header === void 0 ? void 0 : header.toProto(),\n commit: commit === null || commit === void 0 ? void 0 : commit.toProto(),\n });\n };\n return SignedHeader;\n}(json_1.JSONSerializable));\nexports.SignedHeader = SignedHeader;\n/** BlockID */\nvar BlockID = /** @class */ (function (_super) {\n __extends(BlockID, _super);\n /**\n * @param hash\n * @param partSetHeader\n */\n function BlockID(hash, partSetHeader) {\n var _this = _super.call(this) || this;\n _this.hash = hash;\n _this.partSetHeader = partSetHeader;\n return _this;\n }\n BlockID.fromAmino = function (_) {\n _;\n throw new Error('Amino not supported');\n };\n BlockID.prototype.toAmino = function () {\n throw new Error('Amino not supported');\n };\n BlockID.fromData = function (data) {\n var hash = data.hash, partSetHeader = data.part_set_header;\n return new BlockID(hash, partSetHeader ? PartSetHeader.fromData(partSetHeader) : undefined);\n };\n BlockID.prototype.toData = function () {\n var _a = this, hash = _a.hash, partSetHeader = _a.partSetHeader;\n var res = {\n hash: hash,\n part_set_header: partSetHeader === null || partSetHeader === void 0 ? void 0 : partSetHeader.toData(),\n };\n return res;\n };\n BlockID.fromProto = function (proto) {\n return new BlockID(Buffer.from(proto.hash).toString('base64'), proto.partSetHeader\n ? PartSetHeader.fromProto(proto.partSetHeader)\n : undefined);\n };\n BlockID.prototype.toProto = function () {\n var _a = this, hash = _a.hash, partSetHeader = _a.partSetHeader;\n return types_1.BlockID.fromPartial({\n hash: Buffer.from(hash, 'base64'),\n partSetHeader: partSetHeader ? partSetHeader.toProto() : undefined,\n });\n };\n return BlockID;\n}(json_1.JSONSerializable));\nexports.BlockID = BlockID;\n/** PartsetHeader */\nvar PartSetHeader = /** @class */ (function (_super) {\n __extends(PartSetHeader, _super);\n /**\n * @param total\n * @param hash\n */\n function PartSetHeader(total, hash) {\n var _this = _super.call(this) || this;\n _this.total = total;\n _this.hash = hash;\n return _this;\n }\n PartSetHeader.fromAmino = function (_) {\n _;\n throw new Error('Amino not supported');\n };\n PartSetHeader.prototype.toAmino = function () {\n throw new Error('Amino not supported');\n };\n PartSetHeader.fromData = function (data) {\n var total = data.total, hash = data.hash;\n return new PartSetHeader(parseInt(total), hash);\n };\n PartSetHeader.prototype.toData = function () {\n var _a = this, total = _a.total, hash = _a.hash;\n var res = {\n total: total.toFixed(),\n hash: hash,\n };\n return res;\n };\n PartSetHeader.fromProto = function (proto) {\n return new PartSetHeader(proto.total, Buffer.from(proto.hash).toString('base64'));\n };\n PartSetHeader.prototype.toProto = function () {\n var _a = this, total = _a.total, hash = _a.hash;\n return types_1.PartSetHeader.fromPartial({\n total: total,\n hash: Buffer.from(hash, 'base64'),\n });\n };\n return PartSetHeader;\n}(json_1.JSONSerializable));\nexports.PartSetHeader = PartSetHeader;\n/** Commit contains the evidence that a block was committed by a set of validators. */\nvar Commit = /** @class */ (function (_super) {\n __extends(Commit, _super);\n /**\n * @param height\n * @param round\n * @param blockId\n * @param signatures\n */\n function Commit(height, round, blockId, signatures) {\n var _this = _super.call(this) || this;\n _this.height = height;\n _this.round = round;\n _this.blockId = blockId;\n _this.signatures = signatures;\n return _this;\n }\n Commit.fromAmino = function (_) {\n _;\n throw new Error('Amino not supported');\n };\n Commit.prototype.toAmino = function () {\n throw new Error('Amino not supported');\n };\n Commit.fromData = function (data) {\n var height = data.height, round = data.round, blockId = data.block_id, signatures = data.signatures;\n return new Commit(Long.fromString(height), Number.parseInt(round), blockId ? BlockID.fromData(blockId) : undefined, signatures.map(function (sig) { return CommitSig.fromData(sig); }));\n };\n Commit.prototype.toData = function () {\n var _a = this, height = _a.height, round = _a.round, blockId = _a.blockId, signatures = _a.signatures;\n var res = {\n height: height.toString(),\n round: round.toFixed(),\n block_id: blockId === null || blockId === void 0 ? void 0 : blockId.toData(),\n signatures: signatures.map(function (sig) { return sig.toData(); }),\n };\n return res;\n };\n Commit.fromProto = function (proto) {\n var height = proto.height, round = proto.round, blockId = proto.blockId, signatures = proto.signatures;\n return new Commit(height, round, blockId ? BlockID.fromProto(blockId) : undefined, signatures.map(function (sig) { return CommitSig.fromProto(sig); }));\n };\n Commit.prototype.toProto = function () {\n var _a = this, height = _a.height, round = _a.round, blockId = _a.blockId, signatures = _a.signatures;\n return types_1.Commit.fromPartial({\n height: height,\n round: round,\n blockId: blockId === null || blockId === void 0 ? void 0 : blockId.toProto(),\n signatures: signatures.map(function (sig) { return sig.toProto(); }),\n });\n };\n return Commit;\n}(json_1.JSONSerializable));\nexports.Commit = Commit;\n/** CommitSig is a part of the Vote included in a Commit. */\nvar CommitSig = /** @class */ (function (_super) {\n __extends(CommitSig, _super);\n /**\n * @param blockIdFlag\n * @param validatorAddress\n * @param timestamp\n * @param signature\n */\n function CommitSig(blockIdFlag, validatorAddress, timestamp, signature) {\n var _this = _super.call(this) || this;\n _this.blockIdFlag = blockIdFlag;\n _this.validatorAddress = validatorAddress;\n _this.timestamp = timestamp;\n _this.signature = signature;\n return _this;\n }\n CommitSig.fromAmino = function (_) {\n _;\n throw new Error('Amino not supported');\n };\n CommitSig.prototype.toAmino = function () {\n throw new Error('Amino not supported');\n };\n CommitSig.fromData = function (data) {\n var block_id_flag = data.block_id_flag, validator_address = data.validator_address, timestamp = data.timestamp, signature = data.signature;\n return new CommitSig((0, types_1.blockIDFlagFromJSON)(block_id_flag), validator_address, timestamp ? new Date(timestamp) : undefined, signature);\n };\n CommitSig.prototype.toData = function () {\n var _a = this, blockIdFlag = _a.blockIdFlag, validatorAddress = _a.validatorAddress, timestamp = _a.timestamp, signature = _a.signature;\n var res = {\n block_id_flag: (0, types_1.blockIDFlagToJSON)(blockIdFlag),\n validator_address: validatorAddress || '',\n timestamp: timestamp\n ? timestamp.toISOString().replace(/\\.000Z$/, 'Z')\n : undefined,\n signature: signature || '',\n };\n return res;\n };\n CommitSig.fromProto = function (proto) {\n var blockIdFlag = proto.blockIdFlag, validatorAddress = proto.validatorAddress, timestamp = proto.timestamp, signature = proto.signature;\n return new CommitSig(blockIdFlag, Buffer.from(validatorAddress).toString('base64'), timestamp, Buffer.from(signature).toString('base64'));\n };\n CommitSig.prototype.toProto = function () {\n var _a = this, blockIdFlag = _a.blockIdFlag, validatorAddress = _a.validatorAddress, timestamp = _a.timestamp, signature = _a.signature;\n return types_1.CommitSig.fromPartial({\n blockIdFlag: blockIdFlag,\n validatorAddress: validatorAddress\n ? Buffer.from(validatorAddress, 'base64')\n : undefined,\n timestamp: timestamp,\n signature: signature ? Buffer.from(signature, 'base64') : undefined,\n });\n };\n return CommitSig;\n}(json_1.JSONSerializable));\nexports.CommitSig = CommitSig;\nvar ValidatorSet = /** @class */ (function (_super) {\n __extends(ValidatorSet, _super);\n /**\n * @param validators\n * @param proposer\n * @param totalVotingPower\n */\n function ValidatorSet(validators, proposer, totalVotingPower) {\n var _this = _super.call(this) || this;\n _this.validators = validators;\n _this.proposer = proposer;\n _this.totalVotingPower = totalVotingPower;\n return _this;\n }\n ValidatorSet.fromAmino = function (_) {\n _;\n throw new Error('Amino not supported');\n };\n ValidatorSet.prototype.toAmino = function () {\n throw new Error('Amino not supported');\n };\n ValidatorSet.fromData = function (data) {\n var validators = data.validators, proposer = data.proposer, total_voting_power = data.total_voting_power;\n return new ValidatorSet(validators.map(function (val) { return Validator.fromData(val); }), proposer ? Validator.fromData(proposer) : undefined, Long.fromString(total_voting_power));\n };\n ValidatorSet.prototype.toData = function () {\n var _a = this, validators = _a.validators, proposer = _a.proposer, totalVotingPower = _a.totalVotingPower;\n var res = {\n validators: validators.map(function (val) { return val.toData(); }),\n proposer: proposer === null || proposer === void 0 ? void 0 : proposer.toData(),\n total_voting_power: totalVotingPower.toString(),\n };\n return res;\n };\n ValidatorSet.fromProto = function (proto) {\n var validators = proto.validators, proposer = proto.proposer, totalVotingPower = proto.totalVotingPower;\n return new ValidatorSet(validators.map(function (val) { return Validator.fromProto(val); }), proposer ? Validator.fromProto(proposer) : undefined, totalVotingPower);\n };\n ValidatorSet.prototype.toProto = function () {\n var _a = this, validators = _a.validators, proposer = _a.proposer, totalVotingPower = _a.totalVotingPower;\n return validator_1.ValidatorSet.fromPartial({\n validators: validators.map(function (val) { return val.toProto(); }),\n proposer: (proposer === null || proposer === void 0 ? void 0 : proposer.toProto()) || undefined,\n totalVotingPower: totalVotingPower,\n });\n };\n return ValidatorSet;\n}(json_1.JSONSerializable));\nexports.ValidatorSet = ValidatorSet;\nvar Validator = /** @class */ (function (_super) {\n __extends(Validator, _super);\n /**\n * @param address\n * @param pubKey\n * @param votingPower\n * @param proposerPriority\n */\n function Validator(address, // not AccAddress in case of opposite chain is not cosmos-sdk based\n pubKey, votingPower, proposerPriority) {\n var _this = _super.call(this) || this;\n _this.address = address;\n _this.pubKey = pubKey;\n _this.votingPower = votingPower;\n _this.proposerPriority = proposerPriority;\n return _this;\n }\n Validator.fromAmino = function (_) {\n _;\n throw new Error('Amino not supported');\n };\n Validator.prototype.toAmino = function () {\n throw new Error('Amino not supported');\n };\n Validator.fromData = function (data) {\n var address = data.address, pubKey = data.pub_key, votingPower = data.voting_power, proposerPriority = data.proposer_priority;\n return new Validator(address, pubKey ? crypto_1.PublicKey.fromData(pubKey) : undefined, Long.fromString(votingPower), Long.fromString(proposerPriority));\n };\n Validator.prototype.toData = function () {\n var _a = this, address = _a.address, pubKey = _a.pubKey, votingPower = _a.votingPower, proposerPriority = _a.proposerPriority;\n var res = {\n address: address,\n pub_key: pubKey === null || pubKey === void 0 ? void 0 : pubKey.toData(),\n voting_power: votingPower.toString(),\n proposer_priority: proposerPriority.toString(),\n };\n return res;\n };\n Validator.fromProto = function (proto) {\n var address = proto.address, pubKey = proto.pubKey, votingPower = proto.votingPower, proposerPriority = proto.proposerPriority;\n return new Validator(Buffer.from(address).toString('base64'), pubKey ? crypto_1.PublicKey.fromProto(pubKey) : undefined, votingPower, proposerPriority);\n };\n Validator.prototype.toProto = function () {\n var _a = this, address = _a.address, pubKey = _a.pubKey, votingPower = _a.votingPower, proposerPriority = _a.proposerPriority;\n return validator_1.Validator.fromPartial({\n address: Buffer.from(address, 'base64'),\n pubKey: (pubKey === null || pubKey === void 0 ? void 0 : pubKey.toProto()) || undefined,\n votingPower: votingPower,\n proposerPriority: proposerPriority,\n });\n };\n return Validator;\n}(json_1.JSONSerializable));\nexports.Validator = Validator;\n//# sourceMappingURL=types.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.App = exports.Consensus = void 0;\nvar types_1 = require(\"@terra-money/terra.proto/tendermint/version/types\");\nvar types_2 = require(\"@terra-money/terra.proto/tendermint/version/types\");\nvar Long = __importStar(require(\"long\"));\nvar json_1 = require(\"../../../../../util/json\");\n/**\n * Consensus captures the consensus rules for processing a block in the blockchain,\n * including all blockchain data structures and the rules of the application's\n * state transition machine.\n */\nvar Consensus = /** @class */ (function (_super) {\n __extends(Consensus, _super);\n /**\n * @param block\n * @param app\n */\n function Consensus(block, app) {\n var _this = _super.call(this) || this;\n _this.block = block;\n _this.app = app;\n return _this;\n }\n Consensus.fromAmino = function (_) {\n _;\n throw new Error('Amino not supported');\n };\n Consensus.prototype.toAmino = function () {\n throw new Error('Amino not supported');\n };\n Consensus.fromData = function (data) {\n var block = data.block, app = data.app;\n return new Consensus(Number.parseInt(block), Number.parseInt(app));\n };\n Consensus.prototype.toData = function () {\n var _a = this, block = _a.block, app = _a.app;\n var res = {\n block: block.toFixed(),\n app: app.toFixed(),\n };\n return res;\n };\n Consensus.fromProto = function (proto) {\n return new Consensus(proto.block.toNumber(), proto.app.toNumber());\n };\n Consensus.prototype.toProto = function () {\n var _a = this, block = _a.block, app = _a.app;\n return types_1.Consensus.fromPartial({\n block: Long.fromNumber(block),\n app: Long.fromNumber(app),\n });\n };\n return Consensus;\n}(json_1.JSONSerializable));\nexports.Consensus = Consensus;\n/**\n * App captures the consensus rules for processing a block in the blockchain,\n * including all blockchain data structures and the rules of the application's\n * state transition machine.\n */\nvar App = /** @class */ (function (_super) {\n __extends(App, _super);\n /**\n * @param protocol\n * @param software\n */\n function App(protocol, software) {\n var _this = _super.call(this) || this;\n _this.protocol = protocol;\n _this.software = software;\n return _this;\n }\n App.fromAmino = function (_) {\n _;\n throw new Error('Amino not supported');\n };\n App.prototype.toAmino = function () {\n throw new Error('Amino not supported');\n };\n App.fromData = function (data) {\n var protocol = data.protocol, software = data.software;\n return new App(Number.parseInt(protocol), software);\n };\n App.prototype.toData = function () {\n var _a = this, protocol = _a.protocol, software = _a.software;\n var res = {\n protocol: protocol.toFixed(),\n software: software,\n };\n return res;\n };\n App.fromProto = function (proto) {\n return new App(proto.protocol.toNumber(), proto.software);\n };\n App.prototype.toProto = function () {\n var _a = this, protocol = _a.protocol, software = _a.software;\n return types_2.App.fromPartial({\n protocol: Long.fromNumber(protocol),\n software: software,\n });\n };\n return App;\n}(json_1.JSONSerializable));\nexports.App = App;\n//# sourceMappingURL=version.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgConnectionOpenAck = void 0;\nvar json_1 = require(\"../../../../util/json\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar Version_1 = require(\"../../core/connection/Version\");\nvar tx_1 = require(\"@terra-money/terra.proto/ibc/core/connection/v1/tx\");\nvar Height_1 = require(\"../../core/client/Height\");\n/**\n * MsgConnectionOpenAck defines a msg sent by a Relayer to Chain A to\n * acknowledge the change of connection state to TRYOPEN on Chain B.\n */\nvar MsgConnectionOpenAck = /** @class */ (function (_super) {\n __extends(MsgConnectionOpenAck, _super);\n /**\n * @param connection_id\n * @param counterparty_connection_id\n * @param version\n * @param client_state\n * @param proof_height proof of the initialization the connection on Chain B: `UNITIALIZED -> TRYOPEN`\n * @param proof_try proof of client state included in message\n * @param proof_client proof of client consensus state\n * @param proof_consensus\n * @param consenesus_height\n * @param signer signer address\n */\n function MsgConnectionOpenAck(connection_id, counterparty_connection_id, version, client_state, proof_height, proof_try, proof_client, proof_consensus, consensus_height, signer) {\n var _this = _super.call(this) || this;\n _this.connection_id = connection_id;\n _this.counterparty_connection_id = counterparty_connection_id;\n _this.version = version;\n _this.client_state = client_state;\n _this.proof_height = proof_height;\n _this.proof_try = proof_try;\n _this.proof_client = proof_client;\n _this.proof_consensus = proof_consensus;\n _this.consensus_height = consensus_height;\n _this.signer = signer;\n return _this;\n }\n MsgConnectionOpenAck.fromAmino = function (_, isClassic) {\n _;\n isClassic;\n throw new Error('Amino not supported');\n };\n MsgConnectionOpenAck.prototype.toAmino = function (_) {\n _;\n throw new Error('Amino not supported');\n };\n MsgConnectionOpenAck.fromData = function (data, _) {\n _;\n var connection_id = data.connection_id, counterparty_connection_id = data.counterparty_connection_id, version = data.version, client_state = data.client_state, proof_height = data.proof_height, proof_try = data.proof_try, proof_client = data.proof_client, proof_consensus = data.proof_consensus, consensus_height = data.consensus_height, signer = data.signer;\n return new MsgConnectionOpenAck(connection_id, counterparty_connection_id, version ? Version_1.Version.fromData(version) : undefined, client_state, proof_height ? Height_1.Height.fromData(proof_height) : undefined, proof_try, proof_client, proof_consensus, consensus_height ? Height_1.Height.fromData(consensus_height) : undefined, signer);\n };\n MsgConnectionOpenAck.prototype.toData = function (_) {\n _;\n var _a = this, connection_id = _a.connection_id, counterparty_connection_id = _a.counterparty_connection_id, version = _a.version, client_state = _a.client_state, proof_height = _a.proof_height, proof_try = _a.proof_try, proof_client = _a.proof_client, proof_consensus = _a.proof_consensus, consensus_height = _a.consensus_height, signer = _a.signer;\n return {\n '@type': '/ibc.core.connection.v1.MsgConnectionOpenAck',\n connection_id: connection_id,\n counterparty_connection_id: counterparty_connection_id,\n version: version ? version.toData() : undefined,\n client_state: client_state,\n proof_height: proof_height ? proof_height.toData() : undefined,\n proof_try: proof_try,\n proof_client: proof_client,\n proof_consensus: proof_consensus,\n consensus_height: consensus_height\n ? consensus_height.toData()\n : undefined,\n signer: signer,\n };\n };\n MsgConnectionOpenAck.fromProto = function (proto, _) {\n _;\n return new MsgConnectionOpenAck(proto.connectionId, proto.counterpartyConnectionId, proto.version ? Version_1.Version.fromProto(proto.version) : undefined, proto.clientState, proto.proofHeight ? Height_1.Height.fromProto(proto.proofHeight) : undefined, Buffer.from(proto.proofTry).toString('base64'), Buffer.from(proto.proofClient).toString('base64'), Buffer.from(proto.proofConsensus).toString('base64'), proto.consensusHeight\n ? Height_1.Height.fromProto(proto.consensusHeight)\n : undefined, proto.signer);\n };\n MsgConnectionOpenAck.prototype.toProto = function (_) {\n _;\n var _a = this, connection_id = _a.connection_id, counterparty_connection_id = _a.counterparty_connection_id, version = _a.version, client_state = _a.client_state, proof_height = _a.proof_height, proof_try = _a.proof_try, proof_client = _a.proof_client, proof_consensus = _a.proof_consensus, consensus_height = _a.consensus_height, signer = _a.signer;\n return tx_1.MsgConnectionOpenAck.fromPartial({\n connectionId: connection_id,\n counterpartyConnectionId: counterparty_connection_id,\n version: version ? version.toProto() : undefined,\n clientState: client_state,\n proofHeight: proof_height ? proof_height.toProto() : undefined,\n proofTry: Buffer.from(proof_try, 'base64'),\n proofClient: Buffer.from(proof_client, 'base64'),\n proofConsensus: Buffer.from(proof_consensus, 'base64'),\n consensusHeight: consensus_height\n ? consensus_height.toProto()\n : undefined,\n signer: signer,\n });\n };\n MsgConnectionOpenAck.prototype.packAny = function (_) {\n _;\n return any_1.Any.fromPartial({\n typeUrl: '/ibc.core.connection.v1.MsgConnectionOpenAck',\n value: tx_1.MsgConnectionOpenAck.encode(this.toProto()).finish(),\n });\n };\n MsgConnectionOpenAck.unpackAny = function (msgAny, _) {\n _;\n return MsgConnectionOpenAck.fromProto(tx_1.MsgConnectionOpenAck.decode(msgAny.value));\n };\n return MsgConnectionOpenAck;\n}(json_1.JSONSerializable));\nexports.MsgConnectionOpenAck = MsgConnectionOpenAck;\n//# sourceMappingURL=MsgConnectionOpenAck.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgConnectionOpenConfirm = void 0;\nvar json_1 = require(\"../../../../util/json\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar tx_1 = require(\"@terra-money/terra.proto/ibc/core/connection/v1/tx\");\nvar Height_1 = require(\"../../core/client/Height\");\n/**\n * MsgConnectionOpenConfirm defines a msg sent by a Relayer to Chain B to\n * acknowledge the change of connection state to OPEN on Chain A.\n */\nvar MsgConnectionOpenConfirm = /** @class */ (function (_super) {\n __extends(MsgConnectionOpenConfirm, _super);\n /**\n * @param connection_id\n * @param proof_ack proof for the change of the connection state on Chain A: `INIT -> OPEN`\n * @param proof_height\n * @param signer signer address\n */\n function MsgConnectionOpenConfirm(connection_id, proof_ack, proof_height, signer) {\n var _this = _super.call(this) || this;\n _this.connection_id = connection_id;\n _this.proof_ack = proof_ack;\n _this.proof_height = proof_height;\n _this.signer = signer;\n return _this;\n }\n MsgConnectionOpenConfirm.fromAmino = function (_, isClassic) {\n _;\n isClassic;\n throw new Error('Amino not supported');\n };\n MsgConnectionOpenConfirm.prototype.toAmino = function (_) {\n _;\n throw new Error('Amino not supported');\n };\n MsgConnectionOpenConfirm.fromData = function (data, _) {\n _;\n var connection_id = data.connection_id, proof_ack = data.proof_ack, proof_height = data.proof_height, signer = data.signer;\n return new MsgConnectionOpenConfirm(connection_id, proof_ack, proof_height ? Height_1.Height.fromData(proof_height) : undefined, signer);\n };\n MsgConnectionOpenConfirm.prototype.toData = function (_) {\n _;\n var _a = this, connection_id = _a.connection_id, proof_ack = _a.proof_ack, proof_height = _a.proof_height, signer = _a.signer;\n return {\n '@type': '/ibc.core.connection.v1.MsgConnectionOpenConfirm',\n connection_id: connection_id,\n proof_ack: proof_ack,\n proof_height: proof_height ? proof_height.toData() : undefined,\n signer: signer,\n };\n };\n MsgConnectionOpenConfirm.fromProto = function (proto, _) {\n _;\n return new MsgConnectionOpenConfirm(proto.connectionId, Buffer.from(proto.proofAck).toString('base64'), proto.proofHeight ? Height_1.Height.fromProto(proto.proofHeight) : undefined, proto.signer);\n };\n MsgConnectionOpenConfirm.prototype.toProto = function (_) {\n _;\n var _a = this, connection_id = _a.connection_id, proof_ack = _a.proof_ack, proof_height = _a.proof_height, signer = _a.signer;\n return tx_1.MsgConnectionOpenConfirm.fromPartial({\n connectionId: connection_id,\n proofAck: Buffer.from(proof_ack, 'base64'),\n proofHeight: proof_height ? proof_height.toProto() : undefined,\n signer: signer,\n });\n };\n MsgConnectionOpenConfirm.prototype.packAny = function (_) {\n _;\n return any_1.Any.fromPartial({\n typeUrl: '/ibc.core.connection.v1.MsgConnectionOpenConfirm',\n value: tx_1.MsgConnectionOpenConfirm.encode(this.toProto()).finish(),\n });\n };\n MsgConnectionOpenConfirm.unpackAny = function (msgAny, _) {\n _;\n return MsgConnectionOpenConfirm.fromProto(tx_1.MsgConnectionOpenConfirm.decode(msgAny.value));\n };\n return MsgConnectionOpenConfirm;\n}(json_1.JSONSerializable));\nexports.MsgConnectionOpenConfirm = MsgConnectionOpenConfirm;\n//# sourceMappingURL=MsgConnectionOpenConfirm.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgConnectionOpenInit = void 0;\nvar json_1 = require(\"../../../../util/json\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar Counterparty_1 = require(\"../../core/connection/Counterparty\");\nvar Version_1 = require(\"../../core/connection/Version\");\nvar tx_1 = require(\"@terra-money/terra.proto/ibc/core/connection/v1/tx\");\nvar long_1 = __importDefault(require(\"long\"));\n/**\n * MsgConnectionOpenInit defines the msg sent by an account on Chain A to initialize a connection with Chain B.\n */\nvar MsgConnectionOpenInit = /** @class */ (function (_super) {\n __extends(MsgConnectionOpenInit, _super);\n /**\n * @param client_id identifier of the port to use\n * @param counterparty\n * @param version\n * @param delay_period\n * @param signer signer address\n */\n function MsgConnectionOpenInit(client_id, delay_period, signer, counterparty, version) {\n var _this = _super.call(this) || this;\n _this.client_id = client_id;\n _this.delay_period = delay_period;\n _this.signer = signer;\n _this.counterparty = counterparty;\n _this.version = version;\n return _this;\n }\n MsgConnectionOpenInit.fromAmino = function (_, isClassic) {\n _;\n isClassic;\n throw new Error('Amino not supported');\n };\n MsgConnectionOpenInit.prototype.toAmino = function (_) {\n _;\n throw new Error('Amino not supported');\n };\n MsgConnectionOpenInit.fromData = function (data, _) {\n _;\n var client_id = data.client_id, counterparty = data.counterparty, version = data.version, delay_period = data.delay_period, signer = data.signer;\n return new MsgConnectionOpenInit(client_id, Number.parseInt(delay_period), signer, counterparty ? Counterparty_1.Counterparty.fromData(counterparty) : undefined, version ? Version_1.Version.fromData(version) : undefined);\n };\n MsgConnectionOpenInit.prototype.toData = function (_) {\n _;\n var _a = this, client_id = _a.client_id, counterparty = _a.counterparty, version = _a.version, delay_period = _a.delay_period, signer = _a.signer;\n return {\n '@type': '/ibc.core.connection.v1.MsgConnectionOpenInit',\n client_id: client_id,\n delay_period: delay_period.toFixed(),\n signer: signer,\n counterparty: counterparty ? counterparty.toData() : undefined,\n version: version ? version.toData() : undefined,\n };\n };\n MsgConnectionOpenInit.fromProto = function (proto, _) {\n _;\n return new MsgConnectionOpenInit(proto.clientId, proto.delayPeriod.toNumber(), proto.signer, proto.counterparty\n ? Counterparty_1.Counterparty.fromProto(proto.counterparty)\n : undefined, proto.version ? Version_1.Version.fromProto(proto.version) : undefined);\n };\n MsgConnectionOpenInit.prototype.toProto = function (_) {\n _;\n var _a = this, client_id = _a.client_id, counterparty = _a.counterparty, version = _a.version, delay_period = _a.delay_period, signer = _a.signer;\n return tx_1.MsgConnectionOpenInit.fromPartial({\n clientId: client_id,\n delayPeriod: long_1.default.fromNumber(delay_period),\n signer: signer,\n counterparty: counterparty ? counterparty.toProto() : undefined,\n version: version ? version.toProto() : undefined,\n });\n };\n MsgConnectionOpenInit.prototype.packAny = function (_) {\n _;\n return any_1.Any.fromPartial({\n typeUrl: '/ibc.core.connection.v1.MsgConnectionOpenInit',\n value: tx_1.MsgConnectionOpenInit.encode(this.toProto()).finish(),\n });\n };\n MsgConnectionOpenInit.unpackAny = function (msgAny, _) {\n _;\n return MsgConnectionOpenInit.fromProto(tx_1.MsgConnectionOpenInit.decode(msgAny.value));\n };\n return MsgConnectionOpenInit;\n}(json_1.JSONSerializable));\nexports.MsgConnectionOpenInit = MsgConnectionOpenInit;\n//# sourceMappingURL=MsgConnectionOpenInit.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgConnectionOpenTry = void 0;\nvar json_1 = require(\"../../../../util/json\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar Counterparty_1 = require(\"../../core/connection/Counterparty\");\nvar Version_1 = require(\"../../core/connection/Version\");\nvar tx_1 = require(\"@terra-money/terra.proto/ibc/core/connection/v1/tx\");\nvar long_1 = __importDefault(require(\"long\"));\nvar Height_1 = require(\"../../core/client/Height\");\n/**\n * MsgConnectionOpenTry defines a msg sent by a Relayer to try to open a connection on Chain B.\n */\nvar MsgConnectionOpenTry = /** @class */ (function (_super) {\n __extends(MsgConnectionOpenTry, _super);\n /**\n * @param client_id in the case of crossing hello's, when both chains call OpenInit, we need the connection identifier of the previous connection in state INIT\n * @param previous_connection_id\n * @param client_state\n * @param counterparty\n * @param delay_period\n * @param counterparty_versions\n * @param proof_height proof of the initialization the connection on Chain A: `UNITIALIZED -> INIT`\n * @param proof_init proof of client state included in message\n * @param proof_client proof of client consensus state\n * @param proof_consensus\n * @param consensus_height\n * @param signer signer address\n */\n function MsgConnectionOpenTry(client_id, previous_connection_id, client_state, counterparty, delay_period, counterparty_versions, proof_height, proof_init, proof_client, proof_consensus, consensus_height, signer) {\n var _this = _super.call(this) || this;\n _this.client_id = client_id;\n _this.previous_connection_id = previous_connection_id;\n _this.client_state = client_state;\n _this.counterparty = counterparty;\n _this.delay_period = delay_period;\n _this.counterparty_versions = counterparty_versions;\n _this.proof_height = proof_height;\n _this.proof_init = proof_init;\n _this.proof_client = proof_client;\n _this.proof_consensus = proof_consensus;\n _this.consensus_height = consensus_height;\n _this.signer = signer;\n return _this;\n }\n MsgConnectionOpenTry.fromAmino = function (_, isClassic) {\n _;\n isClassic;\n throw new Error('Amino not supported');\n };\n MsgConnectionOpenTry.prototype.toAmino = function (_) {\n _;\n throw new Error('Amino not supported');\n };\n MsgConnectionOpenTry.fromData = function (data, _) {\n _;\n var client_id = data.client_id, previous_connection_id = data.previous_connection_id, client_state = data.client_state, counterparty = data.counterparty, delay_period = data.delay_period, counterparty_versions = data.counterparty_versions, proof_height = data.proof_height, proof_init = data.proof_init, proof_client = data.proof_client, proof_consensus = data.proof_consensus, consensus_height = data.consensus_height, signer = data.signer;\n return new MsgConnectionOpenTry(client_id, previous_connection_id, client_state, counterparty ? Counterparty_1.Counterparty.fromData(counterparty) : undefined, Number.parseInt(delay_period), counterparty_versions.length > 0\n ? counterparty_versions.map(function (cv) { return Version_1.Version.fromData(cv); })\n : [], proof_height ? Height_1.Height.fromData(proof_height) : undefined, Buffer.from(proof_init).toString('base64'), Buffer.from(proof_client).toString('base64'), Buffer.from(proof_consensus).toString('base64'), consensus_height ? Height_1.Height.fromData(consensus_height) : undefined, signer);\n };\n MsgConnectionOpenTry.prototype.toData = function (_) {\n _;\n var _a = this, client_id = _a.client_id, previous_connection_id = _a.previous_connection_id, client_state = _a.client_state, counterparty = _a.counterparty, delay_period = _a.delay_period, counterparty_versions = _a.counterparty_versions, proof_height = _a.proof_height, proof_init = _a.proof_init, proof_client = _a.proof_client, proof_consensus = _a.proof_consensus, consensus_height = _a.consensus_height, signer = _a.signer;\n return {\n '@type': '/ibc.core.connection.v1.MsgConnectionOpenTry',\n client_id: client_id,\n previous_connection_id: previous_connection_id,\n client_state: client_state,\n counterparty: counterparty ? counterparty.toData() : undefined,\n delay_period: delay_period.toFixed(),\n counterparty_versions: counterparty_versions.length > 0\n ? counterparty_versions.map(function (cv) { return cv.toData(); })\n : [],\n proof_height: proof_height ? proof_height.toData() : undefined,\n proof_init: proof_init,\n proof_client: proof_client,\n proof_consensus: proof_consensus,\n consensus_height: consensus_height\n ? consensus_height.toData()\n : undefined,\n signer: signer,\n };\n };\n MsgConnectionOpenTry.fromProto = function (proto, _) {\n _;\n return new MsgConnectionOpenTry(proto.clientId, proto.previousConnectionId, proto.clientState, proto.counterparty\n ? Counterparty_1.Counterparty.fromProto(proto.counterparty)\n : undefined, proto.delayPeriod.toNumber(), proto.counterpartyVersions.length > 0\n ? proto.counterpartyVersions.map(function (cv) { return Version_1.Version.fromProto(cv); })\n : [], proto.proofHeight ? Height_1.Height.fromProto(proto.proofHeight) : undefined, Buffer.from(proto.proofInit).toString('base64'), Buffer.from(proto.proofClient).toString('base64'), Buffer.from(proto.proofConsensus).toString('base64'), proto.consensusHeight\n ? Height_1.Height.fromProto(proto.consensusHeight)\n : undefined, proto.signer);\n };\n MsgConnectionOpenTry.prototype.toProto = function (_) {\n _;\n var _a = this, client_id = _a.client_id, previous_connection_id = _a.previous_connection_id, client_state = _a.client_state, counterparty = _a.counterparty, delay_period = _a.delay_period, counterparty_versions = _a.counterparty_versions, proof_height = _a.proof_height, proof_init = _a.proof_init, proof_client = _a.proof_client, proof_consensus = _a.proof_consensus, consensus_height = _a.consensus_height, signer = _a.signer;\n return tx_1.MsgConnectionOpenTry.fromPartial({\n clientId: client_id,\n previousConnectionId: previous_connection_id,\n clientState: client_state.toProto(),\n counterparty: counterparty ? counterparty.toProto() : undefined,\n delayPeriod: long_1.default.fromNumber(delay_period),\n counterpartyVersions: counterparty_versions.length > 0\n ? counterparty_versions.map(function (cv) { return cv.toProto(); })\n : [],\n proofHeight: proof_height ? proof_height.toProto() : undefined,\n proofInit: Buffer.from(proof_init, 'base64'),\n proofClient: Buffer.from(proof_client, 'base64'),\n proofConsensus: Buffer.from(proof_consensus, 'base64'),\n consensusHeight: consensus_height\n ? consensus_height.toProto()\n : undefined,\n signer: signer,\n });\n };\n MsgConnectionOpenTry.prototype.packAny = function (_) {\n _;\n return any_1.Any.fromPartial({\n typeUrl: '/ibc.core.connection.v1.MsgConnectionOpenTry',\n value: tx_1.MsgConnectionOpenTry.encode(this.toProto()).finish(),\n });\n };\n MsgConnectionOpenTry.unpackAny = function (msgAny, _) {\n _;\n return MsgConnectionOpenTry.fromProto(tx_1.MsgConnectionOpenTry.decode(msgAny.value));\n };\n return MsgConnectionOpenTry;\n}(json_1.JSONSerializable));\nexports.MsgConnectionOpenTry = MsgConnectionOpenTry;\n//# sourceMappingURL=MsgConnectionOpenTry.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./MsgConnectionOpenInit\"), exports);\n__exportStar(require(\"./MsgConnectionOpenTry\"), exports);\n__exportStar(require(\"./MsgConnectionOpenConfirm\"), exports);\n__exportStar(require(\"./MsgConnectionOpenAck\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ClientUpdateProposal = void 0;\nvar json_1 = require(\"../../../util/json\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar client_1 = require(\"@terra-money/terra.proto/ibc/core/client/v1/client\");\n/**\n * Proposal that allows updating IBC clients. If it passes, the substitute\n * client's latest consensus state is copied over to the subject client.\n */\nvar ClientUpdateProposal = /** @class */ (function (_super) {\n __extends(ClientUpdateProposal, _super);\n /**\n * @param title proposal's title\n * @param description proposal's description\n * @param subjectClientId client to update\n * @param substituteClientId client to copy\n */\n function ClientUpdateProposal(title, description, subjectClientId, substituteClientId) {\n var _this = _super.call(this) || this;\n _this.title = title;\n _this.description = description;\n _this.subjectClientId = subjectClientId;\n _this.substituteClientId = substituteClientId;\n return _this;\n }\n ClientUpdateProposal.fromAmino = function (data, _) {\n _;\n var _a = data.value, title = _a.title, description = _a.description, subjectClientId = _a.subjectClientId, substituteClientId = _a.substituteClientId;\n return new ClientUpdateProposal(title, description, subjectClientId, substituteClientId);\n };\n ClientUpdateProposal.prototype.toAmino = function (_) {\n _;\n var _a = this, title = _a.title, description = _a.description, subjectClientId = _a.subjectClientId, substituteClientId = _a.substituteClientId;\n return {\n type: 'ibc/ClientUpdateProposal',\n value: {\n title: title,\n description: description,\n subjectClientId: subjectClientId,\n substituteClientId: substituteClientId,\n },\n };\n };\n ClientUpdateProposal.fromData = function (data, _) {\n _;\n var title = data.title, description = data.description, subject_client_id = data.subject_client_id, substitute_client_id = data.substitute_client_id;\n return new ClientUpdateProposal(title, description, subject_client_id, substitute_client_id);\n };\n ClientUpdateProposal.prototype.toData = function (_) {\n _;\n var _a = this, title = _a.title, description = _a.description, subjectClientId = _a.subjectClientId, substituteClientId = _a.substituteClientId;\n return {\n '@type': '/ibc.core.client.v1.ClientUpdateProposal',\n title: title,\n description: description,\n subject_client_id: subjectClientId,\n substitute_client_id: substituteClientId,\n };\n };\n ClientUpdateProposal.fromProto = function (proto, _) {\n _;\n return new ClientUpdateProposal(proto.title, proto.description, proto.subjectClientId, proto.substituteClientId);\n };\n ClientUpdateProposal.prototype.toProto = function (_) {\n _;\n var _a = this, title = _a.title, description = _a.description, subjectClientId = _a.subjectClientId, substituteClientId = _a.substituteClientId;\n return client_1.ClientUpdateProposal.fromPartial({\n subjectClientId: subjectClientId,\n substituteClientId: substituteClientId,\n description: description,\n title: title,\n });\n };\n ClientUpdateProposal.prototype.packAny = function (_) {\n _;\n return any_1.Any.fromPartial({\n typeUrl: '/ibc.core.client.v1.ClientUpdateProposal',\n value: client_1.ClientUpdateProposal.encode(this.toProto()).finish(),\n });\n };\n ClientUpdateProposal.unpackAny = function (msgAny, _) {\n _;\n return ClientUpdateProposal.fromProto(client_1.ClientUpdateProposal.decode(msgAny.value));\n };\n return ClientUpdateProposal;\n}(json_1.JSONSerializable));\nexports.ClientUpdateProposal = ClientUpdateProposal;\n//# sourceMappingURL=ClientUpdateProposal.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ClientUpdateProposal\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./Block\"), exports);\n__exportStar(require(\"./Coin\"), exports);\n__exportStar(require(\"./Coins\"), exports);\n__exportStar(require(\"./Denom\"), exports);\n__exportStar(require(\"./Msg\"), exports);\n__exportStar(require(\"./numeric\"), exports);\n__exportStar(require(\"./PublicKey\"), exports);\n__exportStar(require(\"./Fee\"), exports);\n__exportStar(require(\"./SignDoc\"), exports);\n__exportStar(require(\"./Tx\"), exports);\n__exportStar(require(\"./TxInfo\"), exports);\n__exportStar(require(\"./ValidatorSet\"), exports);\n__exportStar(require(\"./Deposit\"), exports);\n__exportStar(require(\"./SignatureV2\"), exports);\n__exportStar(require(\"./MultiSignature\"), exports);\n// Auth\n__exportStar(require(\"./auth/Account\"), exports);\n__exportStar(require(\"./auth/BaseAccount\"), exports);\n__exportStar(require(\"./auth/BaseVestingAccount\"), exports);\n__exportStar(require(\"./auth/LazyGradedVestingAccount\"), exports);\n__exportStar(require(\"./auth/DelayedVestingAccount\"), exports);\n__exportStar(require(\"./auth/ContinuousVestingAccount\"), exports);\n__exportStar(require(\"./auth/PeriodicVestingAccount\"), exports);\n// Bank\n__exportStar(require(\"./bank/msgs\"), exports);\n// Distribution\n__exportStar(require(\"./distribution/msgs\"), exports);\n__exportStar(require(\"./distribution/proposals\"), exports);\n// FeeGrant\n__exportStar(require(\"./feegrant/msgs\"), exports);\n__exportStar(require(\"./feegrant/allowances\"), exports);\n// Governance\n__exportStar(require(\"./gov/msgs\"), exports);\n__exportStar(require(\"./gov/proposals\"), exports);\n__exportStar(require(\"./gov/Proposal\"), exports);\n__exportStar(require(\"./gov/Vote\"), exports);\n// Market\n__exportStar(require(\"./market/msgs\"), exports);\n// MsgAuth\n__exportStar(require(\"./authz/msgs\"), exports);\n__exportStar(require(\"./authz/authorizations\"), exports);\n// Oracle\n__exportStar(require(\"./oracle/msgs\"), exports);\n__exportStar(require(\"./oracle/AggregateExchangeRatePrevote\"), exports);\n__exportStar(require(\"./oracle/AggregateExchangeRateVote\"), exports);\n// Parameters\n__exportStar(require(\"./params/proposals\"), exports);\n__exportStar(require(\"./params/ParamChange\"), exports);\n// Slashing\n__exportStar(require(\"./slashing/msgs\"), exports);\n// Staking\n__exportStar(require(\"./staking/msgs\"), exports);\n__exportStar(require(\"./staking/Delegation\"), exports);\n__exportStar(require(\"./staking/Redelegation\"), exports);\n__exportStar(require(\"./staking/UnbondingDelegation\"), exports);\n__exportStar(require(\"./staking/Validator\"), exports);\n// Treasury\n__exportStar(require(\"./treasury/PolicyConstraints\"), exports);\n// Vesting\n__exportStar(require(\"./vesting\"), exports);\n// Upgrade\n__exportStar(require(\"./upgrade\"), exports);\n// WASM\n__exportStar(require(\"./wasm\"), exports);\n__exportStar(require(\"./wasm/msgs\"), exports);\n__exportStar(require(\"./wasm/proposals\"), exports);\n// IBC\n__exportStar(require(\"./ibc/msgs/channel\"), exports);\n__exportStar(require(\"./ibc/msgs/client\"), exports);\n__exportStar(require(\"./ibc/msgs/connection\"), exports);\n// IBC-transfer\n__exportStar(require(\"./ibc/applications/transfer\"), exports);\n// bech32 types\n__exportStar(require(\"./bech32\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgSwap = void 0;\nvar json_1 = require(\"../../../util/json\");\nvar Coin_1 = require(\"../../Coin\");\nvar tx_1 = require(\"@terra-money/legacy.proto/terra/market/v1beta1/tx\");\nvar any_1 = require(\"@terra-money/legacy.proto/google/protobuf/any\");\n/**\n * Executes a market swap between 2 denominations at the exchange rate registered by the\n * Oracle module. The account will lose the amount of coins offered, and receive funds\n * in the requested denomination after a swap fee has been applied.\n */\nvar MsgSwap = /** @class */ (function (_super) {\n __extends(MsgSwap, _super);\n /**\n * @param trader trader's account address\n * @param offer_coin coin to be swapped (from)\n * @param ask_denom desired denomination (to)\n */\n function MsgSwap(trader, offer_coin, ask_denom) {\n var _this = _super.call(this) || this;\n _this.trader = trader;\n _this.offer_coin = offer_coin;\n _this.ask_denom = ask_denom;\n return _this;\n }\n MsgSwap.fromAmino = function (data, isClassic) {\n if (!isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = data.value, trader = _a.trader, offer_coin = _a.offer_coin, ask_denom = _a.ask_denom;\n return new MsgSwap(trader, Coin_1.Coin.fromAmino(offer_coin), ask_denom);\n };\n MsgSwap.prototype.toAmino = function (isClassic) {\n if (!isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = this, trader = _a.trader, offer_coin = _a.offer_coin, ask_denom = _a.ask_denom;\n return {\n type: 'market/MsgSwap',\n value: {\n trader: trader,\n offer_coin: offer_coin.toAmino(),\n ask_denom: ask_denom,\n },\n };\n };\n MsgSwap.fromProto = function (proto, isClassic) {\n if (!isClassic) {\n throw new Error('Not supported for the network');\n }\n return new MsgSwap(proto.trader, Coin_1.Coin.fromProto(proto.offerCoin), proto.askDenom);\n };\n MsgSwap.prototype.toProto = function (isClassic) {\n if (!isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = this, trader = _a.trader, offer_coin = _a.offer_coin, ask_denom = _a.ask_denom;\n return tx_1.MsgSwap.fromPartial({\n askDenom: ask_denom,\n offerCoin: offer_coin.toProto(),\n trader: trader,\n });\n };\n MsgSwap.prototype.packAny = function (isClassic) {\n if (!isClassic) {\n throw new Error('Not supported for the network');\n }\n return any_1.Any.fromPartial({\n typeUrl: '/terra.market.v1beta1.MsgSwap',\n value: tx_1.MsgSwap.encode(this.toProto(isClassic)).finish(),\n });\n };\n MsgSwap.unpackAny = function (msgAny, isClassic) {\n if (!isClassic) {\n throw new Error('Not supported for the network');\n }\n return MsgSwap.fromProto(tx_1.MsgSwap.decode(msgAny.value), isClassic);\n };\n MsgSwap.fromData = function (data, isClassic) {\n if (!isClassic) {\n throw new Error('Not supported for the network');\n }\n var trader = data.trader, offer_coin = data.offer_coin, ask_denom = data.ask_denom;\n return new MsgSwap(trader, Coin_1.Coin.fromData(offer_coin), ask_denom);\n };\n MsgSwap.prototype.toData = function (isClassic) {\n if (!isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = this, trader = _a.trader, offer_coin = _a.offer_coin, ask_denom = _a.ask_denom;\n return {\n '@type': '/terra.market.v1beta1.MsgSwap',\n trader: trader,\n offer_coin: offer_coin.toData(),\n ask_denom: ask_denom,\n };\n };\n return MsgSwap;\n}(json_1.JSONSerializable));\nexports.MsgSwap = MsgSwap;\n//# sourceMappingURL=MsgSwap.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgSwapSend = void 0;\nvar json_1 = require(\"../../../util/json\");\nvar Coin_1 = require(\"../../Coin\");\nvar any_1 = require(\"@terra-money/legacy.proto/google/protobuf/any\");\nvar tx_1 = require(\"@terra-money/legacy.proto/terra/market/v1beta1/tx\");\n/**\n * Executes a market swap send between 2 denominations at the exchange rate registered by the\n * Oracle module. The sender account will lose the amount of coins offered, and receiver will receive funds\n * in the requested denomination after a swap and send fee has been applied.\n */\nvar MsgSwapSend = /** @class */ (function (_super) {\n __extends(MsgSwapSend, _super);\n /**\n * @param from_address sender's account address\n * @param to_address receiver's account address\n * @param offer_coin coin to be swapped (from)\n * @param ask_denom desired denomination (to)\n */\n function MsgSwapSend(from_address, to_address, offer_coin, ask_denom) {\n var _this = _super.call(this) || this;\n _this.from_address = from_address;\n _this.to_address = to_address;\n _this.offer_coin = offer_coin;\n _this.ask_denom = ask_denom;\n return _this;\n }\n MsgSwapSend.fromAmino = function (data, isClassic) {\n if (!isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = data.value, from_address = _a.from_address, to_address = _a.to_address, offer_coin = _a.offer_coin, ask_denom = _a.ask_denom;\n return new MsgSwapSend(from_address, to_address, Coin_1.Coin.fromAmino(offer_coin), ask_denom);\n };\n MsgSwapSend.prototype.toAmino = function (isClassic) {\n if (!isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = this, from_address = _a.from_address, to_address = _a.to_address, offer_coin = _a.offer_coin, ask_denom = _a.ask_denom;\n return {\n type: 'market/MsgSwapSend',\n value: {\n from_address: from_address,\n to_address: to_address,\n offer_coin: offer_coin.toAmino(),\n ask_denom: ask_denom,\n },\n };\n };\n MsgSwapSend.fromProto = function (proto, isClassic) {\n if (!isClassic) {\n throw new Error('Not supported for the network');\n }\n return new MsgSwapSend(proto.fromAddress, proto.toAddress, Coin_1.Coin.fromProto(proto.offerCoin), proto.askDenom);\n };\n MsgSwapSend.prototype.toProto = function (isClassic) {\n if (!isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = this, from_address = _a.from_address, to_address = _a.to_address, offer_coin = _a.offer_coin, ask_denom = _a.ask_denom;\n return tx_1.MsgSwapSend.fromPartial({\n askDenom: ask_denom,\n fromAddress: from_address,\n offerCoin: offer_coin.toProto(),\n toAddress: to_address,\n });\n };\n MsgSwapSend.prototype.packAny = function (isClassic) {\n if (!isClassic) {\n throw new Error('Not supported for the network');\n }\n return any_1.Any.fromPartial({\n typeUrl: '/terra.market.v1beta1.MsgSwapSend',\n value: tx_1.MsgSwapSend.encode(this.toProto(isClassic)).finish(),\n });\n };\n MsgSwapSend.unpackAny = function (msgAny, isClassic) {\n if (!isClassic) {\n throw new Error('Not supported for the network');\n }\n return MsgSwapSend.fromProto(tx_1.MsgSwapSend.decode(msgAny.value), isClassic);\n };\n MsgSwapSend.fromData = function (data, isClassic) {\n if (!isClassic) {\n throw new Error('Not supported for the network');\n }\n var from_address = data.from_address, to_address = data.to_address, offer_coin = data.offer_coin, ask_denom = data.ask_denom;\n return new MsgSwapSend(from_address, to_address, Coin_1.Coin.fromData(offer_coin), ask_denom);\n };\n MsgSwapSend.prototype.toData = function (isClassic) {\n if (!isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = this, from_address = _a.from_address, to_address = _a.to_address, offer_coin = _a.offer_coin, ask_denom = _a.ask_denom;\n return {\n '@type': '/terra.market.v1beta1.MsgSwapSend',\n from_address: from_address,\n to_address: to_address,\n offer_coin: offer_coin.toData(),\n ask_denom: ask_denom,\n };\n };\n return MsgSwapSend;\n}(json_1.JSONSerializable));\nexports.MsgSwapSend = MsgSwapSend;\n//# sourceMappingURL=MsgSwapSend.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./MsgSwap\"), exports);\n__exportStar(require(\"./MsgSwapSend\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.int = exports.dec = exports.Int = exports.Dec = exports.Numeric = exports.DEC_PRECISION = void 0;\nvar decimal_js_1 = __importDefault(require(\"decimal.js\"));\nexports.DEC_PRECISION = 18;\nvar Numeric;\n(function (Numeric) {\n function parse(value) {\n if (value instanceof Dec) {\n return value;\n }\n else if (typeof value === 'string') {\n if (value.includes('.')) {\n return new Dec(value);\n }\n else {\n return new Int(value);\n }\n }\n else {\n var _value = new decimal_js_1.default(value);\n if (_value.isInteger()) {\n return new Int(_value);\n }\n else {\n return new Dec(_value.toString());\n }\n }\n }\n Numeric.parse = parse;\n})(Numeric = exports.Numeric || (exports.Numeric = {}));\n/**\n * Represents decimal values serialized with 18 digits of precision. This implementation\n * is based on the `decimal.js` library, and returns Dec values for only [[Dec.add]],\n * [[Dec.sub]], [[Dec.mul]], [[Dec.div]], and [[Dec.mod]]. For other methods inherited\n * from `Decimal`, you will need to convert back to `Dec` to remain compatible for\n * submitting information that requires `Dec` format back to the blockchain.\n *\n * Example:\n *\n * ```ts\n * const dec = new Dec(1.5);\n *\n * const decimal = dec.sqrt();\n * const dec2 = new Dec(decimal);\n */\nvar Dec = /** @class */ (function (_super) {\n __extends(Dec, _super);\n function Dec(arg) {\n return _super.call(this, (arg !== null && arg !== void 0 ? arg : 0).toString()) || this;\n }\n Dec.prototype.toString = function () {\n return this.toFixed(exports.DEC_PRECISION);\n };\n Dec.withPrec = function (value, prec) {\n return new Dec(new Dec(value).div(Math.pow(10, prec)));\n };\n // type conversion\n Dec.prototype.toInt = function () {\n return new Int(this);\n };\n // arithmetic\n Dec.prototype.add = function (other) {\n var val = new Dec(Numeric.parse(other));\n return new Dec(_super.prototype.add.call(this, val));\n };\n Dec.prototype.sub = function (other) {\n var val = new Dec(Numeric.parse(other));\n return new Dec(_super.prototype.sub.call(this, val));\n };\n Dec.prototype.mul = function (other) {\n var val = new Dec(Numeric.parse(other));\n return new Dec(_super.prototype.mul.call(this, val));\n };\n Dec.prototype.div = function (other) {\n var val = new Dec(Numeric.parse(other));\n return new Dec(_super.prototype.div.call(this, val));\n };\n Dec.prototype.mod = function (other) {\n var val = new Dec(Numeric.parse(other));\n return new Dec(_super.prototype.mod.call(this, val));\n };\n return Dec;\n}(decimal_js_1.default));\nexports.Dec = Dec;\nvar _Int = decimal_js_1.default.clone();\n/**\n * Represents Integer values. Used mainly to store integer values of [[Coin]] and [[Coins]].\n *\n * Note: Do not use to work with values greater than 9999999999999999999. This\n * implementation is based on the `decimal.js` library, and returns Int values for only\n * [[Int.add]], [[Int.sub]], [[Int.mul]], [[Int.div]], and [[Int.mod]]. For other\n * methods inherited from `Decimal`, you will need to convert back to `Int` to remain\n * compatible for submitting information that requires `Int` format back to the\n * blockchain.\n *\n * Example:\n *\n * ```ts\n * const int = new Int(1.5);\n *\n * const decimal = int.pow(3);\n * const int2 = new Int(decimal);\n */\nvar Int = /** @class */ (function (_super) {\n __extends(Int, _super);\n function Int(arg) {\n var _arg = new decimal_js_1.default((arg !== null && arg !== void 0 ? arg : 0).toString());\n return _super.call(this, _arg.divToInt(1)) || this;\n }\n Int.prototype.toString = function () {\n return this.toFixed();\n };\n // type conversion\n Int.prototype.toDec = function () {\n return new Dec(this);\n };\n // artihmetic\n Int.prototype.add = function (other) {\n var val = Numeric.parse(other);\n if (val instanceof Dec) {\n return new Dec(this).add(val);\n }\n else {\n return new Int(this.plus(val));\n }\n };\n Int.prototype.sub = function (other) {\n var val = Numeric.parse(other);\n if (val instanceof Dec) {\n return new Dec(this).sub(val);\n }\n else {\n return new Int(this.minus(val));\n }\n };\n Int.prototype.mul = function (other) {\n var val = Numeric.parse(other);\n if (val instanceof Dec) {\n return new Dec(this).mul(val);\n }\n else {\n return new Int(this.times(val));\n }\n };\n Int.prototype.div = function (other) {\n var val = Numeric.parse(other);\n if (val instanceof Dec) {\n return new Dec(this).div(val);\n }\n else {\n return new Int(_super.prototype.div.call(this, val));\n }\n };\n Int.prototype.mod = function (other) {\n var val = Numeric.parse(other);\n if (val instanceof Dec) {\n return new Dec(this).mod(val);\n }\n else {\n return new Int(_super.prototype.mod.call(this, val));\n }\n };\n return Int;\n}(_Int));\nexports.Int = Int;\n/**\n * Template tagged literal for creating new Dec objects out of literal string.\n * This does not support literal string interpolation with `${}`.\n *\n * Usage is:\n *\n * ```ts\n * import { dec } from \"@terra-money/terra.js\";\n *\n * const dec1 = dec`234.12312`;\n * const dec2 = new Dec(\"234.12312\");\n *\n * dec1.equals(dec2);\n * ```\n * @param strings\n */\nfunction dec(strings) {\n return new Dec(strings[0]);\n}\nexports.dec = dec;\n/**\n * Template tagged literal for creating new Int objects out of literal string.\n * This does not support literal string interpolation with `${}`.\n *\n * Usage is:\n *\n * ```ts\n * import { int } from \"@terra-money/terra.js\";\n *\n * const int1 = int`234`;\n * const int2 = new Int(\"234\");\n *\n * int1.equals(int2);\n * ```\n * @param strings\n */\nfunction int(strings) {\n return new Int(strings[0]);\n}\nexports.int = int;\n//# sourceMappingURL=numeric.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AggregateExchangeRatePrevote = void 0;\nvar json_1 = require(\"../../util/json\");\nvar oracle_1 = require(\"@terra-money/legacy.proto/terra/oracle/v1beta1/oracle\");\nvar Long = __importStar(require(\"long\"));\n/**\n * Stores information about data about Oracle aggregate prevotes fetched from the blockchain.\n */\nvar AggregateExchangeRatePrevote = /** @class */ (function (_super) {\n __extends(AggregateExchangeRatePrevote, _super);\n /**\n * @param hash aggregate vote hash\n * @param voter validator\n * @param submit_block block during which aggregate prevote was submitted\n */\n function AggregateExchangeRatePrevote(hash, voter, submit_block) {\n var _this = _super.call(this) || this;\n _this.hash = hash;\n _this.voter = voter;\n _this.submit_block = submit_block;\n return _this;\n }\n AggregateExchangeRatePrevote.fromAmino = function (data) {\n var hash = data.hash, voter = data.voter, submit_block = data.submit_block;\n return new AggregateExchangeRatePrevote(hash, voter, Number.parseInt(submit_block));\n };\n AggregateExchangeRatePrevote.prototype.toAmino = function () {\n var _a = this, hash = _a.hash, voter = _a.voter, submit_block = _a.submit_block;\n return {\n hash: hash,\n voter: voter,\n submit_block: submit_block.toFixed(),\n };\n };\n AggregateExchangeRatePrevote.fromData = function (data) {\n var hash = data.hash, voter = data.voter, submit_block = data.submit_block;\n return new AggregateExchangeRatePrevote(hash, voter, Number.parseInt(submit_block));\n };\n AggregateExchangeRatePrevote.prototype.toData = function () {\n var _a = this, hash = _a.hash, voter = _a.voter, submit_block = _a.submit_block;\n return {\n hash: hash,\n voter: voter,\n submit_block: submit_block.toFixed(),\n };\n };\n AggregateExchangeRatePrevote.fromProto = function (data) {\n return new AggregateExchangeRatePrevote(data.hash, data.voter, data.submitBlock.toNumber());\n };\n AggregateExchangeRatePrevote.prototype.toProto = function () {\n var _a = this, hash = _a.hash, voter = _a.voter, submit_block = _a.submit_block;\n return oracle_1.AggregateExchangeRatePrevote.fromPartial({\n hash: hash,\n submitBlock: Long.fromNumber(submit_block),\n voter: voter,\n });\n };\n return AggregateExchangeRatePrevote;\n}(json_1.JSONSerializable));\nexports.AggregateExchangeRatePrevote = AggregateExchangeRatePrevote;\n//# sourceMappingURL=AggregateExchangeRatePrevote.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ExchangeRateTuple = exports.AggregateExchangeRateVote = void 0;\nvar json_1 = require(\"../../util/json\");\nvar oracle_1 = require(\"@terra-money/legacy.proto/terra/oracle/v1beta1/oracle\");\nvar numeric_1 = require(\"../numeric\");\n/**\n * Stores information about data about Oracle aggregate vote fetched from the blockchain.\n */\nvar AggregateExchangeRateVote = /** @class */ (function (_super) {\n __extends(AggregateExchangeRateVote, _super);\n /**\n * @param exchange_rate_tuples exchange rates for LUNA\n * @param voter validator\n */\n function AggregateExchangeRateVote(exchange_rate_tuples, voter) {\n var _this = _super.call(this) || this;\n _this.exchange_rate_tuples = exchange_rate_tuples;\n _this.voter = voter;\n return _this;\n }\n AggregateExchangeRateVote.fromAmino = function (data) {\n var exchange_rate_tuples = data.exchange_rate_tuples, voter = data.voter;\n return new AggregateExchangeRateVote(exchange_rate_tuples.map(function (t) { return ExchangeRateTuple.fromAmino(t); }), voter);\n };\n AggregateExchangeRateVote.prototype.toAmino = function () {\n var _a = this, exchange_rate_tuples = _a.exchange_rate_tuples, voter = _a.voter;\n return {\n exchange_rate_tuples: exchange_rate_tuples.map(function (e) { return e.toAmino(); }),\n voter: voter,\n };\n };\n AggregateExchangeRateVote.fromData = function (data) {\n var exchange_rate_tuples = data.exchange_rate_tuples, voter = data.voter;\n return new AggregateExchangeRateVote(exchange_rate_tuples.map(function (t) { return ExchangeRateTuple.fromData(t); }), voter);\n };\n AggregateExchangeRateVote.prototype.toData = function () {\n var _a = this, exchange_rate_tuples = _a.exchange_rate_tuples, voter = _a.voter;\n return {\n exchange_rate_tuples: exchange_rate_tuples.map(function (e) { return e.toData(); }),\n voter: voter,\n };\n };\n AggregateExchangeRateVote.fromProto = function (data) {\n return new AggregateExchangeRateVote(data.exchangeRateTuples.map(function (t) { return ExchangeRateTuple.fromProto(t); }), data.voter);\n };\n AggregateExchangeRateVote.prototype.toProto = function () {\n var _a = this, exchange_rate_tuples = _a.exchange_rate_tuples, voter = _a.voter;\n return oracle_1.AggregateExchangeRateVote.fromPartial({\n exchangeRateTuples: exchange_rate_tuples.map(function (t) { return t.toProto(); }),\n voter: voter,\n });\n };\n return AggregateExchangeRateVote;\n}(json_1.JSONSerializable));\nexports.AggregateExchangeRateVote = AggregateExchangeRateVote;\nvar ExchangeRateTuple = /** @class */ (function (_super) {\n __extends(ExchangeRateTuple, _super);\n function ExchangeRateTuple(denom, exchange_rate) {\n var _this = _super.call(this) || this;\n _this.denom = denom;\n _this.exchange_rate = new numeric_1.Dec(exchange_rate);\n return _this;\n }\n ExchangeRateTuple.fromAmino = function (data) {\n var denom = data.denom, exchange_rate = data.exchange_rate;\n return new ExchangeRateTuple(denom, exchange_rate);\n };\n ExchangeRateTuple.prototype.toAmino = function () {\n var _a = this, denom = _a.denom, exchange_rate = _a.exchange_rate;\n return {\n denom: denom,\n exchange_rate: exchange_rate.toString(),\n };\n };\n ExchangeRateTuple.fromData = function (data) {\n var denom = data.denom, exchange_rate = data.exchange_rate;\n return new ExchangeRateTuple(denom, exchange_rate);\n };\n ExchangeRateTuple.prototype.toData = function () {\n var _a = this, denom = _a.denom, exchange_rate = _a.exchange_rate;\n return {\n denom: denom,\n exchange_rate: exchange_rate.toString(),\n };\n };\n ExchangeRateTuple.fromProto = function (proto) {\n return new ExchangeRateTuple(proto.denom, proto.exchangeRate);\n };\n ExchangeRateTuple.prototype.toProto = function () {\n var _a = this, denom = _a.denom, exchange_rate = _a.exchange_rate;\n return oracle_1.ExchangeRateTuple.fromPartial({\n denom: denom,\n exchangeRate: exchange_rate.toString(),\n });\n };\n return ExchangeRateTuple;\n}(json_1.JSONSerializable));\nexports.ExchangeRateTuple = ExchangeRateTuple;\n//# sourceMappingURL=AggregateExchangeRateVote.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgAggregateExchangeRatePrevote = void 0;\nvar json_1 = require(\"../../../util/json\");\nvar any_1 = require(\"@terra-money/legacy.proto/google/protobuf/any\");\nvar tx_1 = require(\"@terra-money/legacy.proto/terra/oracle/v1beta1/tx\");\n/**\n * Aggregate analog of MsgExchangeRatePrevote\n */\nvar MsgAggregateExchangeRatePrevote = /** @class */ (function (_super) {\n __extends(MsgAggregateExchangeRatePrevote, _super);\n /**\n * @param hash vote hash\n * @param feeder validator's feeder account address\n * @param validator validator's operator address\n */\n function MsgAggregateExchangeRatePrevote(hash, feeder, validator) {\n var _this = _super.call(this) || this;\n _this.hash = hash;\n _this.feeder = feeder;\n _this.validator = validator;\n return _this;\n }\n MsgAggregateExchangeRatePrevote.fromAmino = function (data, isClassic) {\n if (!isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = data.value, hash = _a.hash, feeder = _a.feeder, validator = _a.validator;\n return new MsgAggregateExchangeRatePrevote(hash, feeder, validator);\n };\n MsgAggregateExchangeRatePrevote.prototype.toAmino = function (isClassic) {\n if (!isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = this, hash = _a.hash, feeder = _a.feeder, validator = _a.validator;\n return {\n type: 'oracle/MsgAggregateExchangeRatePrevote',\n value: {\n hash: hash,\n feeder: feeder,\n validator: validator,\n },\n };\n };\n MsgAggregateExchangeRatePrevote.fromData = function (data, isClassic) {\n if (!isClassic) {\n throw new Error('Not supported for the network');\n }\n var hash = data.hash, feeder = data.feeder, validator = data.validator;\n return new MsgAggregateExchangeRatePrevote(hash, feeder, validator);\n };\n MsgAggregateExchangeRatePrevote.prototype.toData = function (isClassic) {\n if (!isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = this, hash = _a.hash, feeder = _a.feeder, validator = _a.validator;\n return {\n '@type': '/terra.oracle.v1beta1.MsgAggregateExchangeRatePrevote',\n hash: hash,\n feeder: feeder,\n validator: validator,\n };\n };\n MsgAggregateExchangeRatePrevote.fromProto = function (proto, isClassic) {\n if (!isClassic) {\n throw new Error('Not supported for the network');\n }\n return new MsgAggregateExchangeRatePrevote(proto.hash, proto.feeder, proto.validator);\n };\n MsgAggregateExchangeRatePrevote.prototype.toProto = function (isClassic) {\n if (!isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = this, hash = _a.hash, feeder = _a.feeder, validator = _a.validator;\n return tx_1.MsgAggregateExchangeRatePrevote.fromPartial({\n hash: hash,\n feeder: feeder,\n validator: validator,\n });\n };\n MsgAggregateExchangeRatePrevote.prototype.packAny = function (isClassic) {\n if (!isClassic) {\n throw new Error('Not supported for the network');\n }\n return any_1.Any.fromPartial({\n typeUrl: '/terra.oracle.v1beta1.MsgAggregateExchangeRatePrevote',\n value: tx_1.MsgAggregateExchangeRatePrevote.encode(this.toProto(isClassic)).finish(),\n });\n };\n MsgAggregateExchangeRatePrevote.unpackAny = function (msgAny, isClassic) {\n if (!isClassic) {\n throw new Error('Not supported for the network');\n }\n return MsgAggregateExchangeRatePrevote.fromProto(tx_1.MsgAggregateExchangeRatePrevote.decode(msgAny.value), isClassic);\n };\n return MsgAggregateExchangeRatePrevote;\n}(json_1.JSONSerializable));\nexports.MsgAggregateExchangeRatePrevote = MsgAggregateExchangeRatePrevote;\n//# sourceMappingURL=MsgAggregateExchangeRatePrevote.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgAggregateExchangeRateVote = exports.aggregateVoteHash = void 0;\nvar SHA256_1 = require(\"jscrypto/SHA256\");\nvar json_1 = require(\"../../../util/json\");\nvar MsgAggregateExchangeRatePrevote_1 = require(\"./MsgAggregateExchangeRatePrevote\");\nvar Coins_1 = require(\"../../Coins\");\nvar any_1 = require(\"@terra-money/legacy.proto/google/protobuf/any\");\nvar tx_1 = require(\"@terra-money/legacy.proto/terra/oracle/v1beta1/tx\");\n/**\n * Calculates the aggregate vote hash\n * @param exchangeRates exchange rates\n * @param salt salt\n * @param validator validator operator address\n */\nfunction aggregateVoteHash(exchangeRates, salt, validator) {\n var payload = \"\".concat(salt, \":\").concat(exchangeRates\n .toDecCoins()\n .toString(), \":\").concat(validator);\n return SHA256_1.SHA256.hash(payload).toString().substring(0, 40);\n}\nexports.aggregateVoteHash = aggregateVoteHash;\n/**\n * Aggregate analog of MsgExchangeRateVote: submits an oracle vote for multiple denominations\n * through a single message rather than multiple messages.\n */\nvar MsgAggregateExchangeRateVote = /** @class */ (function (_super) {\n __extends(MsgAggregateExchangeRateVote, _super);\n /**\n * @param exchange_rate exchange rates\n * @param salt salt\n * @param feeder feeder address\n * @param validator validator operator address\n */\n function MsgAggregateExchangeRateVote(exchange_rates, salt, feeder, validator) {\n var _this = _super.call(this) || this;\n _this.salt = salt;\n _this.feeder = feeder;\n _this.validator = validator;\n _this.exchange_rates = new Coins_1.Coins(exchange_rates).toDecCoins();\n return _this;\n }\n MsgAggregateExchangeRateVote.fromAmino = function (data, isClassic) {\n if (!isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = data.value, exchange_rates = _a.exchange_rates, salt = _a.salt, feeder = _a.feeder, validator = _a.validator;\n var xrs = Coins_1.Coins.fromString(exchange_rates);\n return new MsgAggregateExchangeRateVote(xrs, salt, feeder, validator);\n };\n MsgAggregateExchangeRateVote.prototype.toAmino = function (isClassic) {\n if (!isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = this, exchange_rates = _a.exchange_rates, salt = _a.salt, feeder = _a.feeder, validator = _a.validator;\n return {\n type: 'oracle/MsgAggregateExchangeRateVote',\n value: {\n exchange_rates: exchange_rates.toDecCoins().toString(),\n salt: salt,\n feeder: feeder,\n validator: validator,\n },\n };\n };\n MsgAggregateExchangeRateVote.fromData = function (proto, isClassic) {\n if (!isClassic) {\n throw new Error('Not supported for the network');\n }\n var exchange_rates = proto.exchange_rates, salt = proto.salt, feeder = proto.feeder, validator = proto.validator;\n var xrs = Coins_1.Coins.fromString(exchange_rates);\n return new MsgAggregateExchangeRateVote(xrs, salt, feeder, validator);\n };\n MsgAggregateExchangeRateVote.prototype.toData = function (isClassic) {\n if (!isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = this, exchange_rates = _a.exchange_rates, salt = _a.salt, feeder = _a.feeder, validator = _a.validator;\n return {\n '@type': '/terra.oracle.v1beta1.MsgAggregateExchangeRateVote',\n exchange_rates: exchange_rates.toDecCoins().toString(),\n salt: salt,\n feeder: feeder,\n validator: validator,\n };\n };\n MsgAggregateExchangeRateVote.fromProto = function (proto, isClassic) {\n if (!isClassic) {\n throw new Error('Not supported for the network');\n }\n var xrs = Coins_1.Coins.fromString(proto.exchangeRates);\n return new MsgAggregateExchangeRateVote(xrs, proto.salt, proto.feeder, proto.validator);\n };\n MsgAggregateExchangeRateVote.prototype.toProto = function (isClassic) {\n if (!isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = this, exchange_rates = _a.exchange_rates, salt = _a.salt, feeder = _a.feeder, validator = _a.validator;\n return tx_1.MsgAggregateExchangeRateVote.fromPartial({\n exchangeRates: exchange_rates.toString(),\n feeder: feeder,\n salt: salt,\n validator: validator,\n });\n };\n /**\n * Gets the aggregate vote hash for the MsgAggregateExchangeRateVote, for the creation of\n * the corresponding prevote message.\n */\n MsgAggregateExchangeRateVote.prototype.getAggregateVoteHash = function () {\n return aggregateVoteHash(this.exchange_rates, this.salt, this.validator);\n };\n /**\n * You can generate the corresponding aggregate prevote message.\n * This will return a [[MsgAggregateExchangeRatePrevote]] with the proper vote hash and values,\n * determined by the current attributes of the object.\n *\n * @returns the corresponding prevote message to send\n */\n MsgAggregateExchangeRateVote.prototype.getPrevote = function () {\n return new MsgAggregateExchangeRatePrevote_1.MsgAggregateExchangeRatePrevote(this.getAggregateVoteHash(), this.feeder, this.validator);\n };\n MsgAggregateExchangeRateVote.prototype.packAny = function (isClassic) {\n if (!isClassic) {\n throw new Error('Not supported for the network');\n }\n return any_1.Any.fromPartial({\n typeUrl: '/terra.oracle.v1beta1.MsgAggregateExchangeRateVote',\n value: tx_1.MsgAggregateExchangeRateVote.encode(this.toProto(isClassic)).finish(),\n });\n };\n MsgAggregateExchangeRateVote.unpackAny = function (msgAny, isClassic) {\n if (!isClassic) {\n throw new Error('Not supported for the network');\n }\n return MsgAggregateExchangeRateVote.fromProto(tx_1.MsgAggregateExchangeRateVote.decode(msgAny.value), isClassic);\n };\n return MsgAggregateExchangeRateVote;\n}(json_1.JSONSerializable));\nexports.MsgAggregateExchangeRateVote = MsgAggregateExchangeRateVote;\n//# sourceMappingURL=MsgAggregateExchangeRateVote.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgDelegateFeedConsent = void 0;\nvar json_1 = require(\"../../../util/json\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar tx_1 = require(\"@terra-money/legacy.proto/terra/oracle/v1beta1/tx\");\n/**\n * A **feeeder** is an account which is responsible for signing transactions with Oracle vote\n * and prevote messages on behalf of the validator. The blockchain will reject\n * [[MsgExchangeRateVote]] and [[MsgExchangeRatePrevote]] messages in transactions\n * signed by an\n * account different than the registered feeder.\n *\n * The following message registers a validator's feeder address.\n */\nvar MsgDelegateFeedConsent = /** @class */ (function (_super) {\n __extends(MsgDelegateFeedConsent, _super);\n /**\n * @param operator validator's operator address\n * @param delegate account address to set to feeder\n */\n function MsgDelegateFeedConsent(operator, delegate) {\n var _this = _super.call(this) || this;\n _this.operator = operator;\n _this.delegate = delegate;\n return _this;\n }\n MsgDelegateFeedConsent.fromAmino = function (data, isClassic) {\n if (!isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = data.value, operator = _a.operator, delegate = _a.delegate;\n return new MsgDelegateFeedConsent(operator, delegate);\n };\n MsgDelegateFeedConsent.prototype.toAmino = function (isClassic) {\n if (!isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = this, operator = _a.operator, delegate = _a.delegate;\n return {\n type: 'oracle/MsgDelegateFeedConsent',\n value: {\n operator: operator,\n delegate: delegate,\n },\n };\n };\n MsgDelegateFeedConsent.fromData = function (data, isClassic) {\n if (!isClassic) {\n throw new Error('Not supported for the network');\n }\n var operator = data.operator, delegate = data.delegate;\n return new MsgDelegateFeedConsent(operator, delegate);\n };\n MsgDelegateFeedConsent.prototype.toData = function (isClassic) {\n if (!isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = this, operator = _a.operator, delegate = _a.delegate;\n return {\n '@type': '/terra.oracle.v1beta1.MsgDelegateFeedConsent',\n operator: operator,\n delegate: delegate,\n };\n };\n MsgDelegateFeedConsent.fromProto = function (proto, isClassic) {\n if (!isClassic) {\n throw new Error('Not supported for the network');\n }\n return new MsgDelegateFeedConsent(proto.operator, proto.delegate);\n };\n MsgDelegateFeedConsent.prototype.toProto = function (isClassic) {\n if (!isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = this, operator = _a.operator, delegate = _a.delegate;\n return tx_1.MsgDelegateFeedConsent.fromPartial({\n delegate: delegate,\n operator: operator,\n });\n };\n MsgDelegateFeedConsent.prototype.packAny = function (isClassic) {\n if (!isClassic) {\n throw new Error('Not supported for the network');\n }\n return any_1.Any.fromPartial({\n typeUrl: '/terra.oracle.v1beta1.MsgDelegateFeedConsent',\n value: tx_1.MsgDelegateFeedConsent.encode(this.toProto(isClassic)).finish(),\n });\n };\n MsgDelegateFeedConsent.unpackAny = function (msgAny, isClassic) {\n if (!isClassic) {\n throw new Error('Not supported for the network');\n }\n return MsgDelegateFeedConsent.fromProto(tx_1.MsgDelegateFeedConsent.decode(msgAny.value), isClassic);\n };\n return MsgDelegateFeedConsent;\n}(json_1.JSONSerializable));\nexports.MsgDelegateFeedConsent = MsgDelegateFeedConsent;\n//# sourceMappingURL=MsgDelegateFeedConsent.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./MsgDelegateFeedConsent\"), exports);\n__exportStar(require(\"./MsgAggregateExchangeRateVote\"), exports);\n__exportStar(require(\"./MsgAggregateExchangeRatePrevote\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ParamChange = exports.ParamChanges = void 0;\nvar json_1 = require(\"../../util/json\");\nvar params_1 = require(\"@terra-money/legacy.proto/cosmos/params/v1beta1/params\");\nvar ParamChanges = /** @class */ (function (_super) {\n __extends(ParamChanges, _super);\n function ParamChanges(paramChanges) {\n var _this = _super.call(this) || this;\n _this.paramChanges = paramChanges;\n return _this;\n }\n ParamChanges.fromAmino = function (proto) {\n return new ParamChanges((proto !== null && proto !== void 0 ? proto : []).map(ParamChange.fromAmino));\n };\n ParamChanges.prototype.toAmino = function () {\n return this.paramChanges.map(function (c) { return c.toAmino(); });\n };\n ParamChanges.fromData = function (proto) {\n return new ParamChanges((proto !== null && proto !== void 0 ? proto : []).map(ParamChange.fromData));\n };\n ParamChanges.prototype.toData = function () {\n return this.paramChanges.map(function (c) { return c.toData(); });\n };\n ParamChanges.fromProto = function (proto) {\n return new ParamChanges((proto !== null && proto !== void 0 ? proto : []).map(ParamChange.fromProto));\n };\n ParamChanges.prototype.toProto = function () {\n return this.paramChanges.map(function (c) { return c.toProto(); });\n };\n return ParamChanges;\n}(json_1.JSONSerializable));\nexports.ParamChanges = ParamChanges;\nvar ParamChange = /** @class */ (function (_super) {\n __extends(ParamChange, _super);\n function ParamChange(subspace, key, value) {\n var _this = _super.call(this) || this;\n _this.subspace = subspace;\n _this.key = key;\n _this.value = value;\n return _this;\n }\n ParamChange.fromAmino = function (data) {\n var subspace = data.subspace, key = data.key, value = data.value;\n return new ParamChange(subspace, key, value);\n };\n ParamChange.prototype.toAmino = function () {\n var _a = this, subspace = _a.subspace, key = _a.key, value = _a.value;\n return {\n subspace: subspace,\n key: key,\n value: value,\n };\n };\n ParamChange.fromData = function (data) {\n var subspace = data.subspace, key = data.key, value = data.value;\n return new ParamChange(subspace, key, value);\n };\n ParamChange.prototype.toData = function () {\n var _a = this, subspace = _a.subspace, key = _a.key, value = _a.value;\n return {\n subspace: subspace,\n key: key,\n value: value,\n };\n };\n ParamChange.fromProto = function (proto) {\n return new ParamChange(proto.subspace, proto.key, proto.value);\n };\n ParamChange.prototype.toProto = function () {\n var _a = this, subspace = _a.subspace, key = _a.key, value = _a.value;\n return params_1.ParamChange.fromPartial({\n key: key,\n subspace: subspace,\n value: value,\n });\n };\n return ParamChange;\n}(json_1.JSONSerializable));\nexports.ParamChange = ParamChange;\n//# sourceMappingURL=ParamChange.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ParameterChangeProposal = void 0;\nvar json_1 = require(\"../../../util/json\");\nvar ParamChange_1 = require(\"../ParamChange\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar params_1 = require(\"@terra-money/terra.proto/cosmos/params/v1beta1/params\");\n/**\n * Describes a proposal for directly altering the value of the module parameters.\n * If you want to select a couple parameters to change for your proposal, you'll first\n * include the subspace (module it belongs to, such as \"oracle\" or \"distribution\"), and\n * then just the specific keys that you want to include in your changes as items in a\n * JavaScript object.\n *\n * ```ts\n * import {\n * Dec,\n * MsgSubmitProposal,\n * ParameterChangeProposal\n * } from \"@terra-money/terra.js\";\n *\n * const proposal = new ParameterChangeProposal(\"title\", \"description\", {\n * market: {\n * minspread: new Dec(0.25),\n * basepool: new Dec(10000000)\n * },\n * staking: {\n * UnbondingTime: 15000000\n * }\n * });\n *\n * const msg = new MsgSubmitProposal();\n * ```\n */\nvar ParameterChangeProposal = /** @class */ (function (_super) {\n __extends(ParameterChangeProposal, _super);\n /**\n * @param title proposal's title\n * @param description proposal's description\n * @param changes an object whose keys are subspace names, and whose values are objects\n * with objects having for keys and values, the desired parameter changes.\n */\n function ParameterChangeProposal(title, description, changes) {\n var _this = _super.call(this) || this;\n _this.title = title;\n _this.description = description;\n if (Array.isArray(changes)) {\n _this.changes = ParamChange_1.ParamChanges.fromData(changes);\n }\n else {\n _this.changes = changes;\n }\n return _this;\n }\n ParameterChangeProposal.fromAmino = function (data, _) {\n _;\n var _a = data.value, title = _a.title, description = _a.description, changes = _a.changes;\n return new ParameterChangeProposal(title, description, ParamChange_1.ParamChanges.fromAmino(changes));\n };\n ParameterChangeProposal.prototype.toAmino = function (isClassic) {\n var _a = this, title = _a.title, description = _a.description, changes = _a.changes;\n return {\n type: isClassic\n ? 'params/ParameterChangeProposal'\n : 'cosmos-sdk/ParameterChangeProposal',\n value: {\n title: title,\n description: description,\n changes: changes.toAmino(),\n },\n };\n };\n ParameterChangeProposal.fromData = function (proto, _) {\n _;\n var title = proto.title, description = proto.description, changes = proto.changes;\n return new ParameterChangeProposal(title, description, ParamChange_1.ParamChanges.fromData(changes));\n };\n ParameterChangeProposal.prototype.toData = function (_) {\n _;\n var _a = this, title = _a.title, description = _a.description, changes = _a.changes;\n return {\n '@type': '/cosmos.params.v1beta1.ParameterChangeProposal',\n title: title,\n description: description,\n changes: changes.toData(),\n };\n };\n ParameterChangeProposal.fromProto = function (proto, _) {\n _;\n return new ParameterChangeProposal(proto.title, proto.description, ParamChange_1.ParamChanges.fromProto(proto.changes));\n };\n ParameterChangeProposal.prototype.toProto = function (_) {\n _;\n var _a = this, title = _a.title, description = _a.description, changes = _a.changes;\n return params_1.ParameterChangeProposal.fromPartial({\n changes: changes.toProto(),\n description: description,\n title: title,\n });\n };\n ParameterChangeProposal.prototype.packAny = function (isClassic) {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.params.v1beta1.ParameterChangeProposal',\n value: params_1.ParameterChangeProposal.encode(this.toProto(isClassic)).finish(),\n });\n };\n ParameterChangeProposal.unpackAny = function (msgAny, isClassic) {\n return ParameterChangeProposal.fromProto(params_1.ParameterChangeProposal.decode(msgAny.value), isClassic);\n };\n return ParameterChangeProposal;\n}(json_1.JSONSerializable));\nexports.ParameterChangeProposal = ParameterChangeProposal;\n//# sourceMappingURL=ParameterChangeProposal.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ParameterChangeProposal\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgUnjail = void 0;\nvar json_1 = require(\"../../../util/json\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar tx_1 = require(\"@terra-money/terra.proto/cosmos/slashing/v1beta1/tx\");\n/**\n * A validator can be jailed by the blockchain if misbehavior is detected, such as\n * double-signing or having missed too many vote periods in the Oracle ballot.\n *\n * This is done to protect delegators' funds from getting slashed further, until the\n * validator's issues have been addressed. A jailed validator cannot participate in\n * block rewards, and must be manually unjailed by submitting this message.\n */\nvar MsgUnjail = /** @class */ (function (_super) {\n __extends(MsgUnjail, _super);\n /**\n * @param address validator's operator address\n */\n function MsgUnjail(address) {\n var _this = _super.call(this) || this;\n _this.address = address;\n return _this;\n }\n MsgUnjail.fromAmino = function (data, _) {\n _;\n var address = data.value.address;\n return new MsgUnjail(address);\n };\n MsgUnjail.prototype.toAmino = function (isClassic) {\n var address = this.address;\n return {\n type: isClassic ? 'slashing/MsgUnjail' : 'cosmos-sdk/MsgUnjail',\n value: {\n address: address,\n },\n };\n };\n MsgUnjail.fromData = function (proto, _) {\n _;\n var address = proto.address;\n return new MsgUnjail(address);\n };\n MsgUnjail.prototype.toData = function (_) {\n _;\n var address = this.address;\n return {\n '@type': '/cosmos.slashing.v1beta1.MsgUnjail',\n address: address,\n };\n };\n MsgUnjail.fromProto = function (proto, _) {\n _;\n return new MsgUnjail(proto.validatorAddr);\n };\n MsgUnjail.prototype.toProto = function (_) {\n _;\n var address = this.address;\n return tx_1.MsgUnjail.fromPartial({\n validatorAddr: address,\n });\n };\n MsgUnjail.prototype.packAny = function (isClassic) {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.slashing.v1beta1.MsgUnjail',\n value: tx_1.MsgUnjail.encode(this.toProto(isClassic)).finish(),\n });\n };\n MsgUnjail.unpackAny = function (msgAny, isClassic) {\n return MsgUnjail.fromProto(tx_1.MsgUnjail.decode(msgAny.value), isClassic);\n };\n return MsgUnjail;\n}(json_1.JSONSerializable));\nexports.MsgUnjail = MsgUnjail;\n//# sourceMappingURL=MsgUnjail.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./MsgUnjail\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Delegation = void 0;\nvar json_1 = require(\"../../util/json\");\nvar numeric_1 = require(\"../numeric\");\nvar Coin_1 = require(\"../Coin\");\nvar staking_1 = require(\"@terra-money/terra.proto/cosmos/staking/v1beta1/staking\");\n/**\n * Stores information about the status of a delegation between a delegator and validator, fetched from the blockchain.\n */\nvar Delegation = /** @class */ (function (_super) {\n __extends(Delegation, _super);\n /**\n * @param delegator_address \tdelegator's account address\n * @param validator_address \tvalidator's operator address\n * @param shares \tdelegator's shares\n * @param balance balance of the delegation\n */\n function Delegation(delegator_address, validator_address, shares, balance) {\n var _this = _super.call(this) || this;\n _this.delegator_address = delegator_address;\n _this.validator_address = validator_address;\n _this.shares = shares;\n _this.balance = balance;\n return _this;\n }\n Delegation.fromAmino = function (data) {\n var _a = data.delegation, delegator_address = _a.delegator_address, validator_address = _a.validator_address, shares = _a.shares, balance = data.balance;\n return new Delegation(delegator_address, validator_address, new numeric_1.Dec(shares), Coin_1.Coin.fromAmino(balance));\n };\n Delegation.prototype.toAmino = function () {\n var _a = this, delegator_address = _a.delegator_address, validator_address = _a.validator_address, shares = _a.shares, balance = _a.balance;\n return {\n delegation: {\n delegator_address: delegator_address,\n validator_address: validator_address,\n shares: shares.toString(),\n },\n balance: balance.toAmino(),\n };\n };\n Delegation.fromData = function (data) {\n var _a = data.delegation, delegator_address = _a.delegator_address, validator_address = _a.validator_address, shares = _a.shares, balance = data.balance;\n return new Delegation(delegator_address, validator_address, new numeric_1.Dec(shares), Coin_1.Coin.fromData(balance));\n };\n Delegation.prototype.toData = function () {\n var _a = this, delegator_address = _a.delegator_address, validator_address = _a.validator_address, shares = _a.shares, balance = _a.balance;\n return {\n delegation: {\n delegator_address: delegator_address,\n validator_address: validator_address,\n shares: shares.toString(),\n },\n balance: balance.toData(),\n };\n };\n Delegation.fromProto = function (proto) {\n var delegationProto = proto.delegation;\n return new Delegation(delegationProto.delegatorAddress, delegationProto.validatorAddress, new numeric_1.Dec(delegationProto.shares), Coin_1.Coin.fromProto(proto.balance));\n };\n Delegation.prototype.toProto = function () {\n var _a = this, delegator_address = _a.delegator_address, validator_address = _a.validator_address, shares = _a.shares, balance = _a.balance;\n return staking_1.DelegationResponse.fromPartial({\n delegation: staking_1.Delegation.fromPartial({\n delegatorAddress: delegator_address,\n shares: shares.toString(),\n validatorAddress: validator_address,\n }),\n balance: balance.toProto(),\n });\n };\n return Delegation;\n}(json_1.JSONSerializable));\nexports.Delegation = Delegation;\n//# sourceMappingURL=Delegation.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Redelegation = void 0;\nvar json_1 = require(\"../../util/json\");\nvar numeric_1 = require(\"../numeric\");\nvar staking_1 = require(\"@terra-money/terra.proto/cosmos/staking/v1beta1/staking\");\nvar Long = __importStar(require(\"long\"));\n/**\n * A redelegation is when a delegator decides to stop staking with one validator and\n * transfer their delegation to another validator. Rather than unbonding (which takes\n * some time) and re-staking, the funds can be redelegated immediately if a\n * [[Redelegation.Entry]] can be created.\n *\n * A redelegation, like an unbonding delegation, is implemented through\n * [[Redelegation.Entry]] objects, limited by the `max_entry` parameter in the staking\n * module params. For each pair of source and target validators, you cannot redelegate\n * more times than the amount of entries. Entries are cleared when the redelegation is\n * completed, the same amount of time as unbonding.\n */\nvar Redelegation = /** @class */ (function (_super) {\n __extends(Redelegation, _super);\n /**\n *\n * @param delegator_address delegator's account address\n * @param validator_src_address source validator's operator address (from)\n * @param validator_dst_address target validator's operator address (to)\n * @param entries entries\n */\n function Redelegation(delegator_address, validator_src_address, validator_dst_address, entries) {\n var _this = _super.call(this) || this;\n _this.delegator_address = delegator_address;\n _this.validator_src_address = validator_src_address;\n _this.validator_dst_address = validator_dst_address;\n _this.entries = entries;\n return _this;\n }\n Redelegation.fromAmino = function (data) {\n var _a = data.redelegation, delegator_address = _a.delegator_address, validator_src_address = _a.validator_src_address, validator_dst_address = _a.validator_dst_address, entries = data.entries;\n return new Redelegation(delegator_address, validator_src_address, validator_dst_address, entries.map(function (e) { return Redelegation.Entry.fromAmino(e); }));\n };\n Redelegation.prototype.toAmino = function () {\n var _a = this, delegator_address = _a.delegator_address, validator_src_address = _a.validator_src_address, validator_dst_address = _a.validator_dst_address, entries = _a.entries;\n return {\n redelegation: {\n delegator_address: delegator_address,\n validator_src_address: validator_src_address,\n validator_dst_address: validator_dst_address,\n },\n entries: entries.map(function (e) { return e.toAmino(); }),\n };\n };\n Redelegation.fromData = function (data) {\n var _a = data.redelegation, delegator_address = _a.delegator_address, validator_src_address = _a.validator_src_address, validator_dst_address = _a.validator_dst_address, entries = data.entries;\n return new Redelegation(delegator_address, validator_src_address, validator_dst_address, entries.map(function (e) { return Redelegation.Entry.fromData(e); }));\n };\n Redelegation.prototype.toData = function () {\n var _a = this, delegator_address = _a.delegator_address, validator_src_address = _a.validator_src_address, validator_dst_address = _a.validator_dst_address, entries = _a.entries;\n return {\n redelegation: {\n delegator_address: delegator_address,\n validator_src_address: validator_src_address,\n validator_dst_address: validator_dst_address,\n },\n entries: entries.map(function (e) { return e.toData(); }),\n };\n };\n Redelegation.fromProto = function (data) {\n var redelegationProto = data.redelegation;\n return new Redelegation(redelegationProto.delegatorAddress, redelegationProto.validatorDstAddress, redelegationProto.validatorDstAddress, data.entries.map(function (e) { return Redelegation.Entry.fromProto(e); }));\n };\n Redelegation.prototype.toProto = function () {\n var _a = this, delegator_address = _a.delegator_address, validator_src_address = _a.validator_src_address, validator_dst_address = _a.validator_dst_address, entries = _a.entries;\n return staking_1.RedelegationResponse.fromPartial({\n entries: entries.map(function (e) { return e.toProto(); }),\n redelegation: staking_1.Redelegation.fromPartial({\n delegatorAddress: delegator_address,\n entries: entries.map(function (e) { return e.toProto().redelegationEntry; }),\n validatorDstAddress: validator_dst_address,\n validatorSrcAddress: validator_src_address,\n }),\n });\n };\n return Redelegation;\n}(json_1.JSONSerializable));\nexports.Redelegation = Redelegation;\n(function (Redelegation) {\n var Entry = /** @class */ (function (_super) {\n __extends(Entry, _super);\n /**\n *\n * @param initial_balance balance of delegation prior to initiating redelegation\n * @param shares_dst\n * @param creation_height \theight of blockchain when entry was created\n * @param completion_time time when redelegation entry will be removed\n */\n function Entry(initial_balance, balance, shares_dst, creation_height, completion_time) {\n var _this = _super.call(this) || this;\n _this.initial_balance = initial_balance;\n _this.balance = balance;\n _this.shares_dst = shares_dst;\n _this.creation_height = creation_height;\n _this.completion_time = completion_time;\n return _this;\n }\n Entry.prototype.toAmino = function () {\n return {\n redelegation_entry: {\n initial_balance: this.initial_balance.toString(),\n shares_dst: this.shares_dst.toString(),\n creation_height: this.creation_height,\n completion_time: this.completion_time.toISOString(),\n },\n balance: this.balance.toString(),\n };\n };\n Entry.fromAmino = function (data) {\n var _a = data.redelegation_entry, initial_balance = _a.initial_balance, shares_dst = _a.shares_dst, creation_height = _a.creation_height, completion_time = _a.completion_time, balance = data.balance;\n return new Entry(new numeric_1.Int(initial_balance), new numeric_1.Int(balance), new numeric_1.Dec(shares_dst), creation_height, new Date(completion_time));\n };\n Entry.prototype.toData = function () {\n return {\n redelegation_entry: {\n initial_balance: this.initial_balance.toString(),\n shares_dst: this.shares_dst.toString(),\n creation_height: this.creation_height,\n completion_time: this.completion_time.toISOString(),\n },\n balance: this.balance.toString(),\n };\n };\n Entry.fromData = function (data) {\n var _a = data.redelegation_entry, initial_balance = _a.initial_balance, shares_dst = _a.shares_dst, creation_height = _a.creation_height, completion_time = _a.completion_time, balance = data.balance;\n return new Entry(new numeric_1.Int(initial_balance), new numeric_1.Int(balance), new numeric_1.Dec(shares_dst), creation_height, new Date(completion_time));\n };\n Entry.prototype.toProto = function () {\n var _a = this, initial_balance = _a.initial_balance, balance = _a.balance, shares_dst = _a.shares_dst, creation_height = _a.creation_height, completion_time = _a.completion_time;\n return staking_1.RedelegationEntryResponse.fromPartial({\n balance: balance.toString(),\n redelegationEntry: staking_1.RedelegationEntry.fromPartial({\n completionTime: completion_time,\n creationHeight: Long.fromNumber(creation_height),\n initialBalance: initial_balance.toString(),\n sharesDst: shares_dst.toString(),\n }),\n });\n };\n Entry.fromProto = function (proto) {\n var redelegationEntryProto = proto.redelegationEntry;\n return new Entry(new numeric_1.Int(redelegationEntryProto.initialBalance), new numeric_1.Int(proto.balance), new numeric_1.Dec(redelegationEntryProto.sharesDst), redelegationEntryProto.creationHeight.toNumber(), redelegationEntryProto.completionTime);\n };\n return Entry;\n }(json_1.JSONSerializable));\n Redelegation.Entry = Entry;\n})(Redelegation = exports.Redelegation || (exports.Redelegation = {}));\nexports.Redelegation = Redelegation;\n//# sourceMappingURL=Redelegation.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UnbondingDelegation = void 0;\nvar json_1 = require(\"../../util/json\");\nvar numeric_1 = require(\"../numeric\");\nvar staking_1 = require(\"@terra-money/terra.proto/cosmos/staking/v1beta1/staking\");\nvar Long = __importStar(require(\"long\"));\n/**\n * When a delegator decides to take out their funds from the staking pool, they must\n * unbond their tokens which takes an amount of time specified by `unbonding_time`\n * parameter in the staking module.\n *\n * An unbonding delegation is implemented through creating [[UnbondingDelegation.Entry]]\n * objects, limited by the max_entry parameter in the staking module params. You cannot\n * initiate unbonds more times than the amount of entries permitted. Entries are cleared\n * when their unbonding periods are completed and the funds are returned to the\n * delegator's account balance to be spent freely.\n */\nvar UnbondingDelegation = /** @class */ (function (_super) {\n __extends(UnbondingDelegation, _super);\n function UnbondingDelegation(delegator_address, validator_address, entries) {\n var _this = _super.call(this) || this;\n _this.delegator_address = delegator_address;\n _this.validator_address = validator_address;\n _this.entries = entries;\n return _this;\n }\n UnbondingDelegation.fromAmino = function (data) {\n var delegator_address = data.delegator_address, validator_address = data.validator_address, entries = data.entries;\n return new UnbondingDelegation(delegator_address, validator_address, entries.map(function (e) { return UnbondingDelegation.Entry.fromAmino(e); }));\n };\n UnbondingDelegation.prototype.toAmino = function () {\n var _a = this, delegator_address = _a.delegator_address, validator_address = _a.validator_address, entries = _a.entries;\n return {\n delegator_address: delegator_address,\n validator_address: validator_address,\n entries: entries.map(function (e) { return e.toAmino(); }),\n };\n };\n UnbondingDelegation.fromData = function (data) {\n var delegator_address = data.delegator_address, validator_address = data.validator_address, entries = data.entries;\n return new UnbondingDelegation(delegator_address, validator_address, entries.map(function (e) { return UnbondingDelegation.Entry.fromData(e); }));\n };\n UnbondingDelegation.prototype.toData = function () {\n var _a = this, delegator_address = _a.delegator_address, validator_address = _a.validator_address, entries = _a.entries;\n return {\n delegator_address: delegator_address,\n validator_address: validator_address,\n entries: entries.map(function (e) { return e.toData(); }),\n };\n };\n UnbondingDelegation.prototype.toProto = function () {\n var _a = this, delegator_address = _a.delegator_address, validator_address = _a.validator_address, entries = _a.entries;\n return staking_1.UnbondingDelegation.fromPartial({\n delegatorAddress: delegator_address,\n entries: entries.map(function (e) { return e.toProto(); }),\n validatorAddress: validator_address,\n });\n };\n UnbondingDelegation.fromProto = function (proto) {\n return new UnbondingDelegation(proto.delegatorAddress, proto.validatorAddress, proto.entries.map(function (e) { return UnbondingDelegation.Entry.fromProto(e); }));\n };\n return UnbondingDelegation;\n}(json_1.JSONSerializable));\nexports.UnbondingDelegation = UnbondingDelegation;\n(function (UnbondingDelegation) {\n var Entry = /** @class */ (function (_super) {\n __extends(Entry, _super);\n /**\n * Note that the size of the undelegation is `initial_balance - balance`\n * @param initial_balance balance of delegation prior to initiating unbond\n * @param balance balance of delegation after initiating unbond\n * @param creation_height height of blockchain when entry was created\n * @param completion_time time when unbonding will be completed\n */\n function Entry(initial_balance, balance, creation_height, completion_time) {\n var _this = _super.call(this) || this;\n _this.initial_balance = initial_balance;\n _this.balance = balance;\n _this.creation_height = creation_height;\n _this.completion_time = completion_time;\n return _this;\n }\n Entry.prototype.toAmino = function () {\n return {\n initial_balance: this.initial_balance.toString(),\n balance: this.balance.toString(),\n creation_height: this.creation_height.toFixed(),\n completion_time: this.completion_time.toISOString(),\n };\n };\n Entry.fromAmino = function (data) {\n var initial_balance = data.initial_balance, balance = data.balance, creation_height = data.creation_height, completion_time = data.completion_time;\n return new Entry(new numeric_1.Int(initial_balance), new numeric_1.Int(balance), Number.parseInt(creation_height), new Date(completion_time));\n };\n Entry.prototype.toData = function () {\n return {\n initial_balance: this.initial_balance.toString(),\n balance: this.balance.toString(),\n creation_height: this.creation_height.toFixed(),\n completion_time: this.completion_time.toISOString(),\n };\n };\n Entry.fromData = function (data) {\n var initial_balance = data.initial_balance, balance = data.balance, creation_height = data.creation_height, completion_time = data.completion_time;\n return new Entry(new numeric_1.Int(initial_balance), new numeric_1.Int(balance), Number.parseInt(creation_height), new Date(completion_time));\n };\n Entry.prototype.toProto = function () {\n var _a = this, initial_balance = _a.initial_balance, balance = _a.balance, creation_height = _a.creation_height, completion_time = _a.completion_time;\n return staking_1.UnbondingDelegationEntry.fromPartial({\n balance: balance.toString(),\n completionTime: completion_time,\n creationHeight: Long.fromNumber(creation_height),\n initialBalance: initial_balance.toString(),\n });\n };\n Entry.fromProto = function (proto) {\n return new Entry(new numeric_1.Int(proto.initialBalance), new numeric_1.Int(proto.balance), proto.creationHeight.toNumber(), proto.completionTime);\n };\n return Entry;\n }(json_1.JSONSerializable));\n UnbondingDelegation.Entry = Entry;\n})(UnbondingDelegation = exports.UnbondingDelegation || (exports.UnbondingDelegation = {}));\nexports.UnbondingDelegation = UnbondingDelegation;\n//# sourceMappingURL=UnbondingDelegation.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Validator = void 0;\nvar json_1 = require(\"../../util/json\");\nvar numeric_1 = require(\"../numeric\");\nvar PublicKey_1 = require(\"../PublicKey\");\nvar staking_1 = require(\"@terra-money/terra.proto/cosmos/staking/v1beta1/staking\");\nvar Long = __importStar(require(\"long\"));\n/**\n * Stores information fetched from the blockchain about the current status of a validator.\n * As an end user, you will not have to create an instance of this class, one will be\n * generated for you to store information about a validator polled from the API functions\n * in [[StakingAPI]].\n */\nvar Validator = /** @class */ (function (_super) {\n __extends(Validator, _super);\n /**\n *\n * @param operator_address validator's operator address\n * @param consensus_pubkey validator's consensus public key\n * @param jailed whether the current validator is jailed\n * @param status unbonded `0`, unbonding `1`, bonded `2`\n * @param tokens total Luna from all delegations (including self)\n * @param delegator_shares total shares of all delegators\n * @param description validator's delegate description\n * @param unbonding_height if unbonding, height at which this validator began unbonding\n * @param unbonding_time if unbonding, min time for the validator to complete unbonding\n * @param commission validator commission\n * @param min_self_delegation minimum self delegation\n */\n function Validator(operator_address, consensus_pubkey, jailed, status, tokens, delegator_shares, description, unbonding_height, unbonding_time, commission, min_self_delegation) {\n var _this = _super.call(this) || this;\n _this.operator_address = operator_address;\n _this.consensus_pubkey = consensus_pubkey;\n _this.jailed = jailed;\n _this.status = status;\n _this.tokens = tokens;\n _this.delegator_shares = delegator_shares;\n _this.description = description;\n _this.unbonding_height = unbonding_height;\n _this.unbonding_time = unbonding_time;\n _this.commission = commission;\n _this.min_self_delegation = min_self_delegation;\n return _this;\n }\n Validator.prototype.toAmino = function () {\n return {\n operator_address: this.operator_address,\n consensus_pubkey: this.consensus_pubkey.toAmino(),\n jailed: this.jailed,\n status: this.status,\n tokens: this.tokens.toString(),\n delegator_shares: this.delegator_shares.toString(),\n description: this.description,\n unbonding_height: this.unbonding_height.toFixed(),\n unbonding_time: this.unbonding_time.toISOString(),\n commission: this.commission.toAmino(),\n min_self_delegation: this.min_self_delegation.toString(),\n };\n };\n Validator.fromAmino = function (data) {\n return new Validator(data.operator_address, PublicKey_1.ValConsPublicKey.fromAmino(data.consensus_pubkey), data.jailed || false, data.status || 0, new numeric_1.Int(data.tokens), new numeric_1.Dec(data.delegator_shares), Validator.Description.fromAmino(data.description), Number.parseInt(data.unbonding_height), new Date(data.unbonding_time), Validator.Commission.fromAmino(data.commission), new numeric_1.Int(data.min_self_delegation));\n };\n Validator.prototype.toData = function () {\n return {\n operator_address: this.operator_address,\n consensus_pubkey: this.consensus_pubkey.toData(),\n jailed: this.jailed,\n status: this.status,\n tokens: this.tokens.toString(),\n delegator_shares: this.delegator_shares.toString(),\n description: this.description,\n unbonding_height: this.unbonding_height.toFixed(),\n unbonding_time: this.unbonding_time.toISOString(),\n commission: this.commission.toData(),\n min_self_delegation: this.min_self_delegation.toString(),\n };\n };\n Validator.fromData = function (data) {\n return new Validator(data.operator_address, PublicKey_1.ValConsPublicKey.fromData(data.consensus_pubkey), data.jailed || false, data.status || 0, new numeric_1.Int(data.tokens), new numeric_1.Dec(data.delegator_shares), Validator.Description.fromData(data.description), Number.parseInt(data.unbonding_height), new Date(data.unbonding_time), Validator.Commission.fromData(data.commission), new numeric_1.Int(data.min_self_delegation));\n };\n Validator.prototype.toProto = function () {\n var _a = this, operator_address = _a.operator_address, consensus_pubkey = _a.consensus_pubkey, jailed = _a.jailed, status = _a.status, tokens = _a.tokens, delegator_shares = _a.delegator_shares, description = _a.description, unbonding_height = _a.unbonding_height, unbonding_time = _a.unbonding_time, commission = _a.commission, min_self_delegation = _a.min_self_delegation;\n return staking_1.Validator.fromPartial({\n commission: commission.toProto(),\n consensusPubkey: consensus_pubkey.packAny(),\n delegatorShares: delegator_shares.toString(),\n description: description.toProto(),\n jailed: jailed,\n minSelfDelegation: min_self_delegation.toString(),\n operatorAddress: operator_address,\n status: status,\n tokens: tokens.toString(),\n unbondingHeight: Long.fromNumber(unbonding_height),\n unbondingTime: unbonding_time,\n });\n };\n Validator.fromProto = function (data) {\n return new Validator(data.operatorAddress, PublicKey_1.ValConsPublicKey.unpackAny(data.consensusPubkey), data.jailed, data.status, new numeric_1.Int(data.tokens), new numeric_1.Dec(data.delegatorShares), Validator.Description.fromProto(data.description), data.unbondingHeight.toNumber(), data.unbondingTime, Validator.Commission.fromProto(data.commission), new numeric_1.Int(data.minSelfDelegation));\n };\n return Validator;\n}(json_1.JSONSerializable));\nexports.Validator = Validator;\n(function (Validator) {\n Validator.Status = staking_1.BondStatus;\n var Description = /** @class */ (function (_super) {\n __extends(Description, _super);\n /**\n * @param moniker Identifying name, e.g. \"Hashed\"\n * @param identity time at which commission was last updated\n * @param website validator's website\n * @param details long description\n * @param security_contact validator's contact\n */\n function Description(moniker, identity, website, details, security_contact) {\n var _this = _super.call(this) || this;\n _this.moniker = moniker;\n _this.identity = identity;\n _this.website = website;\n _this.details = details;\n _this.security_contact = security_contact;\n return _this;\n }\n Description.prototype.toAmino = function () {\n return {\n moniker: this.moniker,\n identity: this.identity,\n website: this.website,\n details: this.details,\n security_contact: this.security_contact,\n };\n };\n Description.fromAmino = function (data) {\n return new Description(data.moniker, data.identity || '', data.website || '', data.details || '', data.security_contact || '');\n };\n Description.prototype.toData = function () {\n return {\n moniker: this.moniker,\n identity: this.identity,\n website: this.website,\n details: this.details,\n security_contact: this.security_contact,\n };\n };\n Description.fromData = function (data) {\n return new Description(data.moniker, data.identity || '', data.website || '', data.details || '', data.security_contact || '');\n };\n Description.prototype.toProto = function () {\n var _a = this, moniker = _a.moniker, identity = _a.identity, website = _a.website, details = _a.details, security_contact = _a.security_contact;\n return staking_1.Description.fromPartial({\n details: details,\n identity: identity,\n moniker: moniker,\n securityContact: security_contact,\n website: website,\n });\n };\n Description.fromProto = function (proto) {\n return new Description(proto.moniker, proto.identity, proto.website, proto.details, proto.securityContact);\n };\n return Description;\n }(json_1.JSONSerializable));\n Validator.Description = Description;\n var CommissionRates = /** @class */ (function (_super) {\n __extends(CommissionRates, _super);\n /**\n * @param rate current commission rate\n * @param max_rate max commission rate\n * @param max_change_rate max percentage commission can change in 24hrs\n */\n function CommissionRates(rate, max_rate, max_change_rate) {\n var _this = _super.call(this) || this;\n _this.rate = rate;\n _this.max_rate = max_rate;\n _this.max_change_rate = max_change_rate;\n return _this;\n }\n CommissionRates.fromAmino = function (data) {\n var rate = data.rate, max_rate = data.max_rate, max_change_rate = data.max_change_rate;\n return new CommissionRates(new numeric_1.Dec(rate), new numeric_1.Dec(max_rate), new numeric_1.Dec(max_change_rate));\n };\n CommissionRates.prototype.toAmino = function () {\n var _a = this, rate = _a.rate, max_rate = _a.max_rate, max_change_rate = _a.max_change_rate;\n return {\n rate: rate.toString(),\n max_rate: max_rate.toString(),\n max_change_rate: max_change_rate.toString(),\n };\n };\n CommissionRates.fromData = function (data) {\n var rate = data.rate, max_rate = data.max_rate, max_change_rate = data.max_change_rate;\n return new CommissionRates(new numeric_1.Dec(rate), new numeric_1.Dec(max_rate), new numeric_1.Dec(max_change_rate));\n };\n CommissionRates.prototype.toData = function () {\n var _a = this, rate = _a.rate, max_rate = _a.max_rate, max_change_rate = _a.max_change_rate;\n return {\n rate: rate.toString(),\n max_rate: max_rate.toString(),\n max_change_rate: max_change_rate.toString(),\n };\n };\n CommissionRates.fromProto = function (proto) {\n return new CommissionRates(new numeric_1.Dec(proto.rate), new numeric_1.Dec(proto.maxRate), new numeric_1.Dec(proto.maxChangeRate));\n };\n CommissionRates.prototype.toProto = function () {\n var _a = this, rate = _a.rate, max_rate = _a.max_rate, max_change_rate = _a.max_change_rate;\n return staking_1.CommissionRates.fromPartial({\n maxChangeRate: max_change_rate.toString(),\n maxRate: max_rate.toString(),\n rate: rate.toString(),\n });\n };\n return CommissionRates;\n }(json_1.JSONSerializable));\n Validator.CommissionRates = CommissionRates;\n var Commission = /** @class */ (function (_super) {\n __extends(Commission, _super);\n /**\n * @param commission_rates commission rates\n * @param update_time time at which commission was last updated\n */\n function Commission(commission_rates, update_time) {\n var _this = _super.call(this) || this;\n _this.commission_rates = commission_rates;\n _this.update_time = update_time;\n return _this;\n }\n Commission.prototype.toAmino = function () {\n return {\n commission_rates: this.commission_rates.toAmino(),\n update_time: this.update_time.toISOString(),\n };\n };\n Commission.fromAmino = function (data) {\n return new Commission(CommissionRates.fromAmino(data.commission_rates), new Date(data.update_time));\n };\n Commission.prototype.toData = function () {\n return {\n commission_rates: this.commission_rates.toData(),\n update_time: this.update_time.toISOString(),\n };\n };\n Commission.fromData = function (data) {\n return new Commission(CommissionRates.fromData(data.commission_rates), new Date(data.update_time));\n };\n Commission.prototype.toProto = function () {\n var _a = this, commission_rates = _a.commission_rates, update_time = _a.update_time;\n return staking_1.Commission.fromPartial({\n commissionRates: commission_rates.toProto(),\n updateTime: update_time,\n });\n };\n Commission.fromProto = function (proto) {\n return new Commission(CommissionRates.fromProto(proto.commissionRates), proto.updateTime);\n };\n return Commission;\n }(json_1.JSONSerializable));\n Validator.Commission = Commission;\n})(Validator = exports.Validator || (exports.Validator = {}));\nexports.Validator = Validator;\n//# sourceMappingURL=Validator.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgBeginRedelegate = void 0;\nvar json_1 = require(\"../../../util/json\");\nvar Coin_1 = require(\"../../Coin\");\n// import { Any } from '@terra-money/legacy.proto/google/protobuf/any';\n// import { MsgBeginRedelegate as MsgBeginRedelegate_pb } from '@terra-money/legacy.proto/cosmos/staking/v1beta1/tx';\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar tx_1 = require(\"@terra-money/terra.proto/cosmos/staking/v1beta1/tx\");\n/**\n * A delegator can choose to redelegate their bonded Luna and transfer a delegation\n * amount from one validator to another. Unlike undelegating, redelegations do not incur\n * a 21-day unbonding period and happen immediately.\n */\nvar MsgBeginRedelegate = /** @class */ (function (_super) {\n __extends(MsgBeginRedelegate, _super);\n /**\n *\n * @param delegator_address delegator's account address\n * @param validator_src_address validator to undelegate from\n * @param validator_dst_address validator to delegate to\n * @param amount LUNA to be redelegated\n */\n function MsgBeginRedelegate(delegator_address, validator_src_address, validator_dst_address, amount) {\n var _this = _super.call(this) || this;\n _this.delegator_address = delegator_address;\n _this.validator_src_address = validator_src_address;\n _this.validator_dst_address = validator_dst_address;\n _this.amount = amount;\n return _this;\n }\n MsgBeginRedelegate.fromAmino = function (data, _) {\n _;\n var _a = data.value, delegator_address = _a.delegator_address, validator_src_address = _a.validator_src_address, validator_dst_address = _a.validator_dst_address, amount = _a.amount;\n return new MsgBeginRedelegate(delegator_address, validator_src_address, validator_dst_address, Coin_1.Coin.fromAmino(amount));\n };\n MsgBeginRedelegate.prototype.toAmino = function (isClassic) {\n var _a = this, delegator_address = _a.delegator_address, validator_src_address = _a.validator_src_address, validator_dst_address = _a.validator_dst_address, amount = _a.amount;\n return {\n type: isClassic\n ? 'staking/MsgBeginRedelegate'\n : 'cosmos-sdk/MsgBeginRedelegate',\n value: {\n delegator_address: delegator_address,\n validator_src_address: validator_src_address,\n validator_dst_address: validator_dst_address,\n amount: amount.toAmino(),\n },\n };\n };\n MsgBeginRedelegate.fromData = function (data, _) {\n _;\n var delegator_address = data.delegator_address, validator_src_address = data.validator_src_address, validator_dst_address = data.validator_dst_address, amount = data.amount;\n return new MsgBeginRedelegate(delegator_address, validator_src_address, validator_dst_address, Coin_1.Coin.fromData(amount));\n };\n MsgBeginRedelegate.prototype.toData = function (_) {\n _;\n var _a = this, delegator_address = _a.delegator_address, validator_src_address = _a.validator_src_address, validator_dst_address = _a.validator_dst_address, amount = _a.amount;\n return {\n '@type': '/cosmos.staking.v1beta1.MsgBeginRedelegate',\n delegator_address: delegator_address,\n validator_src_address: validator_src_address,\n validator_dst_address: validator_dst_address,\n amount: amount.toData(),\n };\n };\n MsgBeginRedelegate.fromProto = function (proto, _) {\n _;\n return new MsgBeginRedelegate(proto.delegatorAddress, proto.validatorSrcAddress, proto.validatorDstAddress, Coin_1.Coin.fromProto(proto.amount));\n };\n MsgBeginRedelegate.prototype.toProto = function (_) {\n _;\n var _a = this, delegator_address = _a.delegator_address, validator_src_address = _a.validator_src_address, validator_dst_address = _a.validator_dst_address, amount = _a.amount;\n return tx_1.MsgBeginRedelegate.fromPartial({\n amount: amount.toProto(),\n delegatorAddress: delegator_address,\n validatorDstAddress: validator_dst_address,\n validatorSrcAddress: validator_src_address,\n });\n };\n MsgBeginRedelegate.prototype.packAny = function (isClassic) {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.staking.v1beta1.MsgBeginRedelegate',\n value: tx_1.MsgBeginRedelegate.encode(this.toProto(isClassic)).finish(),\n });\n };\n MsgBeginRedelegate.unpackAny = function (msgAny, isClassic) {\n return MsgBeginRedelegate.fromProto(tx_1.MsgBeginRedelegate.decode(msgAny.value), isClassic);\n };\n return MsgBeginRedelegate;\n}(json_1.JSONSerializable));\nexports.MsgBeginRedelegate = MsgBeginRedelegate;\n//# sourceMappingURL=MsgBeginRedelegate.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgCreateValidator = void 0;\nvar json_1 = require(\"../../../util/json\");\nvar Coin_1 = require(\"../../Coin\");\nvar numeric_1 = require(\"../../numeric\");\nvar Validator_1 = require(\"../Validator\");\n// import { Any } from '@terra-money/legacy.proto/google/protobuf/any';\n// import { MsgCreateValidator as MsgCreateValidator_pb } from '@terra-money/legacy.proto/cosmos/staking/v1beta1/tx';\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar tx_1 = require(\"@terra-money/terra.proto/cosmos/staking/v1beta1/tx\");\nvar PublicKey_1 = require(\"../../PublicKey\");\n/**\n * For new validators, this message registers a validator address to be a delegate on\n * the blockchain.\n */\nvar MsgCreateValidator = /** @class */ (function (_super) {\n __extends(MsgCreateValidator, _super);\n /**\n *\n * @param description validator's delegate information\n * @param commission validator's commission policy\n * @param min_self_delegation minimum self delegation\n * @param delegator_address validator's account address\n * @param validator_address validator's operator address\n * @param pubkey validator's consensus public key\n * @param value amount to use for self-delegation\n */\n function MsgCreateValidator(description, commission, min_self_delegation, delegator_address, validator_address, pubkey, value) {\n var _this = _super.call(this) || this;\n _this.description = description;\n _this.commission = commission;\n _this.min_self_delegation = min_self_delegation;\n _this.delegator_address = delegator_address;\n _this.validator_address = validator_address;\n _this.pubkey = pubkey;\n _this.value = value;\n return _this;\n }\n MsgCreateValidator.fromAmino = function (data, _) {\n _;\n var _a = data.value, description = _a.description, commission = _a.commission, min_self_delegation = _a.min_self_delegation, delegator_address = _a.delegator_address, validator_address = _a.validator_address, pubkey = _a.pubkey, value = _a.value;\n return new MsgCreateValidator(description, Validator_1.Validator.CommissionRates.fromAmino(commission), new numeric_1.Int(min_self_delegation), delegator_address, validator_address, PublicKey_1.ValConsPublicKey.fromAmino(pubkey), Coin_1.Coin.fromAmino(value));\n };\n MsgCreateValidator.prototype.toAmino = function (isClassic) {\n var _a = this, description = _a.description, commission = _a.commission, min_self_delegation = _a.min_self_delegation, delegator_address = _a.delegator_address, validator_address = _a.validator_address, pubkey = _a.pubkey, value = _a.value;\n return {\n type: isClassic\n ? 'staking/MsgCreateValidator'\n : 'cosmos-sdk/MsgCreateValidator',\n value: {\n description: description,\n commission: commission.toAmino(),\n min_self_delegation: min_self_delegation.toString(),\n delegator_address: delegator_address,\n validator_address: validator_address,\n pubkey: pubkey.toAmino(),\n value: value.toAmino(),\n },\n };\n };\n MsgCreateValidator.fromData = function (data, _) {\n _;\n var description = data.description, commission = data.commission, min_self_delegation = data.min_self_delegation, delegator_address = data.delegator_address, validator_address = data.validator_address, pubkey = data.pubkey, value = data.value;\n return new MsgCreateValidator(description, Validator_1.Validator.CommissionRates.fromData(commission), new numeric_1.Int(min_self_delegation), delegator_address, validator_address, PublicKey_1.ValConsPublicKey.fromData(pubkey), Coin_1.Coin.fromData(value));\n };\n MsgCreateValidator.prototype.toData = function (_) {\n _;\n var _a = this, description = _a.description, commission = _a.commission, min_self_delegation = _a.min_self_delegation, delegator_address = _a.delegator_address, validator_address = _a.validator_address, pubkey = _a.pubkey, value = _a.value;\n return {\n '@type': '/cosmos.staking.v1beta1.MsgCreateValidator',\n description: description,\n commission: commission.toData(),\n min_self_delegation: min_self_delegation.toString(),\n delegator_address: delegator_address,\n validator_address: validator_address,\n pubkey: pubkey.toData(),\n value: value.toData(),\n };\n };\n MsgCreateValidator.fromProto = function (proto, _) {\n _;\n return new MsgCreateValidator(Validator_1.Validator.Description.fromProto(proto.description), Validator_1.Validator.CommissionRates.fromProto(proto.commission), new numeric_1.Int(proto.minSelfDelegation), proto.delegatorAddress, proto.validatorAddress, PublicKey_1.PublicKey.fromProto(proto.pubkey), Coin_1.Coin.fromProto(proto.value));\n };\n MsgCreateValidator.prototype.toProto = function (_) {\n _;\n var _a = this, description = _a.description, commission = _a.commission, min_self_delegation = _a.min_self_delegation, delegator_address = _a.delegator_address, validator_address = _a.validator_address, pubkey = _a.pubkey, value = _a.value;\n return tx_1.MsgCreateValidator.fromPartial({\n commission: commission.toProto(),\n delegatorAddress: delegator_address,\n description: description.toProto(),\n minSelfDelegation: min_self_delegation.toString(),\n pubkey: pubkey.packAny(),\n validatorAddress: validator_address,\n value: value.toProto(),\n });\n };\n MsgCreateValidator.prototype.packAny = function (isClassic) {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.staking.v1beta1.MsgCreateValidator',\n value: tx_1.MsgCreateValidator.encode(this.toProto(isClassic)).finish(),\n });\n };\n MsgCreateValidator.unpackAny = function (msgAny, isClassic) {\n return MsgCreateValidator.fromProto(tx_1.MsgCreateValidator.decode(msgAny.value), isClassic);\n };\n return MsgCreateValidator;\n}(json_1.JSONSerializable));\nexports.MsgCreateValidator = MsgCreateValidator;\n//# sourceMappingURL=MsgCreateValidator.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgDelegate = void 0;\nvar Coin_1 = require(\"../../Coin\");\nvar json_1 = require(\"../../../util/json\");\n// import { Any } from '@terra-money/legacy.proto/google/protobuf/any';\n// import { MsgDelegate as MsgDelegate_pb } from '@terra-money/legacy.proto/cosmos/staking/v1beta1/tx';\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar tx_1 = require(\"@terra-money/terra.proto/cosmos/staking/v1beta1/tx\");\n/**\n * A delegator can submit this message to send more Luna to be staked through a\n * validator delegate.\n */\nvar MsgDelegate = /** @class */ (function (_super) {\n __extends(MsgDelegate, _super);\n /**\n *\n * @param delegator_address delegator's account address\n * @param validator_address validator's operator address\n * @param amount amount of LUNA to be sent for delegation\n */\n function MsgDelegate(delegator_address, validator_address, amount) {\n var _this = _super.call(this) || this;\n _this.delegator_address = delegator_address;\n _this.validator_address = validator_address;\n _this.amount = amount;\n return _this;\n }\n MsgDelegate.fromAmino = function (data, _) {\n _;\n var _a = data.value, delegator_address = _a.delegator_address, validator_address = _a.validator_address, amount = _a.amount;\n return new MsgDelegate(delegator_address, validator_address, Coin_1.Coin.fromAmino(amount));\n };\n MsgDelegate.prototype.toAmino = function (isClassic) {\n var _a = this, delegator_address = _a.delegator_address, validator_address = _a.validator_address, amount = _a.amount;\n return {\n type: isClassic ? 'staking/MsgDelegate' : 'cosmos-sdk/MsgDelegate',\n value: {\n delegator_address: delegator_address,\n validator_address: validator_address,\n amount: amount.toAmino(),\n },\n };\n };\n MsgDelegate.fromProto = function (proto, _) {\n _;\n return new MsgDelegate(proto.delegatorAddress, proto.validatorAddress, Coin_1.Coin.fromProto(proto.amount));\n };\n MsgDelegate.prototype.toProto = function (_) {\n _;\n var _a = this, delegator_address = _a.delegator_address, validator_address = _a.validator_address, amount = _a.amount;\n return tx_1.MsgDelegate.fromPartial({\n amount: amount.toProto(),\n delegatorAddress: delegator_address,\n validatorAddress: validator_address,\n });\n };\n MsgDelegate.prototype.packAny = function (isClassic) {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.staking.v1beta1.MsgDelegate',\n value: tx_1.MsgDelegate.encode(this.toProto(isClassic)).finish(),\n });\n };\n MsgDelegate.unpackAny = function (msgAny, isClassic) {\n return MsgDelegate.fromProto(tx_1.MsgDelegate.decode(msgAny.value), isClassic);\n };\n MsgDelegate.fromData = function (data, _) {\n _;\n var delegator_address = data.delegator_address, validator_address = data.validator_address, amount = data.amount;\n return new MsgDelegate(delegator_address, validator_address, Coin_1.Coin.fromData(amount));\n };\n MsgDelegate.prototype.toData = function (_) {\n _;\n var _a = this, delegator_address = _a.delegator_address, validator_address = _a.validator_address, amount = _a.amount;\n return {\n '@type': '/cosmos.staking.v1beta1.MsgDelegate',\n delegator_address: delegator_address,\n validator_address: validator_address,\n amount: amount.toData(),\n };\n };\n return MsgDelegate;\n}(json_1.JSONSerializable));\nexports.MsgDelegate = MsgDelegate;\n//# sourceMappingURL=MsgDelegate.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgEditValidator = void 0;\nvar json_1 = require(\"../../../util/json\");\nvar numeric_1 = require(\"../../numeric\");\nvar Validator_1 = require(\"../Validator\");\n// import { Any } from '@terra-money/legacy.proto/google/protobuf/any';\n// import { MsgEditValidator as MsgEditValidator_pb } from '@terra-money/legacy.proto/cosmos/staking/v1beta1/tx';\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar tx_1 = require(\"@terra-money/terra.proto/cosmos/staking/v1beta1/tx\");\n/**\n * A validator can edit its delegate information, such as moniker, website, commission\n * rate, etc.\n *\n * You must use special or sentinel values to inform that you want to leave the current\n * field untouched. For `Description`,` you should start with [[MsgEditValidator.DESC_DO_NOT_MODIFY]] and\n * change each field you wish to modify individually.\n */\nvar MsgEditValidator = /** @class */ (function (_super) {\n __extends(MsgEditValidator, _super);\n /**\n * @param Description new description to apply\n * @param address new address to apply\n * @param commission_rate new commission rates to apply\n * @param min_self_delegation new min self delegation\n */\n function MsgEditValidator(description, validator_address, commission_rate, min_self_delegation) {\n var _this = _super.call(this) || this;\n _this.description = description;\n _this.validator_address = validator_address;\n _this.commission_rate = commission_rate;\n _this.min_self_delegation = min_self_delegation;\n return _this;\n }\n MsgEditValidator.fromAmino = function (data, _) {\n _;\n var _a = data.value, description = _a.description, validator_address = _a.validator_address, commission_rate = _a.commission_rate, min_self_delegation = _a.min_self_delegation;\n return new MsgEditValidator(Validator_1.Validator.Description.fromAmino(description), validator_address, commission_rate ? new numeric_1.Dec(commission_rate) : undefined, min_self_delegation ? new numeric_1.Int(min_self_delegation) : undefined);\n };\n MsgEditValidator.prototype.toAmino = function (isClassic) {\n var _a = this, description = _a.description, validator_address = _a.validator_address, commission_rate = _a.commission_rate, min_self_delegation = _a.min_self_delegation;\n return {\n type: isClassic\n ? 'staking/MsgEditValidator'\n : 'cosmos-sdk/MsgEditValidator',\n value: {\n description: description,\n validator_address: validator_address,\n commission_rate: commission_rate\n ? commission_rate.toString()\n : undefined,\n min_self_delegation: min_self_delegation\n ? min_self_delegation.toString()\n : undefined,\n },\n };\n };\n MsgEditValidator.fromProto = function (data, _) {\n _;\n return new MsgEditValidator(Validator_1.Validator.Description.fromProto(data.description), data.validatorAddress, data.commissionRate !== '' ? new numeric_1.Dec(data.commissionRate) : undefined, data.minSelfDelegation !== ''\n ? new numeric_1.Int(data.minSelfDelegation)\n : undefined);\n };\n MsgEditValidator.prototype.toProto = function (_) {\n _;\n var _a = this, description = _a.description, validator_address = _a.validator_address, commission_rate = _a.commission_rate, min_self_delegation = _a.min_self_delegation;\n return tx_1.MsgEditValidator.fromPartial({\n description: description.toProto(),\n commissionRate: (commission_rate === null || commission_rate === void 0 ? void 0 : commission_rate.toString()) || '',\n minSelfDelegation: (min_self_delegation === null || min_self_delegation === void 0 ? void 0 : min_self_delegation.toString()) || '',\n validatorAddress: validator_address,\n });\n };\n MsgEditValidator.prototype.packAny = function (isClassic) {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.staking.v1beta1.MsgEditValidator',\n value: tx_1.MsgEditValidator.encode(this.toProto(isClassic)).finish(),\n });\n };\n MsgEditValidator.unpackAny = function (msgAny, isClassic) {\n return MsgEditValidator.fromProto(tx_1.MsgEditValidator.decode(msgAny.value), isClassic);\n };\n MsgEditValidator.fromData = function (data, _) {\n _;\n var description = data.description, validator_address = data.validator_address, commission_rate = data.commission_rate, min_self_delegation = data.min_self_delegation;\n return new MsgEditValidator(Validator_1.Validator.Description.fromData(description), validator_address, commission_rate ? new numeric_1.Dec(commission_rate) : undefined, min_self_delegation ? new numeric_1.Int(min_self_delegation) : undefined);\n };\n MsgEditValidator.prototype.toData = function (_) {\n _;\n var _a = this, description = _a.description, validator_address = _a.validator_address, commission_rate = _a.commission_rate, min_self_delegation = _a.min_self_delegation;\n return {\n '@type': '/cosmos.staking.v1beta1.MsgEditValidator',\n description: description,\n validator_address: validator_address,\n commission_rate: commission_rate ? commission_rate.toString() : undefined,\n min_self_delegation: min_self_delegation\n ? min_self_delegation.toString()\n : undefined,\n };\n };\n return MsgEditValidator;\n}(json_1.JSONSerializable));\nexports.MsgEditValidator = MsgEditValidator;\n(function (MsgEditValidator) {\n MsgEditValidator.DESC_DO_NOT_MODIFY = {\n moniker: '[do-not-modify]',\n website: '[do-not-modify]',\n identity: '[do-not-modify]',\n details: '[do-not-modify]',\n security_contact: '[do-not-modify]',\n };\n})(MsgEditValidator = exports.MsgEditValidator || (exports.MsgEditValidator = {}));\nexports.MsgEditValidator = MsgEditValidator;\n//# sourceMappingURL=MsgEditValidator.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgUndelegate = void 0;\nvar Coin_1 = require(\"../../Coin\");\nvar json_1 = require(\"../../../util/json\");\n// import { Any } from '@terra-money/legacy.proto/google/protobuf/any';\n// import { MsgUndelegate as MsgUndelegate_pb } from '@terra-money/legacy.proto/cosmos/staking/v1beta1/tx';\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar tx_1 = require(\"@terra-money/terra.proto/cosmos/staking/v1beta1/tx\");\n/**\n * A delegator can undelegate an amount of bonded Luna, and will begin the unbonding\n * process for those funds. The unbonding process takes 21 days to complete, during\n * which the Luna cannot be transacted or swapped.\n */\nvar MsgUndelegate = /** @class */ (function (_super) {\n __extends(MsgUndelegate, _super);\n /**\n * @param delegator_address delegator's account address\n * @param validator_address validator's operator address\n * @param amount Luna to be undelegated\n */\n function MsgUndelegate(delegator_address, validator_address, amount) {\n var _this = _super.call(this) || this;\n _this.delegator_address = delegator_address;\n _this.validator_address = validator_address;\n _this.amount = amount;\n return _this;\n }\n MsgUndelegate.fromAmino = function (data, _) {\n _;\n var _a = data.value, delegator_address = _a.delegator_address, validator_address = _a.validator_address, amount = _a.amount;\n return new MsgUndelegate(delegator_address, validator_address, Coin_1.Coin.fromAmino(amount));\n };\n MsgUndelegate.prototype.toAmino = function (isClassic) {\n var _a = this, delegator_address = _a.delegator_address, validator_address = _a.validator_address, amount = _a.amount;\n return {\n type: isClassic ? 'staking/MsgUndelegate' : 'cosmos-sdk/MsgUndelegate',\n value: {\n delegator_address: delegator_address,\n validator_address: validator_address,\n amount: amount.toAmino(),\n },\n };\n };\n MsgUndelegate.fromProto = function (proto, _) {\n _;\n return new MsgUndelegate(proto.delegatorAddress, proto.validatorAddress, Coin_1.Coin.fromProto(proto.amount));\n };\n MsgUndelegate.prototype.toProto = function (_) {\n _;\n var _a = this, delegator_address = _a.delegator_address, validator_address = _a.validator_address, amount = _a.amount;\n return tx_1.MsgUndelegate.fromPartial({\n amount: amount.toProto(),\n delegatorAddress: delegator_address,\n validatorAddress: validator_address,\n });\n };\n MsgUndelegate.prototype.packAny = function (isClassic) {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.staking.v1beta1.MsgUndelegate',\n value: tx_1.MsgUndelegate.encode(this.toProto(isClassic)).finish(),\n });\n };\n MsgUndelegate.unpackAny = function (msgAny, isClassic) {\n return MsgUndelegate.fromProto(tx_1.MsgUndelegate.decode(msgAny.value), isClassic);\n };\n MsgUndelegate.fromData = function (data, _) {\n _;\n var delegator_address = data.delegator_address, validator_address = data.validator_address, amount = data.amount;\n return new MsgUndelegate(delegator_address, validator_address, Coin_1.Coin.fromData(amount));\n };\n MsgUndelegate.prototype.toData = function (_) {\n _;\n var _a = this, delegator_address = _a.delegator_address, validator_address = _a.validator_address, amount = _a.amount;\n return {\n '@type': '/cosmos.staking.v1beta1.MsgUndelegate',\n delegator_address: delegator_address,\n validator_address: validator_address,\n amount: amount.toData(),\n };\n };\n return MsgUndelegate;\n}(json_1.JSONSerializable));\nexports.MsgUndelegate = MsgUndelegate;\n//# sourceMappingURL=MsgUndelegate.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./MsgDelegate\"), exports);\n__exportStar(require(\"./MsgUndelegate\"), exports);\n__exportStar(require(\"./MsgBeginRedelegate\"), exports);\n__exportStar(require(\"./MsgCreateValidator\"), exports);\n__exportStar(require(\"./MsgEditValidator\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PolicyConstraints = void 0;\nvar json_1 = require(\"../../util/json\");\nvar Coin_1 = require(\"../Coin\");\nvar numeric_1 = require(\"../numeric\");\nvar treasury_1 = require(\"@terra-money/legacy.proto/terra/treasury/v1beta1/treasury\");\n/**\n * This captures the Treasury module's `tax_policy` and `reward_policy` parameters, which\n * determine how the Tax Rate and Reward Weight values are allowed to change.\n */\nvar PolicyConstraints = /** @class */ (function (_super) {\n __extends(PolicyConstraints, _super);\n /**\n *\n * @param rate_min minimum value\n * @param rate_max maximum value\n * @param cap Tax Cap (only applicable for Tax Rate)\n * @param change_rate_max max change %\n */\n function PolicyConstraints(rate_min, rate_max, cap, change_rate_max) {\n var _this = _super.call(this) || this;\n _this.cap = cap;\n _this.rate_min = new numeric_1.Dec(rate_min);\n _this.rate_max = new numeric_1.Dec(rate_max);\n _this.change_rate_max = new numeric_1.Dec(change_rate_max);\n return _this;\n }\n PolicyConstraints.fromAmino = function (data) {\n var rate_min = data.rate_min, rate_max = data.rate_max, cap = data.cap, change_rate_max = data.change_rate_max;\n return new PolicyConstraints(rate_min, rate_max, Coin_1.Coin.fromAmino(cap), change_rate_max);\n };\n PolicyConstraints.prototype.toAmino = function () {\n var _a = this, rate_min = _a.rate_min, rate_max = _a.rate_max, cap = _a.cap, change_rate_max = _a.change_rate_max;\n return {\n rate_min: rate_min.toString(),\n rate_max: rate_max.toString(),\n cap: cap.toAmino(),\n change_rate_max: change_rate_max.toString(),\n };\n };\n PolicyConstraints.fromData = function (data) {\n var rate_min = data.rate_min, rate_max = data.rate_max, cap = data.cap, change_rate_max = data.change_rate_max;\n return new PolicyConstraints(rate_min, rate_max, Coin_1.Coin.fromData(cap), change_rate_max);\n };\n PolicyConstraints.prototype.toData = function () {\n var _a = this, rate_min = _a.rate_min, rate_max = _a.rate_max, cap = _a.cap, change_rate_max = _a.change_rate_max;\n return {\n rate_min: rate_min.toString(),\n rate_max: rate_max.toString(),\n cap: cap.toData(),\n change_rate_max: change_rate_max.toString(),\n };\n };\n PolicyConstraints.fromProto = function (proto) {\n return new PolicyConstraints(proto.rateMax, proto.rateMin, Coin_1.Coin.fromProto(proto.cap), proto.changeRateMax);\n };\n PolicyConstraints.prototype.toProto = function () {\n var _a = this, rate_min = _a.rate_min, rate_max = _a.rate_max, cap = _a.cap, change_rate_max = _a.change_rate_max;\n return treasury_1.PolicyConstraints.fromPartial({\n cap: cap.toProto(),\n changeRateMax: change_rate_max.toString(),\n rateMax: rate_max.toString(),\n rateMin: rate_min.toString(),\n });\n };\n /**\n * You can simulate the result of the clamping algorithm, which subjects updates in\n * rate to the rules defined by the `PolicyConstraints`.\n *\n * @param prevRate previous rate\n * @param newRate next rate\n * @returns New rate, after clamping constraints have been applied\n */\n PolicyConstraints.prototype.clamp = function (prevRate, newRate) {\n var p = new numeric_1.Dec(prevRate); // prev\n var n = new numeric_1.Dec(newRate); // new\n if (n.lt(this.rate_min)) {\n n = this.rate_min;\n }\n else if (n.gt(this.rate_max)) {\n n = this.rate_max;\n }\n var delta = n.sub(p);\n if (n.gt(p)) {\n if (delta.gt(this.change_rate_max)) {\n n = p.add(this.change_rate_max);\n }\n }\n else {\n if (delta.abs().gt(this.change_rate_max)) {\n n = p.sub(this.change_rate_max);\n }\n }\n return n;\n };\n return PolicyConstraints;\n}(json_1.JSONSerializable));\nexports.PolicyConstraints = PolicyConstraints;\n//# sourceMappingURL=PolicyConstraints.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Plan = void 0;\nvar json_1 = require(\"../../util/json\");\nvar upgrade_1 = require(\"@terra-money/terra.proto/cosmos/upgrade/v1beta1/upgrade\");\nvar long_1 = __importDefault(require(\"long\"));\n/*\n * Plan specifies information about a planned upgrade and when it should occur.\n */\nvar Plan = /** @class */ (function (_super) {\n __extends(Plan, _super);\n /**\n * @param name This name will be used by the upgraded version of the software to apply any special \"on-upgrade\" commands during the first BeginBlock method after the upgrade is applied.\n * @param time Deprecated\n * @param height The height at which the upgrade must be performed. Only used if Time is not set.\n * @param info Any application specific upgrade info to be included on-chain such as a git commit that validators could automatically upgrade to\n * @param upgraded_client_state Deprecated\n */\n function Plan(name, time, height, info, upgraded_client_state) {\n var _this = _super.call(this) || this;\n _this.name = name;\n _this.time = time;\n _this.height = height;\n _this.info = info;\n _this.upgraded_client_state = upgraded_client_state;\n return _this;\n }\n Plan.fromAmino = function (data) {\n var name = data.name, time = data.time, height = data.height, info = data.info, upgraded_client_state = data.upgraded_client_state;\n return new Plan(name, time ? new Date(time) : undefined, height, info, upgraded_client_state);\n };\n Plan.prototype.toAmino = function () {\n var _a = this, name = _a.name, time = _a.time, height = _a.height, info = _a.info, upgraded_client_state = _a.upgraded_client_state;\n var res = {\n name: name,\n time: time ? time.toISOString().replace(/\\.000Z$/, 'Z') : undefined,\n height: height,\n info: info,\n upgraded_client_state: upgraded_client_state,\n };\n return res;\n };\n Plan.fromData = function (data) {\n var name = data.name, time = data.time, height = data.height, info = data.info, upgraded_client_state = data.upgraded_client_state;\n return new Plan(name, time ? new Date(time) : undefined, height, info, upgraded_client_state);\n };\n Plan.prototype.toData = function () {\n var _a = this, name = _a.name, time = _a.time, height = _a.height, info = _a.info, upgraded_client_state = _a.upgraded_client_state;\n var res = {\n name: name,\n time: time ? time.toISOString().replace(/\\.000Z$/, 'Z') : undefined,\n height: height,\n info: info,\n upgraded_client_state: upgraded_client_state,\n };\n return res;\n };\n Plan.fromProto = function (proto) {\n return new Plan(proto.name, proto.time, proto.height.toString(), proto.info, proto.upgradedClientState);\n };\n Plan.prototype.toProto = function () {\n var _a = this, name = _a.name, time = _a.time, height = _a.height, info = _a.info, upgraded_client_state = _a.upgraded_client_state;\n return upgrade_1.Plan.fromPartial({\n name: name,\n time: time,\n height: long_1.default.fromString(height),\n info: info,\n upgradedClientState: upgraded_client_state,\n });\n };\n return Plan;\n}(json_1.JSONSerializable));\nexports.Plan = Plan;\n//# sourceMappingURL=Plan.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./Plan\"), exports);\n__exportStar(require(\"./proposals\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CancelSoftwareUpgradeProposal = void 0;\nvar json_1 = require(\"../../../util/json\");\nvar any_1 = require(\"@terra-money/legacy.proto/google/protobuf/any\");\nvar upgrade_1 = require(\"@terra-money/legacy.proto/cosmos/upgrade/v1beta1/upgrade\");\n/**\n * CancelSoftwareUpgradeProposal is a gov Content type for cancelling a software upgrade\n */\nvar CancelSoftwareUpgradeProposal = /** @class */ (function (_super) {\n __extends(CancelSoftwareUpgradeProposal, _super);\n /**\n *\n * @param title\n * @param description\n */\n function CancelSoftwareUpgradeProposal(title, description) {\n var _this = _super.call(this) || this;\n _this.title = title;\n _this.description = description;\n return _this;\n }\n CancelSoftwareUpgradeProposal.fromAmino = function (data, _) {\n _;\n var _a = data.value, title = _a.title, description = _a.description;\n return new CancelSoftwareUpgradeProposal(title, description);\n };\n CancelSoftwareUpgradeProposal.prototype.toAmino = function (isClassic) {\n var _a = this, title = _a.title, description = _a.description;\n return {\n type: isClassic\n ? 'upgrade/CancelSoftwareUpgradeProposal'\n : 'cosmos-sdk/CancelSoftwareUpgradeProposal',\n value: {\n title: title,\n description: description,\n },\n };\n };\n CancelSoftwareUpgradeProposal.fromData = function (data, _) {\n _;\n var title = data.title, description = data.description;\n return new CancelSoftwareUpgradeProposal(title, description);\n };\n CancelSoftwareUpgradeProposal.prototype.toData = function (_) {\n _;\n var _a = this, title = _a.title, description = _a.description;\n return {\n '@type': '/cosmos.upgrade.v1beta1.CancelSoftwareUpgradeProposal',\n title: title,\n description: description,\n };\n };\n CancelSoftwareUpgradeProposal.fromProto = function (proto, _) {\n _;\n return new CancelSoftwareUpgradeProposal(proto.title, proto.description);\n };\n CancelSoftwareUpgradeProposal.prototype.toProto = function (_) {\n _;\n var _a = this, title = _a.title, description = _a.description;\n return upgrade_1.CancelSoftwareUpgradeProposal.fromPartial({\n title: title,\n description: description,\n });\n };\n CancelSoftwareUpgradeProposal.prototype.packAny = function (isClassic) {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.upgrade.v1beta1.CancelSoftwareUpgradeProposal',\n value: upgrade_1.CancelSoftwareUpgradeProposal.encode(this.toProto(isClassic)).finish(),\n });\n };\n CancelSoftwareUpgradeProposal.unpackAny = function (msgAny, isClassic) {\n return CancelSoftwareUpgradeProposal.fromProto(upgrade_1.CancelSoftwareUpgradeProposal.decode(msgAny.value), isClassic);\n };\n return CancelSoftwareUpgradeProposal;\n}(json_1.JSONSerializable));\nexports.CancelSoftwareUpgradeProposal = CancelSoftwareUpgradeProposal;\n//# sourceMappingURL=CancelSoftwareUpgradeProposal.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SoftwareUpgradeProposal = void 0;\nvar json_1 = require(\"../../../util/json\");\nvar any_1 = require(\"@terra-money/legacy.proto/google/protobuf/any\");\nvar upgrade_1 = require(\"@terra-money/legacy.proto/cosmos/upgrade/v1beta1/upgrade\");\nvar Plan_1 = require(\"../Plan\");\n/**\n * Softwareupgradeproposal is a gov Content type for initiating a software upgrade.\n */\nvar SoftwareUpgradeProposal = /** @class */ (function (_super) {\n __extends(SoftwareUpgradeProposal, _super);\n /**\n *\n * @param title\n * @param description\n * @param plan\n */\n function SoftwareUpgradeProposal(title, description, plan) {\n var _this = _super.call(this) || this;\n _this.title = title;\n _this.description = description;\n _this.plan = plan;\n return _this;\n }\n SoftwareUpgradeProposal.fromAmino = function (data, _) {\n _;\n var _a = data.value, title = _a.title, description = _a.description, plan = _a.plan;\n return new SoftwareUpgradeProposal(title, description, plan ? Plan_1.Plan.fromAmino(plan) : undefined);\n };\n SoftwareUpgradeProposal.prototype.toAmino = function (isClassic) {\n var _a = this, title = _a.title, description = _a.description, plan = _a.plan;\n return {\n type: isClassic\n ? 'upgrade/SoftwareUpgradeProposal'\n : 'cosmos-sdk/SoftwareUpgradeProposal',\n value: {\n title: title,\n description: description,\n plan: plan ? plan.toAmino() : undefined,\n },\n };\n };\n SoftwareUpgradeProposal.fromData = function (data, _) {\n _;\n var title = data.title, description = data.description, plan = data.plan;\n return new SoftwareUpgradeProposal(title, description, plan ? Plan_1.Plan.fromData(plan) : undefined);\n };\n SoftwareUpgradeProposal.prototype.toData = function (_) {\n _;\n var _a = this, title = _a.title, description = _a.description, plan = _a.plan;\n return {\n '@type': '/cosmos.upgrade.v1beta1.SoftwareUpgradeProposal',\n title: title,\n description: description,\n plan: plan ? plan.toData() : undefined,\n };\n };\n SoftwareUpgradeProposal.fromProto = function (proto, _) {\n _;\n return new SoftwareUpgradeProposal(proto.title, proto.description, proto.plan ? Plan_1.Plan.fromProto(proto.plan) : undefined);\n };\n SoftwareUpgradeProposal.prototype.toProto = function (_) {\n _;\n var _a = this, title = _a.title, description = _a.description, plan = _a.plan;\n return upgrade_1.SoftwareUpgradeProposal.fromPartial({\n title: title,\n description: description,\n plan: plan ? plan.toProto() : undefined,\n });\n };\n SoftwareUpgradeProposal.prototype.packAny = function (isClassic) {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.upgrade.v1beta1.SoftwareUpgradeProposal',\n value: upgrade_1.SoftwareUpgradeProposal.encode(this.toProto(isClassic)).finish(),\n });\n };\n SoftwareUpgradeProposal.unpackAny = function (msgAny, isClassic) {\n return SoftwareUpgradeProposal.fromProto(upgrade_1.SoftwareUpgradeProposal.decode(msgAny.value), isClassic);\n };\n return SoftwareUpgradeProposal;\n}(json_1.JSONSerializable));\nexports.SoftwareUpgradeProposal = SoftwareUpgradeProposal;\n//# sourceMappingURL=SoftwareUpgradeProposal.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./SoftwareUpgradeProposal\"), exports);\n__exportStar(require(\"./CancelSoftwareUpgradeProposal\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Period = void 0;\nvar Coins_1 = require(\"../Coins\");\nvar vesting_1 = require(\"@terra-money/terra.proto/cosmos/vesting/v1beta1/vesting\");\nvar json_1 = require(\"../../util/json\");\nvar Long = __importStar(require(\"long\"));\n/**\n * Period defines a length of time and amount of coins that will vest.\n */\nvar Period = /** @class */ (function (_super) {\n __extends(Period, _super);\n /**\n * @param length\n * @param amount\n */\n function Period(length, amount) {\n var _this = _super.call(this) || this;\n _this.length = length;\n _this.amount = new Coins_1.Coins(amount);\n return _this;\n }\n Period.fromAmino = function (data, _) {\n _;\n var length = data.length, amount = data.amount;\n return new Period(Number.parseInt(length), Coins_1.Coins.fromAmino(amount));\n };\n Period.prototype.toAmino = function (_) {\n _;\n var _a = this, length = _a.length, amount = _a.amount;\n var res = {\n length: length.toFixed(),\n amount: amount.toAmino(),\n };\n return res;\n };\n Period.fromData = function (data, _) {\n _;\n var length = data.length, amount = data.amount;\n return new Period(Number.parseInt(length), Coins_1.Coins.fromData(amount));\n };\n Period.prototype.toData = function (_) {\n _;\n var _a = this, length = _a.length, amount = _a.amount;\n var res = {\n length: length.toFixed(),\n amount: amount.toData(),\n };\n return res;\n };\n Period.fromProto = function (proto, _) {\n _;\n return new Period(proto.length.toNumber(), Coins_1.Coins.fromProto(proto.amount));\n };\n Period.prototype.toProto = function (_) {\n _;\n var _a = this, length = _a.length, amount = _a.amount;\n return vesting_1.Period.fromPartial({\n length: Long.fromNumber(length),\n amount: amount.toProto(),\n });\n };\n return Period;\n}(json_1.JSONSerializable));\nexports.Period = Period;\n//# sourceMappingURL=Period.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./Period\"), exports);\n__exportStar(require(\"./msgs\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgCreatePeriodicVestingAccount = void 0;\nvar Period_1 = require(\"../Period\");\nvar json_1 = require(\"../../../util/json\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar tx_1 = require(\"@terra-money/terra.proto/cosmos/vesting/v1beta1/tx\");\nvar long_1 = __importDefault(require(\"long\"));\n/**\n * CreatePeriodicVestingAccount defines a method that enables creating a periodic vesting account.\n */\nvar MsgCreatePeriodicVestingAccount = /** @class */ (function (_super) {\n __extends(MsgCreatePeriodicVestingAccount, _super);\n /**\n * @param from_address sender's address\n * @param to_address recipient's address\n */\n function MsgCreatePeriodicVestingAccount(from_address, to_address, start_time, vesting_periods) {\n var _this = _super.call(this) || this;\n _this.from_address = from_address;\n _this.to_address = to_address;\n _this.start_time = start_time;\n _this.vesting_periods = vesting_periods;\n return _this;\n }\n MsgCreatePeriodicVestingAccount.fromAmino = function (data, isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = data.value, from_address = _a.from_address, to_address = _a.to_address, start_time = _a.start_time, vesting_periods = _a.vesting_periods;\n return new MsgCreatePeriodicVestingAccount(from_address, to_address, Number.parseInt(start_time), vesting_periods.map(function (p) { return Period_1.Period.fromAmino(p, isClassic); }));\n };\n MsgCreatePeriodicVestingAccount.prototype.toAmino = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = this, from_address = _a.from_address, to_address = _a.to_address, start_time = _a.start_time, vesting_periods = _a.vesting_periods;\n return {\n type: 'cosmos-sdk/MsgCreatePeriodicVestingAccount',\n value: {\n from_address: from_address,\n to_address: to_address,\n start_time: start_time.toFixed(),\n vesting_periods: vesting_periods.map(function (p) { return p.toAmino(isClassic); }),\n },\n };\n };\n MsgCreatePeriodicVestingAccount.fromData = function (data, isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var from_address = data.from_address, to_address = data.to_address, start_time = data.start_time, vesting_periods = data.vesting_periods;\n return new MsgCreatePeriodicVestingAccount(from_address, to_address, Number.parseInt(start_time), vesting_periods.map(function (p) { return Period_1.Period.fromData(p, isClassic); }));\n };\n MsgCreatePeriodicVestingAccount.prototype.toData = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = this, from_address = _a.from_address, to_address = _a.to_address, start_time = _a.start_time, vesting_periods = _a.vesting_periods;\n return {\n '@type': '/cosmos.vesting.v1beta1.MsgCreatePeriodicVestingAccount',\n from_address: from_address,\n to_address: to_address,\n start_time: start_time.toFixed(),\n vesting_periods: vesting_periods.map(function (p) { return p.toData(isClassic); }),\n };\n };\n MsgCreatePeriodicVestingAccount.fromProto = function (proto, isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return new MsgCreatePeriodicVestingAccount(proto.fromAddress, proto.toAddress, proto.startTime.toNumber(), proto.vestingPeriods.map(function (p) { return Period_1.Period.fromProto(p, isClassic); }));\n };\n MsgCreatePeriodicVestingAccount.prototype.toProto = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = this, from_address = _a.from_address, to_address = _a.to_address, start_time = _a.start_time, vesting_periods = _a.vesting_periods;\n return tx_1.MsgCreatePeriodicVestingAccount.fromPartial({\n fromAddress: from_address,\n toAddress: to_address,\n startTime: long_1.default.fromNumber(start_time),\n vestingPeriods: vesting_periods.map(function (p) { return p.toProto(isClassic); }),\n });\n };\n MsgCreatePeriodicVestingAccount.prototype.packAny = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.vesting.v1beta1.MsgCreatePeriodicVestingAccount',\n value: tx_1.MsgCreatePeriodicVestingAccount.encode(this.toProto(isClassic)).finish(),\n });\n };\n MsgCreatePeriodicVestingAccount.unpackAny = function (msgAny, isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return MsgCreatePeriodicVestingAccount.fromProto(tx_1.MsgCreatePeriodicVestingAccount.decode(msgAny.value), isClassic);\n };\n return MsgCreatePeriodicVestingAccount;\n}(json_1.JSONSerializable));\nexports.MsgCreatePeriodicVestingAccount = MsgCreatePeriodicVestingAccount;\n//# sourceMappingURL=MsgCreatePeriodicVestingAccount.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgCreateVestingAccount = void 0;\nvar Coins_1 = require(\"../../Coins\");\nvar json_1 = require(\"../../../util/json\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar tx_1 = require(\"@terra-money/terra.proto/cosmos/vesting/v1beta1/tx\");\nvar long_1 = __importDefault(require(\"long\"));\n/**\n * MsgCreateVestingAccount defines a message that enables creating a vesting account.\n */\nvar MsgCreateVestingAccount = /** @class */ (function (_super) {\n __extends(MsgCreateVestingAccount, _super);\n /**\n * @param from_address sender's address\n * @param to_address recipient's address\n * @param amount value of the transaction\n */\n function MsgCreateVestingAccount(from_address, to_address, amount, end_time, delayed) {\n var _this = _super.call(this) || this;\n _this.from_address = from_address;\n _this.to_address = to_address;\n _this.end_time = end_time;\n _this.delayed = delayed;\n _this.amount = new Coins_1.Coins(amount);\n return _this;\n }\n MsgCreateVestingAccount.fromAmino = function (data, isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = data.value, from_address = _a.from_address, to_address = _a.to_address, amount = _a.amount, end_time = _a.end_time, delayed = _a.delayed;\n return new MsgCreateVestingAccount(from_address, to_address, Coins_1.Coins.fromAmino(amount), Number.parseInt(end_time), delayed);\n };\n MsgCreateVestingAccount.prototype.toAmino = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = this, from_address = _a.from_address, to_address = _a.to_address, amount = _a.amount, end_time = _a.end_time, delayed = _a.delayed;\n return {\n type: 'cosmos-sdk/MsgCreateVestingAccount',\n value: {\n from_address: from_address,\n to_address: to_address,\n amount: amount.toAmino(),\n end_time: end_time.toFixed(),\n delayed: delayed,\n },\n };\n };\n MsgCreateVestingAccount.fromData = function (data, isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var from_address = data.from_address, to_address = data.to_address, amount = data.amount, end_time = data.end_time, delayed = data.delayed;\n return new MsgCreateVestingAccount(from_address, to_address, Coins_1.Coins.fromData(amount), Number.parseInt(end_time), delayed);\n };\n MsgCreateVestingAccount.prototype.toData = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = this, from_address = _a.from_address, to_address = _a.to_address, amount = _a.amount, end_time = _a.end_time, delayed = _a.delayed;\n return {\n '@type': '/cosmos.vesting.v1beta1.MsgCreateVestingAccount',\n from_address: from_address,\n to_address: to_address,\n amount: amount.toData(),\n end_time: end_time.toFixed(),\n delayed: delayed,\n };\n };\n MsgCreateVestingAccount.fromProto = function (proto, isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return new MsgCreateVestingAccount(proto.fromAddress, proto.toAddress, Coins_1.Coins.fromProto(proto.amount), proto.endTime.toNumber(), proto.delayed);\n };\n MsgCreateVestingAccount.prototype.toProto = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = this, from_address = _a.from_address, to_address = _a.to_address, amount = _a.amount, end_time = _a.end_time, delayed = _a.delayed;\n return tx_1.MsgCreateVestingAccount.fromPartial({\n fromAddress: from_address,\n toAddress: to_address,\n amount: amount.toProto(),\n endTime: long_1.default.fromNumber(end_time),\n delayed: delayed,\n });\n };\n MsgCreateVestingAccount.prototype.packAny = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.vesting.v1beta1.MsgCreateVestingAccount',\n value: tx_1.MsgCreateVestingAccount.encode(this.toProto(isClassic)).finish(),\n });\n };\n MsgCreateVestingAccount.unpackAny = function (msgAny, isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return MsgCreateVestingAccount.fromProto(tx_1.MsgCreateVestingAccount.decode(msgAny.value), isClassic);\n };\n return MsgCreateVestingAccount;\n}(json_1.JSONSerializable));\nexports.MsgCreateVestingAccount = MsgCreateVestingAccount;\n//# sourceMappingURL=MsgCreateVestingAccount.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgDonateAllVestingTokens = void 0;\nvar json_1 = require(\"../../../util/json\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar tx_1 = require(\"@terra-money/terra.proto/cosmos/vesting/v1beta1/tx\");\n/**\n * DonateAllVestingTokens defines a method that enables donating all vesting\n */\nvar MsgDonateAllVestingTokens = /** @class */ (function (_super) {\n __extends(MsgDonateAllVestingTokens, _super);\n /**\n * @param from_address donor's address\n */\n function MsgDonateAllVestingTokens(from_address) {\n var _this = _super.call(this) || this;\n _this.from_address = from_address;\n return _this;\n }\n MsgDonateAllVestingTokens.fromAmino = function (data, isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return new MsgDonateAllVestingTokens(data.value.from_address);\n };\n MsgDonateAllVestingTokens.prototype.toAmino = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return {\n type: 'cosmos-sdk/MsgDonateAllVestingTokens',\n value: {\n from_address: this.from_address,\n },\n };\n };\n MsgDonateAllVestingTokens.fromData = function (data, isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return new MsgDonateAllVestingTokens(data.from_address);\n };\n MsgDonateAllVestingTokens.prototype.toData = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return {\n '@type': '/cosmos.vesting.v1beta1.MsgDonateAllVestingTokens',\n from_address: this.from_address,\n };\n };\n MsgDonateAllVestingTokens.fromProto = function (proto, isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return new MsgDonateAllVestingTokens(proto.fromAddress);\n };\n MsgDonateAllVestingTokens.prototype.toProto = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return tx_1.MsgDonateAllVestingTokens.fromPartial({\n fromAddress: this.from_address,\n });\n };\n MsgDonateAllVestingTokens.prototype.packAny = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.vesting.v1beta1.MsgDonateAllVestingTokens',\n value: tx_1.MsgDonateAllVestingTokens.encode(this.toProto(isClassic)).finish(),\n });\n };\n MsgDonateAllVestingTokens.unpackAny = function (msgAny, isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return MsgDonateAllVestingTokens.fromProto(tx_1.MsgDonateAllVestingTokens.decode(msgAny.value), isClassic);\n };\n return MsgDonateAllVestingTokens;\n}(json_1.JSONSerializable));\nexports.MsgDonateAllVestingTokens = MsgDonateAllVestingTokens;\n//# sourceMappingURL=MsgDonateAllVestingTokens.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./MsgCreatePeriodicVestingAccount\"), exports);\n__exportStar(require(\"./MsgCreateVestingAccount\"), exports);\n__exportStar(require(\"./MsgDonateAllVestingTokens\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbsoluteTxPosition = void 0;\nvar types_1 = require(\"@terra-money/terra.proto/cosmwasm/wasm/v1/types\");\nvar json_1 = require(\"../../util/json\");\nvar Long = __importStar(require(\"long\"));\n/**\n *\n */\nvar AbsoluteTxPosition = /** @class */ (function (_super) {\n __extends(AbsoluteTxPosition, _super);\n /**\n * @param block_height\n * @param tx_index\n */\n function AbsoluteTxPosition(block_height, tx_index) {\n var _this = _super.call(this) || this;\n _this.block_height = block_height;\n _this.tx_index = tx_index;\n return _this;\n }\n AbsoluteTxPosition.fromAmino = function (data) {\n return new AbsoluteTxPosition(Number.parseInt(data.block_height), Number.parseInt(data.tx_index));\n };\n AbsoluteTxPosition.prototype.toAmino = function () {\n var res = {\n block_height: this.block_height.toFixed(),\n tx_index: this.tx_index.toFixed(),\n };\n return res;\n };\n AbsoluteTxPosition.fromData = function (data) {\n return new AbsoluteTxPosition(Number.parseInt(data.block_height), Number.parseInt(data.tx_index));\n };\n AbsoluteTxPosition.prototype.toData = function () {\n var res = {\n block_height: this.block_height.toFixed(),\n tx_index: this.tx_index.toFixed(),\n };\n return res;\n };\n AbsoluteTxPosition.fromProto = function (proto) {\n return new AbsoluteTxPosition(proto.blockHeight.toNumber(), proto.txIndex.toNumber());\n };\n AbsoluteTxPosition.prototype.toProto = function () {\n return types_1.AbsoluteTxPosition.fromPartial({\n blockHeight: Long.fromNumber(this.block_height),\n txIndex: Long.fromNumber(this.tx_index),\n });\n };\n return AbsoluteTxPosition;\n}(json_1.JSONSerializable));\nexports.AbsoluteTxPosition = AbsoluteTxPosition;\n//# sourceMappingURL=AbsoluteTxPosition.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AccessConfig = exports.AccessType = void 0;\nvar types_1 = require(\"@terra-money/terra.proto/cosmwasm/wasm/v1/types\");\nObject.defineProperty(exports, \"AccessType\", { enumerable: true, get: function () { return types_1.AccessType; } });\nvar json_1 = require(\"../../util/json\");\nvar util_1 = require(\"./util\");\n/**\n *\n */\nvar AccessConfig = /** @class */ (function (_super) {\n __extends(AccessConfig, _super);\n /**\n * @param permission access type\n * @param address\n */\n function AccessConfig(permission, address) {\n var _this = _super.call(this) || this;\n _this.permission = permission;\n _this.address = address;\n return _this;\n }\n AccessConfig.fromAmino = function (data) {\n return new AccessConfig((0, util_1.convertAccessTypeFromJSON)(data.permission), data.address);\n };\n AccessConfig.prototype.toAmino = function () {\n var res = {\n permission: (0, types_1.accessTypeToJSON)(this.permission),\n address: this.address,\n };\n return res;\n };\n AccessConfig.fromData = function (data) {\n // FIXME: new core returns human-friendly string like 'Everybody'.\n // but convertAccessTypeFromJSON requires \"ACCESS_TYPE_EVERYBODY\"\n // TODO: find out why the strings arent't matching\n return new AccessConfig((0, util_1.convertAccessTypeFromJSON)(data.permission), data.address);\n };\n AccessConfig.prototype.toData = function () {\n var res = {\n permission: (0, types_1.accessTypeToJSON)(this.permission),\n address: this.address,\n };\n return res;\n };\n AccessConfig.fromProto = function (proto) {\n return new AccessConfig(proto.permission, proto.address);\n };\n AccessConfig.prototype.toProto = function () {\n return types_1.AccessConfig.fromPartial({\n permission: this.permission,\n address: this.address,\n });\n };\n return AccessConfig;\n}(json_1.JSONSerializable));\nexports.AccessConfig = AccessConfig;\n//# sourceMappingURL=AccessConfig.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AccessConfigUpdate = void 0;\nvar proposal_1 = require(\"@terra-money/terra.proto/cosmwasm/wasm/v1/proposal\");\nvar json_1 = require(\"../../util/json\");\nvar AccessConfig_1 = require(\"./AccessConfig\");\nvar Long = __importStar(require(\"long\"));\n/**\n *\n */\nvar AccessConfigUpdate = /** @class */ (function (_super) {\n __extends(AccessConfigUpdate, _super);\n /**\n * @param code_id the reference to the stored WASM code to be updated\n * @param instantiate_permission to apply to the set of code ids\n */\n function AccessConfigUpdate(code_id, instantiate_permission) {\n var _this = _super.call(this) || this;\n _this.code_id = code_id;\n _this.instantiate_permission = instantiate_permission;\n return _this;\n }\n AccessConfigUpdate.fromAmino = function (data) {\n return new AccessConfigUpdate(Number.parseInt(data.code_id), data.instantiate_permission ? AccessConfig_1.AccessConfig.fromAmino(data.instantiate_permission) : undefined);\n };\n AccessConfigUpdate.prototype.toAmino = function () {\n var _a;\n var res = {\n code_id: this.code_id.toFixed(),\n instantiate_permission: (_a = this.instantiate_permission) === null || _a === void 0 ? void 0 : _a.toAmino()\n };\n return res;\n };\n AccessConfigUpdate.fromData = function (data) {\n return new AccessConfigUpdate(Number.parseInt(data.code_id), data.instantiate_permission ? AccessConfig_1.AccessConfig.fromData(data.instantiate_permission) : undefined);\n };\n AccessConfigUpdate.prototype.toData = function () {\n var _a;\n var res = {\n code_id: this.code_id.toFixed(),\n instantiate_permission: (_a = this.instantiate_permission) === null || _a === void 0 ? void 0 : _a.toData()\n };\n return res;\n };\n AccessConfigUpdate.fromProto = function (proto) {\n return new AccessConfigUpdate(proto.codeId.toNumber(), proto.instantiatePermission ? AccessConfig_1.AccessConfig.fromProto(proto.instantiatePermission) : undefined);\n };\n AccessConfigUpdate.prototype.toProto = function () {\n var _a;\n return proposal_1.AccessConfigUpdate.fromPartial({\n codeId: Long.fromNumber(this.code_id),\n instantiatePermission: (_a = this.instantiate_permission) === null || _a === void 0 ? void 0 : _a.toProto()\n });\n };\n return AccessConfigUpdate;\n}(json_1.JSONSerializable));\nexports.AccessConfigUpdate = AccessConfigUpdate;\n//# sourceMappingURL=AccessConfigUpdate.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AccessTypeParam = exports.AccessType = void 0;\nvar types_1 = require(\"@terra-money/terra.proto/cosmwasm/wasm/v1/types\");\nObject.defineProperty(exports, \"AccessType\", { enumerable: true, get: function () { return types_1.AccessType; } });\nvar json_1 = require(\"../../util/json\");\nvar util_1 = require(\"./util\");\n/**\n *\n */\nvar AccessTypeParam = /** @class */ (function (_super) {\n __extends(AccessTypeParam, _super);\n /**\n * @param value access type\n */\n function AccessTypeParam(value) {\n var _this = _super.call(this) || this;\n _this.value = value;\n return _this;\n }\n AccessTypeParam.fromAmino = function (data) {\n return new AccessTypeParam((0, util_1.convertAccessTypeFromJSON)(data.value));\n };\n AccessTypeParam.prototype.toAmino = function () {\n var res = {\n value: (0, types_1.accessTypeToJSON)(this.value),\n };\n return res;\n };\n AccessTypeParam.fromData = function (data) {\n return new AccessTypeParam((0, util_1.convertAccessTypeFromJSON)(data.value));\n };\n AccessTypeParam.prototype.toData = function () {\n var res = {\n value: (0, types_1.accessTypeToJSON)(this.value),\n };\n return res;\n };\n AccessTypeParam.fromProto = function (proto) {\n return new AccessTypeParam(proto.value);\n };\n AccessTypeParam.prototype.toProto = function () {\n return types_1.AccessTypeParam.fromPartial({\n value: this.value,\n });\n };\n return AccessTypeParam;\n}(json_1.JSONSerializable));\nexports.AccessTypeParam = AccessTypeParam;\n//# sourceMappingURL=AccessTypeParam.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HistoryEntry = void 0;\nvar types_1 = require(\"@terra-money/terra.proto/cosmwasm/wasm/v1/types\");\nvar json_1 = require(\"../../util/json\");\nvar Long = __importStar(require(\"long\"));\nvar AbsoluteTxPosition_1 = require(\"./AbsoluteTxPosition\");\n/**\n *\n */\nvar HistoryEntry = /** @class */ (function (_super) {\n __extends(HistoryEntry, _super);\n /**\n * @param operation access type\n * @param code_id\n */\n function HistoryEntry(operation, code_id, updated, msg) {\n var _this = _super.call(this) || this;\n _this.operation = operation;\n _this.code_id = code_id;\n _this.updated = updated;\n _this.msg = msg;\n return _this;\n }\n HistoryEntry.fromAmino = function (data) {\n return new HistoryEntry((0, types_1.contractCodeHistoryOperationTypeFromJSON)(data.operation), Number.parseInt(data.code_id), data.updated ? AbsoluteTxPosition_1.AbsoluteTxPosition.fromAmino(data.updated) : undefined, data.msg);\n };\n HistoryEntry.prototype.toAmino = function () {\n var _a;\n var res = {\n operation: (0, types_1.contractCodeHistoryOperationTypeToJSON)(this.operation),\n code_id: this.code_id.toFixed(),\n updated: (_a = this.updated) === null || _a === void 0 ? void 0 : _a.toAmino(),\n msg: this.msg,\n };\n return res;\n };\n HistoryEntry.fromData = function (data) {\n return new HistoryEntry((0, types_1.contractCodeHistoryOperationTypeFromJSON)(data.operation), Number.parseInt(data.code_id), data.updated ? AbsoluteTxPosition_1.AbsoluteTxPosition.fromData(data.updated) : undefined, data.msg);\n };\n HistoryEntry.prototype.toData = function () {\n var _a;\n var res = {\n operation: (0, types_1.contractCodeHistoryOperationTypeToJSON)(this.operation),\n code_id: this.code_id.toFixed(),\n updated: (_a = this.updated) === null || _a === void 0 ? void 0 : _a.toData(),\n msg: this.msg,\n };\n return res;\n };\n HistoryEntry.fromProto = function (proto) {\n return new HistoryEntry(proto.operation, proto.codeId.toNumber(), proto.updated ? AbsoluteTxPosition_1.AbsoluteTxPosition.fromProto(proto.updated) : undefined, JSON.parse(Buffer.from(proto.msg).toString('utf-8')));\n };\n HistoryEntry.prototype.toProto = function () {\n var _a;\n return types_1.ContractCodeHistoryEntry.fromPartial({\n operation: this.operation,\n codeId: Long.fromNumber(this.code_id),\n updated: (_a = this.updated) === null || _a === void 0 ? void 0 : _a.toProto(),\n msg: Buffer.from(JSON.stringify((0, json_1.removeNull)(this.msg)), 'utf-8'),\n });\n };\n return HistoryEntry;\n}(json_1.JSONSerializable));\nexports.HistoryEntry = HistoryEntry;\n//# sourceMappingURL=HistoryEntry.js.map","\"use strict\";\n//import { AccessTypeParam, AccessType } from './AccessTypeParam';\n//import { AccessConfig } from './AccessConfig';\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./AccessTypeParam\"), exports);\n__exportStar(require(\"./AccessConfig\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgClearContractAdmin = void 0;\nvar json_1 = require(\"../../../util/json\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar tx_1 = require(\"@terra-money/legacy.proto/terra/wasm/v1beta1/tx\");\nvar tx_2 = require(\"@terra-money/terra.proto/cosmwasm/wasm/v1/tx\");\nvar MsgClearContractAdmin = /** @class */ (function (_super) {\n __extends(MsgClearContractAdmin, _super);\n /**\n * @param admin contract admin\n * @param contract contract address\n */\n function MsgClearContractAdmin(admin, contract) {\n var _this = _super.call(this) || this;\n _this.admin = admin;\n _this.contract = contract;\n return _this;\n }\n MsgClearContractAdmin.fromAmino = function (data, isClassic) {\n if (isClassic) {\n var _a = data.value, admin = _a.admin, contract = _a.contract;\n return new MsgClearContractAdmin(admin, contract);\n }\n else {\n var _b = data.value, sender = _b.sender, contract = _b.contract;\n return new MsgClearContractAdmin(sender, contract);\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n MsgClearContractAdmin.prototype.toAmino = function (isClassic) {\n var _a = this, admin = _a.admin, contract = _a.contract;\n if (isClassic) {\n return {\n type: 'wasm/MsgClearContractAdmin',\n value: {\n admin: admin,\n contract: contract,\n },\n };\n }\n else {\n return {\n type: 'wasm/MsgClearAdmin',\n value: {\n sender: admin,\n contract: contract,\n },\n };\n }\n };\n MsgClearContractAdmin.fromProto = function (data, isClassic) {\n if (isClassic) {\n var _a = data, admin = _a.admin, contract = _a.contract;\n return new MsgClearContractAdmin(admin, contract);\n }\n else {\n var _b = data, sender = _b.sender, contract = _b.contract;\n return new MsgClearContractAdmin(sender, contract);\n }\n };\n MsgClearContractAdmin.prototype.toProto = function (isClassic) {\n if (isClassic) {\n return tx_1.MsgClearContractAdmin.fromPartial({\n admin: this.admin,\n contract: this.contract,\n });\n }\n else {\n return tx_2.MsgClearAdmin.fromPartial({\n sender: this.admin,\n contract: this.contract,\n });\n }\n };\n MsgClearContractAdmin.prototype.packAny = function (isClassic) {\n if (isClassic) {\n return any_1.Any.fromPartial({\n typeUrl: '/jmes.wasm.v1beta1.MsgClearContractAdmin',\n value: tx_1.MsgClearContractAdmin.encode(this.toProto(isClassic)).finish(),\n });\n }\n else {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmwasm.wasm.v1.MsgClearAdmin',\n value: tx_2.MsgClearAdmin.encode(this.toProto(isClassic)).finish(),\n });\n }\n };\n MsgClearContractAdmin.unpackAny = function (msgAny, isClassic) {\n if (isClassic) {\n return MsgClearContractAdmin.fromProto(tx_1.MsgClearContractAdmin.decode(msgAny.value), isClassic);\n }\n else {\n return MsgClearContractAdmin.fromProto(tx_2.MsgClearAdmin.decode(msgAny.value), isClassic);\n }\n };\n MsgClearContractAdmin.fromData = function (data, isClassic) {\n if (isClassic) {\n var _a = data, admin = _a.admin, contract = _a.contract;\n return new MsgClearContractAdmin(admin, contract);\n }\n else {\n var _b = data, sender = _b.sender, contract = _b.contract;\n return new MsgClearContractAdmin(sender, contract);\n }\n };\n MsgClearContractAdmin.prototype.toData = function (isClassic) {\n if (isClassic) {\n return {\n '@type': '/jmes.wasm.v1beta1.MsgClearContractAdmin',\n admin: this.admin,\n contract: this.contract,\n };\n }\n else {\n return {\n '@type': '/cosmwasm.wasm.v1.MsgClearAdmin',\n sender: this.admin,\n contract: this.contract,\n };\n }\n };\n return MsgClearContractAdmin;\n}(json_1.JSONSerializable));\nexports.MsgClearContractAdmin = MsgClearContractAdmin;\n//# sourceMappingURL=MsgClearContractAdmin.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgExecuteContract = void 0;\nvar json_1 = require(\"../../../util/json\");\nvar Coins_1 = require(\"../../Coins\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar tx_1 = require(\"@terra-money/legacy.proto/terra/wasm/v1beta1/tx\");\nvar tx_2 = require(\"@terra-money/terra.proto/cosmwasm/wasm/v1/tx\");\nvar MsgExecuteContract = /** @class */ (function (_super) {\n __extends(MsgExecuteContract, _super);\n /**\n * @param sender contract user\n * @param contract contract address\n * @param execute_msg HandleMsg to pass as arguments for contract invocation\n * @param coins coins to be sent to contract\n */\n function MsgExecuteContract(sender, contract, execute_msg, coins) {\n if (coins === void 0) { coins = {}; }\n var _this = _super.call(this) || this;\n _this.sender = sender;\n _this.contract = contract;\n _this.execute_msg = execute_msg;\n _this.coins = new Coins_1.Coins(coins);\n return _this;\n }\n MsgExecuteContract.fromAmino = function (data, isClassic) {\n if (isClassic) {\n var _a = data.value, sender = _a.sender, contract = _a.contract, execute_msg = _a.execute_msg, coins = _a.coins;\n return new MsgExecuteContract(sender, contract, execute_msg, Coins_1.Coins.fromAmino(coins));\n }\n else {\n var _b = data.value, sender = _b.sender, contract = _b.contract, msg = _b.msg, funds = _b.funds;\n return new MsgExecuteContract(sender, contract, msg, Coins_1.Coins.fromAmino(funds));\n }\n };\n MsgExecuteContract.prototype.toAmino = function (isClassic) {\n var _a = this, sender = _a.sender, contract = _a.contract, execute_msg = _a.execute_msg, coins = _a.coins;\n if (isClassic) {\n return {\n type: 'wasm/MsgExecuteContract',\n value: {\n sender: sender,\n contract: contract,\n execute_msg: (0, json_1.removeNull)(execute_msg),\n coins: coins.toAmino(),\n },\n };\n }\n else {\n return {\n type: 'wasm/MsgExecuteContract',\n value: {\n sender: sender,\n contract: contract,\n msg: (0, json_1.removeNull)(execute_msg),\n funds: coins.toAmino(),\n },\n };\n }\n };\n MsgExecuteContract.fromProto = function (proto, isClassic) {\n if (isClassic) {\n var p = proto;\n return new MsgExecuteContract(p.sender, p.contract, JSON.parse(Buffer.from(p.executeMsg).toString('utf-8')), Coins_1.Coins.fromProto(p.coins));\n }\n else {\n var p = proto;\n return new MsgExecuteContract(p.sender, p.contract, JSON.parse(Buffer.from(p.msg).toString('utf-8')), Coins_1.Coins.fromProto(p.funds));\n }\n };\n MsgExecuteContract.prototype.toProto = function (isClassic) {\n var _a = this, sender = _a.sender, contract = _a.contract, execute_msg = _a.execute_msg, coins = _a.coins;\n if (isClassic) {\n return tx_1.MsgExecuteContract.fromPartial({\n coins: coins.toProto(),\n contract: contract,\n sender: sender,\n executeMsg: Buffer.from(JSON.stringify((0, json_1.removeNull)(execute_msg)), 'utf-8'),\n });\n }\n else {\n return tx_2.MsgExecuteContract.fromPartial({\n funds: coins.toProto(),\n contract: contract,\n sender: sender,\n msg: Buffer.from(JSON.stringify((0, json_1.removeNull)(execute_msg)), 'utf-8'),\n });\n }\n };\n MsgExecuteContract.prototype.packAny = function (isClassic) {\n if (isClassic) {\n return any_1.Any.fromPartial({\n typeUrl: '/jmes.wasm.v1beta1.MsgExecuteContract',\n value: tx_1.MsgExecuteContract.encode(this.toProto(isClassic)).finish(),\n });\n }\n else {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmwasm.wasm.v1.MsgExecuteContract',\n value: tx_2.MsgExecuteContract.encode(this.toProto(isClassic)).finish(),\n });\n }\n };\n MsgExecuteContract.unpackAny = function (msgAny, isClassic) {\n return MsgExecuteContract.fromProto(isClassic\n ? tx_1.MsgExecuteContract.decode(msgAny.value)\n : tx_2.MsgExecuteContract.decode(msgAny.value), isClassic);\n };\n MsgExecuteContract.fromData = function (data, isClassic) {\n if (isClassic) {\n var _a = data, sender = _a.sender, contract = _a.contract, execute_msg = _a.execute_msg, coins = _a.coins;\n return new MsgExecuteContract(sender, contract, execute_msg, Coins_1.Coins.fromData(coins));\n }\n else {\n var _b = data, sender = _b.sender, contract = _b.contract, msg = _b.msg, funds = _b.funds;\n return new MsgExecuteContract(sender, contract, msg, Coins_1.Coins.fromData(funds));\n }\n };\n MsgExecuteContract.prototype.toData = function (isClassic) {\n var _a = this, sender = _a.sender, contract = _a.contract, execute_msg = _a.execute_msg, coins = _a.coins;\n if (isClassic) {\n return {\n '@type': '/jmes.wasm.v1beta1.MsgExecuteContract',\n sender: sender,\n contract: contract,\n execute_msg: execute_msg,\n coins: coins.toData(),\n };\n }\n else {\n return {\n '@type': '/cosmwasm.wasm.v1.MsgExecuteContract',\n sender: sender,\n contract: contract,\n msg: execute_msg,\n funds: coins.toData(),\n };\n }\n };\n return MsgExecuteContract;\n}(json_1.JSONSerializable));\nexports.MsgExecuteContract = MsgExecuteContract;\n//# sourceMappingURL=MsgExecuteContract.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgInstantiateContract = void 0;\nvar json_1 = require(\"../../../util/json\");\nvar Coins_1 = require(\"../../Coins\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar tx_1 = require(\"@terra-money/legacy.proto/terra/wasm/v1beta1/tx\");\nvar tx_2 = require(\"@terra-money/terra.proto/cosmwasm/wasm/v1/tx\");\nvar Long = __importStar(require(\"long\"));\nvar MsgInstantiateContract = /** @class */ (function (_super) {\n __extends(MsgInstantiateContract, _super);\n /**\n * @param sender is a sender address\n * @param admin is an optional contract admin address who can migrate the contract, put empty string to disable migration\n * @param code_id is the reference to the stored WASM code\n * @param init_msg json encoded message to be passed to the contract on instantiation\n * @param init_coins are transferred to the contract on execution\n * @param label label for the contract. v2 supported only\n */\n function MsgInstantiateContract(sender, admin, code_id, init_msg, init_coins, label) {\n if (init_coins === void 0) { init_coins = {}; }\n var _this = _super.call(this) || this;\n _this.sender = sender;\n _this.admin = admin;\n _this.code_id = code_id;\n _this.init_msg = init_msg;\n _this.label = label;\n _this.init_coins = new Coins_1.Coins(init_coins);\n return _this;\n }\n MsgInstantiateContract.fromAmino = function (data, isClassic) {\n if (isClassic) {\n var _a = data.value, sender = _a.sender, admin = _a.admin, code_id = _a.code_id, init_msg = _a.init_msg, init_coins = _a.init_coins;\n return new MsgInstantiateContract(sender, admin, Number.parseInt(code_id), init_msg, Coins_1.Coins.fromAmino(init_coins));\n }\n {\n var _b = data.value, sender = _b.sender, admin = _b.admin, code_id = _b.code_id, msg = _b.msg, funds = _b.funds, label = _b.label;\n return new MsgInstantiateContract(sender, admin, Number.parseInt(code_id), msg, Coins_1.Coins.fromAmino(funds), label);\n }\n };\n MsgInstantiateContract.prototype.toAmino = function (isClassic) {\n var _a = this, sender = _a.sender, admin = _a.admin, code_id = _a.code_id, init_msg = _a.init_msg, init_coins = _a.init_coins, label = _a.label;\n if (isClassic) {\n return {\n type: 'wasm/MsgInstantiateContract',\n value: {\n sender: sender,\n admin: admin,\n code_id: code_id.toFixed(),\n init_msg: (0, json_1.removeNull)(init_msg),\n init_coins: init_coins.toAmino(),\n },\n };\n }\n else {\n return {\n type: 'wasm/MsgInstantiateContract',\n value: {\n sender: sender,\n admin: admin,\n code_id: code_id.toFixed(),\n label: label,\n msg: (0, json_1.removeNull)(init_msg),\n funds: init_coins.toAmino(),\n },\n };\n }\n };\n MsgInstantiateContract.fromProto = function (proto, isClassic) {\n if (isClassic) {\n var p = proto;\n return new MsgInstantiateContract(p.sender, p.admin !== '' ? p.admin : undefined, p.codeId.toNumber(), JSON.parse(Buffer.from(p.initMsg).toString('utf-8')), Coins_1.Coins.fromProto(p.initCoins));\n }\n else {\n var p = proto;\n return new MsgInstantiateContract(p.sender, p.admin !== '' ? p.admin : undefined, p.codeId.toNumber(), JSON.parse(Buffer.from(p.msg).toString('utf-8')), Coins_1.Coins.fromProto(p.funds), p.label !== '' ? p.label : undefined);\n }\n };\n MsgInstantiateContract.prototype.toProto = function (isClassic) {\n var _a = this, sender = _a.sender, admin = _a.admin, code_id = _a.code_id, init_msg = _a.init_msg, init_coins = _a.init_coins, label = _a.label;\n if (isClassic) {\n return tx_1.MsgInstantiateContract.fromPartial({\n admin: admin,\n codeId: Long.fromNumber(code_id),\n initCoins: init_coins.toProto(),\n initMsg: Buffer.from(JSON.stringify(init_msg), 'utf-8'),\n sender: sender,\n });\n }\n else {\n return tx_2.MsgInstantiateContract.fromPartial({\n admin: admin,\n codeId: Long.fromNumber(code_id),\n funds: init_coins.toProto(),\n msg: Buffer.from(JSON.stringify(init_msg), 'utf-8'),\n sender: sender,\n label: label,\n });\n }\n };\n MsgInstantiateContract.prototype.packAny = function (isClassic) {\n if (isClassic) {\n return any_1.Any.fromPartial({\n typeUrl: '/jmes.wasm.v1beta1.MsgInstantiateContract',\n value: tx_1.MsgInstantiateContract.encode(this.toProto(isClassic)).finish(),\n });\n }\n else {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmwasm.wasm.v1.MsgInstantiateContract',\n value: tx_2.MsgInstantiateContract.encode(this.toProto(isClassic)).finish(),\n });\n }\n };\n MsgInstantiateContract.unpackAny = function (msgAny, isClassic) {\n if (isClassic) {\n return MsgInstantiateContract.fromProto(tx_1.MsgInstantiateContract.decode(msgAny.value), isClassic);\n }\n else {\n return MsgInstantiateContract.fromProto(tx_2.MsgInstantiateContract.decode(msgAny.value), isClassic);\n }\n };\n MsgInstantiateContract.fromData = function (data, isClassic) {\n if (isClassic) {\n var _a = data, sender = _a.sender, admin = _a.admin, code_id = _a.code_id, init_msg = _a.init_msg, init_coins = _a.init_coins;\n return new MsgInstantiateContract(sender, admin !== '' ? admin : undefined, Number.parseInt(code_id), init_msg, Coins_1.Coins.fromData(init_coins));\n }\n else {\n var _b = data, sender = _b.sender, admin = _b.admin, code_id = _b.code_id, label = _b.label, msg = _b.msg, funds = _b.funds;\n return new MsgInstantiateContract(sender, admin !== '' ? admin : undefined, Number.parseInt(code_id), msg, Coins_1.Coins.fromData(funds), label);\n }\n };\n MsgInstantiateContract.prototype.toData = function (isClassic) {\n var _a = this, sender = _a.sender, admin = _a.admin, code_id = _a.code_id, label = _a.label, init_msg = _a.init_msg, init_coins = _a.init_coins;\n if (isClassic) {\n return {\n '@type': '/jmes.wasm.v1beta1.MsgInstantiateContract',\n sender: sender,\n admin: admin || '',\n code_id: code_id.toFixed(),\n init_msg: (0, json_1.removeNull)(init_msg),\n init_coins: init_coins.toData(),\n };\n }\n else {\n return {\n '@type': '/cosmwasm.wasm.v1.MsgInstantiateContract',\n sender: sender,\n admin: admin || '',\n code_id: code_id.toFixed(),\n label: label,\n msg: (0, json_1.removeNull)(init_msg),\n funds: init_coins.toData(),\n };\n }\n };\n return MsgInstantiateContract;\n}(json_1.JSONSerializable));\nexports.MsgInstantiateContract = MsgInstantiateContract;\n//# sourceMappingURL=MsgInstantiateContract.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgMigrateCode = void 0;\nvar json_1 = require(\"../../../util/json\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar tx_1 = require(\"@terra-money/legacy.proto/terra/wasm/v1beta1/tx\");\nvar Long = __importStar(require(\"long\"));\nvar MsgMigrateCode = /** @class */ (function (_super) {\n __extends(MsgMigrateCode, _super);\n /**\n * @param sender code migrator address\n * @param code_id reference to the code on the blockchain\n * @param wasm_byte_code base64-encoded bytecode contents\n */\n function MsgMigrateCode(sender, code_id, wasm_byte_code) {\n var _this = _super.call(this) || this;\n _this.sender = sender;\n _this.code_id = code_id;\n _this.wasm_byte_code = wasm_byte_code;\n return _this;\n }\n MsgMigrateCode.fromAmino = function (data, isClassic) {\n if (!isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = data.value, sender = _a.sender, code_id = _a.code_id, wasm_byte_code = _a.wasm_byte_code;\n return new MsgMigrateCode(sender, Number.parseInt(code_id), wasm_byte_code);\n };\n MsgMigrateCode.prototype.toAmino = function (isClassic) {\n if (!isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = this, sender = _a.sender, code_id = _a.code_id, wasm_byte_code = _a.wasm_byte_code;\n return {\n type: 'wasm/MsgMigrateCode',\n value: {\n sender: sender,\n code_id: code_id.toFixed(),\n wasm_byte_code: wasm_byte_code,\n },\n };\n };\n MsgMigrateCode.fromProto = function (proto, isClassic) {\n if (!isClassic) {\n throw new Error('Not supported for the network');\n }\n return new MsgMigrateCode(proto.sender, proto.codeId.toNumber(), Buffer.from(proto.wasmByteCode).toString('base64'));\n };\n MsgMigrateCode.prototype.toProto = function (isClassic) {\n if (!isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = this, sender = _a.sender, code_id = _a.code_id, wasm_byte_code = _a.wasm_byte_code;\n return tx_1.MsgMigrateCode.fromPartial({\n codeId: Long.fromNumber(code_id),\n sender: sender,\n wasmByteCode: Buffer.from(wasm_byte_code, 'base64'),\n });\n };\n MsgMigrateCode.prototype.packAny = function (isClassic) {\n if (!isClassic) {\n throw new Error('Not supported for the network');\n }\n return any_1.Any.fromPartial({\n typeUrl: '/jmes.wasm.v1beta1.MsgMigrateCode',\n value: tx_1.MsgMigrateCode.encode(this.toProto(isClassic)).finish(),\n });\n };\n MsgMigrateCode.unpackAny = function (msgAny, isClassic) {\n if (!isClassic) {\n throw new Error('Not supported for the network');\n }\n return MsgMigrateCode.fromProto(tx_1.MsgMigrateCode.decode(msgAny.value), isClassic);\n };\n MsgMigrateCode.fromData = function (data, isClassic) {\n if (!isClassic) {\n throw new Error('Not supported for the network');\n }\n var sender = data.sender, code_id = data.code_id, wasm_byte_code = data.wasm_byte_code;\n return new MsgMigrateCode(sender, Number.parseInt(code_id), wasm_byte_code);\n };\n MsgMigrateCode.prototype.toData = function (isClassic) {\n if (!isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = this, sender = _a.sender, code_id = _a.code_id, wasm_byte_code = _a.wasm_byte_code;\n return {\n '@type': '/jmes.wasm.v1beta1.MsgMigrateCode',\n sender: sender,\n code_id: code_id.toFixed(),\n wasm_byte_code: wasm_byte_code,\n };\n };\n return MsgMigrateCode;\n}(json_1.JSONSerializable));\nexports.MsgMigrateCode = MsgMigrateCode;\n//# sourceMappingURL=MsgMigrateCode.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgMigrateContract = void 0;\nvar json_1 = require(\"../../../util/json\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar tx_1 = require(\"@terra-money/legacy.proto/terra/wasm/v1beta1/tx\");\nvar tx_2 = require(\"@terra-money/terra.proto/cosmwasm/wasm/v1/tx\");\nvar Long = __importStar(require(\"long\"));\nvar MsgMigrateContract = /** @class */ (function (_super) {\n __extends(MsgMigrateContract, _super);\n /**\n * @param admin contract admin\n * @param contract contract address to be migrated from\n * @param new_code_id reference to the new code on the blockchain\n * @param migrate_msg JSON message to configure the migrate state of the contract\n */\n function MsgMigrateContract(admin, contract, new_code_id, migrate_msg // json object or string\n ) {\n var _this = _super.call(this) || this;\n _this.admin = admin;\n _this.contract = contract;\n _this.new_code_id = new_code_id;\n _this.migrate_msg = migrate_msg;\n return _this;\n }\n MsgMigrateContract.fromAmino = function (data, isClassic) {\n if (isClassic) {\n var _a = data.value, admin = _a.admin, contract = _a.contract, new_code_id = _a.new_code_id, migrate_msg = _a.migrate_msg;\n return new MsgMigrateContract(admin, contract, Number.parseInt(new_code_id), migrate_msg);\n }\n else {\n var _b = data.value, sender = _b.sender, contract = _b.contract, code_id = _b.code_id, msg = _b.msg;\n return new MsgMigrateContract(sender, contract, Number.parseInt(code_id), msg);\n }\n };\n MsgMigrateContract.prototype.toAmino = function (isClassic) {\n if (isClassic) {\n var _a = this, admin = _a.admin, contract = _a.contract, new_code_id = _a.new_code_id, migrate_msg = _a.migrate_msg;\n return {\n type: 'wasm/MsgMigrateContract',\n value: {\n admin: admin,\n contract: contract,\n new_code_id: new_code_id.toFixed(),\n migrate_msg: (0, json_1.removeNull)(migrate_msg),\n },\n };\n }\n else {\n var _b = this, admin = _b.admin, contract = _b.contract, new_code_id = _b.new_code_id, migrate_msg = _b.migrate_msg;\n return {\n type: 'wasm/MsgMigrateContract',\n value: {\n sender: admin,\n contract: contract,\n code_id: new_code_id.toFixed(),\n msg: (0, json_1.removeNull)(migrate_msg),\n },\n };\n }\n };\n MsgMigrateContract.fromProto = function (proto, isClassic) {\n if (isClassic) {\n var p = proto;\n return new MsgMigrateContract(p.admin, p.contract, p.newCodeId.toNumber(), JSON.parse(Buffer.from(p.migrateMsg).toString('utf-8')));\n }\n else {\n var p = proto;\n return new MsgMigrateContract(p.sender, p.contract, p.codeId.toNumber(), JSON.parse(Buffer.from(p.msg).toString('utf-8')));\n }\n };\n MsgMigrateContract.prototype.toProto = function (isClassic) {\n var _a = this, admin = _a.admin, contract = _a.contract, new_code_id = _a.new_code_id, migrate_msg = _a.migrate_msg;\n if (isClassic) {\n return tx_1.MsgMigrateContract.fromPartial({\n admin: admin,\n contract: contract,\n newCodeId: Long.fromNumber(new_code_id),\n migrateMsg: Buffer.from(JSON.stringify(migrate_msg), 'utf-8'),\n });\n }\n else {\n return tx_2.MsgMigrateContract.fromPartial({\n sender: admin,\n contract: contract,\n codeId: Long.fromNumber(new_code_id),\n msg: Buffer.from(JSON.stringify(migrate_msg), 'utf-8'),\n });\n }\n };\n MsgMigrateContract.prototype.packAny = function (isClassic) {\n if (isClassic) {\n return any_1.Any.fromPartial({\n typeUrl: '/jmes.wasm.v1beta1.MsgMigrateContract',\n value: tx_1.MsgMigrateContract.encode(this.toProto(isClassic)).finish(),\n });\n }\n else {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmwasm.wasm.v1.MsgMigrateContract',\n value: tx_2.MsgMigrateContract.encode(this.toProto(isClassic)).finish(),\n });\n }\n };\n MsgMigrateContract.unpackAny = function (msgAny, isClassic) {\n return MsgMigrateContract.fromProto(isClassic\n ? tx_1.MsgMigrateContract.decode(msgAny.value)\n : tx_2.MsgMigrateContract.decode(msgAny.value), isClassic);\n };\n MsgMigrateContract.fromData = function (data, isClassic) {\n if (isClassic) {\n var _a = data, admin = _a.admin, contract = _a.contract, new_code_id = _a.new_code_id, migrate_msg = _a.migrate_msg;\n return new MsgMigrateContract(admin, contract, Number.parseInt(new_code_id), migrate_msg);\n }\n else {\n var _b = data, sender = _b.sender, contract = _b.contract, code_id = _b.code_id, msg = _b.msg;\n return new MsgMigrateContract(sender, contract, Number.parseInt(code_id), msg);\n }\n };\n MsgMigrateContract.prototype.toData = function (isClassic) {\n var _a = this, admin = _a.admin, contract = _a.contract, new_code_id = _a.new_code_id, migrate_msg = _a.migrate_msg;\n if (isClassic) {\n return {\n '@type': '/jmes.wasm.v1beta1.MsgMigrateContract',\n admin: admin,\n contract: contract,\n new_code_id: new_code_id.toFixed(),\n migrate_msg: (0, json_1.removeNull)(migrate_msg),\n };\n }\n else {\n return {\n '@type': '/cosmwasm.wasm.v1.MsgMigrateContract',\n sender: admin,\n contract: contract,\n code_id: new_code_id.toFixed(),\n msg: (0, json_1.removeNull)(migrate_msg),\n };\n }\n };\n return MsgMigrateContract;\n}(json_1.JSONSerializable));\nexports.MsgMigrateContract = MsgMigrateContract;\n//# sourceMappingURL=MsgMigrateContract.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgStoreCode = void 0;\nvar json_1 = require(\"../../../util/json\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar tx_1 = require(\"@terra-money/legacy.proto/terra/wasm/v1beta1/tx\");\nvar tx_2 = require(\"@terra-money/terra.proto/cosmwasm/wasm/v1/tx\");\nvar AccessConfig_1 = require(\"../AccessConfig\");\nvar MsgStoreCode = /** @class */ (function (_super) {\n __extends(MsgStoreCode, _super);\n /**\n * @param sender code creator\n * @param wasm_byte_code base64-encoded bytecode contents\n * @param instantiate_permission InstantiatePermission access control to apply on contract creation, optional. v2 supported only\n */\n function MsgStoreCode(sender, wasm_byte_code, instantiate_permission) {\n var _this = _super.call(this) || this;\n _this.sender = sender;\n _this.wasm_byte_code = wasm_byte_code;\n _this.instantiate_permission = instantiate_permission;\n return _this;\n }\n MsgStoreCode.fromAmino = function (data, isClassic) {\n if (isClassic) {\n var _a = data.value, sender = _a.sender, wasm_byte_code = _a.wasm_byte_code;\n return new MsgStoreCode(sender, wasm_byte_code);\n }\n else {\n var _b = data.value, sender = _b.sender, wasm_byte_code = _b.wasm_byte_code, instantiate_permission = _b.instantiate_permission;\n return new MsgStoreCode(sender, wasm_byte_code, instantiate_permission\n ? AccessConfig_1.AccessConfig.fromAmino(instantiate_permission)\n : undefined);\n }\n };\n MsgStoreCode.prototype.toAmino = function (isClassic) {\n var _a = this, sender = _a.sender, wasm_byte_code = _a.wasm_byte_code, instantiate_permission = _a.instantiate_permission;\n if (isClassic) {\n return {\n type: 'wasm/MsgStoreCode',\n value: {\n sender: sender,\n wasm_byte_code: wasm_byte_code,\n },\n };\n }\n else {\n return {\n type: 'wasm/MsgStoreCode',\n value: {\n sender: sender,\n wasm_byte_code: wasm_byte_code,\n instantiate_permission: instantiate_permission === null || instantiate_permission === void 0 ? void 0 : instantiate_permission.toAmino(),\n },\n };\n }\n };\n MsgStoreCode.fromProto = function (proto, isClassic) {\n if (isClassic) {\n return new MsgStoreCode(proto.sender, Buffer.from(proto.wasmByteCode).toString('base64'));\n }\n else {\n var p = proto;\n return new MsgStoreCode(p.sender, Buffer.from(p.wasmByteCode).toString('base64'), p.instantiatePermission\n ? AccessConfig_1.AccessConfig.fromProto(p.instantiatePermission)\n : undefined);\n }\n };\n MsgStoreCode.prototype.toProto = function (isClassic) {\n var _a = this, sender = _a.sender, wasm_byte_code = _a.wasm_byte_code, instantiate_permission = _a.instantiate_permission;\n if (isClassic) {\n return tx_1.MsgStoreCode.fromPartial({\n sender: sender,\n wasmByteCode: Buffer.from(wasm_byte_code, 'base64'),\n });\n }\n else {\n return tx_2.MsgStoreCode.fromPartial({\n sender: sender,\n wasmByteCode: Buffer.from(wasm_byte_code, 'base64'),\n instantiatePermission: instantiate_permission === null || instantiate_permission === void 0 ? void 0 : instantiate_permission.toProto(),\n });\n }\n };\n MsgStoreCode.prototype.packAny = function (isClassic) {\n var typeUrl;\n if (isClassic) {\n typeUrl = '/jmes.wasm.v1beta1.MsgStoreCode';\n }\n else {\n typeUrl = '/cosmwasm.wasm.v1.MsgStoreCode';\n }\n var any = any_1.Any.fromPartial({\n typeUrl: typeUrl,\n value: isClassic\n ? tx_1.MsgStoreCode.encode(this.toProto(isClassic)).finish()\n : tx_2.MsgStoreCode.encode(this.toProto(isClassic)).finish(),\n });\n return any;\n };\n MsgStoreCode.unpackAny = function (msgAny, isClassic) {\n if (isClassic) {\n return MsgStoreCode.fromProto(tx_1.MsgStoreCode.decode(msgAny.value), isClassic);\n }\n else {\n return MsgStoreCode.fromProto(tx_2.MsgStoreCode.decode(msgAny.value), isClassic);\n }\n };\n MsgStoreCode.fromData = function (data, isClassic) {\n if (isClassic) {\n var _a = data, sender = _a.sender, wasm_byte_code = _a.wasm_byte_code;\n return new MsgStoreCode(sender, wasm_byte_code);\n }\n else {\n var _b = data, sender = _b.sender, wasm_byte_code = _b.wasm_byte_code, instantiate_permission = _b.instantiate_permission;\n return new MsgStoreCode(sender, wasm_byte_code, instantiate_permission\n ? AccessConfig_1.AccessConfig.fromData(instantiate_permission)\n : undefined);\n }\n };\n MsgStoreCode.prototype.toData = function (isClassic) {\n var _a = this, sender = _a.sender, wasm_byte_code = _a.wasm_byte_code, instantiate_permission = _a.instantiate_permission;\n if (isClassic) {\n return {\n '@type': '/jmes.wasm.v1beta1.MsgStoreCode',\n sender: sender,\n wasm_byte_code: wasm_byte_code,\n };\n }\n else {\n return {\n '@type': '/cosmwasm.wasm.v1.MsgStoreCode',\n sender: sender,\n wasm_byte_code: wasm_byte_code,\n instantiate_permission: instantiate_permission === null || instantiate_permission === void 0 ? void 0 : instantiate_permission.toData(),\n };\n }\n };\n return MsgStoreCode;\n}(json_1.JSONSerializable));\nexports.MsgStoreCode = MsgStoreCode;\n//# sourceMappingURL=MsgStoreCode.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgUpdateContractAdmin = void 0;\nvar json_1 = require(\"../../../util/json\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar tx_1 = require(\"@terra-money/legacy.proto/terra/wasm/v1beta1/tx\");\nvar tx_2 = require(\"@terra-money/terra.proto/cosmwasm/wasm/v1/tx\");\nvar MsgUpdateContractAdmin = /** @class */ (function (_super) {\n __extends(MsgUpdateContractAdmin, _super);\n /**\n * @param admin contract admin\n * @param new_admin new admin\n * @param contract contract address\n */\n function MsgUpdateContractAdmin(admin, new_admin, contract) {\n var _this = _super.call(this) || this;\n _this.admin = admin;\n _this.new_admin = new_admin;\n _this.contract = contract;\n return _this;\n }\n MsgUpdateContractAdmin.fromAmino = function (data, isClassic) {\n if (isClassic) {\n var _a = data.value, admin = _a.admin, new_admin = _a.new_admin, contract = _a.contract;\n return new MsgUpdateContractAdmin(admin, new_admin, contract);\n }\n else {\n var _b = data.value, sender = _b.sender, new_admin = _b.new_admin, contract = _b.contract;\n return new MsgUpdateContractAdmin(sender, new_admin, contract);\n }\n };\n MsgUpdateContractAdmin.prototype.toAmino = function (isClassic) {\n var _a = this, admin = _a.admin, new_admin = _a.new_admin, contract = _a.contract;\n if (isClassic) {\n return {\n type: 'wasm/MsgUpdateContractAdmin',\n value: {\n admin: admin,\n new_admin: new_admin,\n contract: contract,\n },\n };\n }\n else {\n return {\n type: 'wasm/MsgUpdateAdmin',\n value: {\n sender: admin,\n new_admin: new_admin,\n contract: contract,\n },\n };\n }\n };\n MsgUpdateContractAdmin.fromProto = function (proto, isClassic) {\n if (isClassic) {\n var p = proto;\n return new MsgUpdateContractAdmin(p.admin, p.newAdmin, p.contract);\n }\n else {\n var p = proto;\n return new MsgUpdateContractAdmin(p.sender, p.newAdmin, p.contract);\n }\n };\n MsgUpdateContractAdmin.prototype.toProto = function (isClassic) {\n var _a = this, admin = _a.admin, new_admin = _a.new_admin, contract = _a.contract;\n if (isClassic) {\n return tx_1.MsgUpdateContractAdmin.fromPartial({\n admin: admin,\n contract: contract,\n newAdmin: new_admin,\n });\n }\n else {\n return tx_2.MsgUpdateAdmin.fromPartial({\n sender: admin,\n contract: contract,\n newAdmin: new_admin,\n });\n }\n };\n MsgUpdateContractAdmin.prototype.packAny = function (isClassic) {\n if (isClassic) {\n return any_1.Any.fromPartial({\n typeUrl: '/jmes.wasm.v1beta1.MsgUpdateContractAdmin',\n value: tx_1.MsgUpdateContractAdmin.encode(this.toProto(isClassic)).finish(),\n });\n }\n else {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmwasm.wasm.v1.MsgUpdateAdmin',\n value: tx_2.MsgUpdateAdmin.encode(this.toProto(isClassic)).finish(),\n });\n }\n };\n MsgUpdateContractAdmin.unpackAny = function (msgAny, isClassic) {\n if (isClassic) {\n return MsgUpdateContractAdmin.fromProto(tx_1.MsgUpdateContractAdmin.decode(msgAny.value), isClassic);\n }\n else {\n return MsgUpdateContractAdmin.fromProto(tx_2.MsgUpdateAdmin.decode(msgAny.value), isClassic);\n }\n };\n MsgUpdateContractAdmin.fromData = function (data, isClassic) {\n if (isClassic) {\n var _a = data, admin = _a.admin, new_admin = _a.new_admin, contract = _a.contract;\n return new MsgUpdateContractAdmin(admin, new_admin, contract);\n }\n else {\n var _b = data, sender = _b.sender, new_admin = _b.new_admin, contract = _b.contract;\n return new MsgUpdateContractAdmin(sender, new_admin, contract);\n }\n };\n MsgUpdateContractAdmin.prototype.toData = function (isClassic) {\n var _a = this, admin = _a.admin, new_admin = _a.new_admin, contract = _a.contract;\n if (isClassic) {\n return {\n '@type': '/jmes.wasm.v1beta1.MsgUpdateContractAdmin',\n admin: admin,\n new_admin: new_admin,\n contract: contract,\n };\n }\n else {\n return {\n '@type': '/cosmwasm.wasm.v1.MsgUpdateAdmin',\n sender: admin,\n new_admin: new_admin,\n contract: contract,\n };\n }\n };\n return MsgUpdateContractAdmin;\n}(json_1.JSONSerializable));\nexports.MsgUpdateContractAdmin = MsgUpdateContractAdmin;\n//# sourceMappingURL=MsgUpdateContractAdmin.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./MsgStoreCode\"), exports);\n__exportStar(require(\"./MsgMigrateCode\"), exports);\n__exportStar(require(\"./MsgInstantiateContract\"), exports);\n__exportStar(require(\"./MsgExecuteContract\"), exports);\n__exportStar(require(\"./MsgMigrateContract\"), exports);\n__exportStar(require(\"./MsgUpdateContractAdmin\"), exports);\n__exportStar(require(\"./MsgClearContractAdmin\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ClearAdminProposal = void 0;\nvar json_1 = require(\"../../../util/json\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar proposal_1 = require(\"@terra-money/terra.proto/cosmwasm/wasm/v1/proposal\");\n/**\n * ClearAdminProposal gov proposal content type to clear the admin of a\n * contract.\n */\nvar ClearAdminProposal = /** @class */ (function (_super) {\n __extends(ClearAdminProposal, _super);\n /**\n * @param title a short summary\n * @param description a human readable text\n * @param contract the address of the smart contract\n */\n function ClearAdminProposal(title, description, contract) {\n var _this = _super.call(this) || this;\n _this.title = title;\n _this.description = description;\n _this.contract = contract;\n return _this;\n }\n ClearAdminProposal.fromAmino = function (data, isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = data.value, title = _a.title, description = _a.description, contract = _a.contract;\n return new ClearAdminProposal(title, description, contract);\n };\n ClearAdminProposal.prototype.toAmino = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = this, title = _a.title, description = _a.description, contract = _a.contract;\n return {\n type: 'wasm/ClearAdminProposal',\n value: {\n title: title,\n description: description,\n contract: contract,\n },\n };\n };\n ClearAdminProposal.fromProto = function (proto, isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return new ClearAdminProposal(proto.title, proto.description, proto.contract);\n };\n ClearAdminProposal.prototype.toProto = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = this, title = _a.title, description = _a.description, contract = _a.contract;\n return proposal_1.ClearAdminProposal.fromPartial({\n title: title,\n description: description,\n contract: contract,\n });\n };\n ClearAdminProposal.prototype.packAny = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return any_1.Any.fromPartial({\n typeUrl: '/cosmwasm.wasm.v1.ClearAdminProposal',\n value: proposal_1.ClearAdminProposal.encode(this.toProto(isClassic)).finish(),\n });\n };\n ClearAdminProposal.unpackAny = function (msgAny, isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return ClearAdminProposal.fromProto(proposal_1.ClearAdminProposal.decode(msgAny.value), isClassic);\n };\n ClearAdminProposal.fromData = function (data, isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = data, title = _a.title, description = _a.description, contract = _a.contract;\n return new ClearAdminProposal(title, description, contract);\n };\n ClearAdminProposal.prototype.toData = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = this, title = _a.title, description = _a.description, contract = _a.contract;\n return {\n '@type': '/cosmwasm.wasm.v1.ClearAdminProposal',\n title: title,\n description: description,\n contract: contract,\n };\n };\n return ClearAdminProposal;\n}(json_1.JSONSerializable));\nexports.ClearAdminProposal = ClearAdminProposal;\n//# sourceMappingURL=ClearAdminProposal.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ExecuteContractProposal = void 0;\nvar json_1 = require(\"../../../util/json\");\nvar Coins_1 = require(\"../../Coins\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar proposal_1 = require(\"@terra-money/terra.proto/cosmwasm/wasm/v1/proposal\");\n/**\n * ExecuteContractProposal gov proposal content type to call execute on a\n * contract.\n */\nvar ExecuteContractProposal = /** @class */ (function (_super) {\n __extends(ExecuteContractProposal, _super);\n /**\n * @param title a short summary\n * @param description a human readable text\n * @param run_as contract user\n * @param contract contract address\n * @param execute_msg HandleMsg to pass as arguments for contract invocation\n * @param coins coins to be sent to contract\n */\n function ExecuteContractProposal(title, description, run_as, contract, execute_msg, coins) {\n if (coins === void 0) { coins = {}; }\n var _this = _super.call(this) || this;\n _this.title = title;\n _this.description = description;\n _this.run_as = run_as;\n _this.contract = contract;\n _this.execute_msg = execute_msg;\n _this.coins = new Coins_1.Coins(coins);\n return _this;\n }\n ExecuteContractProposal.fromAmino = function (data, isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = data.value, title = _a.title, description = _a.description, run_as = _a.run_as, contract = _a.contract, msg = _a.msg, funds = _a.funds;\n return new ExecuteContractProposal(title, description, run_as, contract, msg, Coins_1.Coins.fromAmino(funds));\n };\n ExecuteContractProposal.prototype.toAmino = function (isClassic) {\n var _a = this, title = _a.title, description = _a.description, run_as = _a.run_as, contract = _a.contract, execute_msg = _a.execute_msg, coins = _a.coins;\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return {\n type: 'wasm/ExecuteContractProposal',\n value: {\n title: title,\n description: description,\n run_as: run_as,\n contract: contract,\n msg: (0, json_1.removeNull)(execute_msg),\n funds: coins.toAmino(),\n },\n };\n };\n ExecuteContractProposal.fromProto = function (proto, isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return new ExecuteContractProposal(proto.title, proto.description, proto.runAs, proto.contract, JSON.parse(Buffer.from(proto.msg).toString('utf-8')), Coins_1.Coins.fromProto(proto.funds));\n };\n ExecuteContractProposal.prototype.toProto = function (isClassic) {\n var _a = this, title = _a.title, description = _a.description, run_as = _a.run_as, contract = _a.contract, execute_msg = _a.execute_msg, coins = _a.coins;\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n else {\n return proposal_1.ExecuteContractProposal.fromPartial({\n title: title,\n description: description,\n funds: coins.toProto(),\n contract: contract,\n runAs: run_as,\n msg: Buffer.from(JSON.stringify((0, json_1.removeNull)(execute_msg)), 'utf-8'),\n });\n }\n };\n ExecuteContractProposal.prototype.packAny = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n else {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmwasm.wasm.v1.ExecuteContractProposal',\n value: proposal_1.ExecuteContractProposal.encode(this.toProto(isClassic)).finish(),\n });\n }\n };\n ExecuteContractProposal.unpackAny = function (msgAny, isClassic) {\n return ExecuteContractProposal.fromProto(proposal_1.ExecuteContractProposal.decode(msgAny.value), isClassic);\n };\n ExecuteContractProposal.fromData = function (data, isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = data, title = _a.title, description = _a.description, run_as = _a.run_as, contract = _a.contract, msg = _a.msg, funds = _a.funds;\n return new ExecuteContractProposal(title, description, run_as, contract, msg, Coins_1.Coins.fromData(funds));\n };\n ExecuteContractProposal.prototype.toData = function (isClassic) {\n var _a = this, title = _a.title, description = _a.description, run_as = _a.run_as, contract = _a.contract, execute_msg = _a.execute_msg, coins = _a.coins;\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n else {\n return {\n '@type': '/cosmwasm.wasm.v1.ExecuteContractProposal',\n title: title,\n description: description,\n run_as: run_as,\n contract: contract,\n msg: execute_msg,\n funds: coins.toData(),\n };\n }\n };\n return ExecuteContractProposal;\n}(json_1.JSONSerializable));\nexports.ExecuteContractProposal = ExecuteContractProposal;\n//# sourceMappingURL=ExecuteContractProposal.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InstantiateContractProposal = void 0;\nvar json_1 = require(\"../../../util/json\");\nvar Coins_1 = require(\"../../Coins\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar proposal_1 = require(\"@terra-money/terra.proto/cosmwasm/wasm/v1/proposal\");\nvar Long = __importStar(require(\"long\"));\n/**\n * InstantiateContractProposal gov proposal content type to instantiate a\n * contract.\n */\nvar InstantiateContractProposal = /** @class */ (function (_super) {\n __extends(InstantiateContractProposal, _super);\n /**\n * @param title a short summary\n * @param description a human readable text\n * @param run_as is a run_as address\n * @param admin is an optional contract admin address who can migrate the contract, put empty string to disable migration\n * @param code_id is the reference to the stored WASM code\n * @param init_msg json encoded message to be passed to the contract on instantiation\n * @param init_coins are transferred to the contract on execution\n * @param label label for the contract. v2 supported only\n */\n function InstantiateContractProposal(title, description, run_as, admin, code_id, init_msg, init_coins, label) {\n if (init_coins === void 0) { init_coins = {}; }\n var _this = _super.call(this) || this;\n _this.title = title;\n _this.description = description;\n _this.run_as = run_as;\n _this.admin = admin;\n _this.code_id = code_id;\n _this.init_msg = init_msg;\n _this.label = label;\n _this.init_coins = new Coins_1.Coins(init_coins);\n return _this;\n }\n InstantiateContractProposal.fromAmino = function (data, isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = data.value, title = _a.title, description = _a.description, run_as = _a.run_as, admin = _a.admin, code_id = _a.code_id, msg = _a.msg, funds = _a.funds, label = _a.label;\n return new InstantiateContractProposal(title, description, run_as, admin, Number.parseInt(code_id), msg, Coins_1.Coins.fromAmino(funds), label);\n };\n InstantiateContractProposal.prototype.toAmino = function (isClassic) {\n var _a = this, title = _a.title, description = _a.description, run_as = _a.run_as, admin = _a.admin, code_id = _a.code_id, init_msg = _a.init_msg, init_coins = _a.init_coins, label = _a.label;\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return {\n type: 'wasm/InstantiateContractProposal',\n value: {\n title: title,\n description: description,\n run_as: run_as,\n admin: admin,\n code_id: code_id.toFixed(),\n label: label,\n msg: (0, json_1.removeNull)(init_msg),\n funds: init_coins.toAmino(),\n },\n };\n };\n InstantiateContractProposal.fromProto = function (proto, isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return new InstantiateContractProposal(proto.title, proto.description, proto.runAs, proto.admin !== '' ? proto.admin : undefined, proto.codeId.toNumber(), JSON.parse(Buffer.from(proto.msg).toString('utf-8')), Coins_1.Coins.fromProto(proto.funds), proto.label);\n };\n InstantiateContractProposal.prototype.toProto = function (isClassic) {\n var _a = this, title = _a.title, description = _a.description, run_as = _a.run_as, admin = _a.admin, code_id = _a.code_id, init_msg = _a.init_msg, init_coins = _a.init_coins, label = _a.label;\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return proposal_1.InstantiateContractProposal.fromPartial({\n title: title,\n description: description,\n runAs: run_as,\n admin: admin,\n codeId: Long.fromNumber(code_id),\n funds: init_coins.toProto(),\n msg: Buffer.from(JSON.stringify(init_msg), 'utf-8'),\n label: label,\n });\n };\n InstantiateContractProposal.prototype.packAny = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return any_1.Any.fromPartial({\n typeUrl: '/cosmwasm.wasm.v1.InstantiateContractProposal',\n value: proposal_1.InstantiateContractProposal.encode(this.toProto(isClassic)).finish(),\n });\n };\n InstantiateContractProposal.unpackAny = function (msgAny, isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return InstantiateContractProposal.fromProto(proposal_1.InstantiateContractProposal.decode(msgAny.value), isClassic);\n };\n InstantiateContractProposal.fromData = function (data, isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = data, title = _a.title, description = _a.description, run_as = _a.run_as, admin = _a.admin, code_id = _a.code_id, label = _a.label, msg = _a.msg, funds = _a.funds;\n return new InstantiateContractProposal(title, description, run_as, admin !== '' ? admin : undefined, Number.parseInt(code_id), msg, Coins_1.Coins.fromData(funds), label);\n };\n InstantiateContractProposal.prototype.toData = function (isClassic) {\n var _a = this, title = _a.title, description = _a.description, run_as = _a.run_as, admin = _a.admin, code_id = _a.code_id, label = _a.label, init_msg = _a.init_msg, init_coins = _a.init_coins;\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return {\n '@type': '/cosmwasm.wasm.v1.InstantiateContractProposal',\n title: title,\n description: description,\n run_as: run_as,\n admin: admin || '',\n code_id: code_id.toFixed(),\n label: label,\n msg: (0, json_1.removeNull)(init_msg),\n funds: init_coins.toData(),\n };\n };\n return InstantiateContractProposal;\n}(json_1.JSONSerializable));\nexports.InstantiateContractProposal = InstantiateContractProposal;\n//# sourceMappingURL=InstantiateContractProposal.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MigrateContractProposal = void 0;\nvar json_1 = require(\"../../../util/json\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar proposal_1 = require(\"@terra-money/terra.proto/cosmwasm/wasm/v1/proposal\");\nvar Long = __importStar(require(\"long\"));\n/** MigrateContractProposal gov proposal content type to migrate a contract. */\nvar MigrateContractProposal = /** @class */ (function (_super) {\n __extends(MigrateContractProposal, _super);\n /**\n * @param title a short summary\n * @param description a human readable text\n * @param contract contract address to be migrated from\n * @param new_code_id reference to the new code on the blockchain\n * @param migrate_msg JSON message to configure the migrate state of the contract\n */\n function MigrateContractProposal(title, description, contract, new_code_id, migrate_msg // json object or string\n ) {\n var _this = _super.call(this) || this;\n _this.title = title;\n _this.description = description;\n _this.contract = contract;\n _this.new_code_id = new_code_id;\n _this.migrate_msg = migrate_msg;\n return _this;\n }\n MigrateContractProposal.fromAmino = function (data, isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = data.value, title = _a.title, description = _a.description, contract = _a.contract, code_id = _a.code_id, msg = _a.msg;\n return new MigrateContractProposal(title, description, contract, Number.parseInt(code_id), msg);\n };\n MigrateContractProposal.prototype.toAmino = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = this, title = _a.title, description = _a.description, contract = _a.contract, new_code_id = _a.new_code_id, migrate_msg = _a.migrate_msg;\n return {\n type: 'wasm/MigrateContractProposal',\n value: {\n title: title,\n description: description,\n contract: contract,\n code_id: new_code_id.toFixed(),\n msg: (0, json_1.removeNull)(migrate_msg),\n },\n };\n };\n MigrateContractProposal.fromProto = function (proto, isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return new MigrateContractProposal(proto.title, proto.description, proto.contract, proto.codeId.toNumber(), JSON.parse(Buffer.from(proto.msg).toString('utf-8')));\n };\n MigrateContractProposal.prototype.toProto = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = this, title = _a.title, description = _a.description, contract = _a.contract, new_code_id = _a.new_code_id, migrate_msg = _a.migrate_msg;\n return proposal_1.MigrateContractProposal.fromPartial({\n title: title,\n description: description,\n contract: contract,\n codeId: Long.fromNumber(new_code_id),\n msg: Buffer.from(JSON.stringify(migrate_msg), 'utf-8'),\n });\n };\n MigrateContractProposal.prototype.packAny = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return any_1.Any.fromPartial({\n typeUrl: '/cosmwasm.wasm.v1.MigrateContractProposal',\n value: proposal_1.MigrateContractProposal.encode(this.toProto(isClassic)).finish(),\n });\n };\n MigrateContractProposal.unpackAny = function (msgAny, isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return MigrateContractProposal.fromProto(proposal_1.MigrateContractProposal.decode(msgAny.value), isClassic);\n };\n MigrateContractProposal.fromData = function (data, isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = data, title = _a.title, description = _a.description, contract = _a.contract, code_id = _a.code_id, msg = _a.msg;\n return new MigrateContractProposal(title, description, contract, Number.parseInt(code_id), msg);\n };\n MigrateContractProposal.prototype.toData = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = this, title = _a.title, description = _a.description, contract = _a.contract, new_code_id = _a.new_code_id, migrate_msg = _a.migrate_msg;\n return {\n '@type': '/cosmwasm.wasm.v1.MigrateContractProposal',\n title: title,\n description: description,\n contract: contract,\n code_id: new_code_id.toFixed(),\n msg: (0, json_1.removeNull)(migrate_msg),\n };\n };\n return MigrateContractProposal;\n}(json_1.JSONSerializable));\nexports.MigrateContractProposal = MigrateContractProposal;\n//# sourceMappingURL=MigrateContractProposal.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PinCodesProposal = void 0;\nvar json_1 = require(\"../../../util/json\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar proposal_1 = require(\"@terra-money/terra.proto/cosmwasm/wasm/v1/proposal\");\nvar Long = __importStar(require(\"long\"));\n/**\n * PinCodesProposal gov proposal content type to pin a set of code ids in the\n * wasmvm cache.\n */\nvar PinCodesProposal = /** @class */ (function (_super) {\n __extends(PinCodesProposal, _super);\n /**\n * @param title a short summary\n * @param description a human readable text\n * @param code_ids the address of the smart code_ids\n */\n function PinCodesProposal(title, description, code_ids) {\n var _this = _super.call(this) || this;\n _this.title = title;\n _this.description = description;\n _this.code_ids = code_ids;\n return _this;\n }\n PinCodesProposal.fromAmino = function (data, isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = data.value, title = _a.title, description = _a.description, code_ids = _a.code_ids;\n return new PinCodesProposal(title, description, code_ids.map(function (cid) { return Number.parseInt(cid); }));\n };\n PinCodesProposal.prototype.toAmino = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = this, title = _a.title, description = _a.description, code_ids = _a.code_ids;\n return {\n type: 'wasm/PinCodesProposal',\n value: {\n title: title,\n description: description,\n code_ids: code_ids.map(function (cid) { return cid.toFixed(); }),\n },\n };\n };\n PinCodesProposal.fromProto = function (proto, isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return new PinCodesProposal(proto.title, proto.description, proto.codeIds.map(function (codeId) { return codeId.toNumber(); }));\n };\n PinCodesProposal.prototype.toProto = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = this, title = _a.title, description = _a.description, code_ids = _a.code_ids;\n return proposal_1.PinCodesProposal.fromPartial({\n title: title,\n description: description,\n codeIds: code_ids.map(function (cid) { return Long.fromNumber(cid); }),\n });\n };\n PinCodesProposal.prototype.packAny = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return any_1.Any.fromPartial({\n typeUrl: '/cosmwasm.wasm.v1.PinCodesProposal',\n value: proposal_1.PinCodesProposal.encode(this.toProto(isClassic)).finish(),\n });\n };\n PinCodesProposal.unpackAny = function (msgAny, isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return PinCodesProposal.fromProto(proposal_1.PinCodesProposal.decode(msgAny.value), isClassic);\n };\n PinCodesProposal.fromData = function (data, isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = data, title = _a.title, description = _a.description, code_ids = _a.code_ids;\n return new PinCodesProposal(title, description, code_ids.map(function (cid) { return Number.parseInt(cid); }));\n };\n PinCodesProposal.prototype.toData = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = this, title = _a.title, description = _a.description, code_ids = _a.code_ids;\n return {\n '@type': '/cosmwasm.wasm.v1.PinCodesProposal',\n title: title,\n description: description,\n code_ids: code_ids.map(function (cid) { return cid.toFixed(); }),\n };\n };\n return PinCodesProposal;\n}(json_1.JSONSerializable));\nexports.PinCodesProposal = PinCodesProposal;\n//# sourceMappingURL=PinCodesProposal.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StoreCodeProposal = void 0;\nvar json_1 = require(\"../../../util/json\");\nvar any_1 = require(\"@terra-money/legacy.proto/google/protobuf/any\");\nvar proposal_1 = require(\"@terra-money/terra.proto/cosmwasm/wasm/v1/proposal\");\nvar AccessConfig_1 = require(\"../AccessConfig\");\n/**\n * StoreCodeProposal gov proposal content type to submit WASM code to the system\n */\nvar StoreCodeProposal = /** @class */ (function (_super) {\n __extends(StoreCodeProposal, _super);\n /**\n * @param title a short summary\n * @param description a human readable text\n * @param run_as the address that is passed to the contract's environment as sender\n * @param wasm_byte_code can be raw or gzip compressed\n * @param instantiate_permission to apply on contract creation, optional\n */\n function StoreCodeProposal(title, description, run_as, wasm_byte_code, instantiate_permission) {\n var _this = _super.call(this) || this;\n _this.title = title;\n _this.description = description;\n _this.run_as = run_as;\n _this.wasm_byte_code = wasm_byte_code;\n _this.instantiate_permission = instantiate_permission;\n return _this;\n }\n StoreCodeProposal.fromAmino = function (data, isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = data.value, title = _a.title, description = _a.description, run_as = _a.run_as, wasm_byte_code = _a.wasm_byte_code, instantiate_permission = _a.instantiate_permission;\n return new StoreCodeProposal(title, description, run_as, wasm_byte_code, instantiate_permission\n ? AccessConfig_1.AccessConfig.fromAmino(instantiate_permission)\n : undefined);\n };\n StoreCodeProposal.prototype.toAmino = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = this, title = _a.title, description = _a.description, run_as = _a.run_as, wasm_byte_code = _a.wasm_byte_code, instantiate_permission = _a.instantiate_permission;\n return {\n type: 'wasm/StoreCodeProposal',\n value: {\n title: title,\n description: description,\n run_as: run_as,\n wasm_byte_code: wasm_byte_code,\n instantiate_permission: instantiate_permission === null || instantiate_permission === void 0 ? void 0 : instantiate_permission.toAmino(),\n },\n };\n };\n StoreCodeProposal.fromData = function (data, isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var title = data.title, description = data.description, run_as = data.run_as, wasm_byte_code = data.wasm_byte_code, instantiate_permission = data.instantiate_permission;\n return new StoreCodeProposal(title, description, run_as, wasm_byte_code, instantiate_permission\n ? AccessConfig_1.AccessConfig.fromData(instantiate_permission)\n : undefined);\n };\n StoreCodeProposal.prototype.toData = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = this, title = _a.title, description = _a.description, run_as = _a.run_as, wasm_byte_code = _a.wasm_byte_code, instantiate_permission = _a.instantiate_permission;\n return {\n '@type': '/cosmwasm.wasm.v1.StoreCodeProposal',\n title: title,\n description: description,\n run_as: run_as,\n wasm_byte_code: wasm_byte_code,\n instantiate_permission: instantiate_permission === null || instantiate_permission === void 0 ? void 0 : instantiate_permission.toData(),\n };\n };\n StoreCodeProposal.fromProto = function (proto, isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return new StoreCodeProposal(proto.title, proto.description, proto.runAs, Buffer.from(proto.wasmByteCode).toString('base64'), proto.instantiatePermission\n ? AccessConfig_1.AccessConfig.fromProto(proto.instantiatePermission)\n : undefined);\n };\n StoreCodeProposal.prototype.toProto = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = this, title = _a.title, description = _a.description, run_as = _a.run_as, wasm_byte_code = _a.wasm_byte_code, instantiate_permission = _a.instantiate_permission;\n return proposal_1.StoreCodeProposal.fromPartial({\n title: title,\n description: description,\n runAs: run_as,\n wasmByteCode: Buffer.from(wasm_byte_code, 'base64'),\n instantiatePermission: instantiate_permission === null || instantiate_permission === void 0 ? void 0 : instantiate_permission.toProto(),\n });\n };\n StoreCodeProposal.prototype.packAny = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return any_1.Any.fromPartial({\n typeUrl: '/cosmwasm.wasm.v1.StoreCodeProposal',\n value: proposal_1.StoreCodeProposal.encode(this.toProto(isClassic)).finish(),\n });\n };\n StoreCodeProposal.unpackAny = function (msgAny, isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return StoreCodeProposal.fromProto(proposal_1.StoreCodeProposal.decode(msgAny.value), isClassic);\n };\n return StoreCodeProposal;\n}(json_1.JSONSerializable));\nexports.StoreCodeProposal = StoreCodeProposal;\n//# sourceMappingURL=StoreCodeProposal.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SudoContractProposal = void 0;\nvar json_1 = require(\"../../../util/json\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar proposal_1 = require(\"@terra-money/terra.proto/cosmwasm/wasm/v1/proposal\");\nvar SudoContractProposal = /** @class */ (function (_super) {\n __extends(SudoContractProposal, _super);\n /**\n * @param title a short summary\n * @param description a human readable text\n * @param contract contract address to be migrated from\n * @param msg JSON message to configure the migrate state of the contract\n */\n function SudoContractProposal(title, description, contract, msg // json object or string\n ) {\n var _this = _super.call(this) || this;\n _this.title = title;\n _this.description = description;\n _this.contract = contract;\n _this.msg = msg;\n return _this;\n }\n SudoContractProposal.fromAmino = function (data, isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = data.value, title = _a.title, description = _a.description, contract = _a.contract, msg = _a.msg;\n return new SudoContractProposal(title, description, contract, msg);\n };\n SudoContractProposal.prototype.toAmino = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = this, title = _a.title, description = _a.description, contract = _a.contract, msg = _a.msg;\n return {\n type: 'wasm/SudoContractProposal',\n value: {\n title: title,\n description: description,\n contract: contract,\n msg: (0, json_1.removeNull)(msg),\n },\n };\n };\n SudoContractProposal.fromProto = function (proto, isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return new SudoContractProposal(proto.title, proto.description, proto.contract, JSON.parse(Buffer.from(proto.msg).toString('utf-8')));\n };\n SudoContractProposal.prototype.toProto = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = this, title = _a.title, description = _a.description, contract = _a.contract, msg = _a.msg;\n return proposal_1.SudoContractProposal.fromPartial({\n title: title,\n description: description,\n contract: contract,\n msg: Buffer.from(JSON.stringify(msg), 'utf-8'),\n });\n };\n SudoContractProposal.prototype.packAny = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return any_1.Any.fromPartial({\n typeUrl: '/cosmwasm.wasm.v1.SudoContractProposal',\n value: proposal_1.SudoContractProposal.encode(this.toProto(isClassic)).finish(),\n });\n };\n SudoContractProposal.unpackAny = function (msgAny, isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return SudoContractProposal.fromProto(proposal_1.SudoContractProposal.decode(msgAny.value), isClassic);\n };\n SudoContractProposal.fromData = function (data, isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = data, title = _a.title, description = _a.description, contract = _a.contract, msg = _a.msg;\n return new SudoContractProposal(title, description, contract, msg);\n };\n SudoContractProposal.prototype.toData = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = this, title = _a.title, description = _a.description, contract = _a.contract, msg = _a.msg;\n return {\n '@type': '/cosmwasm.wasm.v1.SudoContractProposal',\n title: title,\n description: description,\n contract: contract,\n msg: (0, json_1.removeNull)(msg),\n };\n };\n return SudoContractProposal;\n}(json_1.JSONSerializable));\nexports.SudoContractProposal = SudoContractProposal;\n//# sourceMappingURL=SudoContractProposal.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UnpinCodesProposal = void 0;\nvar json_1 = require(\"../../../util/json\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar proposal_1 = require(\"@terra-money/terra.proto/cosmwasm/wasm/v1/proposal\");\nvar Long = __importStar(require(\"long\"));\n/**\n * UnpinCodesProposal gov proposal content type to unpin a set of code ids in\n * the wasmvm cache.\n */\nvar UnpinCodesProposal = /** @class */ (function (_super) {\n __extends(UnpinCodesProposal, _super);\n /**\n * @param title a short summary\n * @param description a human readable text\n * @param code_ids the address of the smart code_ids\n */\n function UnpinCodesProposal(title, description, code_ids) {\n var _this = _super.call(this) || this;\n _this.title = title;\n _this.description = description;\n _this.code_ids = code_ids;\n return _this;\n }\n UnpinCodesProposal.fromAmino = function (data, isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = data.value, title = _a.title, description = _a.description, code_ids = _a.code_ids;\n return new UnpinCodesProposal(title, description, code_ids.map(function (cid) { return Number.parseInt(cid); }));\n };\n UnpinCodesProposal.prototype.toAmino = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = this, title = _a.title, description = _a.description, code_ids = _a.code_ids;\n return {\n type: 'wasm/UnpinCodesProposal',\n value: {\n title: title,\n description: description,\n code_ids: code_ids.map(function (cid) { return cid.toFixed(); }),\n },\n };\n };\n UnpinCodesProposal.fromProto = function (proto, isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return new UnpinCodesProposal(proto.title, proto.description, proto.codeIds.map(function (codeId) { return codeId.toNumber(); }));\n };\n UnpinCodesProposal.prototype.toProto = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = this, title = _a.title, description = _a.description, code_ids = _a.code_ids;\n return proposal_1.UnpinCodesProposal.fromPartial({\n title: title,\n description: description,\n codeIds: code_ids.map(function (cid) { return Long.fromNumber(cid); }),\n });\n };\n UnpinCodesProposal.prototype.packAny = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return any_1.Any.fromPartial({\n typeUrl: '/cosmwasm.wasm.v1.UnpinCodesProposal',\n value: proposal_1.UnpinCodesProposal.encode(this.toProto(isClassic)).finish(),\n });\n };\n UnpinCodesProposal.unpackAny = function (msgAny, isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return UnpinCodesProposal.fromProto(proposal_1.UnpinCodesProposal.decode(msgAny.value), isClassic);\n };\n UnpinCodesProposal.fromData = function (data, isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = data, title = _a.title, description = _a.description, code_ids = _a.code_ids;\n return new UnpinCodesProposal(title, description, code_ids.map(function (cid) { return Number.parseInt(cid); }));\n };\n UnpinCodesProposal.prototype.toData = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = this, title = _a.title, description = _a.description, code_ids = _a.code_ids;\n return {\n '@type': '/cosmwasm.wasm.v1.UnpinCodesProposal',\n title: title,\n description: description,\n code_ids: code_ids.map(function (cid) { return cid.toFixed(); }),\n };\n };\n return UnpinCodesProposal;\n}(json_1.JSONSerializable));\nexports.UnpinCodesProposal = UnpinCodesProposal;\n//# sourceMappingURL=UnpinCodesProposal.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UpdateAdminProposal = void 0;\nvar json_1 = require(\"../../../util/json\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar proposal_1 = require(\"@terra-money/terra.proto/cosmwasm/wasm/v1/proposal\");\n/** UpdateAdminProposal gov proposal content type to set an admin for a contract. */\nvar UpdateAdminProposal = /** @class */ (function (_super) {\n __extends(UpdateAdminProposal, _super);\n /**\n * @param title a short summary\n * @param description a human readable text\n * @param contract the address of the smart contract\n * @param new_admin address to be set\n */\n function UpdateAdminProposal(title, description, contract, new_admin) {\n var _this = _super.call(this) || this;\n _this.title = title;\n _this.description = description;\n _this.contract = contract;\n _this.new_admin = new_admin;\n return _this;\n }\n UpdateAdminProposal.fromAmino = function (data, isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = data.value, title = _a.title, description = _a.description, contract = _a.contract, new_admin = _a.new_admin;\n return new UpdateAdminProposal(title, description, contract, new_admin);\n };\n UpdateAdminProposal.prototype.toAmino = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = this, title = _a.title, description = _a.description, contract = _a.contract, new_admin = _a.new_admin;\n return {\n type: 'wasm/UpdateAdminProposal',\n value: {\n title: title,\n description: description,\n contract: contract,\n new_admin: new_admin,\n },\n };\n };\n UpdateAdminProposal.fromProto = function (proto, isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return new UpdateAdminProposal(proto.title, proto.description, proto.contract, proto.newAdmin);\n };\n UpdateAdminProposal.prototype.toProto = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = this, title = _a.title, description = _a.description, contract = _a.contract, new_admin = _a.new_admin;\n return proposal_1.UpdateAdminProposal.fromPartial({\n title: title,\n description: description,\n contract: contract,\n newAdmin: new_admin,\n });\n };\n UpdateAdminProposal.prototype.packAny = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return any_1.Any.fromPartial({\n typeUrl: '/cosmwasm.wasm.v1.UpdateAdminProposal',\n value: proposal_1.UpdateAdminProposal.encode(this.toProto(isClassic)).finish(),\n });\n };\n UpdateAdminProposal.unpackAny = function (msgAny, isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return UpdateAdminProposal.fromProto(proposal_1.UpdateAdminProposal.decode(msgAny.value), isClassic);\n };\n UpdateAdminProposal.fromData = function (data, isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = data, title = _a.title, description = _a.description, contract = _a.contract, new_admin = _a.new_admin;\n return new UpdateAdminProposal(title, description, contract, new_admin);\n };\n UpdateAdminProposal.prototype.toData = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = this, title = _a.title, description = _a.description, contract = _a.contract, new_admin = _a.new_admin;\n return {\n '@type': '/cosmwasm.wasm.v1.UpdateAdminProposal',\n title: title,\n description: description,\n contract: contract,\n new_admin: new_admin,\n };\n };\n return UpdateAdminProposal;\n}(json_1.JSONSerializable));\nexports.UpdateAdminProposal = UpdateAdminProposal;\n//# sourceMappingURL=UpdateAdminProposal.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UpdateInstantiateConfigProposal = void 0;\nvar json_1 = require(\"../../../util/json\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar proposal_1 = require(\"@terra-money/terra.proto/cosmwasm/wasm/v1/proposal\");\nvar AccessConfigUpdate_1 = require(\"../AccessConfigUpdate\");\n/**\n * UpdateInstantiateConfigProposal gov proposal content type to pin a set of code ids in the\n * wasmvm cache.\n */\nvar UpdateInstantiateConfigProposal = /** @class */ (function (_super) {\n __extends(UpdateInstantiateConfigProposal, _super);\n /**\n * @param title a short summary\n * @param description a human readable text\n * @param access_config_updates the address of the smart access_config_updates\n */\n function UpdateInstantiateConfigProposal(title, description, access_config_updates) {\n var _this = _super.call(this) || this;\n _this.title = title;\n _this.description = description;\n _this.access_config_updates = access_config_updates;\n return _this;\n }\n UpdateInstantiateConfigProposal.fromAmino = function (data, isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = data.value, title = _a.title, description = _a.description, access_config_updates = _a.access_config_updates;\n return new UpdateInstantiateConfigProposal(title, description, access_config_updates.map(function (acu) { return AccessConfigUpdate_1.AccessConfigUpdate.fromAmino(acu); }));\n };\n UpdateInstantiateConfigProposal.prototype.toAmino = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = this, title = _a.title, description = _a.description, access_config_updates = _a.access_config_updates;\n return {\n type: 'wasm/UpdateInstantiateConfigProposal',\n value: {\n title: title,\n description: description,\n access_config_updates: access_config_updates.map(function (acu) { return acu.toAmino(); }),\n },\n };\n };\n UpdateInstantiateConfigProposal.fromProto = function (proto, isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return new UpdateInstantiateConfigProposal(proto.title, proto.description, proto.accessConfigUpdates.map(function (acu) { return AccessConfigUpdate_1.AccessConfigUpdate.fromProto(acu); }));\n };\n UpdateInstantiateConfigProposal.prototype.toProto = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = this, title = _a.title, description = _a.description, access_config_updates = _a.access_config_updates;\n return proposal_1.UpdateInstantiateConfigProposal.fromPartial({\n title: title,\n description: description,\n accessConfigUpdates: access_config_updates.map(function (acu) { return acu.toProto(); }),\n });\n };\n UpdateInstantiateConfigProposal.prototype.packAny = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return any_1.Any.fromPartial({\n typeUrl: '/cosmwasm.wasm.v1.UpdateInstantiateConfigProposal',\n value: proposal_1.UpdateInstantiateConfigProposal.encode(this.toProto(isClassic)).finish(),\n });\n };\n UpdateInstantiateConfigProposal.unpackAny = function (msgAny, isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n return UpdateInstantiateConfigProposal.fromProto(proposal_1.UpdateInstantiateConfigProposal.decode(msgAny.value), isClassic);\n };\n UpdateInstantiateConfigProposal.fromData = function (data, isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = data, title = _a.title, description = _a.description, access_config_updates = _a.access_config_updates;\n return new UpdateInstantiateConfigProposal(title, description, access_config_updates.map(function (acu) { return AccessConfigUpdate_1.AccessConfigUpdate.fromData(acu); }));\n };\n UpdateInstantiateConfigProposal.prototype.toData = function (isClassic) {\n if (isClassic) {\n throw new Error('Not supported for the network');\n }\n var _a = this, title = _a.title, description = _a.description, access_config_updates = _a.access_config_updates;\n return {\n '@type': '/cosmwasm.wasm.v1.UpdateInstantiateConfigProposal',\n title: title,\n description: description,\n access_config_updates: access_config_updates.map(function (acu) { return acu.toData(); }),\n };\n };\n return UpdateInstantiateConfigProposal;\n}(json_1.JSONSerializable));\nexports.UpdateInstantiateConfigProposal = UpdateInstantiateConfigProposal;\n//# sourceMappingURL=UpdateInstantiateConfigProposal.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ClearAdminProposal\"), exports);\n__exportStar(require(\"./ExecuteContractProposal\"), exports);\n__exportStar(require(\"./InstantiateContractProposal\"), exports);\n__exportStar(require(\"./MigrateContractProposal\"), exports);\n__exportStar(require(\"./PinCodesProposal\"), exports);\n__exportStar(require(\"./StoreCodeProposal\"), exports);\n__exportStar(require(\"./SudoContractProposal\"), exports);\n__exportStar(require(\"./UnpinCodesProposal\"), exports);\n__exportStar(require(\"./UpdateAdminProposal\"), exports);\n__exportStar(require(\"./UpdateInstantiateConfigProposal\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertAccessTypeFromJSON = void 0;\nvar types_1 = require(\"@terra-money/terra.proto/cosmwasm/wasm/v1/types\");\n// core v2 returns human-friendly string like 'Everybody' by wasm/type/params.go\n// but accessTypeFromJSON requires \"ACCESS_TYPE_EVERYBODY\"\n// this function is a wrapper to get AccessType from JSON\nfunction convertAccessTypeFromJSON(accessType) {\n var converted = accessType;\n switch (accessType) {\n case 'Everybody':\n converted = 'ACCESS_TYPE_EVERYBODY';\n break;\n case 'Nobody':\n converted = 'ACCESS_TYPE_NOBODY';\n break;\n case 'OnlyAddress':\n converted = 'ACCESS_TYPE_ONLY_ADDRESS';\n break;\n case 'Unspecified':\n converted = 'ACCESS_TYPE_UNSPECIFIED';\n break;\n }\n return (0, types_1.accessTypeFromJSON)(converted);\n}\nexports.convertAccessTypeFromJSON = convertAccessTypeFromJSON;\n//# sourceMappingURL=util.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Key = void 0;\nvar bech32_1 = require(\"bech32\");\nvar core_1 = require(\"../core\");\nvar SignatureV2_1 = require(\"../core/SignatureV2\");\nvar signing_1 = require(\"@terra-money/terra.proto/cosmos/tx/signing/v1beta1/signing\");\n/**\n * Abstract key interface that provides transaction signing features and Bech32 address\n * and public key derivation from a public key. This allows you to create custom key\n * solutions, such as for various hardware wallets, by implementing signing and calling\n * `super` with the raw public key from within your subclass. See [[MnemonicKey]] for\n * an implementation of a basic mnemonic-based key.\n */\nvar Key = /** @class */ (function () {\n /**\n * Called to derive the relevant account and validator addresses and public keys from\n * the raw compressed public key in bytes.\n *\n * @param publicKey raw compressed bytes public key\n */\n function Key(publicKey) {\n this.publicKey = publicKey;\n }\n Object.defineProperty(Key.prototype, \"accAddress\", {\n /**\n * Jmes account address. `jmes-` prefixed.\n */\n get: function () {\n if (!this.publicKey) {\n throw new Error('Could not compute accAddress: missing rawAddress');\n }\n return this.publicKey.address();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Key.prototype, \"valAddress\", {\n /**\n * Terra validator address. `jmesvaloper-` prefixed.\n */\n get: function () {\n if (!this.publicKey) {\n throw new Error('Could not compute valAddress: missing rawAddress');\n }\n return bech32_1.bech32.encode('jmesvaloper', bech32_1.bech32.toWords(this.publicKey.rawAddress()));\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Signs a [[StdSignMsg]] with the method supplied by the child class.\n * only used Amino sign\n *\n * @param tx sign-message of the transaction to sign\n * @param isClassic target network is isClassic or not?\n */\n Key.prototype.createSignatureAmino = function (tx, isClassic) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, _b, _c, _d, _e, _f, _g;\n return __generator(this, function (_h) {\n switch (_h.label) {\n case 0:\n if (!this.publicKey) {\n throw new Error('Signature could not be created: Key instance missing publicKey');\n }\n _a = SignatureV2_1.SignatureV2.bind;\n _b = [void 0, this.publicKey];\n _d = (_c = SignatureV2_1.SignatureV2.Descriptor).bind;\n _f = (_e = SignatureV2_1.SignatureV2.Descriptor.Single).bind;\n _g = [void 0, signing_1.SignMode.SIGN_MODE_LEGACY_AMINO_JSON];\n return [4 /*yield*/, this.sign(Buffer.from(tx.toAminoJSON(isClassic)))];\n case 1: return [2 /*return*/, new (_a.apply(SignatureV2_1.SignatureV2, _b.concat([new (_d.apply(_c, [void 0, new (_f.apply(_e, _g.concat([(_h.sent()).toString('base64')])))()]))(),\n tx.sequence])))()];\n }\n });\n });\n };\n /**\n * Signs a [[SignDoc]] with the method supplied by the child class.\n *\n * @param tx sign-message of the transaction to sign\n * @param isClassic target network is isClassic or not?\n */\n Key.prototype.createSignature = function (signDoc, isClassic) {\n return __awaiter(this, void 0, void 0, function () {\n var signerInfos, sigBytes;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.publicKey) {\n throw new Error('Signature could not be created: Key instance missing publicKey');\n }\n signerInfos = signDoc.auth_info.signer_infos;\n signDoc.auth_info.signer_infos = [\n new core_1.SignerInfo(this.publicKey, signDoc.sequence, new core_1.ModeInfo(new core_1.ModeInfo.Single(signing_1.SignMode.SIGN_MODE_DIRECT))),\n ];\n return [4 /*yield*/, this.sign(Buffer.from(signDoc.toBytes(isClassic)))];\n case 1:\n sigBytes = (_a.sent()).toString('base64');\n console.log({ sigBytes: sigBytes });\n // restore signDoc to origin\n signDoc.auth_info.signer_infos = signerInfos;\n return [2 /*return*/, new SignatureV2_1.SignatureV2(this.publicKey, new SignatureV2_1.SignatureV2.Descriptor(new SignatureV2_1.SignatureV2.Descriptor.Single(signing_1.SignMode.SIGN_MODE_DIRECT, sigBytes)), signDoc.sequence)];\n }\n });\n });\n };\n /**\n * Signs a [[Tx]] and adds the signature to a generated StdTx that is ready to be broadcasted.\n * @param tx\n */\n Key.prototype.signTx = function (tx, options, isClassic) {\n return __awaiter(this, void 0, void 0, function () {\n var copyTx, sign_doc, signature, sigData;\n var _a, _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n copyTx = new core_1.Tx(tx.body, new core_1.AuthInfo([], tx.auth_info.fee), []);\n sign_doc = new core_1.SignDoc(options.chainID, options.accountNumber, options.sequence, copyTx.auth_info, copyTx.body);\n if (!(options.signMode === signing_1.SignMode.SIGN_MODE_LEGACY_AMINO_JSON)) return [3 /*break*/, 2];\n return [4 /*yield*/, this.createSignatureAmino(sign_doc, isClassic)];\n case 1:\n signature = _c.sent();\n return [3 /*break*/, 4];\n case 2: return [4 /*yield*/, this.createSignature(sign_doc, isClassic)];\n case 3:\n signature = _c.sent();\n _c.label = 4;\n case 4:\n sigData = signature.data.single;\n (_a = copyTx.signatures).push.apply(_a, __spreadArray(__spreadArray([], tx.signatures, false), [sigData.signature], false));\n (_b = copyTx.auth_info.signer_infos).push.apply(_b, __spreadArray(__spreadArray([], tx.auth_info.signer_infos, false), [new core_1.SignerInfo(signature.public_key, signature.sequence, new core_1.ModeInfo(new core_1.ModeInfo.Single(sigData.mode)))], false));\n return [2 /*return*/, copyTx];\n }\n });\n });\n };\n return Key;\n}());\nexports.Key = Key;\n//# sourceMappingURL=Key.js.map","\"use strict\";\n// Adapted from https://github.com/terra-money/terra-js/blob/master/src/utils/keyUtils.ts\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MnemonicKey = exports.JMES_COIN_TYPE = void 0;\nvar bip32 = __importStar(require(\"@scure/bip32\"));\nvar bip39 = __importStar(require(\"bip39\"));\nvar RawKey_1 = require(\"./RawKey\");\nexports.JMES_COIN_TYPE = 6280;\nvar DEFAULT_OPTIONS = {\n account: 0,\n index: 0,\n coinType: exports.JMES_COIN_TYPE,\n};\n/**\n * Implements a BIP39 mnemonic wallet with standard key derivation from a word list. Note\n * that this implementation exposes the private key in memory, so it is not advised to use\n * for applications requiring high security.\n */\nvar MnemonicKey = /** @class */ (function (_super) {\n __extends(MnemonicKey, _super);\n /**\n * Creates a new signing key from a mnemonic phrase. If no mnemonic is provided, one\n * will be automatically generated.\n *\n * ### Providing a mnemonic\n *\n * ```ts\n * import { MnemonicKey } from 'terra.js';\n *\n * const mk = new MnemonicKey({ mnemonic: '...' });\n * console.log(mk.accAddress);\n * ```\n *\n * ### Generating a random mnemonic\n *\n * ```ts\n * const mk2 = new MnemonicKey();\n * console.log(mk2.mnemonic);\n * ```\n *\n * @param options\n */\n function MnemonicKey(options) {\n if (options === void 0) { options = {}; }\n var _this = this;\n var _a = __assign(__assign({}, DEFAULT_OPTIONS), options), account = _a.account, index = _a.index, coinType = _a.coinType;\n var mnemonic = options.mnemonic;\n if (mnemonic === undefined) {\n mnemonic = bip39.generateMnemonic(256);\n }\n var seed = bip39.mnemonicToSeedSync(mnemonic);\n var masterKey = bip32.HDKey.fromMasterSeed(seed);\n var hdPathLuna = \"m/44'/\".concat(coinType, \"'/\").concat(account, \"'/0/\").concat(index);\n // console.log({hdPathLuna});\n var terraHD = masterKey.derive(hdPathLuna);\n var privateKey = terraHD.privateKey;\n if (!privateKey) {\n throw new Error('Failed to derive key pair');\n }\n _this = _super.call(this, Buffer.from(privateKey)) || this;\n // console.log({MnemonicKeyPrivateKey: Buffer.from(privateKey)})\n _this.mnemonic = mnemonic;\n return _this;\n }\n return MnemonicKey;\n}(RawKey_1.RawKey));\nexports.MnemonicKey = MnemonicKey;\n//# sourceMappingURL=MnemonicKey.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RawKey = void 0;\nvar jscrypto_1 = require(\"jscrypto\");\nvar Key_1 = require(\"./Key\");\nvar PublicKey_1 = require(\"../core/PublicKey\");\nvar elliptic = __importStar(require(\"elliptic\"));\n/**\n * An implementation of the Key interfaces that uses a raw private key.\n */\nvar RawKey = /** @class */ (function (_super) {\n __extends(RawKey, _super);\n function RawKey(privateKey) {\n var _this = this;\n var ec = new elliptic.ec('secp256k1');\n var key = ec.keyFromPrivate(privateKey);\n var publicKey = key.getPublic(true, 'array');\n _this = _super.call(this, new PublicKey_1.SimplePublicKey(Buffer.from(publicKey).toString('base64'))) || this;\n _this.privateKey = privateKey;\n return _this;\n }\n RawKey.prototype.ecdsaSign = function (payload) {\n console.log({ payload: payload });\n var ec = new elliptic.ec('secp256k1');\n var key = ec.keyFromPrivate(this.privateKey);\n var hash = Uint8Array.from(Buffer.from(jscrypto_1.SHA256.hash(new jscrypto_1.Word32Array(payload)).toString(), 'hex'));\n // @ts-ignore\n var sign = key.sign(hash, 'hex', { canonical: true });\n // @ts-ignore\n var r = sign.r.toArrayLike(Uint8Array, 'be', 32);\n // @ts-ignore\n var s = sign.s.toArrayLike(Uint8Array, 'be', 32);\n return {\n //@ts-ignore\n signature: Uint8Array.from(Buffer.concat([r, s])),\n //@ts-ignore\n recid: sign.recoveryParam\n };\n };\n RawKey.prototype.sign = function (payload) {\n return __awaiter(this, void 0, void 0, function () {\n var signature;\n return __generator(this, function (_a) {\n signature = this.ecdsaSign(payload).signature;\n return [2 /*return*/, Buffer.from(signature)];\n });\n });\n };\n return RawKey;\n}(Key_1.Key));\nexports.RawKey = RawKey;\n//# sourceMappingURL=RawKey.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./Key\"), exports);\n__exportStar(require(\"./MnemonicKey\"), exports);\n__exportStar(require(\"./RawKey\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.APIRequester = exports.OrderBy = void 0;\nvar axios_1 = __importDefault(require(\"axios\"));\nvar service_1 = require(\"@terra-money/legacy.proto/cosmos/tx/v1beta1/service\");\nexports.OrderBy = service_1.OrderBy;\nvar APIRequester = /** @class */ (function () {\n function APIRequester(baseURL) {\n this.baseURL = baseURL;\n this.axios = axios_1.default.create({\n headers: {\n Accept: 'application/json',\n },\n timeout: 30000,\n });\n }\n APIRequester.prototype.computeEndpoint = function (endpoint) {\n var url = new URL(this.baseURL);\n url.pathname === '/'\n ? (url.pathname = endpoint)\n : (url.pathname += endpoint);\n return url.toString();\n };\n APIRequester.prototype.getRaw = function (endpoint, params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n var url;\n return __generator(this, function (_a) {\n url = this.computeEndpoint(endpoint);\n return [2 /*return*/, this.axios.get(url, { params: params }).then(function (d) { return d.data; })];\n });\n });\n };\n APIRequester.prototype.get = function (endpoint, params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n var url;\n return __generator(this, function (_a) {\n url = this.computeEndpoint(endpoint);\n return [2 /*return*/, this.axios.get(url, { params: params }).then(function (d) { return d.data; })];\n });\n });\n };\n APIRequester.prototype.postRaw = function (endpoint, data) {\n return __awaiter(this, void 0, void 0, function () {\n var url;\n return __generator(this, function (_a) {\n url = this.computeEndpoint(endpoint);\n return [2 /*return*/, this.axios.post(url, data).then(function (d) { return d.data; })];\n });\n });\n };\n APIRequester.prototype.post = function (endpoint, data) {\n return __awaiter(this, void 0, void 0, function () {\n var url;\n return __generator(this, function (_a) {\n url = this.computeEndpoint(endpoint);\n return [2 /*return*/, this.axios.post(url, data).then(function (d) { return d.data; })];\n });\n });\n };\n return APIRequester;\n}());\nexports.APIRequester = APIRequester;\n//# sourceMappingURL=APIRequester.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LCDClient = void 0;\nvar APIRequester_1 = require(\"./APIRequester\");\nvar api_1 = require(\"./api\");\nvar LCDUtils_1 = require(\"./LCDUtils\");\nvar Wallet_1 = require(\"./Wallet\");\nvar DEFAULT_LCD_OPTIONS = {\n gasAdjustment: 1.75,\n};\n// isClassic network: true\n// forked network : false\nvar DEFAULT_NETWORK_TYPE_BY_CHAIN_ID = {\n default: false,\n 'jmes-888': true\n};\nvar DEFAULT_GAS_PRICES_BY_CHAIN_ID = {\n default: {\n ujmes: 0.15,\n },\n 'jmes-888': {\n ujmes: 0.15,\n },\n};\n/**\n * An object repesenting a connection to a terrad node running the Lite Client Daemon (LCD)\n * server, a REST server providing access to a node.\n *\n * ### Example\n *\n * ```ts\n * import { LCDClient, Coin } from 'terra.js';\n *\n * const terra = new LCDClient({\n * URL: \"https://lcd.terra.dev\",\n * chainID: \"columbus-3\"\n * });\n *\n * terra.market.swapRate(new Coin('ujmes', 10000), 'ukrw').then(c => console.log(c.toString()));\n * ```\n */\nvar LCDClient = /** @class */ (function () {\n /**\n * Creates a new LCD client with the specified configuration.\n *\n * @param config LCD configuration\n */\n function LCDClient(config) {\n this.config = __assign(__assign(__assign({}, DEFAULT_LCD_OPTIONS), { gasPrices: DEFAULT_GAS_PRICES_BY_CHAIN_ID[config.chainID] ||\n DEFAULT_GAS_PRICES_BY_CHAIN_ID['default'], isClassic: DEFAULT_NETWORK_TYPE_BY_CHAIN_ID[config.chainID] ||\n DEFAULT_NETWORK_TYPE_BY_CHAIN_ID['default'] }), config);\n this.apiRequester = new APIRequester_1.APIRequester(this.config.URL);\n // instantiate APIs\n this.auth = new api_1.AuthAPI(this);\n this.bank = new api_1.BankAPI(this);\n this.distribution = new api_1.DistributionAPI(this);\n this.feeGrant = new api_1.FeeGrantAPI(this);\n this.gov = new api_1.GovAPI(this);\n this.market = new api_1.MarketAPI(this);\n this.mint = new api_1.MintAPI(this);\n this.authz = new api_1.AuthzAPI(this);\n this.oracle = new api_1.OracleAPI(this);\n this.slashing = new api_1.SlashingAPI(this);\n this.staking = new api_1.StakingAPI(this);\n this.tendermint = new api_1.TendermintAPI(this);\n this.treasury = new api_1.TreasuryAPI(this);\n this.wasm = new api_1.WasmAPI(this);\n this.ibc = new api_1.IbcAPI(this);\n this.ibcTransfer = new api_1.IbcTransferAPI(this);\n this.tx = new api_1.TxAPI(this);\n this.utils = new LCDUtils_1.LCDUtils(this);\n }\n /** Creates a new wallet with the Key. */\n LCDClient.prototype.wallet = function (key) {\n return new Wallet_1.Wallet(this, key);\n };\n return LCDClient;\n}());\nexports.LCDClient = LCDClient;\n//# sourceMappingURL=LCDClient.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LCDUtils = void 0;\nvar Coin_1 = require(\"../core/Coin\");\nvar numeric_1 = require(\"../core/numeric\");\nvar LCDUtils = /** @class */ (function () {\n function LCDUtils(lcd) {\n this.lcd = lcd;\n }\n /**\n * Calculates the tax that would be applied for the Coin if sent.\n * Tax = min(taxCap, taxRate * amount)\n * @param coin\n */\n LCDUtils.prototype.calculateTax = function (coin) {\n return __awaiter(this, void 0, void 0, function () {\n var rate, cap;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.lcd.treasury.taxRate()];\n case 1:\n rate = _a.sent();\n return [4 /*yield*/, this.lcd.treasury.taxCap(coin.denom)];\n case 2:\n cap = _a.sent();\n return [2 /*return*/, new Coin_1.Coin(coin.denom, numeric_1.Int.ceil(numeric_1.Dec.min(coin.amount.mul(rate), cap.amount)))];\n }\n });\n });\n };\n /**\n * Gets current validators and merges their voting power from the validator set query.\n */\n LCDUtils.prototype.validatorsWithVotingPower = function () {\n return __awaiter(this, void 0, void 0, function () {\n var validatorSet, validatorSetByPubKey, validators, next_key, validatorsRes, res, _i, validators_1, v, delegateInfo;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.lcd.tendermint.validatorSet()];\n case 1:\n validatorSet = (_a.sent())[0];\n validatorSetByPubKey = validatorSet.reduce(function (m, o) {\n m[o.pub_key.key] = o;\n return m;\n }, {});\n validators = [];\n _a.label = 2;\n case 2: return [4 /*yield*/, this.lcd.staking.validators({\n 'pagination.key': next_key,\n })];\n case 3:\n validatorsRes = _a.sent();\n validators.push.apply(validators, validatorsRes[0]);\n if (!validatorsRes[1].next_key)\n return [3 /*break*/, 5];\n next_key = validatorsRes[1].next_key;\n _a.label = 4;\n case 4: return [3 /*break*/, 2];\n case 5:\n res = {};\n for (_i = 0, validators_1 = validators; _i < validators_1.length; _i++) {\n v = validators_1[_i];\n delegateInfo = validatorSetByPubKey[v.consensus_pubkey.toData().key];\n if (delegateInfo === undefined)\n continue;\n res[v.operator_address] = {\n validatorInfo: v,\n votingPower: Number.parseInt(delegateInfo.voting_power),\n proposerPriority: Number.parseInt(delegateInfo.proposer_priority),\n };\n }\n return [2 /*return*/, res];\n }\n });\n });\n };\n return LCDUtils;\n}());\nexports.LCDUtils = LCDUtils;\n//# sourceMappingURL=LCDUtils.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Wallet = void 0;\nvar signing_1 = require(\"@terra-money/legacy.proto/cosmos/tx/signing/v1beta1/signing\");\nvar signing_2 = require(\"@terra-money/terra.proto/cosmos/tx/signing/v1beta1/signing\");\nvar Wallet = /** @class */ (function () {\n function Wallet(lcd, key) {\n this.lcd = lcd;\n this.key = key;\n }\n Wallet.prototype.accountNumberAndSequence = function () {\n return this.lcd.auth.accountInfo(this.key.accAddress).then(function (d) {\n return {\n account_number: d.getAccountNumber(),\n sequence: d.getSequenceNumber(),\n };\n });\n };\n Wallet.prototype.accountNumber = function () {\n return this.lcd.auth.accountInfo(this.key.accAddress).then(function (d) {\n return d.getAccountNumber();\n });\n };\n Wallet.prototype.sequence = function () {\n return this.lcd.auth.accountInfo(this.key.accAddress).then(function (d) {\n return d.getSequenceNumber();\n });\n };\n Wallet.prototype.createTx = function (options) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.lcd.tx.create([\n {\n address: this.key.accAddress,\n sequenceNumber: options.sequence,\n publicKey: this.key.publicKey,\n },\n ], options)];\n });\n });\n };\n Wallet.prototype.createAndSignTx = function (options) {\n return __awaiter(this, void 0, void 0, function () {\n var accountNumber, sequence, res, tx;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n accountNumber = options.accountNumber;\n sequence = options.sequence;\n if (!(accountNumber === undefined || sequence === undefined)) return [3 /*break*/, 2];\n return [4 /*yield*/, this.accountNumberAndSequence()];\n case 1:\n res = _a.sent();\n if (accountNumber === undefined) {\n accountNumber = res.account_number;\n }\n if (sequence === undefined) {\n sequence = res.sequence;\n }\n _a.label = 2;\n case 2:\n options.sequence = sequence;\n options.accountNumber = accountNumber;\n console.log(this.lcd.config.chainID);\n return [4 /*yield*/, this.createTx(options)];\n case 3:\n tx = _a.sent();\n return [2 /*return*/, this.key.signTx(tx, {\n accountNumber: accountNumber,\n sequence: sequence,\n chainID: this.lcd.config.chainID,\n signMode: options.signMode ||\n (this.lcd.config.isClassic\n ? signing_1.SignMode.SIGN_MODE_DIRECT\n : signing_2.SignMode.SIGN_MODE_DIRECT),\n }, this.lcd.config.isClassic)];\n }\n });\n });\n };\n return Wallet;\n}());\nexports.Wallet = Wallet;\n//# sourceMappingURL=Wallet.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AuthAPI = void 0;\nvar core_1 = require(\"../../core\");\nvar BaseAPI_1 = require(\"./BaseAPI\");\nvar AuthAPI = /** @class */ (function (_super) {\n __extends(AuthAPI, _super);\n function AuthAPI(lcd) {\n var _this = _super.call(this, lcd.apiRequester) || this;\n _this.lcd = lcd;\n return _this;\n }\n /**\n * Looks up the account information using its Terra account address. If the account has\n * vesting, it will be one of [LazyGradedVestingAccount, DelayedVestingAccount, PeriodicVestingAccount, ContinuousVestingAccount]\n *\n * @param address address of account to look up\n */\n AuthAPI.prototype.accountInfo = function (address, params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n var account;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.c.get(\"/cosmos/auth/v1beta1/accounts/\".concat(address), params)];\n case 1:\n account = (_a.sent()).account;\n return [2 /*return*/, core_1.Account.fromData(account, this.lcd.config.isClassic)];\n }\n });\n });\n };\n AuthAPI.prototype.parameters = function (params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (this.lcd.config.isClassic) {\n throw new Error('Not supported for the network');\n }\n return [2 /*return*/, this.c\n .get(\"/cosmos/auth/v1beta1/params\", params)\n .then(function (_a) {\n var d = _a.params;\n return ({\n max_memo_characters: Number.parseInt(d.max_memo_characters),\n tx_sig_limit: Number.parseInt(d.tx_sig_limit),\n tx_size_cost_per_byte: Number.parseInt(d.tx_size_cost_per_byte),\n sig_verify_cost_ed25519: Number.parseInt(d.sig_verify_cost_ed25519),\n sig_verify_cost_secp256k1: Number.parseInt(d.sig_verify_cost_secp256k1),\n });\n })];\n });\n });\n };\n return AuthAPI;\n}(BaseAPI_1.BaseAPI));\nexports.AuthAPI = AuthAPI;\n//# sourceMappingURL=AuthAPI.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AuthzAPI = void 0;\nvar BaseAPI_1 = require(\"./BaseAPI\");\nvar authorizations_1 = require(\"../../core/authz/authorizations\");\nvar AuthzAPI = /** @class */ (function (_super) {\n __extends(AuthzAPI, _super);\n function AuthzAPI(lcd) {\n var _this = _super.call(this, lcd.apiRequester) || this;\n _this.lcd = lcd;\n return _this;\n }\n /**\n * Get the message authorization grants for a specific granter and grantee\n */\n AuthzAPI.prototype.grants = function (granter, grantee, msgTypeUrl, params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n return [2 /*return*/, this.c\n .get(\"/cosmos/authz/v1beta1/grants\", Object.assign({\n granter: granter,\n grantee: grantee,\n msg_type_url: msgTypeUrl,\n }, params))\n .then(function (d) { return [\n d.grants.map(function (grant) {\n return authorizations_1.AuthorizationGrant.fromData(grant, _this.lcd.config.isClassic);\n }),\n d.pagination,\n ]; })];\n });\n });\n };\n /**\n * get list of `GrantAuthorization`, granted by granter.\n */\n AuthzAPI.prototype.granter = function (granter, params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n if (this.lcd.config.isClassic) {\n throw new Error('Not supported for the network');\n }\n return [2 /*return*/, this.c\n .get(\"/cosmos/authz/v1beta1/grants/granter/\".concat(granter), params)\n .then(function (d) { return [\n d.grants.map(function (g) {\n return authorizations_1.AuthorizationGrant.fromData(g, _this.lcd.config.isClassic);\n }),\n d.pagination,\n ]; })];\n });\n });\n };\n /**\n * get list of `GrantAuthorization`, by grantee.\n */\n AuthzAPI.prototype.grantee = function (grantee, params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n if (this.lcd.config.isClassic) {\n throw new Error('Not supported for the network');\n }\n return [2 /*return*/, this.c\n .get(\"/cosmos/authz/v1beta1/grants/grantee/\".concat(grantee), params)\n .then(function (d) { return [\n d.grants.map(function (g) {\n return authorizations_1.AuthorizationGrant.fromData(g, _this.lcd.config.isClassic);\n }),\n d.pagination,\n ]; })];\n });\n });\n };\n return AuthzAPI;\n}(BaseAPI_1.BaseAPI));\nexports.AuthzAPI = AuthzAPI;\n//# sourceMappingURL=AuthzAPI.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BankAPI = void 0;\nvar BaseAPI_1 = require(\"./BaseAPI\");\nvar core_1 = require(\"../../core\");\nvar BankAPI = /** @class */ (function (_super) {\n __extends(BankAPI, _super);\n function BankAPI(lcd) {\n var _this = _super.call(this, lcd.apiRequester) || this;\n _this.lcd = lcd;\n return _this;\n }\n /**\n * Look up the balance of an account by its address.\n * @param address address of account to look up.\n */\n BankAPI.prototype.balance = function (address, params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.c\n .get(\"/cosmos/bank/v1beta1/balances/\".concat(address), params)\n .then(function (d) { return [core_1.Coins.fromData(d.balances), d.pagination]; })];\n });\n });\n };\n /**\n * Get the total supply of tokens in circulation for all denominations.\n */\n BankAPI.prototype.total = function (params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.c\n .get(\"/cosmos/bank/v1beta1/supply\", params)\n .then(function (d) { return [core_1.Coins.fromData(d.supply), d.pagination]; })];\n });\n });\n };\n /**\n * Lqueries the spenable balance of all coins for a single account.\n * @param address address of account to look up.\n */\n BankAPI.prototype.spendableBalances = function (address, params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (this.lcd.config.isClassic) {\n throw new Error('Not supported for the network');\n }\n return [2 /*return*/, this.c\n .get(\"/cosmos/bank/v1beta1/spendable_balances/\".concat(address), params)\n .then(function (d) { return [core_1.Coins.fromData(d.balances), d.pagination]; })];\n });\n });\n };\n BankAPI.prototype.parameters = function (params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (this.lcd.config.isClassic) {\n throw new Error('Not supported for the network');\n }\n return [2 /*return*/, this.c\n .get(\"/cosmos/bank/v1beta1/params\", params)\n .then(function (_a) {\n var d = _a.params;\n return ({\n send_enabled: d.send_enabled,\n default_send_enabled: d.default_send_enabled,\n });\n })];\n });\n });\n };\n return BankAPI;\n}(BaseAPI_1.BaseAPI));\nexports.BankAPI = BankAPI;\n//# sourceMappingURL=BankAPI.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BaseAPI = void 0;\nvar BaseAPI = /** @class */ (function () {\n function BaseAPI(c) {\n this.c = c;\n }\n return BaseAPI;\n}());\nexports.BaseAPI = BaseAPI;\n//# sourceMappingURL=BaseAPI.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DistributionAPI = void 0;\nvar BaseAPI_1 = require(\"./BaseAPI\");\nvar core_1 = require(\"../../core\");\nvar DistributionAPI = /** @class */ (function (_super) {\n __extends(DistributionAPI, _super);\n function DistributionAPI(lcd) {\n var _this = _super.call(this, lcd.apiRequester) || this;\n _this.lcd = lcd;\n return _this;\n }\n /**\n * Gets a delegator's rewards.\n * @param delegator delegator's account address\n */\n DistributionAPI.prototype.rewards = function (delegator, params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n var rewardsData, rewards, _i, _a, reward;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, this.c\n .get(\"/cosmos/distribution/v1beta1/delegators/\".concat(delegator, \"/rewards\"), params)\n .then(function (d) { return d; })];\n case 1:\n rewardsData = _b.sent();\n rewards = {};\n for (_i = 0, _a = rewardsData.rewards; _i < _a.length; _i++) {\n reward = _a[_i];\n rewards[reward.validator_address] = core_1.Coins.fromData(reward.reward);\n }\n return [2 /*return*/, {\n rewards: rewards,\n total: core_1.Coins.fromData(rewardsData.total),\n }];\n }\n });\n });\n };\n /**\n * Gets a validator's rewards.\n * @param validator validator's operator address\n */\n DistributionAPI.prototype.validatorCommission = function (validator, params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.c\n .get(\"/cosmos/distribution/v1beta1/validators/\".concat(validator, \"/commission\"), params)\n .then(function (d) { return d.commission; })\n .then(function (d) { return core_1.Coins.fromData(d.commission); })];\n });\n });\n };\n /**\n * Gets the withdraw address of a delegator, the address to which rewards are withdrawn.\n * @param delegator\n */\n DistributionAPI.prototype.withdrawAddress = function (delegator, params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.c\n .get(\"/cosmos/distribution/v1beta1/delegators/\".concat(delegator, \"/withdraw_address\"), params)\n .then(function (d) { return d.withdraw_address; })];\n });\n });\n };\n /**\n * Gets the current value of the community pool.\n */\n DistributionAPI.prototype.communityPool = function (params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.c\n .get(\"/cosmos/distribution/v1beta1/community_pool\", params)\n .then(function (d) { return core_1.Coins.fromData(d.pool); })];\n });\n });\n };\n /**\n * Gets the current distribution parameters.\n */\n DistributionAPI.prototype.parameters = function (params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.c\n .get(\"/cosmos/distribution/v1beta1/params\", params)\n .then(function (_a) {\n var d = _a.params;\n return ({\n base_proposer_reward: new core_1.Dec(d.base_proposer_reward),\n community_tax: new core_1.Dec(d.community_tax),\n bonus_proposer_reward: new core_1.Dec(d.bonus_proposer_reward),\n withdraw_addr_enabled: d.withdraw_addr_enabled,\n });\n })];\n });\n });\n };\n return DistributionAPI;\n}(BaseAPI_1.BaseAPI));\nexports.DistributionAPI = DistributionAPI;\n//# sourceMappingURL=DistributionAPI.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FeeGrantAPI = void 0;\nvar BaseAPI_1 = require(\"./BaseAPI\");\nvar allowances_1 = require(\"../../core/feegrant/allowances\");\nvar FeeGrantAPI = /** @class */ (function (_super) {\n __extends(FeeGrantAPI, _super);\n function FeeGrantAPI(lcd) {\n var _this = _super.call(this, lcd.apiRequester) || this;\n _this.lcd = lcd;\n return _this;\n }\n FeeGrantAPI.prototype.allowances = function (grantee, params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.c\n .get(\"/cosmos/feegrant/v1beta1/allowances/\".concat(grantee), params)\n .then(function (d) { return ({\n allowances: d.allowances.map(function (allowance) { return ({\n granter: allowance.granter,\n grantee: allowance.grantee,\n allowance: allowances_1.Allowance.fromData(allowance.allowance),\n }); }),\n pagination: d.pagination,\n }); })];\n });\n });\n };\n FeeGrantAPI.prototype.allowance = function (granter, grantee) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.c\n .get(\"/cosmos/feegrant/v1beta1/allowance/\".concat(granter, \"/\").concat(grantee))\n .then(function (d) { return allowances_1.Allowance.fromData(d.allowance.allowance); })];\n });\n });\n };\n FeeGrantAPI.prototype.allowancesByGranter = function (granter, params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (this.lcd.config.isClassic) {\n throw new Error('Not supported for the network');\n }\n return [2 /*return*/, this.c\n .get(\"/cosmos/feegrant/v1beta1/issued/\".concat(granter), params)\n .then(function (d) { return ({\n allowances: d.allowances.map(function (allowance) { return ({\n granter: allowance.granter,\n grantee: allowance.grantee,\n allowance: allowances_1.Allowance.fromData(allowance.allowance),\n }); }),\n pagination: d.pagination,\n }); })];\n });\n });\n };\n return FeeGrantAPI;\n}(BaseAPI_1.BaseAPI));\nexports.FeeGrantAPI = FeeGrantAPI;\n//# sourceMappingURL=FeeGrantAPI.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GovAPI = void 0;\nvar BaseAPI_1 = require(\"./BaseAPI\");\nvar core_1 = require(\"../../core\");\nvar gov_1 = require(\"@terra-money/legacy.proto/cosmos/gov/v1beta1/gov\");\nvar GovAPI = /** @class */ (function (_super) {\n __extends(GovAPI, _super);\n function GovAPI(lcd) {\n var _this = _super.call(this, lcd.apiRequester) || this;\n _this.lcd = lcd;\n return _this;\n }\n /**\n * Gets all proposals.\n */\n GovAPI.prototype.proposals = function (params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n return [2 /*return*/, this.c\n .get(\"/cosmos/gov/v1beta1/proposals\", params)\n .then(function (d) { return [\n d.proposals.map(function (prop) {\n return core_1.Proposal.fromData(prop, _this.lcd.config.isClassic);\n }),\n d.pagination,\n ]; })];\n });\n });\n };\n /**\n * Get a specific proposal by its ID\n * @param proposalId proposal's ID\n */\n GovAPI.prototype.proposal = function (proposalId, params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n return [2 /*return*/, this.c\n .get(\"/cosmos/gov/v1beta1/proposals/\".concat(proposalId), params)\n .then(function (d) { return core_1.Proposal.fromData(d.proposal, _this.lcd.config.isClassic); })];\n });\n });\n };\n /**\n * Get the proposal's proposer\n * @param proposalId proposal's ID\n */\n GovAPI.prototype.proposer = function (proposalId) {\n return __awaiter(this, void 0, void 0, function () {\n var creationTx, msg;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n proposalId;\n return [4 /*yield*/, this.searchProposalCreationTx(proposalId)];\n case 1:\n creationTx = _a.sent();\n msg = creationTx.body.messages.find(function (msg) { return msg['@type'] === '/cosmos.gov.v1beta1.MsgSubmitProposal'; });\n if (msg && msg['@type'] === '/cosmos.gov.v1beta1.MsgSubmitProposal') {\n return [2 /*return*/, msg.proposer];\n }\n throw Error('failed to fetch submit_proposer tx');\n }\n });\n });\n };\n /**\n * Get the proposal's initial deposit\n * @param proposalId proposal's ID\n */\n GovAPI.prototype.initialDeposit = function (proposalId) {\n return __awaiter(this, void 0, void 0, function () {\n var creationTx, msg;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n proposalId;\n return [4 /*yield*/, this.searchProposalCreationTx(proposalId)];\n case 1:\n creationTx = _a.sent();\n msg = creationTx.body.messages.find(function (msg) { return msg['@type'] === '/cosmos.gov.v1beta1.MsgSubmitProposal'; });\n if (msg && msg['@type'] === '/cosmos.gov.v1beta1.MsgSubmitProposal') {\n return [2 /*return*/, core_1.Coins.fromData(msg.initial_deposit)];\n }\n throw Error('failed to fetch submit_proposer tx');\n }\n });\n });\n };\n /**\n * Get the deposits for a proposal\n * @param proposalId proposal's ID\n */\n GovAPI.prototype.deposits = function (proposalId, _params) {\n if (_params === void 0) { _params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n var proposal, params;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n proposalId;\n _params;\n return [4 /*yield*/, this.proposal(proposalId)];\n case 1:\n proposal = _a.sent();\n if (proposal.status === gov_1.ProposalStatus.PROPOSAL_STATUS_DEPOSIT_PERIOD ||\n proposal.status === gov_1.ProposalStatus.PROPOSAL_STATUS_VOTING_PERIOD) {\n return [2 /*return*/, this.c\n .get(\"/cosmos/gov/v1beta1/proposals/\".concat(proposalId, \"/deposits\"), _params)\n .then(function (d) { return [\n d.deposits.map(function (deposit) { return core_1.Deposit.fromData(deposit); }),\n d.pagination,\n ]; })];\n }\n params = new URLSearchParams();\n params.append('events', \"message.action='/cosmos.gov.v1beta1.MsgDeposit'\");\n params.append('events', \"proposal_deposit.proposal_id=\".concat(proposalId));\n Object.entries(_params).forEach(function (v) {\n params.append(v[0], v[1]);\n });\n return [2 /*return*/, this.c\n .get(\"/cosmos/tx/v1beta1/txs\", params)\n .then(function (d) {\n var deposits = [];\n d.txs.map(function (tx) {\n //@ts-ignore\n return tx.body.messages.forEach(function (msg) {\n if (msg['@type'] === '/cosmos.gov.v1beta1.MsgDeposit' &&\n Number.parseInt(msg.proposal_id) == proposalId) {\n deposits.push(new core_1.Deposit(proposalId, msg.depositor, core_1.Coins.fromData(msg.amount)));\n }\n }, deposits);\n });\n return [deposits, d.pagination];\n })];\n }\n });\n });\n };\n GovAPI.prototype.searchProposalCreationTx = function (proposalId) {\n return __awaiter(this, void 0, void 0, function () {\n var params;\n return __generator(this, function (_a) {\n params = new URLSearchParams();\n params.append('events', \"message.action='/cosmos.gov.v1beta1.MsgSubmitProposal'\");\n params.append('events', \"submit_proposal.proposal_id=\".concat(proposalId));\n return [2 /*return*/, this.c\n .get(\"/cosmos/tx/v1beta1/txs\", params)\n .then(function (d) {\n if (d.tx_responses.length === 0) {\n throw Error('failed to fetch submit_proposer tx');\n }\n return d.txs[0];\n })];\n });\n });\n };\n /**\n * Get the current votes for a proposal\n * @param proposalId proposal's ID\n */\n GovAPI.prototype.votes = function (proposalId, _params) {\n if (_params === void 0) { _params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n var proposal, params;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n proposalId;\n _params;\n return [4 /*yield*/, this.proposal(proposalId)];\n case 1:\n proposal = _a.sent();\n if (proposal.status === gov_1.ProposalStatus.PROPOSAL_STATUS_DEPOSIT_PERIOD) {\n return [2 /*return*/, this.c\n .get(\"/cosmos/gov/v1beta1/proposals/\".concat(proposalId, \"/votes\"), _params)\n .then(function (d) { return [d.votes.map(function (v) { return core_1.Vote.fromData(v); }), d.pagination]; })];\n }\n params = new URLSearchParams();\n params.append('events', \"message.action='/cosmos.gov.v1beta1.MsgVote'\");\n params.append('events', \"proposal_vote.proposal_id=\".concat(proposalId));\n Object.entries(_params).forEach(function (v) {\n params.append(v[0], v[1]);\n });\n return [2 /*return*/, this.c\n .get(\"/cosmos/tx/v1beta1/txs\", params)\n .then(function (d) {\n var votes = [];\n d.txs.map(function (tx) {\n //@ts-ignore\n return tx.body.messages.forEach(function (msg) {\n if (msg['@type'] === '/cosmos.gov.v1beta1.MsgVote' &&\n Number.parseInt(msg.proposal_id) == proposalId) {\n votes.push(new core_1.Vote(proposalId, msg.voter, [\n new core_1.WeightedVoteOption(msg.option, '1'),\n ]));\n }\n else if (msg['@type'] === '/cosmos.gov.v1beta1.MsgVoteWeighted' &&\n Number.parseInt(msg.proposal_id) == proposalId) {\n votes.push(new core_1.Vote(proposalId, msg.voter, \n //@ts-ignore\n msg.options.map(function (o) { return core_1.WeightedVoteOption.fromData(o); })));\n }\n }, votes);\n });\n return [votes, d.pagination];\n })];\n }\n });\n });\n };\n /**\n * Gets the current tally for a proposal.\n * @param proposalId proposal's ID\n */\n GovAPI.prototype.tally = function (proposalId, params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.c\n .get(\"/cosmos/gov/v1beta1/proposals/\".concat(proposalId, \"/tally\"), params)\n .then(function (_a) {\n var d = _a.tally;\n return ({\n yes: new core_1.Int(d.yes),\n no: new core_1.Int(d.no),\n no_with_veto: new core_1.Int(d.no_with_veto),\n abstain: new core_1.Int(d.abstain),\n });\n })];\n });\n });\n };\n /** Gets the Gov module's deposit parameters */\n GovAPI.prototype.depositParameters = function (params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.c\n .get(\"/cosmos/gov/v1beta1/params/deposit\", params)\n .then(function (_a) {\n var d = _a.deposit_params;\n return ({\n max_deposit_period: Number.parseInt(d.max_deposit_period),\n min_deposit: core_1.Coins.fromData(d.min_deposit),\n });\n })];\n });\n });\n };\n /** Gets the Gov module's voting parameters */\n GovAPI.prototype.votingParameters = function (params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.c\n .get(\"/cosmos/gov/v1beta1/params/voting\", params)\n .then(function (_a) {\n var d = _a.voting_params;\n return ({\n voting_period: Number.parseInt(d.voting_period),\n });\n })];\n });\n });\n };\n /** Gets teh Gov module's tally parameters */\n GovAPI.prototype.tallyParameters = function (params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.c\n .get(\"/cosmos/gov/v1beta1/params/tallying\", params)\n .then(function (_a) {\n var d = _a.tally_params;\n return ({\n quorum: new core_1.Dec(d.quorum),\n veto_threshold: new core_1.Dec(d.veto_threshold),\n threshold: new core_1.Dec(d.threshold),\n });\n })];\n });\n });\n };\n /** Gets the Gov module's current parameters */\n GovAPI.prototype.parameters = function (params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n var _a, deposit_params, voting_params, tally_params;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, Promise.all([\n this.depositParameters(params),\n this.votingParameters(params),\n this.tallyParameters(params),\n ])];\n case 1:\n _a = _b.sent(), deposit_params = _a[0], voting_params = _a[1], tally_params = _a[2];\n return [2 /*return*/, {\n deposit_params: deposit_params,\n voting_params: voting_params,\n tally_params: tally_params,\n }];\n }\n });\n });\n };\n return GovAPI;\n}(BaseAPI_1.BaseAPI));\nexports.GovAPI = GovAPI;\n//# sourceMappingURL=GovAPI.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IbcAPI = void 0;\nvar BaseAPI_1 = require(\"./BaseAPI\");\nvar IdentifiedClient_1 = require(\"../../core/ibc/core/client/IdentifiedClient\");\n//import { Params as ControllerParams } from '../../../core/ibc/applications/interchain-account/controller/Params';\nvar Params_1 = require(\"../../core/ibc/applications/interchain-account/host/Params\");\nvar channel_1 = require(\"../../core/ibc/core/channel\");\nvar connection_1 = require(\"../../core/ibc/core/connection\");\nvar Height_1 = require(\"../../core/ibc/core/client/Height\");\nvar IbcAPI = /** @class */ (function (_super) {\n __extends(IbcAPI, _super);\n function IbcAPI(lcd) {\n var _this = _super.call(this, lcd.apiRequester) || this;\n _this.lcd = lcd;\n return _this;\n }\n /**\n * query all the IBC channels of a chain\n */\n IbcAPI.prototype.channels = function (params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.c\n .get(\"/ibc/core/channel/v1/channels\", params)\n .then(function (d) { return [d.channels.map(channel_1.Channel.fromData), d.pagination]; })];\n });\n });\n };\n /**\n * query the information of the port at given channel\n * @param channel_id channel identifier\n * @param port_id port name\n */\n IbcAPI.prototype.port = function (channel_id, port_id, params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.c\n .get(\"/ibc/core/channel/v1/channels/\".concat(channel_id, \"/ports/\").concat(port_id), params)\n .then(function (d) {\n return {\n channel: channel_1.Channel.fromData(d.channel),\n proof: d.proof,\n proof_height: Height_1.Height.fromData(d.proof_height),\n };\n })];\n });\n });\n };\n /**\n * query all the IBC connections of a chain\n */\n IbcAPI.prototype.connections = function (params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.c\n .get(\"/ibc/core/connection/v1/connections\", params)\n .then(function (d) { return [\n d.connections.map(connection_1.IdentifiedConnection.fromData),\n d.pagination,\n ]; })];\n });\n });\n };\n /**\n * query an IBC connection end\n * @param connection_id connection unique identifier\n */\n IbcAPI.prototype.connection = function (connection_id, params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.c\n .get(\"/ibc/core/connection/v1/connections/\".concat(connection_id), params)\n .then(function (d) { return connection_1.IdentifiedConnection.fromData(d.connection); })];\n });\n });\n };\n /**\n * query all the channels associated with a connection end\n * @param connection_id connection unique identifier\n */\n IbcAPI.prototype.connectionChannels = function (connection_id, params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.c\n .get(\"/ibc/core/channel/v1/connections/\".concat(connection_id, \"/channels\"), params)\n .then(function (d) { return [\n d.channels.map(channel_1.Channel.fromData),\n Height_1.Height.fromData(d.height),\n d.pagination,\n ]; })];\n });\n });\n };\n /**\n * Gets the current transfer application parameters.\n */\n IbcAPI.prototype.parameters = function (params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.c\n .get(\"/ibc/client/v1/params\", params)\n .then(function (_a) {\n var d = _a.params;\n return ({\n allowed_clients: d.allowed_clients,\n });\n })];\n });\n });\n };\n /**\n * query all the IBC light clients of a chain\n */\n IbcAPI.prototype.clientStates = function (params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.c\n .get(\"/ibc/core/client/v1/client_states\", params)\n .then(function (d) { return [\n d.client_states.map(IdentifiedClient_1.IdentifiedClientState.fromData),\n d.pagination,\n ]; })];\n });\n });\n };\n /**\n * query an IBC light client\n * @param client_id client state unique identifier\n * @returns\n */\n IbcAPI.prototype.clientState = function (client_id, params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.c\n .get(\"/ibc/core/client/v1/client_states/\".concat(client_id), params)\n .then(function (d) { return IdentifiedClient_1.IdentifiedClientState.fromData(d.client_state); })];\n });\n });\n };\n /**\n * query the status of an IBC light client\n * @param client_id client state unique identifier\n * @returns\n */\n IbcAPI.prototype.clientStatus = function (client_id, params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.c\n .get(\"/ibc/core/client/v1/client_status/\".concat(client_id), params)\n .then()];\n });\n });\n };\n /**\n * query all the consensus state associated with a given client\n * @param client_id client identifier\n * @returns\n */\n IbcAPI.prototype.consensusStates = function (client_id, params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.c\n .get(\"/ibc/core/client/v1/consensus_states/\".concat(client_id), params)\n .then()];\n });\n });\n };\n /**\n * Gets paramaters for interchain account controller.\n * NOTE: CURRENTLY LCD DOESN'T SERVE THE ENDPOINT\n /*\n public async interchainAccountControllerParameters(\n params: APIParams = {}\n ): Promise {\n return this.c\n .get<{ params: ControllerParams.Data }>(\n `/ibc/apps/interchain_accounts/controller/v1/params`,\n params\n )\n .then(({ params: d }) => ControllerParams.fromData(d));\n }\n */\n /**\n * Gets paramaters for interchain account host.\n */\n IbcAPI.prototype.interchainAccountHostParameters = function (params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.c\n .get(\"/ibc/apps/interchain_accounts/host/v1/params\", params)\n .then(function (_a) {\n var d = _a.params;\n return Params_1.Params.fromData(d);\n })];\n });\n });\n };\n return IbcAPI;\n}(BaseAPI_1.BaseAPI));\nexports.IbcAPI = IbcAPI;\n//# sourceMappingURL=IbcAPI.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IbcTransferAPI = void 0;\nvar BaseAPI_1 = require(\"./BaseAPI\");\n//import { DenomTrace } from '@terra-money/legacy.proto/ibc/applications/transfer/v1/query'\nvar DenomTrace_1 = require(\"../../core/ibc/applications/transfer/v1/DenomTrace\");\nvar IbcTransferAPI = /** @class */ (function (_super) {\n __extends(IbcTransferAPI, _super);\n function IbcTransferAPI(lcd) {\n var _this = _super.call(this, lcd.apiRequester) || this;\n _this.lcd = lcd;\n return _this;\n }\n /** Gets a denomTrace for the hash */\n IbcTransferAPI.prototype.denomTrace = function (hash) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.c\n .get(\"/ibc/apps/transfer/v1/denom_traces/\".concat(hash))\n .then(function (d) { return DenomTrace_1.DenomTrace.fromData(d.denom_trace); })];\n });\n });\n };\n /** Gets a list of denomTraces */\n IbcTransferAPI.prototype.denomTraces = function (params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.c\n .get(\"/ibc/apps/transfer/v1/denom_traces\", params)\n .then(function (d) { return [d.denom_traces.map(DenomTrace_1.DenomTrace.fromData), d.pagination]; })];\n });\n });\n };\n /** Gets a denomination hash information */\n IbcTransferAPI.prototype.denomHash = function (trace, params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (this.lcd.config.isClassic) {\n throw new Error('Not supported for the network');\n }\n return [4 /*yield*/, this.c.get(\"/ibc/apps/transfer/v1/denom_hashes/\".concat(trace), params)];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n /**\n * Gets the current transfer application parameters.\n */\n IbcTransferAPI.prototype.parameters = function (params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.c\n .get(\"/ibc/apps/transfer/v1/params\", params)\n .then(function (_a) {\n var d = _a.params;\n return ({\n send_enabled: d.send_enabled,\n receive_enabled: d.receive_enabled,\n });\n })];\n });\n });\n };\n return IbcTransferAPI;\n}(BaseAPI_1.BaseAPI));\nexports.IbcTransferAPI = IbcTransferAPI;\n//# sourceMappingURL=IbcTransferAPI.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MarketAPI = void 0;\nvar core_1 = require(\"../../core\");\nvar BaseAPI_1 = require(\"./BaseAPI\");\nvar MarketAPI = /** @class */ (function (_super) {\n __extends(MarketAPI, _super);\n function MarketAPI(lcd) {\n var _this = _super.call(this, lcd.apiRequester) || this;\n _this.lcd = lcd;\n return _this;\n }\n /**\n * Gets the Market's swap rate for a given coin to a requested denomination.\n * @param offerCoin coin to convert\n * @param askDenom denomination to swap into\n */\n MarketAPI.prototype.swapRate = function (offerCoin, askDenom, _params) {\n if (_params === void 0) { _params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n var params;\n return __generator(this, function (_a) {\n if (!this.lcd.config.isClassic) {\n throw new Error('Not supported for the network');\n }\n params = __assign(__assign({}, _params), { offer_coin: offerCoin.toString(), ask_denom: askDenom });\n return [2 /*return*/, this.c\n .get(\"/terra/market/v1beta1/swap\", params)\n .then(function (d) { return core_1.Coin.fromData(d.return_coin); })];\n });\n });\n };\n /**\n * Gets current value of the pool delta, which is used to determine Terra<>Luna swap rates.\n */\n MarketAPI.prototype.poolDelta = function (params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (!this.lcd.config.isClassic) {\n throw new Error('Not supported for the network');\n }\n return [2 /*return*/, this.c\n .get(\"/terra/market/v1beta1/terra_pool_delta\", params)\n .then(function (d) { return new core_1.Dec(d.terra_pool_delta); })];\n });\n });\n };\n /**\n * Gets the current Market module's parameters.\n */\n MarketAPI.prototype.parameters = function (params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (!this.lcd.config.isClassic) {\n throw new Error('Not supported for the network');\n }\n return [2 /*return*/, this.c\n .get(\"/terra/market/v1beta1/params\", params)\n .then(function (_a) {\n var d = _a.params;\n return ({\n pool_recovery_period: Number.parseInt(d.pool_recovery_period),\n base_pool: new core_1.Dec(d.base_pool),\n min_stability_spread: new core_1.Dec(d.min_stability_spread),\n });\n })];\n });\n });\n };\n return MarketAPI;\n}(BaseAPI_1.BaseAPI));\nexports.MarketAPI = MarketAPI;\n//# sourceMappingURL=MarketAPI.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MintAPI = void 0;\nvar core_1 = require(\"../../core\");\nvar BaseAPI_1 = require(\"./BaseAPI\");\nvar MintAPI = /** @class */ (function (_super) {\n __extends(MintAPI, _super);\n function MintAPI(lcd) {\n var _this = _super.call(this, lcd.apiRequester) || this;\n _this.lcd = lcd;\n return _this;\n }\n /**\n * Gets the current minting inflation value\n */\n MintAPI.prototype.inflation = function (params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.c\n .get(\"/cosmos/mint/v1beta1/inflation\", params)\n .then(function (d) { return new core_1.Dec(d.inflation); })];\n });\n });\n };\n /**\n * Gets the current minting annual provisions value\n */\n MintAPI.prototype.annualProvisions = function (params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.c\n .get(\"cosmos/mint/v1beta1/annual_provisions\", params)\n .then(function (d) { return new core_1.Dec(d.annual_provisions); })];\n });\n });\n };\n /**\n * Gets the current minting module's parameters.\n */\n MintAPI.prototype.parameters = function (params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.c\n .get(\"/cosmos/mint/v1beta1/params\", params)\n .then(function (_a) {\n var d = _a.params;\n return ({\n mint_denom: d.mint_denom,\n inflation_rate_change: new core_1.Dec(d.inflation_rate_change),\n inflation_max: new core_1.Dec(d.inflation_max),\n inflation_min: new core_1.Dec(d.inflation_min),\n goal_bonded: new core_1.Dec(d.goal_bonded),\n blocks_per_year: Number.parseInt(d.blocks_per_year),\n });\n })];\n });\n });\n };\n return MintAPI;\n}(BaseAPI_1.BaseAPI));\nexports.MintAPI = MintAPI;\n//# sourceMappingURL=MintAPI.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OracleAPI = void 0;\nvar BaseAPI_1 = require(\"./BaseAPI\");\nvar core_1 = require(\"../../core\");\nvar OracleAPI = /** @class */ (function (_super) {\n __extends(OracleAPI, _super);\n function OracleAPI(lcd) {\n var _this = _super.call(this, lcd.apiRequester) || this;\n _this.lcd = lcd;\n return _this;\n }\n /**\n * Gets the Oracle module's currently registered exchange rate for ujmes in all available denominations.\n */\n OracleAPI.prototype.exchangeRates = function (params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (!this.lcd.config.isClassic) {\n throw new Error('Not supported for the network');\n }\n return [2 /*return*/, this.c\n .get(\"/terra/oracle/v1beta1/denoms/exchange_rates\", params)\n .then(function (d) { return core_1.Coins.fromData(d.exchange_rates); })];\n });\n });\n };\n /**\n * Gets the Oracle module's currently registered exchange rate for the specific denomination.\n * @param denom denomination in which to get the exchange rate of ujmes\n */\n OracleAPI.prototype.exchangeRate = function (denom, params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (!this.lcd.config.isClassic) {\n throw new Error('Not supported for the network');\n }\n return [2 /*return*/, this.c\n .get(\"/terra/oracle/v1beta1/denoms/\".concat(denom, \"/exchange_rate\"), params)\n .then(function (d) {\n return core_1.Coin.fromData({\n denom: denom,\n amount: d.exchange_rate,\n });\n })];\n });\n });\n };\n /**\n * Gets the current list of active denominations.\n */\n OracleAPI.prototype.activeDenoms = function (params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (!this.lcd.config.isClassic) {\n throw new Error('Not supported for the network');\n }\n return [2 /*return*/, this.c\n .get(\"/terra/oracle/v1beta1/denoms/actives\", params)\n .then(function (d) { return d.actives; })];\n });\n });\n };\n /**\n * Gets the registered feeder address associated with the validator. The feeder address is the\n * Terra account that is permitted to sign Oracle vote messages in the validator's name.\n * @param validator validator's operator address\n */\n OracleAPI.prototype.feederAddress = function (validator, params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (!this.lcd.config.isClassic) {\n throw new Error('Not supported for the network');\n }\n return [2 /*return*/, this.c\n .get(\"/terra/oracle/v1beta1/validators/\".concat(validator, \"/feeder\"), params)\n .then(function (d) { return d.feeder_addr; })];\n });\n });\n };\n /**\n * Gets the number of missed oracle votes for the validator over the current slash window.\n * @param validator validator's operator address\n */\n OracleAPI.prototype.misses = function (validator, params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (!this.lcd.config.isClassic) {\n throw new Error('Not supported for the network');\n }\n return [2 /*return*/, this.c\n .get(\"/terra/oracle/v1beta1/validators/\".concat(validator, \"/miss\"), params)\n .then(function (d) { return Number.parseInt(d.miss_counter); })];\n });\n });\n };\n /**\n * Gets the validator's current submitted aggregate prevote\n * @param validator validator's operator address\n */\n OracleAPI.prototype.aggregatePrevote = function (validator, params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (!this.lcd.config.isClassic) {\n throw new Error('Not supported for the network');\n }\n return [2 /*return*/, this.c\n .get(\"/terra/oracle/v1beta1/validators/\".concat(validator, \"/aggregate_prevote\"), params)\n .then(function (d) { return core_1.AggregateExchangeRatePrevote.fromData(d.aggregate_prevote); })];\n });\n });\n };\n /**\n * Gets the validator's current submitted aggregate vote\n * @param validator validator's operator address\n */\n OracleAPI.prototype.aggregateVote = function (validator, params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (!this.lcd.config.isClassic) {\n throw new Error('Not supported for the network');\n }\n return [2 /*return*/, this.c\n .get(\"/terra/oracle/v1beta1/validators/\".concat(validator, \"/aggregate_vote\"), params)\n .then(function (d) { return core_1.AggregateExchangeRateVote.fromData(d.aggregate_vote); })];\n });\n });\n };\n /**\n * Gets the current Oracle module's parameters.\n */\n OracleAPI.prototype.parameters = function (params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (!this.lcd.config.isClassic) {\n throw new Error('Not supported for the network');\n }\n return [2 /*return*/, this.c\n .get(\"/terra/oracle/v1beta1/params\", params)\n .then(function (_a) {\n var d = _a.params;\n return ({\n vote_period: Number.parseInt(d.vote_period),\n vote_threshold: new core_1.Dec(d.vote_threshold),\n reward_band: new core_1.Dec(d.reward_band),\n reward_distribution_window: Number.parseInt(d.reward_distribution_window),\n whitelist: d.whitelist.map(function (x) { return ({\n name: x.name,\n tobin_tax: new core_1.Dec(x.tobin_tax),\n }); }),\n slash_fraction: new core_1.Dec(d.slash_fraction),\n slash_window: Number.parseInt(d.slash_window),\n min_valid_per_window: new core_1.Dec(d.min_valid_per_window),\n });\n })];\n });\n });\n };\n return OracleAPI;\n}(BaseAPI_1.BaseAPI));\nexports.OracleAPI = OracleAPI;\n//# sourceMappingURL=OracleAPI.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SlashingAPI = void 0;\nvar BaseAPI_1 = require(\"./BaseAPI\");\nvar core_1 = require(\"../../core\");\nvar SlashingAPI = /** @class */ (function (_super) {\n __extends(SlashingAPI, _super);\n function SlashingAPI(lcd) {\n var _this = _super.call(this, lcd.apiRequester) || this;\n _this.lcd = lcd;\n return _this;\n }\n /**\n * Gets all signing info, or just the signing info of a particular validator.\n *\n * @param valConsPubKey validator's consensus public key\n */\n SlashingAPI.prototype.signingInfo = function (valConsAddress, params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.c\n .get(\"/cosmos/slashing/v1beta1/signing_infos/\".concat(valConsAddress), params)\n .then(function (_a) {\n var d = _a.val_signing_info;\n return ({\n address: d.address,\n start_height: Number.parseInt(d.start_height),\n index_offset: Number.parseInt(d.index_offset),\n jailed_until: new Date(d.jailed_until),\n tombstoned: d.tombstoned,\n missed_blocks_counter: Number.parseInt(d.missed_blocks_counter),\n });\n })];\n });\n });\n };\n SlashingAPI.prototype.signingInfos = function (params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.c\n .get(\"/cosmos/slashing/v1beta1/signing_infos\", params)\n .then(function (d) {\n return d.info.map(function (x) { return ({\n address: x.address,\n start_height: Number.parseInt(x.start_height),\n index_offset: Number.parseInt(x.index_offset),\n jailed_until: new Date(x.jailed_until),\n tombstoned: x.tombstoned,\n missed_blocks_counter: Number.parseInt(x.missed_blocks_counter),\n }); });\n })];\n });\n });\n };\n /**\n * Gets the current Slashing module's parameters.\n */\n SlashingAPI.prototype.parameters = function (params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.c\n .get(\"/cosmos/slashing/v1beta1/params\", params)\n .then(function (_a) {\n var d = _a.params;\n return ({\n signed_blocks_window: Number.parseInt(d.signed_blocks_window),\n min_signed_per_window: new core_1.Dec(d.min_signed_per_window),\n downtime_jail_duration: Number.parseInt(d.downtime_jail_duration),\n slash_fraction_double_sign: new core_1.Dec(d.slash_fraction_double_sign),\n slash_fraction_downtime: new core_1.Dec(d.slash_fraction_downtime),\n });\n })];\n });\n });\n };\n return SlashingAPI;\n}(BaseAPI_1.BaseAPI));\nexports.SlashingAPI = SlashingAPI;\n//# sourceMappingURL=SlashingAPI.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StakingAPI = void 0;\nvar core_1 = require(\"../../core\");\nvar BaseAPI_1 = require(\"./BaseAPI\");\nvar Delegation_1 = require(\"../../core/staking/Delegation\");\nvar Validator_1 = require(\"../../core/staking/Validator\");\nvar Redelegation_1 = require(\"../../core/staking/Redelegation\");\nvar StakingAPI = /** @class */ (function (_super) {\n __extends(StakingAPI, _super);\n function StakingAPI(lcd) {\n var _this = _super.call(this, lcd.apiRequester) || this;\n _this.lcd = lcd;\n return _this;\n }\n /**\n * Queries all delegations, filtering by delegator, validator, or both.\n *\n * At least one of the parameters must be defined.\n * @param delegator delegator's account address\n * @param validator validator's operator address\n */\n StakingAPI.prototype.delegations = function (delegator, validator, params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (delegator !== undefined && validator !== undefined) {\n return [2 /*return*/, this.c\n .get(\"/cosmos/staking/v1beta1/validators/\".concat(validator, \"/delegations/\").concat(delegator), params)\n .then(function (_a) {\n var data = _a.delegation_response;\n return [\n [Delegation_1.Delegation.fromData(data)],\n { total: 1, next_key: '' },\n ];\n })];\n }\n else if (delegator !== undefined) {\n return [2 /*return*/, this.c\n .get(\"/cosmos/staking/v1beta1/delegations/\".concat(delegator), params)\n .then(function (data) { return [\n data.delegation_responses.map(Delegation_1.Delegation.fromData),\n data.pagination,\n ]; })];\n }\n else if (validator !== undefined) {\n return [2 /*return*/, this.c\n .get(\"/cosmos/staking/v1beta1/validators/\".concat(validator, \"/delegations\"), params)\n .then(function (data) { return [\n data.delegation_responses.map(Delegation_1.Delegation.fromData),\n data.pagination,\n ]; })];\n }\n else {\n throw new TypeError('arguments delegator and validator cannot both be empty');\n }\n return [2 /*return*/];\n });\n });\n };\n /**\n * Gets the delegation between a delegator and validator, if it exists.\n * @param delegator delegator's account address\n * @param validator validator's operator address\n */\n StakingAPI.prototype.delegation = function (delegator, validator) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.delegations(delegator, validator).then(function (delgs) { return delgs[0][0]; })];\n });\n });\n };\n /**\n * Queries all unbonding delegations, filtering by delegator, validator, or both.\n *\n * At least one of the parameters must be defined.\n * @param delegator delegator's account address\n * @param validator validator's operator address\n */\n StakingAPI.prototype.unbondingDelegations = function (delegator, validator, params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (delegator !== undefined && validator !== undefined) {\n return [2 /*return*/, this.c\n .get(\"/cosmos/staking/v1beta1/validators/\".concat(validator, \"/delegations/\").concat(delegator, \"/unbonding_delegation\"), params)\n .then(function (_a) {\n var data = _a.unbond;\n return [\n [core_1.UnbondingDelegation.fromData(data)],\n { next_key: '', total: 1 },\n ];\n })];\n }\n else if (delegator !== undefined) {\n return [2 /*return*/, this.c\n .get(\"/cosmos/staking/v1beta1/delegators/\".concat(delegator, \"/unbonding_delegations\"), params)\n .then(function (data) { return [\n data.unbonding_responses.map(core_1.UnbondingDelegation.fromData),\n data.pagination,\n ]; })];\n }\n else if (validator !== undefined) {\n return [2 /*return*/, this.c\n .get(\"/cosmos/staking/v1beta1/validators/\".concat(validator, \"/unbonding_delegations\"), params)\n .then(function (data) { return [\n data.unbonding_responses.map(core_1.UnbondingDelegation.fromData),\n data.pagination,\n ]; })];\n }\n else {\n throw new TypeError('arguments delegator and validator cannot both be empty');\n }\n return [2 /*return*/];\n });\n });\n };\n /**\n * Gets the unbonding delegation between a delegator and validator, if it exists.\n * @param delegator delegator's account address\n * @param validator validator's operator address\n */\n StakingAPI.prototype.unbondingDelegation = function (delegator, validator) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.unbondingDelegations(delegator, validator).then(function (udelgs) { return udelgs[0][0]; })];\n });\n });\n };\n /**\n * Queries all redelegations, filterable by delegator, source validator, and target validator.\n * @param delegator delegator's account address\n * @param validatorSrc source validator's operator address (from).\n * @param validatorDst destination validator's operator address (to).\n */\n StakingAPI.prototype.redelegations = function (delegator, validatorSrc, validatorDst, _params) {\n if (_params === void 0) { _params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n var params;\n return __generator(this, function (_a) {\n params = __assign(__assign({}, _params), { src_validator_addr: validatorSrc, dst_validator_addr: validatorDst });\n return [2 /*return*/, this.c\n .get(\"/cosmos/staking/v1beta1/delegators/\".concat(delegator, \"/redelegations\"), params)\n .then(function (d) { return [\n d.redelegation_responses.map(Redelegation_1.Redelegation.fromData),\n d.pagination,\n ]; })];\n });\n });\n };\n /**\n * Gets all bonded validators for a delegator given its address.\n * @param delegator delegator's account address\n */\n StakingAPI.prototype.bondedValidators = function (delegator, params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.c\n .get(\"/cosmos/staking/v1beta1/delegators/\".concat(delegator, \"/validators\"), params)\n .then(function (d) { return [d.validators.map(Validator_1.Validator.fromData), d.pagination]; })];\n });\n });\n };\n /**\n * Get all current registered validators, including validators that are not currently in the validating set.\n */\n StakingAPI.prototype.validators = function (params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.c\n .get(\"/cosmos/staking/v1beta1/validators\", params)\n .then(function (d) { return [d.validators.map(Validator_1.Validator.fromData), d.pagination]; })];\n });\n });\n };\n /**\n * Gets the validator information for a specific validator.\n * @param validator validator's operator address\n */\n StakingAPI.prototype.validator = function (validator, params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.c\n .get(\"/cosmos/staking/v1beta1/validators/\".concat(validator), params)\n .then(function (d) { return Validator_1.Validator.fromData(d.validator); })];\n });\n });\n };\n /**\n * Gets the current staking pool.\n */\n StakingAPI.prototype.pool = function (params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.c\n .get(\"/cosmos/staking/v1beta1/pool\", params)\n .then(function (_a) {\n var d = _a.pool;\n return ({\n bonded_tokens: new core_1.Coin('ujmes', d.bonded_tokens),\n not_bonded_tokens: new core_1.Coin('ujmes', d.not_bonded_tokens),\n });\n })];\n });\n });\n };\n /**\n * Gets the current Staking module's parameters.\n */\n StakingAPI.prototype.parameters = function (params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.c\n .get(\"/cosmos/staking/v1beta1/params\", params)\n .then(function (_a) {\n var d = _a.params;\n return ({\n unbonding_time: Number.parseInt(d.unbonding_time),\n max_validators: d.max_validators,\n max_entries: d.max_entries,\n historical_entries: d.historical_entries,\n bond_denom: d.bond_denom,\n });\n })];\n });\n });\n };\n return StakingAPI;\n}(BaseAPI_1.BaseAPI));\nexports.StakingAPI = StakingAPI;\n//# sourceMappingURL=StakingAPI.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TendermintAPI = void 0;\nvar BaseAPI_1 = require(\"./BaseAPI\");\nvar TendermintAPI = /** @class */ (function (_super) {\n __extends(TendermintAPI, _super);\n function TendermintAPI(lcd) {\n var _this = _super.call(this, lcd.apiRequester) || this;\n _this.lcd = lcd;\n return _this;\n }\n /**\n * Gets the node's information.\n */\n TendermintAPI.prototype.nodeInfo = function (params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.c.getRaw(\"/cosmos/base/tendermint/v1beta1/node_info\", params)];\n });\n });\n };\n /**\n * Gets whether the node is currently in syncing mode to catch up with blocks.\n */\n TendermintAPI.prototype.syncing = function (params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.c\n .getRaw(\"/cosmos/base/tendermint/v1beta1/syncing\", params)\n .then(function (d) { return d.syncing; })];\n });\n });\n };\n /**\n * Gets the validator (delegates) set at the specific height. If no height is given, the current set is returned.\n * @param height block height\n */\n TendermintAPI.prototype.validatorSet = function (height, params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n var url;\n return __generator(this, function (_a) {\n url = height !== undefined\n ? \"/cosmos/base/tendermint/v1beta1/validatorsets/\".concat(height)\n : \"/cosmos/base/tendermint/v1beta1/validatorsets/latest\";\n return [2 /*return*/, this.c\n .get(url, params)\n .then(function (d) { return [d.validators, d.pagination]; })];\n });\n });\n };\n /**\n * Gets the block information at the specified height. If no height is given, the latest block is returned.\n * @param height block height.\n */\n TendermintAPI.prototype.blockInfo = function (height, params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n var url;\n return __generator(this, function (_a) {\n url = height !== undefined\n ? \"/cosmos/base/tendermint/v1beta1/blocks/\".concat(height)\n : \"/cosmos/base/tendermint/v1beta1/blocks/latest\";\n return [2 /*return*/, this.c.getRaw(url, params)];\n });\n });\n };\n return TendermintAPI;\n}(BaseAPI_1.BaseAPI));\nexports.TendermintAPI = TendermintAPI;\n//# sourceMappingURL=TendermintAPI.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TreasuryAPI = void 0;\nvar BaseAPI_1 = require(\"./BaseAPI\");\nvar core_1 = require(\"../../core\");\nvar TreasuryAPI = /** @class */ (function (_super) {\n __extends(TreasuryAPI, _super);\n function TreasuryAPI(lcd) {\n var _this = _super.call(this, lcd.apiRequester) || this;\n _this.lcd = lcd;\n return _this;\n }\n /**\n * Gets the current registered Tax caps for all denomination\n * @returns Coin[]\n */\n TreasuryAPI.prototype.taxCaps = function (params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (!this.lcd.config.isClassic) {\n throw new Error('Not supported for the network');\n }\n return [2 /*return*/, this.c\n .get(\"/terra/treasury/v1beta1/tax_caps\", params)\n .then(function (d) { return new core_1.Coins(d.tax_caps.map(function (c) { return new core_1.Coin(c.denom, c.tax_cap); })); })];\n });\n });\n };\n /**\n * Gets the current registered Tax Cap for a specified denomination.\n * @param denom denomination desired for Tax Cap query.\n */\n TreasuryAPI.prototype.taxCap = function (denom, params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (!this.lcd.config.isClassic) {\n throw new Error('Not supported for the network');\n }\n return [2 /*return*/, this.c\n .get(\"/terra/treasury/v1beta1/tax_caps/\".concat(denom), params)\n .then(function (d) { return new core_1.Coin(denom, d.tax_cap); })];\n });\n });\n };\n /**\n * Gets the current registered Tax Rate.\n */\n TreasuryAPI.prototype.taxRate = function (height, _params) {\n if (_params === void 0) { _params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n var params;\n return __generator(this, function (_a) {\n if (!this.lcd.config.isClassic) {\n throw new Error('Not supported for the network');\n }\n params = __assign({}, _params);\n if (height) {\n params.height = height;\n }\n return [2 /*return*/, this.c\n .get(\"/terra/treasury/v1beta1/tax_rate\", params)\n .then(function (d) { return new core_1.Dec(d.tax_rate); })];\n });\n });\n };\n /**\n * Gets the current registered Reward Weight monetary policy lever.\n */\n TreasuryAPI.prototype.rewardWeight = function (params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (!this.lcd.config.isClassic) {\n throw new Error('Not supported for the network');\n }\n return [2 /*return*/, this.c\n .get(\"/terra/treasury/v1beta1/reward_weight\", params)\n .then(function (d) { return new core_1.Dec(d.reward_weight); })];\n });\n });\n };\n /**\n * Gets the tax proceeds for the epoch.\n */\n TreasuryAPI.prototype.taxProceeds = function (params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (!this.lcd.config.isClassic) {\n throw new Error('Not supported for the network');\n }\n return [2 /*return*/, this.c\n .get(\"/terra/treasury/v1beta1/tax_proceeds\", params)\n .then(function (d) { return core_1.Coins.fromData(d.tax_proceeds); })];\n });\n });\n };\n /**\n * Gets the seigniorage proceeds for the epoch.\n */\n TreasuryAPI.prototype.seigniorageProceeds = function (params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (!this.lcd.config.isClassic) {\n throw new Error('Not supported for the network');\n }\n return [2 /*return*/, this.c\n .get(\"/terra/treasury/v1beta1/seigniorage_proceeds\", params)\n .then(function (d) { return new core_1.Coin('ujmes', d.seigniorage_proceeds); })];\n });\n });\n };\n /**\n * Gets the current Treasury module's parameters.\n */\n TreasuryAPI.prototype.parameters = function (params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (!this.lcd.config.isClassic) {\n throw new Error('Not supported for the network');\n }\n return [2 /*return*/, this.c\n .get(\"/terra/treasury/v1beta1/params\", params)\n .then(function (_a) {\n var d = _a.params;\n return ({\n tax_policy: core_1.PolicyConstraints.fromData(d.tax_policy),\n reward_policy: core_1.PolicyConstraints.fromData(d.reward_policy),\n mining_increment: new core_1.Dec(d.mining_increment),\n seigniorage_burden_target: new core_1.Dec(d.seigniorage_burden_target),\n window_long: Number.parseInt(d.window_long),\n window_short: Number.parseInt(d.window_short),\n window_probation: Number.parseInt(d.window_probation),\n });\n })];\n });\n });\n };\n return TreasuryAPI;\n}(BaseAPI_1.BaseAPI));\nexports.TreasuryAPI = TreasuryAPI;\n//# sourceMappingURL=TreasuryAPI.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TxAPI = exports.SimulateResponse = exports.isTxError = void 0;\nvar BaseAPI_1 = require(\"./BaseAPI\");\nvar core_1 = require(\"../../core\");\nvar hash_1 = require(\"../../util/hash\");\nvar core_2 = require(\"../../core\");\nfunction isTxError(x) {\n return (x.code !== undefined &&\n x.code !== 0 &&\n x.code !== '0');\n}\nexports.isTxError = isTxError;\nvar SimulateResponse = /** @class */ (function () {\n function SimulateResponse(gas_info, result) {\n this.gas_info = gas_info;\n this.result = result;\n }\n SimulateResponse.fromData = function (data) {\n return new SimulateResponse({\n gas_wanted: Number.parseInt(data.gas_info.gas_wanted),\n gas_used: Number.parseInt(data.gas_info.gas_used),\n }, data.result);\n };\n return SimulateResponse;\n}());\nexports.SimulateResponse = SimulateResponse;\nvar TxAPI = /** @class */ (function (_super) {\n __extends(TxAPI, _super);\n function TxAPI(lcd) {\n var _this = _super.call(this, lcd.apiRequester) || this;\n _this.lcd = lcd;\n return _this;\n }\n /**\n * Looks up a transaction on the blockchain, addressed by its hash\n * @param txHash transaction's hash\n */\n TxAPI.prototype.txInfo = function (txHash, params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n return [2 /*return*/, this.c\n .getRaw(\"/cosmos/tx/v1beta1/txs/\".concat(txHash), params)\n .then(function (v) { return core_1.TxInfo.fromData(v.tx_response, _this.lcd.config.isClassic); })];\n });\n });\n };\n /**\n * Builds a [[StdSignMsg]] that is ready to be signed by a [[Key]]. The appropriate\n * account number and sequence will be fetched live from the blockchain and added to\n * the resultant [[StdSignMsg]]. If no fee is provided, fee will be automatically\n * estimated using the parameters, simulated using a \"dummy fee\" with sourceAddress's\n * nonzero denominations in its balance.\n *\n * @param sourceAddress account address of signer\n * @param options TX generation options\n */\n TxAPI.prototype.create = function (signers, options) {\n return __awaiter(this, void 0, void 0, function () {\n var fee, msgs, memo, timeoutHeight, signerDatas, _i, signers_1, signer, sequenceNumber, publicKey, account;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n fee = options.fee;\n msgs = options.msgs, memo = options.memo, timeoutHeight = options.timeoutHeight;\n signerDatas = [];\n _i = 0, signers_1 = signers;\n _a.label = 1;\n case 1:\n if (!(_i < signers_1.length)) return [3 /*break*/, 5];\n signer = signers_1[_i];\n sequenceNumber = signer.sequenceNumber;\n publicKey = signer.publicKey;\n if (!(sequenceNumber === undefined || !publicKey)) return [3 /*break*/, 3];\n return [4 /*yield*/, this.lcd.auth.accountInfo(signer.address)];\n case 2:\n account = _a.sent();\n if (sequenceNumber === undefined) {\n sequenceNumber = account.getSequenceNumber();\n }\n if (!publicKey) {\n publicKey = account.getPublicKey();\n }\n _a.label = 3;\n case 3:\n signerDatas.push({\n sequenceNumber: sequenceNumber,\n publicKey: publicKey,\n });\n _a.label = 4;\n case 4:\n _i++;\n return [3 /*break*/, 1];\n case 5:\n if (!(fee === undefined)) return [3 /*break*/, 7];\n return [4 /*yield*/, this.lcd.tx.estimateFee(signerDatas, options)];\n case 6:\n fee = _a.sent();\n _a.label = 7;\n case 7: return [2 /*return*/, new core_1.Tx(new core_1.TxBody(msgs, memo || '', timeoutHeight || 0), new core_1.AuthInfo([], fee), [])];\n }\n });\n });\n };\n /**\n * Looks up transactions on the blockchain for the block height. If height is undefined,\n * gets the transactions for the latest block.\n * @param height block height\n */\n TxAPI.prototype.txInfosByHeight = function (height) {\n return __awaiter(this, void 0, void 0, function () {\n var blockInfo, txs, txhashes, txInfos, _i, txhashes_1, txhash, _a, _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4 /*yield*/, this.lcd.tendermint.blockInfo(height)];\n case 1:\n blockInfo = _c.sent();\n txs = blockInfo.block.data.txs;\n if (!!txs) return [3 /*break*/, 2];\n return [2 /*return*/, []];\n case 2:\n txhashes = txs.map(function (txdata) { return (0, hash_1.hashToHex)(txdata); });\n txInfos = [];\n _i = 0, txhashes_1 = txhashes;\n _c.label = 3;\n case 3:\n if (!(_i < txhashes_1.length)) return [3 /*break*/, 6];\n txhash = txhashes_1[_i];\n _b = (_a = txInfos).push;\n return [4 /*yield*/, this.txInfo(txhash)];\n case 4:\n _b.apply(_a, [_c.sent()]);\n _c.label = 5;\n case 5:\n _i++;\n return [3 /*break*/, 3];\n case 6: return [2 /*return*/, txInfos];\n }\n });\n });\n };\n /**\n * Estimates the transaction's fee by simulating it within the node\n * @param sourceAddress address that will pay the bill\n * @param msgs standard messages\n * @param options options for fee estimation\n */\n TxAPI.prototype.estimateFee = function (signers, options) {\n return __awaiter(this, void 0, void 0, function () {\n var gasPrices, gasAdjustment, feeDenoms, gas, gasPricesCoins, gasPricesCoinsFiltered, txBody, authInfo, tx, feeAmount;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n gasPrices = options.gasPrices || this.lcd.config.gasPrices;\n gasAdjustment = options.gasAdjustment || this.lcd.config.gasAdjustment;\n feeDenoms = options.feeDenoms || [\n this.lcd.config.isClassic ? 'ujmes' : 'ujmes',\n ];\n gas = options.gas;\n if (gasPrices) {\n gasPricesCoins = new core_1.Coins(gasPrices);\n if (feeDenoms) {\n gasPricesCoinsFiltered = gasPricesCoins.filter(function (c) {\n return feeDenoms.includes(c.denom);\n });\n if (gasPricesCoinsFiltered.toArray().length > 0) {\n gasPricesCoins = gasPricesCoinsFiltered;\n }\n }\n }\n txBody = new core_1.TxBody(options.msgs, options.memo || '');\n authInfo = new core_1.AuthInfo([], new core_1.Fee(0, new core_1.Coins()));\n tx = new core_1.Tx(txBody, authInfo, []);\n // fill empty signature\n tx.appendEmptySignatures(signers);\n if (!(!gas || gas === 'auto' || gas === '0')) return [3 /*break*/, 2];\n return [4 /*yield*/, this.estimateGas(tx, { gasAdjustment: gasAdjustment })];\n case 1:\n gas = (_a.sent()).toString();\n _a.label = 2;\n case 2:\n feeAmount = gasPricesCoins\n ? gasPricesCoins.mul(gas).toIntCeilCoins()\n : this.lcd.config.isClassic\n ? '0ujmes'\n : '0ujmes';\n return [2 /*return*/, new core_1.Fee(Number.parseInt(gas), feeAmount, '', '')];\n }\n });\n });\n };\n TxAPI.prototype.estimateGas = function (tx, options) {\n return __awaiter(this, void 0, void 0, function () {\n var gasAdjustment, simTx, authInfo, simulateRes;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n gasAdjustment = (options === null || options === void 0 ? void 0 : options.gasAdjustment) || this.lcd.config.gasAdjustment;\n simTx = tx;\n if (tx.signatures.length <= 0) {\n if (!(options && options.signers && options.signers.length > 0)) {\n throw Error('cannot append signature');\n }\n authInfo = new core_1.AuthInfo([], new core_1.Fee(0, new core_1.Coins()));\n simTx = new core_1.Tx(tx.body, authInfo, []);\n simTx.appendEmptySignatures(options.signers);\n }\n return [4 /*yield*/, this.c\n .post(\"/cosmos/tx/v1beta1/simulate\", {\n tx_bytes: this.encode(simTx),\n })\n .then(function (d) { return SimulateResponse.fromData(d); })];\n case 1:\n simulateRes = _a.sent();\n return [2 /*return*/, new core_1.Dec(gasAdjustment).mul(simulateRes.gas_info.gas_used).toNumber()];\n }\n });\n });\n };\n TxAPI.prototype.computeTax = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n throw new Error('Tax was removed from network');\n });\n });\n };\n /**\n * Encode a transaction to base64-encoded protobuf\n * @param tx transaction to encode\n */\n TxAPI.prototype.encode = function (tx) {\n return Buffer.from(tx.toBytes(this.lcd.config.isClassic)).toString('base64');\n };\n /**\n * Decode a transaction from base64-encoded protobuf\n * @param tx transaction string to decode\n */\n TxAPI.prototype.decode = function (encodedTx) {\n return core_1.Tx.fromBuffer(Buffer.from(encodedTx, 'base64'), this.lcd.config.isClassic);\n };\n /**\n * Get the transaction's hash\n * @param tx transaction to hash\n */\n TxAPI.prototype.hash = function (tx) {\n return __awaiter(this, void 0, void 0, function () {\n var txBytes;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.encode(tx)];\n case 1:\n txBytes = _a.sent();\n return [2 /*return*/, (0, hash_1.hashToHex)(txBytes)];\n }\n });\n });\n };\n TxAPI.prototype._broadcast = function (tx, mode) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n console.log(JSON.stringify({\n tx: tx,\n mode: mode,\n }));\n return [4 /*yield*/, this.c.post(\"/cosmos/tx/v1beta1/txs\", {\n tx_bytes: this.encode(tx),\n mode: mode,\n })];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n /**\n * Broadcast the transaction using \"sync\" mode, then wait for its inclusion in a block.\n *\n * This method polls txInfo using the txHash to confirm the transaction's execution.\n *\n * @param tx transaction to broadcast\n * @param timeout time in milliseconds to wait for transaction to be included in a block. defaults to 30000\n */\n TxAPI.prototype.broadcast = function (tx, timeout) {\n if (timeout === void 0) { timeout = 30000; }\n return __awaiter(this, void 0, void 0, function () {\n var POLL_INTERVAL, txResponse, result, txInfo, i, error_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n POLL_INTERVAL = 500;\n return [4 /*yield*/, this._broadcast(tx, 'BROADCAST_MODE_SYNC')];\n case 1:\n txResponse = (_a.sent()).tx_response;\n if (txResponse.code != undefined && txResponse.code != 0) {\n result = {\n height: Number.parseInt(txResponse.height),\n txhash: txResponse.txhash,\n raw_log: txResponse.raw_log,\n code: txResponse.code,\n codespace: txResponse.codespace,\n gas_used: 0,\n gas_wanted: 0,\n timestamp: '',\n logs: [],\n };\n return [2 /*return*/, result];\n }\n i = 0;\n _a.label = 2;\n case 2:\n if (!(i <= timeout / POLL_INTERVAL)) return [3 /*break*/, 9];\n _a.label = 3;\n case 3:\n _a.trys.push([3, 5, , 6]);\n return [4 /*yield*/, this.txInfo(txResponse.txhash)];\n case 4:\n txInfo = _a.sent();\n return [3 /*break*/, 6];\n case 5:\n error_1 = _a.sent();\n return [3 /*break*/, 6];\n case 6:\n if (txInfo) {\n return [3 /*break*/, 9];\n }\n return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(resolve, POLL_INTERVAL); })];\n case 7:\n _a.sent();\n _a.label = 8;\n case 8:\n i++;\n return [3 /*break*/, 2];\n case 9:\n if (!txInfo) {\n throw new Error(\"Transaction was not included in a block before timeout of \".concat(timeout, \"ms\"));\n }\n return [2 /*return*/, {\n txhash: txInfo.txhash,\n raw_log: txInfo.raw_log,\n gas_wanted: txInfo.gas_wanted,\n gas_used: txInfo.gas_used,\n height: +txInfo.height,\n logs: (txInfo.logs || []).map(function (l) { return core_2.TxLog.fromData(l); }),\n code: txInfo.code,\n codespace: txInfo.codespace,\n timestamp: txInfo.timestamp,\n }];\n }\n });\n });\n };\n /**\n * Broadcast the transaction using the \"block\" mode, waiting for its inclusion in the blockchain.\n * @param tx transaction to broadcast\n */\n TxAPI.prototype.broadcastBlock = function (tx) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this._broadcast(tx, 'BROADCAST_MODE_BLOCK').then(function (_a) {\n var d = _a.tx_response;\n var blockResult = {\n txhash: d.txhash,\n raw_log: d.raw_log,\n gas_wanted: Number.parseInt(d.gas_wanted),\n gas_used: Number.parseInt(d.gas_used),\n height: +d.height,\n logs: d.logs.map(function (l) { return core_2.TxLog.fromData(l); }),\n code: d.code,\n codespace: d.codespace,\n data: d.data,\n info: d.info,\n timestamp: d.timestamp,\n };\n return blockResult;\n })];\n });\n });\n };\n /**\n * NOTE: This is not a synchronous function and is unconventionally named. This function\n * can be await as it returns a `Promise`.\n *\n * Broadcast the transaction using the \"sync\" mode, returning after CheckTx() is performed.\n * @param tx transaction to broadcast\n */\n TxAPI.prototype.broadcastSync = function (tx) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this._broadcast(tx, 'BROADCAST_MODE_SYNC').then(function (_a) {\n var d = _a.tx_response;\n var blockResult = {\n height: +d.height,\n txhash: d.txhash,\n raw_log: d.raw_log,\n };\n if (d.code) {\n blockResult.code = d.code;\n }\n if (d.codespace) {\n blockResult.codespace = d.codespace;\n }\n return blockResult;\n })];\n });\n });\n };\n /**\n * Broadcast the transaction using the \"async\" mode, returns immediately (transaction might fail).\n * @param tx transaction to broadcast\n */\n TxAPI.prototype.broadcastAsync = function (tx) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this._broadcast(tx, 'BROADCAST_MODE_ASYNC').then(function (_a) {\n var d = _a.tx_response;\n return ({\n height: +d.height,\n txhash: d.txhash,\n });\n })];\n });\n });\n };\n /**\n * Search for transactions based on event attributes.\n * @param options\n */\n TxAPI.prototype.search = function (options) {\n var _a;\n return __awaiter(this, void 0, void 0, function () {\n var params;\n var _this = this;\n return __generator(this, function (_b) {\n params = new URLSearchParams();\n // build search params\n (_a = options.events) === null || _a === void 0 ? void 0 : _a.forEach(function (v) {\n return params.append('events', v.key === 'tx.height' ? \"\".concat(v.key, \"=\").concat(v.value) : \"\".concat(v.key, \"='\").concat(v.value, \"'\"));\n });\n delete options['events'];\n Object.entries(options).forEach(function (v) {\n params.append(v[0], v[1]);\n });\n return [2 /*return*/, this.c\n .getRaw(\"/cosmos/tx/v1beta1/txs\", params)\n .then(function (d) {\n return {\n txs: d.tx_responses.map(function (tx_response) {\n return core_1.TxInfo.fromData(tx_response, _this.lcd.config.isClassic);\n }),\n pagination: d.pagination,\n };\n })];\n });\n });\n };\n return TxAPI;\n}(BaseAPI_1.BaseAPI));\nexports.TxAPI = TxAPI;\n//# sourceMappingURL=TxAPI.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WasmAPI = void 0;\nvar BaseAPI_1 = require(\"./BaseAPI\");\nvar HistoryEntry_1 = require(\"../../core/wasm/HistoryEntry\");\nvar AbsoluteTxPosition_1 = require(\"../../core/wasm/AbsoluteTxPosition\");\nvar wasm_1 = require(\"../../core/wasm\");\nvar WasmAPI = /** @class */ (function (_super) {\n __extends(WasmAPI, _super);\n function WasmAPI(lcd) {\n var _this = _super.call(this, lcd.apiRequester) || this;\n _this.lcd = lcd;\n return _this;\n }\n WasmAPI.prototype.codeInfo = function (codeID, params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n var endpoint_1, endpoint;\n return __generator(this, function (_a) {\n if (this.lcd.config.isClassic) {\n endpoint_1 = \"/jmes/wasm/v1beta1/codes/\".concat(codeID);\n return [2 /*return*/, this.c\n .get(endpoint_1, params)\n .then(function (_a) {\n var d = _a.code_info;\n return ({\n code_id: Number.parseInt(d.code_id),\n code_hash: d.code_hash,\n creator: d.creator,\n });\n })];\n }\n endpoint = \"/cosmwasm/wasm/v1/code/\".concat(codeID);\n return [2 /*return*/, this.c\n .get(endpoint, params)\n .then(function (_a) {\n var d = _a.code_info;\n return ({\n code_id: +d.code_id,\n code_hash: d.data_hash,\n creator: d.creator,\n instantiate_permission: d.instantiate_permission\n ? wasm_1.AccessConfig.fromData(d.instantiate_permission)\n : undefined,\n });\n })];\n });\n });\n };\n WasmAPI.prototype.contractInfo = function (contractAddress, params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n var endpoint_2, _a, historyEntry, _, endpoint;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (this.lcd.config.isClassic) {\n endpoint_2 = \"/jmes/wasm/v1beta1/contracts/\".concat(contractAddress);\n return [2 /*return*/, this.c\n .get(endpoint_2, params)\n .then(function (_a) {\n var d = _a.contract_info;\n return ({\n code_id: Number.parseInt(d.code_id),\n address: d.address,\n creator: d.creator,\n admin: d.admin !== '' ? d.admin : undefined,\n init_msg: d.init_msg,\n });\n })];\n }\n return [4 /*yield*/, this.contractHistory(contractAddress)];\n case 1:\n _a = _b.sent(), historyEntry = _a[0], _ = _a[1];\n endpoint = \"/cosmwasm/wasm/v1/contract/\".concat(contractAddress);\n return [2 /*return*/, this.c\n .get(endpoint, params)\n .then(function (_a) {\n var d = _a.contract_info;\n return ({\n code_id: Number.parseInt(d.code_id),\n address: contractAddress,\n creator: d.creator,\n admin: d.admin !== '' ? d.admin : undefined,\n label: d.label !== '' ? d.label : undefined,\n init_msg: historyEntry[0].msg,\n created: d.created ? AbsoluteTxPosition_1.AbsoluteTxPosition.fromData(d.created) : undefined,\n ibc_port_id: d.ibc_port_id !== '' ? d.ibc_port_id : undefined,\n });\n })];\n }\n });\n });\n };\n WasmAPI.prototype.contractQuery = function (contractAddress, query, params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n var endpoint, query_msg, endpoint;\n return __generator(this, function (_a) {\n if (this.lcd.config.isClassic) {\n endpoint = \"/jmes/wasm/v1beta1/contracts/\".concat(contractAddress, \"/store\");\n return [2 /*return*/, this.c\n .get(endpoint, __assign(__assign({}, params), { query_msg: Buffer.from(JSON.stringify(query), 'utf-8').toString('base64') }))\n .then(function (d) { return d.query_result; })];\n }\n else {\n query_msg = Buffer.from(JSON.stringify(query), 'utf-8').toString('base64');\n endpoint = \"/cosmwasm/wasm/v1/contract/\".concat(contractAddress, \"/smart/\").concat(query_msg);\n return [2 /*return*/, this.c\n .get(endpoint, __assign({}, params))\n .then(function (d) { return d.data; })];\n }\n return [2 /*return*/];\n });\n });\n };\n WasmAPI.prototype.parameters = function (params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (!this.lcd.config.isClassic) {\n throw new Error('Not supported for the network');\n }\n return [2 /*return*/, this.c\n .get(\"/jmes/wasm/v1beta1/params\", params)\n .then(function (_a) {\n var d = _a.params;\n return ({\n max_contract_size: Number.parseInt(d.max_contract_size),\n max_contract_gas: Number.parseInt(d.max_contract_gas),\n max_contract_msg_size: Number.parseInt(d.max_contract_msg_size),\n });\n })];\n });\n });\n };\n WasmAPI.prototype.pinnedCodes = function (params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (this.lcd.config.isClassic) {\n throw new Error('Not supported for the network');\n }\n return [2 /*return*/, this.c\n .get(\"/cosmwasm/wasm/v1/codes/pinned\", params)\n .then(function (_a) {\n var d = _a.pinned_code;\n return ({\n code_ids: d.code_ids.map(function (code_id) { return Number.parseInt(code_id); }),\n });\n })];\n });\n });\n };\n WasmAPI.prototype.rawContractState = function (contractAddress, query_data, params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (this.lcd.config.isClassic) {\n throw new Error('Not supported for the network');\n }\n return [2 /*return*/, this.c\n .get(\"/cosmwasm/wasm/v1/contract/\".concat(contractAddress, \"/raw/\").concat(Buffer.from(query_data, 'utf-8').toString('base64')), params)\n .then(function (_a) {\n var d = _a.result;\n return ({\n data: Buffer.from(d.data, 'base64').toString(),\n });\n })];\n });\n });\n };\n WasmAPI.prototype.smartContractState = function (contractAddress, query_data, params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (this.lcd.config.isClassic) {\n throw new Error('Not supported for the network');\n }\n return [2 /*return*/, this.c\n .get(\"/cosmwasm/wasm/v1/contract/\".concat(contractAddress, \"/smart/\").concat(Buffer.from(JSON.stringify(query_data), 'utf-8').toString('base64')), params)\n .then(function (_a) {\n var d = _a.result;\n return ({\n data: d.data,\n });\n })];\n });\n });\n };\n WasmAPI.prototype.contractHistory = function (contractAddress, params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (this.lcd.config.isClassic) {\n throw new Error('Not supported for the network');\n }\n return [2 /*return*/, this.c\n .get(\"/cosmwasm/wasm/v1/contract/\".concat(contractAddress, \"/history\"), params)\n .then(function (d) { return [\n d.entries.map(function (entry) { return HistoryEntry_1.HistoryEntry.fromData(entry); }),\n d.pagination,\n ]; })];\n });\n });\n };\n WasmAPI.prototype.contractStates = function (contractAddress, params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (this.lcd.config.isClassic) {\n throw new Error('Not supported for the network');\n }\n return [2 /*return*/, this.c\n .get(\"/cosmwasm/wasm/v1/contract/\".concat(contractAddress, \"/state\"), params)\n .then(function (d) { return [\n d.models.map(function (model) {\n return {\n key: model.key,\n value: model.value,\n };\n }),\n d.pagination,\n ]; })];\n });\n });\n };\n WasmAPI.prototype.allCodes = function (params) {\n if (params === void 0) { params = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (this.lcd.config.isClassic) {\n throw new Error('Not supported for the network');\n }\n return [2 /*return*/, this.c\n .get(\"/cosmwasm/wasm/v1/code\", params)\n .then(function (d) { return [\n d.codeInfos.map(function (codeInfo) {\n return {\n code_id: +codeInfo.code_id,\n code_hash: codeInfo.data_hash,\n creator: codeInfo.creator,\n instantiate_permission: codeInfo.instantiate_permission\n ? wasm_1.AccessConfig.fromData(codeInfo.instantiate_permission)\n : undefined,\n };\n }),\n d.pagination,\n ]; })];\n });\n });\n };\n return WasmAPI;\n}(BaseAPI_1.BaseAPI));\nexports.WasmAPI = WasmAPI;\n//# sourceMappingURL=WasmAPI.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./AuthAPI\"), exports);\n__exportStar(require(\"./BankAPI\"), exports);\n__exportStar(require(\"./DistributionAPI\"), exports);\n__exportStar(require(\"./FeeGrantAPI\"), exports);\n__exportStar(require(\"./GovAPI\"), exports);\n__exportStar(require(\"./MarketAPI\"), exports);\n__exportStar(require(\"./AuthzAPI\"), exports);\n__exportStar(require(\"./OracleAPI\"), exports);\n__exportStar(require(\"./SlashingAPI\"), exports);\n__exportStar(require(\"./StakingAPI\"), exports);\n__exportStar(require(\"./TendermintAPI\"), exports);\n__exportStar(require(\"./TreasuryAPI\"), exports);\n__exportStar(require(\"./TxAPI\"), exports);\n__exportStar(require(\"./WasmAPI\"), exports);\n__exportStar(require(\"./MintAPI\"), exports);\n__exportStar(require(\"./IbcAPI\"), exports);\n__exportStar(require(\"./IbcTransferAPI\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ripemd160 = exports.sha256 = exports.hashToHex = void 0;\nvar SHA256_1 = require(\"jscrypto/SHA256\");\nvar RIPEMD160_1 = require(\"jscrypto/RIPEMD160\");\nvar Base64_1 = require(\"jscrypto/Base64\");\nvar jscrypto_1 = require(\"jscrypto\");\n/*\nDEPRECATED (was used by crypto-js)\nfunction byteArrayToWordArray(ba: Uint8Array): CryptoJS.LibWordArray {\n const wa: number[] = [];\n for (let i = 0; i < ba.length; i += 1) {\n wa[(i / 4) | 0] |= ba[i] << (24 - 8 * i);\n }\n return crypto.lib.WordArray.create(wa);\n}*/\n/**\n * Calculates the transaction hash from Amino-encoded string.\n * @param data Amino-encoded string (base64)\n */\nfunction hashToHex(data) {\n return SHA256_1.SHA256.hash(Base64_1.Base64.parse(data)).toString().toUpperCase();\n}\nexports.hashToHex = hashToHex;\n/**\n * Calculates the transaction hash from Amino-encoded string.\n * @param data raw bytes\n */\nfunction sha256(data) {\n return SHA256_1.SHA256.hash(new jscrypto_1.Word32Array(data)).toUint8Array();\n}\nexports.sha256 = sha256;\nfunction ripemd160(data) {\n return RIPEMD160_1.RIPEMD160.hash(new jscrypto_1.Word32Array(data)).toUint8Array();\n}\nexports.ripemd160 = ripemd160;\n//# sourceMappingURL=hash.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.removeNull = exports.JSONSerializable = exports.prepareSignBytes = void 0;\nfunction prepareSignBytes(obj) {\n if (Array.isArray(obj)) {\n return obj.map(prepareSignBytes);\n }\n // string, number, or null\n if (typeof obj !== \"object\" || obj === null) {\n return obj;\n }\n var sorted = {};\n Object.keys(obj)\n .sort()\n .forEach(function (key) {\n if (obj[key] === undefined || obj[key] === null)\n return;\n sorted[key] = prepareSignBytes(obj[key]);\n });\n return sorted;\n}\nexports.prepareSignBytes = prepareSignBytes;\nvar JSONSerializable = /** @class */ (function () {\n function JSONSerializable() {\n }\n JSONSerializable.prototype.toJSON = function (isClassic) {\n return JSON.stringify(prepareSignBytes(this.toData(isClassic)));\n };\n JSONSerializable.prototype.toAminoJSON = function (isClassic) {\n return JSON.stringify(prepareSignBytes(this.toAmino(isClassic)));\n };\n return JSONSerializable;\n}());\nexports.JSONSerializable = JSONSerializable;\nfunction removeNull(obj) {\n if (obj !== null && typeof obj === 'object') {\n return Object.entries(obj)\n .filter(function (_a) {\n var v = _a[1];\n return v != null;\n })\n .reduce(function (acc, _a) {\n var _b;\n var k = _a[0], v = _a[1];\n return (__assign(__assign({}, acc), (_b = {}, _b[k] = v === Object(v) && !Array.isArray(v) ? removeNull(v) : v, _b)));\n }, {});\n }\n return obj;\n}\nexports.removeNull = removeNull;\n//# sourceMappingURL=json.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar getFeed_1 = __importDefault(require(\"./methods/getFeed\"));\nvar getAuthor_1 = __importDefault(require(\"./methods/getAuthor\"));\nvar getAuthors_1 = __importDefault(require(\"./methods/getAuthors\"));\nvar getAllItems_1 = __importDefault(require(\"./methods/getAllItems\"));\nvar getItem_1 = __importDefault(require(\"./methods/getItem\"));\nvar mintItem_1 = __importDefault(require(\"./methods/mintItem\"));\nvar findItem_1 = __importDefault(require(\"./methods/findItem\"));\nvar postItemOffer_1 = __importDefault(require(\"./methods/postItemOffer\"));\nvar postItemVote_1 = __importDefault(require(\"./methods/postItemVote\"));\n/**\n * Marketplace API is a specific provider we provide to our DAO product built on top of JMES Protocol\n */\nvar MarketplaceAPI = /** @class */ (function () {\n function MarketplaceAPI(config) {\n var _a, _b, _c, _d;\n this.endpoint = {\n api_url: (_b = (_a = config === null || config === void 0 ? void 0 : config.endpoint) === null || _a === void 0 ? void 0 : _a.api_url) !== null && _b !== void 0 ? _b : 'http://51.38.52.37:3001',\n images_url: (_d = (_c = config === null || config === void 0 ? void 0 : config.endpoint) === null || _c === void 0 ? void 0 : _c.images_url) !== null && _d !== void 0 ? _d : 'http://51.38.52.37:3001/images'\n };\n }\n return MarketplaceAPI;\n}());\nexports.default = MarketplaceAPI;\n;\nMarketplaceAPI.prototype.getAuthor = getAuthor_1.default;\nMarketplaceAPI.prototype.getAuthors = getAuthors_1.default;\nMarketplaceAPI.prototype.getFeed = getFeed_1.default;\nMarketplaceAPI.prototype.getItem = getItem_1.default;\nMarketplaceAPI.prototype.getAllItems = getAllItems_1.default;\nMarketplaceAPI.prototype.findItem = findItem_1.default;\nMarketplaceAPI.prototype.postItemOffer = postItemOffer_1.default;\nMarketplaceAPI.prototype.postItemVote = postItemVote_1.default;\nMarketplaceAPI.prototype.mintItem = mintItem_1.default;\n//# sourceMappingURL=MarketplaceAPI.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction findItem(findParams) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n console.log('Find Item for search', findParams);\n console.log({ findParams: findParams });\n return [2 /*return*/];\n });\n });\n}\nexports.default = findItem;\n;\n//# sourceMappingURL=findItem.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar axios_1 = __importDefault(require(\"axios\"));\nfunction getAllItems() {\n return __awaiter(this, void 0, void 0, function () {\n var endpoint, url;\n return __generator(this, function (_a) {\n endpoint = this.endpoint;\n url = \"\".concat(endpoint.api_url, \"/items\");\n return [2 /*return*/, axios_1.default.get(url)];\n });\n });\n}\nexports.default = getAllItems;\n;\n//# sourceMappingURL=getAllItems.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar axios_1 = __importDefault(require(\"axios\"));\nfunction getAuthor() {\n return __awaiter(this, void 0, void 0, function () {\n var endpoint, url;\n return __generator(this, function (_a) {\n endpoint = this.endpoint;\n url = \"\".concat(endpoint.api_url, \"/author\");\n return [2 /*return*/, axios_1.default.get(url)];\n });\n });\n}\nexports.default = getAuthor;\n;\n//# sourceMappingURL=getAuthor.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar axios_1 = __importDefault(require(\"axios\"));\nfunction getAuthors() {\n return __awaiter(this, void 0, void 0, function () {\n var endpoint, url;\n return __generator(this, function (_a) {\n endpoint = this.endpoint;\n url = \"\".concat(endpoint.api_url, \"/authors\");\n return [2 /*return*/, axios_1.default.get(url)];\n });\n });\n}\nexports.default = getAuthors;\n;\n//# sourceMappingURL=getAuthors.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar axios_1 = __importDefault(require(\"axios\"));\nfunction getFeed(optionalProps) {\n return __awaiter(this, void 0, void 0, function () {\n var endpoint, url, config;\n return __generator(this, function (_a) {\n console.log('Get feed');\n endpoint = this.endpoint;\n url = \"\".concat(endpoint.api_url, \"/feed\");\n config = {\n headers: {}\n };\n if (optionalProps.token) {\n // @ts-ignore\n config.headers['Authorization'] = \"Bearer \".concat(optionalProps.token);\n }\n return [2 /*return*/, axios_1.default.get(url, config)];\n });\n });\n}\nexports.default = getFeed;\n;\n//# sourceMappingURL=getFeed.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar axios_1 = __importDefault(require(\"axios\"));\nfunction getItem(itemIdentifier) {\n return __awaiter(this, void 0, void 0, function () {\n var endpoint, url;\n return __generator(this, function (_a) {\n console.log('Get Item for identity identifier', itemIdentifier);\n endpoint = this.endpoint;\n url = \"\".concat(endpoint.api_url, \"/item/\").concat(itemIdentifier);\n return [2 /*return*/, axios_1.default.get(url)];\n });\n });\n}\nexports.default = getItem;\n;\n//# sourceMappingURL=getItem.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar axios_1 = __importDefault(require(\"axios\"));\nvar FormData = require('form-data');\nfunction mintItem(mintParams) {\n return __awaiter(this, void 0, void 0, function () {\n var endpoint, url, formData;\n return __generator(this, function (_a) {\n endpoint = this.endpoint;\n url = \"\".concat(endpoint.api_url, \"/item\");\n console.log({ mintParams: mintParams });\n formData = new FormData();\n formData.append('image', mintParams.image);\n formData.append('author', mintParams.author);\n formData.append('title', mintParams.title);\n formData.append('minPrice', mintParams.minPrice);\n formData.append('shares', mintParams.shares);\n formData.append('genre', mintParams.genre);\n formData.append('about', mintParams.about);\n return [2 /*return*/, axios_1.default.post(url, formData, {\n headers: {\n \"Content-Type\": \"multipart/form-data\",\n },\n })];\n });\n });\n}\nexports.default = mintItem;\n;\n//# sourceMappingURL=mintItem.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar axios_1 = __importDefault(require(\"axios\"));\nvar FormData = require('form-data');\nfunction postItemOffer(itemOfferParams) {\n return __awaiter(this, void 0, void 0, function () {\n var endpoint, identifier, price, url;\n return __generator(this, function (_a) {\n endpoint = this.endpoint;\n identifier = itemOfferParams.identifier, price = itemOfferParams.price;\n url = \"\".concat(endpoint.api_url, \"/item/\").concat(identifier, \"/offer\");\n return [2 /*return*/, axios_1.default.post(url, { price: price })];\n });\n });\n}\nexports.default = postItemOffer;\n;\n//# sourceMappingURL=postItemOffer.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar axios_1 = __importDefault(require(\"axios\"));\nfunction postItemVote(itemVoteParams, optionalProps) {\n return __awaiter(this, void 0, void 0, function () {\n var endpoint, identifier, direction, url, config;\n return __generator(this, function (_a) {\n endpoint = this.endpoint;\n identifier = itemVoteParams.identifier, direction = itemVoteParams.direction;\n url = \"\".concat(endpoint.api_url, \"/item/\").concat(identifier, \"/vote\");\n config = {\n headers: {}\n };\n if (optionalProps.token) {\n // @ts-ignore\n config.headers['Authorization'] = \"Bearer \".concat(optionalProps.token);\n }\n return [2 /*return*/, axios_1.default.post(url, { direction: direction }, config)];\n });\n });\n}\nexports.default = postItemVote;\n;\n//# sourceMappingURL=postItemVote.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Core = void 0;\n__exportStar(require(\"./Client\"), exports);\n__exportStar(require(\"./primitives\"), exports);\nexports.Core = __importStar(require(\"./Client/providers/LCDClient/core\"));\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Account = void 0;\nvar elliptic = __importStar(require(\"elliptic\"));\nvar core_1 = require(\"../../Client/providers/LCDClient/core\");\nvar key_1 = require(\"../../Client/providers/LCDClient/key\");\nvar LCDClient_1 = require(\"../../Client/providers/LCDClient/lcd/LCDClient\");\nvar Account = /** @class */ (function () {\n function Account(key, accountIndex, lcdcUrl) {\n if (accountIndex === void 0) { accountIndex = 0; }\n this.lcdc = null;\n this.lcdcUrl = lcdcUrl !== null && lcdcUrl !== void 0 ? lcdcUrl : 'http://51.38.52.37:1317';\n // this.privateKey = key.derivePath(`m/0/${index}`);\n // this.derivableAccountKey = key;\n this.derivableAccountKey = key.derivePath(\"m/\".concat(accountIndex, \"'\"));\n // this.test = key.derivePath(`m/${accountIndex}'/0/0`).toAddress();\n // this.test2 = key.derivePath(`m/${accountIndex}'`).derivePath('m/0/0').toAddress();\n this.accountIndex = accountIndex;\n }\n Account.prototype.getAddress = function (index) {\n if (index === void 0) { index = 0; }\n return this.derivableAccountKey.derivePath(\"m/0/\".concat(index)).toAddress();\n // return this.derivableAccountKey.toAddress();\n };\n Account.prototype.getPrivate = function (index) {\n if (index === void 0) { index = 0; }\n return this.derivableAccountKey.derivePath(\"m/0/\".concat(index)).toPrivate();\n };\n Account.prototype.getPublic = function (index) {\n if (index === void 0) { index = 0; }\n return this.derivableAccountKey.derivePath(\"m/0/\".concat(index)).toPublic();\n };\n Account.prototype.signMessage = function (message, index) {\n if (index === void 0) { index = 0; }\n var privateKey = this.getPrivate(index);\n var ec = new elliptic.ec('secp256k1');\n var key = ec.keyFromPrivate(privateKey);\n var sign = key.sign(message.toString()).toDER();\n // @ts-ignore\n return Buffer.from(sign);\n };\n Account.prototype.verifySignature = function (signature, message, publicKey) {\n var ec = new elliptic.ec('secp256k1');\n var isValid = false;\n if (!publicKey) {\n throw new Error('Expected publicKey');\n }\n // We verify a publicKey\n var pubKey = ec.keyFromPublic(publicKey, 'hex');\n isValid = pubKey.verify(message.toString(), Buffer.from(signature, 'hex'));\n return isValid;\n };\n Account.prototype.getLcdcClient = function (lcdcUrl) {\n return __awaiter(this, void 0, void 0, function () {\n var URL, lcdc;\n return __generator(this, function (_a) {\n URL = lcdcUrl !== null && lcdcUrl !== void 0 ? lcdcUrl : this.lcdcUrl;\n console.log({ URL: URL });\n if (!this.lcdc) {\n lcdc = new LCDClient_1.LCDClient({\n chainID: 'jmes-888',\n // chainID: 'testing',\n URL: URL,\n isClassic: true\n });\n this.lcdc = lcdc;\n }\n return [2 /*return*/, this.lcdc];\n });\n });\n };\n Account.prototype.getBalance = function (address) {\n return __awaiter(this, void 0, void 0, function () {\n var lcdcClient, balance, e_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.getLcdcClient()];\n case 1:\n lcdcClient = _a.sent();\n _a.label = 2;\n case 2:\n _a.trys.push([2, 4, , 5]);\n return [4 /*yield*/, lcdcClient.bank.balance(address !== null && address !== void 0 ? address : this.getAddress())];\n case 3:\n balance = (_a.sent())[0];\n return [2 /*return*/, balance.get('ujmes') || new core_1.Coin(\"ujmes\", 0)];\n case 4:\n e_1 = _a.sent();\n console.log(e_1);\n throw e_1;\n case 5: return [2 /*return*/];\n }\n });\n });\n };\n // @ts-ignore\n Account.prototype.sendTransaction = function (transactionOpts, lcdcUrl) {\n return __awaiter(this, void 0, void 0, function () {\n var send, txOpts, URL, lcdc;\n return __generator(this, function (_a) {\n send = new core_1.MsgSend(this.getAddress(), transactionOpts.recipientAddress, { ujmes: transactionOpts.recipientAmount });\n txOpts = { msgs: [send] };\n if (transactionOpts.memo) {\n //@ts-ignore\n txOpts.memo = transactionOpts.memo;\n }\n URL = lcdcUrl !== null && lcdcUrl !== void 0 ? lcdcUrl : 'http://51.38.52.37:1317';\n lcdc = new LCDClient_1.LCDClient({\n chainID: 'jmes-888',\n // chainID: 'testing',\n URL: URL,\n isClassic: true\n });\n // @ts-ignore\n return [2 /*return*/, lcdc.wallet(new key_1.RawKey(this.getPrivate()))\n //@ts-ignore\n .createAndSignTx(txOpts)\n //@ts-ignore\n .then(function (tx) { return lcdc.tx.broadcast(tx); })\n //@ts-ignore\n .then(function (result) {\n console.log(\"TX hash: \".concat(result.txhash));\n return result;\n }).catch(function (e) {\n console.log(e);\n throw e;\n })];\n });\n });\n };\n return Account;\n}());\nexports.Account = Account;\n;\n//# sourceMappingURL=Account.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./Account\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DerivableKey = void 0;\nvar hash_1 = require(\"../../Client/providers/LCDClient/util/hash\");\nvar bech32_1 = require(\"bech32\");\nvar elliptic = __importStar(require(\"elliptic\"));\nvar DerivableKey = /** @class */ (function () {\n // @ts-ignore\n function DerivableKey(hdKey) {\n //@ts-ignore\n var buffPrivKey = Buffer.from(hdKey.privateKey);\n this.privateKey = buffPrivKey;\n this.hdKey = hdKey;\n }\n DerivableKey.prototype.derivePath = function (path) {\n var derivedHD = this.hdKey.derive(path);\n return new DerivableKey(derivedHD);\n };\n DerivableKey.prototype.toAddress = function () {\n var hash = (0, hash_1.ripemd160)((0, hash_1.sha256)(this.toPublic()));\n return bech32_1.bech32.encode('jmes', bech32_1.bech32.toWords(hash));\n };\n DerivableKey.prototype.toPrivate = function () {\n return this.privateKey;\n };\n DerivableKey.prototype.toPublic = function () {\n var ec = new elliptic.ec('secp256k1');\n var key = ec.keyFromPrivate(this.toPrivate());\n var publicKey = key.getPublic(true, 'hex');\n return Buffer.from(publicKey, 'hex');\n };\n DerivableKey.prototype.sign = function (message) {\n return this.hdKey.sign(message);\n };\n DerivableKey.prototype.verify = function (signature) {\n return this.hdKey.verify(signature);\n };\n return DerivableKey;\n}());\nexports.DerivableKey = DerivableKey;\n//# sourceMappingURL=DerivableKey.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./DerivableKey\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Mnemonic = void 0;\nvar crypto = __importStar(require(\"crypto\"));\nvar ethers_1 = require(\"ethers\");\nvar bip39 = __importStar(require(\"bip39\"));\nvar DerivableKey_1 = require(\"../DerivableKey\");\nvar bip32 = __importStar(require(\"@scure/bip32\"));\nvar Mnemonic = /** @class */ (function () {\n function Mnemonic(mnemonic, password) {\n this.mnemonic = (mnemonic) ? mnemonic : Mnemonic.generateMnemonic();\n // FIXME: that's bad. Only valid for dev times...\n this.password = password !== null && password !== void 0 ? password : null;\n }\n Mnemonic.generateMnemonic = function (overwroteRandomBytes) {\n if (overwroteRandomBytes === void 0) { overwroteRandomBytes = null; }\n var getRandomValuesFn = (crypto && crypto.webcrypto)\n // FIX: Binding done to fix specific issue with nodev18 (https://github.com/cloudflare/miniflare/pull/216)\n ? crypto.webcrypto.getRandomValues.bind(crypto.webcrypto)\n : crypto.getRandomValues;\n var uintArray = new Uint8Array(32);\n // @ts-ignore\n var randomBytes = (overwroteRandomBytes !== null) ? overwroteRandomBytes : getRandomValuesFn(uintArray);\n // @ts-ignore\n var mnemonic = ethers_1.ethers.utils.entropyToMnemonic(randomBytes);\n return mnemonic;\n };\n Mnemonic.mnemonicToSeed = function (mnemonic, password) {\n return (password) ? bip39.mnemonicToSeedSync(mnemonic, password) : bip39.mnemonicToSeedSync(mnemonic);\n };\n Mnemonic.prototype.toSeed = function () {\n return Mnemonic.mnemonicToSeed(this.mnemonic, this.password);\n };\n // @ts-ignore\n Mnemonic.prototype.toMasterDerivableKey = function (opts) {\n if (opts === void 0) { opts = { account: 0, index: 0 }; }\n var seed = this.toSeed();\n var masterKey = bip32.HDKey.fromMasterSeed(seed);\n return new DerivableKey_1.DerivableKey(masterKey);\n };\n return Mnemonic;\n}());\nexports.Mnemonic = Mnemonic;\n;\n//# sourceMappingURL=Mnemonic.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./Mnemonic\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Wallet = void 0;\nvar Account_1 = require(\"../Account\");\nvar Wallet = /** @class */ (function () {\n function Wallet(chainDerivedKey, lcdcUrl) {\n this.chainDerivedKey = chainDerivedKey;\n this.lcdcUrl = lcdcUrl !== null && lcdcUrl !== void 0 ? lcdcUrl : null;\n }\n Wallet.prototype.getAccount = function (index) {\n if (index === void 0) { index = 0; }\n return new Account_1.Account(this.chainDerivedKey, index, this.lcdcUrl);\n };\n Wallet.prototype.signMessage = function (message) {\n console.log({ message: message });\n };\n Wallet.prototype.broadcastSignedMessage = function (signedMessage) {\n console.log({ signedMessage: signedMessage });\n };\n return Wallet;\n}());\nexports.Wallet = Wallet;\n;\n//# sourceMappingURL=Wallet.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./Wallet\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./Account\"), exports);\n__exportStar(require(\"./Mnemonic\"), exports);\n__exportStar(require(\"./DerivableKey\"), exports);\n__exportStar(require(\"./Wallet\"), exports);\n//# sourceMappingURL=index.js.map","'use strict'\nvar ALPHABET = 'qpzry9x8gf2tvdw0s3jn54khce6mua7l'\n\n// pre-compute lookup table\nvar ALPHABET_MAP = {}\nfor (var z = 0; z < ALPHABET.length; z++) {\n var x = ALPHABET.charAt(z)\n\n if (ALPHABET_MAP[x] !== undefined) throw new TypeError(x + ' is ambiguous')\n ALPHABET_MAP[x] = z\n}\n\nfunction polymodStep (pre) {\n var b = pre >> 25\n return ((pre & 0x1FFFFFF) << 5) ^\n (-((b >> 0) & 1) & 0x3b6a57b2) ^\n (-((b >> 1) & 1) & 0x26508e6d) ^\n (-((b >> 2) & 1) & 0x1ea119fa) ^\n (-((b >> 3) & 1) & 0x3d4233dd) ^\n (-((b >> 4) & 1) & 0x2a1462b3)\n}\n\nfunction prefixChk (prefix) {\n var chk = 1\n for (var i = 0; i < prefix.length; ++i) {\n var c = prefix.charCodeAt(i)\n if (c < 33 || c > 126) return 'Invalid prefix (' + prefix + ')'\n\n chk = polymodStep(chk) ^ (c >> 5)\n }\n chk = polymodStep(chk)\n\n for (i = 0; i < prefix.length; ++i) {\n var v = prefix.charCodeAt(i)\n chk = polymodStep(chk) ^ (v & 0x1f)\n }\n return chk\n}\n\nfunction encode (prefix, words, LIMIT) {\n LIMIT = LIMIT || 90\n if ((prefix.length + 7 + words.length) > LIMIT) throw new TypeError('Exceeds length limit')\n\n prefix = prefix.toLowerCase()\n\n // determine chk mod\n var chk = prefixChk(prefix)\n if (typeof chk === 'string') throw new Error(chk)\n\n var result = prefix + '1'\n for (var i = 0; i < words.length; ++i) {\n var x = words[i]\n if ((x >> 5) !== 0) throw new Error('Non 5-bit word')\n\n chk = polymodStep(chk) ^ x\n result += ALPHABET.charAt(x)\n }\n\n for (i = 0; i < 6; ++i) {\n chk = polymodStep(chk)\n }\n chk ^= 1\n\n for (i = 0; i < 6; ++i) {\n var v = (chk >> ((5 - i) * 5)) & 0x1f\n result += ALPHABET.charAt(v)\n }\n\n return result\n}\n\nfunction __decode (str, LIMIT) {\n LIMIT = LIMIT || 90\n if (str.length < 8) return str + ' too short'\n if (str.length > LIMIT) return 'Exceeds length limit'\n\n // don't allow mixed case\n var lowered = str.toLowerCase()\n var uppered = str.toUpperCase()\n if (str !== lowered && str !== uppered) return 'Mixed-case string ' + str\n str = lowered\n\n var split = str.lastIndexOf('1')\n if (split === -1) return 'No separator character for ' + str\n if (split === 0) return 'Missing prefix for ' + str\n\n var prefix = str.slice(0, split)\n var wordChars = str.slice(split + 1)\n if (wordChars.length < 6) return 'Data too short'\n\n var chk = prefixChk(prefix)\n if (typeof chk === 'string') return chk\n\n var words = []\n for (var i = 0; i < wordChars.length; ++i) {\n var c = wordChars.charAt(i)\n var v = ALPHABET_MAP[c]\n if (v === undefined) return 'Unknown character ' + c\n chk = polymodStep(chk) ^ v\n\n // not in the checksum?\n if (i + 6 >= wordChars.length) continue\n words.push(v)\n }\n\n if (chk !== 1) return 'Invalid checksum for ' + str\n return { prefix: prefix, words: words }\n}\n\nfunction decodeUnsafe () {\n var res = __decode.apply(null, arguments)\n if (typeof res === 'object') return res\n}\n\nfunction decode (str) {\n var res = __decode.apply(null, arguments)\n if (typeof res === 'object') return res\n\n throw new Error(res)\n}\n\nfunction convert (data, inBits, outBits, pad) {\n var value = 0\n var bits = 0\n var maxV = (1 << outBits) - 1\n\n var result = []\n for (var i = 0; i < data.length; ++i) {\n value = (value << inBits) | data[i]\n bits += inBits\n\n while (bits >= outBits) {\n bits -= outBits\n result.push((value >> bits) & maxV)\n }\n }\n\n if (pad) {\n if (bits > 0) {\n result.push((value << (outBits - bits)) & maxV)\n }\n } else {\n if (bits >= inBits) return 'Excess padding'\n if ((value << (outBits - bits)) & maxV) return 'Non-zero padding'\n }\n\n return result\n}\n\nfunction toWordsUnsafe (bytes) {\n var res = convert(bytes, 8, 5, true)\n if (Array.isArray(res)) return res\n}\n\nfunction toWords (bytes) {\n var res = convert(bytes, 8, 5, true)\n if (Array.isArray(res)) return res\n\n throw new Error(res)\n}\n\nfunction fromWordsUnsafe (words) {\n var res = convert(words, 5, 8, false)\n if (Array.isArray(res)) return res\n}\n\nfunction fromWords (words) {\n var res = convert(words, 5, 8, false)\n if (Array.isArray(res)) return res\n\n throw new Error(res)\n}\n\nmodule.exports = {\n decodeUnsafe: decodeUnsafe,\n decode: decode,\n encode: encode,\n toWordsUnsafe: toWordsUnsafe,\n toWords: toWords,\n fromWordsUnsafe: fromWordsUnsafe,\n fromWords: fromWords\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.output = exports.exists = exports.hash = exports.bytes = exports.bool = exports.number = void 0;\nfunction number(n) {\n if (!Number.isSafeInteger(n) || n < 0)\n throw new Error(`Wrong positive integer: ${n}`);\n}\nexports.number = number;\nfunction bool(b) {\n if (typeof b !== 'boolean')\n throw new Error(`Expected boolean, not ${b}`);\n}\nexports.bool = bool;\nfunction bytes(b, ...lengths) {\n if (!(b instanceof Uint8Array))\n throw new TypeError('Expected Uint8Array');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new TypeError(`Expected Uint8Array of length ${lengths}, not of length=${b.length}`);\n}\nexports.bytes = bytes;\nfunction hash(hash) {\n if (typeof hash !== 'function' || typeof hash.create !== 'function')\n throw new Error('Hash should be wrapped by utils.wrapConstructor');\n number(hash.outputLen);\n number(hash.blockLen);\n}\nexports.hash = hash;\nfunction exists(instance, checkFinished = true) {\n if (instance.destroyed)\n throw new Error('Hash instance has been destroyed');\n if (checkFinished && instance.finished)\n throw new Error('Hash#digest() has already been called');\n}\nexports.exists = exists;\nfunction output(out, instance) {\n bytes(out);\n const min = instance.outputLen;\n if (out.length < min) {\n throw new Error(`digestInto() expects output buffer of length at least ${min}`);\n }\n}\nexports.output = output;\nconst assert = {\n number,\n bool,\n bytes,\n hash,\n exists,\n output,\n};\nexports.default = assert;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SHA2 = void 0;\nconst _assert_js_1 = require(\"./_assert.js\");\nconst utils_js_1 = require(\"./utils.js\");\n// Polyfill for Safari 14\nfunction setBigUint64(view, byteOffset, value, isLE) {\n if (typeof view.setBigUint64 === 'function')\n return view.setBigUint64(byteOffset, value, isLE);\n const _32n = BigInt(32);\n const _u32_max = BigInt(0xffffffff);\n const wh = Number((value >> _32n) & _u32_max);\n const wl = Number(value & _u32_max);\n const h = isLE ? 4 : 0;\n const l = isLE ? 0 : 4;\n view.setUint32(byteOffset + h, wh, isLE);\n view.setUint32(byteOffset + l, wl, isLE);\n}\n// Base SHA2 class (RFC 6234)\nclass SHA2 extends utils_js_1.Hash {\n constructor(blockLen, outputLen, padOffset, isLE) {\n super();\n this.blockLen = blockLen;\n this.outputLen = outputLen;\n this.padOffset = padOffset;\n this.isLE = isLE;\n this.finished = false;\n this.length = 0;\n this.pos = 0;\n this.destroyed = false;\n this.buffer = new Uint8Array(blockLen);\n this.view = (0, utils_js_1.createView)(this.buffer);\n }\n update(data) {\n _assert_js_1.default.exists(this);\n const { view, buffer, blockLen } = this;\n data = (0, utils_js_1.toBytes)(data);\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n // Fast path: we have at least one block in input, cast it to view and process\n if (take === blockLen) {\n const dataView = (0, utils_js_1.createView)(data);\n for (; blockLen <= len - pos; pos += blockLen)\n this.process(dataView, pos);\n continue;\n }\n buffer.set(data.subarray(pos, pos + take), this.pos);\n this.pos += take;\n pos += take;\n if (this.pos === blockLen) {\n this.process(view, 0);\n this.pos = 0;\n }\n }\n this.length += data.length;\n this.roundClean();\n return this;\n }\n digestInto(out) {\n _assert_js_1.default.exists(this);\n _assert_js_1.default.output(out, this);\n this.finished = true;\n // Padding\n // We can avoid allocation of buffer for padding completely if it\n // was previously not allocated here. But it won't change performance.\n const { buffer, view, blockLen, isLE } = this;\n let { pos } = this;\n // append the bit '1' to the message\n buffer[pos++] = 0b10000000;\n this.buffer.subarray(pos).fill(0);\n // we have less than padOffset left in buffer, so we cannot put length in current block, need process it and pad again\n if (this.padOffset > blockLen - pos) {\n this.process(view, 0);\n pos = 0;\n }\n // Pad until full block byte with zeros\n for (let i = pos; i < blockLen; i++)\n buffer[i] = 0;\n // Note: sha512 requires length to be 128bit integer, but length in JS will overflow before that\n // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen.\n // So we just write lowest 64 bits of that value.\n setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE);\n this.process(view, 0);\n const oview = (0, utils_js_1.createView)(out);\n this.get().forEach((v, i) => oview.setUint32(4 * i, v, isLE));\n }\n digest() {\n const { buffer, outputLen } = this;\n this.digestInto(buffer);\n const res = buffer.slice(0, outputLen);\n this.destroy();\n return res;\n }\n _cloneInto(to) {\n to || (to = new this.constructor());\n to.set(...this.get());\n const { blockLen, buffer, length, finished, destroyed, pos } = this;\n to.length = length;\n to.pos = pos;\n to.finished = finished;\n to.destroyed = destroyed;\n if (length % blockLen)\n to.buffer.set(buffer);\n return to;\n }\n}\nexports.SHA2 = SHA2;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.add = exports.toBig = exports.split = exports.fromBig = void 0;\nconst U32_MASK64 = BigInt(2 ** 32 - 1);\nconst _32n = BigInt(32);\n// We are not using BigUint64Array, because they are extremely slow as per 2022\nfunction fromBig(n, le = false) {\n if (le)\n return { h: Number(n & U32_MASK64), l: Number((n >> _32n) & U32_MASK64) };\n return { h: Number((n >> _32n) & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 };\n}\nexports.fromBig = fromBig;\nfunction split(lst, le = false) {\n let Ah = new Uint32Array(lst.length);\n let Al = new Uint32Array(lst.length);\n for (let i = 0; i < lst.length; i++) {\n const { h, l } = fromBig(lst[i], le);\n [Ah[i], Al[i]] = [h, l];\n }\n return [Ah, Al];\n}\nexports.split = split;\nconst toBig = (h, l) => (BigInt(h >>> 0) << _32n) | BigInt(l >>> 0);\nexports.toBig = toBig;\n// for Shift in [0, 32)\nconst shrSH = (h, l, s) => h >>> s;\nconst shrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in [1, 32)\nconst rotrSH = (h, l, s) => (h >>> s) | (l << (32 - s));\nconst rotrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotrBH = (h, l, s) => (h << (64 - s)) | (l >>> (s - 32));\nconst rotrBL = (h, l, s) => (h >>> (s - 32)) | (l << (64 - s));\n// Right rotate for shift===32 (just swaps l&h)\nconst rotr32H = (h, l) => l;\nconst rotr32L = (h, l) => h;\n// Left rotate for Shift in [1, 32)\nconst rotlSH = (h, l, s) => (h << s) | (l >>> (32 - s));\nconst rotlSL = (h, l, s) => (l << s) | (h >>> (32 - s));\n// Left rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotlBH = (h, l, s) => (l << (s - 32)) | (h >>> (64 - s));\nconst rotlBL = (h, l, s) => (h << (s - 32)) | (l >>> (64 - s));\n// JS uses 32-bit signed integers for bitwise operations which means we cannot\n// simple take carry out of low bit sum by shift, we need to use division.\n// Removing \"export\" has 5% perf penalty -_-\nfunction add(Ah, Al, Bh, Bl) {\n const l = (Al >>> 0) + (Bl >>> 0);\n return { h: (Ah + Bh + ((l / 2 ** 32) | 0)) | 0, l: l | 0 };\n}\nexports.add = add;\n// Addition with more than 2 elements\nconst add3L = (Al, Bl, Cl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0);\nconst add3H = (low, Ah, Bh, Ch) => (Ah + Bh + Ch + ((low / 2 ** 32) | 0)) | 0;\nconst add4L = (Al, Bl, Cl, Dl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0);\nconst add4H = (low, Ah, Bh, Ch, Dh) => (Ah + Bh + Ch + Dh + ((low / 2 ** 32) | 0)) | 0;\nconst add5L = (Al, Bl, Cl, Dl, El) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0);\nconst add5H = (low, Ah, Bh, Ch, Dh, Eh) => (Ah + Bh + Ch + Dh + Eh + ((low / 2 ** 32) | 0)) | 0;\n// prettier-ignore\nconst u64 = {\n fromBig, split, toBig: exports.toBig,\n shrSH, shrSL,\n rotrSH, rotrSL, rotrBH, rotrBL,\n rotr32H, rotr32L,\n rotlSH, rotlSL, rotlBH, rotlBL,\n add, add3L, add3H, add4L, add4H, add5H, add5L,\n};\nexports.default = u64;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.crypto = void 0;\nexports.crypto = {\n node: undefined,\n web: typeof self === 'object' && 'crypto' in self ? self.crypto : undefined,\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hmac = void 0;\nconst _assert_js_1 = require(\"./_assert.js\");\nconst utils_js_1 = require(\"./utils.js\");\n// HMAC (RFC 2104)\nclass HMAC extends utils_js_1.Hash {\n constructor(hash, _key) {\n super();\n this.finished = false;\n this.destroyed = false;\n _assert_js_1.default.hash(hash);\n const key = (0, utils_js_1.toBytes)(_key);\n this.iHash = hash.create();\n if (typeof this.iHash.update !== 'function')\n throw new TypeError('Expected instance of class which extends utils.Hash');\n this.blockLen = this.iHash.blockLen;\n this.outputLen = this.iHash.outputLen;\n const blockLen = this.blockLen;\n const pad = new Uint8Array(blockLen);\n // blockLen can be bigger than outputLen\n pad.set(key.length > blockLen ? hash.create().update(key).digest() : key);\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36;\n this.iHash.update(pad);\n // By doing update (processing of first block) of outer hash here we can re-use it between multiple calls via clone\n this.oHash = hash.create();\n // Undo internal XOR && apply outer XOR\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36 ^ 0x5c;\n this.oHash.update(pad);\n pad.fill(0);\n }\n update(buf) {\n _assert_js_1.default.exists(this);\n this.iHash.update(buf);\n return this;\n }\n digestInto(out) {\n _assert_js_1.default.exists(this);\n _assert_js_1.default.bytes(out, this.outputLen);\n this.finished = true;\n this.iHash.digestInto(out);\n this.oHash.update(out);\n this.oHash.digestInto(out);\n this.destroy();\n }\n digest() {\n const out = new Uint8Array(this.oHash.outputLen);\n this.digestInto(out);\n return out;\n }\n _cloneInto(to) {\n // Create new instance without calling constructor since key already in state and we don't know it.\n to || (to = Object.create(Object.getPrototypeOf(this), {}));\n const { oHash, iHash, finished, destroyed, blockLen, outputLen } = this;\n to = to;\n to.finished = finished;\n to.destroyed = destroyed;\n to.blockLen = blockLen;\n to.outputLen = outputLen;\n to.oHash = oHash._cloneInto(to.oHash);\n to.iHash = iHash._cloneInto(to.iHash);\n return to;\n }\n destroy() {\n this.destroyed = true;\n this.oHash.destroy();\n this.iHash.destroy();\n }\n}\n/**\n * HMAC: RFC2104 message authentication code.\n * @param hash - function that would be used e.g. sha256\n * @param key - message key\n * @param message - message data\n */\nconst hmac = (hash, key, message) => new HMAC(hash, key).update(message).digest();\nexports.hmac = hmac;\nexports.hmac.create = (hash, key) => new HMAC(hash, key);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ripemd160 = exports.RIPEMD160 = void 0;\nconst _sha2_js_1 = require(\"./_sha2.js\");\nconst utils_js_1 = require(\"./utils.js\");\n// https://homes.esat.kuleuven.be/~bosselae/ripemd160.html\n// https://homes.esat.kuleuven.be/~bosselae/ripemd160/pdf/AB-9601/AB-9601.pdf\nconst Rho = new Uint8Array([7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8]);\nconst Id = Uint8Array.from({ length: 16 }, (_, i) => i);\nconst Pi = Id.map((i) => (9 * i + 5) % 16);\nlet idxL = [Id];\nlet idxR = [Pi];\nfor (let i = 0; i < 4; i++)\n for (let j of [idxL, idxR])\n j.push(j[i].map((k) => Rho[k]));\nconst shifts = [\n [11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8],\n [12, 13, 11, 15, 6, 9, 9, 7, 12, 15, 11, 13, 7, 8, 7, 7],\n [13, 15, 14, 11, 7, 7, 6, 8, 13, 14, 13, 12, 5, 5, 6, 9],\n [14, 11, 12, 14, 8, 6, 5, 5, 15, 12, 15, 14, 9, 9, 8, 6],\n [15, 12, 13, 13, 9, 5, 8, 6, 14, 11, 12, 11, 8, 6, 5, 5],\n].map((i) => new Uint8Array(i));\nconst shiftsL = idxL.map((idx, i) => idx.map((j) => shifts[i][j]));\nconst shiftsR = idxR.map((idx, i) => idx.map((j) => shifts[i][j]));\nconst Kl = new Uint32Array([0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e]);\nconst Kr = new Uint32Array([0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000]);\n// The rotate left (circular left shift) operation for uint32\nconst rotl = (word, shift) => (word << shift) | (word >>> (32 - shift));\n// It's called f() in spec.\nfunction f(group, x, y, z) {\n if (group === 0)\n return x ^ y ^ z;\n else if (group === 1)\n return (x & y) | (~x & z);\n else if (group === 2)\n return (x | ~y) ^ z;\n else if (group === 3)\n return (x & z) | (y & ~z);\n else\n return x ^ (y | ~z);\n}\n// Temporary buffer, not used to store anything between runs\nconst BUF = new Uint32Array(16);\nclass RIPEMD160 extends _sha2_js_1.SHA2 {\n constructor() {\n super(64, 20, 8, true);\n this.h0 = 0x67452301 | 0;\n this.h1 = 0xefcdab89 | 0;\n this.h2 = 0x98badcfe | 0;\n this.h3 = 0x10325476 | 0;\n this.h4 = 0xc3d2e1f0 | 0;\n }\n get() {\n const { h0, h1, h2, h3, h4 } = this;\n return [h0, h1, h2, h3, h4];\n }\n set(h0, h1, h2, h3, h4) {\n this.h0 = h0 | 0;\n this.h1 = h1 | 0;\n this.h2 = h2 | 0;\n this.h3 = h3 | 0;\n this.h4 = h4 | 0;\n }\n process(view, offset) {\n for (let i = 0; i < 16; i++, offset += 4)\n BUF[i] = view.getUint32(offset, true);\n // prettier-ignore\n let al = this.h0 | 0, ar = al, bl = this.h1 | 0, br = bl, cl = this.h2 | 0, cr = cl, dl = this.h3 | 0, dr = dl, el = this.h4 | 0, er = el;\n // Instead of iterating 0 to 80, we split it into 5 groups\n // And use the groups in constants, functions, etc. Much simpler\n for (let group = 0; group < 5; group++) {\n const rGroup = 4 - group;\n const hbl = Kl[group], hbr = Kr[group]; // prettier-ignore\n const rl = idxL[group], rr = idxR[group]; // prettier-ignore\n const sl = shiftsL[group], sr = shiftsR[group]; // prettier-ignore\n for (let i = 0; i < 16; i++) {\n const tl = (rotl(al + f(group, bl, cl, dl) + BUF[rl[i]] + hbl, sl[i]) + el) | 0;\n al = el, el = dl, dl = rotl(cl, 10) | 0, cl = bl, bl = tl; // prettier-ignore\n }\n // 2 loops are 10% faster\n for (let i = 0; i < 16; i++) {\n const tr = (rotl(ar + f(rGroup, br, cr, dr) + BUF[rr[i]] + hbr, sr[i]) + er) | 0;\n ar = er, er = dr, dr = rotl(cr, 10) | 0, cr = br, br = tr; // prettier-ignore\n }\n }\n // Add the compressed chunk to the current hash value\n this.set((this.h1 + cl + dr) | 0, (this.h2 + dl + er) | 0, (this.h3 + el + ar) | 0, (this.h4 + al + br) | 0, (this.h0 + bl + cr) | 0);\n }\n roundClean() {\n BUF.fill(0);\n }\n destroy() {\n this.destroyed = true;\n this.buffer.fill(0);\n this.set(0, 0, 0, 0, 0);\n }\n}\nexports.RIPEMD160 = RIPEMD160;\n/**\n * RIPEMD-160 - a hash function from 1990s.\n * @param message - msg that would be hashed\n */\nexports.ripemd160 = (0, utils_js_1.wrapConstructor)(() => new RIPEMD160());\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sha256 = void 0;\nconst _sha2_js_1 = require(\"./_sha2.js\");\nconst utils_js_1 = require(\"./utils.js\");\n// Choice: a ? b : c\nconst Chi = (a, b, c) => (a & b) ^ (~a & c);\n// Majority function, true if any two inpust is true\nconst Maj = (a, b, c) => (a & b) ^ (a & c) ^ (b & c);\n// Round constants:\n// first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311)\n// prettier-ignore\nconst SHA256_K = new Uint32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\n// Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):\n// prettier-ignore\nconst IV = new Uint32Array([\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n]);\n// Temporary buffer, not used to store anything between runs\n// Named this way because it matches specification.\nconst SHA256_W = new Uint32Array(64);\nclass SHA256 extends _sha2_js_1.SHA2 {\n constructor() {\n super(64, 32, 8, false);\n // We cannot use array here since array allows indexing by variable\n // which means optimizer/compiler cannot use registers.\n this.A = IV[0] | 0;\n this.B = IV[1] | 0;\n this.C = IV[2] | 0;\n this.D = IV[3] | 0;\n this.E = IV[4] | 0;\n this.F = IV[5] | 0;\n this.G = IV[6] | 0;\n this.H = IV[7] | 0;\n }\n get() {\n const { A, B, C, D, E, F, G, H } = this;\n return [A, B, C, D, E, F, G, H];\n }\n // prettier-ignore\n set(A, B, C, D, E, F, G, H) {\n this.A = A | 0;\n this.B = B | 0;\n this.C = C | 0;\n this.D = D | 0;\n this.E = E | 0;\n this.F = F | 0;\n this.G = G | 0;\n this.H = H | 0;\n }\n process(view, offset) {\n // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4)\n SHA256_W[i] = view.getUint32(offset, false);\n for (let i = 16; i < 64; i++) {\n const W15 = SHA256_W[i - 15];\n const W2 = SHA256_W[i - 2];\n const s0 = (0, utils_js_1.rotr)(W15, 7) ^ (0, utils_js_1.rotr)(W15, 18) ^ (W15 >>> 3);\n const s1 = (0, utils_js_1.rotr)(W2, 17) ^ (0, utils_js_1.rotr)(W2, 19) ^ (W2 >>> 10);\n SHA256_W[i] = (s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16]) | 0;\n }\n // Compression function main loop, 64 rounds\n let { A, B, C, D, E, F, G, H } = this;\n for (let i = 0; i < 64; i++) {\n const sigma1 = (0, utils_js_1.rotr)(E, 6) ^ (0, utils_js_1.rotr)(E, 11) ^ (0, utils_js_1.rotr)(E, 25);\n const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const sigma0 = (0, utils_js_1.rotr)(A, 2) ^ (0, utils_js_1.rotr)(A, 13) ^ (0, utils_js_1.rotr)(A, 22);\n const T2 = (sigma0 + Maj(A, B, C)) | 0;\n H = G;\n G = F;\n F = E;\n E = (D + T1) | 0;\n D = C;\n C = B;\n B = A;\n A = (T1 + T2) | 0;\n }\n // Add the compressed chunk to the current hash value\n A = (A + this.A) | 0;\n B = (B + this.B) | 0;\n C = (C + this.C) | 0;\n D = (D + this.D) | 0;\n E = (E + this.E) | 0;\n F = (F + this.F) | 0;\n G = (G + this.G) | 0;\n H = (H + this.H) | 0;\n this.set(A, B, C, D, E, F, G, H);\n }\n roundClean() {\n SHA256_W.fill(0);\n }\n destroy() {\n this.set(0, 0, 0, 0, 0, 0, 0, 0);\n this.buffer.fill(0);\n }\n}\n/**\n * SHA2-256 hash function\n * @param message - data that would be hashed\n */\nexports.sha256 = (0, utils_js_1.wrapConstructor)(() => new SHA256());\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sha384 = exports.sha512_256 = exports.sha512 = exports.SHA512 = void 0;\nconst _sha2_js_1 = require(\"./_sha2.js\");\nconst _u64_js_1 = require(\"./_u64.js\");\nconst utils_js_1 = require(\"./utils.js\");\n// Round contants (first 32 bits of the fractional parts of the cube roots of the first 80 primes 2..409):\n// prettier-ignore\nconst [SHA512_Kh, SHA512_Kl] = _u64_js_1.default.split([\n '0x428a2f98d728ae22', '0x7137449123ef65cd', '0xb5c0fbcfec4d3b2f', '0xe9b5dba58189dbbc',\n '0x3956c25bf348b538', '0x59f111f1b605d019', '0x923f82a4af194f9b', '0xab1c5ed5da6d8118',\n '0xd807aa98a3030242', '0x12835b0145706fbe', '0x243185be4ee4b28c', '0x550c7dc3d5ffb4e2',\n '0x72be5d74f27b896f', '0x80deb1fe3b1696b1', '0x9bdc06a725c71235', '0xc19bf174cf692694',\n '0xe49b69c19ef14ad2', '0xefbe4786384f25e3', '0x0fc19dc68b8cd5b5', '0x240ca1cc77ac9c65',\n '0x2de92c6f592b0275', '0x4a7484aa6ea6e483', '0x5cb0a9dcbd41fbd4', '0x76f988da831153b5',\n '0x983e5152ee66dfab', '0xa831c66d2db43210', '0xb00327c898fb213f', '0xbf597fc7beef0ee4',\n '0xc6e00bf33da88fc2', '0xd5a79147930aa725', '0x06ca6351e003826f', '0x142929670a0e6e70',\n '0x27b70a8546d22ffc', '0x2e1b21385c26c926', '0x4d2c6dfc5ac42aed', '0x53380d139d95b3df',\n '0x650a73548baf63de', '0x766a0abb3c77b2a8', '0x81c2c92e47edaee6', '0x92722c851482353b',\n '0xa2bfe8a14cf10364', '0xa81a664bbc423001', '0xc24b8b70d0f89791', '0xc76c51a30654be30',\n '0xd192e819d6ef5218', '0xd69906245565a910', '0xf40e35855771202a', '0x106aa07032bbd1b8',\n '0x19a4c116b8d2d0c8', '0x1e376c085141ab53', '0x2748774cdf8eeb99', '0x34b0bcb5e19b48a8',\n '0x391c0cb3c5c95a63', '0x4ed8aa4ae3418acb', '0x5b9cca4f7763e373', '0x682e6ff3d6b2b8a3',\n '0x748f82ee5defb2fc', '0x78a5636f43172f60', '0x84c87814a1f0ab72', '0x8cc702081a6439ec',\n '0x90befffa23631e28', '0xa4506cebde82bde9', '0xbef9a3f7b2c67915', '0xc67178f2e372532b',\n '0xca273eceea26619c', '0xd186b8c721c0c207', '0xeada7dd6cde0eb1e', '0xf57d4f7fee6ed178',\n '0x06f067aa72176fba', '0x0a637dc5a2c898a6', '0x113f9804bef90dae', '0x1b710b35131c471b',\n '0x28db77f523047d84', '0x32caab7b40c72493', '0x3c9ebe0a15c9bebc', '0x431d67c49c100d4c',\n '0x4cc5d4becb3e42b6', '0x597f299cfc657e2a', '0x5fcb6fab3ad6faec', '0x6c44198c4a475817'\n].map(n => BigInt(n)));\n// Temporary buffer, not used to store anything between runs\nconst SHA512_W_H = new Uint32Array(80);\nconst SHA512_W_L = new Uint32Array(80);\nclass SHA512 extends _sha2_js_1.SHA2 {\n constructor() {\n super(128, 64, 16, false);\n // We cannot use array here since array allows indexing by variable which means optimizer/compiler cannot use registers.\n // Also looks cleaner and easier to verify with spec.\n // Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0x6a09e667 | 0;\n this.Al = 0xf3bcc908 | 0;\n this.Bh = 0xbb67ae85 | 0;\n this.Bl = 0x84caa73b | 0;\n this.Ch = 0x3c6ef372 | 0;\n this.Cl = 0xfe94f82b | 0;\n this.Dh = 0xa54ff53a | 0;\n this.Dl = 0x5f1d36f1 | 0;\n this.Eh = 0x510e527f | 0;\n this.El = 0xade682d1 | 0;\n this.Fh = 0x9b05688c | 0;\n this.Fl = 0x2b3e6c1f | 0;\n this.Gh = 0x1f83d9ab | 0;\n this.Gl = 0xfb41bd6b | 0;\n this.Hh = 0x5be0cd19 | 0;\n this.Hl = 0x137e2179 | 0;\n }\n // prettier-ignore\n get() {\n const { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n return [Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl];\n }\n // prettier-ignore\n set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl) {\n this.Ah = Ah | 0;\n this.Al = Al | 0;\n this.Bh = Bh | 0;\n this.Bl = Bl | 0;\n this.Ch = Ch | 0;\n this.Cl = Cl | 0;\n this.Dh = Dh | 0;\n this.Dl = Dl | 0;\n this.Eh = Eh | 0;\n this.El = El | 0;\n this.Fh = Fh | 0;\n this.Fl = Fl | 0;\n this.Gh = Gh | 0;\n this.Gl = Gl | 0;\n this.Hh = Hh | 0;\n this.Hl = Hl | 0;\n }\n process(view, offset) {\n // Extend the first 16 words into the remaining 64 words w[16..79] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4) {\n SHA512_W_H[i] = view.getUint32(offset);\n SHA512_W_L[i] = view.getUint32((offset += 4));\n }\n for (let i = 16; i < 80; i++) {\n // s0 := (w[i-15] rightrotate 1) xor (w[i-15] rightrotate 8) xor (w[i-15] rightshift 7)\n const W15h = SHA512_W_H[i - 15] | 0;\n const W15l = SHA512_W_L[i - 15] | 0;\n const s0h = _u64_js_1.default.rotrSH(W15h, W15l, 1) ^ _u64_js_1.default.rotrSH(W15h, W15l, 8) ^ _u64_js_1.default.shrSH(W15h, W15l, 7);\n const s0l = _u64_js_1.default.rotrSL(W15h, W15l, 1) ^ _u64_js_1.default.rotrSL(W15h, W15l, 8) ^ _u64_js_1.default.shrSL(W15h, W15l, 7);\n // s1 := (w[i-2] rightrotate 19) xor (w[i-2] rightrotate 61) xor (w[i-2] rightshift 6)\n const W2h = SHA512_W_H[i - 2] | 0;\n const W2l = SHA512_W_L[i - 2] | 0;\n const s1h = _u64_js_1.default.rotrSH(W2h, W2l, 19) ^ _u64_js_1.default.rotrBH(W2h, W2l, 61) ^ _u64_js_1.default.shrSH(W2h, W2l, 6);\n const s1l = _u64_js_1.default.rotrSL(W2h, W2l, 19) ^ _u64_js_1.default.rotrBL(W2h, W2l, 61) ^ _u64_js_1.default.shrSL(W2h, W2l, 6);\n // SHA256_W[i] = s0 + s1 + SHA256_W[i - 7] + SHA256_W[i - 16];\n const SUMl = _u64_js_1.default.add4L(s0l, s1l, SHA512_W_L[i - 7], SHA512_W_L[i - 16]);\n const SUMh = _u64_js_1.default.add4H(SUMl, s0h, s1h, SHA512_W_H[i - 7], SHA512_W_H[i - 16]);\n SHA512_W_H[i] = SUMh | 0;\n SHA512_W_L[i] = SUMl | 0;\n }\n let { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n // Compression function main loop, 80 rounds\n for (let i = 0; i < 80; i++) {\n // S1 := (e rightrotate 14) xor (e rightrotate 18) xor (e rightrotate 41)\n const sigma1h = _u64_js_1.default.rotrSH(Eh, El, 14) ^ _u64_js_1.default.rotrSH(Eh, El, 18) ^ _u64_js_1.default.rotrBH(Eh, El, 41);\n const sigma1l = _u64_js_1.default.rotrSL(Eh, El, 14) ^ _u64_js_1.default.rotrSL(Eh, El, 18) ^ _u64_js_1.default.rotrBL(Eh, El, 41);\n //const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const CHIh = (Eh & Fh) ^ (~Eh & Gh);\n const CHIl = (El & Fl) ^ (~El & Gl);\n // T1 = H + sigma1 + Chi(E, F, G) + SHA512_K[i] + SHA512_W[i]\n // prettier-ignore\n const T1ll = _u64_js_1.default.add5L(Hl, sigma1l, CHIl, SHA512_Kl[i], SHA512_W_L[i]);\n const T1h = _u64_js_1.default.add5H(T1ll, Hh, sigma1h, CHIh, SHA512_Kh[i], SHA512_W_H[i]);\n const T1l = T1ll | 0;\n // S0 := (a rightrotate 28) xor (a rightrotate 34) xor (a rightrotate 39)\n const sigma0h = _u64_js_1.default.rotrSH(Ah, Al, 28) ^ _u64_js_1.default.rotrBH(Ah, Al, 34) ^ _u64_js_1.default.rotrBH(Ah, Al, 39);\n const sigma0l = _u64_js_1.default.rotrSL(Ah, Al, 28) ^ _u64_js_1.default.rotrBL(Ah, Al, 34) ^ _u64_js_1.default.rotrBL(Ah, Al, 39);\n const MAJh = (Ah & Bh) ^ (Ah & Ch) ^ (Bh & Ch);\n const MAJl = (Al & Bl) ^ (Al & Cl) ^ (Bl & Cl);\n Hh = Gh | 0;\n Hl = Gl | 0;\n Gh = Fh | 0;\n Gl = Fl | 0;\n Fh = Eh | 0;\n Fl = El | 0;\n ({ h: Eh, l: El } = _u64_js_1.default.add(Dh | 0, Dl | 0, T1h | 0, T1l | 0));\n Dh = Ch | 0;\n Dl = Cl | 0;\n Ch = Bh | 0;\n Cl = Bl | 0;\n Bh = Ah | 0;\n Bl = Al | 0;\n const All = _u64_js_1.default.add3L(T1l, sigma0l, MAJl);\n Ah = _u64_js_1.default.add3H(All, T1h, sigma0h, MAJh);\n Al = All | 0;\n }\n // Add the compressed chunk to the current hash value\n ({ h: Ah, l: Al } = _u64_js_1.default.add(this.Ah | 0, this.Al | 0, Ah | 0, Al | 0));\n ({ h: Bh, l: Bl } = _u64_js_1.default.add(this.Bh | 0, this.Bl | 0, Bh | 0, Bl | 0));\n ({ h: Ch, l: Cl } = _u64_js_1.default.add(this.Ch | 0, this.Cl | 0, Ch | 0, Cl | 0));\n ({ h: Dh, l: Dl } = _u64_js_1.default.add(this.Dh | 0, this.Dl | 0, Dh | 0, Dl | 0));\n ({ h: Eh, l: El } = _u64_js_1.default.add(this.Eh | 0, this.El | 0, Eh | 0, El | 0));\n ({ h: Fh, l: Fl } = _u64_js_1.default.add(this.Fh | 0, this.Fl | 0, Fh | 0, Fl | 0));\n ({ h: Gh, l: Gl } = _u64_js_1.default.add(this.Gh | 0, this.Gl | 0, Gh | 0, Gl | 0));\n ({ h: Hh, l: Hl } = _u64_js_1.default.add(this.Hh | 0, this.Hl | 0, Hh | 0, Hl | 0));\n this.set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl);\n }\n roundClean() {\n SHA512_W_H.fill(0);\n SHA512_W_L.fill(0);\n }\n destroy() {\n this.buffer.fill(0);\n this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);\n }\n}\nexports.SHA512 = SHA512;\nclass SHA512_256 extends SHA512 {\n constructor() {\n super();\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0x22312194 | 0;\n this.Al = 0xfc2bf72c | 0;\n this.Bh = 0x9f555fa3 | 0;\n this.Bl = 0xc84c64c2 | 0;\n this.Ch = 0x2393b86b | 0;\n this.Cl = 0x6f53b151 | 0;\n this.Dh = 0x96387719 | 0;\n this.Dl = 0x5940eabd | 0;\n this.Eh = 0x96283ee2 | 0;\n this.El = 0xa88effe3 | 0;\n this.Fh = 0xbe5e1e25 | 0;\n this.Fl = 0x53863992 | 0;\n this.Gh = 0x2b0199fc | 0;\n this.Gl = 0x2c85b8aa | 0;\n this.Hh = 0x0eb72ddc | 0;\n this.Hl = 0x81c52ca2 | 0;\n this.outputLen = 32;\n }\n}\nclass SHA384 extends SHA512 {\n constructor() {\n super();\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0xcbbb9d5d | 0;\n this.Al = 0xc1059ed8 | 0;\n this.Bh = 0x629a292a | 0;\n this.Bl = 0x367cd507 | 0;\n this.Ch = 0x9159015a | 0;\n this.Cl = 0x3070dd17 | 0;\n this.Dh = 0x152fecd8 | 0;\n this.Dl = 0xf70e5939 | 0;\n this.Eh = 0x67332667 | 0;\n this.El = 0xffc00b31 | 0;\n this.Fh = 0x8eb44a87 | 0;\n this.Fl = 0x68581511 | 0;\n this.Gh = 0xdb0c2e0d | 0;\n this.Gl = 0x64f98fa7 | 0;\n this.Hh = 0x47b5481d | 0;\n this.Hl = 0xbefa4fa4 | 0;\n this.outputLen = 48;\n }\n}\nexports.sha512 = (0, utils_js_1.wrapConstructor)(() => new SHA512());\nexports.sha512_256 = (0, utils_js_1.wrapConstructor)(() => new SHA512_256());\nexports.sha384 = (0, utils_js_1.wrapConstructor)(() => new SHA384());\n","\"use strict\";\n/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.randomBytes = exports.wrapConstructorWithOpts = exports.wrapConstructor = exports.checkOpts = exports.Hash = exports.concatBytes = exports.toBytes = exports.utf8ToBytes = exports.asyncLoop = exports.nextTick = exports.hexToBytes = exports.bytesToHex = exports.isLE = exports.rotr = exports.createView = exports.u32 = exports.u8 = void 0;\n// The import here is via the package name. This is to ensure\n// that exports mapping/resolution does fall into place.\nconst crypto_1 = require(\"@noble/hashes/crypto\");\n// Cast array to different type\nconst u8 = (arr) => new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\nexports.u8 = u8;\nconst u32 = (arr) => new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\nexports.u32 = u32;\n// Cast array to view\nconst createView = (arr) => new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\nexports.createView = createView;\n// The rotate right (circular right shift) operation for uint32\nconst rotr = (word, shift) => (word << (32 - shift)) | (word >>> shift);\nexports.rotr = rotr;\nexports.isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44;\n// There is almost no big endian hardware, but js typed arrays uses platform specific endianness.\n// So, just to be sure not to corrupt anything.\nif (!exports.isLE)\n throw new Error('Non little-endian hardware is not supported');\nconst hexes = Array.from({ length: 256 }, (v, i) => i.toString(16).padStart(2, '0'));\n/**\n * @example bytesToHex(Uint8Array.from([0xde, 0xad, 0xbe, 0xef]))\n */\nfunction bytesToHex(uint8a) {\n // pre-caching improves the speed 6x\n if (!(uint8a instanceof Uint8Array))\n throw new Error('Uint8Array expected');\n let hex = '';\n for (let i = 0; i < uint8a.length; i++) {\n hex += hexes[uint8a[i]];\n }\n return hex;\n}\nexports.bytesToHex = bytesToHex;\n/**\n * @example hexToBytes('deadbeef')\n */\nfunction hexToBytes(hex) {\n if (typeof hex !== 'string') {\n throw new TypeError('hexToBytes: expected string, got ' + typeof hex);\n }\n if (hex.length % 2)\n throw new Error('hexToBytes: received invalid unpadded hex');\n const array = new Uint8Array(hex.length / 2);\n for (let i = 0; i < array.length; i++) {\n const j = i * 2;\n const hexByte = hex.slice(j, j + 2);\n const byte = Number.parseInt(hexByte, 16);\n if (Number.isNaN(byte) || byte < 0)\n throw new Error('Invalid byte sequence');\n array[i] = byte;\n }\n return array;\n}\nexports.hexToBytes = hexToBytes;\n// There is no setImmediate in browser and setTimeout is slow. However, call to async function will return Promise\n// which will be fullfiled only on next scheduler queue processing step and this is exactly what we need.\nconst nextTick = async () => { };\nexports.nextTick = nextTick;\n// Returns control to thread each 'tick' ms to avoid blocking\nasync function asyncLoop(iters, tick, cb) {\n let ts = Date.now();\n for (let i = 0; i < iters; i++) {\n cb(i);\n // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n const diff = Date.now() - ts;\n if (diff >= 0 && diff < tick)\n continue;\n await (0, exports.nextTick)();\n ts += diff;\n }\n}\nexports.asyncLoop = asyncLoop;\nfunction utf8ToBytes(str) {\n if (typeof str !== 'string') {\n throw new TypeError(`utf8ToBytes expected string, got ${typeof str}`);\n }\n return new TextEncoder().encode(str);\n}\nexports.utf8ToBytes = utf8ToBytes;\nfunction toBytes(data) {\n if (typeof data === 'string')\n data = utf8ToBytes(data);\n if (!(data instanceof Uint8Array))\n throw new TypeError(`Expected input type is Uint8Array (got ${typeof data})`);\n return data;\n}\nexports.toBytes = toBytes;\n/**\n * Concats Uint8Array-s into one; like `Buffer.concat([buf1, buf2])`\n * @example concatBytes(buf1, buf2)\n */\nfunction concatBytes(...arrays) {\n if (!arrays.every((a) => a instanceof Uint8Array))\n throw new Error('Uint8Array list expected');\n if (arrays.length === 1)\n return arrays[0];\n const length = arrays.reduce((a, arr) => a + arr.length, 0);\n const result = new Uint8Array(length);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const arr = arrays[i];\n result.set(arr, pad);\n pad += arr.length;\n }\n return result;\n}\nexports.concatBytes = concatBytes;\n// For runtime check if class implements interface\nclass Hash {\n // Safe version that clones internal state\n clone() {\n return this._cloneInto();\n }\n}\nexports.Hash = Hash;\n// Check if object doens't have custom constructor (like Uint8Array/Array)\nconst isPlainObject = (obj) => Object.prototype.toString.call(obj) === '[object Object]' && obj.constructor === Object;\nfunction checkOpts(defaults, opts) {\n if (opts !== undefined && (typeof opts !== 'object' || !isPlainObject(opts)))\n throw new TypeError('Options should be object or undefined');\n const merged = Object.assign(defaults, opts);\n return merged;\n}\nexports.checkOpts = checkOpts;\nfunction wrapConstructor(hashConstructor) {\n const hashC = (message) => hashConstructor().update(toBytes(message)).digest();\n const tmp = hashConstructor();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = () => hashConstructor();\n return hashC;\n}\nexports.wrapConstructor = wrapConstructor;\nfunction wrapConstructorWithOpts(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\nexports.wrapConstructorWithOpts = wrapConstructorWithOpts;\n/**\n * Secure PRNG\n */\nfunction randomBytes(bytesLength = 32) {\n if (crypto_1.crypto.web) {\n return crypto_1.crypto.web.getRandomValues(new Uint8Array(bytesLength));\n }\n else if (crypto_1.crypto.node) {\n return new Uint8Array(crypto_1.crypto.node.randomBytes(bytesLength).buffer);\n }\n else {\n throw new Error(\"The environment doesn't have randomBytes function\");\n }\n}\nexports.randomBytes = randomBytes;\n","\"use strict\";\n/*! noble-secp256k1 - MIT License (c) 2019 Paul Miller (paulmillr.com) */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.utils = exports.schnorr = exports.verify = exports.signSync = exports.sign = exports.getSharedSecret = exports.recoverPublicKey = exports.getPublicKey = exports.Signature = exports.Point = exports.CURVE = void 0;\nconst nodeCrypto = require(\"crypto\");\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst _3n = BigInt(3);\nconst _8n = BigInt(8);\nconst CURVE = Object.freeze({\n a: _0n,\n b: BigInt(7),\n P: BigInt('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f'),\n n: BigInt('0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141'),\n h: _1n,\n Gx: BigInt('55066263022277343669578718895168534326250603453777594175500187360389116729240'),\n Gy: BigInt('32670510020758816978083085130507043184471273380659243275938904335757337482424'),\n beta: BigInt('0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee'),\n});\nexports.CURVE = CURVE;\nfunction weistrass(x) {\n const { a, b } = CURVE;\n const x2 = mod(x * x);\n const x3 = mod(x2 * x);\n return mod(x3 + a * x + b);\n}\nconst USE_ENDOMORPHISM = CURVE.a === _0n;\nclass ShaError extends Error {\n constructor(message) {\n super(message);\n }\n}\nclass JacobianPoint {\n constructor(x, y, z) {\n this.x = x;\n this.y = y;\n this.z = z;\n }\n static fromAffine(p) {\n if (!(p instanceof Point)) {\n throw new TypeError('JacobianPoint#fromAffine: expected Point');\n }\n return new JacobianPoint(p.x, p.y, _1n);\n }\n static toAffineBatch(points) {\n const toInv = invertBatch(points.map((p) => p.z));\n return points.map((p, i) => p.toAffine(toInv[i]));\n }\n static normalizeZ(points) {\n return JacobianPoint.toAffineBatch(points).map(JacobianPoint.fromAffine);\n }\n equals(other) {\n if (!(other instanceof JacobianPoint))\n throw new TypeError('JacobianPoint expected');\n const { x: X1, y: Y1, z: Z1 } = this;\n const { x: X2, y: Y2, z: Z2 } = other;\n const Z1Z1 = mod(Z1 * Z1);\n const Z2Z2 = mod(Z2 * Z2);\n const U1 = mod(X1 * Z2Z2);\n const U2 = mod(X2 * Z1Z1);\n const S1 = mod(mod(Y1 * Z2) * Z2Z2);\n const S2 = mod(mod(Y2 * Z1) * Z1Z1);\n return U1 === U2 && S1 === S2;\n }\n negate() {\n return new JacobianPoint(this.x, mod(-this.y), this.z);\n }\n double() {\n const { x: X1, y: Y1, z: Z1 } = this;\n const A = mod(X1 * X1);\n const B = mod(Y1 * Y1);\n const C = mod(B * B);\n const x1b = X1 + B;\n const D = mod(_2n * (mod(x1b * x1b) - A - C));\n const E = mod(_3n * A);\n const F = mod(E * E);\n const X3 = mod(F - _2n * D);\n const Y3 = mod(E * (D - X3) - _8n * C);\n const Z3 = mod(_2n * Y1 * Z1);\n return new JacobianPoint(X3, Y3, Z3);\n }\n add(other) {\n if (!(other instanceof JacobianPoint))\n throw new TypeError('JacobianPoint expected');\n const { x: X1, y: Y1, z: Z1 } = this;\n const { x: X2, y: Y2, z: Z2 } = other;\n if (X2 === _0n || Y2 === _0n)\n return this;\n if (X1 === _0n || Y1 === _0n)\n return other;\n const Z1Z1 = mod(Z1 * Z1);\n const Z2Z2 = mod(Z2 * Z2);\n const U1 = mod(X1 * Z2Z2);\n const U2 = mod(X2 * Z1Z1);\n const S1 = mod(mod(Y1 * Z2) * Z2Z2);\n const S2 = mod(mod(Y2 * Z1) * Z1Z1);\n const H = mod(U2 - U1);\n const r = mod(S2 - S1);\n if (H === _0n) {\n if (r === _0n) {\n return this.double();\n }\n else {\n return JacobianPoint.ZERO;\n }\n }\n const HH = mod(H * H);\n const HHH = mod(H * HH);\n const V = mod(U1 * HH);\n const X3 = mod(r * r - HHH - _2n * V);\n const Y3 = mod(r * (V - X3) - S1 * HHH);\n const Z3 = mod(Z1 * Z2 * H);\n return new JacobianPoint(X3, Y3, Z3);\n }\n subtract(other) {\n return this.add(other.negate());\n }\n multiplyUnsafe(scalar) {\n const P0 = JacobianPoint.ZERO;\n if (typeof scalar === 'bigint' && scalar === _0n)\n return P0;\n let n = normalizeScalar(scalar);\n if (n === _1n)\n return this;\n if (!USE_ENDOMORPHISM) {\n let p = P0;\n let d = this;\n while (n > _0n) {\n if (n & _1n)\n p = p.add(d);\n d = d.double();\n n >>= _1n;\n }\n return p;\n }\n let { k1neg, k1, k2neg, k2 } = splitScalarEndo(n);\n let k1p = P0;\n let k2p = P0;\n let d = this;\n while (k1 > _0n || k2 > _0n) {\n if (k1 & _1n)\n k1p = k1p.add(d);\n if (k2 & _1n)\n k2p = k2p.add(d);\n d = d.double();\n k1 >>= _1n;\n k2 >>= _1n;\n }\n if (k1neg)\n k1p = k1p.negate();\n if (k2neg)\n k2p = k2p.negate();\n k2p = new JacobianPoint(mod(k2p.x * CURVE.beta), k2p.y, k2p.z);\n return k1p.add(k2p);\n }\n precomputeWindow(W) {\n const windows = USE_ENDOMORPHISM ? 128 / W + 1 : 256 / W + 1;\n const points = [];\n let p = this;\n let base = p;\n for (let window = 0; window < windows; window++) {\n base = p;\n points.push(base);\n for (let i = 1; i < 2 ** (W - 1); i++) {\n base = base.add(p);\n points.push(base);\n }\n p = base.double();\n }\n return points;\n }\n wNAF(n, affinePoint) {\n if (!affinePoint && this.equals(JacobianPoint.BASE))\n affinePoint = Point.BASE;\n const W = (affinePoint && affinePoint._WINDOW_SIZE) || 1;\n if (256 % W) {\n throw new Error('Point#wNAF: Invalid precomputation window, must be power of 2');\n }\n let precomputes = affinePoint && pointPrecomputes.get(affinePoint);\n if (!precomputes) {\n precomputes = this.precomputeWindow(W);\n if (affinePoint && W !== 1) {\n precomputes = JacobianPoint.normalizeZ(precomputes);\n pointPrecomputes.set(affinePoint, precomputes);\n }\n }\n let p = JacobianPoint.ZERO;\n let f = JacobianPoint.ZERO;\n const windows = 1 + (USE_ENDOMORPHISM ? 128 / W : 256 / W);\n const windowSize = 2 ** (W - 1);\n const mask = BigInt(2 ** W - 1);\n const maxNumber = 2 ** W;\n const shiftBy = BigInt(W);\n for (let window = 0; window < windows; window++) {\n const offset = window * windowSize;\n let wbits = Number(n & mask);\n n >>= shiftBy;\n if (wbits > windowSize) {\n wbits -= maxNumber;\n n += _1n;\n }\n if (wbits === 0) {\n let pr = precomputes[offset];\n if (window % 2)\n pr = pr.negate();\n f = f.add(pr);\n }\n else {\n let cached = precomputes[offset + Math.abs(wbits) - 1];\n if (wbits < 0)\n cached = cached.negate();\n p = p.add(cached);\n }\n }\n return { p, f };\n }\n multiply(scalar, affinePoint) {\n let n = normalizeScalar(scalar);\n let point;\n let fake;\n if (USE_ENDOMORPHISM) {\n const { k1neg, k1, k2neg, k2 } = splitScalarEndo(n);\n let { p: k1p, f: f1p } = this.wNAF(k1, affinePoint);\n let { p: k2p, f: f2p } = this.wNAF(k2, affinePoint);\n if (k1neg)\n k1p = k1p.negate();\n if (k2neg)\n k2p = k2p.negate();\n k2p = new JacobianPoint(mod(k2p.x * CURVE.beta), k2p.y, k2p.z);\n point = k1p.add(k2p);\n fake = f1p.add(f2p);\n }\n else {\n const { p, f } = this.wNAF(n, affinePoint);\n point = p;\n fake = f;\n }\n return JacobianPoint.normalizeZ([point, fake])[0];\n }\n toAffine(invZ = invert(this.z)) {\n const { x, y, z } = this;\n const iz1 = invZ;\n const iz2 = mod(iz1 * iz1);\n const iz3 = mod(iz2 * iz1);\n const ax = mod(x * iz2);\n const ay = mod(y * iz3);\n const zz = mod(z * iz1);\n if (zz !== _1n)\n throw new Error('invZ was invalid');\n return new Point(ax, ay);\n }\n}\nJacobianPoint.BASE = new JacobianPoint(CURVE.Gx, CURVE.Gy, _1n);\nJacobianPoint.ZERO = new JacobianPoint(_0n, _1n, _0n);\nconst pointPrecomputes = new WeakMap();\nclass Point {\n constructor(x, y) {\n this.x = x;\n this.y = y;\n }\n _setWindowSize(windowSize) {\n this._WINDOW_SIZE = windowSize;\n pointPrecomputes.delete(this);\n }\n hasEvenY() {\n return this.y % _2n === _0n;\n }\n static fromCompressedHex(bytes) {\n const isShort = bytes.length === 32;\n const x = bytesToNumber(isShort ? bytes : bytes.subarray(1));\n if (!isValidFieldElement(x))\n throw new Error('Point is not on curve');\n const y2 = weistrass(x);\n let y = sqrtMod(y2);\n const isYOdd = (y & _1n) === _1n;\n if (isShort) {\n if (isYOdd)\n y = mod(-y);\n }\n else {\n const isFirstByteOdd = (bytes[0] & 1) === 1;\n if (isFirstByteOdd !== isYOdd)\n y = mod(-y);\n }\n const point = new Point(x, y);\n point.assertValidity();\n return point;\n }\n static fromUncompressedHex(bytes) {\n const x = bytesToNumber(bytes.subarray(1, 33));\n const y = bytesToNumber(bytes.subarray(33, 65));\n const point = new Point(x, y);\n point.assertValidity();\n return point;\n }\n static fromHex(hex) {\n const bytes = ensureBytes(hex);\n const len = bytes.length;\n const header = bytes[0];\n if (len === 32 || (len === 33 && (header === 0x02 || header === 0x03))) {\n return this.fromCompressedHex(bytes);\n }\n if (len === 65 && header === 0x04)\n return this.fromUncompressedHex(bytes);\n throw new Error(`Point.fromHex: received invalid point. Expected 32-33 compressed bytes or 65 uncompressed bytes, not ${len}`);\n }\n static fromPrivateKey(privateKey) {\n return Point.BASE.multiply(normalizePrivateKey(privateKey));\n }\n static fromSignature(msgHash, signature, recovery) {\n msgHash = ensureBytes(msgHash);\n const h = truncateHash(msgHash);\n const { r, s } = normalizeSignature(signature);\n if (recovery !== 0 && recovery !== 1) {\n throw new Error('Cannot recover signature: invalid recovery bit');\n }\n const prefix = recovery & 1 ? '03' : '02';\n const R = Point.fromHex(prefix + numTo32bStr(r));\n const { n } = CURVE;\n const rinv = invert(r, n);\n const u1 = mod(-h * rinv, n);\n const u2 = mod(s * rinv, n);\n const Q = Point.BASE.multiplyAndAddUnsafe(R, u1, u2);\n if (!Q)\n throw new Error('Cannot recover signature: point at infinify');\n Q.assertValidity();\n return Q;\n }\n toRawBytes(isCompressed = false) {\n return hexToBytes(this.toHex(isCompressed));\n }\n toHex(isCompressed = false) {\n const x = numTo32bStr(this.x);\n if (isCompressed) {\n const prefix = this.hasEvenY() ? '02' : '03';\n return `${prefix}${x}`;\n }\n else {\n return `04${x}${numTo32bStr(this.y)}`;\n }\n }\n toHexX() {\n return this.toHex(true).slice(2);\n }\n toRawX() {\n return this.toRawBytes(true).slice(1);\n }\n assertValidity() {\n const msg = 'Point is not on elliptic curve';\n const { x, y } = this;\n if (!isValidFieldElement(x) || !isValidFieldElement(y))\n throw new Error(msg);\n const left = mod(y * y);\n const right = weistrass(x);\n if (mod(left - right) !== _0n)\n throw new Error(msg);\n }\n equals(other) {\n return this.x === other.x && this.y === other.y;\n }\n negate() {\n return new Point(this.x, mod(-this.y));\n }\n double() {\n return JacobianPoint.fromAffine(this).double().toAffine();\n }\n add(other) {\n return JacobianPoint.fromAffine(this).add(JacobianPoint.fromAffine(other)).toAffine();\n }\n subtract(other) {\n return this.add(other.negate());\n }\n multiply(scalar) {\n return JacobianPoint.fromAffine(this).multiply(scalar, this).toAffine();\n }\n multiplyAndAddUnsafe(Q, a, b) {\n const P = JacobianPoint.fromAffine(this);\n const aP = a === _0n || a === _1n || this !== Point.BASE ? P.multiplyUnsafe(a) : P.multiply(a);\n const bQ = JacobianPoint.fromAffine(Q).multiplyUnsafe(b);\n const sum = aP.add(bQ);\n return sum.equals(JacobianPoint.ZERO) ? undefined : sum.toAffine();\n }\n}\nexports.Point = Point;\nPoint.BASE = new Point(CURVE.Gx, CURVE.Gy);\nPoint.ZERO = new Point(_0n, _0n);\nfunction sliceDER(s) {\n return Number.parseInt(s[0], 16) >= 8 ? '00' + s : s;\n}\nfunction parseDERInt(data) {\n if (data.length < 2 || data[0] !== 0x02) {\n throw new Error(`Invalid signature integer tag: ${bytesToHex(data)}`);\n }\n const len = data[1];\n const res = data.subarray(2, len + 2);\n if (!len || res.length !== len) {\n throw new Error(`Invalid signature integer: wrong length`);\n }\n if (res[0] === 0x00 && res[1] <= 0x7f) {\n throw new Error('Invalid signature integer: trailing length');\n }\n return { data: bytesToNumber(res), left: data.subarray(len + 2) };\n}\nfunction parseDERSignature(data) {\n if (data.length < 2 || data[0] != 0x30) {\n throw new Error(`Invalid signature tag: ${bytesToHex(data)}`);\n }\n if (data[1] !== data.length - 2) {\n throw new Error('Invalid signature: incorrect length');\n }\n const { data: r, left: sBytes } = parseDERInt(data.subarray(2));\n const { data: s, left: rBytesLeft } = parseDERInt(sBytes);\n if (rBytesLeft.length) {\n throw new Error(`Invalid signature: left bytes after parsing: ${bytesToHex(rBytesLeft)}`);\n }\n return { r, s };\n}\nclass Signature {\n constructor(r, s) {\n this.r = r;\n this.s = s;\n this.assertValidity();\n }\n static fromCompact(hex) {\n const arr = hex instanceof Uint8Array;\n const name = 'Signature.fromCompact';\n if (typeof hex !== 'string' && !arr)\n throw new TypeError(`${name}: Expected string or Uint8Array`);\n const str = arr ? bytesToHex(hex) : hex;\n if (str.length !== 128)\n throw new Error(`${name}: Expected 64-byte hex`);\n return new Signature(hexToNumber(str.slice(0, 64)), hexToNumber(str.slice(64, 128)));\n }\n static fromDER(hex) {\n const arr = hex instanceof Uint8Array;\n if (typeof hex !== 'string' && !arr)\n throw new TypeError(`Signature.fromDER: Expected string or Uint8Array`);\n const { r, s } = parseDERSignature(arr ? hex : hexToBytes(hex));\n return new Signature(r, s);\n }\n static fromHex(hex) {\n return this.fromDER(hex);\n }\n assertValidity() {\n const { r, s } = this;\n if (!isWithinCurveOrder(r))\n throw new Error('Invalid Signature: r must be 0 < r < n');\n if (!isWithinCurveOrder(s))\n throw new Error('Invalid Signature: s must be 0 < s < n');\n }\n hasHighS() {\n const HALF = CURVE.n >> _1n;\n return this.s > HALF;\n }\n normalizeS() {\n return this.hasHighS() ? new Signature(this.r, CURVE.n - this.s) : this;\n }\n toDERRawBytes(isCompressed = false) {\n return hexToBytes(this.toDERHex(isCompressed));\n }\n toDERHex(isCompressed = false) {\n const sHex = sliceDER(numberToHexUnpadded(this.s));\n if (isCompressed)\n return sHex;\n const rHex = sliceDER(numberToHexUnpadded(this.r));\n const rLen = numberToHexUnpadded(rHex.length / 2);\n const sLen = numberToHexUnpadded(sHex.length / 2);\n const length = numberToHexUnpadded(rHex.length / 2 + sHex.length / 2 + 4);\n return `30${length}02${rLen}${rHex}02${sLen}${sHex}`;\n }\n toRawBytes() {\n return this.toDERRawBytes();\n }\n toHex() {\n return this.toDERHex();\n }\n toCompactRawBytes() {\n return hexToBytes(this.toCompactHex());\n }\n toCompactHex() {\n return numTo32bStr(this.r) + numTo32bStr(this.s);\n }\n}\nexports.Signature = Signature;\nfunction concatBytes(...arrays) {\n if (!arrays.every((b) => b instanceof Uint8Array))\n throw new Error('Uint8Array list expected');\n if (arrays.length === 1)\n return arrays[0];\n const length = arrays.reduce((a, arr) => a + arr.length, 0);\n const result = new Uint8Array(length);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const arr = arrays[i];\n result.set(arr, pad);\n pad += arr.length;\n }\n return result;\n}\nconst hexes = Array.from({ length: 256 }, (v, i) => i.toString(16).padStart(2, '0'));\nfunction bytesToHex(uint8a) {\n if (!(uint8a instanceof Uint8Array))\n throw new Error('Expected Uint8Array');\n let hex = '';\n for (let i = 0; i < uint8a.length; i++) {\n hex += hexes[uint8a[i]];\n }\n return hex;\n}\nconst POW_2_256 = BigInt('0x10000000000000000000000000000000000000000000000000000000000000000');\nfunction numTo32bStr(num) {\n if (typeof num !== 'bigint')\n throw new Error('Expected bigint');\n if (!(_0n <= num && num < POW_2_256))\n throw new Error('Expected number < 2^256');\n return num.toString(16).padStart(64, '0');\n}\nfunction numTo32b(num) {\n const b = hexToBytes(numTo32bStr(num));\n if (b.length !== 32)\n throw new Error('Error: expected 32 bytes');\n return b;\n}\nfunction numberToHexUnpadded(num) {\n const hex = num.toString(16);\n return hex.length & 1 ? `0${hex}` : hex;\n}\nfunction hexToNumber(hex) {\n if (typeof hex !== 'string') {\n throw new TypeError('hexToNumber: expected string, got ' + typeof hex);\n }\n return BigInt(`0x${hex}`);\n}\nfunction hexToBytes(hex) {\n if (typeof hex !== 'string') {\n throw new TypeError('hexToBytes: expected string, got ' + typeof hex);\n }\n if (hex.length % 2)\n throw new Error('hexToBytes: received invalid unpadded hex' + hex.length);\n const array = new Uint8Array(hex.length / 2);\n for (let i = 0; i < array.length; i++) {\n const j = i * 2;\n const hexByte = hex.slice(j, j + 2);\n const byte = Number.parseInt(hexByte, 16);\n if (Number.isNaN(byte) || byte < 0)\n throw new Error('Invalid byte sequence');\n array[i] = byte;\n }\n return array;\n}\nfunction bytesToNumber(bytes) {\n return hexToNumber(bytesToHex(bytes));\n}\nfunction ensureBytes(hex) {\n return hex instanceof Uint8Array ? Uint8Array.from(hex) : hexToBytes(hex);\n}\nfunction normalizeScalar(num) {\n if (typeof num === 'number' && Number.isSafeInteger(num) && num > 0)\n return BigInt(num);\n if (typeof num === 'bigint' && isWithinCurveOrder(num))\n return num;\n throw new TypeError('Expected valid private scalar: 0 < scalar < curve.n');\n}\nfunction mod(a, b = CURVE.P) {\n const result = a % b;\n return result >= _0n ? result : b + result;\n}\nfunction pow2(x, power) {\n const { P } = CURVE;\n let res = x;\n while (power-- > _0n) {\n res *= res;\n res %= P;\n }\n return res;\n}\nfunction sqrtMod(x) {\n const { P } = CURVE;\n const _6n = BigInt(6);\n const _11n = BigInt(11);\n const _22n = BigInt(22);\n const _23n = BigInt(23);\n const _44n = BigInt(44);\n const _88n = BigInt(88);\n const b2 = (x * x * x) % P;\n const b3 = (b2 * b2 * x) % P;\n const b6 = (pow2(b3, _3n) * b3) % P;\n const b9 = (pow2(b6, _3n) * b3) % P;\n const b11 = (pow2(b9, _2n) * b2) % P;\n const b22 = (pow2(b11, _11n) * b11) % P;\n const b44 = (pow2(b22, _22n) * b22) % P;\n const b88 = (pow2(b44, _44n) * b44) % P;\n const b176 = (pow2(b88, _88n) * b88) % P;\n const b220 = (pow2(b176, _44n) * b44) % P;\n const b223 = (pow2(b220, _3n) * b3) % P;\n const t1 = (pow2(b223, _23n) * b22) % P;\n const t2 = (pow2(t1, _6n) * b2) % P;\n return pow2(t2, _2n);\n}\nfunction invert(number, modulo = CURVE.P) {\n if (number === _0n || modulo <= _0n) {\n throw new Error(`invert: expected positive integers, got n=${number} mod=${modulo}`);\n }\n let a = mod(number, modulo);\n let b = modulo;\n let x = _0n, y = _1n, u = _1n, v = _0n;\n while (a !== _0n) {\n const q = b / a;\n const r = b % a;\n const m = x - u * q;\n const n = y - v * q;\n b = a, a = r, x = u, y = v, u = m, v = n;\n }\n const gcd = b;\n if (gcd !== _1n)\n throw new Error('invert: does not exist');\n return mod(x, modulo);\n}\nfunction invertBatch(nums, p = CURVE.P) {\n const scratch = new Array(nums.length);\n const lastMultiplied = nums.reduce((acc, num, i) => {\n if (num === _0n)\n return acc;\n scratch[i] = acc;\n return mod(acc * num, p);\n }, _1n);\n const inverted = invert(lastMultiplied, p);\n nums.reduceRight((acc, num, i) => {\n if (num === _0n)\n return acc;\n scratch[i] = mod(acc * scratch[i], p);\n return mod(acc * num, p);\n }, inverted);\n return scratch;\n}\nconst divNearest = (a, b) => (a + b / _2n) / b;\nconst ENDO = {\n a1: BigInt('0x3086d221a7d46bcde86c90e49284eb15'),\n b1: -_1n * BigInt('0xe4437ed6010e88286f547fa90abfe4c3'),\n a2: BigInt('0x114ca50f7a8e2f3f657c1108d9d44cfd8'),\n b2: BigInt('0x3086d221a7d46bcde86c90e49284eb15'),\n POW_2_128: BigInt('0x100000000000000000000000000000000'),\n};\nfunction splitScalarEndo(k) {\n const { n } = CURVE;\n const { a1, b1, a2, b2, POW_2_128 } = ENDO;\n const c1 = divNearest(b2 * k, n);\n const c2 = divNearest(-b1 * k, n);\n let k1 = mod(k - c1 * a1 - c2 * a2, n);\n let k2 = mod(-c1 * b1 - c2 * b2, n);\n const k1neg = k1 > POW_2_128;\n const k2neg = k2 > POW_2_128;\n if (k1neg)\n k1 = n - k1;\n if (k2neg)\n k2 = n - k2;\n if (k1 > POW_2_128 || k2 > POW_2_128) {\n throw new Error('splitScalarEndo: Endomorphism failed, k=' + k);\n }\n return { k1neg, k1, k2neg, k2 };\n}\nfunction truncateHash(hash) {\n const { n } = CURVE;\n const byteLength = hash.length;\n const delta = byteLength * 8 - 256;\n let h = bytesToNumber(hash);\n if (delta > 0)\n h = h >> BigInt(delta);\n if (h >= n)\n h -= n;\n return h;\n}\nlet _sha256Sync;\nlet _hmacSha256Sync;\nclass HmacDrbg {\n constructor() {\n this.v = new Uint8Array(32).fill(1);\n this.k = new Uint8Array(32).fill(0);\n this.counter = 0;\n }\n hmac(...values) {\n return exports.utils.hmacSha256(this.k, ...values);\n }\n hmacSync(...values) {\n return _hmacSha256Sync(this.k, ...values);\n }\n checkSync() {\n if (typeof _hmacSha256Sync !== 'function')\n throw new ShaError('hmacSha256Sync needs to be set');\n }\n incr() {\n if (this.counter >= 1000)\n throw new Error('Tried 1,000 k values for sign(), all were invalid');\n this.counter += 1;\n }\n async reseed(seed = new Uint8Array()) {\n this.k = await this.hmac(this.v, Uint8Array.from([0x00]), seed);\n this.v = await this.hmac(this.v);\n if (seed.length === 0)\n return;\n this.k = await this.hmac(this.v, Uint8Array.from([0x01]), seed);\n this.v = await this.hmac(this.v);\n }\n reseedSync(seed = new Uint8Array()) {\n this.checkSync();\n this.k = this.hmacSync(this.v, Uint8Array.from([0x00]), seed);\n this.v = this.hmacSync(this.v);\n if (seed.length === 0)\n return;\n this.k = this.hmacSync(this.v, Uint8Array.from([0x01]), seed);\n this.v = this.hmacSync(this.v);\n }\n async generate() {\n this.incr();\n this.v = await this.hmac(this.v);\n return this.v;\n }\n generateSync() {\n this.checkSync();\n this.incr();\n this.v = this.hmacSync(this.v);\n return this.v;\n }\n}\nfunction isWithinCurveOrder(num) {\n return _0n < num && num < CURVE.n;\n}\nfunction isValidFieldElement(num) {\n return _0n < num && num < CURVE.P;\n}\nfunction kmdToSig(kBytes, m, d) {\n const k = bytesToNumber(kBytes);\n if (!isWithinCurveOrder(k))\n return;\n const { n } = CURVE;\n const q = Point.BASE.multiply(k);\n const r = mod(q.x, n);\n if (r === _0n)\n return;\n const s = mod(invert(k, n) * mod(m + d * r, n), n);\n if (s === _0n)\n return;\n const sig = new Signature(r, s);\n const recovery = (q.x === sig.r ? 0 : 2) | Number(q.y & _1n);\n return { sig, recovery };\n}\nfunction normalizePrivateKey(key) {\n let num;\n if (typeof key === 'bigint') {\n num = key;\n }\n else if (typeof key === 'number' && Number.isSafeInteger(key) && key > 0) {\n num = BigInt(key);\n }\n else if (typeof key === 'string') {\n if (key.length !== 64)\n throw new Error('Expected 32 bytes of private key');\n num = hexToNumber(key);\n }\n else if (key instanceof Uint8Array) {\n if (key.length !== 32)\n throw new Error('Expected 32 bytes of private key');\n num = bytesToNumber(key);\n }\n else {\n throw new TypeError('Expected valid private key');\n }\n if (!isWithinCurveOrder(num))\n throw new Error('Expected private key: 0 < key < n');\n return num;\n}\nfunction normalizePublicKey(publicKey) {\n if (publicKey instanceof Point) {\n publicKey.assertValidity();\n return publicKey;\n }\n else {\n return Point.fromHex(publicKey);\n }\n}\nfunction normalizeSignature(signature) {\n if (signature instanceof Signature) {\n signature.assertValidity();\n return signature;\n }\n try {\n return Signature.fromDER(signature);\n }\n catch (error) {\n return Signature.fromCompact(signature);\n }\n}\nfunction getPublicKey(privateKey, isCompressed = false) {\n return Point.fromPrivateKey(privateKey).toRawBytes(isCompressed);\n}\nexports.getPublicKey = getPublicKey;\nfunction recoverPublicKey(msgHash, signature, recovery, isCompressed = false) {\n return Point.fromSignature(msgHash, signature, recovery).toRawBytes(isCompressed);\n}\nexports.recoverPublicKey = recoverPublicKey;\nfunction isProbPub(item) {\n const arr = item instanceof Uint8Array;\n const str = typeof item === 'string';\n const len = (arr || str) && item.length;\n if (arr)\n return len === 33 || len === 65;\n if (str)\n return len === 66 || len === 130;\n if (item instanceof Point)\n return true;\n return false;\n}\nfunction getSharedSecret(privateA, publicB, isCompressed = false) {\n if (isProbPub(privateA))\n throw new TypeError('getSharedSecret: first arg must be private key');\n if (!isProbPub(publicB))\n throw new TypeError('getSharedSecret: second arg must be public key');\n const b = normalizePublicKey(publicB);\n b.assertValidity();\n return b.multiply(normalizePrivateKey(privateA)).toRawBytes(isCompressed);\n}\nexports.getSharedSecret = getSharedSecret;\nfunction bits2int(bytes) {\n const slice = bytes.length > 32 ? bytes.slice(0, 32) : bytes;\n return bytesToNumber(slice);\n}\nfunction bits2octets(bytes) {\n const z1 = bits2int(bytes);\n const z2 = mod(z1, CURVE.n);\n return int2octets(z2 < _0n ? z1 : z2);\n}\nfunction int2octets(num) {\n return numTo32b(num);\n}\nfunction initSigArgs(msgHash, privateKey, extraEntropy) {\n if (msgHash == null)\n throw new Error(`sign: expected valid message hash, not \"${msgHash}\"`);\n const h1 = ensureBytes(msgHash);\n const d = normalizePrivateKey(privateKey);\n const seedArgs = [int2octets(d), bits2octets(h1)];\n if (extraEntropy != null) {\n if (extraEntropy === true)\n extraEntropy = exports.utils.randomBytes(32);\n const e = ensureBytes(extraEntropy);\n if (e.length !== 32)\n throw new Error('sign: Expected 32 bytes of extra data');\n seedArgs.push(e);\n }\n const seed = concatBytes(...seedArgs);\n const m = bits2int(h1);\n return { seed, m, d };\n}\nfunction finalizeSig(recSig, opts) {\n let { sig, recovery } = recSig;\n const { canonical, der, recovered } = Object.assign({ canonical: true, der: true }, opts);\n if (canonical && sig.hasHighS()) {\n sig = sig.normalizeS();\n recovery ^= 1;\n }\n const hashed = der ? sig.toDERRawBytes() : sig.toCompactRawBytes();\n return recovered ? [hashed, recovery] : hashed;\n}\nasync function sign(msgHash, privKey, opts = {}) {\n const { seed, m, d } = initSigArgs(msgHash, privKey, opts.extraEntropy);\n let sig;\n const drbg = new HmacDrbg();\n await drbg.reseed(seed);\n while (!(sig = kmdToSig(await drbg.generate(), m, d)))\n await drbg.reseed();\n return finalizeSig(sig, opts);\n}\nexports.sign = sign;\nfunction signSync(msgHash, privKey, opts = {}) {\n const { seed, m, d } = initSigArgs(msgHash, privKey, opts.extraEntropy);\n let sig;\n const drbg = new HmacDrbg();\n drbg.reseedSync(seed);\n while (!(sig = kmdToSig(drbg.generateSync(), m, d)))\n drbg.reseedSync();\n return finalizeSig(sig, opts);\n}\nexports.signSync = signSync;\nconst vopts = { strict: true };\nfunction verify(signature, msgHash, publicKey, opts = vopts) {\n let sig;\n try {\n sig = normalizeSignature(signature);\n msgHash = ensureBytes(msgHash);\n }\n catch (error) {\n return false;\n }\n const { r, s } = sig;\n if (opts.strict && sig.hasHighS())\n return false;\n const h = truncateHash(msgHash);\n let P;\n try {\n P = normalizePublicKey(publicKey);\n }\n catch (error) {\n return false;\n }\n const { n } = CURVE;\n const sinv = invert(s, n);\n const u1 = mod(h * sinv, n);\n const u2 = mod(r * sinv, n);\n const R = Point.BASE.multiplyAndAddUnsafe(P, u1, u2);\n if (!R)\n return false;\n const v = mod(R.x, n);\n return v === r;\n}\nexports.verify = verify;\nfunction schnorrChallengeFinalize(ch) {\n return mod(bytesToNumber(ch), CURVE.n);\n}\nclass SchnorrSignature {\n constructor(r, s) {\n this.r = r;\n this.s = s;\n this.assertValidity();\n }\n static fromHex(hex) {\n const bytes = ensureBytes(hex);\n if (bytes.length !== 64)\n throw new TypeError(`SchnorrSignature.fromHex: expected 64 bytes, not ${bytes.length}`);\n const r = bytesToNumber(bytes.subarray(0, 32));\n const s = bytesToNumber(bytes.subarray(32, 64));\n return new SchnorrSignature(r, s);\n }\n assertValidity() {\n const { r, s } = this;\n if (!isValidFieldElement(r) || !isWithinCurveOrder(s))\n throw new Error('Invalid signature');\n }\n toHex() {\n return numTo32bStr(this.r) + numTo32bStr(this.s);\n }\n toRawBytes() {\n return hexToBytes(this.toHex());\n }\n}\nfunction schnorrGetPublicKey(privateKey) {\n return Point.fromPrivateKey(privateKey).toRawX();\n}\nclass InternalSchnorrSignature {\n constructor(message, privateKey, auxRand = exports.utils.randomBytes()) {\n if (message == null)\n throw new TypeError(`sign: Expected valid message, not \"${message}\"`);\n this.m = ensureBytes(message);\n const { x, scalar } = this.getScalar(normalizePrivateKey(privateKey));\n this.px = x;\n this.d = scalar;\n this.rand = ensureBytes(auxRand);\n if (this.rand.length !== 32)\n throw new TypeError('sign: Expected 32 bytes of aux randomness');\n }\n getScalar(priv) {\n const point = Point.fromPrivateKey(priv);\n const scalar = point.hasEvenY() ? priv : CURVE.n - priv;\n return { point, scalar, x: point.toRawX() };\n }\n initNonce(d, t0h) {\n return numTo32b(d ^ bytesToNumber(t0h));\n }\n finalizeNonce(k0h) {\n const k0 = mod(bytesToNumber(k0h), CURVE.n);\n if (k0 === _0n)\n throw new Error('sign: Creation of signature failed. k is zero');\n const { point: R, x: rx, scalar: k } = this.getScalar(k0);\n return { R, rx, k };\n }\n finalizeSig(R, k, e, d) {\n return new SchnorrSignature(R.x, mod(k + e * d, CURVE.n)).toRawBytes();\n }\n error() {\n throw new Error('sign: Invalid signature produced');\n }\n async calc() {\n const { m, d, px, rand } = this;\n const tag = exports.utils.taggedHash;\n const t = this.initNonce(d, await tag(TAGS.aux, rand));\n const { R, rx, k } = this.finalizeNonce(await tag(TAGS.nonce, t, px, m));\n const e = schnorrChallengeFinalize(await tag(TAGS.challenge, rx, px, m));\n const sig = this.finalizeSig(R, k, e, d);\n if (!(await schnorrVerify(sig, m, px)))\n this.error();\n return sig;\n }\n calcSync() {\n const { m, d, px, rand } = this;\n const tag = exports.utils.taggedHashSync;\n const t = this.initNonce(d, tag(TAGS.aux, rand));\n const { R, rx, k } = this.finalizeNonce(tag(TAGS.nonce, t, px, m));\n const e = schnorrChallengeFinalize(tag(TAGS.challenge, rx, px, m));\n const sig = this.finalizeSig(R, k, e, d);\n if (!schnorrVerifySync(sig, m, px))\n this.error();\n return sig;\n }\n}\nasync function schnorrSign(msg, privKey, auxRand) {\n return new InternalSchnorrSignature(msg, privKey, auxRand).calc();\n}\nfunction schnorrSignSync(msg, privKey, auxRand) {\n return new InternalSchnorrSignature(msg, privKey, auxRand).calcSync();\n}\nfunction initSchnorrVerify(signature, message, publicKey) {\n const raw = signature instanceof SchnorrSignature;\n const sig = raw ? signature : SchnorrSignature.fromHex(signature);\n if (raw)\n sig.assertValidity();\n return {\n ...sig,\n m: ensureBytes(message),\n P: normalizePublicKey(publicKey),\n };\n}\nfunction finalizeSchnorrVerify(r, P, s, e) {\n const R = Point.BASE.multiplyAndAddUnsafe(P, normalizePrivateKey(s), mod(-e, CURVE.n));\n if (!R || !R.hasEvenY() || R.x !== r)\n return false;\n return true;\n}\nasync function schnorrVerify(signature, message, publicKey) {\n try {\n const { r, s, m, P } = initSchnorrVerify(signature, message, publicKey);\n const e = schnorrChallengeFinalize(await exports.utils.taggedHash(TAGS.challenge, numTo32b(r), P.toRawX(), m));\n return finalizeSchnorrVerify(r, P, s, e);\n }\n catch (error) {\n return false;\n }\n}\nfunction schnorrVerifySync(signature, message, publicKey) {\n try {\n const { r, s, m, P } = initSchnorrVerify(signature, message, publicKey);\n const e = schnorrChallengeFinalize(exports.utils.taggedHashSync(TAGS.challenge, numTo32b(r), P.toRawX(), m));\n return finalizeSchnorrVerify(r, P, s, e);\n }\n catch (error) {\n if (error instanceof ShaError)\n throw error;\n return false;\n }\n}\nexports.schnorr = {\n Signature: SchnorrSignature,\n getPublicKey: schnorrGetPublicKey,\n sign: schnorrSign,\n verify: schnorrVerify,\n signSync: schnorrSignSync,\n verifySync: schnorrVerifySync,\n};\nPoint.BASE._setWindowSize(8);\nconst crypto = {\n node: nodeCrypto,\n web: typeof self === 'object' && 'crypto' in self ? self.crypto : undefined,\n};\nconst TAGS = {\n challenge: 'BIP0340/challenge',\n aux: 'BIP0340/aux',\n nonce: 'BIP0340/nonce',\n};\nconst TAGGED_HASH_PREFIXES = {};\nexports.utils = {\n bytesToHex,\n hexToBytes,\n concatBytes,\n mod,\n invert,\n isValidPrivateKey(privateKey) {\n try {\n normalizePrivateKey(privateKey);\n return true;\n }\n catch (error) {\n return false;\n }\n },\n _bigintTo32Bytes: numTo32b,\n _normalizePrivateKey: normalizePrivateKey,\n hashToPrivateKey: (hash) => {\n hash = ensureBytes(hash);\n if (hash.length < 40 || hash.length > 1024)\n throw new Error('Expected 40-1024 bytes of private key as per FIPS 186');\n const num = mod(bytesToNumber(hash), CURVE.n - _1n) + _1n;\n return numTo32b(num);\n },\n randomBytes: (bytesLength = 32) => {\n if (crypto.web) {\n return crypto.web.getRandomValues(new Uint8Array(bytesLength));\n }\n else if (crypto.node) {\n const { randomBytes } = crypto.node;\n return Uint8Array.from(randomBytes(bytesLength));\n }\n else {\n throw new Error(\"The environment doesn't have randomBytes function\");\n }\n },\n randomPrivateKey: () => {\n return exports.utils.hashToPrivateKey(exports.utils.randomBytes(40));\n },\n sha256: async (...messages) => {\n if (crypto.web) {\n const buffer = await crypto.web.subtle.digest('SHA-256', concatBytes(...messages));\n return new Uint8Array(buffer);\n }\n else if (crypto.node) {\n const { createHash } = crypto.node;\n const hash = createHash('sha256');\n messages.forEach((m) => hash.update(m));\n return Uint8Array.from(hash.digest());\n }\n else {\n throw new Error(\"The environment doesn't have sha256 function\");\n }\n },\n hmacSha256: async (key, ...messages) => {\n if (crypto.web) {\n const ckey = await crypto.web.subtle.importKey('raw', key, { name: 'HMAC', hash: { name: 'SHA-256' } }, false, ['sign']);\n const message = concatBytes(...messages);\n const buffer = await crypto.web.subtle.sign('HMAC', ckey, message);\n return new Uint8Array(buffer);\n }\n else if (crypto.node) {\n const { createHmac } = crypto.node;\n const hash = createHmac('sha256', key);\n messages.forEach((m) => hash.update(m));\n return Uint8Array.from(hash.digest());\n }\n else {\n throw new Error(\"The environment doesn't have hmac-sha256 function\");\n }\n },\n sha256Sync: undefined,\n hmacSha256Sync: undefined,\n taggedHash: async (tag, ...messages) => {\n let tagP = TAGGED_HASH_PREFIXES[tag];\n if (tagP === undefined) {\n const tagH = await exports.utils.sha256(Uint8Array.from(tag, (c) => c.charCodeAt(0)));\n tagP = concatBytes(tagH, tagH);\n TAGGED_HASH_PREFIXES[tag] = tagP;\n }\n return exports.utils.sha256(tagP, ...messages);\n },\n taggedHashSync: (tag, ...messages) => {\n if (typeof _sha256Sync !== 'function')\n throw new ShaError('sha256Sync is undefined, you need to set it');\n let tagP = TAGGED_HASH_PREFIXES[tag];\n if (tagP === undefined) {\n const tagH = _sha256Sync(Uint8Array.from(tag, (c) => c.charCodeAt(0)));\n tagP = concatBytes(tagH, tagH);\n TAGGED_HASH_PREFIXES[tag] = tagP;\n }\n return _sha256Sync(tagP, ...messages);\n },\n precompute(windowSize = 8, point = Point.BASE) {\n const cached = point === Point.BASE ? point : new Point(point.x, point.y);\n cached._setWindowSize(windowSize);\n cached.multiply(_3n);\n return cached;\n },\n};\nObject.defineProperties(exports.utils, {\n sha256Sync: {\n configurable: false,\n get() {\n return _sha256Sync;\n },\n set(val) {\n if (!_sha256Sync)\n _sha256Sync = val;\n },\n },\n hmacSha256Sync: {\n configurable: false,\n get() {\n return _hmacSha256Sync;\n },\n set(val) {\n if (!_hmacSha256Sync)\n _hmacSha256Sync = val;\n },\n },\n});\n","\"use strict\";\r\nmodule.exports = asPromise;\r\n\r\n/**\r\n * Callback as used by {@link util.asPromise}.\r\n * @typedef asPromiseCallback\r\n * @type {function}\r\n * @param {Error|null} error Error, if any\r\n * @param {...*} params Additional arguments\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Returns a promise from a node-style callback function.\r\n * @memberof util\r\n * @param {asPromiseCallback} fn Function to call\r\n * @param {*} ctx Function context\r\n * @param {...*} params Function arguments\r\n * @returns {Promise<*>} Promisified function\r\n */\r\nfunction asPromise(fn, ctx/*, varargs */) {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0,\r\n index = 2,\r\n pending = true;\r\n while (index < arguments.length)\r\n params[offset++] = arguments[index++];\r\n return new Promise(function executor(resolve, reject) {\r\n params[offset] = function callback(err/*, varargs */) {\r\n if (pending) {\r\n pending = false;\r\n if (err)\r\n reject(err);\r\n else {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0;\r\n while (offset < params.length)\r\n params[offset++] = arguments[offset];\r\n resolve.apply(null, params);\r\n }\r\n }\r\n };\r\n try {\r\n fn.apply(ctx || null, params);\r\n } catch (err) {\r\n if (pending) {\r\n pending = false;\r\n reject(err);\r\n }\r\n }\r\n });\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal base64 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar base64 = exports;\r\n\r\n/**\r\n * Calculates the byte length of a base64 encoded string.\r\n * @param {string} string Base64 encoded string\r\n * @returns {number} Byte length\r\n */\r\nbase64.length = function length(string) {\r\n var p = string.length;\r\n if (!p)\r\n return 0;\r\n var n = 0;\r\n while (--p % 4 > 1 && string.charAt(p) === \"=\")\r\n ++n;\r\n return Math.ceil(string.length * 3) / 4 - n;\r\n};\r\n\r\n// Base64 encoding table\r\nvar b64 = new Array(64);\r\n\r\n// Base64 decoding table\r\nvar s64 = new Array(123);\r\n\r\n// 65..90, 97..122, 48..57, 43, 47\r\nfor (var i = 0; i < 64;)\r\n s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;\r\n\r\n/**\r\n * Encodes a buffer to a base64 encoded string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} Base64 encoded string\r\n */\r\nbase64.encode = function encode(buffer, start, end) {\r\n var parts = null,\r\n chunk = [];\r\n var i = 0, // output index\r\n j = 0, // goto index\r\n t; // temporary\r\n while (start < end) {\r\n var b = buffer[start++];\r\n switch (j) {\r\n case 0:\r\n chunk[i++] = b64[b >> 2];\r\n t = (b & 3) << 4;\r\n j = 1;\r\n break;\r\n case 1:\r\n chunk[i++] = b64[t | b >> 4];\r\n t = (b & 15) << 2;\r\n j = 2;\r\n break;\r\n case 2:\r\n chunk[i++] = b64[t | b >> 6];\r\n chunk[i++] = b64[b & 63];\r\n j = 0;\r\n break;\r\n }\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (j) {\r\n chunk[i++] = b64[t];\r\n chunk[i++] = 61;\r\n if (j === 1)\r\n chunk[i++] = 61;\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\nvar invalidEncoding = \"invalid encoding\";\r\n\r\n/**\r\n * Decodes a base64 encoded string to a buffer.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Number of bytes written\r\n * @throws {Error} If encoding is invalid\r\n */\r\nbase64.decode = function decode(string, buffer, offset) {\r\n var start = offset;\r\n var j = 0, // goto index\r\n t; // temporary\r\n for (var i = 0; i < string.length;) {\r\n var c = string.charCodeAt(i++);\r\n if (c === 61 && j > 1)\r\n break;\r\n if ((c = s64[c]) === undefined)\r\n throw Error(invalidEncoding);\r\n switch (j) {\r\n case 0:\r\n t = c;\r\n j = 1;\r\n break;\r\n case 1:\r\n buffer[offset++] = t << 2 | (c & 48) >> 4;\r\n t = c;\r\n j = 2;\r\n break;\r\n case 2:\r\n buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;\r\n t = c;\r\n j = 3;\r\n break;\r\n case 3:\r\n buffer[offset++] = (t & 3) << 6 | c;\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j === 1)\r\n throw Error(invalidEncoding);\r\n return offset - start;\r\n};\r\n\r\n/**\r\n * Tests if the specified string appears to be base64 encoded.\r\n * @param {string} string String to test\r\n * @returns {boolean} `true` if probably base64 encoded, otherwise false\r\n */\r\nbase64.test = function test(string) {\r\n return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(string);\r\n};\r\n","\"use strict\";\r\nmodule.exports = EventEmitter;\r\n\r\n/**\r\n * Constructs a new event emitter instance.\r\n * @classdesc A minimal event emitter.\r\n * @memberof util\r\n * @constructor\r\n */\r\nfunction EventEmitter() {\r\n\r\n /**\r\n * Registered listeners.\r\n * @type {Object.}\r\n * @private\r\n */\r\n this._listeners = {};\r\n}\r\n\r\n/**\r\n * Registers an event listener.\r\n * @param {string} evt Event name\r\n * @param {function} fn Listener\r\n * @param {*} [ctx] Listener context\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.on = function on(evt, fn, ctx) {\r\n (this._listeners[evt] || (this._listeners[evt] = [])).push({\r\n fn : fn,\r\n ctx : ctx || this\r\n });\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes an event listener or any matching listeners if arguments are omitted.\r\n * @param {string} [evt] Event name. Removes all listeners if omitted.\r\n * @param {function} [fn] Listener to remove. Removes all listeners of `evt` if omitted.\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.off = function off(evt, fn) {\r\n if (evt === undefined)\r\n this._listeners = {};\r\n else {\r\n if (fn === undefined)\r\n this._listeners[evt] = [];\r\n else {\r\n var listeners = this._listeners[evt];\r\n for (var i = 0; i < listeners.length;)\r\n if (listeners[i].fn === fn)\r\n listeners.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Emits an event by calling its listeners with the specified arguments.\r\n * @param {string} evt Event name\r\n * @param {...*} args Arguments\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.emit = function emit(evt) {\r\n var listeners = this._listeners[evt];\r\n if (listeners) {\r\n var args = [],\r\n i = 1;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n for (i = 0; i < listeners.length;)\r\n listeners[i].fn.apply(listeners[i++].ctx, args);\r\n }\r\n return this;\r\n};\r\n","\"use strict\";\r\n\r\nmodule.exports = factory(factory);\r\n\r\n/**\r\n * Reads / writes floats / doubles from / to buffers.\r\n * @name util.float\r\n * @namespace\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using little endian byte order.\r\n * @name util.float.writeFloatLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using big endian byte order.\r\n * @name util.float.writeFloatBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using little endian byte order.\r\n * @name util.float.readFloatLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using big endian byte order.\r\n * @name util.float.readFloatBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using little endian byte order.\r\n * @name util.float.writeDoubleLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using big endian byte order.\r\n * @name util.float.writeDoubleBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using little endian byte order.\r\n * @name util.float.readDoubleLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using big endian byte order.\r\n * @name util.float.readDoubleBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n// Factory function for the purpose of node-based testing in modified global environments\r\nfunction factory(exports) {\r\n\r\n // float: typed array\r\n if (typeof Float32Array !== \"undefined\") (function() {\r\n\r\n var f32 = new Float32Array([ -0 ]),\r\n f8b = new Uint8Array(f32.buffer),\r\n le = f8b[3] === 128;\r\n\r\n function writeFloat_f32_cpy(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n }\r\n\r\n function writeFloat_f32_rev(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[3];\r\n buf[pos + 1] = f8b[2];\r\n buf[pos + 2] = f8b[1];\r\n buf[pos + 3] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeFloatLE = le ? writeFloat_f32_cpy : writeFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.writeFloatBE = le ? writeFloat_f32_rev : writeFloat_f32_cpy;\r\n\r\n function readFloat_f32_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n function readFloat_f32_rev(buf, pos) {\r\n f8b[3] = buf[pos ];\r\n f8b[2] = buf[pos + 1];\r\n f8b[1] = buf[pos + 2];\r\n f8b[0] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readFloatLE = le ? readFloat_f32_cpy : readFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.readFloatBE = le ? readFloat_f32_rev : readFloat_f32_cpy;\r\n\r\n // float: ieee754\r\n })(); else (function() {\r\n\r\n function writeFloat_ieee754(writeUint, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0)\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos);\r\n else if (isNaN(val))\r\n writeUint(2143289344, buf, pos);\r\n else if (val > 3.4028234663852886e+38) // +-Infinity\r\n writeUint((sign << 31 | 2139095040) >>> 0, buf, pos);\r\n else if (val < 1.1754943508222875e-38) // denormal\r\n writeUint((sign << 31 | Math.round(val / 1.401298464324817e-45)) >>> 0, buf, pos);\r\n else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2),\r\n mantissa = Math.round(val * Math.pow(2, -exponent) * 8388608) & 8388607;\r\n writeUint((sign << 31 | exponent + 127 << 23 | mantissa) >>> 0, buf, pos);\r\n }\r\n }\r\n\r\n exports.writeFloatLE = writeFloat_ieee754.bind(null, writeUintLE);\r\n exports.writeFloatBE = writeFloat_ieee754.bind(null, writeUintBE);\r\n\r\n function readFloat_ieee754(readUint, buf, pos) {\r\n var uint = readUint(buf, pos),\r\n sign = (uint >> 31) * 2 + 1,\r\n exponent = uint >>> 23 & 255,\r\n mantissa = uint & 8388607;\r\n return exponent === 255\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 1.401298464324817e-45 * mantissa\r\n : sign * Math.pow(2, exponent - 150) * (mantissa + 8388608);\r\n }\r\n\r\n exports.readFloatLE = readFloat_ieee754.bind(null, readUintLE);\r\n exports.readFloatBE = readFloat_ieee754.bind(null, readUintBE);\r\n\r\n })();\r\n\r\n // double: typed array\r\n if (typeof Float64Array !== \"undefined\") (function() {\r\n\r\n var f64 = new Float64Array([-0]),\r\n f8b = new Uint8Array(f64.buffer),\r\n le = f8b[7] === 128;\r\n\r\n function writeDouble_f64_cpy(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n buf[pos + 4] = f8b[4];\r\n buf[pos + 5] = f8b[5];\r\n buf[pos + 6] = f8b[6];\r\n buf[pos + 7] = f8b[7];\r\n }\r\n\r\n function writeDouble_f64_rev(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[7];\r\n buf[pos + 1] = f8b[6];\r\n buf[pos + 2] = f8b[5];\r\n buf[pos + 3] = f8b[4];\r\n buf[pos + 4] = f8b[3];\r\n buf[pos + 5] = f8b[2];\r\n buf[pos + 6] = f8b[1];\r\n buf[pos + 7] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeDoubleLE = le ? writeDouble_f64_cpy : writeDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.writeDoubleBE = le ? writeDouble_f64_rev : writeDouble_f64_cpy;\r\n\r\n function readDouble_f64_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n f8b[4] = buf[pos + 4];\r\n f8b[5] = buf[pos + 5];\r\n f8b[6] = buf[pos + 6];\r\n f8b[7] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n function readDouble_f64_rev(buf, pos) {\r\n f8b[7] = buf[pos ];\r\n f8b[6] = buf[pos + 1];\r\n f8b[5] = buf[pos + 2];\r\n f8b[4] = buf[pos + 3];\r\n f8b[3] = buf[pos + 4];\r\n f8b[2] = buf[pos + 5];\r\n f8b[1] = buf[pos + 6];\r\n f8b[0] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readDoubleLE = le ? readDouble_f64_cpy : readDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.readDoubleBE = le ? readDouble_f64_rev : readDouble_f64_cpy;\r\n\r\n // double: ieee754\r\n })(); else (function() {\r\n\r\n function writeDouble_ieee754(writeUint, off0, off1, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos + off1);\r\n } else if (isNaN(val)) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(2146959360, buf, pos + off1);\r\n } else if (val > 1.7976931348623157e+308) { // +-Infinity\r\n writeUint(0, buf, pos + off0);\r\n writeUint((sign << 31 | 2146435072) >>> 0, buf, pos + off1);\r\n } else {\r\n var mantissa;\r\n if (val < 2.2250738585072014e-308) { // denormal\r\n mantissa = val / 5e-324;\r\n writeUint(mantissa >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | mantissa / 4294967296) >>> 0, buf, pos + off1);\r\n } else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2);\r\n if (exponent === 1024)\r\n exponent = 1023;\r\n mantissa = val * Math.pow(2, -exponent);\r\n writeUint(mantissa * 4503599627370496 >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | exponent + 1023 << 20 | mantissa * 1048576 & 1048575) >>> 0, buf, pos + off1);\r\n }\r\n }\r\n }\r\n\r\n exports.writeDoubleLE = writeDouble_ieee754.bind(null, writeUintLE, 0, 4);\r\n exports.writeDoubleBE = writeDouble_ieee754.bind(null, writeUintBE, 4, 0);\r\n\r\n function readDouble_ieee754(readUint, off0, off1, buf, pos) {\r\n var lo = readUint(buf, pos + off0),\r\n hi = readUint(buf, pos + off1);\r\n var sign = (hi >> 31) * 2 + 1,\r\n exponent = hi >>> 20 & 2047,\r\n mantissa = 4294967296 * (hi & 1048575) + lo;\r\n return exponent === 2047\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 5e-324 * mantissa\r\n : sign * Math.pow(2, exponent - 1075) * (mantissa + 4503599627370496);\r\n }\r\n\r\n exports.readDoubleLE = readDouble_ieee754.bind(null, readUintLE, 0, 4);\r\n exports.readDoubleBE = readDouble_ieee754.bind(null, readUintBE, 4, 0);\r\n\r\n })();\r\n\r\n return exports;\r\n}\r\n\r\n// uint helpers\r\n\r\nfunction writeUintLE(val, buf, pos) {\r\n buf[pos ] = val & 255;\r\n buf[pos + 1] = val >>> 8 & 255;\r\n buf[pos + 2] = val >>> 16 & 255;\r\n buf[pos + 3] = val >>> 24;\r\n}\r\n\r\nfunction writeUintBE(val, buf, pos) {\r\n buf[pos ] = val >>> 24;\r\n buf[pos + 1] = val >>> 16 & 255;\r\n buf[pos + 2] = val >>> 8 & 255;\r\n buf[pos + 3] = val & 255;\r\n}\r\n\r\nfunction readUintLE(buf, pos) {\r\n return (buf[pos ]\r\n | buf[pos + 1] << 8\r\n | buf[pos + 2] << 16\r\n | buf[pos + 3] << 24) >>> 0;\r\n}\r\n\r\nfunction readUintBE(buf, pos) {\r\n return (buf[pos ] << 24\r\n | buf[pos + 1] << 16\r\n | buf[pos + 2] << 8\r\n | buf[pos + 3]) >>> 0;\r\n}\r\n","\"use strict\";\r\nmodule.exports = inquire;\r\n\r\n/**\r\n * Requires a module only if available.\r\n * @memberof util\r\n * @param {string} moduleName Module to require\r\n * @returns {?Object} Required module if available and not empty, otherwise `null`\r\n */\r\nfunction inquire(moduleName) {\r\n try {\r\n var mod = eval(\"quire\".replace(/^/,\"re\"))(moduleName); // eslint-disable-line no-eval\r\n if (mod && (mod.length || Object.keys(mod).length))\r\n return mod;\r\n } catch (e) {} // eslint-disable-line no-empty\r\n return null;\r\n}\r\n","\"use strict\";\r\nmodule.exports = pool;\r\n\r\n/**\r\n * An allocator as used by {@link util.pool}.\r\n * @typedef PoolAllocator\r\n * @type {function}\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\n\r\n/**\r\n * A slicer as used by {@link util.pool}.\r\n * @typedef PoolSlicer\r\n * @type {function}\r\n * @param {number} start Start offset\r\n * @param {number} end End offset\r\n * @returns {Uint8Array} Buffer slice\r\n * @this {Uint8Array}\r\n */\r\n\r\n/**\r\n * A general purpose buffer pool.\r\n * @memberof util\r\n * @function\r\n * @param {PoolAllocator} alloc Allocator\r\n * @param {PoolSlicer} slice Slicer\r\n * @param {number} [size=8192] Slab size\r\n * @returns {PoolAllocator} Pooled allocator\r\n */\r\nfunction pool(alloc, slice, size) {\r\n var SIZE = size || 8192;\r\n var MAX = SIZE >>> 1;\r\n var slab = null;\r\n var offset = SIZE;\r\n return function pool_alloc(size) {\r\n if (size < 1 || size > MAX)\r\n return alloc(size);\r\n if (offset + size > SIZE) {\r\n slab = alloc(SIZE);\r\n offset = 0;\r\n }\r\n var buf = slice.call(slab, offset, offset += size);\r\n if (offset & 7) // align to 32 bit\r\n offset = (offset | 7) + 1;\r\n return buf;\r\n };\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal UTF8 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar utf8 = exports;\r\n\r\n/**\r\n * Calculates the UTF8 byte length of a string.\r\n * @param {string} string String\r\n * @returns {number} Byte length\r\n */\r\nutf8.length = function utf8_length(string) {\r\n var len = 0,\r\n c = 0;\r\n for (var i = 0; i < string.length; ++i) {\r\n c = string.charCodeAt(i);\r\n if (c < 128)\r\n len += 1;\r\n else if (c < 2048)\r\n len += 2;\r\n else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) {\r\n ++i;\r\n len += 4;\r\n } else\r\n len += 3;\r\n }\r\n return len;\r\n};\r\n\r\n/**\r\n * Reads UTF8 bytes as a string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} String read\r\n */\r\nutf8.read = function utf8_read(buffer, start, end) {\r\n var len = end - start;\r\n if (len < 1)\r\n return \"\";\r\n var parts = null,\r\n chunk = [],\r\n i = 0, // char offset\r\n t; // temporary\r\n while (start < end) {\r\n t = buffer[start++];\r\n if (t < 128)\r\n chunk[i++] = t;\r\n else if (t > 191 && t < 224)\r\n chunk[i++] = (t & 31) << 6 | buffer[start++] & 63;\r\n else if (t > 239 && t < 365) {\r\n t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 0x10000;\r\n chunk[i++] = 0xD800 + (t >> 10);\r\n chunk[i++] = 0xDC00 + (t & 1023);\r\n } else\r\n chunk[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63;\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\n/**\r\n * Writes a string as UTF8 bytes.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Bytes written\r\n */\r\nutf8.write = function utf8_write(string, buffer, offset) {\r\n var start = offset,\r\n c1, // character 1\r\n c2; // character 2\r\n for (var i = 0; i < string.length; ++i) {\r\n c1 = string.charCodeAt(i);\r\n if (c1 < 128) {\r\n buffer[offset++] = c1;\r\n } else if (c1 < 2048) {\r\n buffer[offset++] = c1 >> 6 | 192;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) {\r\n c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF);\r\n ++i;\r\n buffer[offset++] = c1 >> 18 | 240;\r\n buffer[offset++] = c1 >> 12 & 63 | 128;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else {\r\n buffer[offset++] = c1 >> 12 | 224;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n }\r\n }\r\n return offset - start;\r\n};\r\n","\"use strict\";\n/*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bytes = exports.stringToBytes = exports.str = exports.bytesToString = exports.hex = exports.utf8 = exports.bech32m = exports.bech32 = exports.base58check = exports.base58xmr = exports.base58xrp = exports.base58flickr = exports.base58 = exports.base64url = exports.base64 = exports.base32crockford = exports.base32hex = exports.base32 = exports.base16 = exports.utils = exports.assertNumber = void 0;\nfunction assertNumber(n) {\n if (!Number.isSafeInteger(n))\n throw new Error(`Wrong integer: ${n}`);\n}\nexports.assertNumber = assertNumber;\nfunction chain(...args) {\n const wrap = (a, b) => (c) => a(b(c));\n const encode = Array.from(args)\n .reverse()\n .reduce((acc, i) => (acc ? wrap(acc, i.encode) : i.encode), undefined);\n const decode = args.reduce((acc, i) => (acc ? wrap(acc, i.decode) : i.decode), undefined);\n return { encode, decode };\n}\nfunction alphabet(alphabet) {\n return {\n encode: (digits) => {\n if (!Array.isArray(digits) || (digits.length && typeof digits[0] !== 'number'))\n throw new Error('alphabet.encode input should be an array of numbers');\n return digits.map((i) => {\n assertNumber(i);\n if (i < 0 || i >= alphabet.length)\n throw new Error(`Digit index outside alphabet: ${i} (alphabet: ${alphabet.length})`);\n return alphabet[i];\n });\n },\n decode: (input) => {\n if (!Array.isArray(input) || (input.length && typeof input[0] !== 'string'))\n throw new Error('alphabet.decode input should be array of strings');\n return input.map((letter) => {\n if (typeof letter !== 'string')\n throw new Error(`alphabet.decode: not string element=${letter}`);\n const index = alphabet.indexOf(letter);\n if (index === -1)\n throw new Error(`Unknown letter: \"${letter}\". Allowed: ${alphabet}`);\n return index;\n });\n },\n };\n}\nfunction join(separator = '') {\n if (typeof separator !== 'string')\n throw new Error('join separator should be string');\n return {\n encode: (from) => {\n if (!Array.isArray(from) || (from.length && typeof from[0] !== 'string'))\n throw new Error('join.encode input should be array of strings');\n for (let i of from)\n if (typeof i !== 'string')\n throw new Error(`join.encode: non-string input=${i}`);\n return from.join(separator);\n },\n decode: (to) => {\n if (typeof to !== 'string')\n throw new Error('join.decode input should be string');\n return to.split(separator);\n },\n };\n}\nfunction padding(bits, chr = '=') {\n assertNumber(bits);\n if (typeof chr !== 'string')\n throw new Error('padding chr should be string');\n return {\n encode(data) {\n if (!Array.isArray(data) || (data.length && typeof data[0] !== 'string'))\n throw new Error('padding.encode input should be array of strings');\n for (let i of data)\n if (typeof i !== 'string')\n throw new Error(`padding.encode: non-string input=${i}`);\n while ((data.length * bits) % 8)\n data.push(chr);\n return data;\n },\n decode(input) {\n if (!Array.isArray(input) || (input.length && typeof input[0] !== 'string'))\n throw new Error('padding.encode input should be array of strings');\n for (let i of input)\n if (typeof i !== 'string')\n throw new Error(`padding.decode: non-string input=${i}`);\n let end = input.length;\n if ((end * bits) % 8)\n throw new Error('Invalid padding: string should have whole number of bytes');\n for (; end > 0 && input[end - 1] === chr; end--) {\n if (!(((end - 1) * bits) % 8))\n throw new Error('Invalid padding: string has too much padding');\n }\n return input.slice(0, end);\n },\n };\n}\nfunction normalize(fn) {\n if (typeof fn !== 'function')\n throw new Error('normalize fn should be function');\n return { encode: (from) => from, decode: (to) => fn(to) };\n}\nfunction convertRadix(data, from, to) {\n if (from < 2)\n throw new Error(`convertRadix: wrong from=${from}, base cannot be less than 2`);\n if (to < 2)\n throw new Error(`convertRadix: wrong to=${to}, base cannot be less than 2`);\n if (!Array.isArray(data))\n throw new Error('convertRadix: data should be array');\n if (!data.length)\n return [];\n let pos = 0;\n const res = [];\n const digits = Array.from(data);\n digits.forEach((d) => {\n assertNumber(d);\n if (d < 0 || d >= from)\n throw new Error(`Wrong integer: ${d}`);\n });\n while (true) {\n let carry = 0;\n let done = true;\n for (let i = pos; i < digits.length; i++) {\n const digit = digits[i];\n const digitBase = from * carry + digit;\n if (!Number.isSafeInteger(digitBase) ||\n (from * carry) / from !== carry ||\n digitBase - digit !== from * carry) {\n throw new Error('convertRadix: carry overflow');\n }\n carry = digitBase % to;\n digits[i] = Math.floor(digitBase / to);\n if (!Number.isSafeInteger(digits[i]) || digits[i] * to + carry !== digitBase)\n throw new Error('convertRadix: carry overflow');\n if (!done)\n continue;\n else if (!digits[i])\n pos = i;\n else\n done = false;\n }\n res.push(carry);\n if (done)\n break;\n }\n for (let i = 0; i < data.length - 1 && data[i] === 0; i++)\n res.push(0);\n return res.reverse();\n}\nconst gcd = (a, b) => (!b ? a : gcd(b, a % b));\nconst radix2carry = (from, to) => from + (to - gcd(from, to));\nfunction convertRadix2(data, from, to, padding) {\n if (!Array.isArray(data))\n throw new Error('convertRadix2: data should be array');\n if (from <= 0 || from > 32)\n throw new Error(`convertRadix2: wrong from=${from}`);\n if (to <= 0 || to > 32)\n throw new Error(`convertRadix2: wrong to=${to}`);\n if (radix2carry(from, to) > 32) {\n throw new Error(`convertRadix2: carry overflow from=${from} to=${to} carryBits=${radix2carry(from, to)}`);\n }\n let carry = 0;\n let pos = 0;\n const mask = 2 ** to - 1;\n const res = [];\n for (const n of data) {\n assertNumber(n);\n if (n >= 2 ** from)\n throw new Error(`convertRadix2: invalid data word=${n} from=${from}`);\n carry = (carry << from) | n;\n if (pos + from > 32)\n throw new Error(`convertRadix2: carry overflow pos=${pos} from=${from}`);\n pos += from;\n for (; pos >= to; pos -= to)\n res.push(((carry >> (pos - to)) & mask) >>> 0);\n carry &= 2 ** pos - 1;\n }\n carry = (carry << (to - pos)) & mask;\n if (!padding && pos >= from)\n throw new Error('Excess padding');\n if (!padding && carry)\n throw new Error(`Non-zero padding: ${carry}`);\n if (padding && pos > 0)\n res.push(carry >>> 0);\n return res;\n}\nfunction radix(num) {\n assertNumber(num);\n return {\n encode: (bytes) => {\n if (!(bytes instanceof Uint8Array))\n throw new Error('radix.encode input should be Uint8Array');\n return convertRadix(Array.from(bytes), 2 ** 8, num);\n },\n decode: (digits) => {\n if (!Array.isArray(digits) || (digits.length && typeof digits[0] !== 'number'))\n throw new Error('radix.decode input should be array of strings');\n return Uint8Array.from(convertRadix(digits, num, 2 ** 8));\n },\n };\n}\nfunction radix2(bits, revPadding = false) {\n assertNumber(bits);\n if (bits <= 0 || bits > 32)\n throw new Error('radix2: bits should be in (0..32]');\n if (radix2carry(8, bits) > 32 || radix2carry(bits, 8) > 32)\n throw new Error('radix2: carry overflow');\n return {\n encode: (bytes) => {\n if (!(bytes instanceof Uint8Array))\n throw new Error('radix2.encode input should be Uint8Array');\n return convertRadix2(Array.from(bytes), 8, bits, !revPadding);\n },\n decode: (digits) => {\n if (!Array.isArray(digits) || (digits.length && typeof digits[0] !== 'number'))\n throw new Error('radix2.decode input should be array of strings');\n return Uint8Array.from(convertRadix2(digits, bits, 8, revPadding));\n },\n };\n}\nfunction unsafeWrapper(fn) {\n if (typeof fn !== 'function')\n throw new Error('unsafeWrapper fn should be function');\n return function (...args) {\n try {\n return fn.apply(null, args);\n }\n catch (e) { }\n };\n}\nfunction checksum(len, fn) {\n assertNumber(len);\n if (typeof fn !== 'function')\n throw new Error('checksum fn should be function');\n return {\n encode(data) {\n if (!(data instanceof Uint8Array))\n throw new Error('checksum.encode: input should be Uint8Array');\n const checksum = fn(data).slice(0, len);\n const res = new Uint8Array(data.length + len);\n res.set(data);\n res.set(checksum, data.length);\n return res;\n },\n decode(data) {\n if (!(data instanceof Uint8Array))\n throw new Error('checksum.decode: input should be Uint8Array');\n const payload = data.slice(0, -len);\n const newChecksum = fn(payload).slice(0, len);\n const oldChecksum = data.slice(-len);\n for (let i = 0; i < len; i++)\n if (newChecksum[i] !== oldChecksum[i])\n throw new Error('Invalid checksum');\n return payload;\n },\n };\n}\nexports.utils = { alphabet, chain, checksum, radix, radix2, join, padding };\nexports.base16 = chain(radix2(4), alphabet('0123456789ABCDEF'), join(''));\nexports.base32 = chain(radix2(5), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'), padding(5), join(''));\nexports.base32hex = chain(radix2(5), alphabet('0123456789ABCDEFGHIJKLMNOPQRSTUV'), padding(5), join(''));\nexports.base32crockford = chain(radix2(5), alphabet('0123456789ABCDEFGHJKMNPQRSTVWXYZ'), join(''), normalize((s) => s.toUpperCase().replace(/O/g, '0').replace(/[IL]/g, '1')));\nexports.base64 = chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'), padding(6), join(''));\nexports.base64url = chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_'), padding(6), join(''));\nconst genBase58 = (abc) => chain(radix(58), alphabet(abc), join(''));\nexports.base58 = genBase58('123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz');\nexports.base58flickr = genBase58('123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ');\nexports.base58xrp = genBase58('rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz');\nconst XMR_BLOCK_LEN = [0, 2, 3, 5, 6, 7, 9, 10, 11];\nexports.base58xmr = {\n encode(data) {\n let res = '';\n for (let i = 0; i < data.length; i += 8) {\n const block = data.subarray(i, i + 8);\n res += exports.base58.encode(block).padStart(XMR_BLOCK_LEN[block.length], '1');\n }\n return res;\n },\n decode(str) {\n let res = [];\n for (let i = 0; i < str.length; i += 11) {\n const slice = str.slice(i, i + 11);\n const blockLen = XMR_BLOCK_LEN.indexOf(slice.length);\n const block = exports.base58.decode(slice);\n for (let j = 0; j < block.length - blockLen; j++) {\n if (block[j] !== 0)\n throw new Error('base58xmr: wrong padding');\n }\n res = res.concat(Array.from(block.slice(block.length - blockLen)));\n }\n return Uint8Array.from(res);\n },\n};\nconst base58check = (sha256) => chain(checksum(4, (data) => sha256(sha256(data))), exports.base58);\nexports.base58check = base58check;\nconst BECH_ALPHABET = chain(alphabet('qpzry9x8gf2tvdw0s3jn54khce6mua7l'), join(''));\nconst POLYMOD_GENERATORS = [0x3b6a57b2, 0x26508e6d, 0x1ea119fa, 0x3d4233dd, 0x2a1462b3];\nfunction bech32Polymod(pre) {\n const b = pre >> 25;\n let chk = (pre & 0x1ffffff) << 5;\n for (let i = 0; i < POLYMOD_GENERATORS.length; i++) {\n if (((b >> i) & 1) === 1)\n chk ^= POLYMOD_GENERATORS[i];\n }\n return chk;\n}\nfunction bechChecksum(prefix, words, encodingConst = 1) {\n const len = prefix.length;\n let chk = 1;\n for (let i = 0; i < len; i++) {\n const c = prefix.charCodeAt(i);\n if (c < 33 || c > 126)\n throw new Error(`Invalid prefix (${prefix})`);\n chk = bech32Polymod(chk) ^ (c >> 5);\n }\n chk = bech32Polymod(chk);\n for (let i = 0; i < len; i++)\n chk = bech32Polymod(chk) ^ (prefix.charCodeAt(i) & 0x1f);\n for (let v of words)\n chk = bech32Polymod(chk) ^ v;\n for (let i = 0; i < 6; i++)\n chk = bech32Polymod(chk);\n chk ^= encodingConst;\n return BECH_ALPHABET.encode(convertRadix2([chk % 2 ** 30], 30, 5, false));\n}\nfunction genBech32(encoding) {\n const ENCODING_CONST = encoding === 'bech32' ? 1 : 0x2bc830a3;\n const _words = radix2(5);\n const fromWords = _words.decode;\n const toWords = _words.encode;\n const fromWordsUnsafe = unsafeWrapper(fromWords);\n function encode(prefix, words, limit = 90) {\n if (typeof prefix !== 'string')\n throw new Error(`bech32.encode prefix should be string, not ${typeof prefix}`);\n if (!Array.isArray(words) || (words.length && typeof words[0] !== 'number'))\n throw new Error(`bech32.encode words should be array of numbers, not ${typeof words}`);\n const actualLength = prefix.length + 7 + words.length;\n if (limit !== false && actualLength > limit)\n throw new TypeError(`Length ${actualLength} exceeds limit ${limit}`);\n prefix = prefix.toLowerCase();\n return `${prefix}1${BECH_ALPHABET.encode(words)}${bechChecksum(prefix, words, ENCODING_CONST)}`;\n }\n function decode(str, limit = 90) {\n if (typeof str !== 'string')\n throw new Error(`bech32.decode input should be string, not ${typeof str}`);\n if (str.length < 8 || (limit !== false && str.length > limit))\n throw new TypeError(`Wrong string length: ${str.length} (${str}). Expected (8..${limit})`);\n const lowered = str.toLowerCase();\n if (str !== lowered && str !== str.toUpperCase())\n throw new Error(`String must be lowercase or uppercase`);\n str = lowered;\n const sepIndex = str.lastIndexOf('1');\n if (sepIndex === 0 || sepIndex === -1)\n throw new Error(`Letter \"1\" must be present between prefix and data only`);\n const prefix = str.slice(0, sepIndex);\n const _words = str.slice(sepIndex + 1);\n if (_words.length < 6)\n throw new Error('Data must be at least 6 characters long');\n const words = BECH_ALPHABET.decode(_words).slice(0, -6);\n const sum = bechChecksum(prefix, words, ENCODING_CONST);\n if (!_words.endsWith(sum))\n throw new Error(`Invalid checksum in ${str}: expected \"${sum}\"`);\n return { prefix, words };\n }\n const decodeUnsafe = unsafeWrapper(decode);\n function decodeToBytes(str) {\n const { prefix, words } = decode(str, false);\n return { prefix, words, bytes: fromWords(words) };\n }\n return { encode, decode, decodeToBytes, decodeUnsafe, fromWords, fromWordsUnsafe, toWords };\n}\nexports.bech32 = genBech32('bech32');\nexports.bech32m = genBech32('bech32m');\nexports.utf8 = {\n encode: (data) => new TextDecoder().decode(data),\n decode: (str) => new TextEncoder().encode(str),\n};\nexports.hex = chain(radix2(4), alphabet('0123456789abcdef'), join(''), normalize((s) => {\n if (typeof s !== 'string' || s.length % 2)\n throw new TypeError(`hex.decode: expected string, got ${typeof s} with length ${s.length}`);\n return s.toLowerCase();\n}));\nconst CODERS = {\n utf8: exports.utf8, hex: exports.hex, base16: exports.base16, base32: exports.base32, base64: exports.base64, base64url: exports.base64url, base58: exports.base58, base58xmr: exports.base58xmr\n};\nconst coderTypeError = `Invalid encoding type. Available types: ${Object.keys(CODERS).join(', ')}`;\nconst bytesToString = (type, bytes) => {\n if (typeof type !== 'string' || !CODERS.hasOwnProperty(type))\n throw new TypeError(coderTypeError);\n if (!(bytes instanceof Uint8Array))\n throw new TypeError('bytesToString() expects Uint8Array');\n return CODERS[type].encode(bytes);\n};\nexports.bytesToString = bytesToString;\nexports.str = exports.bytesToString;\nconst stringToBytes = (type, str) => {\n if (!CODERS.hasOwnProperty(type))\n throw new TypeError(coderTypeError);\n if (typeof str !== 'string')\n throw new TypeError('stringToBytes() expects string');\n return CODERS[type].decode(str);\n};\nexports.stringToBytes = stringToBytes;\nexports.bytes = exports.stringToBytes;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HDKey = exports.HARDENED_OFFSET = void 0;\nconst hmac_1 = require(\"@noble/hashes/hmac\");\nconst ripemd160_1 = require(\"@noble/hashes/ripemd160\");\nconst sha256_1 = require(\"@noble/hashes/sha256\");\nconst sha512_1 = require(\"@noble/hashes/sha512\");\nconst _assert_1 = require(\"@noble/hashes/_assert\");\nconst utils_1 = require(\"@noble/hashes/utils\");\nconst secp = require(\"@noble/secp256k1\");\nconst base_1 = require(\"@scure/base\");\nsecp.utils.hmacSha256Sync = (key, ...msgs) => (0, hmac_1.hmac)(sha256_1.sha256, key, secp.utils.concatBytes(...msgs));\nconst base58check = (0, base_1.base58check)(sha256_1.sha256);\nfunction bytesToNumber(bytes) {\n return BigInt(`0x${(0, utils_1.bytesToHex)(bytes)}`);\n}\nfunction numberToBytes(num) {\n return (0, utils_1.hexToBytes)(num.toString(16).padStart(64, '0'));\n}\nconst MASTER_SECRET = (0, utils_1.utf8ToBytes)('Bitcoin seed');\nconst BITCOIN_VERSIONS = { private: 0x0488ade4, public: 0x0488b21e };\nexports.HARDENED_OFFSET = 0x80000000;\nconst hash160 = (data) => (0, ripemd160_1.ripemd160)((0, sha256_1.sha256)(data));\nconst fromU32 = (data) => (0, utils_1.createView)(data).getUint32(0, false);\nconst toU32 = (n) => {\n if (!Number.isSafeInteger(n) || n < 0 || n > 2 ** 32 - 1) {\n throw new Error(`Invalid number=${n}. Should be from 0 to 2 ** 32 - 1`);\n }\n const buf = new Uint8Array(4);\n (0, utils_1.createView)(buf).setUint32(0, n, false);\n return buf;\n};\nclass HDKey {\n constructor(opt) {\n this.depth = 0;\n this.index = 0;\n this.chainCode = null;\n this.parentFingerprint = 0;\n if (!opt || typeof opt !== 'object') {\n throw new Error('HDKey.constructor must not be called directly');\n }\n this.versions = opt.versions || BITCOIN_VERSIONS;\n this.depth = opt.depth || 0;\n this.chainCode = opt.chainCode;\n this.index = opt.index || 0;\n this.parentFingerprint = opt.parentFingerprint || 0;\n if (!this.depth) {\n if (this.parentFingerprint || this.index) {\n throw new Error('HDKey: zero depth with non-zero index/parent fingerprint');\n }\n }\n if (opt.publicKey && opt.privateKey) {\n throw new Error('HDKey: publicKey and privateKey at same time.');\n }\n if (opt.privateKey) {\n if (!secp.utils.isValidPrivateKey(opt.privateKey)) {\n throw new Error('Invalid private key');\n }\n this.privKey =\n typeof opt.privateKey === 'bigint' ? opt.privateKey : bytesToNumber(opt.privateKey);\n this.privKeyBytes = numberToBytes(this.privKey);\n this.pubKey = secp.getPublicKey(opt.privateKey, true);\n }\n else if (opt.publicKey) {\n this.pubKey = secp.Point.fromHex(opt.publicKey).toRawBytes(true);\n }\n else {\n throw new Error('HDKey: no public or private key provided');\n }\n this.pubHash = hash160(this.pubKey);\n }\n get fingerprint() {\n if (!this.pubHash) {\n throw new Error('No publicKey set!');\n }\n return fromU32(this.pubHash);\n }\n get identifier() {\n return this.pubHash;\n }\n get pubKeyHash() {\n return this.pubHash;\n }\n get privateKey() {\n return this.privKeyBytes || null;\n }\n get publicKey() {\n return this.pubKey || null;\n }\n get privateExtendedKey() {\n const priv = this.privateKey;\n if (!priv) {\n throw new Error('No private key');\n }\n return base58check.encode(this.serialize(this.versions.private, (0, utils_1.concatBytes)(new Uint8Array([0]), priv)));\n }\n get publicExtendedKey() {\n if (!this.pubKey) {\n throw new Error('No public key');\n }\n return base58check.encode(this.serialize(this.versions.public, this.pubKey));\n }\n static fromMasterSeed(seed, versions = BITCOIN_VERSIONS) {\n (0, _assert_1.bytes)(seed);\n if (8 * seed.length < 128 || 8 * seed.length > 512) {\n throw new Error(`HDKey: wrong seed length=${seed.length}. Should be between 128 and 512 bits; 256 bits is advised)`);\n }\n const I = (0, hmac_1.hmac)(sha512_1.sha512, MASTER_SECRET, seed);\n return new HDKey({\n versions,\n chainCode: I.slice(32),\n privateKey: I.slice(0, 32),\n });\n }\n static fromExtendedKey(base58key, versions = BITCOIN_VERSIONS) {\n const keyBuffer = base58check.decode(base58key);\n const keyView = (0, utils_1.createView)(keyBuffer);\n const version = keyView.getUint32(0, false);\n const opt = {\n versions,\n depth: keyBuffer[4],\n parentFingerprint: keyView.getUint32(5, false),\n index: keyView.getUint32(9, false),\n chainCode: keyBuffer.slice(13, 45),\n };\n const key = keyBuffer.slice(45);\n const isPriv = key[0] === 0;\n if (version !== versions[isPriv ? 'private' : 'public']) {\n throw new Error('Version mismatch');\n }\n if (isPriv) {\n return new HDKey({ ...opt, privateKey: key.slice(1) });\n }\n else {\n return new HDKey({ ...opt, publicKey: key });\n }\n }\n static fromJSON(json) {\n return HDKey.fromExtendedKey(json.xpriv);\n }\n derive(path) {\n if (!/^[mM]'?/.test(path)) {\n throw new Error('Path must start with \"m\" or \"M\"');\n }\n if (/^[mM]'?$/.test(path)) {\n return this;\n }\n const parts = path.replace(/^[mM]'?\\//, '').split('/');\n let child = this;\n for (const c of parts) {\n const m = /^(\\d+)('?)$/.exec(c);\n if (!m || m.length !== 3) {\n throw new Error(`Invalid child index: ${c}`);\n }\n let idx = +m[1];\n if (!Number.isSafeInteger(idx) || idx >= exports.HARDENED_OFFSET) {\n throw new Error('Invalid index');\n }\n if (m[2] === \"'\") {\n idx += exports.HARDENED_OFFSET;\n }\n child = child.deriveChild(idx);\n }\n return child;\n }\n deriveChild(index) {\n if (!this.pubKey || !this.chainCode) {\n throw new Error('No publicKey or chainCode set');\n }\n let data = toU32(index);\n if (index >= exports.HARDENED_OFFSET) {\n const priv = this.privateKey;\n if (!priv) {\n throw new Error('Could not derive hardened child key');\n }\n data = (0, utils_1.concatBytes)(new Uint8Array([0]), priv, data);\n }\n else {\n data = (0, utils_1.concatBytes)(this.pubKey, data);\n }\n const I = (0, hmac_1.hmac)(sha512_1.sha512, this.chainCode, data);\n const childTweak = bytesToNumber(I.slice(0, 32));\n const chainCode = I.slice(32);\n if (!secp.utils.isValidPrivateKey(childTweak)) {\n throw new Error('Tweak bigger than curve order');\n }\n const opt = {\n versions: this.versions,\n chainCode,\n depth: this.depth + 1,\n parentFingerprint: this.fingerprint,\n index,\n };\n try {\n if (this.privateKey) {\n const added = secp.utils.mod(this.privKey + childTweak, secp.CURVE.n);\n if (!secp.utils.isValidPrivateKey(added)) {\n throw new Error('The tweak was out of range or the resulted private key is invalid');\n }\n opt.privateKey = added;\n }\n else {\n opt.publicKey = secp.Point.fromHex(this.pubKey)\n .add(secp.Point.fromPrivateKey(childTweak))\n .toRawBytes(true);\n }\n return new HDKey(opt);\n }\n catch (err) {\n return this.deriveChild(index + 1);\n }\n }\n sign(hash) {\n if (!this.privateKey) {\n throw new Error('No privateKey set!');\n }\n (0, _assert_1.bytes)(hash, 32);\n return secp.signSync(hash, this.privKey, {\n canonical: true,\n der: false,\n });\n }\n verify(hash, signature) {\n (0, _assert_1.bytes)(hash, 32);\n (0, _assert_1.bytes)(signature, 64);\n if (!this.publicKey) {\n throw new Error('No publicKey set!');\n }\n let sig;\n try {\n sig = secp.Signature.fromCompact(signature);\n }\n catch (error) {\n return false;\n }\n return secp.verify(sig, hash, this.publicKey);\n }\n wipePrivateData() {\n this.privKey = undefined;\n if (this.privKeyBytes) {\n this.privKeyBytes.fill(0);\n this.privKeyBytes = undefined;\n }\n return this;\n }\n toJSON() {\n return {\n xpriv: this.privateExtendedKey,\n xpub: this.publicExtendedKey,\n };\n }\n serialize(version, key) {\n if (!this.chainCode) {\n throw new Error('No chainCode set');\n }\n (0, _assert_1.bytes)(key, 33);\n return (0, utils_1.concatBytes)(toU32(version), new Uint8Array([this.depth]), toU32(this.parentFingerprint), toU32(this.index), this.chainCode, key);\n }\n}\nexports.HDKey = HDKey;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Params = exports.ModuleAccount = exports.BaseAccount = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst any_1 = require(\"../../../google/protobuf/any\");\nexports.protobufPackage = \"cosmos.auth.v1beta1\";\nconst baseBaseAccount = { address: \"\", accountNumber: long_1.default.UZERO, sequence: long_1.default.UZERO };\nexports.BaseAccount = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.pubKey !== undefined) {\n any_1.Any.encode(message.pubKey, writer.uint32(18).fork()).ldelim();\n }\n if (!message.accountNumber.isZero()) {\n writer.uint32(24).uint64(message.accountNumber);\n }\n if (!message.sequence.isZero()) {\n writer.uint32(32).uint64(message.sequence);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseBaseAccount);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.pubKey = any_1.Any.decode(reader, reader.uint32());\n break;\n case 3:\n message.accountNumber = reader.uint64();\n break;\n case 4:\n message.sequence = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseBaseAccount);\n if (object.address !== undefined && object.address !== null) {\n message.address = String(object.address);\n }\n else {\n message.address = \"\";\n }\n if (object.pubKey !== undefined && object.pubKey !== null) {\n message.pubKey = any_1.Any.fromJSON(object.pubKey);\n }\n else {\n message.pubKey = undefined;\n }\n if (object.accountNumber !== undefined && object.accountNumber !== null) {\n message.accountNumber = long_1.default.fromString(object.accountNumber);\n }\n else {\n message.accountNumber = long_1.default.UZERO;\n }\n if (object.sequence !== undefined && object.sequence !== null) {\n message.sequence = long_1.default.fromString(object.sequence);\n }\n else {\n message.sequence = long_1.default.UZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n message.pubKey !== undefined && (obj.pubKey = message.pubKey ? any_1.Any.toJSON(message.pubKey) : undefined);\n message.accountNumber !== undefined &&\n (obj.accountNumber = (message.accountNumber || long_1.default.UZERO).toString());\n message.sequence !== undefined && (obj.sequence = (message.sequence || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseBaseAccount);\n if (object.address !== undefined && object.address !== null) {\n message.address = object.address;\n }\n else {\n message.address = \"\";\n }\n if (object.pubKey !== undefined && object.pubKey !== null) {\n message.pubKey = any_1.Any.fromPartial(object.pubKey);\n }\n else {\n message.pubKey = undefined;\n }\n if (object.accountNumber !== undefined && object.accountNumber !== null) {\n message.accountNumber = object.accountNumber;\n }\n else {\n message.accountNumber = long_1.default.UZERO;\n }\n if (object.sequence !== undefined && object.sequence !== null) {\n message.sequence = object.sequence;\n }\n else {\n message.sequence = long_1.default.UZERO;\n }\n return message;\n },\n};\nconst baseModuleAccount = { name: \"\", permissions: \"\" };\nexports.ModuleAccount = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.baseAccount !== undefined) {\n exports.BaseAccount.encode(message.baseAccount, writer.uint32(10).fork()).ldelim();\n }\n if (message.name !== \"\") {\n writer.uint32(18).string(message.name);\n }\n for (const v of message.permissions) {\n writer.uint32(26).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseModuleAccount);\n message.permissions = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.baseAccount = exports.BaseAccount.decode(reader, reader.uint32());\n break;\n case 2:\n message.name = reader.string();\n break;\n case 3:\n message.permissions.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseModuleAccount);\n message.permissions = [];\n if (object.baseAccount !== undefined && object.baseAccount !== null) {\n message.baseAccount = exports.BaseAccount.fromJSON(object.baseAccount);\n }\n else {\n message.baseAccount = undefined;\n }\n if (object.name !== undefined && object.name !== null) {\n message.name = String(object.name);\n }\n else {\n message.name = \"\";\n }\n if (object.permissions !== undefined && object.permissions !== null) {\n for (const e of object.permissions) {\n message.permissions.push(String(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.baseAccount !== undefined &&\n (obj.baseAccount = message.baseAccount ? exports.BaseAccount.toJSON(message.baseAccount) : undefined);\n message.name !== undefined && (obj.name = message.name);\n if (message.permissions) {\n obj.permissions = message.permissions.map((e) => e);\n }\n else {\n obj.permissions = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseModuleAccount);\n message.permissions = [];\n if (object.baseAccount !== undefined && object.baseAccount !== null) {\n message.baseAccount = exports.BaseAccount.fromPartial(object.baseAccount);\n }\n else {\n message.baseAccount = undefined;\n }\n if (object.name !== undefined && object.name !== null) {\n message.name = object.name;\n }\n else {\n message.name = \"\";\n }\n if (object.permissions !== undefined && object.permissions !== null) {\n for (const e of object.permissions) {\n message.permissions.push(e);\n }\n }\n return message;\n },\n};\nconst baseParams = {\n maxMemoCharacters: long_1.default.UZERO,\n txSigLimit: long_1.default.UZERO,\n txSizeCostPerByte: long_1.default.UZERO,\n sigVerifyCostEd25519: long_1.default.UZERO,\n sigVerifyCostSecp256k1: long_1.default.UZERO,\n};\nexports.Params = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.maxMemoCharacters.isZero()) {\n writer.uint32(8).uint64(message.maxMemoCharacters);\n }\n if (!message.txSigLimit.isZero()) {\n writer.uint32(16).uint64(message.txSigLimit);\n }\n if (!message.txSizeCostPerByte.isZero()) {\n writer.uint32(24).uint64(message.txSizeCostPerByte);\n }\n if (!message.sigVerifyCostEd25519.isZero()) {\n writer.uint32(32).uint64(message.sigVerifyCostEd25519);\n }\n if (!message.sigVerifyCostSecp256k1.isZero()) {\n writer.uint32(40).uint64(message.sigVerifyCostSecp256k1);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseParams);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.maxMemoCharacters = reader.uint64();\n break;\n case 2:\n message.txSigLimit = reader.uint64();\n break;\n case 3:\n message.txSizeCostPerByte = reader.uint64();\n break;\n case 4:\n message.sigVerifyCostEd25519 = reader.uint64();\n break;\n case 5:\n message.sigVerifyCostSecp256k1 = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseParams);\n if (object.maxMemoCharacters !== undefined && object.maxMemoCharacters !== null) {\n message.maxMemoCharacters = long_1.default.fromString(object.maxMemoCharacters);\n }\n else {\n message.maxMemoCharacters = long_1.default.UZERO;\n }\n if (object.txSigLimit !== undefined && object.txSigLimit !== null) {\n message.txSigLimit = long_1.default.fromString(object.txSigLimit);\n }\n else {\n message.txSigLimit = long_1.default.UZERO;\n }\n if (object.txSizeCostPerByte !== undefined && object.txSizeCostPerByte !== null) {\n message.txSizeCostPerByte = long_1.default.fromString(object.txSizeCostPerByte);\n }\n else {\n message.txSizeCostPerByte = long_1.default.UZERO;\n }\n if (object.sigVerifyCostEd25519 !== undefined && object.sigVerifyCostEd25519 !== null) {\n message.sigVerifyCostEd25519 = long_1.default.fromString(object.sigVerifyCostEd25519);\n }\n else {\n message.sigVerifyCostEd25519 = long_1.default.UZERO;\n }\n if (object.sigVerifyCostSecp256k1 !== undefined && object.sigVerifyCostSecp256k1 !== null) {\n message.sigVerifyCostSecp256k1 = long_1.default.fromString(object.sigVerifyCostSecp256k1);\n }\n else {\n message.sigVerifyCostSecp256k1 = long_1.default.UZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.maxMemoCharacters !== undefined &&\n (obj.maxMemoCharacters = (message.maxMemoCharacters || long_1.default.UZERO).toString());\n message.txSigLimit !== undefined && (obj.txSigLimit = (message.txSigLimit || long_1.default.UZERO).toString());\n message.txSizeCostPerByte !== undefined &&\n (obj.txSizeCostPerByte = (message.txSizeCostPerByte || long_1.default.UZERO).toString());\n message.sigVerifyCostEd25519 !== undefined &&\n (obj.sigVerifyCostEd25519 = (message.sigVerifyCostEd25519 || long_1.default.UZERO).toString());\n message.sigVerifyCostSecp256k1 !== undefined &&\n (obj.sigVerifyCostSecp256k1 = (message.sigVerifyCostSecp256k1 || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseParams);\n if (object.maxMemoCharacters !== undefined && object.maxMemoCharacters !== null) {\n message.maxMemoCharacters = object.maxMemoCharacters;\n }\n else {\n message.maxMemoCharacters = long_1.default.UZERO;\n }\n if (object.txSigLimit !== undefined && object.txSigLimit !== null) {\n message.txSigLimit = object.txSigLimit;\n }\n else {\n message.txSigLimit = long_1.default.UZERO;\n }\n if (object.txSizeCostPerByte !== undefined && object.txSizeCostPerByte !== null) {\n message.txSizeCostPerByte = object.txSizeCostPerByte;\n }\n else {\n message.txSizeCostPerByte = long_1.default.UZERO;\n }\n if (object.sigVerifyCostEd25519 !== undefined && object.sigVerifyCostEd25519 !== null) {\n message.sigVerifyCostEd25519 = object.sigVerifyCostEd25519;\n }\n else {\n message.sigVerifyCostEd25519 = long_1.default.UZERO;\n }\n if (object.sigVerifyCostSecp256k1 !== undefined && object.sigVerifyCostSecp256k1 !== null) {\n message.sigVerifyCostSecp256k1 = object.sigVerifyCostSecp256k1;\n }\n else {\n message.sigVerifyCostSecp256k1 = long_1.default.UZERO;\n }\n return message;\n },\n};\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=auth.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SearchTxsResult = exports.TxMsgData = exports.MsgData = exports.SimulationResponse = exports.Result = exports.GasInfo = exports.Attribute = exports.StringEvent = exports.ABCIMessageLog = exports.TxResponse = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst any_1 = require(\"../../../../google/protobuf/any\");\nconst types_1 = require(\"../../../../tendermint/abci/types\");\nexports.protobufPackage = \"cosmos.base.abci.v1beta1\";\nconst baseTxResponse = {\n height: long_1.default.ZERO,\n txhash: \"\",\n codespace: \"\",\n code: 0,\n data: \"\",\n rawLog: \"\",\n info: \"\",\n gasWanted: long_1.default.ZERO,\n gasUsed: long_1.default.ZERO,\n timestamp: \"\",\n};\nexports.TxResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.height.isZero()) {\n writer.uint32(8).int64(message.height);\n }\n if (message.txhash !== \"\") {\n writer.uint32(18).string(message.txhash);\n }\n if (message.codespace !== \"\") {\n writer.uint32(26).string(message.codespace);\n }\n if (message.code !== 0) {\n writer.uint32(32).uint32(message.code);\n }\n if (message.data !== \"\") {\n writer.uint32(42).string(message.data);\n }\n if (message.rawLog !== \"\") {\n writer.uint32(50).string(message.rawLog);\n }\n for (const v of message.logs) {\n exports.ABCIMessageLog.encode(v, writer.uint32(58).fork()).ldelim();\n }\n if (message.info !== \"\") {\n writer.uint32(66).string(message.info);\n }\n if (!message.gasWanted.isZero()) {\n writer.uint32(72).int64(message.gasWanted);\n }\n if (!message.gasUsed.isZero()) {\n writer.uint32(80).int64(message.gasUsed);\n }\n if (message.tx !== undefined) {\n any_1.Any.encode(message.tx, writer.uint32(90).fork()).ldelim();\n }\n if (message.timestamp !== \"\") {\n writer.uint32(98).string(message.timestamp);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseTxResponse);\n message.logs = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.height = reader.int64();\n break;\n case 2:\n message.txhash = reader.string();\n break;\n case 3:\n message.codespace = reader.string();\n break;\n case 4:\n message.code = reader.uint32();\n break;\n case 5:\n message.data = reader.string();\n break;\n case 6:\n message.rawLog = reader.string();\n break;\n case 7:\n message.logs.push(exports.ABCIMessageLog.decode(reader, reader.uint32()));\n break;\n case 8:\n message.info = reader.string();\n break;\n case 9:\n message.gasWanted = reader.int64();\n break;\n case 10:\n message.gasUsed = reader.int64();\n break;\n case 11:\n message.tx = any_1.Any.decode(reader, reader.uint32());\n break;\n case 12:\n message.timestamp = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseTxResponse);\n message.logs = [];\n if (object.height !== undefined && object.height !== null) {\n message.height = long_1.default.fromString(object.height);\n }\n else {\n message.height = long_1.default.ZERO;\n }\n if (object.txhash !== undefined && object.txhash !== null) {\n message.txhash = String(object.txhash);\n }\n else {\n message.txhash = \"\";\n }\n if (object.codespace !== undefined && object.codespace !== null) {\n message.codespace = String(object.codespace);\n }\n else {\n message.codespace = \"\";\n }\n if (object.code !== undefined && object.code !== null) {\n message.code = Number(object.code);\n }\n else {\n message.code = 0;\n }\n if (object.data !== undefined && object.data !== null) {\n message.data = String(object.data);\n }\n else {\n message.data = \"\";\n }\n if (object.rawLog !== undefined && object.rawLog !== null) {\n message.rawLog = String(object.rawLog);\n }\n else {\n message.rawLog = \"\";\n }\n if (object.logs !== undefined && object.logs !== null) {\n for (const e of object.logs) {\n message.logs.push(exports.ABCIMessageLog.fromJSON(e));\n }\n }\n if (object.info !== undefined && object.info !== null) {\n message.info = String(object.info);\n }\n else {\n message.info = \"\";\n }\n if (object.gasWanted !== undefined && object.gasWanted !== null) {\n message.gasWanted = long_1.default.fromString(object.gasWanted);\n }\n else {\n message.gasWanted = long_1.default.ZERO;\n }\n if (object.gasUsed !== undefined && object.gasUsed !== null) {\n message.gasUsed = long_1.default.fromString(object.gasUsed);\n }\n else {\n message.gasUsed = long_1.default.ZERO;\n }\n if (object.tx !== undefined && object.tx !== null) {\n message.tx = any_1.Any.fromJSON(object.tx);\n }\n else {\n message.tx = undefined;\n }\n if (object.timestamp !== undefined && object.timestamp !== null) {\n message.timestamp = String(object.timestamp);\n }\n else {\n message.timestamp = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.height !== undefined && (obj.height = (message.height || long_1.default.ZERO).toString());\n message.txhash !== undefined && (obj.txhash = message.txhash);\n message.codespace !== undefined && (obj.codespace = message.codespace);\n message.code !== undefined && (obj.code = message.code);\n message.data !== undefined && (obj.data = message.data);\n message.rawLog !== undefined && (obj.rawLog = message.rawLog);\n if (message.logs) {\n obj.logs = message.logs.map((e) => (e ? exports.ABCIMessageLog.toJSON(e) : undefined));\n }\n else {\n obj.logs = [];\n }\n message.info !== undefined && (obj.info = message.info);\n message.gasWanted !== undefined && (obj.gasWanted = (message.gasWanted || long_1.default.ZERO).toString());\n message.gasUsed !== undefined && (obj.gasUsed = (message.gasUsed || long_1.default.ZERO).toString());\n message.tx !== undefined && (obj.tx = message.tx ? any_1.Any.toJSON(message.tx) : undefined);\n message.timestamp !== undefined && (obj.timestamp = message.timestamp);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseTxResponse);\n message.logs = [];\n if (object.height !== undefined && object.height !== null) {\n message.height = object.height;\n }\n else {\n message.height = long_1.default.ZERO;\n }\n if (object.txhash !== undefined && object.txhash !== null) {\n message.txhash = object.txhash;\n }\n else {\n message.txhash = \"\";\n }\n if (object.codespace !== undefined && object.codespace !== null) {\n message.codespace = object.codespace;\n }\n else {\n message.codespace = \"\";\n }\n if (object.code !== undefined && object.code !== null) {\n message.code = object.code;\n }\n else {\n message.code = 0;\n }\n if (object.data !== undefined && object.data !== null) {\n message.data = object.data;\n }\n else {\n message.data = \"\";\n }\n if (object.rawLog !== undefined && object.rawLog !== null) {\n message.rawLog = object.rawLog;\n }\n else {\n message.rawLog = \"\";\n }\n if (object.logs !== undefined && object.logs !== null) {\n for (const e of object.logs) {\n message.logs.push(exports.ABCIMessageLog.fromPartial(e));\n }\n }\n if (object.info !== undefined && object.info !== null) {\n message.info = object.info;\n }\n else {\n message.info = \"\";\n }\n if (object.gasWanted !== undefined && object.gasWanted !== null) {\n message.gasWanted = object.gasWanted;\n }\n else {\n message.gasWanted = long_1.default.ZERO;\n }\n if (object.gasUsed !== undefined && object.gasUsed !== null) {\n message.gasUsed = object.gasUsed;\n }\n else {\n message.gasUsed = long_1.default.ZERO;\n }\n if (object.tx !== undefined && object.tx !== null) {\n message.tx = any_1.Any.fromPartial(object.tx);\n }\n else {\n message.tx = undefined;\n }\n if (object.timestamp !== undefined && object.timestamp !== null) {\n message.timestamp = object.timestamp;\n }\n else {\n message.timestamp = \"\";\n }\n return message;\n },\n};\nconst baseABCIMessageLog = { msgIndex: 0, log: \"\" };\nexports.ABCIMessageLog = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.msgIndex !== 0) {\n writer.uint32(8).uint32(message.msgIndex);\n }\n if (message.log !== \"\") {\n writer.uint32(18).string(message.log);\n }\n for (const v of message.events) {\n exports.StringEvent.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseABCIMessageLog);\n message.events = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.msgIndex = reader.uint32();\n break;\n case 2:\n message.log = reader.string();\n break;\n case 3:\n message.events.push(exports.StringEvent.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseABCIMessageLog);\n message.events = [];\n if (object.msgIndex !== undefined && object.msgIndex !== null) {\n message.msgIndex = Number(object.msgIndex);\n }\n else {\n message.msgIndex = 0;\n }\n if (object.log !== undefined && object.log !== null) {\n message.log = String(object.log);\n }\n else {\n message.log = \"\";\n }\n if (object.events !== undefined && object.events !== null) {\n for (const e of object.events) {\n message.events.push(exports.StringEvent.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.msgIndex !== undefined && (obj.msgIndex = message.msgIndex);\n message.log !== undefined && (obj.log = message.log);\n if (message.events) {\n obj.events = message.events.map((e) => (e ? exports.StringEvent.toJSON(e) : undefined));\n }\n else {\n obj.events = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseABCIMessageLog);\n message.events = [];\n if (object.msgIndex !== undefined && object.msgIndex !== null) {\n message.msgIndex = object.msgIndex;\n }\n else {\n message.msgIndex = 0;\n }\n if (object.log !== undefined && object.log !== null) {\n message.log = object.log;\n }\n else {\n message.log = \"\";\n }\n if (object.events !== undefined && object.events !== null) {\n for (const e of object.events) {\n message.events.push(exports.StringEvent.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseStringEvent = { type: \"\" };\nexports.StringEvent = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.type !== \"\") {\n writer.uint32(10).string(message.type);\n }\n for (const v of message.attributes) {\n exports.Attribute.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseStringEvent);\n message.attributes = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.type = reader.string();\n break;\n case 2:\n message.attributes.push(exports.Attribute.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseStringEvent);\n message.attributes = [];\n if (object.type !== undefined && object.type !== null) {\n message.type = String(object.type);\n }\n else {\n message.type = \"\";\n }\n if (object.attributes !== undefined && object.attributes !== null) {\n for (const e of object.attributes) {\n message.attributes.push(exports.Attribute.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.type !== undefined && (obj.type = message.type);\n if (message.attributes) {\n obj.attributes = message.attributes.map((e) => (e ? exports.Attribute.toJSON(e) : undefined));\n }\n else {\n obj.attributes = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseStringEvent);\n message.attributes = [];\n if (object.type !== undefined && object.type !== null) {\n message.type = object.type;\n }\n else {\n message.type = \"\";\n }\n if (object.attributes !== undefined && object.attributes !== null) {\n for (const e of object.attributes) {\n message.attributes.push(exports.Attribute.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseAttribute = { key: \"\", value: \"\" };\nexports.Attribute = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.key !== \"\") {\n writer.uint32(10).string(message.key);\n }\n if (message.value !== \"\") {\n writer.uint32(18).string(message.value);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseAttribute);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.string();\n break;\n case 2:\n message.value = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseAttribute);\n if (object.key !== undefined && object.key !== null) {\n message.key = String(object.key);\n }\n else {\n message.key = \"\";\n }\n if (object.value !== undefined && object.value !== null) {\n message.value = String(object.value);\n }\n else {\n message.value = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined && (obj.key = message.key);\n message.value !== undefined && (obj.value = message.value);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseAttribute);\n if (object.key !== undefined && object.key !== null) {\n message.key = object.key;\n }\n else {\n message.key = \"\";\n }\n if (object.value !== undefined && object.value !== null) {\n message.value = object.value;\n }\n else {\n message.value = \"\";\n }\n return message;\n },\n};\nconst baseGasInfo = { gasWanted: long_1.default.UZERO, gasUsed: long_1.default.UZERO };\nexports.GasInfo = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.gasWanted.isZero()) {\n writer.uint32(8).uint64(message.gasWanted);\n }\n if (!message.gasUsed.isZero()) {\n writer.uint32(16).uint64(message.gasUsed);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseGasInfo);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.gasWanted = reader.uint64();\n break;\n case 2:\n message.gasUsed = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseGasInfo);\n if (object.gasWanted !== undefined && object.gasWanted !== null) {\n message.gasWanted = long_1.default.fromString(object.gasWanted);\n }\n else {\n message.gasWanted = long_1.default.UZERO;\n }\n if (object.gasUsed !== undefined && object.gasUsed !== null) {\n message.gasUsed = long_1.default.fromString(object.gasUsed);\n }\n else {\n message.gasUsed = long_1.default.UZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.gasWanted !== undefined && (obj.gasWanted = (message.gasWanted || long_1.default.UZERO).toString());\n message.gasUsed !== undefined && (obj.gasUsed = (message.gasUsed || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseGasInfo);\n if (object.gasWanted !== undefined && object.gasWanted !== null) {\n message.gasWanted = object.gasWanted;\n }\n else {\n message.gasWanted = long_1.default.UZERO;\n }\n if (object.gasUsed !== undefined && object.gasUsed !== null) {\n message.gasUsed = object.gasUsed;\n }\n else {\n message.gasUsed = long_1.default.UZERO;\n }\n return message;\n },\n};\nconst baseResult = { log: \"\" };\nexports.Result = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.data.length !== 0) {\n writer.uint32(10).bytes(message.data);\n }\n if (message.log !== \"\") {\n writer.uint32(18).string(message.log);\n }\n for (const v of message.events) {\n types_1.Event.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResult);\n message.events = [];\n message.data = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.data = reader.bytes();\n break;\n case 2:\n message.log = reader.string();\n break;\n case 3:\n message.events.push(types_1.Event.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseResult);\n message.events = [];\n message.data = new Uint8Array();\n if (object.data !== undefined && object.data !== null) {\n message.data = bytesFromBase64(object.data);\n }\n if (object.log !== undefined && object.log !== null) {\n message.log = String(object.log);\n }\n else {\n message.log = \"\";\n }\n if (object.events !== undefined && object.events !== null) {\n for (const e of object.events) {\n message.events.push(types_1.Event.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.data !== undefined &&\n (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));\n message.log !== undefined && (obj.log = message.log);\n if (message.events) {\n obj.events = message.events.map((e) => (e ? types_1.Event.toJSON(e) : undefined));\n }\n else {\n obj.events = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseResult);\n message.events = [];\n if (object.data !== undefined && object.data !== null) {\n message.data = object.data;\n }\n else {\n message.data = new Uint8Array();\n }\n if (object.log !== undefined && object.log !== null) {\n message.log = object.log;\n }\n else {\n message.log = \"\";\n }\n if (object.events !== undefined && object.events !== null) {\n for (const e of object.events) {\n message.events.push(types_1.Event.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseSimulationResponse = {};\nexports.SimulationResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.gasInfo !== undefined) {\n exports.GasInfo.encode(message.gasInfo, writer.uint32(10).fork()).ldelim();\n }\n if (message.result !== undefined) {\n exports.Result.encode(message.result, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSimulationResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.gasInfo = exports.GasInfo.decode(reader, reader.uint32());\n break;\n case 2:\n message.result = exports.Result.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseSimulationResponse);\n if (object.gasInfo !== undefined && object.gasInfo !== null) {\n message.gasInfo = exports.GasInfo.fromJSON(object.gasInfo);\n }\n else {\n message.gasInfo = undefined;\n }\n if (object.result !== undefined && object.result !== null) {\n message.result = exports.Result.fromJSON(object.result);\n }\n else {\n message.result = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.gasInfo !== undefined &&\n (obj.gasInfo = message.gasInfo ? exports.GasInfo.toJSON(message.gasInfo) : undefined);\n message.result !== undefined && (obj.result = message.result ? exports.Result.toJSON(message.result) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseSimulationResponse);\n if (object.gasInfo !== undefined && object.gasInfo !== null) {\n message.gasInfo = exports.GasInfo.fromPartial(object.gasInfo);\n }\n else {\n message.gasInfo = undefined;\n }\n if (object.result !== undefined && object.result !== null) {\n message.result = exports.Result.fromPartial(object.result);\n }\n else {\n message.result = undefined;\n }\n return message;\n },\n};\nconst baseMsgData = { msgType: \"\" };\nexports.MsgData = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.msgType !== \"\") {\n writer.uint32(10).string(message.msgType);\n }\n if (message.data.length !== 0) {\n writer.uint32(18).bytes(message.data);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgData);\n message.data = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.msgType = reader.string();\n break;\n case 2:\n message.data = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgData);\n message.data = new Uint8Array();\n if (object.msgType !== undefined && object.msgType !== null) {\n message.msgType = String(object.msgType);\n }\n else {\n message.msgType = \"\";\n }\n if (object.data !== undefined && object.data !== null) {\n message.data = bytesFromBase64(object.data);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.msgType !== undefined && (obj.msgType = message.msgType);\n message.data !== undefined &&\n (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgData);\n if (object.msgType !== undefined && object.msgType !== null) {\n message.msgType = object.msgType;\n }\n else {\n message.msgType = \"\";\n }\n if (object.data !== undefined && object.data !== null) {\n message.data = object.data;\n }\n else {\n message.data = new Uint8Array();\n }\n return message;\n },\n};\nconst baseTxMsgData = {};\nexports.TxMsgData = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.data) {\n exports.MsgData.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseTxMsgData);\n message.data = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.data.push(exports.MsgData.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseTxMsgData);\n message.data = [];\n if (object.data !== undefined && object.data !== null) {\n for (const e of object.data) {\n message.data.push(exports.MsgData.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.data) {\n obj.data = message.data.map((e) => (e ? exports.MsgData.toJSON(e) : undefined));\n }\n else {\n obj.data = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseTxMsgData);\n message.data = [];\n if (object.data !== undefined && object.data !== null) {\n for (const e of object.data) {\n message.data.push(exports.MsgData.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseSearchTxsResult = {\n totalCount: long_1.default.UZERO,\n count: long_1.default.UZERO,\n pageNumber: long_1.default.UZERO,\n pageTotal: long_1.default.UZERO,\n limit: long_1.default.UZERO,\n};\nexports.SearchTxsResult = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.totalCount.isZero()) {\n writer.uint32(8).uint64(message.totalCount);\n }\n if (!message.count.isZero()) {\n writer.uint32(16).uint64(message.count);\n }\n if (!message.pageNumber.isZero()) {\n writer.uint32(24).uint64(message.pageNumber);\n }\n if (!message.pageTotal.isZero()) {\n writer.uint32(32).uint64(message.pageTotal);\n }\n if (!message.limit.isZero()) {\n writer.uint32(40).uint64(message.limit);\n }\n for (const v of message.txs) {\n exports.TxResponse.encode(v, writer.uint32(50).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSearchTxsResult);\n message.txs = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.totalCount = reader.uint64();\n break;\n case 2:\n message.count = reader.uint64();\n break;\n case 3:\n message.pageNumber = reader.uint64();\n break;\n case 4:\n message.pageTotal = reader.uint64();\n break;\n case 5:\n message.limit = reader.uint64();\n break;\n case 6:\n message.txs.push(exports.TxResponse.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseSearchTxsResult);\n message.txs = [];\n if (object.totalCount !== undefined && object.totalCount !== null) {\n message.totalCount = long_1.default.fromString(object.totalCount);\n }\n else {\n message.totalCount = long_1.default.UZERO;\n }\n if (object.count !== undefined && object.count !== null) {\n message.count = long_1.default.fromString(object.count);\n }\n else {\n message.count = long_1.default.UZERO;\n }\n if (object.pageNumber !== undefined && object.pageNumber !== null) {\n message.pageNumber = long_1.default.fromString(object.pageNumber);\n }\n else {\n message.pageNumber = long_1.default.UZERO;\n }\n if (object.pageTotal !== undefined && object.pageTotal !== null) {\n message.pageTotal = long_1.default.fromString(object.pageTotal);\n }\n else {\n message.pageTotal = long_1.default.UZERO;\n }\n if (object.limit !== undefined && object.limit !== null) {\n message.limit = long_1.default.fromString(object.limit);\n }\n else {\n message.limit = long_1.default.UZERO;\n }\n if (object.txs !== undefined && object.txs !== null) {\n for (const e of object.txs) {\n message.txs.push(exports.TxResponse.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.totalCount !== undefined && (obj.totalCount = (message.totalCount || long_1.default.UZERO).toString());\n message.count !== undefined && (obj.count = (message.count || long_1.default.UZERO).toString());\n message.pageNumber !== undefined && (obj.pageNumber = (message.pageNumber || long_1.default.UZERO).toString());\n message.pageTotal !== undefined && (obj.pageTotal = (message.pageTotal || long_1.default.UZERO).toString());\n message.limit !== undefined && (obj.limit = (message.limit || long_1.default.UZERO).toString());\n if (message.txs) {\n obj.txs = message.txs.map((e) => (e ? exports.TxResponse.toJSON(e) : undefined));\n }\n else {\n obj.txs = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseSearchTxsResult);\n message.txs = [];\n if (object.totalCount !== undefined && object.totalCount !== null) {\n message.totalCount = object.totalCount;\n }\n else {\n message.totalCount = long_1.default.UZERO;\n }\n if (object.count !== undefined && object.count !== null) {\n message.count = object.count;\n }\n else {\n message.count = long_1.default.UZERO;\n }\n if (object.pageNumber !== undefined && object.pageNumber !== null) {\n message.pageNumber = object.pageNumber;\n }\n else {\n message.pageNumber = long_1.default.UZERO;\n }\n if (object.pageTotal !== undefined && object.pageTotal !== null) {\n message.pageTotal = object.pageTotal;\n }\n else {\n message.pageTotal = long_1.default.UZERO;\n }\n if (object.limit !== undefined && object.limit !== null) {\n message.limit = object.limit;\n }\n else {\n message.limit = long_1.default.UZERO;\n }\n if (object.txs !== undefined && object.txs !== null) {\n for (const e of object.txs) {\n message.txs.push(exports.TxResponse.fromPartial(e));\n }\n }\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=abci.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PageResponse = exports.PageRequest = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nexports.protobufPackage = \"cosmos.base.query.v1beta1\";\nconst basePageRequest = { offset: long_1.default.UZERO, limit: long_1.default.UZERO, countTotal: false, reverse: false };\nexports.PageRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n if (!message.offset.isZero()) {\n writer.uint32(16).uint64(message.offset);\n }\n if (!message.limit.isZero()) {\n writer.uint32(24).uint64(message.limit);\n }\n if (message.countTotal === true) {\n writer.uint32(32).bool(message.countTotal);\n }\n if (message.reverse === true) {\n writer.uint32(40).bool(message.reverse);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, basePageRequest);\n message.key = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n case 2:\n message.offset = reader.uint64();\n break;\n case 3:\n message.limit = reader.uint64();\n break;\n case 4:\n message.countTotal = reader.bool();\n break;\n case 5:\n message.reverse = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, basePageRequest);\n message.key = new Uint8Array();\n if (object.key !== undefined && object.key !== null) {\n message.key = bytesFromBase64(object.key);\n }\n if (object.offset !== undefined && object.offset !== null) {\n message.offset = long_1.default.fromString(object.offset);\n }\n else {\n message.offset = long_1.default.UZERO;\n }\n if (object.limit !== undefined && object.limit !== null) {\n message.limit = long_1.default.fromString(object.limit);\n }\n else {\n message.limit = long_1.default.UZERO;\n }\n if (object.countTotal !== undefined && object.countTotal !== null) {\n message.countTotal = Boolean(object.countTotal);\n }\n else {\n message.countTotal = false;\n }\n if (object.reverse !== undefined && object.reverse !== null) {\n message.reverse = Boolean(object.reverse);\n }\n else {\n message.reverse = false;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined &&\n (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));\n message.offset !== undefined && (obj.offset = (message.offset || long_1.default.UZERO).toString());\n message.limit !== undefined && (obj.limit = (message.limit || long_1.default.UZERO).toString());\n message.countTotal !== undefined && (obj.countTotal = message.countTotal);\n message.reverse !== undefined && (obj.reverse = message.reverse);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, basePageRequest);\n if (object.key !== undefined && object.key !== null) {\n message.key = object.key;\n }\n else {\n message.key = new Uint8Array();\n }\n if (object.offset !== undefined && object.offset !== null) {\n message.offset = object.offset;\n }\n else {\n message.offset = long_1.default.UZERO;\n }\n if (object.limit !== undefined && object.limit !== null) {\n message.limit = object.limit;\n }\n else {\n message.limit = long_1.default.UZERO;\n }\n if (object.countTotal !== undefined && object.countTotal !== null) {\n message.countTotal = object.countTotal;\n }\n else {\n message.countTotal = false;\n }\n if (object.reverse !== undefined && object.reverse !== null) {\n message.reverse = object.reverse;\n }\n else {\n message.reverse = false;\n }\n return message;\n },\n};\nconst basePageResponse = { total: long_1.default.UZERO };\nexports.PageResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.nextKey.length !== 0) {\n writer.uint32(10).bytes(message.nextKey);\n }\n if (!message.total.isZero()) {\n writer.uint32(16).uint64(message.total);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, basePageResponse);\n message.nextKey = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.nextKey = reader.bytes();\n break;\n case 2:\n message.total = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, basePageResponse);\n message.nextKey = new Uint8Array();\n if (object.nextKey !== undefined && object.nextKey !== null) {\n message.nextKey = bytesFromBase64(object.nextKey);\n }\n if (object.total !== undefined && object.total !== null) {\n message.total = long_1.default.fromString(object.total);\n }\n else {\n message.total = long_1.default.UZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.nextKey !== undefined &&\n (obj.nextKey = base64FromBytes(message.nextKey !== undefined ? message.nextKey : new Uint8Array()));\n message.total !== undefined && (obj.total = (message.total || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, basePageResponse);\n if (object.nextKey !== undefined && object.nextKey !== null) {\n message.nextKey = object.nextKey;\n }\n else {\n message.nextKey = new Uint8Array();\n }\n if (object.total !== undefined && object.total !== null) {\n message.total = object.total;\n }\n else {\n message.total = long_1.default.UZERO;\n }\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=pagination.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DecProto = exports.IntProto = exports.DecCoin = exports.Coin = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nexports.protobufPackage = \"cosmos.base.v1beta1\";\nconst baseCoin = { denom: \"\", amount: \"\" };\nexports.Coin = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.denom !== \"\") {\n writer.uint32(10).string(message.denom);\n }\n if (message.amount !== \"\") {\n writer.uint32(18).string(message.amount);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseCoin);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.denom = reader.string();\n break;\n case 2:\n message.amount = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseCoin);\n if (object.denom !== undefined && object.denom !== null) {\n message.denom = String(object.denom);\n }\n else {\n message.denom = \"\";\n }\n if (object.amount !== undefined && object.amount !== null) {\n message.amount = String(object.amount);\n }\n else {\n message.amount = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.denom !== undefined && (obj.denom = message.denom);\n message.amount !== undefined && (obj.amount = message.amount);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseCoin);\n if (object.denom !== undefined && object.denom !== null) {\n message.denom = object.denom;\n }\n else {\n message.denom = \"\";\n }\n if (object.amount !== undefined && object.amount !== null) {\n message.amount = object.amount;\n }\n else {\n message.amount = \"\";\n }\n return message;\n },\n};\nconst baseDecCoin = { denom: \"\", amount: \"\" };\nexports.DecCoin = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.denom !== \"\") {\n writer.uint32(10).string(message.denom);\n }\n if (message.amount !== \"\") {\n writer.uint32(18).string(message.amount);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDecCoin);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.denom = reader.string();\n break;\n case 2:\n message.amount = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseDecCoin);\n if (object.denom !== undefined && object.denom !== null) {\n message.denom = String(object.denom);\n }\n else {\n message.denom = \"\";\n }\n if (object.amount !== undefined && object.amount !== null) {\n message.amount = String(object.amount);\n }\n else {\n message.amount = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.denom !== undefined && (obj.denom = message.denom);\n message.amount !== undefined && (obj.amount = message.amount);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseDecCoin);\n if (object.denom !== undefined && object.denom !== null) {\n message.denom = object.denom;\n }\n else {\n message.denom = \"\";\n }\n if (object.amount !== undefined && object.amount !== null) {\n message.amount = object.amount;\n }\n else {\n message.amount = \"\";\n }\n return message;\n },\n};\nconst baseIntProto = { int: \"\" };\nexports.IntProto = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.int !== \"\") {\n writer.uint32(10).string(message.int);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseIntProto);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.int = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseIntProto);\n if (object.int !== undefined && object.int !== null) {\n message.int = String(object.int);\n }\n else {\n message.int = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.int !== undefined && (obj.int = message.int);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseIntProto);\n if (object.int !== undefined && object.int !== null) {\n message.int = object.int;\n }\n else {\n message.int = \"\";\n }\n return message;\n },\n};\nconst baseDecProto = { dec: \"\" };\nexports.DecProto = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.dec !== \"\") {\n writer.uint32(10).string(message.dec);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDecProto);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.dec = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseDecProto);\n if (object.dec !== undefined && object.dec !== null) {\n message.dec = String(object.dec);\n }\n else {\n message.dec = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.dec !== undefined && (obj.dec = message.dec);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseDecProto);\n if (object.dec !== undefined && object.dec !== null) {\n message.dec = object.dec;\n }\n else {\n message.dec = \"\";\n }\n return message;\n },\n};\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=coin.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CompactBitArray = exports.MultiSignature = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nexports.protobufPackage = \"cosmos.crypto.multisig.v1beta1\";\nconst baseMultiSignature = {};\nexports.MultiSignature = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.signatures) {\n writer.uint32(10).bytes(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMultiSignature);\n message.signatures = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.signatures.push(reader.bytes());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMultiSignature);\n message.signatures = [];\n if (object.signatures !== undefined && object.signatures !== null) {\n for (const e of object.signatures) {\n message.signatures.push(bytesFromBase64(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.signatures) {\n obj.signatures = message.signatures.map((e) => base64FromBytes(e !== undefined ? e : new Uint8Array()));\n }\n else {\n obj.signatures = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMultiSignature);\n message.signatures = [];\n if (object.signatures !== undefined && object.signatures !== null) {\n for (const e of object.signatures) {\n message.signatures.push(e);\n }\n }\n return message;\n },\n};\nconst baseCompactBitArray = { extraBitsStored: 0 };\nexports.CompactBitArray = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.extraBitsStored !== 0) {\n writer.uint32(8).uint32(message.extraBitsStored);\n }\n if (message.elems.length !== 0) {\n writer.uint32(18).bytes(message.elems);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseCompactBitArray);\n message.elems = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.extraBitsStored = reader.uint32();\n break;\n case 2:\n message.elems = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseCompactBitArray);\n message.elems = new Uint8Array();\n if (object.extraBitsStored !== undefined && object.extraBitsStored !== null) {\n message.extraBitsStored = Number(object.extraBitsStored);\n }\n else {\n message.extraBitsStored = 0;\n }\n if (object.elems !== undefined && object.elems !== null) {\n message.elems = bytesFromBase64(object.elems);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.extraBitsStored !== undefined && (obj.extraBitsStored = message.extraBitsStored);\n message.elems !== undefined &&\n (obj.elems = base64FromBytes(message.elems !== undefined ? message.elems : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseCompactBitArray);\n if (object.extraBitsStored !== undefined && object.extraBitsStored !== null) {\n message.extraBitsStored = object.extraBitsStored;\n }\n else {\n message.extraBitsStored = 0;\n }\n if (object.elems !== undefined && object.elems !== null) {\n message.elems = object.elems;\n }\n else {\n message.elems = new Uint8Array();\n }\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=multisig.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgClientImpl = exports.MsgFundCommunityPoolResponse = exports.MsgFundCommunityPool = exports.MsgWithdrawValidatorCommissionResponse = exports.MsgWithdrawValidatorCommission = exports.MsgWithdrawDelegatorRewardResponse = exports.MsgWithdrawDelegatorReward = exports.MsgSetWithdrawAddressResponse = exports.MsgSetWithdrawAddress = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst coin_1 = require(\"../../../cosmos/base/v1beta1/coin\");\nexports.protobufPackage = \"cosmos.distribution.v1beta1\";\nconst baseMsgSetWithdrawAddress = { delegatorAddress: \"\", withdrawAddress: \"\" };\nexports.MsgSetWithdrawAddress = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.withdrawAddress !== \"\") {\n writer.uint32(18).string(message.withdrawAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgSetWithdrawAddress);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.withdrawAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgSetWithdrawAddress);\n if (object.delegatorAddress !== undefined && object.delegatorAddress !== null) {\n message.delegatorAddress = String(object.delegatorAddress);\n }\n else {\n message.delegatorAddress = \"\";\n }\n if (object.withdrawAddress !== undefined && object.withdrawAddress !== null) {\n message.withdrawAddress = String(object.withdrawAddress);\n }\n else {\n message.withdrawAddress = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.withdrawAddress !== undefined && (obj.withdrawAddress = message.withdrawAddress);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgSetWithdrawAddress);\n if (object.delegatorAddress !== undefined && object.delegatorAddress !== null) {\n message.delegatorAddress = object.delegatorAddress;\n }\n else {\n message.delegatorAddress = \"\";\n }\n if (object.withdrawAddress !== undefined && object.withdrawAddress !== null) {\n message.withdrawAddress = object.withdrawAddress;\n }\n else {\n message.withdrawAddress = \"\";\n }\n return message;\n },\n};\nconst baseMsgSetWithdrawAddressResponse = {};\nexports.MsgSetWithdrawAddressResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgSetWithdrawAddressResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgSetWithdrawAddressResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgSetWithdrawAddressResponse);\n return message;\n },\n};\nconst baseMsgWithdrawDelegatorReward = { delegatorAddress: \"\", validatorAddress: \"\" };\nexports.MsgWithdrawDelegatorReward = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.validatorAddress !== \"\") {\n writer.uint32(18).string(message.validatorAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgWithdrawDelegatorReward);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.validatorAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgWithdrawDelegatorReward);\n if (object.delegatorAddress !== undefined && object.delegatorAddress !== null) {\n message.delegatorAddress = String(object.delegatorAddress);\n }\n else {\n message.delegatorAddress = \"\";\n }\n if (object.validatorAddress !== undefined && object.validatorAddress !== null) {\n message.validatorAddress = String(object.validatorAddress);\n }\n else {\n message.validatorAddress = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgWithdrawDelegatorReward);\n if (object.delegatorAddress !== undefined && object.delegatorAddress !== null) {\n message.delegatorAddress = object.delegatorAddress;\n }\n else {\n message.delegatorAddress = \"\";\n }\n if (object.validatorAddress !== undefined && object.validatorAddress !== null) {\n message.validatorAddress = object.validatorAddress;\n }\n else {\n message.validatorAddress = \"\";\n }\n return message;\n },\n};\nconst baseMsgWithdrawDelegatorRewardResponse = {};\nexports.MsgWithdrawDelegatorRewardResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgWithdrawDelegatorRewardResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgWithdrawDelegatorRewardResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgWithdrawDelegatorRewardResponse);\n return message;\n },\n};\nconst baseMsgWithdrawValidatorCommission = { validatorAddress: \"\" };\nexports.MsgWithdrawValidatorCommission = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.validatorAddress !== \"\") {\n writer.uint32(10).string(message.validatorAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgWithdrawValidatorCommission);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validatorAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgWithdrawValidatorCommission);\n if (object.validatorAddress !== undefined && object.validatorAddress !== null) {\n message.validatorAddress = String(object.validatorAddress);\n }\n else {\n message.validatorAddress = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgWithdrawValidatorCommission);\n if (object.validatorAddress !== undefined && object.validatorAddress !== null) {\n message.validatorAddress = object.validatorAddress;\n }\n else {\n message.validatorAddress = \"\";\n }\n return message;\n },\n};\nconst baseMsgWithdrawValidatorCommissionResponse = {};\nexports.MsgWithdrawValidatorCommissionResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgWithdrawValidatorCommissionResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgWithdrawValidatorCommissionResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgWithdrawValidatorCommissionResponse);\n return message;\n },\n};\nconst baseMsgFundCommunityPool = { depositor: \"\" };\nexports.MsgFundCommunityPool = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.amount) {\n coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.depositor !== \"\") {\n writer.uint32(18).string(message.depositor);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgFundCommunityPool);\n message.amount = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.amount.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 2:\n message.depositor = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgFundCommunityPool);\n message.amount = [];\n if (object.amount !== undefined && object.amount !== null) {\n for (const e of object.amount) {\n message.amount.push(coin_1.Coin.fromJSON(e));\n }\n }\n if (object.depositor !== undefined && object.depositor !== null) {\n message.depositor = String(object.depositor);\n }\n else {\n message.depositor = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.amount = [];\n }\n message.depositor !== undefined && (obj.depositor = message.depositor);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgFundCommunityPool);\n message.amount = [];\n if (object.amount !== undefined && object.amount !== null) {\n for (const e of object.amount) {\n message.amount.push(coin_1.Coin.fromPartial(e));\n }\n }\n if (object.depositor !== undefined && object.depositor !== null) {\n message.depositor = object.depositor;\n }\n else {\n message.depositor = \"\";\n }\n return message;\n },\n};\nconst baseMsgFundCommunityPoolResponse = {};\nexports.MsgFundCommunityPoolResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgFundCommunityPoolResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgFundCommunityPoolResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgFundCommunityPoolResponse);\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.SetWithdrawAddress = this.SetWithdrawAddress.bind(this);\n this.WithdrawDelegatorReward = this.WithdrawDelegatorReward.bind(this);\n this.WithdrawValidatorCommission = this.WithdrawValidatorCommission.bind(this);\n this.FundCommunityPool = this.FundCommunityPool.bind(this);\n }\n SetWithdrawAddress(request) {\n const data = exports.MsgSetWithdrawAddress.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Msg\", \"SetWithdrawAddress\", data);\n return promise.then((data) => exports.MsgSetWithdrawAddressResponse.decode(new minimal_1.default.Reader(data)));\n }\n WithdrawDelegatorReward(request) {\n const data = exports.MsgWithdrawDelegatorReward.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Msg\", \"WithdrawDelegatorReward\", data);\n return promise.then((data) => exports.MsgWithdrawDelegatorRewardResponse.decode(new minimal_1.default.Reader(data)));\n }\n WithdrawValidatorCommission(request) {\n const data = exports.MsgWithdrawValidatorCommission.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Msg\", \"WithdrawValidatorCommission\", data);\n return promise.then((data) => exports.MsgWithdrawValidatorCommissionResponse.decode(new minimal_1.default.Reader(data)));\n }\n FundCommunityPool(request) {\n const data = exports.MsgFundCommunityPool.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Msg\", \"FundCommunityPool\", data);\n return promise.then((data) => exports.MsgFundCommunityPoolResponse.decode(new minimal_1.default.Reader(data)));\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=tx.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TallyParams = exports.VotingParams = exports.DepositParams = exports.Vote = exports.TallyResult = exports.Proposal = exports.Deposit = exports.TextProposal = exports.WeightedVoteOption = exports.proposalStatusToJSON = exports.proposalStatusFromJSON = exports.ProposalStatus = exports.voteOptionToJSON = exports.voteOptionFromJSON = exports.VoteOption = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst duration_1 = require(\"../../../google/protobuf/duration\");\nconst timestamp_1 = require(\"../../../google/protobuf/timestamp\");\nconst coin_1 = require(\"../../../cosmos/base/v1beta1/coin\");\nexports.protobufPackage = \"cosmos.gov.v1beta1\";\n/** VoteOption enumerates the valid vote options for a given governance proposal. */\nvar VoteOption;\n(function (VoteOption) {\n /** VOTE_OPTION_UNSPECIFIED - VOTE_OPTION_UNSPECIFIED defines a no-op vote option. */\n VoteOption[VoteOption[\"VOTE_OPTION_UNSPECIFIED\"] = 0] = \"VOTE_OPTION_UNSPECIFIED\";\n /** VOTE_OPTION_YES - VOTE_OPTION_YES defines a yes vote option. */\n VoteOption[VoteOption[\"VOTE_OPTION_YES\"] = 1] = \"VOTE_OPTION_YES\";\n /** VOTE_OPTION_ABSTAIN - VOTE_OPTION_ABSTAIN defines an abstain vote option. */\n VoteOption[VoteOption[\"VOTE_OPTION_ABSTAIN\"] = 2] = \"VOTE_OPTION_ABSTAIN\";\n /** VOTE_OPTION_NO - VOTE_OPTION_NO defines a no vote option. */\n VoteOption[VoteOption[\"VOTE_OPTION_NO\"] = 3] = \"VOTE_OPTION_NO\";\n /** VOTE_OPTION_NO_WITH_VETO - VOTE_OPTION_NO_WITH_VETO defines a no with veto vote option. */\n VoteOption[VoteOption[\"VOTE_OPTION_NO_WITH_VETO\"] = 4] = \"VOTE_OPTION_NO_WITH_VETO\";\n VoteOption[VoteOption[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(VoteOption = exports.VoteOption || (exports.VoteOption = {}));\nfunction voteOptionFromJSON(object) {\n switch (object) {\n case 0:\n case \"VOTE_OPTION_UNSPECIFIED\":\n return VoteOption.VOTE_OPTION_UNSPECIFIED;\n case 1:\n case \"VOTE_OPTION_YES\":\n return VoteOption.VOTE_OPTION_YES;\n case 2:\n case \"VOTE_OPTION_ABSTAIN\":\n return VoteOption.VOTE_OPTION_ABSTAIN;\n case 3:\n case \"VOTE_OPTION_NO\":\n return VoteOption.VOTE_OPTION_NO;\n case 4:\n case \"VOTE_OPTION_NO_WITH_VETO\":\n return VoteOption.VOTE_OPTION_NO_WITH_VETO;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return VoteOption.UNRECOGNIZED;\n }\n}\nexports.voteOptionFromJSON = voteOptionFromJSON;\nfunction voteOptionToJSON(object) {\n switch (object) {\n case VoteOption.VOTE_OPTION_UNSPECIFIED:\n return \"VOTE_OPTION_UNSPECIFIED\";\n case VoteOption.VOTE_OPTION_YES:\n return \"VOTE_OPTION_YES\";\n case VoteOption.VOTE_OPTION_ABSTAIN:\n return \"VOTE_OPTION_ABSTAIN\";\n case VoteOption.VOTE_OPTION_NO:\n return \"VOTE_OPTION_NO\";\n case VoteOption.VOTE_OPTION_NO_WITH_VETO:\n return \"VOTE_OPTION_NO_WITH_VETO\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.voteOptionToJSON = voteOptionToJSON;\n/** ProposalStatus enumerates the valid statuses of a proposal. */\nvar ProposalStatus;\n(function (ProposalStatus) {\n /** PROPOSAL_STATUS_UNSPECIFIED - PROPOSAL_STATUS_UNSPECIFIED defines the default propopsal status. */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_UNSPECIFIED\"] = 0] = \"PROPOSAL_STATUS_UNSPECIFIED\";\n /**\n * PROPOSAL_STATUS_DEPOSIT_PERIOD - PROPOSAL_STATUS_DEPOSIT_PERIOD defines a proposal status during the deposit\n * period.\n */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_DEPOSIT_PERIOD\"] = 1] = \"PROPOSAL_STATUS_DEPOSIT_PERIOD\";\n /**\n * PROPOSAL_STATUS_VOTING_PERIOD - PROPOSAL_STATUS_VOTING_PERIOD defines a proposal status during the voting\n * period.\n */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_VOTING_PERIOD\"] = 2] = \"PROPOSAL_STATUS_VOTING_PERIOD\";\n /**\n * PROPOSAL_STATUS_PASSED - PROPOSAL_STATUS_PASSED defines a proposal status of a proposal that has\n * passed.\n */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_PASSED\"] = 3] = \"PROPOSAL_STATUS_PASSED\";\n /**\n * PROPOSAL_STATUS_REJECTED - PROPOSAL_STATUS_REJECTED defines a proposal status of a proposal that has\n * been rejected.\n */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_REJECTED\"] = 4] = \"PROPOSAL_STATUS_REJECTED\";\n /**\n * PROPOSAL_STATUS_FAILED - PROPOSAL_STATUS_FAILED defines a proposal status of a proposal that has\n * failed.\n */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_FAILED\"] = 5] = \"PROPOSAL_STATUS_FAILED\";\n ProposalStatus[ProposalStatus[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(ProposalStatus = exports.ProposalStatus || (exports.ProposalStatus = {}));\nfunction proposalStatusFromJSON(object) {\n switch (object) {\n case 0:\n case \"PROPOSAL_STATUS_UNSPECIFIED\":\n return ProposalStatus.PROPOSAL_STATUS_UNSPECIFIED;\n case 1:\n case \"PROPOSAL_STATUS_DEPOSIT_PERIOD\":\n return ProposalStatus.PROPOSAL_STATUS_DEPOSIT_PERIOD;\n case 2:\n case \"PROPOSAL_STATUS_VOTING_PERIOD\":\n return ProposalStatus.PROPOSAL_STATUS_VOTING_PERIOD;\n case 3:\n case \"PROPOSAL_STATUS_PASSED\":\n return ProposalStatus.PROPOSAL_STATUS_PASSED;\n case 4:\n case \"PROPOSAL_STATUS_REJECTED\":\n return ProposalStatus.PROPOSAL_STATUS_REJECTED;\n case 5:\n case \"PROPOSAL_STATUS_FAILED\":\n return ProposalStatus.PROPOSAL_STATUS_FAILED;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return ProposalStatus.UNRECOGNIZED;\n }\n}\nexports.proposalStatusFromJSON = proposalStatusFromJSON;\nfunction proposalStatusToJSON(object) {\n switch (object) {\n case ProposalStatus.PROPOSAL_STATUS_UNSPECIFIED:\n return \"PROPOSAL_STATUS_UNSPECIFIED\";\n case ProposalStatus.PROPOSAL_STATUS_DEPOSIT_PERIOD:\n return \"PROPOSAL_STATUS_DEPOSIT_PERIOD\";\n case ProposalStatus.PROPOSAL_STATUS_VOTING_PERIOD:\n return \"PROPOSAL_STATUS_VOTING_PERIOD\";\n case ProposalStatus.PROPOSAL_STATUS_PASSED:\n return \"PROPOSAL_STATUS_PASSED\";\n case ProposalStatus.PROPOSAL_STATUS_REJECTED:\n return \"PROPOSAL_STATUS_REJECTED\";\n case ProposalStatus.PROPOSAL_STATUS_FAILED:\n return \"PROPOSAL_STATUS_FAILED\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.proposalStatusToJSON = proposalStatusToJSON;\nconst baseWeightedVoteOption = { option: 0, weight: \"\" };\nexports.WeightedVoteOption = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.option !== 0) {\n writer.uint32(8).int32(message.option);\n }\n if (message.weight !== \"\") {\n writer.uint32(18).string(message.weight);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseWeightedVoteOption);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.option = reader.int32();\n break;\n case 2:\n message.weight = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseWeightedVoteOption);\n if (object.option !== undefined && object.option !== null) {\n message.option = voteOptionFromJSON(object.option);\n }\n else {\n message.option = 0;\n }\n if (object.weight !== undefined && object.weight !== null) {\n message.weight = String(object.weight);\n }\n else {\n message.weight = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.option !== undefined && (obj.option = voteOptionToJSON(message.option));\n message.weight !== undefined && (obj.weight = message.weight);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseWeightedVoteOption);\n if (object.option !== undefined && object.option !== null) {\n message.option = object.option;\n }\n else {\n message.option = 0;\n }\n if (object.weight !== undefined && object.weight !== null) {\n message.weight = object.weight;\n }\n else {\n message.weight = \"\";\n }\n return message;\n },\n};\nconst baseTextProposal = { title: \"\", description: \"\" };\nexports.TextProposal = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.title !== \"\") {\n writer.uint32(10).string(message.title);\n }\n if (message.description !== \"\") {\n writer.uint32(18).string(message.description);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseTextProposal);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.title = reader.string();\n break;\n case 2:\n message.description = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseTextProposal);\n if (object.title !== undefined && object.title !== null) {\n message.title = String(object.title);\n }\n else {\n message.title = \"\";\n }\n if (object.description !== undefined && object.description !== null) {\n message.description = String(object.description);\n }\n else {\n message.description = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.title !== undefined && (obj.title = message.title);\n message.description !== undefined && (obj.description = message.description);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseTextProposal);\n if (object.title !== undefined && object.title !== null) {\n message.title = object.title;\n }\n else {\n message.title = \"\";\n }\n if (object.description !== undefined && object.description !== null) {\n message.description = object.description;\n }\n else {\n message.description = \"\";\n }\n return message;\n },\n};\nconst baseDeposit = { proposalId: long_1.default.UZERO, depositor: \"\" };\nexports.Deposit = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.proposalId.isZero()) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.depositor !== \"\") {\n writer.uint32(18).string(message.depositor);\n }\n for (const v of message.amount) {\n coin_1.Coin.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDeposit);\n message.amount = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.depositor = reader.string();\n break;\n case 3:\n message.amount.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseDeposit);\n message.amount = [];\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = long_1.default.fromString(object.proposalId);\n }\n else {\n message.proposalId = long_1.default.UZERO;\n }\n if (object.depositor !== undefined && object.depositor !== null) {\n message.depositor = String(object.depositor);\n }\n else {\n message.depositor = \"\";\n }\n if (object.amount !== undefined && object.amount !== null) {\n for (const e of object.amount) {\n message.amount.push(coin_1.Coin.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || long_1.default.UZERO).toString());\n message.depositor !== undefined && (obj.depositor = message.depositor);\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.amount = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseDeposit);\n message.amount = [];\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = object.proposalId;\n }\n else {\n message.proposalId = long_1.default.UZERO;\n }\n if (object.depositor !== undefined && object.depositor !== null) {\n message.depositor = object.depositor;\n }\n else {\n message.depositor = \"\";\n }\n if (object.amount !== undefined && object.amount !== null) {\n for (const e of object.amount) {\n message.amount.push(coin_1.Coin.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseProposal = { proposalId: long_1.default.UZERO, status: 0 };\nexports.Proposal = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.proposalId.isZero()) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.content !== undefined) {\n any_1.Any.encode(message.content, writer.uint32(18).fork()).ldelim();\n }\n if (message.status !== 0) {\n writer.uint32(24).int32(message.status);\n }\n if (message.finalTallyResult !== undefined) {\n exports.TallyResult.encode(message.finalTallyResult, writer.uint32(34).fork()).ldelim();\n }\n if (message.submitTime !== undefined) {\n timestamp_1.Timestamp.encode(toTimestamp(message.submitTime), writer.uint32(42).fork()).ldelim();\n }\n if (message.depositEndTime !== undefined) {\n timestamp_1.Timestamp.encode(toTimestamp(message.depositEndTime), writer.uint32(50).fork()).ldelim();\n }\n for (const v of message.totalDeposit) {\n coin_1.Coin.encode(v, writer.uint32(58).fork()).ldelim();\n }\n if (message.votingStartTime !== undefined) {\n timestamp_1.Timestamp.encode(toTimestamp(message.votingStartTime), writer.uint32(66).fork()).ldelim();\n }\n if (message.votingEndTime !== undefined) {\n timestamp_1.Timestamp.encode(toTimestamp(message.votingEndTime), writer.uint32(74).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseProposal);\n message.totalDeposit = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.content = any_1.Any.decode(reader, reader.uint32());\n break;\n case 3:\n message.status = reader.int32();\n break;\n case 4:\n message.finalTallyResult = exports.TallyResult.decode(reader, reader.uint32());\n break;\n case 5:\n message.submitTime = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));\n break;\n case 6:\n message.depositEndTime = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));\n break;\n case 7:\n message.totalDeposit.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 8:\n message.votingStartTime = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));\n break;\n case 9:\n message.votingEndTime = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseProposal);\n message.totalDeposit = [];\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = long_1.default.fromString(object.proposalId);\n }\n else {\n message.proposalId = long_1.default.UZERO;\n }\n if (object.content !== undefined && object.content !== null) {\n message.content = any_1.Any.fromJSON(object.content);\n }\n else {\n message.content = undefined;\n }\n if (object.status !== undefined && object.status !== null) {\n message.status = proposalStatusFromJSON(object.status);\n }\n else {\n message.status = 0;\n }\n if (object.finalTallyResult !== undefined && object.finalTallyResult !== null) {\n message.finalTallyResult = exports.TallyResult.fromJSON(object.finalTallyResult);\n }\n else {\n message.finalTallyResult = undefined;\n }\n if (object.submitTime !== undefined && object.submitTime !== null) {\n message.submitTime = fromJsonTimestamp(object.submitTime);\n }\n else {\n message.submitTime = undefined;\n }\n if (object.depositEndTime !== undefined && object.depositEndTime !== null) {\n message.depositEndTime = fromJsonTimestamp(object.depositEndTime);\n }\n else {\n message.depositEndTime = undefined;\n }\n if (object.totalDeposit !== undefined && object.totalDeposit !== null) {\n for (const e of object.totalDeposit) {\n message.totalDeposit.push(coin_1.Coin.fromJSON(e));\n }\n }\n if (object.votingStartTime !== undefined && object.votingStartTime !== null) {\n message.votingStartTime = fromJsonTimestamp(object.votingStartTime);\n }\n else {\n message.votingStartTime = undefined;\n }\n if (object.votingEndTime !== undefined && object.votingEndTime !== null) {\n message.votingEndTime = fromJsonTimestamp(object.votingEndTime);\n }\n else {\n message.votingEndTime = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || long_1.default.UZERO).toString());\n message.content !== undefined &&\n (obj.content = message.content ? any_1.Any.toJSON(message.content) : undefined);\n message.status !== undefined && (obj.status = proposalStatusToJSON(message.status));\n message.finalTallyResult !== undefined &&\n (obj.finalTallyResult = message.finalTallyResult\n ? exports.TallyResult.toJSON(message.finalTallyResult)\n : undefined);\n message.submitTime !== undefined && (obj.submitTime = message.submitTime.toISOString());\n message.depositEndTime !== undefined && (obj.depositEndTime = message.depositEndTime.toISOString());\n if (message.totalDeposit) {\n obj.totalDeposit = message.totalDeposit.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.totalDeposit = [];\n }\n message.votingStartTime !== undefined && (obj.votingStartTime = message.votingStartTime.toISOString());\n message.votingEndTime !== undefined && (obj.votingEndTime = message.votingEndTime.toISOString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseProposal);\n message.totalDeposit = [];\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = object.proposalId;\n }\n else {\n message.proposalId = long_1.default.UZERO;\n }\n if (object.content !== undefined && object.content !== null) {\n message.content = any_1.Any.fromPartial(object.content);\n }\n else {\n message.content = undefined;\n }\n if (object.status !== undefined && object.status !== null) {\n message.status = object.status;\n }\n else {\n message.status = 0;\n }\n if (object.finalTallyResult !== undefined && object.finalTallyResult !== null) {\n message.finalTallyResult = exports.TallyResult.fromPartial(object.finalTallyResult);\n }\n else {\n message.finalTallyResult = undefined;\n }\n if (object.submitTime !== undefined && object.submitTime !== null) {\n message.submitTime = object.submitTime;\n }\n else {\n message.submitTime = undefined;\n }\n if (object.depositEndTime !== undefined && object.depositEndTime !== null) {\n message.depositEndTime = object.depositEndTime;\n }\n else {\n message.depositEndTime = undefined;\n }\n if (object.totalDeposit !== undefined && object.totalDeposit !== null) {\n for (const e of object.totalDeposit) {\n message.totalDeposit.push(coin_1.Coin.fromPartial(e));\n }\n }\n if (object.votingStartTime !== undefined && object.votingStartTime !== null) {\n message.votingStartTime = object.votingStartTime;\n }\n else {\n message.votingStartTime = undefined;\n }\n if (object.votingEndTime !== undefined && object.votingEndTime !== null) {\n message.votingEndTime = object.votingEndTime;\n }\n else {\n message.votingEndTime = undefined;\n }\n return message;\n },\n};\nconst baseTallyResult = { yes: \"\", abstain: \"\", no: \"\", noWithVeto: \"\" };\nexports.TallyResult = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.yes !== \"\") {\n writer.uint32(10).string(message.yes);\n }\n if (message.abstain !== \"\") {\n writer.uint32(18).string(message.abstain);\n }\n if (message.no !== \"\") {\n writer.uint32(26).string(message.no);\n }\n if (message.noWithVeto !== \"\") {\n writer.uint32(34).string(message.noWithVeto);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseTallyResult);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.yes = reader.string();\n break;\n case 2:\n message.abstain = reader.string();\n break;\n case 3:\n message.no = reader.string();\n break;\n case 4:\n message.noWithVeto = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseTallyResult);\n if (object.yes !== undefined && object.yes !== null) {\n message.yes = String(object.yes);\n }\n else {\n message.yes = \"\";\n }\n if (object.abstain !== undefined && object.abstain !== null) {\n message.abstain = String(object.abstain);\n }\n else {\n message.abstain = \"\";\n }\n if (object.no !== undefined && object.no !== null) {\n message.no = String(object.no);\n }\n else {\n message.no = \"\";\n }\n if (object.noWithVeto !== undefined && object.noWithVeto !== null) {\n message.noWithVeto = String(object.noWithVeto);\n }\n else {\n message.noWithVeto = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.yes !== undefined && (obj.yes = message.yes);\n message.abstain !== undefined && (obj.abstain = message.abstain);\n message.no !== undefined && (obj.no = message.no);\n message.noWithVeto !== undefined && (obj.noWithVeto = message.noWithVeto);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseTallyResult);\n if (object.yes !== undefined && object.yes !== null) {\n message.yes = object.yes;\n }\n else {\n message.yes = \"\";\n }\n if (object.abstain !== undefined && object.abstain !== null) {\n message.abstain = object.abstain;\n }\n else {\n message.abstain = \"\";\n }\n if (object.no !== undefined && object.no !== null) {\n message.no = object.no;\n }\n else {\n message.no = \"\";\n }\n if (object.noWithVeto !== undefined && object.noWithVeto !== null) {\n message.noWithVeto = object.noWithVeto;\n }\n else {\n message.noWithVeto = \"\";\n }\n return message;\n },\n};\nconst baseVote = { proposalId: long_1.default.UZERO, voter: \"\", option: 0 };\nexports.Vote = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.proposalId.isZero()) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.voter !== \"\") {\n writer.uint32(18).string(message.voter);\n }\n if (message.option !== 0) {\n writer.uint32(24).int32(message.option);\n }\n for (const v of message.options) {\n exports.WeightedVoteOption.encode(v, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseVote);\n message.options = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.voter = reader.string();\n break;\n case 3:\n message.option = reader.int32();\n break;\n case 4:\n message.options.push(exports.WeightedVoteOption.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseVote);\n message.options = [];\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = long_1.default.fromString(object.proposalId);\n }\n else {\n message.proposalId = long_1.default.UZERO;\n }\n if (object.voter !== undefined && object.voter !== null) {\n message.voter = String(object.voter);\n }\n else {\n message.voter = \"\";\n }\n if (object.option !== undefined && object.option !== null) {\n message.option = voteOptionFromJSON(object.option);\n }\n else {\n message.option = 0;\n }\n if (object.options !== undefined && object.options !== null) {\n for (const e of object.options) {\n message.options.push(exports.WeightedVoteOption.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || long_1.default.UZERO).toString());\n message.voter !== undefined && (obj.voter = message.voter);\n message.option !== undefined && (obj.option = voteOptionToJSON(message.option));\n if (message.options) {\n obj.options = message.options.map((e) => (e ? exports.WeightedVoteOption.toJSON(e) : undefined));\n }\n else {\n obj.options = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseVote);\n message.options = [];\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = object.proposalId;\n }\n else {\n message.proposalId = long_1.default.UZERO;\n }\n if (object.voter !== undefined && object.voter !== null) {\n message.voter = object.voter;\n }\n else {\n message.voter = \"\";\n }\n if (object.option !== undefined && object.option !== null) {\n message.option = object.option;\n }\n else {\n message.option = 0;\n }\n if (object.options !== undefined && object.options !== null) {\n for (const e of object.options) {\n message.options.push(exports.WeightedVoteOption.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseDepositParams = {};\nexports.DepositParams = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.minDeposit) {\n coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.maxDepositPeriod !== undefined) {\n duration_1.Duration.encode(message.maxDepositPeriod, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDepositParams);\n message.minDeposit = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.minDeposit.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 2:\n message.maxDepositPeriod = duration_1.Duration.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseDepositParams);\n message.minDeposit = [];\n if (object.minDeposit !== undefined && object.minDeposit !== null) {\n for (const e of object.minDeposit) {\n message.minDeposit.push(coin_1.Coin.fromJSON(e));\n }\n }\n if (object.maxDepositPeriod !== undefined && object.maxDepositPeriod !== null) {\n message.maxDepositPeriod = duration_1.Duration.fromJSON(object.maxDepositPeriod);\n }\n else {\n message.maxDepositPeriod = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.minDeposit) {\n obj.minDeposit = message.minDeposit.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.minDeposit = [];\n }\n message.maxDepositPeriod !== undefined &&\n (obj.maxDepositPeriod = message.maxDepositPeriod\n ? duration_1.Duration.toJSON(message.maxDepositPeriod)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseDepositParams);\n message.minDeposit = [];\n if (object.minDeposit !== undefined && object.minDeposit !== null) {\n for (const e of object.minDeposit) {\n message.minDeposit.push(coin_1.Coin.fromPartial(e));\n }\n }\n if (object.maxDepositPeriod !== undefined && object.maxDepositPeriod !== null) {\n message.maxDepositPeriod = duration_1.Duration.fromPartial(object.maxDepositPeriod);\n }\n else {\n message.maxDepositPeriod = undefined;\n }\n return message;\n },\n};\nconst baseVotingParams = {};\nexports.VotingParams = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.votingPeriod !== undefined) {\n duration_1.Duration.encode(message.votingPeriod, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseVotingParams);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.votingPeriod = duration_1.Duration.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseVotingParams);\n if (object.votingPeriod !== undefined && object.votingPeriod !== null) {\n message.votingPeriod = duration_1.Duration.fromJSON(object.votingPeriod);\n }\n else {\n message.votingPeriod = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.votingPeriod !== undefined &&\n (obj.votingPeriod = message.votingPeriod ? duration_1.Duration.toJSON(message.votingPeriod) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseVotingParams);\n if (object.votingPeriod !== undefined && object.votingPeriod !== null) {\n message.votingPeriod = duration_1.Duration.fromPartial(object.votingPeriod);\n }\n else {\n message.votingPeriod = undefined;\n }\n return message;\n },\n};\nconst baseTallyParams = {};\nexports.TallyParams = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.quorum.length !== 0) {\n writer.uint32(10).bytes(message.quorum);\n }\n if (message.threshold.length !== 0) {\n writer.uint32(18).bytes(message.threshold);\n }\n if (message.vetoThreshold.length !== 0) {\n writer.uint32(26).bytes(message.vetoThreshold);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseTallyParams);\n message.quorum = new Uint8Array();\n message.threshold = new Uint8Array();\n message.vetoThreshold = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.quorum = reader.bytes();\n break;\n case 2:\n message.threshold = reader.bytes();\n break;\n case 3:\n message.vetoThreshold = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseTallyParams);\n message.quorum = new Uint8Array();\n message.threshold = new Uint8Array();\n message.vetoThreshold = new Uint8Array();\n if (object.quorum !== undefined && object.quorum !== null) {\n message.quorum = bytesFromBase64(object.quorum);\n }\n if (object.threshold !== undefined && object.threshold !== null) {\n message.threshold = bytesFromBase64(object.threshold);\n }\n if (object.vetoThreshold !== undefined && object.vetoThreshold !== null) {\n message.vetoThreshold = bytesFromBase64(object.vetoThreshold);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.quorum !== undefined &&\n (obj.quorum = base64FromBytes(message.quorum !== undefined ? message.quorum : new Uint8Array()));\n message.threshold !== undefined &&\n (obj.threshold = base64FromBytes(message.threshold !== undefined ? message.threshold : new Uint8Array()));\n message.vetoThreshold !== undefined &&\n (obj.vetoThreshold = base64FromBytes(message.vetoThreshold !== undefined ? message.vetoThreshold : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseTallyParams);\n if (object.quorum !== undefined && object.quorum !== null) {\n message.quorum = object.quorum;\n }\n else {\n message.quorum = new Uint8Array();\n }\n if (object.threshold !== undefined && object.threshold !== null) {\n message.threshold = object.threshold;\n }\n else {\n message.threshold = new Uint8Array();\n }\n if (object.vetoThreshold !== undefined && object.vetoThreshold !== null) {\n message.vetoThreshold = object.vetoThreshold;\n }\n else {\n message.vetoThreshold = new Uint8Array();\n }\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nfunction toTimestamp(date) {\n const seconds = numberToLong(date.getTime() / 1000);\n const nanos = (date.getTime() % 1000) * 1000000;\n return { seconds, nanos };\n}\nfunction fromTimestamp(t) {\n let millis = t.seconds.toNumber() * 1000;\n millis += t.nanos / 1000000;\n return new Date(millis);\n}\nfunction fromJsonTimestamp(o) {\n if (o instanceof Date) {\n return o;\n }\n else if (typeof o === \"string\") {\n return new Date(o);\n }\n else {\n return fromTimestamp(timestamp_1.Timestamp.fromJSON(o));\n }\n}\nfunction numberToLong(number) {\n return long_1.default.fromNumber(number);\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=gov.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ParamChange = exports.ParameterChangeProposal = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nexports.protobufPackage = \"cosmos.params.v1beta1\";\nconst baseParameterChangeProposal = { title: \"\", description: \"\" };\nexports.ParameterChangeProposal = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.title !== \"\") {\n writer.uint32(10).string(message.title);\n }\n if (message.description !== \"\") {\n writer.uint32(18).string(message.description);\n }\n for (const v of message.changes) {\n exports.ParamChange.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseParameterChangeProposal);\n message.changes = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.title = reader.string();\n break;\n case 2:\n message.description = reader.string();\n break;\n case 3:\n message.changes.push(exports.ParamChange.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseParameterChangeProposal);\n message.changes = [];\n if (object.title !== undefined && object.title !== null) {\n message.title = String(object.title);\n }\n else {\n message.title = \"\";\n }\n if (object.description !== undefined && object.description !== null) {\n message.description = String(object.description);\n }\n else {\n message.description = \"\";\n }\n if (object.changes !== undefined && object.changes !== null) {\n for (const e of object.changes) {\n message.changes.push(exports.ParamChange.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.title !== undefined && (obj.title = message.title);\n message.description !== undefined && (obj.description = message.description);\n if (message.changes) {\n obj.changes = message.changes.map((e) => (e ? exports.ParamChange.toJSON(e) : undefined));\n }\n else {\n obj.changes = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseParameterChangeProposal);\n message.changes = [];\n if (object.title !== undefined && object.title !== null) {\n message.title = object.title;\n }\n else {\n message.title = \"\";\n }\n if (object.description !== undefined && object.description !== null) {\n message.description = object.description;\n }\n else {\n message.description = \"\";\n }\n if (object.changes !== undefined && object.changes !== null) {\n for (const e of object.changes) {\n message.changes.push(exports.ParamChange.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseParamChange = { subspace: \"\", key: \"\", value: \"\" };\nexports.ParamChange = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.subspace !== \"\") {\n writer.uint32(10).string(message.subspace);\n }\n if (message.key !== \"\") {\n writer.uint32(18).string(message.key);\n }\n if (message.value !== \"\") {\n writer.uint32(26).string(message.value);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseParamChange);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.subspace = reader.string();\n break;\n case 2:\n message.key = reader.string();\n break;\n case 3:\n message.value = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseParamChange);\n if (object.subspace !== undefined && object.subspace !== null) {\n message.subspace = String(object.subspace);\n }\n else {\n message.subspace = \"\";\n }\n if (object.key !== undefined && object.key !== null) {\n message.key = String(object.key);\n }\n else {\n message.key = \"\";\n }\n if (object.value !== undefined && object.value !== null) {\n message.value = String(object.value);\n }\n else {\n message.value = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.subspace !== undefined && (obj.subspace = message.subspace);\n message.key !== undefined && (obj.key = message.key);\n message.value !== undefined && (obj.value = message.value);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseParamChange);\n if (object.subspace !== undefined && object.subspace !== null) {\n message.subspace = object.subspace;\n }\n else {\n message.subspace = \"\";\n }\n if (object.key !== undefined && object.key !== null) {\n message.key = object.key;\n }\n else {\n message.key = \"\";\n }\n if (object.value !== undefined && object.value !== null) {\n message.value = object.value;\n }\n else {\n message.value = \"\";\n }\n return message;\n },\n};\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=params.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SignatureDescriptor_Data_Multi = exports.SignatureDescriptor_Data_Single = exports.SignatureDescriptor_Data = exports.SignatureDescriptor = exports.SignatureDescriptors = exports.signModeToJSON = exports.signModeFromJSON = exports.SignMode = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst any_1 = require(\"../../../../google/protobuf/any\");\nconst multisig_1 = require(\"../../../../cosmos/crypto/multisig/v1beta1/multisig\");\nexports.protobufPackage = \"cosmos.tx.signing.v1beta1\";\n/** SignMode represents a signing mode with its own security guarantees. */\nvar SignMode;\n(function (SignMode) {\n /**\n * SIGN_MODE_UNSPECIFIED - SIGN_MODE_UNSPECIFIED specifies an unknown signing mode and will be\n * rejected\n */\n SignMode[SignMode[\"SIGN_MODE_UNSPECIFIED\"] = 0] = \"SIGN_MODE_UNSPECIFIED\";\n /**\n * SIGN_MODE_DIRECT - SIGN_MODE_DIRECT specifies a signing mode which uses SignDoc and is\n * verified with raw bytes from Tx\n */\n SignMode[SignMode[\"SIGN_MODE_DIRECT\"] = 1] = \"SIGN_MODE_DIRECT\";\n /**\n * SIGN_MODE_TEXTUAL - SIGN_MODE_TEXTUAL is a future signing mode that will verify some\n * human-readable textual representation on top of the binary representation\n * from SIGN_MODE_DIRECT\n */\n SignMode[SignMode[\"SIGN_MODE_TEXTUAL\"] = 2] = \"SIGN_MODE_TEXTUAL\";\n /**\n * SIGN_MODE_LEGACY_AMINO_JSON - SIGN_MODE_LEGACY_AMINO_JSON is a backwards compatibility mode which uses\n * Amino JSON and will be removed in the future\n */\n SignMode[SignMode[\"SIGN_MODE_LEGACY_AMINO_JSON\"] = 127] = \"SIGN_MODE_LEGACY_AMINO_JSON\";\n SignMode[SignMode[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(SignMode = exports.SignMode || (exports.SignMode = {}));\nfunction signModeFromJSON(object) {\n switch (object) {\n case 0:\n case \"SIGN_MODE_UNSPECIFIED\":\n return SignMode.SIGN_MODE_UNSPECIFIED;\n case 1:\n case \"SIGN_MODE_DIRECT\":\n return SignMode.SIGN_MODE_DIRECT;\n case 2:\n case \"SIGN_MODE_TEXTUAL\":\n return SignMode.SIGN_MODE_TEXTUAL;\n case 127:\n case \"SIGN_MODE_LEGACY_AMINO_JSON\":\n return SignMode.SIGN_MODE_LEGACY_AMINO_JSON;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return SignMode.UNRECOGNIZED;\n }\n}\nexports.signModeFromJSON = signModeFromJSON;\nfunction signModeToJSON(object) {\n switch (object) {\n case SignMode.SIGN_MODE_UNSPECIFIED:\n return \"SIGN_MODE_UNSPECIFIED\";\n case SignMode.SIGN_MODE_DIRECT:\n return \"SIGN_MODE_DIRECT\";\n case SignMode.SIGN_MODE_TEXTUAL:\n return \"SIGN_MODE_TEXTUAL\";\n case SignMode.SIGN_MODE_LEGACY_AMINO_JSON:\n return \"SIGN_MODE_LEGACY_AMINO_JSON\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.signModeToJSON = signModeToJSON;\nconst baseSignatureDescriptors = {};\nexports.SignatureDescriptors = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.signatures) {\n exports.SignatureDescriptor.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSignatureDescriptors);\n message.signatures = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.signatures.push(exports.SignatureDescriptor.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseSignatureDescriptors);\n message.signatures = [];\n if (object.signatures !== undefined && object.signatures !== null) {\n for (const e of object.signatures) {\n message.signatures.push(exports.SignatureDescriptor.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.signatures) {\n obj.signatures = message.signatures.map((e) => (e ? exports.SignatureDescriptor.toJSON(e) : undefined));\n }\n else {\n obj.signatures = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseSignatureDescriptors);\n message.signatures = [];\n if (object.signatures !== undefined && object.signatures !== null) {\n for (const e of object.signatures) {\n message.signatures.push(exports.SignatureDescriptor.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseSignatureDescriptor = { sequence: long_1.default.UZERO };\nexports.SignatureDescriptor = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.publicKey !== undefined) {\n any_1.Any.encode(message.publicKey, writer.uint32(10).fork()).ldelim();\n }\n if (message.data !== undefined) {\n exports.SignatureDescriptor_Data.encode(message.data, writer.uint32(18).fork()).ldelim();\n }\n if (!message.sequence.isZero()) {\n writer.uint32(24).uint64(message.sequence);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSignatureDescriptor);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.publicKey = any_1.Any.decode(reader, reader.uint32());\n break;\n case 2:\n message.data = exports.SignatureDescriptor_Data.decode(reader, reader.uint32());\n break;\n case 3:\n message.sequence = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseSignatureDescriptor);\n if (object.publicKey !== undefined && object.publicKey !== null) {\n message.publicKey = any_1.Any.fromJSON(object.publicKey);\n }\n else {\n message.publicKey = undefined;\n }\n if (object.data !== undefined && object.data !== null) {\n message.data = exports.SignatureDescriptor_Data.fromJSON(object.data);\n }\n else {\n message.data = undefined;\n }\n if (object.sequence !== undefined && object.sequence !== null) {\n message.sequence = long_1.default.fromString(object.sequence);\n }\n else {\n message.sequence = long_1.default.UZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.publicKey !== undefined &&\n (obj.publicKey = message.publicKey ? any_1.Any.toJSON(message.publicKey) : undefined);\n message.data !== undefined &&\n (obj.data = message.data ? exports.SignatureDescriptor_Data.toJSON(message.data) : undefined);\n message.sequence !== undefined && (obj.sequence = (message.sequence || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseSignatureDescriptor);\n if (object.publicKey !== undefined && object.publicKey !== null) {\n message.publicKey = any_1.Any.fromPartial(object.publicKey);\n }\n else {\n message.publicKey = undefined;\n }\n if (object.data !== undefined && object.data !== null) {\n message.data = exports.SignatureDescriptor_Data.fromPartial(object.data);\n }\n else {\n message.data = undefined;\n }\n if (object.sequence !== undefined && object.sequence !== null) {\n message.sequence = object.sequence;\n }\n else {\n message.sequence = long_1.default.UZERO;\n }\n return message;\n },\n};\nconst baseSignatureDescriptor_Data = {};\nexports.SignatureDescriptor_Data = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.single !== undefined) {\n exports.SignatureDescriptor_Data_Single.encode(message.single, writer.uint32(10).fork()).ldelim();\n }\n if (message.multi !== undefined) {\n exports.SignatureDescriptor_Data_Multi.encode(message.multi, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSignatureDescriptor_Data);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.single = exports.SignatureDescriptor_Data_Single.decode(reader, reader.uint32());\n break;\n case 2:\n message.multi = exports.SignatureDescriptor_Data_Multi.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseSignatureDescriptor_Data);\n if (object.single !== undefined && object.single !== null) {\n message.single = exports.SignatureDescriptor_Data_Single.fromJSON(object.single);\n }\n else {\n message.single = undefined;\n }\n if (object.multi !== undefined && object.multi !== null) {\n message.multi = exports.SignatureDescriptor_Data_Multi.fromJSON(object.multi);\n }\n else {\n message.multi = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.single !== undefined &&\n (obj.single = message.single ? exports.SignatureDescriptor_Data_Single.toJSON(message.single) : undefined);\n message.multi !== undefined &&\n (obj.multi = message.multi ? exports.SignatureDescriptor_Data_Multi.toJSON(message.multi) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseSignatureDescriptor_Data);\n if (object.single !== undefined && object.single !== null) {\n message.single = exports.SignatureDescriptor_Data_Single.fromPartial(object.single);\n }\n else {\n message.single = undefined;\n }\n if (object.multi !== undefined && object.multi !== null) {\n message.multi = exports.SignatureDescriptor_Data_Multi.fromPartial(object.multi);\n }\n else {\n message.multi = undefined;\n }\n return message;\n },\n};\nconst baseSignatureDescriptor_Data_Single = { mode: 0 };\nexports.SignatureDescriptor_Data_Single = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.mode !== 0) {\n writer.uint32(8).int32(message.mode);\n }\n if (message.signature.length !== 0) {\n writer.uint32(18).bytes(message.signature);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSignatureDescriptor_Data_Single);\n message.signature = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.mode = reader.int32();\n break;\n case 2:\n message.signature = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseSignatureDescriptor_Data_Single);\n message.signature = new Uint8Array();\n if (object.mode !== undefined && object.mode !== null) {\n message.mode = signModeFromJSON(object.mode);\n }\n else {\n message.mode = 0;\n }\n if (object.signature !== undefined && object.signature !== null) {\n message.signature = bytesFromBase64(object.signature);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.mode !== undefined && (obj.mode = signModeToJSON(message.mode));\n message.signature !== undefined &&\n (obj.signature = base64FromBytes(message.signature !== undefined ? message.signature : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseSignatureDescriptor_Data_Single);\n if (object.mode !== undefined && object.mode !== null) {\n message.mode = object.mode;\n }\n else {\n message.mode = 0;\n }\n if (object.signature !== undefined && object.signature !== null) {\n message.signature = object.signature;\n }\n else {\n message.signature = new Uint8Array();\n }\n return message;\n },\n};\nconst baseSignatureDescriptor_Data_Multi = {};\nexports.SignatureDescriptor_Data_Multi = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.bitarray !== undefined) {\n multisig_1.CompactBitArray.encode(message.bitarray, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.signatures) {\n exports.SignatureDescriptor_Data.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSignatureDescriptor_Data_Multi);\n message.signatures = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.bitarray = multisig_1.CompactBitArray.decode(reader, reader.uint32());\n break;\n case 2:\n message.signatures.push(exports.SignatureDescriptor_Data.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseSignatureDescriptor_Data_Multi);\n message.signatures = [];\n if (object.bitarray !== undefined && object.bitarray !== null) {\n message.bitarray = multisig_1.CompactBitArray.fromJSON(object.bitarray);\n }\n else {\n message.bitarray = undefined;\n }\n if (object.signatures !== undefined && object.signatures !== null) {\n for (const e of object.signatures) {\n message.signatures.push(exports.SignatureDescriptor_Data.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.bitarray !== undefined &&\n (obj.bitarray = message.bitarray ? multisig_1.CompactBitArray.toJSON(message.bitarray) : undefined);\n if (message.signatures) {\n obj.signatures = message.signatures.map((e) => (e ? exports.SignatureDescriptor_Data.toJSON(e) : undefined));\n }\n else {\n obj.signatures = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseSignatureDescriptor_Data_Multi);\n message.signatures = [];\n if (object.bitarray !== undefined && object.bitarray !== null) {\n message.bitarray = multisig_1.CompactBitArray.fromPartial(object.bitarray);\n }\n else {\n message.bitarray = undefined;\n }\n if (object.signatures !== undefined && object.signatures !== null) {\n for (const e of object.signatures) {\n message.signatures.push(exports.SignatureDescriptor_Data.fromPartial(e));\n }\n }\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=signing.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ServiceClientImpl = exports.GetTxResponse = exports.GetTxRequest = exports.SimulateResponse = exports.SimulateRequest = exports.BroadcastTxResponse = exports.BroadcastTxRequest = exports.GetTxsEventResponse = exports.GetTxsEventRequest = exports.broadcastModeToJSON = exports.broadcastModeFromJSON = exports.BroadcastMode = exports.orderByToJSON = exports.orderByFromJSON = exports.OrderBy = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst pagination_1 = require(\"../../../cosmos/base/query/v1beta1/pagination\");\nconst abci_1 = require(\"../../../cosmos/base/abci/v1beta1/abci\");\nconst tx_1 = require(\"../../../cosmos/tx/v1beta1/tx\");\nexports.protobufPackage = \"cosmos.tx.v1beta1\";\n/** OrderBy defines the sorting order */\nvar OrderBy;\n(function (OrderBy) {\n /** ORDER_BY_UNSPECIFIED - ORDER_BY_UNSPECIFIED specifies an unknown sorting order. OrderBy defaults to ASC in this case. */\n OrderBy[OrderBy[\"ORDER_BY_UNSPECIFIED\"] = 0] = \"ORDER_BY_UNSPECIFIED\";\n /** ORDER_BY_ASC - ORDER_BY_ASC defines ascending order */\n OrderBy[OrderBy[\"ORDER_BY_ASC\"] = 1] = \"ORDER_BY_ASC\";\n /** ORDER_BY_DESC - ORDER_BY_DESC defines descending order */\n OrderBy[OrderBy[\"ORDER_BY_DESC\"] = 2] = \"ORDER_BY_DESC\";\n OrderBy[OrderBy[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(OrderBy = exports.OrderBy || (exports.OrderBy = {}));\nfunction orderByFromJSON(object) {\n switch (object) {\n case 0:\n case \"ORDER_BY_UNSPECIFIED\":\n return OrderBy.ORDER_BY_UNSPECIFIED;\n case 1:\n case \"ORDER_BY_ASC\":\n return OrderBy.ORDER_BY_ASC;\n case 2:\n case \"ORDER_BY_DESC\":\n return OrderBy.ORDER_BY_DESC;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return OrderBy.UNRECOGNIZED;\n }\n}\nexports.orderByFromJSON = orderByFromJSON;\nfunction orderByToJSON(object) {\n switch (object) {\n case OrderBy.ORDER_BY_UNSPECIFIED:\n return \"ORDER_BY_UNSPECIFIED\";\n case OrderBy.ORDER_BY_ASC:\n return \"ORDER_BY_ASC\";\n case OrderBy.ORDER_BY_DESC:\n return \"ORDER_BY_DESC\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.orderByToJSON = orderByToJSON;\n/** BroadcastMode specifies the broadcast mode for the TxService.Broadcast RPC method. */\nvar BroadcastMode;\n(function (BroadcastMode) {\n /** BROADCAST_MODE_UNSPECIFIED - zero-value for mode ordering */\n BroadcastMode[BroadcastMode[\"BROADCAST_MODE_UNSPECIFIED\"] = 0] = \"BROADCAST_MODE_UNSPECIFIED\";\n /**\n * BROADCAST_MODE_BLOCK - BROADCAST_MODE_BLOCK defines a tx broadcasting mode where the client waits for\n * the tx to be committed in a block.\n */\n BroadcastMode[BroadcastMode[\"BROADCAST_MODE_BLOCK\"] = 1] = \"BROADCAST_MODE_BLOCK\";\n /**\n * BROADCAST_MODE_SYNC - BROADCAST_MODE_SYNC defines a tx broadcasting mode where the client waits for\n * a CheckTx execution response only.\n */\n BroadcastMode[BroadcastMode[\"BROADCAST_MODE_SYNC\"] = 2] = \"BROADCAST_MODE_SYNC\";\n /**\n * BROADCAST_MODE_ASYNC - BROADCAST_MODE_ASYNC defines a tx broadcasting mode where the client returns\n * immediately.\n */\n BroadcastMode[BroadcastMode[\"BROADCAST_MODE_ASYNC\"] = 3] = \"BROADCAST_MODE_ASYNC\";\n BroadcastMode[BroadcastMode[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(BroadcastMode = exports.BroadcastMode || (exports.BroadcastMode = {}));\nfunction broadcastModeFromJSON(object) {\n switch (object) {\n case 0:\n case \"BROADCAST_MODE_UNSPECIFIED\":\n return BroadcastMode.BROADCAST_MODE_UNSPECIFIED;\n case 1:\n case \"BROADCAST_MODE_BLOCK\":\n return BroadcastMode.BROADCAST_MODE_BLOCK;\n case 2:\n case \"BROADCAST_MODE_SYNC\":\n return BroadcastMode.BROADCAST_MODE_SYNC;\n case 3:\n case \"BROADCAST_MODE_ASYNC\":\n return BroadcastMode.BROADCAST_MODE_ASYNC;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return BroadcastMode.UNRECOGNIZED;\n }\n}\nexports.broadcastModeFromJSON = broadcastModeFromJSON;\nfunction broadcastModeToJSON(object) {\n switch (object) {\n case BroadcastMode.BROADCAST_MODE_UNSPECIFIED:\n return \"BROADCAST_MODE_UNSPECIFIED\";\n case BroadcastMode.BROADCAST_MODE_BLOCK:\n return \"BROADCAST_MODE_BLOCK\";\n case BroadcastMode.BROADCAST_MODE_SYNC:\n return \"BROADCAST_MODE_SYNC\";\n case BroadcastMode.BROADCAST_MODE_ASYNC:\n return \"BROADCAST_MODE_ASYNC\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.broadcastModeToJSON = broadcastModeToJSON;\nconst baseGetTxsEventRequest = { events: \"\", orderBy: 0 };\nexports.GetTxsEventRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.events) {\n writer.uint32(10).string(v);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n if (message.orderBy !== 0) {\n writer.uint32(24).int32(message.orderBy);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseGetTxsEventRequest);\n message.events = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.events.push(reader.string());\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n case 3:\n message.orderBy = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseGetTxsEventRequest);\n message.events = [];\n if (object.events !== undefined && object.events !== null) {\n for (const e of object.events) {\n message.events.push(String(e));\n }\n }\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromJSON(object.pagination);\n }\n else {\n message.pagination = undefined;\n }\n if (object.orderBy !== undefined && object.orderBy !== null) {\n message.orderBy = orderByFromJSON(object.orderBy);\n }\n else {\n message.orderBy = 0;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.events) {\n obj.events = message.events.map((e) => e);\n }\n else {\n obj.events = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n message.orderBy !== undefined && (obj.orderBy = orderByToJSON(message.orderBy));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseGetTxsEventRequest);\n message.events = [];\n if (object.events !== undefined && object.events !== null) {\n for (const e of object.events) {\n message.events.push(e);\n }\n }\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageRequest.fromPartial(object.pagination);\n }\n else {\n message.pagination = undefined;\n }\n if (object.orderBy !== undefined && object.orderBy !== null) {\n message.orderBy = object.orderBy;\n }\n else {\n message.orderBy = 0;\n }\n return message;\n },\n};\nconst baseGetTxsEventResponse = {};\nexports.GetTxsEventResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.txs) {\n tx_1.Tx.encode(v, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.txResponses) {\n abci_1.TxResponse.encode(v, writer.uint32(18).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseGetTxsEventResponse);\n message.txs = [];\n message.txResponses = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.txs.push(tx_1.Tx.decode(reader, reader.uint32()));\n break;\n case 2:\n message.txResponses.push(abci_1.TxResponse.decode(reader, reader.uint32()));\n break;\n case 3:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseGetTxsEventResponse);\n message.txs = [];\n message.txResponses = [];\n if (object.txs !== undefined && object.txs !== null) {\n for (const e of object.txs) {\n message.txs.push(tx_1.Tx.fromJSON(e));\n }\n }\n if (object.txResponses !== undefined && object.txResponses !== null) {\n for (const e of object.txResponses) {\n message.txResponses.push(abci_1.TxResponse.fromJSON(e));\n }\n }\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromJSON(object.pagination);\n }\n else {\n message.pagination = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.txs) {\n obj.txs = message.txs.map((e) => (e ? tx_1.Tx.toJSON(e) : undefined));\n }\n else {\n obj.txs = [];\n }\n if (message.txResponses) {\n obj.txResponses = message.txResponses.map((e) => (e ? abci_1.TxResponse.toJSON(e) : undefined));\n }\n else {\n obj.txResponses = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseGetTxsEventResponse);\n message.txs = [];\n message.txResponses = [];\n if (object.txs !== undefined && object.txs !== null) {\n for (const e of object.txs) {\n message.txs.push(tx_1.Tx.fromPartial(e));\n }\n }\n if (object.txResponses !== undefined && object.txResponses !== null) {\n for (const e of object.txResponses) {\n message.txResponses.push(abci_1.TxResponse.fromPartial(e));\n }\n }\n if (object.pagination !== undefined && object.pagination !== null) {\n message.pagination = pagination_1.PageResponse.fromPartial(object.pagination);\n }\n else {\n message.pagination = undefined;\n }\n return message;\n },\n};\nconst baseBroadcastTxRequest = { mode: 0 };\nexports.BroadcastTxRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.txBytes.length !== 0) {\n writer.uint32(10).bytes(message.txBytes);\n }\n if (message.mode !== 0) {\n writer.uint32(16).int32(message.mode);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseBroadcastTxRequest);\n message.txBytes = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.txBytes = reader.bytes();\n break;\n case 2:\n message.mode = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseBroadcastTxRequest);\n message.txBytes = new Uint8Array();\n if (object.txBytes !== undefined && object.txBytes !== null) {\n message.txBytes = bytesFromBase64(object.txBytes);\n }\n if (object.mode !== undefined && object.mode !== null) {\n message.mode = broadcastModeFromJSON(object.mode);\n }\n else {\n message.mode = 0;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.txBytes !== undefined &&\n (obj.txBytes = base64FromBytes(message.txBytes !== undefined ? message.txBytes : new Uint8Array()));\n message.mode !== undefined && (obj.mode = broadcastModeToJSON(message.mode));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseBroadcastTxRequest);\n if (object.txBytes !== undefined && object.txBytes !== null) {\n message.txBytes = object.txBytes;\n }\n else {\n message.txBytes = new Uint8Array();\n }\n if (object.mode !== undefined && object.mode !== null) {\n message.mode = object.mode;\n }\n else {\n message.mode = 0;\n }\n return message;\n },\n};\nconst baseBroadcastTxResponse = {};\nexports.BroadcastTxResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.txResponse !== undefined) {\n abci_1.TxResponse.encode(message.txResponse, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseBroadcastTxResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.txResponse = abci_1.TxResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseBroadcastTxResponse);\n if (object.txResponse !== undefined && object.txResponse !== null) {\n message.txResponse = abci_1.TxResponse.fromJSON(object.txResponse);\n }\n else {\n message.txResponse = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.txResponse !== undefined &&\n (obj.txResponse = message.txResponse ? abci_1.TxResponse.toJSON(message.txResponse) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseBroadcastTxResponse);\n if (object.txResponse !== undefined && object.txResponse !== null) {\n message.txResponse = abci_1.TxResponse.fromPartial(object.txResponse);\n }\n else {\n message.txResponse = undefined;\n }\n return message;\n },\n};\nconst baseSimulateRequest = {};\nexports.SimulateRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.tx !== undefined) {\n tx_1.Tx.encode(message.tx, writer.uint32(10).fork()).ldelim();\n }\n if (message.txBytes.length !== 0) {\n writer.uint32(18).bytes(message.txBytes);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSimulateRequest);\n message.txBytes = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.tx = tx_1.Tx.decode(reader, reader.uint32());\n break;\n case 2:\n message.txBytes = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseSimulateRequest);\n message.txBytes = new Uint8Array();\n if (object.tx !== undefined && object.tx !== null) {\n message.tx = tx_1.Tx.fromJSON(object.tx);\n }\n else {\n message.tx = undefined;\n }\n if (object.txBytes !== undefined && object.txBytes !== null) {\n message.txBytes = bytesFromBase64(object.txBytes);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.tx !== undefined && (obj.tx = message.tx ? tx_1.Tx.toJSON(message.tx) : undefined);\n message.txBytes !== undefined &&\n (obj.txBytes = base64FromBytes(message.txBytes !== undefined ? message.txBytes : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseSimulateRequest);\n if (object.tx !== undefined && object.tx !== null) {\n message.tx = tx_1.Tx.fromPartial(object.tx);\n }\n else {\n message.tx = undefined;\n }\n if (object.txBytes !== undefined && object.txBytes !== null) {\n message.txBytes = object.txBytes;\n }\n else {\n message.txBytes = new Uint8Array();\n }\n return message;\n },\n};\nconst baseSimulateResponse = {};\nexports.SimulateResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.gasInfo !== undefined) {\n abci_1.GasInfo.encode(message.gasInfo, writer.uint32(10).fork()).ldelim();\n }\n if (message.result !== undefined) {\n abci_1.Result.encode(message.result, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSimulateResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.gasInfo = abci_1.GasInfo.decode(reader, reader.uint32());\n break;\n case 2:\n message.result = abci_1.Result.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseSimulateResponse);\n if (object.gasInfo !== undefined && object.gasInfo !== null) {\n message.gasInfo = abci_1.GasInfo.fromJSON(object.gasInfo);\n }\n else {\n message.gasInfo = undefined;\n }\n if (object.result !== undefined && object.result !== null) {\n message.result = abci_1.Result.fromJSON(object.result);\n }\n else {\n message.result = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.gasInfo !== undefined &&\n (obj.gasInfo = message.gasInfo ? abci_1.GasInfo.toJSON(message.gasInfo) : undefined);\n message.result !== undefined && (obj.result = message.result ? abci_1.Result.toJSON(message.result) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseSimulateResponse);\n if (object.gasInfo !== undefined && object.gasInfo !== null) {\n message.gasInfo = abci_1.GasInfo.fromPartial(object.gasInfo);\n }\n else {\n message.gasInfo = undefined;\n }\n if (object.result !== undefined && object.result !== null) {\n message.result = abci_1.Result.fromPartial(object.result);\n }\n else {\n message.result = undefined;\n }\n return message;\n },\n};\nconst baseGetTxRequest = { hash: \"\" };\nexports.GetTxRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.hash !== \"\") {\n writer.uint32(10).string(message.hash);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseGetTxRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hash = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseGetTxRequest);\n if (object.hash !== undefined && object.hash !== null) {\n message.hash = String(object.hash);\n }\n else {\n message.hash = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.hash !== undefined && (obj.hash = message.hash);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseGetTxRequest);\n if (object.hash !== undefined && object.hash !== null) {\n message.hash = object.hash;\n }\n else {\n message.hash = \"\";\n }\n return message;\n },\n};\nconst baseGetTxResponse = {};\nexports.GetTxResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.tx !== undefined) {\n tx_1.Tx.encode(message.tx, writer.uint32(10).fork()).ldelim();\n }\n if (message.txResponse !== undefined) {\n abci_1.TxResponse.encode(message.txResponse, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseGetTxResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.tx = tx_1.Tx.decode(reader, reader.uint32());\n break;\n case 2:\n message.txResponse = abci_1.TxResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseGetTxResponse);\n if (object.tx !== undefined && object.tx !== null) {\n message.tx = tx_1.Tx.fromJSON(object.tx);\n }\n else {\n message.tx = undefined;\n }\n if (object.txResponse !== undefined && object.txResponse !== null) {\n message.txResponse = abci_1.TxResponse.fromJSON(object.txResponse);\n }\n else {\n message.txResponse = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.tx !== undefined && (obj.tx = message.tx ? tx_1.Tx.toJSON(message.tx) : undefined);\n message.txResponse !== undefined &&\n (obj.txResponse = message.txResponse ? abci_1.TxResponse.toJSON(message.txResponse) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseGetTxResponse);\n if (object.tx !== undefined && object.tx !== null) {\n message.tx = tx_1.Tx.fromPartial(object.tx);\n }\n else {\n message.tx = undefined;\n }\n if (object.txResponse !== undefined && object.txResponse !== null) {\n message.txResponse = abci_1.TxResponse.fromPartial(object.txResponse);\n }\n else {\n message.txResponse = undefined;\n }\n return message;\n },\n};\nclass ServiceClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Simulate = this.Simulate.bind(this);\n this.GetTx = this.GetTx.bind(this);\n this.BroadcastTx = this.BroadcastTx.bind(this);\n this.GetTxsEvent = this.GetTxsEvent.bind(this);\n }\n Simulate(request) {\n const data = exports.SimulateRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.tx.v1beta1.Service\", \"Simulate\", data);\n return promise.then((data) => exports.SimulateResponse.decode(new minimal_1.default.Reader(data)));\n }\n GetTx(request) {\n const data = exports.GetTxRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.tx.v1beta1.Service\", \"GetTx\", data);\n return promise.then((data) => exports.GetTxResponse.decode(new minimal_1.default.Reader(data)));\n }\n BroadcastTx(request) {\n const data = exports.BroadcastTxRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.tx.v1beta1.Service\", \"BroadcastTx\", data);\n return promise.then((data) => exports.BroadcastTxResponse.decode(new minimal_1.default.Reader(data)));\n }\n GetTxsEvent(request) {\n const data = exports.GetTxsEventRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.tx.v1beta1.Service\", \"GetTxsEvent\", data);\n return promise.then((data) => exports.GetTxsEventResponse.decode(new minimal_1.default.Reader(data)));\n }\n}\nexports.ServiceClientImpl = ServiceClientImpl;\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=service.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Fee = exports.ModeInfo_Multi = exports.ModeInfo_Single = exports.ModeInfo = exports.SignerInfo = exports.AuthInfo = exports.TxBody = exports.SignDoc = exports.TxRaw = exports.Tx = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst signing_1 = require(\"../../../cosmos/tx/signing/v1beta1/signing\");\nconst multisig_1 = require(\"../../../cosmos/crypto/multisig/v1beta1/multisig\");\nconst coin_1 = require(\"../../../cosmos/base/v1beta1/coin\");\nexports.protobufPackage = \"cosmos.tx.v1beta1\";\nconst baseTx = {};\nexports.Tx = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.body !== undefined) {\n exports.TxBody.encode(message.body, writer.uint32(10).fork()).ldelim();\n }\n if (message.authInfo !== undefined) {\n exports.AuthInfo.encode(message.authInfo, writer.uint32(18).fork()).ldelim();\n }\n for (const v of message.signatures) {\n writer.uint32(26).bytes(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseTx);\n message.signatures = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.body = exports.TxBody.decode(reader, reader.uint32());\n break;\n case 2:\n message.authInfo = exports.AuthInfo.decode(reader, reader.uint32());\n break;\n case 3:\n message.signatures.push(reader.bytes());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseTx);\n message.signatures = [];\n if (object.body !== undefined && object.body !== null) {\n message.body = exports.TxBody.fromJSON(object.body);\n }\n else {\n message.body = undefined;\n }\n if (object.authInfo !== undefined && object.authInfo !== null) {\n message.authInfo = exports.AuthInfo.fromJSON(object.authInfo);\n }\n else {\n message.authInfo = undefined;\n }\n if (object.signatures !== undefined && object.signatures !== null) {\n for (const e of object.signatures) {\n message.signatures.push(bytesFromBase64(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.body !== undefined && (obj.body = message.body ? exports.TxBody.toJSON(message.body) : undefined);\n message.authInfo !== undefined &&\n (obj.authInfo = message.authInfo ? exports.AuthInfo.toJSON(message.authInfo) : undefined);\n if (message.signatures) {\n obj.signatures = message.signatures.map((e) => base64FromBytes(e !== undefined ? e : new Uint8Array()));\n }\n else {\n obj.signatures = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseTx);\n message.signatures = [];\n if (object.body !== undefined && object.body !== null) {\n message.body = exports.TxBody.fromPartial(object.body);\n }\n else {\n message.body = undefined;\n }\n if (object.authInfo !== undefined && object.authInfo !== null) {\n message.authInfo = exports.AuthInfo.fromPartial(object.authInfo);\n }\n else {\n message.authInfo = undefined;\n }\n if (object.signatures !== undefined && object.signatures !== null) {\n for (const e of object.signatures) {\n message.signatures.push(e);\n }\n }\n return message;\n },\n};\nconst baseTxRaw = {};\nexports.TxRaw = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.bodyBytes.length !== 0) {\n writer.uint32(10).bytes(message.bodyBytes);\n }\n if (message.authInfoBytes.length !== 0) {\n writer.uint32(18).bytes(message.authInfoBytes);\n }\n for (const v of message.signatures) {\n writer.uint32(26).bytes(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseTxRaw);\n message.signatures = [];\n message.bodyBytes = new Uint8Array();\n message.authInfoBytes = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.bodyBytes = reader.bytes();\n break;\n case 2:\n message.authInfoBytes = reader.bytes();\n break;\n case 3:\n message.signatures.push(reader.bytes());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseTxRaw);\n message.signatures = [];\n message.bodyBytes = new Uint8Array();\n message.authInfoBytes = new Uint8Array();\n if (object.bodyBytes !== undefined && object.bodyBytes !== null) {\n message.bodyBytes = bytesFromBase64(object.bodyBytes);\n }\n if (object.authInfoBytes !== undefined && object.authInfoBytes !== null) {\n message.authInfoBytes = bytesFromBase64(object.authInfoBytes);\n }\n if (object.signatures !== undefined && object.signatures !== null) {\n for (const e of object.signatures) {\n message.signatures.push(bytesFromBase64(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.bodyBytes !== undefined &&\n (obj.bodyBytes = base64FromBytes(message.bodyBytes !== undefined ? message.bodyBytes : new Uint8Array()));\n message.authInfoBytes !== undefined &&\n (obj.authInfoBytes = base64FromBytes(message.authInfoBytes !== undefined ? message.authInfoBytes : new Uint8Array()));\n if (message.signatures) {\n obj.signatures = message.signatures.map((e) => base64FromBytes(e !== undefined ? e : new Uint8Array()));\n }\n else {\n obj.signatures = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseTxRaw);\n message.signatures = [];\n if (object.bodyBytes !== undefined && object.bodyBytes !== null) {\n message.bodyBytes = object.bodyBytes;\n }\n else {\n message.bodyBytes = new Uint8Array();\n }\n if (object.authInfoBytes !== undefined && object.authInfoBytes !== null) {\n message.authInfoBytes = object.authInfoBytes;\n }\n else {\n message.authInfoBytes = new Uint8Array();\n }\n if (object.signatures !== undefined && object.signatures !== null) {\n for (const e of object.signatures) {\n message.signatures.push(e);\n }\n }\n return message;\n },\n};\nconst baseSignDoc = { chainId: \"\", accountNumber: long_1.default.UZERO };\nexports.SignDoc = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.bodyBytes.length !== 0) {\n writer.uint32(10).bytes(message.bodyBytes);\n }\n if (message.authInfoBytes.length !== 0) {\n writer.uint32(18).bytes(message.authInfoBytes);\n }\n if (message.chainId !== \"\") {\n writer.uint32(26).string(message.chainId);\n }\n if (!message.accountNumber.isZero()) {\n writer.uint32(32).uint64(message.accountNumber);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSignDoc);\n message.bodyBytes = new Uint8Array();\n message.authInfoBytes = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.bodyBytes = reader.bytes();\n break;\n case 2:\n message.authInfoBytes = reader.bytes();\n break;\n case 3:\n message.chainId = reader.string();\n break;\n case 4:\n message.accountNumber = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseSignDoc);\n message.bodyBytes = new Uint8Array();\n message.authInfoBytes = new Uint8Array();\n if (object.bodyBytes !== undefined && object.bodyBytes !== null) {\n message.bodyBytes = bytesFromBase64(object.bodyBytes);\n }\n if (object.authInfoBytes !== undefined && object.authInfoBytes !== null) {\n message.authInfoBytes = bytesFromBase64(object.authInfoBytes);\n }\n if (object.chainId !== undefined && object.chainId !== null) {\n message.chainId = String(object.chainId);\n }\n else {\n message.chainId = \"\";\n }\n if (object.accountNumber !== undefined && object.accountNumber !== null) {\n message.accountNumber = long_1.default.fromString(object.accountNumber);\n }\n else {\n message.accountNumber = long_1.default.UZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.bodyBytes !== undefined &&\n (obj.bodyBytes = base64FromBytes(message.bodyBytes !== undefined ? message.bodyBytes : new Uint8Array()));\n message.authInfoBytes !== undefined &&\n (obj.authInfoBytes = base64FromBytes(message.authInfoBytes !== undefined ? message.authInfoBytes : new Uint8Array()));\n message.chainId !== undefined && (obj.chainId = message.chainId);\n message.accountNumber !== undefined &&\n (obj.accountNumber = (message.accountNumber || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseSignDoc);\n if (object.bodyBytes !== undefined && object.bodyBytes !== null) {\n message.bodyBytes = object.bodyBytes;\n }\n else {\n message.bodyBytes = new Uint8Array();\n }\n if (object.authInfoBytes !== undefined && object.authInfoBytes !== null) {\n message.authInfoBytes = object.authInfoBytes;\n }\n else {\n message.authInfoBytes = new Uint8Array();\n }\n if (object.chainId !== undefined && object.chainId !== null) {\n message.chainId = object.chainId;\n }\n else {\n message.chainId = \"\";\n }\n if (object.accountNumber !== undefined && object.accountNumber !== null) {\n message.accountNumber = object.accountNumber;\n }\n else {\n message.accountNumber = long_1.default.UZERO;\n }\n return message;\n },\n};\nconst baseTxBody = { memo: \"\", timeoutHeight: long_1.default.UZERO };\nexports.TxBody = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.messages) {\n any_1.Any.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.memo !== \"\") {\n writer.uint32(18).string(message.memo);\n }\n if (!message.timeoutHeight.isZero()) {\n writer.uint32(24).uint64(message.timeoutHeight);\n }\n for (const v of message.extensionOptions) {\n any_1.Any.encode(v, writer.uint32(8186).fork()).ldelim();\n }\n for (const v of message.nonCriticalExtensionOptions) {\n any_1.Any.encode(v, writer.uint32(16378).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseTxBody);\n message.messages = [];\n message.extensionOptions = [];\n message.nonCriticalExtensionOptions = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.messages.push(any_1.Any.decode(reader, reader.uint32()));\n break;\n case 2:\n message.memo = reader.string();\n break;\n case 3:\n message.timeoutHeight = reader.uint64();\n break;\n case 1023:\n message.extensionOptions.push(any_1.Any.decode(reader, reader.uint32()));\n break;\n case 2047:\n message.nonCriticalExtensionOptions.push(any_1.Any.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseTxBody);\n message.messages = [];\n message.extensionOptions = [];\n message.nonCriticalExtensionOptions = [];\n if (object.messages !== undefined && object.messages !== null) {\n for (const e of object.messages) {\n message.messages.push(any_1.Any.fromJSON(e));\n }\n }\n if (object.memo !== undefined && object.memo !== null) {\n message.memo = String(object.memo);\n }\n else {\n message.memo = \"\";\n }\n if (object.timeoutHeight !== undefined && object.timeoutHeight !== null) {\n message.timeoutHeight = long_1.default.fromString(object.timeoutHeight);\n }\n else {\n message.timeoutHeight = long_1.default.UZERO;\n }\n if (object.extensionOptions !== undefined && object.extensionOptions !== null) {\n for (const e of object.extensionOptions) {\n message.extensionOptions.push(any_1.Any.fromJSON(e));\n }\n }\n if (object.nonCriticalExtensionOptions !== undefined && object.nonCriticalExtensionOptions !== null) {\n for (const e of object.nonCriticalExtensionOptions) {\n message.nonCriticalExtensionOptions.push(any_1.Any.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.messages) {\n obj.messages = message.messages.map((e) => (e ? any_1.Any.toJSON(e) : undefined));\n }\n else {\n obj.messages = [];\n }\n message.memo !== undefined && (obj.memo = message.memo);\n message.timeoutHeight !== undefined &&\n (obj.timeoutHeight = (message.timeoutHeight || long_1.default.UZERO).toString());\n if (message.extensionOptions) {\n obj.extensionOptions = message.extensionOptions.map((e) => (e ? any_1.Any.toJSON(e) : undefined));\n }\n else {\n obj.extensionOptions = [];\n }\n if (message.nonCriticalExtensionOptions) {\n obj.nonCriticalExtensionOptions = message.nonCriticalExtensionOptions.map((e) => e ? any_1.Any.toJSON(e) : undefined);\n }\n else {\n obj.nonCriticalExtensionOptions = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseTxBody);\n message.messages = [];\n message.extensionOptions = [];\n message.nonCriticalExtensionOptions = [];\n if (object.messages !== undefined && object.messages !== null) {\n for (const e of object.messages) {\n message.messages.push(any_1.Any.fromPartial(e));\n }\n }\n if (object.memo !== undefined && object.memo !== null) {\n message.memo = object.memo;\n }\n else {\n message.memo = \"\";\n }\n if (object.timeoutHeight !== undefined && object.timeoutHeight !== null) {\n message.timeoutHeight = object.timeoutHeight;\n }\n else {\n message.timeoutHeight = long_1.default.UZERO;\n }\n if (object.extensionOptions !== undefined && object.extensionOptions !== null) {\n for (const e of object.extensionOptions) {\n message.extensionOptions.push(any_1.Any.fromPartial(e));\n }\n }\n if (object.nonCriticalExtensionOptions !== undefined && object.nonCriticalExtensionOptions !== null) {\n for (const e of object.nonCriticalExtensionOptions) {\n message.nonCriticalExtensionOptions.push(any_1.Any.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseAuthInfo = {};\nexports.AuthInfo = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.signerInfos) {\n exports.SignerInfo.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.fee !== undefined) {\n exports.Fee.encode(message.fee, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseAuthInfo);\n message.signerInfos = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.signerInfos.push(exports.SignerInfo.decode(reader, reader.uint32()));\n break;\n case 2:\n message.fee = exports.Fee.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseAuthInfo);\n message.signerInfos = [];\n if (object.signerInfos !== undefined && object.signerInfos !== null) {\n for (const e of object.signerInfos) {\n message.signerInfos.push(exports.SignerInfo.fromJSON(e));\n }\n }\n if (object.fee !== undefined && object.fee !== null) {\n message.fee = exports.Fee.fromJSON(object.fee);\n }\n else {\n message.fee = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.signerInfos) {\n obj.signerInfos = message.signerInfos.map((e) => (e ? exports.SignerInfo.toJSON(e) : undefined));\n }\n else {\n obj.signerInfos = [];\n }\n message.fee !== undefined && (obj.fee = message.fee ? exports.Fee.toJSON(message.fee) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseAuthInfo);\n message.signerInfos = [];\n if (object.signerInfos !== undefined && object.signerInfos !== null) {\n for (const e of object.signerInfos) {\n message.signerInfos.push(exports.SignerInfo.fromPartial(e));\n }\n }\n if (object.fee !== undefined && object.fee !== null) {\n message.fee = exports.Fee.fromPartial(object.fee);\n }\n else {\n message.fee = undefined;\n }\n return message;\n },\n};\nconst baseSignerInfo = { sequence: long_1.default.UZERO };\nexports.SignerInfo = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.publicKey !== undefined) {\n any_1.Any.encode(message.publicKey, writer.uint32(10).fork()).ldelim();\n }\n if (message.modeInfo !== undefined) {\n exports.ModeInfo.encode(message.modeInfo, writer.uint32(18).fork()).ldelim();\n }\n if (!message.sequence.isZero()) {\n writer.uint32(24).uint64(message.sequence);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSignerInfo);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.publicKey = any_1.Any.decode(reader, reader.uint32());\n break;\n case 2:\n message.modeInfo = exports.ModeInfo.decode(reader, reader.uint32());\n break;\n case 3:\n message.sequence = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseSignerInfo);\n if (object.publicKey !== undefined && object.publicKey !== null) {\n message.publicKey = any_1.Any.fromJSON(object.publicKey);\n }\n else {\n message.publicKey = undefined;\n }\n if (object.modeInfo !== undefined && object.modeInfo !== null) {\n message.modeInfo = exports.ModeInfo.fromJSON(object.modeInfo);\n }\n else {\n message.modeInfo = undefined;\n }\n if (object.sequence !== undefined && object.sequence !== null) {\n message.sequence = long_1.default.fromString(object.sequence);\n }\n else {\n message.sequence = long_1.default.UZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.publicKey !== undefined &&\n (obj.publicKey = message.publicKey ? any_1.Any.toJSON(message.publicKey) : undefined);\n message.modeInfo !== undefined &&\n (obj.modeInfo = message.modeInfo ? exports.ModeInfo.toJSON(message.modeInfo) : undefined);\n message.sequence !== undefined && (obj.sequence = (message.sequence || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseSignerInfo);\n if (object.publicKey !== undefined && object.publicKey !== null) {\n message.publicKey = any_1.Any.fromPartial(object.publicKey);\n }\n else {\n message.publicKey = undefined;\n }\n if (object.modeInfo !== undefined && object.modeInfo !== null) {\n message.modeInfo = exports.ModeInfo.fromPartial(object.modeInfo);\n }\n else {\n message.modeInfo = undefined;\n }\n if (object.sequence !== undefined && object.sequence !== null) {\n message.sequence = object.sequence;\n }\n else {\n message.sequence = long_1.default.UZERO;\n }\n return message;\n },\n};\nconst baseModeInfo = {};\nexports.ModeInfo = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.single !== undefined) {\n exports.ModeInfo_Single.encode(message.single, writer.uint32(10).fork()).ldelim();\n }\n if (message.multi !== undefined) {\n exports.ModeInfo_Multi.encode(message.multi, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseModeInfo);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.single = exports.ModeInfo_Single.decode(reader, reader.uint32());\n break;\n case 2:\n message.multi = exports.ModeInfo_Multi.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseModeInfo);\n if (object.single !== undefined && object.single !== null) {\n message.single = exports.ModeInfo_Single.fromJSON(object.single);\n }\n else {\n message.single = undefined;\n }\n if (object.multi !== undefined && object.multi !== null) {\n message.multi = exports.ModeInfo_Multi.fromJSON(object.multi);\n }\n else {\n message.multi = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.single !== undefined &&\n (obj.single = message.single ? exports.ModeInfo_Single.toJSON(message.single) : undefined);\n message.multi !== undefined &&\n (obj.multi = message.multi ? exports.ModeInfo_Multi.toJSON(message.multi) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseModeInfo);\n if (object.single !== undefined && object.single !== null) {\n message.single = exports.ModeInfo_Single.fromPartial(object.single);\n }\n else {\n message.single = undefined;\n }\n if (object.multi !== undefined && object.multi !== null) {\n message.multi = exports.ModeInfo_Multi.fromPartial(object.multi);\n }\n else {\n message.multi = undefined;\n }\n return message;\n },\n};\nconst baseModeInfo_Single = { mode: 0 };\nexports.ModeInfo_Single = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.mode !== 0) {\n writer.uint32(8).int32(message.mode);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseModeInfo_Single);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.mode = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseModeInfo_Single);\n if (object.mode !== undefined && object.mode !== null) {\n message.mode = signing_1.signModeFromJSON(object.mode);\n }\n else {\n message.mode = 0;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.mode !== undefined && (obj.mode = signing_1.signModeToJSON(message.mode));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseModeInfo_Single);\n if (object.mode !== undefined && object.mode !== null) {\n message.mode = object.mode;\n }\n else {\n message.mode = 0;\n }\n return message;\n },\n};\nconst baseModeInfo_Multi = {};\nexports.ModeInfo_Multi = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.bitarray !== undefined) {\n multisig_1.CompactBitArray.encode(message.bitarray, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.modeInfos) {\n exports.ModeInfo.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseModeInfo_Multi);\n message.modeInfos = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.bitarray = multisig_1.CompactBitArray.decode(reader, reader.uint32());\n break;\n case 2:\n message.modeInfos.push(exports.ModeInfo.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseModeInfo_Multi);\n message.modeInfos = [];\n if (object.bitarray !== undefined && object.bitarray !== null) {\n message.bitarray = multisig_1.CompactBitArray.fromJSON(object.bitarray);\n }\n else {\n message.bitarray = undefined;\n }\n if (object.modeInfos !== undefined && object.modeInfos !== null) {\n for (const e of object.modeInfos) {\n message.modeInfos.push(exports.ModeInfo.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.bitarray !== undefined &&\n (obj.bitarray = message.bitarray ? multisig_1.CompactBitArray.toJSON(message.bitarray) : undefined);\n if (message.modeInfos) {\n obj.modeInfos = message.modeInfos.map((e) => (e ? exports.ModeInfo.toJSON(e) : undefined));\n }\n else {\n obj.modeInfos = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseModeInfo_Multi);\n message.modeInfos = [];\n if (object.bitarray !== undefined && object.bitarray !== null) {\n message.bitarray = multisig_1.CompactBitArray.fromPartial(object.bitarray);\n }\n else {\n message.bitarray = undefined;\n }\n if (object.modeInfos !== undefined && object.modeInfos !== null) {\n for (const e of object.modeInfos) {\n message.modeInfos.push(exports.ModeInfo.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseFee = { gasLimit: long_1.default.UZERO, payer: \"\", granter: \"\" };\nexports.Fee = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.amount) {\n coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (!message.gasLimit.isZero()) {\n writer.uint32(16).uint64(message.gasLimit);\n }\n if (message.payer !== \"\") {\n writer.uint32(26).string(message.payer);\n }\n if (message.granter !== \"\") {\n writer.uint32(34).string(message.granter);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseFee);\n message.amount = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.amount.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 2:\n message.gasLimit = reader.uint64();\n break;\n case 3:\n message.payer = reader.string();\n break;\n case 4:\n message.granter = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseFee);\n message.amount = [];\n if (object.amount !== undefined && object.amount !== null) {\n for (const e of object.amount) {\n message.amount.push(coin_1.Coin.fromJSON(e));\n }\n }\n if (object.gasLimit !== undefined && object.gasLimit !== null) {\n message.gasLimit = long_1.default.fromString(object.gasLimit);\n }\n else {\n message.gasLimit = long_1.default.UZERO;\n }\n if (object.payer !== undefined && object.payer !== null) {\n message.payer = String(object.payer);\n }\n else {\n message.payer = \"\";\n }\n if (object.granter !== undefined && object.granter !== null) {\n message.granter = String(object.granter);\n }\n else {\n message.granter = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.amount = [];\n }\n message.gasLimit !== undefined && (obj.gasLimit = (message.gasLimit || long_1.default.UZERO).toString());\n message.payer !== undefined && (obj.payer = message.payer);\n message.granter !== undefined && (obj.granter = message.granter);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseFee);\n message.amount = [];\n if (object.amount !== undefined && object.amount !== null) {\n for (const e of object.amount) {\n message.amount.push(coin_1.Coin.fromPartial(e));\n }\n }\n if (object.gasLimit !== undefined && object.gasLimit !== null) {\n message.gasLimit = object.gasLimit;\n }\n else {\n message.gasLimit = long_1.default.UZERO;\n }\n if (object.payer !== undefined && object.payer !== null) {\n message.payer = object.payer;\n }\n else {\n message.payer = \"\";\n }\n if (object.granter !== undefined && object.granter !== null) {\n message.granter = object.granter;\n }\n else {\n message.granter = \"\";\n }\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=tx.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ModuleVersion = exports.CancelSoftwareUpgradeProposal = exports.SoftwareUpgradeProposal = exports.Plan = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst timestamp_1 = require(\"../../../google/protobuf/timestamp\");\nexports.protobufPackage = \"cosmos.upgrade.v1beta1\";\nconst basePlan = { name: \"\", height: long_1.default.ZERO, info: \"\" };\nexports.Plan = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.name !== \"\") {\n writer.uint32(10).string(message.name);\n }\n if (message.time !== undefined) {\n timestamp_1.Timestamp.encode(toTimestamp(message.time), writer.uint32(18).fork()).ldelim();\n }\n if (!message.height.isZero()) {\n writer.uint32(24).int64(message.height);\n }\n if (message.info !== \"\") {\n writer.uint32(34).string(message.info);\n }\n if (message.upgradedClientState !== undefined) {\n any_1.Any.encode(message.upgradedClientState, writer.uint32(42).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, basePlan);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.name = reader.string();\n break;\n case 2:\n message.time = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));\n break;\n case 3:\n message.height = reader.int64();\n break;\n case 4:\n message.info = reader.string();\n break;\n case 5:\n message.upgradedClientState = any_1.Any.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, basePlan);\n if (object.name !== undefined && object.name !== null) {\n message.name = String(object.name);\n }\n else {\n message.name = \"\";\n }\n if (object.time !== undefined && object.time !== null) {\n message.time = fromJsonTimestamp(object.time);\n }\n else {\n message.time = undefined;\n }\n if (object.height !== undefined && object.height !== null) {\n message.height = long_1.default.fromString(object.height);\n }\n else {\n message.height = long_1.default.ZERO;\n }\n if (object.info !== undefined && object.info !== null) {\n message.info = String(object.info);\n }\n else {\n message.info = \"\";\n }\n if (object.upgradedClientState !== undefined && object.upgradedClientState !== null) {\n message.upgradedClientState = any_1.Any.fromJSON(object.upgradedClientState);\n }\n else {\n message.upgradedClientState = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.name !== undefined && (obj.name = message.name);\n message.time !== undefined && (obj.time = message.time.toISOString());\n message.height !== undefined && (obj.height = (message.height || long_1.default.ZERO).toString());\n message.info !== undefined && (obj.info = message.info);\n message.upgradedClientState !== undefined &&\n (obj.upgradedClientState = message.upgradedClientState\n ? any_1.Any.toJSON(message.upgradedClientState)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, basePlan);\n if (object.name !== undefined && object.name !== null) {\n message.name = object.name;\n }\n else {\n message.name = \"\";\n }\n if (object.time !== undefined && object.time !== null) {\n message.time = object.time;\n }\n else {\n message.time = undefined;\n }\n if (object.height !== undefined && object.height !== null) {\n message.height = object.height;\n }\n else {\n message.height = long_1.default.ZERO;\n }\n if (object.info !== undefined && object.info !== null) {\n message.info = object.info;\n }\n else {\n message.info = \"\";\n }\n if (object.upgradedClientState !== undefined && object.upgradedClientState !== null) {\n message.upgradedClientState = any_1.Any.fromPartial(object.upgradedClientState);\n }\n else {\n message.upgradedClientState = undefined;\n }\n return message;\n },\n};\nconst baseSoftwareUpgradeProposal = { title: \"\", description: \"\" };\nexports.SoftwareUpgradeProposal = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.title !== \"\") {\n writer.uint32(10).string(message.title);\n }\n if (message.description !== \"\") {\n writer.uint32(18).string(message.description);\n }\n if (message.plan !== undefined) {\n exports.Plan.encode(message.plan, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSoftwareUpgradeProposal);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.title = reader.string();\n break;\n case 2:\n message.description = reader.string();\n break;\n case 3:\n message.plan = exports.Plan.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseSoftwareUpgradeProposal);\n if (object.title !== undefined && object.title !== null) {\n message.title = String(object.title);\n }\n else {\n message.title = \"\";\n }\n if (object.description !== undefined && object.description !== null) {\n message.description = String(object.description);\n }\n else {\n message.description = \"\";\n }\n if (object.plan !== undefined && object.plan !== null) {\n message.plan = exports.Plan.fromJSON(object.plan);\n }\n else {\n message.plan = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.title !== undefined && (obj.title = message.title);\n message.description !== undefined && (obj.description = message.description);\n message.plan !== undefined && (obj.plan = message.plan ? exports.Plan.toJSON(message.plan) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseSoftwareUpgradeProposal);\n if (object.title !== undefined && object.title !== null) {\n message.title = object.title;\n }\n else {\n message.title = \"\";\n }\n if (object.description !== undefined && object.description !== null) {\n message.description = object.description;\n }\n else {\n message.description = \"\";\n }\n if (object.plan !== undefined && object.plan !== null) {\n message.plan = exports.Plan.fromPartial(object.plan);\n }\n else {\n message.plan = undefined;\n }\n return message;\n },\n};\nconst baseCancelSoftwareUpgradeProposal = { title: \"\", description: \"\" };\nexports.CancelSoftwareUpgradeProposal = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.title !== \"\") {\n writer.uint32(10).string(message.title);\n }\n if (message.description !== \"\") {\n writer.uint32(18).string(message.description);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseCancelSoftwareUpgradeProposal);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.title = reader.string();\n break;\n case 2:\n message.description = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseCancelSoftwareUpgradeProposal);\n if (object.title !== undefined && object.title !== null) {\n message.title = String(object.title);\n }\n else {\n message.title = \"\";\n }\n if (object.description !== undefined && object.description !== null) {\n message.description = String(object.description);\n }\n else {\n message.description = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.title !== undefined && (obj.title = message.title);\n message.description !== undefined && (obj.description = message.description);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseCancelSoftwareUpgradeProposal);\n if (object.title !== undefined && object.title !== null) {\n message.title = object.title;\n }\n else {\n message.title = \"\";\n }\n if (object.description !== undefined && object.description !== null) {\n message.description = object.description;\n }\n else {\n message.description = \"\";\n }\n return message;\n },\n};\nconst baseModuleVersion = { name: \"\", version: long_1.default.UZERO };\nexports.ModuleVersion = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.name !== \"\") {\n writer.uint32(10).string(message.name);\n }\n if (!message.version.isZero()) {\n writer.uint32(16).uint64(message.version);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseModuleVersion);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.name = reader.string();\n break;\n case 2:\n message.version = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseModuleVersion);\n if (object.name !== undefined && object.name !== null) {\n message.name = String(object.name);\n }\n else {\n message.name = \"\";\n }\n if (object.version !== undefined && object.version !== null) {\n message.version = long_1.default.fromString(object.version);\n }\n else {\n message.version = long_1.default.UZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.name !== undefined && (obj.name = message.name);\n message.version !== undefined && (obj.version = (message.version || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseModuleVersion);\n if (object.name !== undefined && object.name !== null) {\n message.name = object.name;\n }\n else {\n message.name = \"\";\n }\n if (object.version !== undefined && object.version !== null) {\n message.version = object.version;\n }\n else {\n message.version = long_1.default.UZERO;\n }\n return message;\n },\n};\nfunction toTimestamp(date) {\n const seconds = numberToLong(date.getTime() / 1000);\n const nanos = (date.getTime() % 1000) * 1000000;\n return { seconds, nanos };\n}\nfunction fromTimestamp(t) {\n let millis = t.seconds.toNumber() * 1000;\n millis += t.nanos / 1000000;\n return new Date(millis);\n}\nfunction fromJsonTimestamp(o) {\n if (o instanceof Date) {\n return o;\n }\n else if (typeof o === \"string\") {\n return new Date(o);\n }\n else {\n return fromTimestamp(timestamp_1.Timestamp.fromJSON(o));\n }\n}\nfunction numberToLong(number) {\n return long_1.default.fromNumber(number);\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=upgrade.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BaseVestingAccount = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst auth_1 = require(\"../../../cosmos/auth/v1beta1/auth\");\nconst coin_1 = require(\"../../../cosmos/base/v1beta1/coin\");\nexports.protobufPackage = \"cosmos.vesting.v1beta1\";\nconst baseBaseVestingAccount = { endTime: long_1.default.ZERO };\nexports.BaseVestingAccount = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.baseAccount !== undefined) {\n auth_1.BaseAccount.encode(message.baseAccount, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.originalVesting) {\n coin_1.Coin.encode(v, writer.uint32(18).fork()).ldelim();\n }\n for (const v of message.delegatedFree) {\n coin_1.Coin.encode(v, writer.uint32(26).fork()).ldelim();\n }\n for (const v of message.delegatedVesting) {\n coin_1.Coin.encode(v, writer.uint32(34).fork()).ldelim();\n }\n if (!message.endTime.isZero()) {\n writer.uint32(40).int64(message.endTime);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseBaseVestingAccount);\n message.originalVesting = [];\n message.delegatedFree = [];\n message.delegatedVesting = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.baseAccount = auth_1.BaseAccount.decode(reader, reader.uint32());\n break;\n case 2:\n message.originalVesting.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 3:\n message.delegatedFree.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 4:\n message.delegatedVesting.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 5:\n message.endTime = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseBaseVestingAccount);\n message.originalVesting = [];\n message.delegatedFree = [];\n message.delegatedVesting = [];\n if (object.baseAccount !== undefined && object.baseAccount !== null) {\n message.baseAccount = auth_1.BaseAccount.fromJSON(object.baseAccount);\n }\n else {\n message.baseAccount = undefined;\n }\n if (object.originalVesting !== undefined && object.originalVesting !== null) {\n for (const e of object.originalVesting) {\n message.originalVesting.push(coin_1.Coin.fromJSON(e));\n }\n }\n if (object.delegatedFree !== undefined && object.delegatedFree !== null) {\n for (const e of object.delegatedFree) {\n message.delegatedFree.push(coin_1.Coin.fromJSON(e));\n }\n }\n if (object.delegatedVesting !== undefined && object.delegatedVesting !== null) {\n for (const e of object.delegatedVesting) {\n message.delegatedVesting.push(coin_1.Coin.fromJSON(e));\n }\n }\n if (object.endTime !== undefined && object.endTime !== null) {\n message.endTime = long_1.default.fromString(object.endTime);\n }\n else {\n message.endTime = long_1.default.ZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.baseAccount !== undefined &&\n (obj.baseAccount = message.baseAccount ? auth_1.BaseAccount.toJSON(message.baseAccount) : undefined);\n if (message.originalVesting) {\n obj.originalVesting = message.originalVesting.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.originalVesting = [];\n }\n if (message.delegatedFree) {\n obj.delegatedFree = message.delegatedFree.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.delegatedFree = [];\n }\n if (message.delegatedVesting) {\n obj.delegatedVesting = message.delegatedVesting.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.delegatedVesting = [];\n }\n message.endTime !== undefined && (obj.endTime = (message.endTime || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseBaseVestingAccount);\n message.originalVesting = [];\n message.delegatedFree = [];\n message.delegatedVesting = [];\n if (object.baseAccount !== undefined && object.baseAccount !== null) {\n message.baseAccount = auth_1.BaseAccount.fromPartial(object.baseAccount);\n }\n else {\n message.baseAccount = undefined;\n }\n if (object.originalVesting !== undefined && object.originalVesting !== null) {\n for (const e of object.originalVesting) {\n message.originalVesting.push(coin_1.Coin.fromPartial(e));\n }\n }\n if (object.delegatedFree !== undefined && object.delegatedFree !== null) {\n for (const e of object.delegatedFree) {\n message.delegatedFree.push(coin_1.Coin.fromPartial(e));\n }\n }\n if (object.delegatedVesting !== undefined && object.delegatedVesting !== null) {\n for (const e of object.delegatedVesting) {\n message.delegatedVesting.push(coin_1.Coin.fromPartial(e));\n }\n }\n if (object.endTime !== undefined && object.endTime !== null) {\n message.endTime = object.endTime;\n }\n else {\n message.endTime = long_1.default.ZERO;\n }\n return message;\n },\n};\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=vesting.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Any = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nexports.protobufPackage = \"google.protobuf\";\nconst baseAny = { typeUrl: \"\" };\nexports.Any = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.typeUrl !== \"\") {\n writer.uint32(10).string(message.typeUrl);\n }\n if (message.value.length !== 0) {\n writer.uint32(18).bytes(message.value);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseAny);\n message.value = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.typeUrl = reader.string();\n break;\n case 2:\n message.value = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseAny);\n message.value = new Uint8Array();\n if (object.typeUrl !== undefined && object.typeUrl !== null) {\n message.typeUrl = String(object.typeUrl);\n }\n else {\n message.typeUrl = \"\";\n }\n if (object.value !== undefined && object.value !== null) {\n message.value = bytesFromBase64(object.value);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.typeUrl !== undefined && (obj.typeUrl = message.typeUrl);\n message.value !== undefined &&\n (obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseAny);\n if (object.typeUrl !== undefined && object.typeUrl !== null) {\n message.typeUrl = object.typeUrl;\n }\n else {\n message.typeUrl = \"\";\n }\n if (object.value !== undefined && object.value !== null) {\n message.value = object.value;\n }\n else {\n message.value = new Uint8Array();\n }\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=any.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Duration = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nexports.protobufPackage = \"google.protobuf\";\nconst baseDuration = { seconds: long_1.default.ZERO, nanos: 0 };\nexports.Duration = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.seconds.isZero()) {\n writer.uint32(8).int64(message.seconds);\n }\n if (message.nanos !== 0) {\n writer.uint32(16).int32(message.nanos);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDuration);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.seconds = reader.int64();\n break;\n case 2:\n message.nanos = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseDuration);\n if (object.seconds !== undefined && object.seconds !== null) {\n message.seconds = long_1.default.fromString(object.seconds);\n }\n else {\n message.seconds = long_1.default.ZERO;\n }\n if (object.nanos !== undefined && object.nanos !== null) {\n message.nanos = Number(object.nanos);\n }\n else {\n message.nanos = 0;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.seconds !== undefined && (obj.seconds = (message.seconds || long_1.default.ZERO).toString());\n message.nanos !== undefined && (obj.nanos = message.nanos);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseDuration);\n if (object.seconds !== undefined && object.seconds !== null) {\n message.seconds = object.seconds;\n }\n else {\n message.seconds = long_1.default.ZERO;\n }\n if (object.nanos !== undefined && object.nanos !== null) {\n message.nanos = object.nanos;\n }\n else {\n message.nanos = 0;\n }\n return message;\n },\n};\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=duration.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Timestamp = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nexports.protobufPackage = \"google.protobuf\";\nconst baseTimestamp = { seconds: long_1.default.ZERO, nanos: 0 };\nexports.Timestamp = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.seconds.isZero()) {\n writer.uint32(8).int64(message.seconds);\n }\n if (message.nanos !== 0) {\n writer.uint32(16).int32(message.nanos);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseTimestamp);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.seconds = reader.int64();\n break;\n case 2:\n message.nanos = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseTimestamp);\n if (object.seconds !== undefined && object.seconds !== null) {\n message.seconds = long_1.default.fromString(object.seconds);\n }\n else {\n message.seconds = long_1.default.ZERO;\n }\n if (object.nanos !== undefined && object.nanos !== null) {\n message.nanos = Number(object.nanos);\n }\n else {\n message.nanos = 0;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.seconds !== undefined && (obj.seconds = (message.seconds || long_1.default.ZERO).toString());\n message.nanos !== undefined && (obj.nanos = message.nanos);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseTimestamp);\n if (object.seconds !== undefined && object.seconds !== null) {\n message.seconds = object.seconds;\n }\n else {\n message.seconds = long_1.default.ZERO;\n }\n if (object.nanos !== undefined && object.nanos !== null) {\n message.nanos = object.nanos;\n }\n else {\n message.nanos = 0;\n }\n return message;\n },\n};\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=timestamp.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Params = exports.DenomTrace = exports.FungibleTokenPacketData = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nexports.protobufPackage = \"ibc.applications.transfer.v1\";\nconst baseFungibleTokenPacketData = { denom: \"\", amount: long_1.default.UZERO, sender: \"\", receiver: \"\" };\nexports.FungibleTokenPacketData = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.denom !== \"\") {\n writer.uint32(10).string(message.denom);\n }\n if (!message.amount.isZero()) {\n writer.uint32(16).uint64(message.amount);\n }\n if (message.sender !== \"\") {\n writer.uint32(26).string(message.sender);\n }\n if (message.receiver !== \"\") {\n writer.uint32(34).string(message.receiver);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseFungibleTokenPacketData);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.denom = reader.string();\n break;\n case 2:\n message.amount = reader.uint64();\n break;\n case 3:\n message.sender = reader.string();\n break;\n case 4:\n message.receiver = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseFungibleTokenPacketData);\n if (object.denom !== undefined && object.denom !== null) {\n message.denom = String(object.denom);\n }\n else {\n message.denom = \"\";\n }\n if (object.amount !== undefined && object.amount !== null) {\n message.amount = long_1.default.fromString(object.amount);\n }\n else {\n message.amount = long_1.default.UZERO;\n }\n if (object.sender !== undefined && object.sender !== null) {\n message.sender = String(object.sender);\n }\n else {\n message.sender = \"\";\n }\n if (object.receiver !== undefined && object.receiver !== null) {\n message.receiver = String(object.receiver);\n }\n else {\n message.receiver = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.denom !== undefined && (obj.denom = message.denom);\n message.amount !== undefined && (obj.amount = (message.amount || long_1.default.UZERO).toString());\n message.sender !== undefined && (obj.sender = message.sender);\n message.receiver !== undefined && (obj.receiver = message.receiver);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseFungibleTokenPacketData);\n if (object.denom !== undefined && object.denom !== null) {\n message.denom = object.denom;\n }\n else {\n message.denom = \"\";\n }\n if (object.amount !== undefined && object.amount !== null) {\n message.amount = object.amount;\n }\n else {\n message.amount = long_1.default.UZERO;\n }\n if (object.sender !== undefined && object.sender !== null) {\n message.sender = object.sender;\n }\n else {\n message.sender = \"\";\n }\n if (object.receiver !== undefined && object.receiver !== null) {\n message.receiver = object.receiver;\n }\n else {\n message.receiver = \"\";\n }\n return message;\n },\n};\nconst baseDenomTrace = { path: \"\", baseDenom: \"\" };\nexports.DenomTrace = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.path !== \"\") {\n writer.uint32(10).string(message.path);\n }\n if (message.baseDenom !== \"\") {\n writer.uint32(18).string(message.baseDenom);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDenomTrace);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.path = reader.string();\n break;\n case 2:\n message.baseDenom = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseDenomTrace);\n if (object.path !== undefined && object.path !== null) {\n message.path = String(object.path);\n }\n else {\n message.path = \"\";\n }\n if (object.baseDenom !== undefined && object.baseDenom !== null) {\n message.baseDenom = String(object.baseDenom);\n }\n else {\n message.baseDenom = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.path !== undefined && (obj.path = message.path);\n message.baseDenom !== undefined && (obj.baseDenom = message.baseDenom);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseDenomTrace);\n if (object.path !== undefined && object.path !== null) {\n message.path = object.path;\n }\n else {\n message.path = \"\";\n }\n if (object.baseDenom !== undefined && object.baseDenom !== null) {\n message.baseDenom = object.baseDenom;\n }\n else {\n message.baseDenom = \"\";\n }\n return message;\n },\n};\nconst baseParams = { sendEnabled: false, receiveEnabled: false };\nexports.Params = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.sendEnabled === true) {\n writer.uint32(8).bool(message.sendEnabled);\n }\n if (message.receiveEnabled === true) {\n writer.uint32(16).bool(message.receiveEnabled);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseParams);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sendEnabled = reader.bool();\n break;\n case 2:\n message.receiveEnabled = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseParams);\n if (object.sendEnabled !== undefined && object.sendEnabled !== null) {\n message.sendEnabled = Boolean(object.sendEnabled);\n }\n else {\n message.sendEnabled = false;\n }\n if (object.receiveEnabled !== undefined && object.receiveEnabled !== null) {\n message.receiveEnabled = Boolean(object.receiveEnabled);\n }\n else {\n message.receiveEnabled = false;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.sendEnabled !== undefined && (obj.sendEnabled = message.sendEnabled);\n message.receiveEnabled !== undefined && (obj.receiveEnabled = message.receiveEnabled);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseParams);\n if (object.sendEnabled !== undefined && object.sendEnabled !== null) {\n message.sendEnabled = object.sendEnabled;\n }\n else {\n message.sendEnabled = false;\n }\n if (object.receiveEnabled !== undefined && object.receiveEnabled !== null) {\n message.receiveEnabled = object.receiveEnabled;\n }\n else {\n message.receiveEnabled = false;\n }\n return message;\n },\n};\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=transfer.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ABCIApplicationClientImpl = exports.Snapshot = exports.Evidence = exports.VoteInfo = exports.ValidatorUpdate = exports.Validator = exports.TxResult = exports.EventAttribute = exports.Event = exports.LastCommitInfo = exports.BlockParams = exports.ConsensusParams = exports.ResponseApplySnapshotChunk = exports.ResponseLoadSnapshotChunk = exports.ResponseOfferSnapshot = exports.ResponseListSnapshots = exports.ResponseCommit = exports.ResponseEndBlock = exports.ResponseDeliverTx = exports.ResponseCheckTx = exports.ResponseBeginBlock = exports.ResponseQuery = exports.ResponseInitChain = exports.ResponseSetOption = exports.ResponseInfo = exports.ResponseFlush = exports.ResponseEcho = exports.ResponseException = exports.Response = exports.RequestApplySnapshotChunk = exports.RequestLoadSnapshotChunk = exports.RequestOfferSnapshot = exports.RequestListSnapshots = exports.RequestCommit = exports.RequestEndBlock = exports.RequestDeliverTx = exports.RequestCheckTx = exports.RequestBeginBlock = exports.RequestQuery = exports.RequestInitChain = exports.RequestSetOption = exports.RequestInfo = exports.RequestFlush = exports.RequestEcho = exports.Request = exports.responseApplySnapshotChunk_ResultToJSON = exports.responseApplySnapshotChunk_ResultFromJSON = exports.ResponseApplySnapshotChunk_Result = exports.responseOfferSnapshot_ResultToJSON = exports.responseOfferSnapshot_ResultFromJSON = exports.ResponseOfferSnapshot_Result = exports.evidenceTypeToJSON = exports.evidenceTypeFromJSON = exports.EvidenceType = exports.checkTxTypeToJSON = exports.checkTxTypeFromJSON = exports.CheckTxType = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst types_1 = require(\"../../tendermint/types/types\");\nconst proof_1 = require(\"../../tendermint/crypto/proof\");\nconst params_1 = require(\"../../tendermint/types/params\");\nconst keys_1 = require(\"../../tendermint/crypto/keys\");\nconst timestamp_1 = require(\"../../google/protobuf/timestamp\");\nexports.protobufPackage = \"tendermint.abci\";\nvar CheckTxType;\n(function (CheckTxType) {\n CheckTxType[CheckTxType[\"NEW\"] = 0] = \"NEW\";\n CheckTxType[CheckTxType[\"RECHECK\"] = 1] = \"RECHECK\";\n CheckTxType[CheckTxType[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(CheckTxType = exports.CheckTxType || (exports.CheckTxType = {}));\nfunction checkTxTypeFromJSON(object) {\n switch (object) {\n case 0:\n case \"NEW\":\n return CheckTxType.NEW;\n case 1:\n case \"RECHECK\":\n return CheckTxType.RECHECK;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return CheckTxType.UNRECOGNIZED;\n }\n}\nexports.checkTxTypeFromJSON = checkTxTypeFromJSON;\nfunction checkTxTypeToJSON(object) {\n switch (object) {\n case CheckTxType.NEW:\n return \"NEW\";\n case CheckTxType.RECHECK:\n return \"RECHECK\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.checkTxTypeToJSON = checkTxTypeToJSON;\nvar EvidenceType;\n(function (EvidenceType) {\n EvidenceType[EvidenceType[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n EvidenceType[EvidenceType[\"DUPLICATE_VOTE\"] = 1] = \"DUPLICATE_VOTE\";\n EvidenceType[EvidenceType[\"LIGHT_CLIENT_ATTACK\"] = 2] = \"LIGHT_CLIENT_ATTACK\";\n EvidenceType[EvidenceType[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(EvidenceType = exports.EvidenceType || (exports.EvidenceType = {}));\nfunction evidenceTypeFromJSON(object) {\n switch (object) {\n case 0:\n case \"UNKNOWN\":\n return EvidenceType.UNKNOWN;\n case 1:\n case \"DUPLICATE_VOTE\":\n return EvidenceType.DUPLICATE_VOTE;\n case 2:\n case \"LIGHT_CLIENT_ATTACK\":\n return EvidenceType.LIGHT_CLIENT_ATTACK;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return EvidenceType.UNRECOGNIZED;\n }\n}\nexports.evidenceTypeFromJSON = evidenceTypeFromJSON;\nfunction evidenceTypeToJSON(object) {\n switch (object) {\n case EvidenceType.UNKNOWN:\n return \"UNKNOWN\";\n case EvidenceType.DUPLICATE_VOTE:\n return \"DUPLICATE_VOTE\";\n case EvidenceType.LIGHT_CLIENT_ATTACK:\n return \"LIGHT_CLIENT_ATTACK\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.evidenceTypeToJSON = evidenceTypeToJSON;\nvar ResponseOfferSnapshot_Result;\n(function (ResponseOfferSnapshot_Result) {\n /** UNKNOWN - Unknown result, abort all snapshot restoration */\n ResponseOfferSnapshot_Result[ResponseOfferSnapshot_Result[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n /** ACCEPT - Snapshot accepted, apply chunks */\n ResponseOfferSnapshot_Result[ResponseOfferSnapshot_Result[\"ACCEPT\"] = 1] = \"ACCEPT\";\n /** ABORT - Abort all snapshot restoration */\n ResponseOfferSnapshot_Result[ResponseOfferSnapshot_Result[\"ABORT\"] = 2] = \"ABORT\";\n /** REJECT - Reject this specific snapshot, try others */\n ResponseOfferSnapshot_Result[ResponseOfferSnapshot_Result[\"REJECT\"] = 3] = \"REJECT\";\n /** REJECT_FORMAT - Reject all snapshots of this format, try others */\n ResponseOfferSnapshot_Result[ResponseOfferSnapshot_Result[\"REJECT_FORMAT\"] = 4] = \"REJECT_FORMAT\";\n /** REJECT_SENDER - Reject all snapshots from the sender(s), try others */\n ResponseOfferSnapshot_Result[ResponseOfferSnapshot_Result[\"REJECT_SENDER\"] = 5] = \"REJECT_SENDER\";\n ResponseOfferSnapshot_Result[ResponseOfferSnapshot_Result[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(ResponseOfferSnapshot_Result = exports.ResponseOfferSnapshot_Result || (exports.ResponseOfferSnapshot_Result = {}));\nfunction responseOfferSnapshot_ResultFromJSON(object) {\n switch (object) {\n case 0:\n case \"UNKNOWN\":\n return ResponseOfferSnapshot_Result.UNKNOWN;\n case 1:\n case \"ACCEPT\":\n return ResponseOfferSnapshot_Result.ACCEPT;\n case 2:\n case \"ABORT\":\n return ResponseOfferSnapshot_Result.ABORT;\n case 3:\n case \"REJECT\":\n return ResponseOfferSnapshot_Result.REJECT;\n case 4:\n case \"REJECT_FORMAT\":\n return ResponseOfferSnapshot_Result.REJECT_FORMAT;\n case 5:\n case \"REJECT_SENDER\":\n return ResponseOfferSnapshot_Result.REJECT_SENDER;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return ResponseOfferSnapshot_Result.UNRECOGNIZED;\n }\n}\nexports.responseOfferSnapshot_ResultFromJSON = responseOfferSnapshot_ResultFromJSON;\nfunction responseOfferSnapshot_ResultToJSON(object) {\n switch (object) {\n case ResponseOfferSnapshot_Result.UNKNOWN:\n return \"UNKNOWN\";\n case ResponseOfferSnapshot_Result.ACCEPT:\n return \"ACCEPT\";\n case ResponseOfferSnapshot_Result.ABORT:\n return \"ABORT\";\n case ResponseOfferSnapshot_Result.REJECT:\n return \"REJECT\";\n case ResponseOfferSnapshot_Result.REJECT_FORMAT:\n return \"REJECT_FORMAT\";\n case ResponseOfferSnapshot_Result.REJECT_SENDER:\n return \"REJECT_SENDER\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.responseOfferSnapshot_ResultToJSON = responseOfferSnapshot_ResultToJSON;\nvar ResponseApplySnapshotChunk_Result;\n(function (ResponseApplySnapshotChunk_Result) {\n /** UNKNOWN - Unknown result, abort all snapshot restoration */\n ResponseApplySnapshotChunk_Result[ResponseApplySnapshotChunk_Result[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n /** ACCEPT - Chunk successfully accepted */\n ResponseApplySnapshotChunk_Result[ResponseApplySnapshotChunk_Result[\"ACCEPT\"] = 1] = \"ACCEPT\";\n /** ABORT - Abort all snapshot restoration */\n ResponseApplySnapshotChunk_Result[ResponseApplySnapshotChunk_Result[\"ABORT\"] = 2] = \"ABORT\";\n /** RETRY - Retry chunk (combine with refetch and reject) */\n ResponseApplySnapshotChunk_Result[ResponseApplySnapshotChunk_Result[\"RETRY\"] = 3] = \"RETRY\";\n /** RETRY_SNAPSHOT - Retry snapshot (combine with refetch and reject) */\n ResponseApplySnapshotChunk_Result[ResponseApplySnapshotChunk_Result[\"RETRY_SNAPSHOT\"] = 4] = \"RETRY_SNAPSHOT\";\n /** REJECT_SNAPSHOT - Reject this snapshot, try others */\n ResponseApplySnapshotChunk_Result[ResponseApplySnapshotChunk_Result[\"REJECT_SNAPSHOT\"] = 5] = \"REJECT_SNAPSHOT\";\n ResponseApplySnapshotChunk_Result[ResponseApplySnapshotChunk_Result[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(ResponseApplySnapshotChunk_Result = exports.ResponseApplySnapshotChunk_Result || (exports.ResponseApplySnapshotChunk_Result = {}));\nfunction responseApplySnapshotChunk_ResultFromJSON(object) {\n switch (object) {\n case 0:\n case \"UNKNOWN\":\n return ResponseApplySnapshotChunk_Result.UNKNOWN;\n case 1:\n case \"ACCEPT\":\n return ResponseApplySnapshotChunk_Result.ACCEPT;\n case 2:\n case \"ABORT\":\n return ResponseApplySnapshotChunk_Result.ABORT;\n case 3:\n case \"RETRY\":\n return ResponseApplySnapshotChunk_Result.RETRY;\n case 4:\n case \"RETRY_SNAPSHOT\":\n return ResponseApplySnapshotChunk_Result.RETRY_SNAPSHOT;\n case 5:\n case \"REJECT_SNAPSHOT\":\n return ResponseApplySnapshotChunk_Result.REJECT_SNAPSHOT;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return ResponseApplySnapshotChunk_Result.UNRECOGNIZED;\n }\n}\nexports.responseApplySnapshotChunk_ResultFromJSON = responseApplySnapshotChunk_ResultFromJSON;\nfunction responseApplySnapshotChunk_ResultToJSON(object) {\n switch (object) {\n case ResponseApplySnapshotChunk_Result.UNKNOWN:\n return \"UNKNOWN\";\n case ResponseApplySnapshotChunk_Result.ACCEPT:\n return \"ACCEPT\";\n case ResponseApplySnapshotChunk_Result.ABORT:\n return \"ABORT\";\n case ResponseApplySnapshotChunk_Result.RETRY:\n return \"RETRY\";\n case ResponseApplySnapshotChunk_Result.RETRY_SNAPSHOT:\n return \"RETRY_SNAPSHOT\";\n case ResponseApplySnapshotChunk_Result.REJECT_SNAPSHOT:\n return \"REJECT_SNAPSHOT\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.responseApplySnapshotChunk_ResultToJSON = responseApplySnapshotChunk_ResultToJSON;\nconst baseRequest = {};\nexports.Request = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.echo !== undefined) {\n exports.RequestEcho.encode(message.echo, writer.uint32(10).fork()).ldelim();\n }\n if (message.flush !== undefined) {\n exports.RequestFlush.encode(message.flush, writer.uint32(18).fork()).ldelim();\n }\n if (message.info !== undefined) {\n exports.RequestInfo.encode(message.info, writer.uint32(26).fork()).ldelim();\n }\n if (message.setOption !== undefined) {\n exports.RequestSetOption.encode(message.setOption, writer.uint32(34).fork()).ldelim();\n }\n if (message.initChain !== undefined) {\n exports.RequestInitChain.encode(message.initChain, writer.uint32(42).fork()).ldelim();\n }\n if (message.query !== undefined) {\n exports.RequestQuery.encode(message.query, writer.uint32(50).fork()).ldelim();\n }\n if (message.beginBlock !== undefined) {\n exports.RequestBeginBlock.encode(message.beginBlock, writer.uint32(58).fork()).ldelim();\n }\n if (message.checkTx !== undefined) {\n exports.RequestCheckTx.encode(message.checkTx, writer.uint32(66).fork()).ldelim();\n }\n if (message.deliverTx !== undefined) {\n exports.RequestDeliverTx.encode(message.deliverTx, writer.uint32(74).fork()).ldelim();\n }\n if (message.endBlock !== undefined) {\n exports.RequestEndBlock.encode(message.endBlock, writer.uint32(82).fork()).ldelim();\n }\n if (message.commit !== undefined) {\n exports.RequestCommit.encode(message.commit, writer.uint32(90).fork()).ldelim();\n }\n if (message.listSnapshots !== undefined) {\n exports.RequestListSnapshots.encode(message.listSnapshots, writer.uint32(98).fork()).ldelim();\n }\n if (message.offerSnapshot !== undefined) {\n exports.RequestOfferSnapshot.encode(message.offerSnapshot, writer.uint32(106).fork()).ldelim();\n }\n if (message.loadSnapshotChunk !== undefined) {\n exports.RequestLoadSnapshotChunk.encode(message.loadSnapshotChunk, writer.uint32(114).fork()).ldelim();\n }\n if (message.applySnapshotChunk !== undefined) {\n exports.RequestApplySnapshotChunk.encode(message.applySnapshotChunk, writer.uint32(122).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.echo = exports.RequestEcho.decode(reader, reader.uint32());\n break;\n case 2:\n message.flush = exports.RequestFlush.decode(reader, reader.uint32());\n break;\n case 3:\n message.info = exports.RequestInfo.decode(reader, reader.uint32());\n break;\n case 4:\n message.setOption = exports.RequestSetOption.decode(reader, reader.uint32());\n break;\n case 5:\n message.initChain = exports.RequestInitChain.decode(reader, reader.uint32());\n break;\n case 6:\n message.query = exports.RequestQuery.decode(reader, reader.uint32());\n break;\n case 7:\n message.beginBlock = exports.RequestBeginBlock.decode(reader, reader.uint32());\n break;\n case 8:\n message.checkTx = exports.RequestCheckTx.decode(reader, reader.uint32());\n break;\n case 9:\n message.deliverTx = exports.RequestDeliverTx.decode(reader, reader.uint32());\n break;\n case 10:\n message.endBlock = exports.RequestEndBlock.decode(reader, reader.uint32());\n break;\n case 11:\n message.commit = exports.RequestCommit.decode(reader, reader.uint32());\n break;\n case 12:\n message.listSnapshots = exports.RequestListSnapshots.decode(reader, reader.uint32());\n break;\n case 13:\n message.offerSnapshot = exports.RequestOfferSnapshot.decode(reader, reader.uint32());\n break;\n case 14:\n message.loadSnapshotChunk = exports.RequestLoadSnapshotChunk.decode(reader, reader.uint32());\n break;\n case 15:\n message.applySnapshotChunk = exports.RequestApplySnapshotChunk.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseRequest);\n if (object.echo !== undefined && object.echo !== null) {\n message.echo = exports.RequestEcho.fromJSON(object.echo);\n }\n else {\n message.echo = undefined;\n }\n if (object.flush !== undefined && object.flush !== null) {\n message.flush = exports.RequestFlush.fromJSON(object.flush);\n }\n else {\n message.flush = undefined;\n }\n if (object.info !== undefined && object.info !== null) {\n message.info = exports.RequestInfo.fromJSON(object.info);\n }\n else {\n message.info = undefined;\n }\n if (object.setOption !== undefined && object.setOption !== null) {\n message.setOption = exports.RequestSetOption.fromJSON(object.setOption);\n }\n else {\n message.setOption = undefined;\n }\n if (object.initChain !== undefined && object.initChain !== null) {\n message.initChain = exports.RequestInitChain.fromJSON(object.initChain);\n }\n else {\n message.initChain = undefined;\n }\n if (object.query !== undefined && object.query !== null) {\n message.query = exports.RequestQuery.fromJSON(object.query);\n }\n else {\n message.query = undefined;\n }\n if (object.beginBlock !== undefined && object.beginBlock !== null) {\n message.beginBlock = exports.RequestBeginBlock.fromJSON(object.beginBlock);\n }\n else {\n message.beginBlock = undefined;\n }\n if (object.checkTx !== undefined && object.checkTx !== null) {\n message.checkTx = exports.RequestCheckTx.fromJSON(object.checkTx);\n }\n else {\n message.checkTx = undefined;\n }\n if (object.deliverTx !== undefined && object.deliverTx !== null) {\n message.deliverTx = exports.RequestDeliverTx.fromJSON(object.deliverTx);\n }\n else {\n message.deliverTx = undefined;\n }\n if (object.endBlock !== undefined && object.endBlock !== null) {\n message.endBlock = exports.RequestEndBlock.fromJSON(object.endBlock);\n }\n else {\n message.endBlock = undefined;\n }\n if (object.commit !== undefined && object.commit !== null) {\n message.commit = exports.RequestCommit.fromJSON(object.commit);\n }\n else {\n message.commit = undefined;\n }\n if (object.listSnapshots !== undefined && object.listSnapshots !== null) {\n message.listSnapshots = exports.RequestListSnapshots.fromJSON(object.listSnapshots);\n }\n else {\n message.listSnapshots = undefined;\n }\n if (object.offerSnapshot !== undefined && object.offerSnapshot !== null) {\n message.offerSnapshot = exports.RequestOfferSnapshot.fromJSON(object.offerSnapshot);\n }\n else {\n message.offerSnapshot = undefined;\n }\n if (object.loadSnapshotChunk !== undefined && object.loadSnapshotChunk !== null) {\n message.loadSnapshotChunk = exports.RequestLoadSnapshotChunk.fromJSON(object.loadSnapshotChunk);\n }\n else {\n message.loadSnapshotChunk = undefined;\n }\n if (object.applySnapshotChunk !== undefined && object.applySnapshotChunk !== null) {\n message.applySnapshotChunk = exports.RequestApplySnapshotChunk.fromJSON(object.applySnapshotChunk);\n }\n else {\n message.applySnapshotChunk = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.echo !== undefined && (obj.echo = message.echo ? exports.RequestEcho.toJSON(message.echo) : undefined);\n message.flush !== undefined &&\n (obj.flush = message.flush ? exports.RequestFlush.toJSON(message.flush) : undefined);\n message.info !== undefined && (obj.info = message.info ? exports.RequestInfo.toJSON(message.info) : undefined);\n message.setOption !== undefined &&\n (obj.setOption = message.setOption ? exports.RequestSetOption.toJSON(message.setOption) : undefined);\n message.initChain !== undefined &&\n (obj.initChain = message.initChain ? exports.RequestInitChain.toJSON(message.initChain) : undefined);\n message.query !== undefined &&\n (obj.query = message.query ? exports.RequestQuery.toJSON(message.query) : undefined);\n message.beginBlock !== undefined &&\n (obj.beginBlock = message.beginBlock ? exports.RequestBeginBlock.toJSON(message.beginBlock) : undefined);\n message.checkTx !== undefined &&\n (obj.checkTx = message.checkTx ? exports.RequestCheckTx.toJSON(message.checkTx) : undefined);\n message.deliverTx !== undefined &&\n (obj.deliverTx = message.deliverTx ? exports.RequestDeliverTx.toJSON(message.deliverTx) : undefined);\n message.endBlock !== undefined &&\n (obj.endBlock = message.endBlock ? exports.RequestEndBlock.toJSON(message.endBlock) : undefined);\n message.commit !== undefined &&\n (obj.commit = message.commit ? exports.RequestCommit.toJSON(message.commit) : undefined);\n message.listSnapshots !== undefined &&\n (obj.listSnapshots = message.listSnapshots\n ? exports.RequestListSnapshots.toJSON(message.listSnapshots)\n : undefined);\n message.offerSnapshot !== undefined &&\n (obj.offerSnapshot = message.offerSnapshot\n ? exports.RequestOfferSnapshot.toJSON(message.offerSnapshot)\n : undefined);\n message.loadSnapshotChunk !== undefined &&\n (obj.loadSnapshotChunk = message.loadSnapshotChunk\n ? exports.RequestLoadSnapshotChunk.toJSON(message.loadSnapshotChunk)\n : undefined);\n message.applySnapshotChunk !== undefined &&\n (obj.applySnapshotChunk = message.applySnapshotChunk\n ? exports.RequestApplySnapshotChunk.toJSON(message.applySnapshotChunk)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseRequest);\n if (object.echo !== undefined && object.echo !== null) {\n message.echo = exports.RequestEcho.fromPartial(object.echo);\n }\n else {\n message.echo = undefined;\n }\n if (object.flush !== undefined && object.flush !== null) {\n message.flush = exports.RequestFlush.fromPartial(object.flush);\n }\n else {\n message.flush = undefined;\n }\n if (object.info !== undefined && object.info !== null) {\n message.info = exports.RequestInfo.fromPartial(object.info);\n }\n else {\n message.info = undefined;\n }\n if (object.setOption !== undefined && object.setOption !== null) {\n message.setOption = exports.RequestSetOption.fromPartial(object.setOption);\n }\n else {\n message.setOption = undefined;\n }\n if (object.initChain !== undefined && object.initChain !== null) {\n message.initChain = exports.RequestInitChain.fromPartial(object.initChain);\n }\n else {\n message.initChain = undefined;\n }\n if (object.query !== undefined && object.query !== null) {\n message.query = exports.RequestQuery.fromPartial(object.query);\n }\n else {\n message.query = undefined;\n }\n if (object.beginBlock !== undefined && object.beginBlock !== null) {\n message.beginBlock = exports.RequestBeginBlock.fromPartial(object.beginBlock);\n }\n else {\n message.beginBlock = undefined;\n }\n if (object.checkTx !== undefined && object.checkTx !== null) {\n message.checkTx = exports.RequestCheckTx.fromPartial(object.checkTx);\n }\n else {\n message.checkTx = undefined;\n }\n if (object.deliverTx !== undefined && object.deliverTx !== null) {\n message.deliverTx = exports.RequestDeliverTx.fromPartial(object.deliverTx);\n }\n else {\n message.deliverTx = undefined;\n }\n if (object.endBlock !== undefined && object.endBlock !== null) {\n message.endBlock = exports.RequestEndBlock.fromPartial(object.endBlock);\n }\n else {\n message.endBlock = undefined;\n }\n if (object.commit !== undefined && object.commit !== null) {\n message.commit = exports.RequestCommit.fromPartial(object.commit);\n }\n else {\n message.commit = undefined;\n }\n if (object.listSnapshots !== undefined && object.listSnapshots !== null) {\n message.listSnapshots = exports.RequestListSnapshots.fromPartial(object.listSnapshots);\n }\n else {\n message.listSnapshots = undefined;\n }\n if (object.offerSnapshot !== undefined && object.offerSnapshot !== null) {\n message.offerSnapshot = exports.RequestOfferSnapshot.fromPartial(object.offerSnapshot);\n }\n else {\n message.offerSnapshot = undefined;\n }\n if (object.loadSnapshotChunk !== undefined && object.loadSnapshotChunk !== null) {\n message.loadSnapshotChunk = exports.RequestLoadSnapshotChunk.fromPartial(object.loadSnapshotChunk);\n }\n else {\n message.loadSnapshotChunk = undefined;\n }\n if (object.applySnapshotChunk !== undefined && object.applySnapshotChunk !== null) {\n message.applySnapshotChunk = exports.RequestApplySnapshotChunk.fromPartial(object.applySnapshotChunk);\n }\n else {\n message.applySnapshotChunk = undefined;\n }\n return message;\n },\n};\nconst baseRequestEcho = { message: \"\" };\nexports.RequestEcho = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.message !== \"\") {\n writer.uint32(10).string(message.message);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestEcho);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.message = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseRequestEcho);\n if (object.message !== undefined && object.message !== null) {\n message.message = String(object.message);\n }\n else {\n message.message = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.message !== undefined && (obj.message = message.message);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseRequestEcho);\n if (object.message !== undefined && object.message !== null) {\n message.message = object.message;\n }\n else {\n message.message = \"\";\n }\n return message;\n },\n};\nconst baseRequestFlush = {};\nexports.RequestFlush = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestFlush);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseRequestFlush);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseRequestFlush);\n return message;\n },\n};\nconst baseRequestInfo = { version: \"\", blockVersion: long_1.default.UZERO, p2pVersion: long_1.default.UZERO };\nexports.RequestInfo = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.version !== \"\") {\n writer.uint32(10).string(message.version);\n }\n if (!message.blockVersion.isZero()) {\n writer.uint32(16).uint64(message.blockVersion);\n }\n if (!message.p2pVersion.isZero()) {\n writer.uint32(24).uint64(message.p2pVersion);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestInfo);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.version = reader.string();\n break;\n case 2:\n message.blockVersion = reader.uint64();\n break;\n case 3:\n message.p2pVersion = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseRequestInfo);\n if (object.version !== undefined && object.version !== null) {\n message.version = String(object.version);\n }\n else {\n message.version = \"\";\n }\n if (object.blockVersion !== undefined && object.blockVersion !== null) {\n message.blockVersion = long_1.default.fromString(object.blockVersion);\n }\n else {\n message.blockVersion = long_1.default.UZERO;\n }\n if (object.p2pVersion !== undefined && object.p2pVersion !== null) {\n message.p2pVersion = long_1.default.fromString(object.p2pVersion);\n }\n else {\n message.p2pVersion = long_1.default.UZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.version !== undefined && (obj.version = message.version);\n message.blockVersion !== undefined &&\n (obj.blockVersion = (message.blockVersion || long_1.default.UZERO).toString());\n message.p2pVersion !== undefined && (obj.p2pVersion = (message.p2pVersion || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseRequestInfo);\n if (object.version !== undefined && object.version !== null) {\n message.version = object.version;\n }\n else {\n message.version = \"\";\n }\n if (object.blockVersion !== undefined && object.blockVersion !== null) {\n message.blockVersion = object.blockVersion;\n }\n else {\n message.blockVersion = long_1.default.UZERO;\n }\n if (object.p2pVersion !== undefined && object.p2pVersion !== null) {\n message.p2pVersion = object.p2pVersion;\n }\n else {\n message.p2pVersion = long_1.default.UZERO;\n }\n return message;\n },\n};\nconst baseRequestSetOption = { key: \"\", value: \"\" };\nexports.RequestSetOption = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.key !== \"\") {\n writer.uint32(10).string(message.key);\n }\n if (message.value !== \"\") {\n writer.uint32(18).string(message.value);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestSetOption);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.string();\n break;\n case 2:\n message.value = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseRequestSetOption);\n if (object.key !== undefined && object.key !== null) {\n message.key = String(object.key);\n }\n else {\n message.key = \"\";\n }\n if (object.value !== undefined && object.value !== null) {\n message.value = String(object.value);\n }\n else {\n message.value = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined && (obj.key = message.key);\n message.value !== undefined && (obj.value = message.value);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseRequestSetOption);\n if (object.key !== undefined && object.key !== null) {\n message.key = object.key;\n }\n else {\n message.key = \"\";\n }\n if (object.value !== undefined && object.value !== null) {\n message.value = object.value;\n }\n else {\n message.value = \"\";\n }\n return message;\n },\n};\nconst baseRequestInitChain = { chainId: \"\", initialHeight: long_1.default.ZERO };\nexports.RequestInitChain = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.time !== undefined) {\n timestamp_1.Timestamp.encode(toTimestamp(message.time), writer.uint32(10).fork()).ldelim();\n }\n if (message.chainId !== \"\") {\n writer.uint32(18).string(message.chainId);\n }\n if (message.consensusParams !== undefined) {\n exports.ConsensusParams.encode(message.consensusParams, writer.uint32(26).fork()).ldelim();\n }\n for (const v of message.validators) {\n exports.ValidatorUpdate.encode(v, writer.uint32(34).fork()).ldelim();\n }\n if (message.appStateBytes.length !== 0) {\n writer.uint32(42).bytes(message.appStateBytes);\n }\n if (!message.initialHeight.isZero()) {\n writer.uint32(48).int64(message.initialHeight);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestInitChain);\n message.validators = [];\n message.appStateBytes = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.time = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));\n break;\n case 2:\n message.chainId = reader.string();\n break;\n case 3:\n message.consensusParams = exports.ConsensusParams.decode(reader, reader.uint32());\n break;\n case 4:\n message.validators.push(exports.ValidatorUpdate.decode(reader, reader.uint32()));\n break;\n case 5:\n message.appStateBytes = reader.bytes();\n break;\n case 6:\n message.initialHeight = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseRequestInitChain);\n message.validators = [];\n message.appStateBytes = new Uint8Array();\n if (object.time !== undefined && object.time !== null) {\n message.time = fromJsonTimestamp(object.time);\n }\n else {\n message.time = undefined;\n }\n if (object.chainId !== undefined && object.chainId !== null) {\n message.chainId = String(object.chainId);\n }\n else {\n message.chainId = \"\";\n }\n if (object.consensusParams !== undefined && object.consensusParams !== null) {\n message.consensusParams = exports.ConsensusParams.fromJSON(object.consensusParams);\n }\n else {\n message.consensusParams = undefined;\n }\n if (object.validators !== undefined && object.validators !== null) {\n for (const e of object.validators) {\n message.validators.push(exports.ValidatorUpdate.fromJSON(e));\n }\n }\n if (object.appStateBytes !== undefined && object.appStateBytes !== null) {\n message.appStateBytes = bytesFromBase64(object.appStateBytes);\n }\n if (object.initialHeight !== undefined && object.initialHeight !== null) {\n message.initialHeight = long_1.default.fromString(object.initialHeight);\n }\n else {\n message.initialHeight = long_1.default.ZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.time !== undefined && (obj.time = message.time.toISOString());\n message.chainId !== undefined && (obj.chainId = message.chainId);\n message.consensusParams !== undefined &&\n (obj.consensusParams = message.consensusParams\n ? exports.ConsensusParams.toJSON(message.consensusParams)\n : undefined);\n if (message.validators) {\n obj.validators = message.validators.map((e) => (e ? exports.ValidatorUpdate.toJSON(e) : undefined));\n }\n else {\n obj.validators = [];\n }\n message.appStateBytes !== undefined &&\n (obj.appStateBytes = base64FromBytes(message.appStateBytes !== undefined ? message.appStateBytes : new Uint8Array()));\n message.initialHeight !== undefined &&\n (obj.initialHeight = (message.initialHeight || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseRequestInitChain);\n message.validators = [];\n if (object.time !== undefined && object.time !== null) {\n message.time = object.time;\n }\n else {\n message.time = undefined;\n }\n if (object.chainId !== undefined && object.chainId !== null) {\n message.chainId = object.chainId;\n }\n else {\n message.chainId = \"\";\n }\n if (object.consensusParams !== undefined && object.consensusParams !== null) {\n message.consensusParams = exports.ConsensusParams.fromPartial(object.consensusParams);\n }\n else {\n message.consensusParams = undefined;\n }\n if (object.validators !== undefined && object.validators !== null) {\n for (const e of object.validators) {\n message.validators.push(exports.ValidatorUpdate.fromPartial(e));\n }\n }\n if (object.appStateBytes !== undefined && object.appStateBytes !== null) {\n message.appStateBytes = object.appStateBytes;\n }\n else {\n message.appStateBytes = new Uint8Array();\n }\n if (object.initialHeight !== undefined && object.initialHeight !== null) {\n message.initialHeight = object.initialHeight;\n }\n else {\n message.initialHeight = long_1.default.ZERO;\n }\n return message;\n },\n};\nconst baseRequestQuery = { path: \"\", height: long_1.default.ZERO, prove: false };\nexports.RequestQuery = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.data.length !== 0) {\n writer.uint32(10).bytes(message.data);\n }\n if (message.path !== \"\") {\n writer.uint32(18).string(message.path);\n }\n if (!message.height.isZero()) {\n writer.uint32(24).int64(message.height);\n }\n if (message.prove === true) {\n writer.uint32(32).bool(message.prove);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestQuery);\n message.data = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.data = reader.bytes();\n break;\n case 2:\n message.path = reader.string();\n break;\n case 3:\n message.height = reader.int64();\n break;\n case 4:\n message.prove = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseRequestQuery);\n message.data = new Uint8Array();\n if (object.data !== undefined && object.data !== null) {\n message.data = bytesFromBase64(object.data);\n }\n if (object.path !== undefined && object.path !== null) {\n message.path = String(object.path);\n }\n else {\n message.path = \"\";\n }\n if (object.height !== undefined && object.height !== null) {\n message.height = long_1.default.fromString(object.height);\n }\n else {\n message.height = long_1.default.ZERO;\n }\n if (object.prove !== undefined && object.prove !== null) {\n message.prove = Boolean(object.prove);\n }\n else {\n message.prove = false;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.data !== undefined &&\n (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));\n message.path !== undefined && (obj.path = message.path);\n message.height !== undefined && (obj.height = (message.height || long_1.default.ZERO).toString());\n message.prove !== undefined && (obj.prove = message.prove);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseRequestQuery);\n if (object.data !== undefined && object.data !== null) {\n message.data = object.data;\n }\n else {\n message.data = new Uint8Array();\n }\n if (object.path !== undefined && object.path !== null) {\n message.path = object.path;\n }\n else {\n message.path = \"\";\n }\n if (object.height !== undefined && object.height !== null) {\n message.height = object.height;\n }\n else {\n message.height = long_1.default.ZERO;\n }\n if (object.prove !== undefined && object.prove !== null) {\n message.prove = object.prove;\n }\n else {\n message.prove = false;\n }\n return message;\n },\n};\nconst baseRequestBeginBlock = {};\nexports.RequestBeginBlock = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.hash.length !== 0) {\n writer.uint32(10).bytes(message.hash);\n }\n if (message.header !== undefined) {\n types_1.Header.encode(message.header, writer.uint32(18).fork()).ldelim();\n }\n if (message.lastCommitInfo !== undefined) {\n exports.LastCommitInfo.encode(message.lastCommitInfo, writer.uint32(26).fork()).ldelim();\n }\n for (const v of message.byzantineValidators) {\n exports.Evidence.encode(v, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestBeginBlock);\n message.byzantineValidators = [];\n message.hash = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hash = reader.bytes();\n break;\n case 2:\n message.header = types_1.Header.decode(reader, reader.uint32());\n break;\n case 3:\n message.lastCommitInfo = exports.LastCommitInfo.decode(reader, reader.uint32());\n break;\n case 4:\n message.byzantineValidators.push(exports.Evidence.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseRequestBeginBlock);\n message.byzantineValidators = [];\n message.hash = new Uint8Array();\n if (object.hash !== undefined && object.hash !== null) {\n message.hash = bytesFromBase64(object.hash);\n }\n if (object.header !== undefined && object.header !== null) {\n message.header = types_1.Header.fromJSON(object.header);\n }\n else {\n message.header = undefined;\n }\n if (object.lastCommitInfo !== undefined && object.lastCommitInfo !== null) {\n message.lastCommitInfo = exports.LastCommitInfo.fromJSON(object.lastCommitInfo);\n }\n else {\n message.lastCommitInfo = undefined;\n }\n if (object.byzantineValidators !== undefined && object.byzantineValidators !== null) {\n for (const e of object.byzantineValidators) {\n message.byzantineValidators.push(exports.Evidence.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.hash !== undefined &&\n (obj.hash = base64FromBytes(message.hash !== undefined ? message.hash : new Uint8Array()));\n message.header !== undefined && (obj.header = message.header ? types_1.Header.toJSON(message.header) : undefined);\n message.lastCommitInfo !== undefined &&\n (obj.lastCommitInfo = message.lastCommitInfo\n ? exports.LastCommitInfo.toJSON(message.lastCommitInfo)\n : undefined);\n if (message.byzantineValidators) {\n obj.byzantineValidators = message.byzantineValidators.map((e) => (e ? exports.Evidence.toJSON(e) : undefined));\n }\n else {\n obj.byzantineValidators = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseRequestBeginBlock);\n message.byzantineValidators = [];\n if (object.hash !== undefined && object.hash !== null) {\n message.hash = object.hash;\n }\n else {\n message.hash = new Uint8Array();\n }\n if (object.header !== undefined && object.header !== null) {\n message.header = types_1.Header.fromPartial(object.header);\n }\n else {\n message.header = undefined;\n }\n if (object.lastCommitInfo !== undefined && object.lastCommitInfo !== null) {\n message.lastCommitInfo = exports.LastCommitInfo.fromPartial(object.lastCommitInfo);\n }\n else {\n message.lastCommitInfo = undefined;\n }\n if (object.byzantineValidators !== undefined && object.byzantineValidators !== null) {\n for (const e of object.byzantineValidators) {\n message.byzantineValidators.push(exports.Evidence.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseRequestCheckTx = { type: 0 };\nexports.RequestCheckTx = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.tx.length !== 0) {\n writer.uint32(10).bytes(message.tx);\n }\n if (message.type !== 0) {\n writer.uint32(16).int32(message.type);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestCheckTx);\n message.tx = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.tx = reader.bytes();\n break;\n case 2:\n message.type = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseRequestCheckTx);\n message.tx = new Uint8Array();\n if (object.tx !== undefined && object.tx !== null) {\n message.tx = bytesFromBase64(object.tx);\n }\n if (object.type !== undefined && object.type !== null) {\n message.type = checkTxTypeFromJSON(object.type);\n }\n else {\n message.type = 0;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.tx !== undefined &&\n (obj.tx = base64FromBytes(message.tx !== undefined ? message.tx : new Uint8Array()));\n message.type !== undefined && (obj.type = checkTxTypeToJSON(message.type));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseRequestCheckTx);\n if (object.tx !== undefined && object.tx !== null) {\n message.tx = object.tx;\n }\n else {\n message.tx = new Uint8Array();\n }\n if (object.type !== undefined && object.type !== null) {\n message.type = object.type;\n }\n else {\n message.type = 0;\n }\n return message;\n },\n};\nconst baseRequestDeliverTx = {};\nexports.RequestDeliverTx = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.tx.length !== 0) {\n writer.uint32(10).bytes(message.tx);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestDeliverTx);\n message.tx = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.tx = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseRequestDeliverTx);\n message.tx = new Uint8Array();\n if (object.tx !== undefined && object.tx !== null) {\n message.tx = bytesFromBase64(object.tx);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.tx !== undefined &&\n (obj.tx = base64FromBytes(message.tx !== undefined ? message.tx : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseRequestDeliverTx);\n if (object.tx !== undefined && object.tx !== null) {\n message.tx = object.tx;\n }\n else {\n message.tx = new Uint8Array();\n }\n return message;\n },\n};\nconst baseRequestEndBlock = { height: long_1.default.ZERO };\nexports.RequestEndBlock = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.height.isZero()) {\n writer.uint32(8).int64(message.height);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestEndBlock);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.height = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseRequestEndBlock);\n if (object.height !== undefined && object.height !== null) {\n message.height = long_1.default.fromString(object.height);\n }\n else {\n message.height = long_1.default.ZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.height !== undefined && (obj.height = (message.height || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseRequestEndBlock);\n if (object.height !== undefined && object.height !== null) {\n message.height = object.height;\n }\n else {\n message.height = long_1.default.ZERO;\n }\n return message;\n },\n};\nconst baseRequestCommit = {};\nexports.RequestCommit = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestCommit);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseRequestCommit);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseRequestCommit);\n return message;\n },\n};\nconst baseRequestListSnapshots = {};\nexports.RequestListSnapshots = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestListSnapshots);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseRequestListSnapshots);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseRequestListSnapshots);\n return message;\n },\n};\nconst baseRequestOfferSnapshot = {};\nexports.RequestOfferSnapshot = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.snapshot !== undefined) {\n exports.Snapshot.encode(message.snapshot, writer.uint32(10).fork()).ldelim();\n }\n if (message.appHash.length !== 0) {\n writer.uint32(18).bytes(message.appHash);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestOfferSnapshot);\n message.appHash = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.snapshot = exports.Snapshot.decode(reader, reader.uint32());\n break;\n case 2:\n message.appHash = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseRequestOfferSnapshot);\n message.appHash = new Uint8Array();\n if (object.snapshot !== undefined && object.snapshot !== null) {\n message.snapshot = exports.Snapshot.fromJSON(object.snapshot);\n }\n else {\n message.snapshot = undefined;\n }\n if (object.appHash !== undefined && object.appHash !== null) {\n message.appHash = bytesFromBase64(object.appHash);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.snapshot !== undefined &&\n (obj.snapshot = message.snapshot ? exports.Snapshot.toJSON(message.snapshot) : undefined);\n message.appHash !== undefined &&\n (obj.appHash = base64FromBytes(message.appHash !== undefined ? message.appHash : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseRequestOfferSnapshot);\n if (object.snapshot !== undefined && object.snapshot !== null) {\n message.snapshot = exports.Snapshot.fromPartial(object.snapshot);\n }\n else {\n message.snapshot = undefined;\n }\n if (object.appHash !== undefined && object.appHash !== null) {\n message.appHash = object.appHash;\n }\n else {\n message.appHash = new Uint8Array();\n }\n return message;\n },\n};\nconst baseRequestLoadSnapshotChunk = { height: long_1.default.UZERO, format: 0, chunk: 0 };\nexports.RequestLoadSnapshotChunk = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.height.isZero()) {\n writer.uint32(8).uint64(message.height);\n }\n if (message.format !== 0) {\n writer.uint32(16).uint32(message.format);\n }\n if (message.chunk !== 0) {\n writer.uint32(24).uint32(message.chunk);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestLoadSnapshotChunk);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.height = reader.uint64();\n break;\n case 2:\n message.format = reader.uint32();\n break;\n case 3:\n message.chunk = reader.uint32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseRequestLoadSnapshotChunk);\n if (object.height !== undefined && object.height !== null) {\n message.height = long_1.default.fromString(object.height);\n }\n else {\n message.height = long_1.default.UZERO;\n }\n if (object.format !== undefined && object.format !== null) {\n message.format = Number(object.format);\n }\n else {\n message.format = 0;\n }\n if (object.chunk !== undefined && object.chunk !== null) {\n message.chunk = Number(object.chunk);\n }\n else {\n message.chunk = 0;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.height !== undefined && (obj.height = (message.height || long_1.default.UZERO).toString());\n message.format !== undefined && (obj.format = message.format);\n message.chunk !== undefined && (obj.chunk = message.chunk);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseRequestLoadSnapshotChunk);\n if (object.height !== undefined && object.height !== null) {\n message.height = object.height;\n }\n else {\n message.height = long_1.default.UZERO;\n }\n if (object.format !== undefined && object.format !== null) {\n message.format = object.format;\n }\n else {\n message.format = 0;\n }\n if (object.chunk !== undefined && object.chunk !== null) {\n message.chunk = object.chunk;\n }\n else {\n message.chunk = 0;\n }\n return message;\n },\n};\nconst baseRequestApplySnapshotChunk = { index: 0, sender: \"\" };\nexports.RequestApplySnapshotChunk = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.index !== 0) {\n writer.uint32(8).uint32(message.index);\n }\n if (message.chunk.length !== 0) {\n writer.uint32(18).bytes(message.chunk);\n }\n if (message.sender !== \"\") {\n writer.uint32(26).string(message.sender);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestApplySnapshotChunk);\n message.chunk = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.index = reader.uint32();\n break;\n case 2:\n message.chunk = reader.bytes();\n break;\n case 3:\n message.sender = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseRequestApplySnapshotChunk);\n message.chunk = new Uint8Array();\n if (object.index !== undefined && object.index !== null) {\n message.index = Number(object.index);\n }\n else {\n message.index = 0;\n }\n if (object.chunk !== undefined && object.chunk !== null) {\n message.chunk = bytesFromBase64(object.chunk);\n }\n if (object.sender !== undefined && object.sender !== null) {\n message.sender = String(object.sender);\n }\n else {\n message.sender = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.index !== undefined && (obj.index = message.index);\n message.chunk !== undefined &&\n (obj.chunk = base64FromBytes(message.chunk !== undefined ? message.chunk : new Uint8Array()));\n message.sender !== undefined && (obj.sender = message.sender);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseRequestApplySnapshotChunk);\n if (object.index !== undefined && object.index !== null) {\n message.index = object.index;\n }\n else {\n message.index = 0;\n }\n if (object.chunk !== undefined && object.chunk !== null) {\n message.chunk = object.chunk;\n }\n else {\n message.chunk = new Uint8Array();\n }\n if (object.sender !== undefined && object.sender !== null) {\n message.sender = object.sender;\n }\n else {\n message.sender = \"\";\n }\n return message;\n },\n};\nconst baseResponse = {};\nexports.Response = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.exception !== undefined) {\n exports.ResponseException.encode(message.exception, writer.uint32(10).fork()).ldelim();\n }\n if (message.echo !== undefined) {\n exports.ResponseEcho.encode(message.echo, writer.uint32(18).fork()).ldelim();\n }\n if (message.flush !== undefined) {\n exports.ResponseFlush.encode(message.flush, writer.uint32(26).fork()).ldelim();\n }\n if (message.info !== undefined) {\n exports.ResponseInfo.encode(message.info, writer.uint32(34).fork()).ldelim();\n }\n if (message.setOption !== undefined) {\n exports.ResponseSetOption.encode(message.setOption, writer.uint32(42).fork()).ldelim();\n }\n if (message.initChain !== undefined) {\n exports.ResponseInitChain.encode(message.initChain, writer.uint32(50).fork()).ldelim();\n }\n if (message.query !== undefined) {\n exports.ResponseQuery.encode(message.query, writer.uint32(58).fork()).ldelim();\n }\n if (message.beginBlock !== undefined) {\n exports.ResponseBeginBlock.encode(message.beginBlock, writer.uint32(66).fork()).ldelim();\n }\n if (message.checkTx !== undefined) {\n exports.ResponseCheckTx.encode(message.checkTx, writer.uint32(74).fork()).ldelim();\n }\n if (message.deliverTx !== undefined) {\n exports.ResponseDeliverTx.encode(message.deliverTx, writer.uint32(82).fork()).ldelim();\n }\n if (message.endBlock !== undefined) {\n exports.ResponseEndBlock.encode(message.endBlock, writer.uint32(90).fork()).ldelim();\n }\n if (message.commit !== undefined) {\n exports.ResponseCommit.encode(message.commit, writer.uint32(98).fork()).ldelim();\n }\n if (message.listSnapshots !== undefined) {\n exports.ResponseListSnapshots.encode(message.listSnapshots, writer.uint32(106).fork()).ldelim();\n }\n if (message.offerSnapshot !== undefined) {\n exports.ResponseOfferSnapshot.encode(message.offerSnapshot, writer.uint32(114).fork()).ldelim();\n }\n if (message.loadSnapshotChunk !== undefined) {\n exports.ResponseLoadSnapshotChunk.encode(message.loadSnapshotChunk, writer.uint32(122).fork()).ldelim();\n }\n if (message.applySnapshotChunk !== undefined) {\n exports.ResponseApplySnapshotChunk.encode(message.applySnapshotChunk, writer.uint32(130).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.exception = exports.ResponseException.decode(reader, reader.uint32());\n break;\n case 2:\n message.echo = exports.ResponseEcho.decode(reader, reader.uint32());\n break;\n case 3:\n message.flush = exports.ResponseFlush.decode(reader, reader.uint32());\n break;\n case 4:\n message.info = exports.ResponseInfo.decode(reader, reader.uint32());\n break;\n case 5:\n message.setOption = exports.ResponseSetOption.decode(reader, reader.uint32());\n break;\n case 6:\n message.initChain = exports.ResponseInitChain.decode(reader, reader.uint32());\n break;\n case 7:\n message.query = exports.ResponseQuery.decode(reader, reader.uint32());\n break;\n case 8:\n message.beginBlock = exports.ResponseBeginBlock.decode(reader, reader.uint32());\n break;\n case 9:\n message.checkTx = exports.ResponseCheckTx.decode(reader, reader.uint32());\n break;\n case 10:\n message.deliverTx = exports.ResponseDeliverTx.decode(reader, reader.uint32());\n break;\n case 11:\n message.endBlock = exports.ResponseEndBlock.decode(reader, reader.uint32());\n break;\n case 12:\n message.commit = exports.ResponseCommit.decode(reader, reader.uint32());\n break;\n case 13:\n message.listSnapshots = exports.ResponseListSnapshots.decode(reader, reader.uint32());\n break;\n case 14:\n message.offerSnapshot = exports.ResponseOfferSnapshot.decode(reader, reader.uint32());\n break;\n case 15:\n message.loadSnapshotChunk = exports.ResponseLoadSnapshotChunk.decode(reader, reader.uint32());\n break;\n case 16:\n message.applySnapshotChunk = exports.ResponseApplySnapshotChunk.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseResponse);\n if (object.exception !== undefined && object.exception !== null) {\n message.exception = exports.ResponseException.fromJSON(object.exception);\n }\n else {\n message.exception = undefined;\n }\n if (object.echo !== undefined && object.echo !== null) {\n message.echo = exports.ResponseEcho.fromJSON(object.echo);\n }\n else {\n message.echo = undefined;\n }\n if (object.flush !== undefined && object.flush !== null) {\n message.flush = exports.ResponseFlush.fromJSON(object.flush);\n }\n else {\n message.flush = undefined;\n }\n if (object.info !== undefined && object.info !== null) {\n message.info = exports.ResponseInfo.fromJSON(object.info);\n }\n else {\n message.info = undefined;\n }\n if (object.setOption !== undefined && object.setOption !== null) {\n message.setOption = exports.ResponseSetOption.fromJSON(object.setOption);\n }\n else {\n message.setOption = undefined;\n }\n if (object.initChain !== undefined && object.initChain !== null) {\n message.initChain = exports.ResponseInitChain.fromJSON(object.initChain);\n }\n else {\n message.initChain = undefined;\n }\n if (object.query !== undefined && object.query !== null) {\n message.query = exports.ResponseQuery.fromJSON(object.query);\n }\n else {\n message.query = undefined;\n }\n if (object.beginBlock !== undefined && object.beginBlock !== null) {\n message.beginBlock = exports.ResponseBeginBlock.fromJSON(object.beginBlock);\n }\n else {\n message.beginBlock = undefined;\n }\n if (object.checkTx !== undefined && object.checkTx !== null) {\n message.checkTx = exports.ResponseCheckTx.fromJSON(object.checkTx);\n }\n else {\n message.checkTx = undefined;\n }\n if (object.deliverTx !== undefined && object.deliverTx !== null) {\n message.deliverTx = exports.ResponseDeliverTx.fromJSON(object.deliverTx);\n }\n else {\n message.deliverTx = undefined;\n }\n if (object.endBlock !== undefined && object.endBlock !== null) {\n message.endBlock = exports.ResponseEndBlock.fromJSON(object.endBlock);\n }\n else {\n message.endBlock = undefined;\n }\n if (object.commit !== undefined && object.commit !== null) {\n message.commit = exports.ResponseCommit.fromJSON(object.commit);\n }\n else {\n message.commit = undefined;\n }\n if (object.listSnapshots !== undefined && object.listSnapshots !== null) {\n message.listSnapshots = exports.ResponseListSnapshots.fromJSON(object.listSnapshots);\n }\n else {\n message.listSnapshots = undefined;\n }\n if (object.offerSnapshot !== undefined && object.offerSnapshot !== null) {\n message.offerSnapshot = exports.ResponseOfferSnapshot.fromJSON(object.offerSnapshot);\n }\n else {\n message.offerSnapshot = undefined;\n }\n if (object.loadSnapshotChunk !== undefined && object.loadSnapshotChunk !== null) {\n message.loadSnapshotChunk = exports.ResponseLoadSnapshotChunk.fromJSON(object.loadSnapshotChunk);\n }\n else {\n message.loadSnapshotChunk = undefined;\n }\n if (object.applySnapshotChunk !== undefined && object.applySnapshotChunk !== null) {\n message.applySnapshotChunk = exports.ResponseApplySnapshotChunk.fromJSON(object.applySnapshotChunk);\n }\n else {\n message.applySnapshotChunk = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.exception !== undefined &&\n (obj.exception = message.exception ? exports.ResponseException.toJSON(message.exception) : undefined);\n message.echo !== undefined && (obj.echo = message.echo ? exports.ResponseEcho.toJSON(message.echo) : undefined);\n message.flush !== undefined &&\n (obj.flush = message.flush ? exports.ResponseFlush.toJSON(message.flush) : undefined);\n message.info !== undefined && (obj.info = message.info ? exports.ResponseInfo.toJSON(message.info) : undefined);\n message.setOption !== undefined &&\n (obj.setOption = message.setOption ? exports.ResponseSetOption.toJSON(message.setOption) : undefined);\n message.initChain !== undefined &&\n (obj.initChain = message.initChain ? exports.ResponseInitChain.toJSON(message.initChain) : undefined);\n message.query !== undefined &&\n (obj.query = message.query ? exports.ResponseQuery.toJSON(message.query) : undefined);\n message.beginBlock !== undefined &&\n (obj.beginBlock = message.beginBlock ? exports.ResponseBeginBlock.toJSON(message.beginBlock) : undefined);\n message.checkTx !== undefined &&\n (obj.checkTx = message.checkTx ? exports.ResponseCheckTx.toJSON(message.checkTx) : undefined);\n message.deliverTx !== undefined &&\n (obj.deliverTx = message.deliverTx ? exports.ResponseDeliverTx.toJSON(message.deliverTx) : undefined);\n message.endBlock !== undefined &&\n (obj.endBlock = message.endBlock ? exports.ResponseEndBlock.toJSON(message.endBlock) : undefined);\n message.commit !== undefined &&\n (obj.commit = message.commit ? exports.ResponseCommit.toJSON(message.commit) : undefined);\n message.listSnapshots !== undefined &&\n (obj.listSnapshots = message.listSnapshots\n ? exports.ResponseListSnapshots.toJSON(message.listSnapshots)\n : undefined);\n message.offerSnapshot !== undefined &&\n (obj.offerSnapshot = message.offerSnapshot\n ? exports.ResponseOfferSnapshot.toJSON(message.offerSnapshot)\n : undefined);\n message.loadSnapshotChunk !== undefined &&\n (obj.loadSnapshotChunk = message.loadSnapshotChunk\n ? exports.ResponseLoadSnapshotChunk.toJSON(message.loadSnapshotChunk)\n : undefined);\n message.applySnapshotChunk !== undefined &&\n (obj.applySnapshotChunk = message.applySnapshotChunk\n ? exports.ResponseApplySnapshotChunk.toJSON(message.applySnapshotChunk)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseResponse);\n if (object.exception !== undefined && object.exception !== null) {\n message.exception = exports.ResponseException.fromPartial(object.exception);\n }\n else {\n message.exception = undefined;\n }\n if (object.echo !== undefined && object.echo !== null) {\n message.echo = exports.ResponseEcho.fromPartial(object.echo);\n }\n else {\n message.echo = undefined;\n }\n if (object.flush !== undefined && object.flush !== null) {\n message.flush = exports.ResponseFlush.fromPartial(object.flush);\n }\n else {\n message.flush = undefined;\n }\n if (object.info !== undefined && object.info !== null) {\n message.info = exports.ResponseInfo.fromPartial(object.info);\n }\n else {\n message.info = undefined;\n }\n if (object.setOption !== undefined && object.setOption !== null) {\n message.setOption = exports.ResponseSetOption.fromPartial(object.setOption);\n }\n else {\n message.setOption = undefined;\n }\n if (object.initChain !== undefined && object.initChain !== null) {\n message.initChain = exports.ResponseInitChain.fromPartial(object.initChain);\n }\n else {\n message.initChain = undefined;\n }\n if (object.query !== undefined && object.query !== null) {\n message.query = exports.ResponseQuery.fromPartial(object.query);\n }\n else {\n message.query = undefined;\n }\n if (object.beginBlock !== undefined && object.beginBlock !== null) {\n message.beginBlock = exports.ResponseBeginBlock.fromPartial(object.beginBlock);\n }\n else {\n message.beginBlock = undefined;\n }\n if (object.checkTx !== undefined && object.checkTx !== null) {\n message.checkTx = exports.ResponseCheckTx.fromPartial(object.checkTx);\n }\n else {\n message.checkTx = undefined;\n }\n if (object.deliverTx !== undefined && object.deliverTx !== null) {\n message.deliverTx = exports.ResponseDeliverTx.fromPartial(object.deliverTx);\n }\n else {\n message.deliverTx = undefined;\n }\n if (object.endBlock !== undefined && object.endBlock !== null) {\n message.endBlock = exports.ResponseEndBlock.fromPartial(object.endBlock);\n }\n else {\n message.endBlock = undefined;\n }\n if (object.commit !== undefined && object.commit !== null) {\n message.commit = exports.ResponseCommit.fromPartial(object.commit);\n }\n else {\n message.commit = undefined;\n }\n if (object.listSnapshots !== undefined && object.listSnapshots !== null) {\n message.listSnapshots = exports.ResponseListSnapshots.fromPartial(object.listSnapshots);\n }\n else {\n message.listSnapshots = undefined;\n }\n if (object.offerSnapshot !== undefined && object.offerSnapshot !== null) {\n message.offerSnapshot = exports.ResponseOfferSnapshot.fromPartial(object.offerSnapshot);\n }\n else {\n message.offerSnapshot = undefined;\n }\n if (object.loadSnapshotChunk !== undefined && object.loadSnapshotChunk !== null) {\n message.loadSnapshotChunk = exports.ResponseLoadSnapshotChunk.fromPartial(object.loadSnapshotChunk);\n }\n else {\n message.loadSnapshotChunk = undefined;\n }\n if (object.applySnapshotChunk !== undefined && object.applySnapshotChunk !== null) {\n message.applySnapshotChunk = exports.ResponseApplySnapshotChunk.fromPartial(object.applySnapshotChunk);\n }\n else {\n message.applySnapshotChunk = undefined;\n }\n return message;\n },\n};\nconst baseResponseException = { error: \"\" };\nexports.ResponseException = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.error !== \"\") {\n writer.uint32(10).string(message.error);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseException);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.error = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseResponseException);\n if (object.error !== undefined && object.error !== null) {\n message.error = String(object.error);\n }\n else {\n message.error = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.error !== undefined && (obj.error = message.error);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseResponseException);\n if (object.error !== undefined && object.error !== null) {\n message.error = object.error;\n }\n else {\n message.error = \"\";\n }\n return message;\n },\n};\nconst baseResponseEcho = { message: \"\" };\nexports.ResponseEcho = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.message !== \"\") {\n writer.uint32(10).string(message.message);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseEcho);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.message = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseResponseEcho);\n if (object.message !== undefined && object.message !== null) {\n message.message = String(object.message);\n }\n else {\n message.message = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.message !== undefined && (obj.message = message.message);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseResponseEcho);\n if (object.message !== undefined && object.message !== null) {\n message.message = object.message;\n }\n else {\n message.message = \"\";\n }\n return message;\n },\n};\nconst baseResponseFlush = {};\nexports.ResponseFlush = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseFlush);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseResponseFlush);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseResponseFlush);\n return message;\n },\n};\nconst baseResponseInfo = {\n data: \"\",\n version: \"\",\n appVersion: long_1.default.UZERO,\n lastBlockHeight: long_1.default.ZERO,\n};\nexports.ResponseInfo = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.data !== \"\") {\n writer.uint32(10).string(message.data);\n }\n if (message.version !== \"\") {\n writer.uint32(18).string(message.version);\n }\n if (!message.appVersion.isZero()) {\n writer.uint32(24).uint64(message.appVersion);\n }\n if (!message.lastBlockHeight.isZero()) {\n writer.uint32(32).int64(message.lastBlockHeight);\n }\n if (message.lastBlockAppHash.length !== 0) {\n writer.uint32(42).bytes(message.lastBlockAppHash);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseInfo);\n message.lastBlockAppHash = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.data = reader.string();\n break;\n case 2:\n message.version = reader.string();\n break;\n case 3:\n message.appVersion = reader.uint64();\n break;\n case 4:\n message.lastBlockHeight = reader.int64();\n break;\n case 5:\n message.lastBlockAppHash = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseResponseInfo);\n message.lastBlockAppHash = new Uint8Array();\n if (object.data !== undefined && object.data !== null) {\n message.data = String(object.data);\n }\n else {\n message.data = \"\";\n }\n if (object.version !== undefined && object.version !== null) {\n message.version = String(object.version);\n }\n else {\n message.version = \"\";\n }\n if (object.appVersion !== undefined && object.appVersion !== null) {\n message.appVersion = long_1.default.fromString(object.appVersion);\n }\n else {\n message.appVersion = long_1.default.UZERO;\n }\n if (object.lastBlockHeight !== undefined && object.lastBlockHeight !== null) {\n message.lastBlockHeight = long_1.default.fromString(object.lastBlockHeight);\n }\n else {\n message.lastBlockHeight = long_1.default.ZERO;\n }\n if (object.lastBlockAppHash !== undefined && object.lastBlockAppHash !== null) {\n message.lastBlockAppHash = bytesFromBase64(object.lastBlockAppHash);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.data !== undefined && (obj.data = message.data);\n message.version !== undefined && (obj.version = message.version);\n message.appVersion !== undefined && (obj.appVersion = (message.appVersion || long_1.default.UZERO).toString());\n message.lastBlockHeight !== undefined &&\n (obj.lastBlockHeight = (message.lastBlockHeight || long_1.default.ZERO).toString());\n message.lastBlockAppHash !== undefined &&\n (obj.lastBlockAppHash = base64FromBytes(message.lastBlockAppHash !== undefined ? message.lastBlockAppHash : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseResponseInfo);\n if (object.data !== undefined && object.data !== null) {\n message.data = object.data;\n }\n else {\n message.data = \"\";\n }\n if (object.version !== undefined && object.version !== null) {\n message.version = object.version;\n }\n else {\n message.version = \"\";\n }\n if (object.appVersion !== undefined && object.appVersion !== null) {\n message.appVersion = object.appVersion;\n }\n else {\n message.appVersion = long_1.default.UZERO;\n }\n if (object.lastBlockHeight !== undefined && object.lastBlockHeight !== null) {\n message.lastBlockHeight = object.lastBlockHeight;\n }\n else {\n message.lastBlockHeight = long_1.default.ZERO;\n }\n if (object.lastBlockAppHash !== undefined && object.lastBlockAppHash !== null) {\n message.lastBlockAppHash = object.lastBlockAppHash;\n }\n else {\n message.lastBlockAppHash = new Uint8Array();\n }\n return message;\n },\n};\nconst baseResponseSetOption = { code: 0, log: \"\", info: \"\" };\nexports.ResponseSetOption = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.code !== 0) {\n writer.uint32(8).uint32(message.code);\n }\n if (message.log !== \"\") {\n writer.uint32(26).string(message.log);\n }\n if (message.info !== \"\") {\n writer.uint32(34).string(message.info);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseSetOption);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.code = reader.uint32();\n break;\n case 3:\n message.log = reader.string();\n break;\n case 4:\n message.info = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseResponseSetOption);\n if (object.code !== undefined && object.code !== null) {\n message.code = Number(object.code);\n }\n else {\n message.code = 0;\n }\n if (object.log !== undefined && object.log !== null) {\n message.log = String(object.log);\n }\n else {\n message.log = \"\";\n }\n if (object.info !== undefined && object.info !== null) {\n message.info = String(object.info);\n }\n else {\n message.info = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.code !== undefined && (obj.code = message.code);\n message.log !== undefined && (obj.log = message.log);\n message.info !== undefined && (obj.info = message.info);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseResponseSetOption);\n if (object.code !== undefined && object.code !== null) {\n message.code = object.code;\n }\n else {\n message.code = 0;\n }\n if (object.log !== undefined && object.log !== null) {\n message.log = object.log;\n }\n else {\n message.log = \"\";\n }\n if (object.info !== undefined && object.info !== null) {\n message.info = object.info;\n }\n else {\n message.info = \"\";\n }\n return message;\n },\n};\nconst baseResponseInitChain = {};\nexports.ResponseInitChain = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.consensusParams !== undefined) {\n exports.ConsensusParams.encode(message.consensusParams, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.validators) {\n exports.ValidatorUpdate.encode(v, writer.uint32(18).fork()).ldelim();\n }\n if (message.appHash.length !== 0) {\n writer.uint32(26).bytes(message.appHash);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseInitChain);\n message.validators = [];\n message.appHash = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.consensusParams = exports.ConsensusParams.decode(reader, reader.uint32());\n break;\n case 2:\n message.validators.push(exports.ValidatorUpdate.decode(reader, reader.uint32()));\n break;\n case 3:\n message.appHash = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseResponseInitChain);\n message.validators = [];\n message.appHash = new Uint8Array();\n if (object.consensusParams !== undefined && object.consensusParams !== null) {\n message.consensusParams = exports.ConsensusParams.fromJSON(object.consensusParams);\n }\n else {\n message.consensusParams = undefined;\n }\n if (object.validators !== undefined && object.validators !== null) {\n for (const e of object.validators) {\n message.validators.push(exports.ValidatorUpdate.fromJSON(e));\n }\n }\n if (object.appHash !== undefined && object.appHash !== null) {\n message.appHash = bytesFromBase64(object.appHash);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.consensusParams !== undefined &&\n (obj.consensusParams = message.consensusParams\n ? exports.ConsensusParams.toJSON(message.consensusParams)\n : undefined);\n if (message.validators) {\n obj.validators = message.validators.map((e) => (e ? exports.ValidatorUpdate.toJSON(e) : undefined));\n }\n else {\n obj.validators = [];\n }\n message.appHash !== undefined &&\n (obj.appHash = base64FromBytes(message.appHash !== undefined ? message.appHash : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseResponseInitChain);\n message.validators = [];\n if (object.consensusParams !== undefined && object.consensusParams !== null) {\n message.consensusParams = exports.ConsensusParams.fromPartial(object.consensusParams);\n }\n else {\n message.consensusParams = undefined;\n }\n if (object.validators !== undefined && object.validators !== null) {\n for (const e of object.validators) {\n message.validators.push(exports.ValidatorUpdate.fromPartial(e));\n }\n }\n if (object.appHash !== undefined && object.appHash !== null) {\n message.appHash = object.appHash;\n }\n else {\n message.appHash = new Uint8Array();\n }\n return message;\n },\n};\nconst baseResponseQuery = {\n code: 0,\n log: \"\",\n info: \"\",\n index: long_1.default.ZERO,\n height: long_1.default.ZERO,\n codespace: \"\",\n};\nexports.ResponseQuery = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.code !== 0) {\n writer.uint32(8).uint32(message.code);\n }\n if (message.log !== \"\") {\n writer.uint32(26).string(message.log);\n }\n if (message.info !== \"\") {\n writer.uint32(34).string(message.info);\n }\n if (!message.index.isZero()) {\n writer.uint32(40).int64(message.index);\n }\n if (message.key.length !== 0) {\n writer.uint32(50).bytes(message.key);\n }\n if (message.value.length !== 0) {\n writer.uint32(58).bytes(message.value);\n }\n if (message.proofOps !== undefined) {\n proof_1.ProofOps.encode(message.proofOps, writer.uint32(66).fork()).ldelim();\n }\n if (!message.height.isZero()) {\n writer.uint32(72).int64(message.height);\n }\n if (message.codespace !== \"\") {\n writer.uint32(82).string(message.codespace);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseQuery);\n message.key = new Uint8Array();\n message.value = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.code = reader.uint32();\n break;\n case 3:\n message.log = reader.string();\n break;\n case 4:\n message.info = reader.string();\n break;\n case 5:\n message.index = reader.int64();\n break;\n case 6:\n message.key = reader.bytes();\n break;\n case 7:\n message.value = reader.bytes();\n break;\n case 8:\n message.proofOps = proof_1.ProofOps.decode(reader, reader.uint32());\n break;\n case 9:\n message.height = reader.int64();\n break;\n case 10:\n message.codespace = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseResponseQuery);\n message.key = new Uint8Array();\n message.value = new Uint8Array();\n if (object.code !== undefined && object.code !== null) {\n message.code = Number(object.code);\n }\n else {\n message.code = 0;\n }\n if (object.log !== undefined && object.log !== null) {\n message.log = String(object.log);\n }\n else {\n message.log = \"\";\n }\n if (object.info !== undefined && object.info !== null) {\n message.info = String(object.info);\n }\n else {\n message.info = \"\";\n }\n if (object.index !== undefined && object.index !== null) {\n message.index = long_1.default.fromString(object.index);\n }\n else {\n message.index = long_1.default.ZERO;\n }\n if (object.key !== undefined && object.key !== null) {\n message.key = bytesFromBase64(object.key);\n }\n if (object.value !== undefined && object.value !== null) {\n message.value = bytesFromBase64(object.value);\n }\n if (object.proofOps !== undefined && object.proofOps !== null) {\n message.proofOps = proof_1.ProofOps.fromJSON(object.proofOps);\n }\n else {\n message.proofOps = undefined;\n }\n if (object.height !== undefined && object.height !== null) {\n message.height = long_1.default.fromString(object.height);\n }\n else {\n message.height = long_1.default.ZERO;\n }\n if (object.codespace !== undefined && object.codespace !== null) {\n message.codespace = String(object.codespace);\n }\n else {\n message.codespace = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.code !== undefined && (obj.code = message.code);\n message.log !== undefined && (obj.log = message.log);\n message.info !== undefined && (obj.info = message.info);\n message.index !== undefined && (obj.index = (message.index || long_1.default.ZERO).toString());\n message.key !== undefined &&\n (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));\n message.value !== undefined &&\n (obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array()));\n message.proofOps !== undefined &&\n (obj.proofOps = message.proofOps ? proof_1.ProofOps.toJSON(message.proofOps) : undefined);\n message.height !== undefined && (obj.height = (message.height || long_1.default.ZERO).toString());\n message.codespace !== undefined && (obj.codespace = message.codespace);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseResponseQuery);\n if (object.code !== undefined && object.code !== null) {\n message.code = object.code;\n }\n else {\n message.code = 0;\n }\n if (object.log !== undefined && object.log !== null) {\n message.log = object.log;\n }\n else {\n message.log = \"\";\n }\n if (object.info !== undefined && object.info !== null) {\n message.info = object.info;\n }\n else {\n message.info = \"\";\n }\n if (object.index !== undefined && object.index !== null) {\n message.index = object.index;\n }\n else {\n message.index = long_1.default.ZERO;\n }\n if (object.key !== undefined && object.key !== null) {\n message.key = object.key;\n }\n else {\n message.key = new Uint8Array();\n }\n if (object.value !== undefined && object.value !== null) {\n message.value = object.value;\n }\n else {\n message.value = new Uint8Array();\n }\n if (object.proofOps !== undefined && object.proofOps !== null) {\n message.proofOps = proof_1.ProofOps.fromPartial(object.proofOps);\n }\n else {\n message.proofOps = undefined;\n }\n if (object.height !== undefined && object.height !== null) {\n message.height = object.height;\n }\n else {\n message.height = long_1.default.ZERO;\n }\n if (object.codespace !== undefined && object.codespace !== null) {\n message.codespace = object.codespace;\n }\n else {\n message.codespace = \"\";\n }\n return message;\n },\n};\nconst baseResponseBeginBlock = {};\nexports.ResponseBeginBlock = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.events) {\n exports.Event.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseBeginBlock);\n message.events = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.events.push(exports.Event.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseResponseBeginBlock);\n message.events = [];\n if (object.events !== undefined && object.events !== null) {\n for (const e of object.events) {\n message.events.push(exports.Event.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.events) {\n obj.events = message.events.map((e) => (e ? exports.Event.toJSON(e) : undefined));\n }\n else {\n obj.events = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseResponseBeginBlock);\n message.events = [];\n if (object.events !== undefined && object.events !== null) {\n for (const e of object.events) {\n message.events.push(exports.Event.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseResponseCheckTx = {\n code: 0,\n log: \"\",\n info: \"\",\n gasWanted: long_1.default.ZERO,\n gasUsed: long_1.default.ZERO,\n codespace: \"\",\n};\nexports.ResponseCheckTx = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.code !== 0) {\n writer.uint32(8).uint32(message.code);\n }\n if (message.data.length !== 0) {\n writer.uint32(18).bytes(message.data);\n }\n if (message.log !== \"\") {\n writer.uint32(26).string(message.log);\n }\n if (message.info !== \"\") {\n writer.uint32(34).string(message.info);\n }\n if (!message.gasWanted.isZero()) {\n writer.uint32(40).int64(message.gasWanted);\n }\n if (!message.gasUsed.isZero()) {\n writer.uint32(48).int64(message.gasUsed);\n }\n for (const v of message.events) {\n exports.Event.encode(v, writer.uint32(58).fork()).ldelim();\n }\n if (message.codespace !== \"\") {\n writer.uint32(66).string(message.codespace);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseCheckTx);\n message.events = [];\n message.data = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.code = reader.uint32();\n break;\n case 2:\n message.data = reader.bytes();\n break;\n case 3:\n message.log = reader.string();\n break;\n case 4:\n message.info = reader.string();\n break;\n case 5:\n message.gasWanted = reader.int64();\n break;\n case 6:\n message.gasUsed = reader.int64();\n break;\n case 7:\n message.events.push(exports.Event.decode(reader, reader.uint32()));\n break;\n case 8:\n message.codespace = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseResponseCheckTx);\n message.events = [];\n message.data = new Uint8Array();\n if (object.code !== undefined && object.code !== null) {\n message.code = Number(object.code);\n }\n else {\n message.code = 0;\n }\n if (object.data !== undefined && object.data !== null) {\n message.data = bytesFromBase64(object.data);\n }\n if (object.log !== undefined && object.log !== null) {\n message.log = String(object.log);\n }\n else {\n message.log = \"\";\n }\n if (object.info !== undefined && object.info !== null) {\n message.info = String(object.info);\n }\n else {\n message.info = \"\";\n }\n if (object.gasWanted !== undefined && object.gasWanted !== null) {\n message.gasWanted = long_1.default.fromString(object.gasWanted);\n }\n else {\n message.gasWanted = long_1.default.ZERO;\n }\n if (object.gasUsed !== undefined && object.gasUsed !== null) {\n message.gasUsed = long_1.default.fromString(object.gasUsed);\n }\n else {\n message.gasUsed = long_1.default.ZERO;\n }\n if (object.events !== undefined && object.events !== null) {\n for (const e of object.events) {\n message.events.push(exports.Event.fromJSON(e));\n }\n }\n if (object.codespace !== undefined && object.codespace !== null) {\n message.codespace = String(object.codespace);\n }\n else {\n message.codespace = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.code !== undefined && (obj.code = message.code);\n message.data !== undefined &&\n (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));\n message.log !== undefined && (obj.log = message.log);\n message.info !== undefined && (obj.info = message.info);\n message.gasWanted !== undefined && (obj.gasWanted = (message.gasWanted || long_1.default.ZERO).toString());\n message.gasUsed !== undefined && (obj.gasUsed = (message.gasUsed || long_1.default.ZERO).toString());\n if (message.events) {\n obj.events = message.events.map((e) => (e ? exports.Event.toJSON(e) : undefined));\n }\n else {\n obj.events = [];\n }\n message.codespace !== undefined && (obj.codespace = message.codespace);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseResponseCheckTx);\n message.events = [];\n if (object.code !== undefined && object.code !== null) {\n message.code = object.code;\n }\n else {\n message.code = 0;\n }\n if (object.data !== undefined && object.data !== null) {\n message.data = object.data;\n }\n else {\n message.data = new Uint8Array();\n }\n if (object.log !== undefined && object.log !== null) {\n message.log = object.log;\n }\n else {\n message.log = \"\";\n }\n if (object.info !== undefined && object.info !== null) {\n message.info = object.info;\n }\n else {\n message.info = \"\";\n }\n if (object.gasWanted !== undefined && object.gasWanted !== null) {\n message.gasWanted = object.gasWanted;\n }\n else {\n message.gasWanted = long_1.default.ZERO;\n }\n if (object.gasUsed !== undefined && object.gasUsed !== null) {\n message.gasUsed = object.gasUsed;\n }\n else {\n message.gasUsed = long_1.default.ZERO;\n }\n if (object.events !== undefined && object.events !== null) {\n for (const e of object.events) {\n message.events.push(exports.Event.fromPartial(e));\n }\n }\n if (object.codespace !== undefined && object.codespace !== null) {\n message.codespace = object.codespace;\n }\n else {\n message.codespace = \"\";\n }\n return message;\n },\n};\nconst baseResponseDeliverTx = {\n code: 0,\n log: \"\",\n info: \"\",\n gasWanted: long_1.default.ZERO,\n gasUsed: long_1.default.ZERO,\n codespace: \"\",\n};\nexports.ResponseDeliverTx = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.code !== 0) {\n writer.uint32(8).uint32(message.code);\n }\n if (message.data.length !== 0) {\n writer.uint32(18).bytes(message.data);\n }\n if (message.log !== \"\") {\n writer.uint32(26).string(message.log);\n }\n if (message.info !== \"\") {\n writer.uint32(34).string(message.info);\n }\n if (!message.gasWanted.isZero()) {\n writer.uint32(40).int64(message.gasWanted);\n }\n if (!message.gasUsed.isZero()) {\n writer.uint32(48).int64(message.gasUsed);\n }\n for (const v of message.events) {\n exports.Event.encode(v, writer.uint32(58).fork()).ldelim();\n }\n if (message.codespace !== \"\") {\n writer.uint32(66).string(message.codespace);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseDeliverTx);\n message.events = [];\n message.data = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.code = reader.uint32();\n break;\n case 2:\n message.data = reader.bytes();\n break;\n case 3:\n message.log = reader.string();\n break;\n case 4:\n message.info = reader.string();\n break;\n case 5:\n message.gasWanted = reader.int64();\n break;\n case 6:\n message.gasUsed = reader.int64();\n break;\n case 7:\n message.events.push(exports.Event.decode(reader, reader.uint32()));\n break;\n case 8:\n message.codespace = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseResponseDeliverTx);\n message.events = [];\n message.data = new Uint8Array();\n if (object.code !== undefined && object.code !== null) {\n message.code = Number(object.code);\n }\n else {\n message.code = 0;\n }\n if (object.data !== undefined && object.data !== null) {\n message.data = bytesFromBase64(object.data);\n }\n if (object.log !== undefined && object.log !== null) {\n message.log = String(object.log);\n }\n else {\n message.log = \"\";\n }\n if (object.info !== undefined && object.info !== null) {\n message.info = String(object.info);\n }\n else {\n message.info = \"\";\n }\n if (object.gasWanted !== undefined && object.gasWanted !== null) {\n message.gasWanted = long_1.default.fromString(object.gasWanted);\n }\n else {\n message.gasWanted = long_1.default.ZERO;\n }\n if (object.gasUsed !== undefined && object.gasUsed !== null) {\n message.gasUsed = long_1.default.fromString(object.gasUsed);\n }\n else {\n message.gasUsed = long_1.default.ZERO;\n }\n if (object.events !== undefined && object.events !== null) {\n for (const e of object.events) {\n message.events.push(exports.Event.fromJSON(e));\n }\n }\n if (object.codespace !== undefined && object.codespace !== null) {\n message.codespace = String(object.codespace);\n }\n else {\n message.codespace = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.code !== undefined && (obj.code = message.code);\n message.data !== undefined &&\n (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));\n message.log !== undefined && (obj.log = message.log);\n message.info !== undefined && (obj.info = message.info);\n message.gasWanted !== undefined && (obj.gasWanted = (message.gasWanted || long_1.default.ZERO).toString());\n message.gasUsed !== undefined && (obj.gasUsed = (message.gasUsed || long_1.default.ZERO).toString());\n if (message.events) {\n obj.events = message.events.map((e) => (e ? exports.Event.toJSON(e) : undefined));\n }\n else {\n obj.events = [];\n }\n message.codespace !== undefined && (obj.codespace = message.codespace);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseResponseDeliverTx);\n message.events = [];\n if (object.code !== undefined && object.code !== null) {\n message.code = object.code;\n }\n else {\n message.code = 0;\n }\n if (object.data !== undefined && object.data !== null) {\n message.data = object.data;\n }\n else {\n message.data = new Uint8Array();\n }\n if (object.log !== undefined && object.log !== null) {\n message.log = object.log;\n }\n else {\n message.log = \"\";\n }\n if (object.info !== undefined && object.info !== null) {\n message.info = object.info;\n }\n else {\n message.info = \"\";\n }\n if (object.gasWanted !== undefined && object.gasWanted !== null) {\n message.gasWanted = object.gasWanted;\n }\n else {\n message.gasWanted = long_1.default.ZERO;\n }\n if (object.gasUsed !== undefined && object.gasUsed !== null) {\n message.gasUsed = object.gasUsed;\n }\n else {\n message.gasUsed = long_1.default.ZERO;\n }\n if (object.events !== undefined && object.events !== null) {\n for (const e of object.events) {\n message.events.push(exports.Event.fromPartial(e));\n }\n }\n if (object.codespace !== undefined && object.codespace !== null) {\n message.codespace = object.codespace;\n }\n else {\n message.codespace = \"\";\n }\n return message;\n },\n};\nconst baseResponseEndBlock = {};\nexports.ResponseEndBlock = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.validatorUpdates) {\n exports.ValidatorUpdate.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.consensusParamUpdates !== undefined) {\n exports.ConsensusParams.encode(message.consensusParamUpdates, writer.uint32(18).fork()).ldelim();\n }\n for (const v of message.events) {\n exports.Event.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseEndBlock);\n message.validatorUpdates = [];\n message.events = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validatorUpdates.push(exports.ValidatorUpdate.decode(reader, reader.uint32()));\n break;\n case 2:\n message.consensusParamUpdates = exports.ConsensusParams.decode(reader, reader.uint32());\n break;\n case 3:\n message.events.push(exports.Event.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseResponseEndBlock);\n message.validatorUpdates = [];\n message.events = [];\n if (object.validatorUpdates !== undefined && object.validatorUpdates !== null) {\n for (const e of object.validatorUpdates) {\n message.validatorUpdates.push(exports.ValidatorUpdate.fromJSON(e));\n }\n }\n if (object.consensusParamUpdates !== undefined && object.consensusParamUpdates !== null) {\n message.consensusParamUpdates = exports.ConsensusParams.fromJSON(object.consensusParamUpdates);\n }\n else {\n message.consensusParamUpdates = undefined;\n }\n if (object.events !== undefined && object.events !== null) {\n for (const e of object.events) {\n message.events.push(exports.Event.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.validatorUpdates) {\n obj.validatorUpdates = message.validatorUpdates.map((e) => (e ? exports.ValidatorUpdate.toJSON(e) : undefined));\n }\n else {\n obj.validatorUpdates = [];\n }\n message.consensusParamUpdates !== undefined &&\n (obj.consensusParamUpdates = message.consensusParamUpdates\n ? exports.ConsensusParams.toJSON(message.consensusParamUpdates)\n : undefined);\n if (message.events) {\n obj.events = message.events.map((e) => (e ? exports.Event.toJSON(e) : undefined));\n }\n else {\n obj.events = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseResponseEndBlock);\n message.validatorUpdates = [];\n message.events = [];\n if (object.validatorUpdates !== undefined && object.validatorUpdates !== null) {\n for (const e of object.validatorUpdates) {\n message.validatorUpdates.push(exports.ValidatorUpdate.fromPartial(e));\n }\n }\n if (object.consensusParamUpdates !== undefined && object.consensusParamUpdates !== null) {\n message.consensusParamUpdates = exports.ConsensusParams.fromPartial(object.consensusParamUpdates);\n }\n else {\n message.consensusParamUpdates = undefined;\n }\n if (object.events !== undefined && object.events !== null) {\n for (const e of object.events) {\n message.events.push(exports.Event.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseResponseCommit = { retainHeight: long_1.default.ZERO };\nexports.ResponseCommit = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.data.length !== 0) {\n writer.uint32(18).bytes(message.data);\n }\n if (!message.retainHeight.isZero()) {\n writer.uint32(24).int64(message.retainHeight);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseCommit);\n message.data = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 2:\n message.data = reader.bytes();\n break;\n case 3:\n message.retainHeight = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseResponseCommit);\n message.data = new Uint8Array();\n if (object.data !== undefined && object.data !== null) {\n message.data = bytesFromBase64(object.data);\n }\n if (object.retainHeight !== undefined && object.retainHeight !== null) {\n message.retainHeight = long_1.default.fromString(object.retainHeight);\n }\n else {\n message.retainHeight = long_1.default.ZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.data !== undefined &&\n (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));\n message.retainHeight !== undefined && (obj.retainHeight = (message.retainHeight || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseResponseCommit);\n if (object.data !== undefined && object.data !== null) {\n message.data = object.data;\n }\n else {\n message.data = new Uint8Array();\n }\n if (object.retainHeight !== undefined && object.retainHeight !== null) {\n message.retainHeight = object.retainHeight;\n }\n else {\n message.retainHeight = long_1.default.ZERO;\n }\n return message;\n },\n};\nconst baseResponseListSnapshots = {};\nexports.ResponseListSnapshots = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.snapshots) {\n exports.Snapshot.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseListSnapshots);\n message.snapshots = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.snapshots.push(exports.Snapshot.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseResponseListSnapshots);\n message.snapshots = [];\n if (object.snapshots !== undefined && object.snapshots !== null) {\n for (const e of object.snapshots) {\n message.snapshots.push(exports.Snapshot.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.snapshots) {\n obj.snapshots = message.snapshots.map((e) => (e ? exports.Snapshot.toJSON(e) : undefined));\n }\n else {\n obj.snapshots = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseResponseListSnapshots);\n message.snapshots = [];\n if (object.snapshots !== undefined && object.snapshots !== null) {\n for (const e of object.snapshots) {\n message.snapshots.push(exports.Snapshot.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseResponseOfferSnapshot = { result: 0 };\nexports.ResponseOfferSnapshot = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.result !== 0) {\n writer.uint32(8).int32(message.result);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseOfferSnapshot);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.result = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseResponseOfferSnapshot);\n if (object.result !== undefined && object.result !== null) {\n message.result = responseOfferSnapshot_ResultFromJSON(object.result);\n }\n else {\n message.result = 0;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.result !== undefined && (obj.result = responseOfferSnapshot_ResultToJSON(message.result));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseResponseOfferSnapshot);\n if (object.result !== undefined && object.result !== null) {\n message.result = object.result;\n }\n else {\n message.result = 0;\n }\n return message;\n },\n};\nconst baseResponseLoadSnapshotChunk = {};\nexports.ResponseLoadSnapshotChunk = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.chunk.length !== 0) {\n writer.uint32(10).bytes(message.chunk);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseLoadSnapshotChunk);\n message.chunk = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.chunk = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseResponseLoadSnapshotChunk);\n message.chunk = new Uint8Array();\n if (object.chunk !== undefined && object.chunk !== null) {\n message.chunk = bytesFromBase64(object.chunk);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.chunk !== undefined &&\n (obj.chunk = base64FromBytes(message.chunk !== undefined ? message.chunk : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseResponseLoadSnapshotChunk);\n if (object.chunk !== undefined && object.chunk !== null) {\n message.chunk = object.chunk;\n }\n else {\n message.chunk = new Uint8Array();\n }\n return message;\n },\n};\nconst baseResponseApplySnapshotChunk = { result: 0, refetchChunks: 0, rejectSenders: \"\" };\nexports.ResponseApplySnapshotChunk = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.result !== 0) {\n writer.uint32(8).int32(message.result);\n }\n writer.uint32(18).fork();\n for (const v of message.refetchChunks) {\n writer.uint32(v);\n }\n writer.ldelim();\n for (const v of message.rejectSenders) {\n writer.uint32(26).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseApplySnapshotChunk);\n message.refetchChunks = [];\n message.rejectSenders = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.result = reader.int32();\n break;\n case 2:\n if ((tag & 7) === 2) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.refetchChunks.push(reader.uint32());\n }\n }\n else {\n message.refetchChunks.push(reader.uint32());\n }\n break;\n case 3:\n message.rejectSenders.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseResponseApplySnapshotChunk);\n message.refetchChunks = [];\n message.rejectSenders = [];\n if (object.result !== undefined && object.result !== null) {\n message.result = responseApplySnapshotChunk_ResultFromJSON(object.result);\n }\n else {\n message.result = 0;\n }\n if (object.refetchChunks !== undefined && object.refetchChunks !== null) {\n for (const e of object.refetchChunks) {\n message.refetchChunks.push(Number(e));\n }\n }\n if (object.rejectSenders !== undefined && object.rejectSenders !== null) {\n for (const e of object.rejectSenders) {\n message.rejectSenders.push(String(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.result !== undefined && (obj.result = responseApplySnapshotChunk_ResultToJSON(message.result));\n if (message.refetchChunks) {\n obj.refetchChunks = message.refetchChunks.map((e) => e);\n }\n else {\n obj.refetchChunks = [];\n }\n if (message.rejectSenders) {\n obj.rejectSenders = message.rejectSenders.map((e) => e);\n }\n else {\n obj.rejectSenders = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseResponseApplySnapshotChunk);\n message.refetchChunks = [];\n message.rejectSenders = [];\n if (object.result !== undefined && object.result !== null) {\n message.result = object.result;\n }\n else {\n message.result = 0;\n }\n if (object.refetchChunks !== undefined && object.refetchChunks !== null) {\n for (const e of object.refetchChunks) {\n message.refetchChunks.push(e);\n }\n }\n if (object.rejectSenders !== undefined && object.rejectSenders !== null) {\n for (const e of object.rejectSenders) {\n message.rejectSenders.push(e);\n }\n }\n return message;\n },\n};\nconst baseConsensusParams = {};\nexports.ConsensusParams = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.block !== undefined) {\n exports.BlockParams.encode(message.block, writer.uint32(10).fork()).ldelim();\n }\n if (message.evidence !== undefined) {\n params_1.EvidenceParams.encode(message.evidence, writer.uint32(18).fork()).ldelim();\n }\n if (message.validator !== undefined) {\n params_1.ValidatorParams.encode(message.validator, writer.uint32(26).fork()).ldelim();\n }\n if (message.version !== undefined) {\n params_1.VersionParams.encode(message.version, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseConsensusParams);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.block = exports.BlockParams.decode(reader, reader.uint32());\n break;\n case 2:\n message.evidence = params_1.EvidenceParams.decode(reader, reader.uint32());\n break;\n case 3:\n message.validator = params_1.ValidatorParams.decode(reader, reader.uint32());\n break;\n case 4:\n message.version = params_1.VersionParams.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseConsensusParams);\n if (object.block !== undefined && object.block !== null) {\n message.block = exports.BlockParams.fromJSON(object.block);\n }\n else {\n message.block = undefined;\n }\n if (object.evidence !== undefined && object.evidence !== null) {\n message.evidence = params_1.EvidenceParams.fromJSON(object.evidence);\n }\n else {\n message.evidence = undefined;\n }\n if (object.validator !== undefined && object.validator !== null) {\n message.validator = params_1.ValidatorParams.fromJSON(object.validator);\n }\n else {\n message.validator = undefined;\n }\n if (object.version !== undefined && object.version !== null) {\n message.version = params_1.VersionParams.fromJSON(object.version);\n }\n else {\n message.version = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.block !== undefined &&\n (obj.block = message.block ? exports.BlockParams.toJSON(message.block) : undefined);\n message.evidence !== undefined &&\n (obj.evidence = message.evidence ? params_1.EvidenceParams.toJSON(message.evidence) : undefined);\n message.validator !== undefined &&\n (obj.validator = message.validator ? params_1.ValidatorParams.toJSON(message.validator) : undefined);\n message.version !== undefined &&\n (obj.version = message.version ? params_1.VersionParams.toJSON(message.version) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseConsensusParams);\n if (object.block !== undefined && object.block !== null) {\n message.block = exports.BlockParams.fromPartial(object.block);\n }\n else {\n message.block = undefined;\n }\n if (object.evidence !== undefined && object.evidence !== null) {\n message.evidence = params_1.EvidenceParams.fromPartial(object.evidence);\n }\n else {\n message.evidence = undefined;\n }\n if (object.validator !== undefined && object.validator !== null) {\n message.validator = params_1.ValidatorParams.fromPartial(object.validator);\n }\n else {\n message.validator = undefined;\n }\n if (object.version !== undefined && object.version !== null) {\n message.version = params_1.VersionParams.fromPartial(object.version);\n }\n else {\n message.version = undefined;\n }\n return message;\n },\n};\nconst baseBlockParams = { maxBytes: long_1.default.ZERO, maxGas: long_1.default.ZERO };\nexports.BlockParams = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.maxBytes.isZero()) {\n writer.uint32(8).int64(message.maxBytes);\n }\n if (!message.maxGas.isZero()) {\n writer.uint32(16).int64(message.maxGas);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseBlockParams);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.maxBytes = reader.int64();\n break;\n case 2:\n message.maxGas = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseBlockParams);\n if (object.maxBytes !== undefined && object.maxBytes !== null) {\n message.maxBytes = long_1.default.fromString(object.maxBytes);\n }\n else {\n message.maxBytes = long_1.default.ZERO;\n }\n if (object.maxGas !== undefined && object.maxGas !== null) {\n message.maxGas = long_1.default.fromString(object.maxGas);\n }\n else {\n message.maxGas = long_1.default.ZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.maxBytes !== undefined && (obj.maxBytes = (message.maxBytes || long_1.default.ZERO).toString());\n message.maxGas !== undefined && (obj.maxGas = (message.maxGas || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseBlockParams);\n if (object.maxBytes !== undefined && object.maxBytes !== null) {\n message.maxBytes = object.maxBytes;\n }\n else {\n message.maxBytes = long_1.default.ZERO;\n }\n if (object.maxGas !== undefined && object.maxGas !== null) {\n message.maxGas = object.maxGas;\n }\n else {\n message.maxGas = long_1.default.ZERO;\n }\n return message;\n },\n};\nconst baseLastCommitInfo = { round: 0 };\nexports.LastCommitInfo = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.round !== 0) {\n writer.uint32(8).int32(message.round);\n }\n for (const v of message.votes) {\n exports.VoteInfo.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseLastCommitInfo);\n message.votes = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.round = reader.int32();\n break;\n case 2:\n message.votes.push(exports.VoteInfo.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseLastCommitInfo);\n message.votes = [];\n if (object.round !== undefined && object.round !== null) {\n message.round = Number(object.round);\n }\n else {\n message.round = 0;\n }\n if (object.votes !== undefined && object.votes !== null) {\n for (const e of object.votes) {\n message.votes.push(exports.VoteInfo.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.round !== undefined && (obj.round = message.round);\n if (message.votes) {\n obj.votes = message.votes.map((e) => (e ? exports.VoteInfo.toJSON(e) : undefined));\n }\n else {\n obj.votes = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseLastCommitInfo);\n message.votes = [];\n if (object.round !== undefined && object.round !== null) {\n message.round = object.round;\n }\n else {\n message.round = 0;\n }\n if (object.votes !== undefined && object.votes !== null) {\n for (const e of object.votes) {\n message.votes.push(exports.VoteInfo.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseEvent = { type: \"\" };\nexports.Event = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.type !== \"\") {\n writer.uint32(10).string(message.type);\n }\n for (const v of message.attributes) {\n exports.EventAttribute.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseEvent);\n message.attributes = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.type = reader.string();\n break;\n case 2:\n message.attributes.push(exports.EventAttribute.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseEvent);\n message.attributes = [];\n if (object.type !== undefined && object.type !== null) {\n message.type = String(object.type);\n }\n else {\n message.type = \"\";\n }\n if (object.attributes !== undefined && object.attributes !== null) {\n for (const e of object.attributes) {\n message.attributes.push(exports.EventAttribute.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.type !== undefined && (obj.type = message.type);\n if (message.attributes) {\n obj.attributes = message.attributes.map((e) => (e ? exports.EventAttribute.toJSON(e) : undefined));\n }\n else {\n obj.attributes = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseEvent);\n message.attributes = [];\n if (object.type !== undefined && object.type !== null) {\n message.type = object.type;\n }\n else {\n message.type = \"\";\n }\n if (object.attributes !== undefined && object.attributes !== null) {\n for (const e of object.attributes) {\n message.attributes.push(exports.EventAttribute.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseEventAttribute = { index: false };\nexports.EventAttribute = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n if (message.value.length !== 0) {\n writer.uint32(18).bytes(message.value);\n }\n if (message.index === true) {\n writer.uint32(24).bool(message.index);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseEventAttribute);\n message.key = new Uint8Array();\n message.value = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n case 2:\n message.value = reader.bytes();\n break;\n case 3:\n message.index = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseEventAttribute);\n message.key = new Uint8Array();\n message.value = new Uint8Array();\n if (object.key !== undefined && object.key !== null) {\n message.key = bytesFromBase64(object.key);\n }\n if (object.value !== undefined && object.value !== null) {\n message.value = bytesFromBase64(object.value);\n }\n if (object.index !== undefined && object.index !== null) {\n message.index = Boolean(object.index);\n }\n else {\n message.index = false;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined &&\n (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));\n message.value !== undefined &&\n (obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array()));\n message.index !== undefined && (obj.index = message.index);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseEventAttribute);\n if (object.key !== undefined && object.key !== null) {\n message.key = object.key;\n }\n else {\n message.key = new Uint8Array();\n }\n if (object.value !== undefined && object.value !== null) {\n message.value = object.value;\n }\n else {\n message.value = new Uint8Array();\n }\n if (object.index !== undefined && object.index !== null) {\n message.index = object.index;\n }\n else {\n message.index = false;\n }\n return message;\n },\n};\nconst baseTxResult = { height: long_1.default.ZERO, index: 0 };\nexports.TxResult = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.height.isZero()) {\n writer.uint32(8).int64(message.height);\n }\n if (message.index !== 0) {\n writer.uint32(16).uint32(message.index);\n }\n if (message.tx.length !== 0) {\n writer.uint32(26).bytes(message.tx);\n }\n if (message.result !== undefined) {\n exports.ResponseDeliverTx.encode(message.result, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseTxResult);\n message.tx = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.height = reader.int64();\n break;\n case 2:\n message.index = reader.uint32();\n break;\n case 3:\n message.tx = reader.bytes();\n break;\n case 4:\n message.result = exports.ResponseDeliverTx.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseTxResult);\n message.tx = new Uint8Array();\n if (object.height !== undefined && object.height !== null) {\n message.height = long_1.default.fromString(object.height);\n }\n else {\n message.height = long_1.default.ZERO;\n }\n if (object.index !== undefined && object.index !== null) {\n message.index = Number(object.index);\n }\n else {\n message.index = 0;\n }\n if (object.tx !== undefined && object.tx !== null) {\n message.tx = bytesFromBase64(object.tx);\n }\n if (object.result !== undefined && object.result !== null) {\n message.result = exports.ResponseDeliverTx.fromJSON(object.result);\n }\n else {\n message.result = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.height !== undefined && (obj.height = (message.height || long_1.default.ZERO).toString());\n message.index !== undefined && (obj.index = message.index);\n message.tx !== undefined &&\n (obj.tx = base64FromBytes(message.tx !== undefined ? message.tx : new Uint8Array()));\n message.result !== undefined &&\n (obj.result = message.result ? exports.ResponseDeliverTx.toJSON(message.result) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseTxResult);\n if (object.height !== undefined && object.height !== null) {\n message.height = object.height;\n }\n else {\n message.height = long_1.default.ZERO;\n }\n if (object.index !== undefined && object.index !== null) {\n message.index = object.index;\n }\n else {\n message.index = 0;\n }\n if (object.tx !== undefined && object.tx !== null) {\n message.tx = object.tx;\n }\n else {\n message.tx = new Uint8Array();\n }\n if (object.result !== undefined && object.result !== null) {\n message.result = exports.ResponseDeliverTx.fromPartial(object.result);\n }\n else {\n message.result = undefined;\n }\n return message;\n },\n};\nconst baseValidator = { power: long_1.default.ZERO };\nexports.Validator = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.address.length !== 0) {\n writer.uint32(10).bytes(message.address);\n }\n if (!message.power.isZero()) {\n writer.uint32(24).int64(message.power);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseValidator);\n message.address = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.bytes();\n break;\n case 3:\n message.power = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseValidator);\n message.address = new Uint8Array();\n if (object.address !== undefined && object.address !== null) {\n message.address = bytesFromBase64(object.address);\n }\n if (object.power !== undefined && object.power !== null) {\n message.power = long_1.default.fromString(object.power);\n }\n else {\n message.power = long_1.default.ZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined &&\n (obj.address = base64FromBytes(message.address !== undefined ? message.address : new Uint8Array()));\n message.power !== undefined && (obj.power = (message.power || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseValidator);\n if (object.address !== undefined && object.address !== null) {\n message.address = object.address;\n }\n else {\n message.address = new Uint8Array();\n }\n if (object.power !== undefined && object.power !== null) {\n message.power = object.power;\n }\n else {\n message.power = long_1.default.ZERO;\n }\n return message;\n },\n};\nconst baseValidatorUpdate = { power: long_1.default.ZERO };\nexports.ValidatorUpdate = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.pubKey !== undefined) {\n keys_1.PublicKey.encode(message.pubKey, writer.uint32(10).fork()).ldelim();\n }\n if (!message.power.isZero()) {\n writer.uint32(16).int64(message.power);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseValidatorUpdate);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pubKey = keys_1.PublicKey.decode(reader, reader.uint32());\n break;\n case 2:\n message.power = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseValidatorUpdate);\n if (object.pubKey !== undefined && object.pubKey !== null) {\n message.pubKey = keys_1.PublicKey.fromJSON(object.pubKey);\n }\n else {\n message.pubKey = undefined;\n }\n if (object.power !== undefined && object.power !== null) {\n message.power = long_1.default.fromString(object.power);\n }\n else {\n message.power = long_1.default.ZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.pubKey !== undefined &&\n (obj.pubKey = message.pubKey ? keys_1.PublicKey.toJSON(message.pubKey) : undefined);\n message.power !== undefined && (obj.power = (message.power || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseValidatorUpdate);\n if (object.pubKey !== undefined && object.pubKey !== null) {\n message.pubKey = keys_1.PublicKey.fromPartial(object.pubKey);\n }\n else {\n message.pubKey = undefined;\n }\n if (object.power !== undefined && object.power !== null) {\n message.power = object.power;\n }\n else {\n message.power = long_1.default.ZERO;\n }\n return message;\n },\n};\nconst baseVoteInfo = { signedLastBlock: false };\nexports.VoteInfo = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.validator !== undefined) {\n exports.Validator.encode(message.validator, writer.uint32(10).fork()).ldelim();\n }\n if (message.signedLastBlock === true) {\n writer.uint32(16).bool(message.signedLastBlock);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseVoteInfo);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validator = exports.Validator.decode(reader, reader.uint32());\n break;\n case 2:\n message.signedLastBlock = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseVoteInfo);\n if (object.validator !== undefined && object.validator !== null) {\n message.validator = exports.Validator.fromJSON(object.validator);\n }\n else {\n message.validator = undefined;\n }\n if (object.signedLastBlock !== undefined && object.signedLastBlock !== null) {\n message.signedLastBlock = Boolean(object.signedLastBlock);\n }\n else {\n message.signedLastBlock = false;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.validator !== undefined &&\n (obj.validator = message.validator ? exports.Validator.toJSON(message.validator) : undefined);\n message.signedLastBlock !== undefined && (obj.signedLastBlock = message.signedLastBlock);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseVoteInfo);\n if (object.validator !== undefined && object.validator !== null) {\n message.validator = exports.Validator.fromPartial(object.validator);\n }\n else {\n message.validator = undefined;\n }\n if (object.signedLastBlock !== undefined && object.signedLastBlock !== null) {\n message.signedLastBlock = object.signedLastBlock;\n }\n else {\n message.signedLastBlock = false;\n }\n return message;\n },\n};\nconst baseEvidence = { type: 0, height: long_1.default.ZERO, totalVotingPower: long_1.default.ZERO };\nexports.Evidence = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.type !== 0) {\n writer.uint32(8).int32(message.type);\n }\n if (message.validator !== undefined) {\n exports.Validator.encode(message.validator, writer.uint32(18).fork()).ldelim();\n }\n if (!message.height.isZero()) {\n writer.uint32(24).int64(message.height);\n }\n if (message.time !== undefined) {\n timestamp_1.Timestamp.encode(toTimestamp(message.time), writer.uint32(34).fork()).ldelim();\n }\n if (!message.totalVotingPower.isZero()) {\n writer.uint32(40).int64(message.totalVotingPower);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseEvidence);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.type = reader.int32();\n break;\n case 2:\n message.validator = exports.Validator.decode(reader, reader.uint32());\n break;\n case 3:\n message.height = reader.int64();\n break;\n case 4:\n message.time = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));\n break;\n case 5:\n message.totalVotingPower = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseEvidence);\n if (object.type !== undefined && object.type !== null) {\n message.type = evidenceTypeFromJSON(object.type);\n }\n else {\n message.type = 0;\n }\n if (object.validator !== undefined && object.validator !== null) {\n message.validator = exports.Validator.fromJSON(object.validator);\n }\n else {\n message.validator = undefined;\n }\n if (object.height !== undefined && object.height !== null) {\n message.height = long_1.default.fromString(object.height);\n }\n else {\n message.height = long_1.default.ZERO;\n }\n if (object.time !== undefined && object.time !== null) {\n message.time = fromJsonTimestamp(object.time);\n }\n else {\n message.time = undefined;\n }\n if (object.totalVotingPower !== undefined && object.totalVotingPower !== null) {\n message.totalVotingPower = long_1.default.fromString(object.totalVotingPower);\n }\n else {\n message.totalVotingPower = long_1.default.ZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.type !== undefined && (obj.type = evidenceTypeToJSON(message.type));\n message.validator !== undefined &&\n (obj.validator = message.validator ? exports.Validator.toJSON(message.validator) : undefined);\n message.height !== undefined && (obj.height = (message.height || long_1.default.ZERO).toString());\n message.time !== undefined && (obj.time = message.time.toISOString());\n message.totalVotingPower !== undefined &&\n (obj.totalVotingPower = (message.totalVotingPower || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseEvidence);\n if (object.type !== undefined && object.type !== null) {\n message.type = object.type;\n }\n else {\n message.type = 0;\n }\n if (object.validator !== undefined && object.validator !== null) {\n message.validator = exports.Validator.fromPartial(object.validator);\n }\n else {\n message.validator = undefined;\n }\n if (object.height !== undefined && object.height !== null) {\n message.height = object.height;\n }\n else {\n message.height = long_1.default.ZERO;\n }\n if (object.time !== undefined && object.time !== null) {\n message.time = object.time;\n }\n else {\n message.time = undefined;\n }\n if (object.totalVotingPower !== undefined && object.totalVotingPower !== null) {\n message.totalVotingPower = object.totalVotingPower;\n }\n else {\n message.totalVotingPower = long_1.default.ZERO;\n }\n return message;\n },\n};\nconst baseSnapshot = { height: long_1.default.UZERO, format: 0, chunks: 0 };\nexports.Snapshot = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.height.isZero()) {\n writer.uint32(8).uint64(message.height);\n }\n if (message.format !== 0) {\n writer.uint32(16).uint32(message.format);\n }\n if (message.chunks !== 0) {\n writer.uint32(24).uint32(message.chunks);\n }\n if (message.hash.length !== 0) {\n writer.uint32(34).bytes(message.hash);\n }\n if (message.metadata.length !== 0) {\n writer.uint32(42).bytes(message.metadata);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSnapshot);\n message.hash = new Uint8Array();\n message.metadata = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.height = reader.uint64();\n break;\n case 2:\n message.format = reader.uint32();\n break;\n case 3:\n message.chunks = reader.uint32();\n break;\n case 4:\n message.hash = reader.bytes();\n break;\n case 5:\n message.metadata = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseSnapshot);\n message.hash = new Uint8Array();\n message.metadata = new Uint8Array();\n if (object.height !== undefined && object.height !== null) {\n message.height = long_1.default.fromString(object.height);\n }\n else {\n message.height = long_1.default.UZERO;\n }\n if (object.format !== undefined && object.format !== null) {\n message.format = Number(object.format);\n }\n else {\n message.format = 0;\n }\n if (object.chunks !== undefined && object.chunks !== null) {\n message.chunks = Number(object.chunks);\n }\n else {\n message.chunks = 0;\n }\n if (object.hash !== undefined && object.hash !== null) {\n message.hash = bytesFromBase64(object.hash);\n }\n if (object.metadata !== undefined && object.metadata !== null) {\n message.metadata = bytesFromBase64(object.metadata);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.height !== undefined && (obj.height = (message.height || long_1.default.UZERO).toString());\n message.format !== undefined && (obj.format = message.format);\n message.chunks !== undefined && (obj.chunks = message.chunks);\n message.hash !== undefined &&\n (obj.hash = base64FromBytes(message.hash !== undefined ? message.hash : new Uint8Array()));\n message.metadata !== undefined &&\n (obj.metadata = base64FromBytes(message.metadata !== undefined ? message.metadata : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseSnapshot);\n if (object.height !== undefined && object.height !== null) {\n message.height = object.height;\n }\n else {\n message.height = long_1.default.UZERO;\n }\n if (object.format !== undefined && object.format !== null) {\n message.format = object.format;\n }\n else {\n message.format = 0;\n }\n if (object.chunks !== undefined && object.chunks !== null) {\n message.chunks = object.chunks;\n }\n else {\n message.chunks = 0;\n }\n if (object.hash !== undefined && object.hash !== null) {\n message.hash = object.hash;\n }\n else {\n message.hash = new Uint8Array();\n }\n if (object.metadata !== undefined && object.metadata !== null) {\n message.metadata = object.metadata;\n }\n else {\n message.metadata = new Uint8Array();\n }\n return message;\n },\n};\nclass ABCIApplicationClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Echo = this.Echo.bind(this);\n this.Flush = this.Flush.bind(this);\n this.Info = this.Info.bind(this);\n this.SetOption = this.SetOption.bind(this);\n this.DeliverTx = this.DeliverTx.bind(this);\n this.CheckTx = this.CheckTx.bind(this);\n this.Query = this.Query.bind(this);\n this.Commit = this.Commit.bind(this);\n this.InitChain = this.InitChain.bind(this);\n this.BeginBlock = this.BeginBlock.bind(this);\n this.EndBlock = this.EndBlock.bind(this);\n this.ListSnapshots = this.ListSnapshots.bind(this);\n this.OfferSnapshot = this.OfferSnapshot.bind(this);\n this.LoadSnapshotChunk = this.LoadSnapshotChunk.bind(this);\n this.ApplySnapshotChunk = this.ApplySnapshotChunk.bind(this);\n }\n Echo(request) {\n const data = exports.RequestEcho.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"Echo\", data);\n return promise.then((data) => exports.ResponseEcho.decode(new minimal_1.default.Reader(data)));\n }\n Flush(request) {\n const data = exports.RequestFlush.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"Flush\", data);\n return promise.then((data) => exports.ResponseFlush.decode(new minimal_1.default.Reader(data)));\n }\n Info(request) {\n const data = exports.RequestInfo.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"Info\", data);\n return promise.then((data) => exports.ResponseInfo.decode(new minimal_1.default.Reader(data)));\n }\n SetOption(request) {\n const data = exports.RequestSetOption.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"SetOption\", data);\n return promise.then((data) => exports.ResponseSetOption.decode(new minimal_1.default.Reader(data)));\n }\n DeliverTx(request) {\n const data = exports.RequestDeliverTx.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"DeliverTx\", data);\n return promise.then((data) => exports.ResponseDeliverTx.decode(new minimal_1.default.Reader(data)));\n }\n CheckTx(request) {\n const data = exports.RequestCheckTx.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"CheckTx\", data);\n return promise.then((data) => exports.ResponseCheckTx.decode(new minimal_1.default.Reader(data)));\n }\n Query(request) {\n const data = exports.RequestQuery.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"Query\", data);\n return promise.then((data) => exports.ResponseQuery.decode(new minimal_1.default.Reader(data)));\n }\n Commit(request) {\n const data = exports.RequestCommit.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"Commit\", data);\n return promise.then((data) => exports.ResponseCommit.decode(new minimal_1.default.Reader(data)));\n }\n InitChain(request) {\n const data = exports.RequestInitChain.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"InitChain\", data);\n return promise.then((data) => exports.ResponseInitChain.decode(new minimal_1.default.Reader(data)));\n }\n BeginBlock(request) {\n const data = exports.RequestBeginBlock.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"BeginBlock\", data);\n return promise.then((data) => exports.ResponseBeginBlock.decode(new minimal_1.default.Reader(data)));\n }\n EndBlock(request) {\n const data = exports.RequestEndBlock.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"EndBlock\", data);\n return promise.then((data) => exports.ResponseEndBlock.decode(new minimal_1.default.Reader(data)));\n }\n ListSnapshots(request) {\n const data = exports.RequestListSnapshots.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"ListSnapshots\", data);\n return promise.then((data) => exports.ResponseListSnapshots.decode(new minimal_1.default.Reader(data)));\n }\n OfferSnapshot(request) {\n const data = exports.RequestOfferSnapshot.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"OfferSnapshot\", data);\n return promise.then((data) => exports.ResponseOfferSnapshot.decode(new minimal_1.default.Reader(data)));\n }\n LoadSnapshotChunk(request) {\n const data = exports.RequestLoadSnapshotChunk.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"LoadSnapshotChunk\", data);\n return promise.then((data) => exports.ResponseLoadSnapshotChunk.decode(new minimal_1.default.Reader(data)));\n }\n ApplySnapshotChunk(request) {\n const data = exports.RequestApplySnapshotChunk.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"ApplySnapshotChunk\", data);\n return promise.then((data) => exports.ResponseApplySnapshotChunk.decode(new minimal_1.default.Reader(data)));\n }\n}\nexports.ABCIApplicationClientImpl = ABCIApplicationClientImpl;\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nfunction toTimestamp(date) {\n const seconds = numberToLong(date.getTime() / 1000);\n const nanos = (date.getTime() % 1000) * 1000000;\n return { seconds, nanos };\n}\nfunction fromTimestamp(t) {\n let millis = t.seconds.toNumber() * 1000;\n millis += t.nanos / 1000000;\n return new Date(millis);\n}\nfunction fromJsonTimestamp(o) {\n if (o instanceof Date) {\n return o;\n }\n else if (typeof o === \"string\") {\n return new Date(o);\n }\n else {\n return fromTimestamp(timestamp_1.Timestamp.fromJSON(o));\n }\n}\nfunction numberToLong(number) {\n return long_1.default.fromNumber(number);\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=types.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PublicKey = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nexports.protobufPackage = \"tendermint.crypto\";\nconst basePublicKey = {};\nexports.PublicKey = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.ed25519 !== undefined) {\n writer.uint32(10).bytes(message.ed25519);\n }\n if (message.secp256k1 !== undefined) {\n writer.uint32(18).bytes(message.secp256k1);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, basePublicKey);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.ed25519 = reader.bytes();\n break;\n case 2:\n message.secp256k1 = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, basePublicKey);\n if (object.ed25519 !== undefined && object.ed25519 !== null) {\n message.ed25519 = bytesFromBase64(object.ed25519);\n }\n if (object.secp256k1 !== undefined && object.secp256k1 !== null) {\n message.secp256k1 = bytesFromBase64(object.secp256k1);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.ed25519 !== undefined &&\n (obj.ed25519 = message.ed25519 !== undefined ? base64FromBytes(message.ed25519) : undefined);\n message.secp256k1 !== undefined &&\n (obj.secp256k1 = message.secp256k1 !== undefined ? base64FromBytes(message.secp256k1) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, basePublicKey);\n if (object.ed25519 !== undefined && object.ed25519 !== null) {\n message.ed25519 = object.ed25519;\n }\n else {\n message.ed25519 = undefined;\n }\n if (object.secp256k1 !== undefined && object.secp256k1 !== null) {\n message.secp256k1 = object.secp256k1;\n }\n else {\n message.secp256k1 = undefined;\n }\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=keys.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ProofOps = exports.ProofOp = exports.DominoOp = exports.ValueOp = exports.Proof = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nexports.protobufPackage = \"tendermint.crypto\";\nconst baseProof = { total: long_1.default.ZERO, index: long_1.default.ZERO };\nexports.Proof = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.total.isZero()) {\n writer.uint32(8).int64(message.total);\n }\n if (!message.index.isZero()) {\n writer.uint32(16).int64(message.index);\n }\n if (message.leafHash.length !== 0) {\n writer.uint32(26).bytes(message.leafHash);\n }\n for (const v of message.aunts) {\n writer.uint32(34).bytes(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseProof);\n message.aunts = [];\n message.leafHash = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.total = reader.int64();\n break;\n case 2:\n message.index = reader.int64();\n break;\n case 3:\n message.leafHash = reader.bytes();\n break;\n case 4:\n message.aunts.push(reader.bytes());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseProof);\n message.aunts = [];\n message.leafHash = new Uint8Array();\n if (object.total !== undefined && object.total !== null) {\n message.total = long_1.default.fromString(object.total);\n }\n else {\n message.total = long_1.default.ZERO;\n }\n if (object.index !== undefined && object.index !== null) {\n message.index = long_1.default.fromString(object.index);\n }\n else {\n message.index = long_1.default.ZERO;\n }\n if (object.leafHash !== undefined && object.leafHash !== null) {\n message.leafHash = bytesFromBase64(object.leafHash);\n }\n if (object.aunts !== undefined && object.aunts !== null) {\n for (const e of object.aunts) {\n message.aunts.push(bytesFromBase64(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.total !== undefined && (obj.total = (message.total || long_1.default.ZERO).toString());\n message.index !== undefined && (obj.index = (message.index || long_1.default.ZERO).toString());\n message.leafHash !== undefined &&\n (obj.leafHash = base64FromBytes(message.leafHash !== undefined ? message.leafHash : new Uint8Array()));\n if (message.aunts) {\n obj.aunts = message.aunts.map((e) => base64FromBytes(e !== undefined ? e : new Uint8Array()));\n }\n else {\n obj.aunts = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseProof);\n message.aunts = [];\n if (object.total !== undefined && object.total !== null) {\n message.total = object.total;\n }\n else {\n message.total = long_1.default.ZERO;\n }\n if (object.index !== undefined && object.index !== null) {\n message.index = object.index;\n }\n else {\n message.index = long_1.default.ZERO;\n }\n if (object.leafHash !== undefined && object.leafHash !== null) {\n message.leafHash = object.leafHash;\n }\n else {\n message.leafHash = new Uint8Array();\n }\n if (object.aunts !== undefined && object.aunts !== null) {\n for (const e of object.aunts) {\n message.aunts.push(e);\n }\n }\n return message;\n },\n};\nconst baseValueOp = {};\nexports.ValueOp = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n if (message.proof !== undefined) {\n exports.Proof.encode(message.proof, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseValueOp);\n message.key = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n case 2:\n message.proof = exports.Proof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseValueOp);\n message.key = new Uint8Array();\n if (object.key !== undefined && object.key !== null) {\n message.key = bytesFromBase64(object.key);\n }\n if (object.proof !== undefined && object.proof !== null) {\n message.proof = exports.Proof.fromJSON(object.proof);\n }\n else {\n message.proof = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined &&\n (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));\n message.proof !== undefined && (obj.proof = message.proof ? exports.Proof.toJSON(message.proof) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseValueOp);\n if (object.key !== undefined && object.key !== null) {\n message.key = object.key;\n }\n else {\n message.key = new Uint8Array();\n }\n if (object.proof !== undefined && object.proof !== null) {\n message.proof = exports.Proof.fromPartial(object.proof);\n }\n else {\n message.proof = undefined;\n }\n return message;\n },\n};\nconst baseDominoOp = { key: \"\", input: \"\", output: \"\" };\nexports.DominoOp = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.key !== \"\") {\n writer.uint32(10).string(message.key);\n }\n if (message.input !== \"\") {\n writer.uint32(18).string(message.input);\n }\n if (message.output !== \"\") {\n writer.uint32(26).string(message.output);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDominoOp);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.string();\n break;\n case 2:\n message.input = reader.string();\n break;\n case 3:\n message.output = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseDominoOp);\n if (object.key !== undefined && object.key !== null) {\n message.key = String(object.key);\n }\n else {\n message.key = \"\";\n }\n if (object.input !== undefined && object.input !== null) {\n message.input = String(object.input);\n }\n else {\n message.input = \"\";\n }\n if (object.output !== undefined && object.output !== null) {\n message.output = String(object.output);\n }\n else {\n message.output = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined && (obj.key = message.key);\n message.input !== undefined && (obj.input = message.input);\n message.output !== undefined && (obj.output = message.output);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseDominoOp);\n if (object.key !== undefined && object.key !== null) {\n message.key = object.key;\n }\n else {\n message.key = \"\";\n }\n if (object.input !== undefined && object.input !== null) {\n message.input = object.input;\n }\n else {\n message.input = \"\";\n }\n if (object.output !== undefined && object.output !== null) {\n message.output = object.output;\n }\n else {\n message.output = \"\";\n }\n return message;\n },\n};\nconst baseProofOp = { type: \"\" };\nexports.ProofOp = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.type !== \"\") {\n writer.uint32(10).string(message.type);\n }\n if (message.key.length !== 0) {\n writer.uint32(18).bytes(message.key);\n }\n if (message.data.length !== 0) {\n writer.uint32(26).bytes(message.data);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseProofOp);\n message.key = new Uint8Array();\n message.data = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.type = reader.string();\n break;\n case 2:\n message.key = reader.bytes();\n break;\n case 3:\n message.data = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseProofOp);\n message.key = new Uint8Array();\n message.data = new Uint8Array();\n if (object.type !== undefined && object.type !== null) {\n message.type = String(object.type);\n }\n else {\n message.type = \"\";\n }\n if (object.key !== undefined && object.key !== null) {\n message.key = bytesFromBase64(object.key);\n }\n if (object.data !== undefined && object.data !== null) {\n message.data = bytesFromBase64(object.data);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.type !== undefined && (obj.type = message.type);\n message.key !== undefined &&\n (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));\n message.data !== undefined &&\n (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseProofOp);\n if (object.type !== undefined && object.type !== null) {\n message.type = object.type;\n }\n else {\n message.type = \"\";\n }\n if (object.key !== undefined && object.key !== null) {\n message.key = object.key;\n }\n else {\n message.key = new Uint8Array();\n }\n if (object.data !== undefined && object.data !== null) {\n message.data = object.data;\n }\n else {\n message.data = new Uint8Array();\n }\n return message;\n },\n};\nconst baseProofOps = {};\nexports.ProofOps = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.ops) {\n exports.ProofOp.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseProofOps);\n message.ops = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.ops.push(exports.ProofOp.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseProofOps);\n message.ops = [];\n if (object.ops !== undefined && object.ops !== null) {\n for (const e of object.ops) {\n message.ops.push(exports.ProofOp.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.ops) {\n obj.ops = message.ops.map((e) => (e ? exports.ProofOp.toJSON(e) : undefined));\n }\n else {\n obj.ops = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseProofOps);\n message.ops = [];\n if (object.ops !== undefined && object.ops !== null) {\n for (const e of object.ops) {\n message.ops.push(exports.ProofOp.fromPartial(e));\n }\n }\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=proof.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HashedParams = exports.VersionParams = exports.ValidatorParams = exports.EvidenceParams = exports.BlockParams = exports.ConsensusParams = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst duration_1 = require(\"../../google/protobuf/duration\");\nexports.protobufPackage = \"tendermint.types\";\nconst baseConsensusParams = {};\nexports.ConsensusParams = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.block !== undefined) {\n exports.BlockParams.encode(message.block, writer.uint32(10).fork()).ldelim();\n }\n if (message.evidence !== undefined) {\n exports.EvidenceParams.encode(message.evidence, writer.uint32(18).fork()).ldelim();\n }\n if (message.validator !== undefined) {\n exports.ValidatorParams.encode(message.validator, writer.uint32(26).fork()).ldelim();\n }\n if (message.version !== undefined) {\n exports.VersionParams.encode(message.version, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseConsensusParams);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.block = exports.BlockParams.decode(reader, reader.uint32());\n break;\n case 2:\n message.evidence = exports.EvidenceParams.decode(reader, reader.uint32());\n break;\n case 3:\n message.validator = exports.ValidatorParams.decode(reader, reader.uint32());\n break;\n case 4:\n message.version = exports.VersionParams.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseConsensusParams);\n if (object.block !== undefined && object.block !== null) {\n message.block = exports.BlockParams.fromJSON(object.block);\n }\n else {\n message.block = undefined;\n }\n if (object.evidence !== undefined && object.evidence !== null) {\n message.evidence = exports.EvidenceParams.fromJSON(object.evidence);\n }\n else {\n message.evidence = undefined;\n }\n if (object.validator !== undefined && object.validator !== null) {\n message.validator = exports.ValidatorParams.fromJSON(object.validator);\n }\n else {\n message.validator = undefined;\n }\n if (object.version !== undefined && object.version !== null) {\n message.version = exports.VersionParams.fromJSON(object.version);\n }\n else {\n message.version = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.block !== undefined &&\n (obj.block = message.block ? exports.BlockParams.toJSON(message.block) : undefined);\n message.evidence !== undefined &&\n (obj.evidence = message.evidence ? exports.EvidenceParams.toJSON(message.evidence) : undefined);\n message.validator !== undefined &&\n (obj.validator = message.validator ? exports.ValidatorParams.toJSON(message.validator) : undefined);\n message.version !== undefined &&\n (obj.version = message.version ? exports.VersionParams.toJSON(message.version) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseConsensusParams);\n if (object.block !== undefined && object.block !== null) {\n message.block = exports.BlockParams.fromPartial(object.block);\n }\n else {\n message.block = undefined;\n }\n if (object.evidence !== undefined && object.evidence !== null) {\n message.evidence = exports.EvidenceParams.fromPartial(object.evidence);\n }\n else {\n message.evidence = undefined;\n }\n if (object.validator !== undefined && object.validator !== null) {\n message.validator = exports.ValidatorParams.fromPartial(object.validator);\n }\n else {\n message.validator = undefined;\n }\n if (object.version !== undefined && object.version !== null) {\n message.version = exports.VersionParams.fromPartial(object.version);\n }\n else {\n message.version = undefined;\n }\n return message;\n },\n};\nconst baseBlockParams = { maxBytes: long_1.default.ZERO, maxGas: long_1.default.ZERO, timeIotaMs: long_1.default.ZERO };\nexports.BlockParams = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.maxBytes.isZero()) {\n writer.uint32(8).int64(message.maxBytes);\n }\n if (!message.maxGas.isZero()) {\n writer.uint32(16).int64(message.maxGas);\n }\n if (!message.timeIotaMs.isZero()) {\n writer.uint32(24).int64(message.timeIotaMs);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseBlockParams);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.maxBytes = reader.int64();\n break;\n case 2:\n message.maxGas = reader.int64();\n break;\n case 3:\n message.timeIotaMs = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseBlockParams);\n if (object.maxBytes !== undefined && object.maxBytes !== null) {\n message.maxBytes = long_1.default.fromString(object.maxBytes);\n }\n else {\n message.maxBytes = long_1.default.ZERO;\n }\n if (object.maxGas !== undefined && object.maxGas !== null) {\n message.maxGas = long_1.default.fromString(object.maxGas);\n }\n else {\n message.maxGas = long_1.default.ZERO;\n }\n if (object.timeIotaMs !== undefined && object.timeIotaMs !== null) {\n message.timeIotaMs = long_1.default.fromString(object.timeIotaMs);\n }\n else {\n message.timeIotaMs = long_1.default.ZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.maxBytes !== undefined && (obj.maxBytes = (message.maxBytes || long_1.default.ZERO).toString());\n message.maxGas !== undefined && (obj.maxGas = (message.maxGas || long_1.default.ZERO).toString());\n message.timeIotaMs !== undefined && (obj.timeIotaMs = (message.timeIotaMs || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseBlockParams);\n if (object.maxBytes !== undefined && object.maxBytes !== null) {\n message.maxBytes = object.maxBytes;\n }\n else {\n message.maxBytes = long_1.default.ZERO;\n }\n if (object.maxGas !== undefined && object.maxGas !== null) {\n message.maxGas = object.maxGas;\n }\n else {\n message.maxGas = long_1.default.ZERO;\n }\n if (object.timeIotaMs !== undefined && object.timeIotaMs !== null) {\n message.timeIotaMs = object.timeIotaMs;\n }\n else {\n message.timeIotaMs = long_1.default.ZERO;\n }\n return message;\n },\n};\nconst baseEvidenceParams = { maxAgeNumBlocks: long_1.default.ZERO, maxBytes: long_1.default.ZERO };\nexports.EvidenceParams = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.maxAgeNumBlocks.isZero()) {\n writer.uint32(8).int64(message.maxAgeNumBlocks);\n }\n if (message.maxAgeDuration !== undefined) {\n duration_1.Duration.encode(message.maxAgeDuration, writer.uint32(18).fork()).ldelim();\n }\n if (!message.maxBytes.isZero()) {\n writer.uint32(24).int64(message.maxBytes);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseEvidenceParams);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.maxAgeNumBlocks = reader.int64();\n break;\n case 2:\n message.maxAgeDuration = duration_1.Duration.decode(reader, reader.uint32());\n break;\n case 3:\n message.maxBytes = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseEvidenceParams);\n if (object.maxAgeNumBlocks !== undefined && object.maxAgeNumBlocks !== null) {\n message.maxAgeNumBlocks = long_1.default.fromString(object.maxAgeNumBlocks);\n }\n else {\n message.maxAgeNumBlocks = long_1.default.ZERO;\n }\n if (object.maxAgeDuration !== undefined && object.maxAgeDuration !== null) {\n message.maxAgeDuration = duration_1.Duration.fromJSON(object.maxAgeDuration);\n }\n else {\n message.maxAgeDuration = undefined;\n }\n if (object.maxBytes !== undefined && object.maxBytes !== null) {\n message.maxBytes = long_1.default.fromString(object.maxBytes);\n }\n else {\n message.maxBytes = long_1.default.ZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.maxAgeNumBlocks !== undefined &&\n (obj.maxAgeNumBlocks = (message.maxAgeNumBlocks || long_1.default.ZERO).toString());\n message.maxAgeDuration !== undefined &&\n (obj.maxAgeDuration = message.maxAgeDuration ? duration_1.Duration.toJSON(message.maxAgeDuration) : undefined);\n message.maxBytes !== undefined && (obj.maxBytes = (message.maxBytes || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseEvidenceParams);\n if (object.maxAgeNumBlocks !== undefined && object.maxAgeNumBlocks !== null) {\n message.maxAgeNumBlocks = object.maxAgeNumBlocks;\n }\n else {\n message.maxAgeNumBlocks = long_1.default.ZERO;\n }\n if (object.maxAgeDuration !== undefined && object.maxAgeDuration !== null) {\n message.maxAgeDuration = duration_1.Duration.fromPartial(object.maxAgeDuration);\n }\n else {\n message.maxAgeDuration = undefined;\n }\n if (object.maxBytes !== undefined && object.maxBytes !== null) {\n message.maxBytes = object.maxBytes;\n }\n else {\n message.maxBytes = long_1.default.ZERO;\n }\n return message;\n },\n};\nconst baseValidatorParams = { pubKeyTypes: \"\" };\nexports.ValidatorParams = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.pubKeyTypes) {\n writer.uint32(10).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseValidatorParams);\n message.pubKeyTypes = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pubKeyTypes.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseValidatorParams);\n message.pubKeyTypes = [];\n if (object.pubKeyTypes !== undefined && object.pubKeyTypes !== null) {\n for (const e of object.pubKeyTypes) {\n message.pubKeyTypes.push(String(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.pubKeyTypes) {\n obj.pubKeyTypes = message.pubKeyTypes.map((e) => e);\n }\n else {\n obj.pubKeyTypes = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseValidatorParams);\n message.pubKeyTypes = [];\n if (object.pubKeyTypes !== undefined && object.pubKeyTypes !== null) {\n for (const e of object.pubKeyTypes) {\n message.pubKeyTypes.push(e);\n }\n }\n return message;\n },\n};\nconst baseVersionParams = { appVersion: long_1.default.UZERO };\nexports.VersionParams = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.appVersion.isZero()) {\n writer.uint32(8).uint64(message.appVersion);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseVersionParams);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.appVersion = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseVersionParams);\n if (object.appVersion !== undefined && object.appVersion !== null) {\n message.appVersion = long_1.default.fromString(object.appVersion);\n }\n else {\n message.appVersion = long_1.default.UZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.appVersion !== undefined && (obj.appVersion = (message.appVersion || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseVersionParams);\n if (object.appVersion !== undefined && object.appVersion !== null) {\n message.appVersion = object.appVersion;\n }\n else {\n message.appVersion = long_1.default.UZERO;\n }\n return message;\n },\n};\nconst baseHashedParams = { blockMaxBytes: long_1.default.ZERO, blockMaxGas: long_1.default.ZERO };\nexports.HashedParams = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.blockMaxBytes.isZero()) {\n writer.uint32(8).int64(message.blockMaxBytes);\n }\n if (!message.blockMaxGas.isZero()) {\n writer.uint32(16).int64(message.blockMaxGas);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseHashedParams);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.blockMaxBytes = reader.int64();\n break;\n case 2:\n message.blockMaxGas = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseHashedParams);\n if (object.blockMaxBytes !== undefined && object.blockMaxBytes !== null) {\n message.blockMaxBytes = long_1.default.fromString(object.blockMaxBytes);\n }\n else {\n message.blockMaxBytes = long_1.default.ZERO;\n }\n if (object.blockMaxGas !== undefined && object.blockMaxGas !== null) {\n message.blockMaxGas = long_1.default.fromString(object.blockMaxGas);\n }\n else {\n message.blockMaxGas = long_1.default.ZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.blockMaxBytes !== undefined &&\n (obj.blockMaxBytes = (message.blockMaxBytes || long_1.default.ZERO).toString());\n message.blockMaxGas !== undefined && (obj.blockMaxGas = (message.blockMaxGas || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseHashedParams);\n if (object.blockMaxBytes !== undefined && object.blockMaxBytes !== null) {\n message.blockMaxBytes = object.blockMaxBytes;\n }\n else {\n message.blockMaxBytes = long_1.default.ZERO;\n }\n if (object.blockMaxGas !== undefined && object.blockMaxGas !== null) {\n message.blockMaxGas = object.blockMaxGas;\n }\n else {\n message.blockMaxGas = long_1.default.ZERO;\n }\n return message;\n },\n};\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=params.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TxProof = exports.BlockMeta = exports.LightBlock = exports.SignedHeader = exports.Proposal = exports.CommitSig = exports.Commit = exports.Vote = exports.Data = exports.Header = exports.BlockID = exports.Part = exports.PartSetHeader = exports.signedMsgTypeToJSON = exports.signedMsgTypeFromJSON = exports.SignedMsgType = exports.blockIDFlagToJSON = exports.blockIDFlagFromJSON = exports.BlockIDFlag = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst proof_1 = require(\"../../tendermint/crypto/proof\");\nconst types_1 = require(\"../../tendermint/version/types\");\nconst validator_1 = require(\"../../tendermint/types/validator\");\nconst timestamp_1 = require(\"../../google/protobuf/timestamp\");\nexports.protobufPackage = \"tendermint.types\";\n/** BlockIdFlag indicates which BlcokID the signature is for */\nvar BlockIDFlag;\n(function (BlockIDFlag) {\n BlockIDFlag[BlockIDFlag[\"BLOCK_ID_FLAG_UNKNOWN\"] = 0] = \"BLOCK_ID_FLAG_UNKNOWN\";\n BlockIDFlag[BlockIDFlag[\"BLOCK_ID_FLAG_ABSENT\"] = 1] = \"BLOCK_ID_FLAG_ABSENT\";\n BlockIDFlag[BlockIDFlag[\"BLOCK_ID_FLAG_COMMIT\"] = 2] = \"BLOCK_ID_FLAG_COMMIT\";\n BlockIDFlag[BlockIDFlag[\"BLOCK_ID_FLAG_NIL\"] = 3] = \"BLOCK_ID_FLAG_NIL\";\n BlockIDFlag[BlockIDFlag[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(BlockIDFlag = exports.BlockIDFlag || (exports.BlockIDFlag = {}));\nfunction blockIDFlagFromJSON(object) {\n switch (object) {\n case 0:\n case \"BLOCK_ID_FLAG_UNKNOWN\":\n return BlockIDFlag.BLOCK_ID_FLAG_UNKNOWN;\n case 1:\n case \"BLOCK_ID_FLAG_ABSENT\":\n return BlockIDFlag.BLOCK_ID_FLAG_ABSENT;\n case 2:\n case \"BLOCK_ID_FLAG_COMMIT\":\n return BlockIDFlag.BLOCK_ID_FLAG_COMMIT;\n case 3:\n case \"BLOCK_ID_FLAG_NIL\":\n return BlockIDFlag.BLOCK_ID_FLAG_NIL;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return BlockIDFlag.UNRECOGNIZED;\n }\n}\nexports.blockIDFlagFromJSON = blockIDFlagFromJSON;\nfunction blockIDFlagToJSON(object) {\n switch (object) {\n case BlockIDFlag.BLOCK_ID_FLAG_UNKNOWN:\n return \"BLOCK_ID_FLAG_UNKNOWN\";\n case BlockIDFlag.BLOCK_ID_FLAG_ABSENT:\n return \"BLOCK_ID_FLAG_ABSENT\";\n case BlockIDFlag.BLOCK_ID_FLAG_COMMIT:\n return \"BLOCK_ID_FLAG_COMMIT\";\n case BlockIDFlag.BLOCK_ID_FLAG_NIL:\n return \"BLOCK_ID_FLAG_NIL\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.blockIDFlagToJSON = blockIDFlagToJSON;\n/** SignedMsgType is a type of signed message in the consensus. */\nvar SignedMsgType;\n(function (SignedMsgType) {\n SignedMsgType[SignedMsgType[\"SIGNED_MSG_TYPE_UNKNOWN\"] = 0] = \"SIGNED_MSG_TYPE_UNKNOWN\";\n /** SIGNED_MSG_TYPE_PREVOTE - Votes */\n SignedMsgType[SignedMsgType[\"SIGNED_MSG_TYPE_PREVOTE\"] = 1] = \"SIGNED_MSG_TYPE_PREVOTE\";\n SignedMsgType[SignedMsgType[\"SIGNED_MSG_TYPE_PRECOMMIT\"] = 2] = \"SIGNED_MSG_TYPE_PRECOMMIT\";\n /** SIGNED_MSG_TYPE_PROPOSAL - Proposals */\n SignedMsgType[SignedMsgType[\"SIGNED_MSG_TYPE_PROPOSAL\"] = 32] = \"SIGNED_MSG_TYPE_PROPOSAL\";\n SignedMsgType[SignedMsgType[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(SignedMsgType = exports.SignedMsgType || (exports.SignedMsgType = {}));\nfunction signedMsgTypeFromJSON(object) {\n switch (object) {\n case 0:\n case \"SIGNED_MSG_TYPE_UNKNOWN\":\n return SignedMsgType.SIGNED_MSG_TYPE_UNKNOWN;\n case 1:\n case \"SIGNED_MSG_TYPE_PREVOTE\":\n return SignedMsgType.SIGNED_MSG_TYPE_PREVOTE;\n case 2:\n case \"SIGNED_MSG_TYPE_PRECOMMIT\":\n return SignedMsgType.SIGNED_MSG_TYPE_PRECOMMIT;\n case 32:\n case \"SIGNED_MSG_TYPE_PROPOSAL\":\n return SignedMsgType.SIGNED_MSG_TYPE_PROPOSAL;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return SignedMsgType.UNRECOGNIZED;\n }\n}\nexports.signedMsgTypeFromJSON = signedMsgTypeFromJSON;\nfunction signedMsgTypeToJSON(object) {\n switch (object) {\n case SignedMsgType.SIGNED_MSG_TYPE_UNKNOWN:\n return \"SIGNED_MSG_TYPE_UNKNOWN\";\n case SignedMsgType.SIGNED_MSG_TYPE_PREVOTE:\n return \"SIGNED_MSG_TYPE_PREVOTE\";\n case SignedMsgType.SIGNED_MSG_TYPE_PRECOMMIT:\n return \"SIGNED_MSG_TYPE_PRECOMMIT\";\n case SignedMsgType.SIGNED_MSG_TYPE_PROPOSAL:\n return \"SIGNED_MSG_TYPE_PROPOSAL\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.signedMsgTypeToJSON = signedMsgTypeToJSON;\nconst basePartSetHeader = { total: 0 };\nexports.PartSetHeader = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.total !== 0) {\n writer.uint32(8).uint32(message.total);\n }\n if (message.hash.length !== 0) {\n writer.uint32(18).bytes(message.hash);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, basePartSetHeader);\n message.hash = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.total = reader.uint32();\n break;\n case 2:\n message.hash = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, basePartSetHeader);\n message.hash = new Uint8Array();\n if (object.total !== undefined && object.total !== null) {\n message.total = Number(object.total);\n }\n else {\n message.total = 0;\n }\n if (object.hash !== undefined && object.hash !== null) {\n message.hash = bytesFromBase64(object.hash);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.total !== undefined && (obj.total = message.total);\n message.hash !== undefined &&\n (obj.hash = base64FromBytes(message.hash !== undefined ? message.hash : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, basePartSetHeader);\n if (object.total !== undefined && object.total !== null) {\n message.total = object.total;\n }\n else {\n message.total = 0;\n }\n if (object.hash !== undefined && object.hash !== null) {\n message.hash = object.hash;\n }\n else {\n message.hash = new Uint8Array();\n }\n return message;\n },\n};\nconst basePart = { index: 0 };\nexports.Part = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.index !== 0) {\n writer.uint32(8).uint32(message.index);\n }\n if (message.bytes.length !== 0) {\n writer.uint32(18).bytes(message.bytes);\n }\n if (message.proof !== undefined) {\n proof_1.Proof.encode(message.proof, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, basePart);\n message.bytes = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.index = reader.uint32();\n break;\n case 2:\n message.bytes = reader.bytes();\n break;\n case 3:\n message.proof = proof_1.Proof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, basePart);\n message.bytes = new Uint8Array();\n if (object.index !== undefined && object.index !== null) {\n message.index = Number(object.index);\n }\n else {\n message.index = 0;\n }\n if (object.bytes !== undefined && object.bytes !== null) {\n message.bytes = bytesFromBase64(object.bytes);\n }\n if (object.proof !== undefined && object.proof !== null) {\n message.proof = proof_1.Proof.fromJSON(object.proof);\n }\n else {\n message.proof = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.index !== undefined && (obj.index = message.index);\n message.bytes !== undefined &&\n (obj.bytes = base64FromBytes(message.bytes !== undefined ? message.bytes : new Uint8Array()));\n message.proof !== undefined && (obj.proof = message.proof ? proof_1.Proof.toJSON(message.proof) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, basePart);\n if (object.index !== undefined && object.index !== null) {\n message.index = object.index;\n }\n else {\n message.index = 0;\n }\n if (object.bytes !== undefined && object.bytes !== null) {\n message.bytes = object.bytes;\n }\n else {\n message.bytes = new Uint8Array();\n }\n if (object.proof !== undefined && object.proof !== null) {\n message.proof = proof_1.Proof.fromPartial(object.proof);\n }\n else {\n message.proof = undefined;\n }\n return message;\n },\n};\nconst baseBlockID = {};\nexports.BlockID = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.hash.length !== 0) {\n writer.uint32(10).bytes(message.hash);\n }\n if (message.partSetHeader !== undefined) {\n exports.PartSetHeader.encode(message.partSetHeader, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseBlockID);\n message.hash = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hash = reader.bytes();\n break;\n case 2:\n message.partSetHeader = exports.PartSetHeader.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseBlockID);\n message.hash = new Uint8Array();\n if (object.hash !== undefined && object.hash !== null) {\n message.hash = bytesFromBase64(object.hash);\n }\n if (object.partSetHeader !== undefined && object.partSetHeader !== null) {\n message.partSetHeader = exports.PartSetHeader.fromJSON(object.partSetHeader);\n }\n else {\n message.partSetHeader = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.hash !== undefined &&\n (obj.hash = base64FromBytes(message.hash !== undefined ? message.hash : new Uint8Array()));\n message.partSetHeader !== undefined &&\n (obj.partSetHeader = message.partSetHeader ? exports.PartSetHeader.toJSON(message.partSetHeader) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseBlockID);\n if (object.hash !== undefined && object.hash !== null) {\n message.hash = object.hash;\n }\n else {\n message.hash = new Uint8Array();\n }\n if (object.partSetHeader !== undefined && object.partSetHeader !== null) {\n message.partSetHeader = exports.PartSetHeader.fromPartial(object.partSetHeader);\n }\n else {\n message.partSetHeader = undefined;\n }\n return message;\n },\n};\nconst baseHeader = { chainId: \"\", height: long_1.default.ZERO };\nexports.Header = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.version !== undefined) {\n types_1.Consensus.encode(message.version, writer.uint32(10).fork()).ldelim();\n }\n if (message.chainId !== \"\") {\n writer.uint32(18).string(message.chainId);\n }\n if (!message.height.isZero()) {\n writer.uint32(24).int64(message.height);\n }\n if (message.time !== undefined) {\n timestamp_1.Timestamp.encode(toTimestamp(message.time), writer.uint32(34).fork()).ldelim();\n }\n if (message.lastBlockId !== undefined) {\n exports.BlockID.encode(message.lastBlockId, writer.uint32(42).fork()).ldelim();\n }\n if (message.lastCommitHash.length !== 0) {\n writer.uint32(50).bytes(message.lastCommitHash);\n }\n if (message.dataHash.length !== 0) {\n writer.uint32(58).bytes(message.dataHash);\n }\n if (message.validatorsHash.length !== 0) {\n writer.uint32(66).bytes(message.validatorsHash);\n }\n if (message.nextValidatorsHash.length !== 0) {\n writer.uint32(74).bytes(message.nextValidatorsHash);\n }\n if (message.consensusHash.length !== 0) {\n writer.uint32(82).bytes(message.consensusHash);\n }\n if (message.appHash.length !== 0) {\n writer.uint32(90).bytes(message.appHash);\n }\n if (message.lastResultsHash.length !== 0) {\n writer.uint32(98).bytes(message.lastResultsHash);\n }\n if (message.evidenceHash.length !== 0) {\n writer.uint32(106).bytes(message.evidenceHash);\n }\n if (message.proposerAddress.length !== 0) {\n writer.uint32(114).bytes(message.proposerAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseHeader);\n message.lastCommitHash = new Uint8Array();\n message.dataHash = new Uint8Array();\n message.validatorsHash = new Uint8Array();\n message.nextValidatorsHash = new Uint8Array();\n message.consensusHash = new Uint8Array();\n message.appHash = new Uint8Array();\n message.lastResultsHash = new Uint8Array();\n message.evidenceHash = new Uint8Array();\n message.proposerAddress = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.version = types_1.Consensus.decode(reader, reader.uint32());\n break;\n case 2:\n message.chainId = reader.string();\n break;\n case 3:\n message.height = reader.int64();\n break;\n case 4:\n message.time = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));\n break;\n case 5:\n message.lastBlockId = exports.BlockID.decode(reader, reader.uint32());\n break;\n case 6:\n message.lastCommitHash = reader.bytes();\n break;\n case 7:\n message.dataHash = reader.bytes();\n break;\n case 8:\n message.validatorsHash = reader.bytes();\n break;\n case 9:\n message.nextValidatorsHash = reader.bytes();\n break;\n case 10:\n message.consensusHash = reader.bytes();\n break;\n case 11:\n message.appHash = reader.bytes();\n break;\n case 12:\n message.lastResultsHash = reader.bytes();\n break;\n case 13:\n message.evidenceHash = reader.bytes();\n break;\n case 14:\n message.proposerAddress = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseHeader);\n message.lastCommitHash = new Uint8Array();\n message.dataHash = new Uint8Array();\n message.validatorsHash = new Uint8Array();\n message.nextValidatorsHash = new Uint8Array();\n message.consensusHash = new Uint8Array();\n message.appHash = new Uint8Array();\n message.lastResultsHash = new Uint8Array();\n message.evidenceHash = new Uint8Array();\n message.proposerAddress = new Uint8Array();\n if (object.version !== undefined && object.version !== null) {\n message.version = types_1.Consensus.fromJSON(object.version);\n }\n else {\n message.version = undefined;\n }\n if (object.chainId !== undefined && object.chainId !== null) {\n message.chainId = String(object.chainId);\n }\n else {\n message.chainId = \"\";\n }\n if (object.height !== undefined && object.height !== null) {\n message.height = long_1.default.fromString(object.height);\n }\n else {\n message.height = long_1.default.ZERO;\n }\n if (object.time !== undefined && object.time !== null) {\n message.time = fromJsonTimestamp(object.time);\n }\n else {\n message.time = undefined;\n }\n if (object.lastBlockId !== undefined && object.lastBlockId !== null) {\n message.lastBlockId = exports.BlockID.fromJSON(object.lastBlockId);\n }\n else {\n message.lastBlockId = undefined;\n }\n if (object.lastCommitHash !== undefined && object.lastCommitHash !== null) {\n message.lastCommitHash = bytesFromBase64(object.lastCommitHash);\n }\n if (object.dataHash !== undefined && object.dataHash !== null) {\n message.dataHash = bytesFromBase64(object.dataHash);\n }\n if (object.validatorsHash !== undefined && object.validatorsHash !== null) {\n message.validatorsHash = bytesFromBase64(object.validatorsHash);\n }\n if (object.nextValidatorsHash !== undefined && object.nextValidatorsHash !== null) {\n message.nextValidatorsHash = bytesFromBase64(object.nextValidatorsHash);\n }\n if (object.consensusHash !== undefined && object.consensusHash !== null) {\n message.consensusHash = bytesFromBase64(object.consensusHash);\n }\n if (object.appHash !== undefined && object.appHash !== null) {\n message.appHash = bytesFromBase64(object.appHash);\n }\n if (object.lastResultsHash !== undefined && object.lastResultsHash !== null) {\n message.lastResultsHash = bytesFromBase64(object.lastResultsHash);\n }\n if (object.evidenceHash !== undefined && object.evidenceHash !== null) {\n message.evidenceHash = bytesFromBase64(object.evidenceHash);\n }\n if (object.proposerAddress !== undefined && object.proposerAddress !== null) {\n message.proposerAddress = bytesFromBase64(object.proposerAddress);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.version !== undefined &&\n (obj.version = message.version ? types_1.Consensus.toJSON(message.version) : undefined);\n message.chainId !== undefined && (obj.chainId = message.chainId);\n message.height !== undefined && (obj.height = (message.height || long_1.default.ZERO).toString());\n message.time !== undefined && (obj.time = message.time.toISOString());\n message.lastBlockId !== undefined &&\n (obj.lastBlockId = message.lastBlockId ? exports.BlockID.toJSON(message.lastBlockId) : undefined);\n message.lastCommitHash !== undefined &&\n (obj.lastCommitHash = base64FromBytes(message.lastCommitHash !== undefined ? message.lastCommitHash : new Uint8Array()));\n message.dataHash !== undefined &&\n (obj.dataHash = base64FromBytes(message.dataHash !== undefined ? message.dataHash : new Uint8Array()));\n message.validatorsHash !== undefined &&\n (obj.validatorsHash = base64FromBytes(message.validatorsHash !== undefined ? message.validatorsHash : new Uint8Array()));\n message.nextValidatorsHash !== undefined &&\n (obj.nextValidatorsHash = base64FromBytes(message.nextValidatorsHash !== undefined ? message.nextValidatorsHash : new Uint8Array()));\n message.consensusHash !== undefined &&\n (obj.consensusHash = base64FromBytes(message.consensusHash !== undefined ? message.consensusHash : new Uint8Array()));\n message.appHash !== undefined &&\n (obj.appHash = base64FromBytes(message.appHash !== undefined ? message.appHash : new Uint8Array()));\n message.lastResultsHash !== undefined &&\n (obj.lastResultsHash = base64FromBytes(message.lastResultsHash !== undefined ? message.lastResultsHash : new Uint8Array()));\n message.evidenceHash !== undefined &&\n (obj.evidenceHash = base64FromBytes(message.evidenceHash !== undefined ? message.evidenceHash : new Uint8Array()));\n message.proposerAddress !== undefined &&\n (obj.proposerAddress = base64FromBytes(message.proposerAddress !== undefined ? message.proposerAddress : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseHeader);\n if (object.version !== undefined && object.version !== null) {\n message.version = types_1.Consensus.fromPartial(object.version);\n }\n else {\n message.version = undefined;\n }\n if (object.chainId !== undefined && object.chainId !== null) {\n message.chainId = object.chainId;\n }\n else {\n message.chainId = \"\";\n }\n if (object.height !== undefined && object.height !== null) {\n message.height = object.height;\n }\n else {\n message.height = long_1.default.ZERO;\n }\n if (object.time !== undefined && object.time !== null) {\n message.time = object.time;\n }\n else {\n message.time = undefined;\n }\n if (object.lastBlockId !== undefined && object.lastBlockId !== null) {\n message.lastBlockId = exports.BlockID.fromPartial(object.lastBlockId);\n }\n else {\n message.lastBlockId = undefined;\n }\n if (object.lastCommitHash !== undefined && object.lastCommitHash !== null) {\n message.lastCommitHash = object.lastCommitHash;\n }\n else {\n message.lastCommitHash = new Uint8Array();\n }\n if (object.dataHash !== undefined && object.dataHash !== null) {\n message.dataHash = object.dataHash;\n }\n else {\n message.dataHash = new Uint8Array();\n }\n if (object.validatorsHash !== undefined && object.validatorsHash !== null) {\n message.validatorsHash = object.validatorsHash;\n }\n else {\n message.validatorsHash = new Uint8Array();\n }\n if (object.nextValidatorsHash !== undefined && object.nextValidatorsHash !== null) {\n message.nextValidatorsHash = object.nextValidatorsHash;\n }\n else {\n message.nextValidatorsHash = new Uint8Array();\n }\n if (object.consensusHash !== undefined && object.consensusHash !== null) {\n message.consensusHash = object.consensusHash;\n }\n else {\n message.consensusHash = new Uint8Array();\n }\n if (object.appHash !== undefined && object.appHash !== null) {\n message.appHash = object.appHash;\n }\n else {\n message.appHash = new Uint8Array();\n }\n if (object.lastResultsHash !== undefined && object.lastResultsHash !== null) {\n message.lastResultsHash = object.lastResultsHash;\n }\n else {\n message.lastResultsHash = new Uint8Array();\n }\n if (object.evidenceHash !== undefined && object.evidenceHash !== null) {\n message.evidenceHash = object.evidenceHash;\n }\n else {\n message.evidenceHash = new Uint8Array();\n }\n if (object.proposerAddress !== undefined && object.proposerAddress !== null) {\n message.proposerAddress = object.proposerAddress;\n }\n else {\n message.proposerAddress = new Uint8Array();\n }\n return message;\n },\n};\nconst baseData = {};\nexports.Data = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.txs) {\n writer.uint32(10).bytes(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseData);\n message.txs = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.txs.push(reader.bytes());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseData);\n message.txs = [];\n if (object.txs !== undefined && object.txs !== null) {\n for (const e of object.txs) {\n message.txs.push(bytesFromBase64(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.txs) {\n obj.txs = message.txs.map((e) => base64FromBytes(e !== undefined ? e : new Uint8Array()));\n }\n else {\n obj.txs = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseData);\n message.txs = [];\n if (object.txs !== undefined && object.txs !== null) {\n for (const e of object.txs) {\n message.txs.push(e);\n }\n }\n return message;\n },\n};\nconst baseVote = { type: 0, height: long_1.default.ZERO, round: 0, validatorIndex: 0 };\nexports.Vote = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.type !== 0) {\n writer.uint32(8).int32(message.type);\n }\n if (!message.height.isZero()) {\n writer.uint32(16).int64(message.height);\n }\n if (message.round !== 0) {\n writer.uint32(24).int32(message.round);\n }\n if (message.blockId !== undefined) {\n exports.BlockID.encode(message.blockId, writer.uint32(34).fork()).ldelim();\n }\n if (message.timestamp !== undefined) {\n timestamp_1.Timestamp.encode(toTimestamp(message.timestamp), writer.uint32(42).fork()).ldelim();\n }\n if (message.validatorAddress.length !== 0) {\n writer.uint32(50).bytes(message.validatorAddress);\n }\n if (message.validatorIndex !== 0) {\n writer.uint32(56).int32(message.validatorIndex);\n }\n if (message.signature.length !== 0) {\n writer.uint32(66).bytes(message.signature);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseVote);\n message.validatorAddress = new Uint8Array();\n message.signature = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.type = reader.int32();\n break;\n case 2:\n message.height = reader.int64();\n break;\n case 3:\n message.round = reader.int32();\n break;\n case 4:\n message.blockId = exports.BlockID.decode(reader, reader.uint32());\n break;\n case 5:\n message.timestamp = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));\n break;\n case 6:\n message.validatorAddress = reader.bytes();\n break;\n case 7:\n message.validatorIndex = reader.int32();\n break;\n case 8:\n message.signature = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseVote);\n message.validatorAddress = new Uint8Array();\n message.signature = new Uint8Array();\n if (object.type !== undefined && object.type !== null) {\n message.type = signedMsgTypeFromJSON(object.type);\n }\n else {\n message.type = 0;\n }\n if (object.height !== undefined && object.height !== null) {\n message.height = long_1.default.fromString(object.height);\n }\n else {\n message.height = long_1.default.ZERO;\n }\n if (object.round !== undefined && object.round !== null) {\n message.round = Number(object.round);\n }\n else {\n message.round = 0;\n }\n if (object.blockId !== undefined && object.blockId !== null) {\n message.blockId = exports.BlockID.fromJSON(object.blockId);\n }\n else {\n message.blockId = undefined;\n }\n if (object.timestamp !== undefined && object.timestamp !== null) {\n message.timestamp = fromJsonTimestamp(object.timestamp);\n }\n else {\n message.timestamp = undefined;\n }\n if (object.validatorAddress !== undefined && object.validatorAddress !== null) {\n message.validatorAddress = bytesFromBase64(object.validatorAddress);\n }\n if (object.validatorIndex !== undefined && object.validatorIndex !== null) {\n message.validatorIndex = Number(object.validatorIndex);\n }\n else {\n message.validatorIndex = 0;\n }\n if (object.signature !== undefined && object.signature !== null) {\n message.signature = bytesFromBase64(object.signature);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.type !== undefined && (obj.type = signedMsgTypeToJSON(message.type));\n message.height !== undefined && (obj.height = (message.height || long_1.default.ZERO).toString());\n message.round !== undefined && (obj.round = message.round);\n message.blockId !== undefined &&\n (obj.blockId = message.blockId ? exports.BlockID.toJSON(message.blockId) : undefined);\n message.timestamp !== undefined && (obj.timestamp = message.timestamp.toISOString());\n message.validatorAddress !== undefined &&\n (obj.validatorAddress = base64FromBytes(message.validatorAddress !== undefined ? message.validatorAddress : new Uint8Array()));\n message.validatorIndex !== undefined && (obj.validatorIndex = message.validatorIndex);\n message.signature !== undefined &&\n (obj.signature = base64FromBytes(message.signature !== undefined ? message.signature : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseVote);\n if (object.type !== undefined && object.type !== null) {\n message.type = object.type;\n }\n else {\n message.type = 0;\n }\n if (object.height !== undefined && object.height !== null) {\n message.height = object.height;\n }\n else {\n message.height = long_1.default.ZERO;\n }\n if (object.round !== undefined && object.round !== null) {\n message.round = object.round;\n }\n else {\n message.round = 0;\n }\n if (object.blockId !== undefined && object.blockId !== null) {\n message.blockId = exports.BlockID.fromPartial(object.blockId);\n }\n else {\n message.blockId = undefined;\n }\n if (object.timestamp !== undefined && object.timestamp !== null) {\n message.timestamp = object.timestamp;\n }\n else {\n message.timestamp = undefined;\n }\n if (object.validatorAddress !== undefined && object.validatorAddress !== null) {\n message.validatorAddress = object.validatorAddress;\n }\n else {\n message.validatorAddress = new Uint8Array();\n }\n if (object.validatorIndex !== undefined && object.validatorIndex !== null) {\n message.validatorIndex = object.validatorIndex;\n }\n else {\n message.validatorIndex = 0;\n }\n if (object.signature !== undefined && object.signature !== null) {\n message.signature = object.signature;\n }\n else {\n message.signature = new Uint8Array();\n }\n return message;\n },\n};\nconst baseCommit = { height: long_1.default.ZERO, round: 0 };\nexports.Commit = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.height.isZero()) {\n writer.uint32(8).int64(message.height);\n }\n if (message.round !== 0) {\n writer.uint32(16).int32(message.round);\n }\n if (message.blockId !== undefined) {\n exports.BlockID.encode(message.blockId, writer.uint32(26).fork()).ldelim();\n }\n for (const v of message.signatures) {\n exports.CommitSig.encode(v, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseCommit);\n message.signatures = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.height = reader.int64();\n break;\n case 2:\n message.round = reader.int32();\n break;\n case 3:\n message.blockId = exports.BlockID.decode(reader, reader.uint32());\n break;\n case 4:\n message.signatures.push(exports.CommitSig.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseCommit);\n message.signatures = [];\n if (object.height !== undefined && object.height !== null) {\n message.height = long_1.default.fromString(object.height);\n }\n else {\n message.height = long_1.default.ZERO;\n }\n if (object.round !== undefined && object.round !== null) {\n message.round = Number(object.round);\n }\n else {\n message.round = 0;\n }\n if (object.blockId !== undefined && object.blockId !== null) {\n message.blockId = exports.BlockID.fromJSON(object.blockId);\n }\n else {\n message.blockId = undefined;\n }\n if (object.signatures !== undefined && object.signatures !== null) {\n for (const e of object.signatures) {\n message.signatures.push(exports.CommitSig.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.height !== undefined && (obj.height = (message.height || long_1.default.ZERO).toString());\n message.round !== undefined && (obj.round = message.round);\n message.blockId !== undefined &&\n (obj.blockId = message.blockId ? exports.BlockID.toJSON(message.blockId) : undefined);\n if (message.signatures) {\n obj.signatures = message.signatures.map((e) => (e ? exports.CommitSig.toJSON(e) : undefined));\n }\n else {\n obj.signatures = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseCommit);\n message.signatures = [];\n if (object.height !== undefined && object.height !== null) {\n message.height = object.height;\n }\n else {\n message.height = long_1.default.ZERO;\n }\n if (object.round !== undefined && object.round !== null) {\n message.round = object.round;\n }\n else {\n message.round = 0;\n }\n if (object.blockId !== undefined && object.blockId !== null) {\n message.blockId = exports.BlockID.fromPartial(object.blockId);\n }\n else {\n message.blockId = undefined;\n }\n if (object.signatures !== undefined && object.signatures !== null) {\n for (const e of object.signatures) {\n message.signatures.push(exports.CommitSig.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseCommitSig = { blockIdFlag: 0 };\nexports.CommitSig = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.blockIdFlag !== 0) {\n writer.uint32(8).int32(message.blockIdFlag);\n }\n if (message.validatorAddress.length !== 0) {\n writer.uint32(18).bytes(message.validatorAddress);\n }\n if (message.timestamp !== undefined) {\n timestamp_1.Timestamp.encode(toTimestamp(message.timestamp), writer.uint32(26).fork()).ldelim();\n }\n if (message.signature.length !== 0) {\n writer.uint32(34).bytes(message.signature);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseCommitSig);\n message.validatorAddress = new Uint8Array();\n message.signature = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.blockIdFlag = reader.int32();\n break;\n case 2:\n message.validatorAddress = reader.bytes();\n break;\n case 3:\n message.timestamp = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));\n break;\n case 4:\n message.signature = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseCommitSig);\n message.validatorAddress = new Uint8Array();\n message.signature = new Uint8Array();\n if (object.blockIdFlag !== undefined && object.blockIdFlag !== null) {\n message.blockIdFlag = blockIDFlagFromJSON(object.blockIdFlag);\n }\n else {\n message.blockIdFlag = 0;\n }\n if (object.validatorAddress !== undefined && object.validatorAddress !== null) {\n message.validatorAddress = bytesFromBase64(object.validatorAddress);\n }\n if (object.timestamp !== undefined && object.timestamp !== null) {\n message.timestamp = fromJsonTimestamp(object.timestamp);\n }\n else {\n message.timestamp = undefined;\n }\n if (object.signature !== undefined && object.signature !== null) {\n message.signature = bytesFromBase64(object.signature);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.blockIdFlag !== undefined && (obj.blockIdFlag = blockIDFlagToJSON(message.blockIdFlag));\n message.validatorAddress !== undefined &&\n (obj.validatorAddress = base64FromBytes(message.validatorAddress !== undefined ? message.validatorAddress : new Uint8Array()));\n message.timestamp !== undefined && (obj.timestamp = message.timestamp.toISOString());\n message.signature !== undefined &&\n (obj.signature = base64FromBytes(message.signature !== undefined ? message.signature : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseCommitSig);\n if (object.blockIdFlag !== undefined && object.blockIdFlag !== null) {\n message.blockIdFlag = object.blockIdFlag;\n }\n else {\n message.blockIdFlag = 0;\n }\n if (object.validatorAddress !== undefined && object.validatorAddress !== null) {\n message.validatorAddress = object.validatorAddress;\n }\n else {\n message.validatorAddress = new Uint8Array();\n }\n if (object.timestamp !== undefined && object.timestamp !== null) {\n message.timestamp = object.timestamp;\n }\n else {\n message.timestamp = undefined;\n }\n if (object.signature !== undefined && object.signature !== null) {\n message.signature = object.signature;\n }\n else {\n message.signature = new Uint8Array();\n }\n return message;\n },\n};\nconst baseProposal = { type: 0, height: long_1.default.ZERO, round: 0, polRound: 0 };\nexports.Proposal = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.type !== 0) {\n writer.uint32(8).int32(message.type);\n }\n if (!message.height.isZero()) {\n writer.uint32(16).int64(message.height);\n }\n if (message.round !== 0) {\n writer.uint32(24).int32(message.round);\n }\n if (message.polRound !== 0) {\n writer.uint32(32).int32(message.polRound);\n }\n if (message.blockId !== undefined) {\n exports.BlockID.encode(message.blockId, writer.uint32(42).fork()).ldelim();\n }\n if (message.timestamp !== undefined) {\n timestamp_1.Timestamp.encode(toTimestamp(message.timestamp), writer.uint32(50).fork()).ldelim();\n }\n if (message.signature.length !== 0) {\n writer.uint32(58).bytes(message.signature);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseProposal);\n message.signature = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.type = reader.int32();\n break;\n case 2:\n message.height = reader.int64();\n break;\n case 3:\n message.round = reader.int32();\n break;\n case 4:\n message.polRound = reader.int32();\n break;\n case 5:\n message.blockId = exports.BlockID.decode(reader, reader.uint32());\n break;\n case 6:\n message.timestamp = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));\n break;\n case 7:\n message.signature = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseProposal);\n message.signature = new Uint8Array();\n if (object.type !== undefined && object.type !== null) {\n message.type = signedMsgTypeFromJSON(object.type);\n }\n else {\n message.type = 0;\n }\n if (object.height !== undefined && object.height !== null) {\n message.height = long_1.default.fromString(object.height);\n }\n else {\n message.height = long_1.default.ZERO;\n }\n if (object.round !== undefined && object.round !== null) {\n message.round = Number(object.round);\n }\n else {\n message.round = 0;\n }\n if (object.polRound !== undefined && object.polRound !== null) {\n message.polRound = Number(object.polRound);\n }\n else {\n message.polRound = 0;\n }\n if (object.blockId !== undefined && object.blockId !== null) {\n message.blockId = exports.BlockID.fromJSON(object.blockId);\n }\n else {\n message.blockId = undefined;\n }\n if (object.timestamp !== undefined && object.timestamp !== null) {\n message.timestamp = fromJsonTimestamp(object.timestamp);\n }\n else {\n message.timestamp = undefined;\n }\n if (object.signature !== undefined && object.signature !== null) {\n message.signature = bytesFromBase64(object.signature);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.type !== undefined && (obj.type = signedMsgTypeToJSON(message.type));\n message.height !== undefined && (obj.height = (message.height || long_1.default.ZERO).toString());\n message.round !== undefined && (obj.round = message.round);\n message.polRound !== undefined && (obj.polRound = message.polRound);\n message.blockId !== undefined &&\n (obj.blockId = message.blockId ? exports.BlockID.toJSON(message.blockId) : undefined);\n message.timestamp !== undefined && (obj.timestamp = message.timestamp.toISOString());\n message.signature !== undefined &&\n (obj.signature = base64FromBytes(message.signature !== undefined ? message.signature : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseProposal);\n if (object.type !== undefined && object.type !== null) {\n message.type = object.type;\n }\n else {\n message.type = 0;\n }\n if (object.height !== undefined && object.height !== null) {\n message.height = object.height;\n }\n else {\n message.height = long_1.default.ZERO;\n }\n if (object.round !== undefined && object.round !== null) {\n message.round = object.round;\n }\n else {\n message.round = 0;\n }\n if (object.polRound !== undefined && object.polRound !== null) {\n message.polRound = object.polRound;\n }\n else {\n message.polRound = 0;\n }\n if (object.blockId !== undefined && object.blockId !== null) {\n message.blockId = exports.BlockID.fromPartial(object.blockId);\n }\n else {\n message.blockId = undefined;\n }\n if (object.timestamp !== undefined && object.timestamp !== null) {\n message.timestamp = object.timestamp;\n }\n else {\n message.timestamp = undefined;\n }\n if (object.signature !== undefined && object.signature !== null) {\n message.signature = object.signature;\n }\n else {\n message.signature = new Uint8Array();\n }\n return message;\n },\n};\nconst baseSignedHeader = {};\nexports.SignedHeader = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.header !== undefined) {\n exports.Header.encode(message.header, writer.uint32(10).fork()).ldelim();\n }\n if (message.commit !== undefined) {\n exports.Commit.encode(message.commit, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSignedHeader);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.header = exports.Header.decode(reader, reader.uint32());\n break;\n case 2:\n message.commit = exports.Commit.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseSignedHeader);\n if (object.header !== undefined && object.header !== null) {\n message.header = exports.Header.fromJSON(object.header);\n }\n else {\n message.header = undefined;\n }\n if (object.commit !== undefined && object.commit !== null) {\n message.commit = exports.Commit.fromJSON(object.commit);\n }\n else {\n message.commit = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.header !== undefined && (obj.header = message.header ? exports.Header.toJSON(message.header) : undefined);\n message.commit !== undefined && (obj.commit = message.commit ? exports.Commit.toJSON(message.commit) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseSignedHeader);\n if (object.header !== undefined && object.header !== null) {\n message.header = exports.Header.fromPartial(object.header);\n }\n else {\n message.header = undefined;\n }\n if (object.commit !== undefined && object.commit !== null) {\n message.commit = exports.Commit.fromPartial(object.commit);\n }\n else {\n message.commit = undefined;\n }\n return message;\n },\n};\nconst baseLightBlock = {};\nexports.LightBlock = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.signedHeader !== undefined) {\n exports.SignedHeader.encode(message.signedHeader, writer.uint32(10).fork()).ldelim();\n }\n if (message.validatorSet !== undefined) {\n validator_1.ValidatorSet.encode(message.validatorSet, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseLightBlock);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.signedHeader = exports.SignedHeader.decode(reader, reader.uint32());\n break;\n case 2:\n message.validatorSet = validator_1.ValidatorSet.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseLightBlock);\n if (object.signedHeader !== undefined && object.signedHeader !== null) {\n message.signedHeader = exports.SignedHeader.fromJSON(object.signedHeader);\n }\n else {\n message.signedHeader = undefined;\n }\n if (object.validatorSet !== undefined && object.validatorSet !== null) {\n message.validatorSet = validator_1.ValidatorSet.fromJSON(object.validatorSet);\n }\n else {\n message.validatorSet = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.signedHeader !== undefined &&\n (obj.signedHeader = message.signedHeader ? exports.SignedHeader.toJSON(message.signedHeader) : undefined);\n message.validatorSet !== undefined &&\n (obj.validatorSet = message.validatorSet ? validator_1.ValidatorSet.toJSON(message.validatorSet) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseLightBlock);\n if (object.signedHeader !== undefined && object.signedHeader !== null) {\n message.signedHeader = exports.SignedHeader.fromPartial(object.signedHeader);\n }\n else {\n message.signedHeader = undefined;\n }\n if (object.validatorSet !== undefined && object.validatorSet !== null) {\n message.validatorSet = validator_1.ValidatorSet.fromPartial(object.validatorSet);\n }\n else {\n message.validatorSet = undefined;\n }\n return message;\n },\n};\nconst baseBlockMeta = { blockSize: long_1.default.ZERO, numTxs: long_1.default.ZERO };\nexports.BlockMeta = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.blockId !== undefined) {\n exports.BlockID.encode(message.blockId, writer.uint32(10).fork()).ldelim();\n }\n if (!message.blockSize.isZero()) {\n writer.uint32(16).int64(message.blockSize);\n }\n if (message.header !== undefined) {\n exports.Header.encode(message.header, writer.uint32(26).fork()).ldelim();\n }\n if (!message.numTxs.isZero()) {\n writer.uint32(32).int64(message.numTxs);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseBlockMeta);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.blockId = exports.BlockID.decode(reader, reader.uint32());\n break;\n case 2:\n message.blockSize = reader.int64();\n break;\n case 3:\n message.header = exports.Header.decode(reader, reader.uint32());\n break;\n case 4:\n message.numTxs = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseBlockMeta);\n if (object.blockId !== undefined && object.blockId !== null) {\n message.blockId = exports.BlockID.fromJSON(object.blockId);\n }\n else {\n message.blockId = undefined;\n }\n if (object.blockSize !== undefined && object.blockSize !== null) {\n message.blockSize = long_1.default.fromString(object.blockSize);\n }\n else {\n message.blockSize = long_1.default.ZERO;\n }\n if (object.header !== undefined && object.header !== null) {\n message.header = exports.Header.fromJSON(object.header);\n }\n else {\n message.header = undefined;\n }\n if (object.numTxs !== undefined && object.numTxs !== null) {\n message.numTxs = long_1.default.fromString(object.numTxs);\n }\n else {\n message.numTxs = long_1.default.ZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.blockId !== undefined &&\n (obj.blockId = message.blockId ? exports.BlockID.toJSON(message.blockId) : undefined);\n message.blockSize !== undefined && (obj.blockSize = (message.blockSize || long_1.default.ZERO).toString());\n message.header !== undefined && (obj.header = message.header ? exports.Header.toJSON(message.header) : undefined);\n message.numTxs !== undefined && (obj.numTxs = (message.numTxs || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseBlockMeta);\n if (object.blockId !== undefined && object.blockId !== null) {\n message.blockId = exports.BlockID.fromPartial(object.blockId);\n }\n else {\n message.blockId = undefined;\n }\n if (object.blockSize !== undefined && object.blockSize !== null) {\n message.blockSize = object.blockSize;\n }\n else {\n message.blockSize = long_1.default.ZERO;\n }\n if (object.header !== undefined && object.header !== null) {\n message.header = exports.Header.fromPartial(object.header);\n }\n else {\n message.header = undefined;\n }\n if (object.numTxs !== undefined && object.numTxs !== null) {\n message.numTxs = object.numTxs;\n }\n else {\n message.numTxs = long_1.default.ZERO;\n }\n return message;\n },\n};\nconst baseTxProof = {};\nexports.TxProof = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.rootHash.length !== 0) {\n writer.uint32(10).bytes(message.rootHash);\n }\n if (message.data.length !== 0) {\n writer.uint32(18).bytes(message.data);\n }\n if (message.proof !== undefined) {\n proof_1.Proof.encode(message.proof, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseTxProof);\n message.rootHash = new Uint8Array();\n message.data = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.rootHash = reader.bytes();\n break;\n case 2:\n message.data = reader.bytes();\n break;\n case 3:\n message.proof = proof_1.Proof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseTxProof);\n message.rootHash = new Uint8Array();\n message.data = new Uint8Array();\n if (object.rootHash !== undefined && object.rootHash !== null) {\n message.rootHash = bytesFromBase64(object.rootHash);\n }\n if (object.data !== undefined && object.data !== null) {\n message.data = bytesFromBase64(object.data);\n }\n if (object.proof !== undefined && object.proof !== null) {\n message.proof = proof_1.Proof.fromJSON(object.proof);\n }\n else {\n message.proof = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.rootHash !== undefined &&\n (obj.rootHash = base64FromBytes(message.rootHash !== undefined ? message.rootHash : new Uint8Array()));\n message.data !== undefined &&\n (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));\n message.proof !== undefined && (obj.proof = message.proof ? proof_1.Proof.toJSON(message.proof) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseTxProof);\n if (object.rootHash !== undefined && object.rootHash !== null) {\n message.rootHash = object.rootHash;\n }\n else {\n message.rootHash = new Uint8Array();\n }\n if (object.data !== undefined && object.data !== null) {\n message.data = object.data;\n }\n else {\n message.data = new Uint8Array();\n }\n if (object.proof !== undefined && object.proof !== null) {\n message.proof = proof_1.Proof.fromPartial(object.proof);\n }\n else {\n message.proof = undefined;\n }\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nfunction toTimestamp(date) {\n const seconds = numberToLong(date.getTime() / 1000);\n const nanos = (date.getTime() % 1000) * 1000000;\n return { seconds, nanos };\n}\nfunction fromTimestamp(t) {\n let millis = t.seconds.toNumber() * 1000;\n millis += t.nanos / 1000000;\n return new Date(millis);\n}\nfunction fromJsonTimestamp(o) {\n if (o instanceof Date) {\n return o;\n }\n else if (typeof o === \"string\") {\n return new Date(o);\n }\n else {\n return fromTimestamp(timestamp_1.Timestamp.fromJSON(o));\n }\n}\nfunction numberToLong(number) {\n return long_1.default.fromNumber(number);\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=types.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SimpleValidator = exports.Validator = exports.ValidatorSet = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst keys_1 = require(\"../../tendermint/crypto/keys\");\nexports.protobufPackage = \"tendermint.types\";\nconst baseValidatorSet = { totalVotingPower: long_1.default.ZERO };\nexports.ValidatorSet = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.validators) {\n exports.Validator.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.proposer !== undefined) {\n exports.Validator.encode(message.proposer, writer.uint32(18).fork()).ldelim();\n }\n if (!message.totalVotingPower.isZero()) {\n writer.uint32(24).int64(message.totalVotingPower);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseValidatorSet);\n message.validators = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validators.push(exports.Validator.decode(reader, reader.uint32()));\n break;\n case 2:\n message.proposer = exports.Validator.decode(reader, reader.uint32());\n break;\n case 3:\n message.totalVotingPower = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseValidatorSet);\n message.validators = [];\n if (object.validators !== undefined && object.validators !== null) {\n for (const e of object.validators) {\n message.validators.push(exports.Validator.fromJSON(e));\n }\n }\n if (object.proposer !== undefined && object.proposer !== null) {\n message.proposer = exports.Validator.fromJSON(object.proposer);\n }\n else {\n message.proposer = undefined;\n }\n if (object.totalVotingPower !== undefined && object.totalVotingPower !== null) {\n message.totalVotingPower = long_1.default.fromString(object.totalVotingPower);\n }\n else {\n message.totalVotingPower = long_1.default.ZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.validators) {\n obj.validators = message.validators.map((e) => (e ? exports.Validator.toJSON(e) : undefined));\n }\n else {\n obj.validators = [];\n }\n message.proposer !== undefined &&\n (obj.proposer = message.proposer ? exports.Validator.toJSON(message.proposer) : undefined);\n message.totalVotingPower !== undefined &&\n (obj.totalVotingPower = (message.totalVotingPower || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseValidatorSet);\n message.validators = [];\n if (object.validators !== undefined && object.validators !== null) {\n for (const e of object.validators) {\n message.validators.push(exports.Validator.fromPartial(e));\n }\n }\n if (object.proposer !== undefined && object.proposer !== null) {\n message.proposer = exports.Validator.fromPartial(object.proposer);\n }\n else {\n message.proposer = undefined;\n }\n if (object.totalVotingPower !== undefined && object.totalVotingPower !== null) {\n message.totalVotingPower = object.totalVotingPower;\n }\n else {\n message.totalVotingPower = long_1.default.ZERO;\n }\n return message;\n },\n};\nconst baseValidator = { votingPower: long_1.default.ZERO, proposerPriority: long_1.default.ZERO };\nexports.Validator = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.address.length !== 0) {\n writer.uint32(10).bytes(message.address);\n }\n if (message.pubKey !== undefined) {\n keys_1.PublicKey.encode(message.pubKey, writer.uint32(18).fork()).ldelim();\n }\n if (!message.votingPower.isZero()) {\n writer.uint32(24).int64(message.votingPower);\n }\n if (!message.proposerPriority.isZero()) {\n writer.uint32(32).int64(message.proposerPriority);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseValidator);\n message.address = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.bytes();\n break;\n case 2:\n message.pubKey = keys_1.PublicKey.decode(reader, reader.uint32());\n break;\n case 3:\n message.votingPower = reader.int64();\n break;\n case 4:\n message.proposerPriority = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseValidator);\n message.address = new Uint8Array();\n if (object.address !== undefined && object.address !== null) {\n message.address = bytesFromBase64(object.address);\n }\n if (object.pubKey !== undefined && object.pubKey !== null) {\n message.pubKey = keys_1.PublicKey.fromJSON(object.pubKey);\n }\n else {\n message.pubKey = undefined;\n }\n if (object.votingPower !== undefined && object.votingPower !== null) {\n message.votingPower = long_1.default.fromString(object.votingPower);\n }\n else {\n message.votingPower = long_1.default.ZERO;\n }\n if (object.proposerPriority !== undefined && object.proposerPriority !== null) {\n message.proposerPriority = long_1.default.fromString(object.proposerPriority);\n }\n else {\n message.proposerPriority = long_1.default.ZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined &&\n (obj.address = base64FromBytes(message.address !== undefined ? message.address : new Uint8Array()));\n message.pubKey !== undefined &&\n (obj.pubKey = message.pubKey ? keys_1.PublicKey.toJSON(message.pubKey) : undefined);\n message.votingPower !== undefined && (obj.votingPower = (message.votingPower || long_1.default.ZERO).toString());\n message.proposerPriority !== undefined &&\n (obj.proposerPriority = (message.proposerPriority || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseValidator);\n if (object.address !== undefined && object.address !== null) {\n message.address = object.address;\n }\n else {\n message.address = new Uint8Array();\n }\n if (object.pubKey !== undefined && object.pubKey !== null) {\n message.pubKey = keys_1.PublicKey.fromPartial(object.pubKey);\n }\n else {\n message.pubKey = undefined;\n }\n if (object.votingPower !== undefined && object.votingPower !== null) {\n message.votingPower = object.votingPower;\n }\n else {\n message.votingPower = long_1.default.ZERO;\n }\n if (object.proposerPriority !== undefined && object.proposerPriority !== null) {\n message.proposerPriority = object.proposerPriority;\n }\n else {\n message.proposerPriority = long_1.default.ZERO;\n }\n return message;\n },\n};\nconst baseSimpleValidator = { votingPower: long_1.default.ZERO };\nexports.SimpleValidator = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.pubKey !== undefined) {\n keys_1.PublicKey.encode(message.pubKey, writer.uint32(10).fork()).ldelim();\n }\n if (!message.votingPower.isZero()) {\n writer.uint32(16).int64(message.votingPower);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSimpleValidator);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pubKey = keys_1.PublicKey.decode(reader, reader.uint32());\n break;\n case 2:\n message.votingPower = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseSimpleValidator);\n if (object.pubKey !== undefined && object.pubKey !== null) {\n message.pubKey = keys_1.PublicKey.fromJSON(object.pubKey);\n }\n else {\n message.pubKey = undefined;\n }\n if (object.votingPower !== undefined && object.votingPower !== null) {\n message.votingPower = long_1.default.fromString(object.votingPower);\n }\n else {\n message.votingPower = long_1.default.ZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.pubKey !== undefined &&\n (obj.pubKey = message.pubKey ? keys_1.PublicKey.toJSON(message.pubKey) : undefined);\n message.votingPower !== undefined && (obj.votingPower = (message.votingPower || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseSimpleValidator);\n if (object.pubKey !== undefined && object.pubKey !== null) {\n message.pubKey = keys_1.PublicKey.fromPartial(object.pubKey);\n }\n else {\n message.pubKey = undefined;\n }\n if (object.votingPower !== undefined && object.votingPower !== null) {\n message.votingPower = object.votingPower;\n }\n else {\n message.votingPower = long_1.default.ZERO;\n }\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=validator.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Consensus = exports.App = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nexports.protobufPackage = \"tendermint.version\";\nconst baseApp = { protocol: long_1.default.UZERO, software: \"\" };\nexports.App = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.protocol.isZero()) {\n writer.uint32(8).uint64(message.protocol);\n }\n if (message.software !== \"\") {\n writer.uint32(18).string(message.software);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseApp);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.protocol = reader.uint64();\n break;\n case 2:\n message.software = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseApp);\n if (object.protocol !== undefined && object.protocol !== null) {\n message.protocol = long_1.default.fromString(object.protocol);\n }\n else {\n message.protocol = long_1.default.UZERO;\n }\n if (object.software !== undefined && object.software !== null) {\n message.software = String(object.software);\n }\n else {\n message.software = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.protocol !== undefined && (obj.protocol = (message.protocol || long_1.default.UZERO).toString());\n message.software !== undefined && (obj.software = message.software);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseApp);\n if (object.protocol !== undefined && object.protocol !== null) {\n message.protocol = object.protocol;\n }\n else {\n message.protocol = long_1.default.UZERO;\n }\n if (object.software !== undefined && object.software !== null) {\n message.software = object.software;\n }\n else {\n message.software = \"\";\n }\n return message;\n },\n};\nconst baseConsensus = { block: long_1.default.UZERO, app: long_1.default.UZERO };\nexports.Consensus = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.block.isZero()) {\n writer.uint32(8).uint64(message.block);\n }\n if (!message.app.isZero()) {\n writer.uint32(16).uint64(message.app);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseConsensus);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.block = reader.uint64();\n break;\n case 2:\n message.app = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseConsensus);\n if (object.block !== undefined && object.block !== null) {\n message.block = long_1.default.fromString(object.block);\n }\n else {\n message.block = long_1.default.UZERO;\n }\n if (object.app !== undefined && object.app !== null) {\n message.app = long_1.default.fromString(object.app);\n }\n else {\n message.app = long_1.default.UZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.block !== undefined && (obj.block = (message.block || long_1.default.UZERO).toString());\n message.app !== undefined && (obj.app = (message.app || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseConsensus);\n if (object.block !== undefined && object.block !== null) {\n message.block = object.block;\n }\n else {\n message.block = long_1.default.UZERO;\n }\n if (object.app !== undefined && object.app !== null) {\n message.app = object.app;\n }\n else {\n message.app = long_1.default.UZERO;\n }\n return message;\n },\n};\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=types.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgClientImpl = exports.MsgSwapSendResponse = exports.MsgSwapSend = exports.MsgSwapResponse = exports.MsgSwap = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst coin_1 = require(\"../../../cosmos/base/v1beta1/coin\");\nexports.protobufPackage = \"terra.market.v1beta1\";\nconst baseMsgSwap = { trader: \"\", askDenom: \"\" };\nexports.MsgSwap = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.trader !== \"\") {\n writer.uint32(10).string(message.trader);\n }\n if (message.offerCoin !== undefined) {\n coin_1.Coin.encode(message.offerCoin, writer.uint32(18).fork()).ldelim();\n }\n if (message.askDenom !== \"\") {\n writer.uint32(26).string(message.askDenom);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgSwap);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.trader = reader.string();\n break;\n case 2:\n message.offerCoin = coin_1.Coin.decode(reader, reader.uint32());\n break;\n case 3:\n message.askDenom = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgSwap);\n if (object.trader !== undefined && object.trader !== null) {\n message.trader = String(object.trader);\n }\n else {\n message.trader = \"\";\n }\n if (object.offerCoin !== undefined && object.offerCoin !== null) {\n message.offerCoin = coin_1.Coin.fromJSON(object.offerCoin);\n }\n else {\n message.offerCoin = undefined;\n }\n if (object.askDenom !== undefined && object.askDenom !== null) {\n message.askDenom = String(object.askDenom);\n }\n else {\n message.askDenom = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.trader !== undefined && (obj.trader = message.trader);\n message.offerCoin !== undefined &&\n (obj.offerCoin = message.offerCoin ? coin_1.Coin.toJSON(message.offerCoin) : undefined);\n message.askDenom !== undefined && (obj.askDenom = message.askDenom);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgSwap);\n if (object.trader !== undefined && object.trader !== null) {\n message.trader = object.trader;\n }\n else {\n message.trader = \"\";\n }\n if (object.offerCoin !== undefined && object.offerCoin !== null) {\n message.offerCoin = coin_1.Coin.fromPartial(object.offerCoin);\n }\n else {\n message.offerCoin = undefined;\n }\n if (object.askDenom !== undefined && object.askDenom !== null) {\n message.askDenom = object.askDenom;\n }\n else {\n message.askDenom = \"\";\n }\n return message;\n },\n};\nconst baseMsgSwapResponse = {};\nexports.MsgSwapResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.swapCoin !== undefined) {\n coin_1.Coin.encode(message.swapCoin, writer.uint32(10).fork()).ldelim();\n }\n if (message.swapFee !== undefined) {\n coin_1.Coin.encode(message.swapFee, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgSwapResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.swapCoin = coin_1.Coin.decode(reader, reader.uint32());\n break;\n case 2:\n message.swapFee = coin_1.Coin.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgSwapResponse);\n if (object.swapCoin !== undefined && object.swapCoin !== null) {\n message.swapCoin = coin_1.Coin.fromJSON(object.swapCoin);\n }\n else {\n message.swapCoin = undefined;\n }\n if (object.swapFee !== undefined && object.swapFee !== null) {\n message.swapFee = coin_1.Coin.fromJSON(object.swapFee);\n }\n else {\n message.swapFee = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.swapCoin !== undefined &&\n (obj.swapCoin = message.swapCoin ? coin_1.Coin.toJSON(message.swapCoin) : undefined);\n message.swapFee !== undefined &&\n (obj.swapFee = message.swapFee ? coin_1.Coin.toJSON(message.swapFee) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgSwapResponse);\n if (object.swapCoin !== undefined && object.swapCoin !== null) {\n message.swapCoin = coin_1.Coin.fromPartial(object.swapCoin);\n }\n else {\n message.swapCoin = undefined;\n }\n if (object.swapFee !== undefined && object.swapFee !== null) {\n message.swapFee = coin_1.Coin.fromPartial(object.swapFee);\n }\n else {\n message.swapFee = undefined;\n }\n return message;\n },\n};\nconst baseMsgSwapSend = { fromAddress: \"\", toAddress: \"\", askDenom: \"\" };\nexports.MsgSwapSend = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.fromAddress !== \"\") {\n writer.uint32(10).string(message.fromAddress);\n }\n if (message.toAddress !== \"\") {\n writer.uint32(18).string(message.toAddress);\n }\n if (message.offerCoin !== undefined) {\n coin_1.Coin.encode(message.offerCoin, writer.uint32(26).fork()).ldelim();\n }\n if (message.askDenom !== \"\") {\n writer.uint32(34).string(message.askDenom);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgSwapSend);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.fromAddress = reader.string();\n break;\n case 2:\n message.toAddress = reader.string();\n break;\n case 3:\n message.offerCoin = coin_1.Coin.decode(reader, reader.uint32());\n break;\n case 4:\n message.askDenom = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgSwapSend);\n if (object.fromAddress !== undefined && object.fromAddress !== null) {\n message.fromAddress = String(object.fromAddress);\n }\n else {\n message.fromAddress = \"\";\n }\n if (object.toAddress !== undefined && object.toAddress !== null) {\n message.toAddress = String(object.toAddress);\n }\n else {\n message.toAddress = \"\";\n }\n if (object.offerCoin !== undefined && object.offerCoin !== null) {\n message.offerCoin = coin_1.Coin.fromJSON(object.offerCoin);\n }\n else {\n message.offerCoin = undefined;\n }\n if (object.askDenom !== undefined && object.askDenom !== null) {\n message.askDenom = String(object.askDenom);\n }\n else {\n message.askDenom = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.fromAddress !== undefined && (obj.fromAddress = message.fromAddress);\n message.toAddress !== undefined && (obj.toAddress = message.toAddress);\n message.offerCoin !== undefined &&\n (obj.offerCoin = message.offerCoin ? coin_1.Coin.toJSON(message.offerCoin) : undefined);\n message.askDenom !== undefined && (obj.askDenom = message.askDenom);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgSwapSend);\n if (object.fromAddress !== undefined && object.fromAddress !== null) {\n message.fromAddress = object.fromAddress;\n }\n else {\n message.fromAddress = \"\";\n }\n if (object.toAddress !== undefined && object.toAddress !== null) {\n message.toAddress = object.toAddress;\n }\n else {\n message.toAddress = \"\";\n }\n if (object.offerCoin !== undefined && object.offerCoin !== null) {\n message.offerCoin = coin_1.Coin.fromPartial(object.offerCoin);\n }\n else {\n message.offerCoin = undefined;\n }\n if (object.askDenom !== undefined && object.askDenom !== null) {\n message.askDenom = object.askDenom;\n }\n else {\n message.askDenom = \"\";\n }\n return message;\n },\n};\nconst baseMsgSwapSendResponse = {};\nexports.MsgSwapSendResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.swapCoin !== undefined) {\n coin_1.Coin.encode(message.swapCoin, writer.uint32(10).fork()).ldelim();\n }\n if (message.swapFee !== undefined) {\n coin_1.Coin.encode(message.swapFee, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgSwapSendResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.swapCoin = coin_1.Coin.decode(reader, reader.uint32());\n break;\n case 2:\n message.swapFee = coin_1.Coin.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgSwapSendResponse);\n if (object.swapCoin !== undefined && object.swapCoin !== null) {\n message.swapCoin = coin_1.Coin.fromJSON(object.swapCoin);\n }\n else {\n message.swapCoin = undefined;\n }\n if (object.swapFee !== undefined && object.swapFee !== null) {\n message.swapFee = coin_1.Coin.fromJSON(object.swapFee);\n }\n else {\n message.swapFee = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.swapCoin !== undefined &&\n (obj.swapCoin = message.swapCoin ? coin_1.Coin.toJSON(message.swapCoin) : undefined);\n message.swapFee !== undefined &&\n (obj.swapFee = message.swapFee ? coin_1.Coin.toJSON(message.swapFee) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgSwapSendResponse);\n if (object.swapCoin !== undefined && object.swapCoin !== null) {\n message.swapCoin = coin_1.Coin.fromPartial(object.swapCoin);\n }\n else {\n message.swapCoin = undefined;\n }\n if (object.swapFee !== undefined && object.swapFee !== null) {\n message.swapFee = coin_1.Coin.fromPartial(object.swapFee);\n }\n else {\n message.swapFee = undefined;\n }\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Swap = this.Swap.bind(this);\n this.SwapSend = this.SwapSend.bind(this);\n }\n Swap(request) {\n const data = exports.MsgSwap.encode(request).finish();\n const promise = this.rpc.request(\"terra.market.v1beta1.Msg\", \"Swap\", data);\n return promise.then((data) => exports.MsgSwapResponse.decode(new minimal_1.default.Reader(data)));\n }\n SwapSend(request) {\n const data = exports.MsgSwapSend.encode(request).finish();\n const promise = this.rpc.request(\"terra.market.v1beta1.Msg\", \"SwapSend\", data);\n return promise.then((data) => exports.MsgSwapSendResponse.decode(new minimal_1.default.Reader(data)));\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=tx.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ExchangeRateTuple = exports.AggregateExchangeRateVote = exports.AggregateExchangeRatePrevote = exports.Denom = exports.Params = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nexports.protobufPackage = \"terra.oracle.v1beta1\";\nconst baseParams = {\n votePeriod: long_1.default.UZERO,\n voteThreshold: \"\",\n rewardBand: \"\",\n rewardDistributionWindow: long_1.default.UZERO,\n slashFraction: \"\",\n slashWindow: long_1.default.UZERO,\n minValidPerWindow: \"\",\n};\nexports.Params = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.votePeriod.isZero()) {\n writer.uint32(8).uint64(message.votePeriod);\n }\n if (message.voteThreshold !== \"\") {\n writer.uint32(18).string(message.voteThreshold);\n }\n if (message.rewardBand !== \"\") {\n writer.uint32(26).string(message.rewardBand);\n }\n if (!message.rewardDistributionWindow.isZero()) {\n writer.uint32(32).uint64(message.rewardDistributionWindow);\n }\n for (const v of message.whitelist) {\n exports.Denom.encode(v, writer.uint32(42).fork()).ldelim();\n }\n if (message.slashFraction !== \"\") {\n writer.uint32(50).string(message.slashFraction);\n }\n if (!message.slashWindow.isZero()) {\n writer.uint32(56).uint64(message.slashWindow);\n }\n if (message.minValidPerWindow !== \"\") {\n writer.uint32(66).string(message.minValidPerWindow);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseParams);\n message.whitelist = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.votePeriod = reader.uint64();\n break;\n case 2:\n message.voteThreshold = reader.string();\n break;\n case 3:\n message.rewardBand = reader.string();\n break;\n case 4:\n message.rewardDistributionWindow = reader.uint64();\n break;\n case 5:\n message.whitelist.push(exports.Denom.decode(reader, reader.uint32()));\n break;\n case 6:\n message.slashFraction = reader.string();\n break;\n case 7:\n message.slashWindow = reader.uint64();\n break;\n case 8:\n message.minValidPerWindow = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseParams);\n message.whitelist = [];\n if (object.votePeriod !== undefined && object.votePeriod !== null) {\n message.votePeriod = long_1.default.fromString(object.votePeriod);\n }\n else {\n message.votePeriod = long_1.default.UZERO;\n }\n if (object.voteThreshold !== undefined && object.voteThreshold !== null) {\n message.voteThreshold = String(object.voteThreshold);\n }\n else {\n message.voteThreshold = \"\";\n }\n if (object.rewardBand !== undefined && object.rewardBand !== null) {\n message.rewardBand = String(object.rewardBand);\n }\n else {\n message.rewardBand = \"\";\n }\n if (object.rewardDistributionWindow !== undefined && object.rewardDistributionWindow !== null) {\n message.rewardDistributionWindow = long_1.default.fromString(object.rewardDistributionWindow);\n }\n else {\n message.rewardDistributionWindow = long_1.default.UZERO;\n }\n if (object.whitelist !== undefined && object.whitelist !== null) {\n for (const e of object.whitelist) {\n message.whitelist.push(exports.Denom.fromJSON(e));\n }\n }\n if (object.slashFraction !== undefined && object.slashFraction !== null) {\n message.slashFraction = String(object.slashFraction);\n }\n else {\n message.slashFraction = \"\";\n }\n if (object.slashWindow !== undefined && object.slashWindow !== null) {\n message.slashWindow = long_1.default.fromString(object.slashWindow);\n }\n else {\n message.slashWindow = long_1.default.UZERO;\n }\n if (object.minValidPerWindow !== undefined && object.minValidPerWindow !== null) {\n message.minValidPerWindow = String(object.minValidPerWindow);\n }\n else {\n message.minValidPerWindow = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.votePeriod !== undefined && (obj.votePeriod = (message.votePeriod || long_1.default.UZERO).toString());\n message.voteThreshold !== undefined && (obj.voteThreshold = message.voteThreshold);\n message.rewardBand !== undefined && (obj.rewardBand = message.rewardBand);\n message.rewardDistributionWindow !== undefined &&\n (obj.rewardDistributionWindow = (message.rewardDistributionWindow || long_1.default.UZERO).toString());\n if (message.whitelist) {\n obj.whitelist = message.whitelist.map((e) => (e ? exports.Denom.toJSON(e) : undefined));\n }\n else {\n obj.whitelist = [];\n }\n message.slashFraction !== undefined && (obj.slashFraction = message.slashFraction);\n message.slashWindow !== undefined && (obj.slashWindow = (message.slashWindow || long_1.default.UZERO).toString());\n message.minValidPerWindow !== undefined && (obj.minValidPerWindow = message.minValidPerWindow);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseParams);\n message.whitelist = [];\n if (object.votePeriod !== undefined && object.votePeriod !== null) {\n message.votePeriod = object.votePeriod;\n }\n else {\n message.votePeriod = long_1.default.UZERO;\n }\n if (object.voteThreshold !== undefined && object.voteThreshold !== null) {\n message.voteThreshold = object.voteThreshold;\n }\n else {\n message.voteThreshold = \"\";\n }\n if (object.rewardBand !== undefined && object.rewardBand !== null) {\n message.rewardBand = object.rewardBand;\n }\n else {\n message.rewardBand = \"\";\n }\n if (object.rewardDistributionWindow !== undefined && object.rewardDistributionWindow !== null) {\n message.rewardDistributionWindow = object.rewardDistributionWindow;\n }\n else {\n message.rewardDistributionWindow = long_1.default.UZERO;\n }\n if (object.whitelist !== undefined && object.whitelist !== null) {\n for (const e of object.whitelist) {\n message.whitelist.push(exports.Denom.fromPartial(e));\n }\n }\n if (object.slashFraction !== undefined && object.slashFraction !== null) {\n message.slashFraction = object.slashFraction;\n }\n else {\n message.slashFraction = \"\";\n }\n if (object.slashWindow !== undefined && object.slashWindow !== null) {\n message.slashWindow = object.slashWindow;\n }\n else {\n message.slashWindow = long_1.default.UZERO;\n }\n if (object.minValidPerWindow !== undefined && object.minValidPerWindow !== null) {\n message.minValidPerWindow = object.minValidPerWindow;\n }\n else {\n message.minValidPerWindow = \"\";\n }\n return message;\n },\n};\nconst baseDenom = { name: \"\", tobinTax: \"\" };\nexports.Denom = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.name !== \"\") {\n writer.uint32(10).string(message.name);\n }\n if (message.tobinTax !== \"\") {\n writer.uint32(18).string(message.tobinTax);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDenom);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.name = reader.string();\n break;\n case 2:\n message.tobinTax = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseDenom);\n if (object.name !== undefined && object.name !== null) {\n message.name = String(object.name);\n }\n else {\n message.name = \"\";\n }\n if (object.tobinTax !== undefined && object.tobinTax !== null) {\n message.tobinTax = String(object.tobinTax);\n }\n else {\n message.tobinTax = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.name !== undefined && (obj.name = message.name);\n message.tobinTax !== undefined && (obj.tobinTax = message.tobinTax);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseDenom);\n if (object.name !== undefined && object.name !== null) {\n message.name = object.name;\n }\n else {\n message.name = \"\";\n }\n if (object.tobinTax !== undefined && object.tobinTax !== null) {\n message.tobinTax = object.tobinTax;\n }\n else {\n message.tobinTax = \"\";\n }\n return message;\n },\n};\nconst baseAggregateExchangeRatePrevote = { hash: \"\", voter: \"\", submitBlock: long_1.default.UZERO };\nexports.AggregateExchangeRatePrevote = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.hash !== \"\") {\n writer.uint32(10).string(message.hash);\n }\n if (message.voter !== \"\") {\n writer.uint32(18).string(message.voter);\n }\n if (!message.submitBlock.isZero()) {\n writer.uint32(24).uint64(message.submitBlock);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseAggregateExchangeRatePrevote);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hash = reader.string();\n break;\n case 2:\n message.voter = reader.string();\n break;\n case 3:\n message.submitBlock = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseAggregateExchangeRatePrevote);\n if (object.hash !== undefined && object.hash !== null) {\n message.hash = String(object.hash);\n }\n else {\n message.hash = \"\";\n }\n if (object.voter !== undefined && object.voter !== null) {\n message.voter = String(object.voter);\n }\n else {\n message.voter = \"\";\n }\n if (object.submitBlock !== undefined && object.submitBlock !== null) {\n message.submitBlock = long_1.default.fromString(object.submitBlock);\n }\n else {\n message.submitBlock = long_1.default.UZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.hash !== undefined && (obj.hash = message.hash);\n message.voter !== undefined && (obj.voter = message.voter);\n message.submitBlock !== undefined && (obj.submitBlock = (message.submitBlock || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseAggregateExchangeRatePrevote);\n if (object.hash !== undefined && object.hash !== null) {\n message.hash = object.hash;\n }\n else {\n message.hash = \"\";\n }\n if (object.voter !== undefined && object.voter !== null) {\n message.voter = object.voter;\n }\n else {\n message.voter = \"\";\n }\n if (object.submitBlock !== undefined && object.submitBlock !== null) {\n message.submitBlock = object.submitBlock;\n }\n else {\n message.submitBlock = long_1.default.UZERO;\n }\n return message;\n },\n};\nconst baseAggregateExchangeRateVote = { voter: \"\" };\nexports.AggregateExchangeRateVote = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.exchangeRateTuples) {\n exports.ExchangeRateTuple.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.voter !== \"\") {\n writer.uint32(18).string(message.voter);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseAggregateExchangeRateVote);\n message.exchangeRateTuples = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.exchangeRateTuples.push(exports.ExchangeRateTuple.decode(reader, reader.uint32()));\n break;\n case 2:\n message.voter = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseAggregateExchangeRateVote);\n message.exchangeRateTuples = [];\n if (object.exchangeRateTuples !== undefined && object.exchangeRateTuples !== null) {\n for (const e of object.exchangeRateTuples) {\n message.exchangeRateTuples.push(exports.ExchangeRateTuple.fromJSON(e));\n }\n }\n if (object.voter !== undefined && object.voter !== null) {\n message.voter = String(object.voter);\n }\n else {\n message.voter = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.exchangeRateTuples) {\n obj.exchangeRateTuples = message.exchangeRateTuples.map((e) => e ? exports.ExchangeRateTuple.toJSON(e) : undefined);\n }\n else {\n obj.exchangeRateTuples = [];\n }\n message.voter !== undefined && (obj.voter = message.voter);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseAggregateExchangeRateVote);\n message.exchangeRateTuples = [];\n if (object.exchangeRateTuples !== undefined && object.exchangeRateTuples !== null) {\n for (const e of object.exchangeRateTuples) {\n message.exchangeRateTuples.push(exports.ExchangeRateTuple.fromPartial(e));\n }\n }\n if (object.voter !== undefined && object.voter !== null) {\n message.voter = object.voter;\n }\n else {\n message.voter = \"\";\n }\n return message;\n },\n};\nconst baseExchangeRateTuple = { denom: \"\", exchangeRate: \"\" };\nexports.ExchangeRateTuple = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.denom !== \"\") {\n writer.uint32(10).string(message.denom);\n }\n if (message.exchangeRate !== \"\") {\n writer.uint32(18).string(message.exchangeRate);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseExchangeRateTuple);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.denom = reader.string();\n break;\n case 2:\n message.exchangeRate = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseExchangeRateTuple);\n if (object.denom !== undefined && object.denom !== null) {\n message.denom = String(object.denom);\n }\n else {\n message.denom = \"\";\n }\n if (object.exchangeRate !== undefined && object.exchangeRate !== null) {\n message.exchangeRate = String(object.exchangeRate);\n }\n else {\n message.exchangeRate = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.denom !== undefined && (obj.denom = message.denom);\n message.exchangeRate !== undefined && (obj.exchangeRate = message.exchangeRate);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseExchangeRateTuple);\n if (object.denom !== undefined && object.denom !== null) {\n message.denom = object.denom;\n }\n else {\n message.denom = \"\";\n }\n if (object.exchangeRate !== undefined && object.exchangeRate !== null) {\n message.exchangeRate = object.exchangeRate;\n }\n else {\n message.exchangeRate = \"\";\n }\n return message;\n },\n};\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=oracle.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgClientImpl = exports.MsgDelegateFeedConsentResponse = exports.MsgDelegateFeedConsent = exports.MsgAggregateExchangeRateVoteResponse = exports.MsgAggregateExchangeRateVote = exports.MsgAggregateExchangeRatePrevoteResponse = exports.MsgAggregateExchangeRatePrevote = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nexports.protobufPackage = \"terra.oracle.v1beta1\";\nconst baseMsgAggregateExchangeRatePrevote = { hash: \"\", feeder: \"\", validator: \"\" };\nexports.MsgAggregateExchangeRatePrevote = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.hash !== \"\") {\n writer.uint32(10).string(message.hash);\n }\n if (message.feeder !== \"\") {\n writer.uint32(18).string(message.feeder);\n }\n if (message.validator !== \"\") {\n writer.uint32(26).string(message.validator);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgAggregateExchangeRatePrevote);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hash = reader.string();\n break;\n case 2:\n message.feeder = reader.string();\n break;\n case 3:\n message.validator = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgAggregateExchangeRatePrevote);\n if (object.hash !== undefined && object.hash !== null) {\n message.hash = String(object.hash);\n }\n else {\n message.hash = \"\";\n }\n if (object.feeder !== undefined && object.feeder !== null) {\n message.feeder = String(object.feeder);\n }\n else {\n message.feeder = \"\";\n }\n if (object.validator !== undefined && object.validator !== null) {\n message.validator = String(object.validator);\n }\n else {\n message.validator = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.hash !== undefined && (obj.hash = message.hash);\n message.feeder !== undefined && (obj.feeder = message.feeder);\n message.validator !== undefined && (obj.validator = message.validator);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgAggregateExchangeRatePrevote);\n if (object.hash !== undefined && object.hash !== null) {\n message.hash = object.hash;\n }\n else {\n message.hash = \"\";\n }\n if (object.feeder !== undefined && object.feeder !== null) {\n message.feeder = object.feeder;\n }\n else {\n message.feeder = \"\";\n }\n if (object.validator !== undefined && object.validator !== null) {\n message.validator = object.validator;\n }\n else {\n message.validator = \"\";\n }\n return message;\n },\n};\nconst baseMsgAggregateExchangeRatePrevoteResponse = {};\nexports.MsgAggregateExchangeRatePrevoteResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgAggregateExchangeRatePrevoteResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgAggregateExchangeRatePrevoteResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgAggregateExchangeRatePrevoteResponse);\n return message;\n },\n};\nconst baseMsgAggregateExchangeRateVote = { salt: \"\", exchangeRates: \"\", feeder: \"\", validator: \"\" };\nexports.MsgAggregateExchangeRateVote = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.salt !== \"\") {\n writer.uint32(10).string(message.salt);\n }\n if (message.exchangeRates !== \"\") {\n writer.uint32(18).string(message.exchangeRates);\n }\n if (message.feeder !== \"\") {\n writer.uint32(26).string(message.feeder);\n }\n if (message.validator !== \"\") {\n writer.uint32(34).string(message.validator);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgAggregateExchangeRateVote);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.salt = reader.string();\n break;\n case 2:\n message.exchangeRates = reader.string();\n break;\n case 3:\n message.feeder = reader.string();\n break;\n case 4:\n message.validator = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgAggregateExchangeRateVote);\n if (object.salt !== undefined && object.salt !== null) {\n message.salt = String(object.salt);\n }\n else {\n message.salt = \"\";\n }\n if (object.exchangeRates !== undefined && object.exchangeRates !== null) {\n message.exchangeRates = String(object.exchangeRates);\n }\n else {\n message.exchangeRates = \"\";\n }\n if (object.feeder !== undefined && object.feeder !== null) {\n message.feeder = String(object.feeder);\n }\n else {\n message.feeder = \"\";\n }\n if (object.validator !== undefined && object.validator !== null) {\n message.validator = String(object.validator);\n }\n else {\n message.validator = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.salt !== undefined && (obj.salt = message.salt);\n message.exchangeRates !== undefined && (obj.exchangeRates = message.exchangeRates);\n message.feeder !== undefined && (obj.feeder = message.feeder);\n message.validator !== undefined && (obj.validator = message.validator);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgAggregateExchangeRateVote);\n if (object.salt !== undefined && object.salt !== null) {\n message.salt = object.salt;\n }\n else {\n message.salt = \"\";\n }\n if (object.exchangeRates !== undefined && object.exchangeRates !== null) {\n message.exchangeRates = object.exchangeRates;\n }\n else {\n message.exchangeRates = \"\";\n }\n if (object.feeder !== undefined && object.feeder !== null) {\n message.feeder = object.feeder;\n }\n else {\n message.feeder = \"\";\n }\n if (object.validator !== undefined && object.validator !== null) {\n message.validator = object.validator;\n }\n else {\n message.validator = \"\";\n }\n return message;\n },\n};\nconst baseMsgAggregateExchangeRateVoteResponse = {};\nexports.MsgAggregateExchangeRateVoteResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgAggregateExchangeRateVoteResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgAggregateExchangeRateVoteResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgAggregateExchangeRateVoteResponse);\n return message;\n },\n};\nconst baseMsgDelegateFeedConsent = { operator: \"\", delegate: \"\" };\nexports.MsgDelegateFeedConsent = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.operator !== \"\") {\n writer.uint32(10).string(message.operator);\n }\n if (message.delegate !== \"\") {\n writer.uint32(18).string(message.delegate);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgDelegateFeedConsent);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.operator = reader.string();\n break;\n case 2:\n message.delegate = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgDelegateFeedConsent);\n if (object.operator !== undefined && object.operator !== null) {\n message.operator = String(object.operator);\n }\n else {\n message.operator = \"\";\n }\n if (object.delegate !== undefined && object.delegate !== null) {\n message.delegate = String(object.delegate);\n }\n else {\n message.delegate = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.operator !== undefined && (obj.operator = message.operator);\n message.delegate !== undefined && (obj.delegate = message.delegate);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgDelegateFeedConsent);\n if (object.operator !== undefined && object.operator !== null) {\n message.operator = object.operator;\n }\n else {\n message.operator = \"\";\n }\n if (object.delegate !== undefined && object.delegate !== null) {\n message.delegate = object.delegate;\n }\n else {\n message.delegate = \"\";\n }\n return message;\n },\n};\nconst baseMsgDelegateFeedConsentResponse = {};\nexports.MsgDelegateFeedConsentResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgDelegateFeedConsentResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgDelegateFeedConsentResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgDelegateFeedConsentResponse);\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.AggregateExchangeRatePrevote = this.AggregateExchangeRatePrevote.bind(this);\n this.AggregateExchangeRateVote = this.AggregateExchangeRateVote.bind(this);\n this.DelegateFeedConsent = this.DelegateFeedConsent.bind(this);\n }\n AggregateExchangeRatePrevote(request) {\n const data = exports.MsgAggregateExchangeRatePrevote.encode(request).finish();\n const promise = this.rpc.request(\"terra.oracle.v1beta1.Msg\", \"AggregateExchangeRatePrevote\", data);\n return promise.then((data) => exports.MsgAggregateExchangeRatePrevoteResponse.decode(new minimal_1.default.Reader(data)));\n }\n AggregateExchangeRateVote(request) {\n const data = exports.MsgAggregateExchangeRateVote.encode(request).finish();\n const promise = this.rpc.request(\"terra.oracle.v1beta1.Msg\", \"AggregateExchangeRateVote\", data);\n return promise.then((data) => exports.MsgAggregateExchangeRateVoteResponse.decode(new minimal_1.default.Reader(data)));\n }\n DelegateFeedConsent(request) {\n const data = exports.MsgDelegateFeedConsent.encode(request).finish();\n const promise = this.rpc.request(\"terra.oracle.v1beta1.Msg\", \"DelegateFeedConsent\", data);\n return promise.then((data) => exports.MsgDelegateFeedConsentResponse.decode(new minimal_1.default.Reader(data)));\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=tx.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EpochInitialIssuance = exports.EpochTaxProceeds = exports.PolicyConstraints = exports.Params = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst coin_1 = require(\"../../../cosmos/base/v1beta1/coin\");\nexports.protobufPackage = \"terra.treasury.v1beta1\";\nconst baseParams = {\n seigniorageBurdenTarget: \"\",\n miningIncrement: \"\",\n windowShort: long_1.default.UZERO,\n windowLong: long_1.default.UZERO,\n windowProbation: long_1.default.UZERO,\n};\nexports.Params = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.taxPolicy !== undefined) {\n exports.PolicyConstraints.encode(message.taxPolicy, writer.uint32(10).fork()).ldelim();\n }\n if (message.rewardPolicy !== undefined) {\n exports.PolicyConstraints.encode(message.rewardPolicy, writer.uint32(18).fork()).ldelim();\n }\n if (message.seigniorageBurdenTarget !== \"\") {\n writer.uint32(26).string(message.seigniorageBurdenTarget);\n }\n if (message.miningIncrement !== \"\") {\n writer.uint32(34).string(message.miningIncrement);\n }\n if (!message.windowShort.isZero()) {\n writer.uint32(40).uint64(message.windowShort);\n }\n if (!message.windowLong.isZero()) {\n writer.uint32(48).uint64(message.windowLong);\n }\n if (!message.windowProbation.isZero()) {\n writer.uint32(56).uint64(message.windowProbation);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseParams);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.taxPolicy = exports.PolicyConstraints.decode(reader, reader.uint32());\n break;\n case 2:\n message.rewardPolicy = exports.PolicyConstraints.decode(reader, reader.uint32());\n break;\n case 3:\n message.seigniorageBurdenTarget = reader.string();\n break;\n case 4:\n message.miningIncrement = reader.string();\n break;\n case 5:\n message.windowShort = reader.uint64();\n break;\n case 6:\n message.windowLong = reader.uint64();\n break;\n case 7:\n message.windowProbation = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseParams);\n if (object.taxPolicy !== undefined && object.taxPolicy !== null) {\n message.taxPolicy = exports.PolicyConstraints.fromJSON(object.taxPolicy);\n }\n else {\n message.taxPolicy = undefined;\n }\n if (object.rewardPolicy !== undefined && object.rewardPolicy !== null) {\n message.rewardPolicy = exports.PolicyConstraints.fromJSON(object.rewardPolicy);\n }\n else {\n message.rewardPolicy = undefined;\n }\n if (object.seigniorageBurdenTarget !== undefined && object.seigniorageBurdenTarget !== null) {\n message.seigniorageBurdenTarget = String(object.seigniorageBurdenTarget);\n }\n else {\n message.seigniorageBurdenTarget = \"\";\n }\n if (object.miningIncrement !== undefined && object.miningIncrement !== null) {\n message.miningIncrement = String(object.miningIncrement);\n }\n else {\n message.miningIncrement = \"\";\n }\n if (object.windowShort !== undefined && object.windowShort !== null) {\n message.windowShort = long_1.default.fromString(object.windowShort);\n }\n else {\n message.windowShort = long_1.default.UZERO;\n }\n if (object.windowLong !== undefined && object.windowLong !== null) {\n message.windowLong = long_1.default.fromString(object.windowLong);\n }\n else {\n message.windowLong = long_1.default.UZERO;\n }\n if (object.windowProbation !== undefined && object.windowProbation !== null) {\n message.windowProbation = long_1.default.fromString(object.windowProbation);\n }\n else {\n message.windowProbation = long_1.default.UZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.taxPolicy !== undefined &&\n (obj.taxPolicy = message.taxPolicy ? exports.PolicyConstraints.toJSON(message.taxPolicy) : undefined);\n message.rewardPolicy !== undefined &&\n (obj.rewardPolicy = message.rewardPolicy ? exports.PolicyConstraints.toJSON(message.rewardPolicy) : undefined);\n message.seigniorageBurdenTarget !== undefined &&\n (obj.seigniorageBurdenTarget = message.seigniorageBurdenTarget);\n message.miningIncrement !== undefined && (obj.miningIncrement = message.miningIncrement);\n message.windowShort !== undefined && (obj.windowShort = (message.windowShort || long_1.default.UZERO).toString());\n message.windowLong !== undefined && (obj.windowLong = (message.windowLong || long_1.default.UZERO).toString());\n message.windowProbation !== undefined &&\n (obj.windowProbation = (message.windowProbation || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseParams);\n if (object.taxPolicy !== undefined && object.taxPolicy !== null) {\n message.taxPolicy = exports.PolicyConstraints.fromPartial(object.taxPolicy);\n }\n else {\n message.taxPolicy = undefined;\n }\n if (object.rewardPolicy !== undefined && object.rewardPolicy !== null) {\n message.rewardPolicy = exports.PolicyConstraints.fromPartial(object.rewardPolicy);\n }\n else {\n message.rewardPolicy = undefined;\n }\n if (object.seigniorageBurdenTarget !== undefined && object.seigniorageBurdenTarget !== null) {\n message.seigniorageBurdenTarget = object.seigniorageBurdenTarget;\n }\n else {\n message.seigniorageBurdenTarget = \"\";\n }\n if (object.miningIncrement !== undefined && object.miningIncrement !== null) {\n message.miningIncrement = object.miningIncrement;\n }\n else {\n message.miningIncrement = \"\";\n }\n if (object.windowShort !== undefined && object.windowShort !== null) {\n message.windowShort = object.windowShort;\n }\n else {\n message.windowShort = long_1.default.UZERO;\n }\n if (object.windowLong !== undefined && object.windowLong !== null) {\n message.windowLong = object.windowLong;\n }\n else {\n message.windowLong = long_1.default.UZERO;\n }\n if (object.windowProbation !== undefined && object.windowProbation !== null) {\n message.windowProbation = object.windowProbation;\n }\n else {\n message.windowProbation = long_1.default.UZERO;\n }\n return message;\n },\n};\nconst basePolicyConstraints = { rateMin: \"\", rateMax: \"\", changeRateMax: \"\" };\nexports.PolicyConstraints = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.rateMin !== \"\") {\n writer.uint32(10).string(message.rateMin);\n }\n if (message.rateMax !== \"\") {\n writer.uint32(18).string(message.rateMax);\n }\n if (message.cap !== undefined) {\n coin_1.Coin.encode(message.cap, writer.uint32(26).fork()).ldelim();\n }\n if (message.changeRateMax !== \"\") {\n writer.uint32(34).string(message.changeRateMax);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, basePolicyConstraints);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.rateMin = reader.string();\n break;\n case 2:\n message.rateMax = reader.string();\n break;\n case 3:\n message.cap = coin_1.Coin.decode(reader, reader.uint32());\n break;\n case 4:\n message.changeRateMax = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, basePolicyConstraints);\n if (object.rateMin !== undefined && object.rateMin !== null) {\n message.rateMin = String(object.rateMin);\n }\n else {\n message.rateMin = \"\";\n }\n if (object.rateMax !== undefined && object.rateMax !== null) {\n message.rateMax = String(object.rateMax);\n }\n else {\n message.rateMax = \"\";\n }\n if (object.cap !== undefined && object.cap !== null) {\n message.cap = coin_1.Coin.fromJSON(object.cap);\n }\n else {\n message.cap = undefined;\n }\n if (object.changeRateMax !== undefined && object.changeRateMax !== null) {\n message.changeRateMax = String(object.changeRateMax);\n }\n else {\n message.changeRateMax = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.rateMin !== undefined && (obj.rateMin = message.rateMin);\n message.rateMax !== undefined && (obj.rateMax = message.rateMax);\n message.cap !== undefined && (obj.cap = message.cap ? coin_1.Coin.toJSON(message.cap) : undefined);\n message.changeRateMax !== undefined && (obj.changeRateMax = message.changeRateMax);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, basePolicyConstraints);\n if (object.rateMin !== undefined && object.rateMin !== null) {\n message.rateMin = object.rateMin;\n }\n else {\n message.rateMin = \"\";\n }\n if (object.rateMax !== undefined && object.rateMax !== null) {\n message.rateMax = object.rateMax;\n }\n else {\n message.rateMax = \"\";\n }\n if (object.cap !== undefined && object.cap !== null) {\n message.cap = coin_1.Coin.fromPartial(object.cap);\n }\n else {\n message.cap = undefined;\n }\n if (object.changeRateMax !== undefined && object.changeRateMax !== null) {\n message.changeRateMax = object.changeRateMax;\n }\n else {\n message.changeRateMax = \"\";\n }\n return message;\n },\n};\nconst baseEpochTaxProceeds = {};\nexports.EpochTaxProceeds = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.taxProceeds) {\n coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseEpochTaxProceeds);\n message.taxProceeds = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.taxProceeds.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseEpochTaxProceeds);\n message.taxProceeds = [];\n if (object.taxProceeds !== undefined && object.taxProceeds !== null) {\n for (const e of object.taxProceeds) {\n message.taxProceeds.push(coin_1.Coin.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.taxProceeds) {\n obj.taxProceeds = message.taxProceeds.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.taxProceeds = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseEpochTaxProceeds);\n message.taxProceeds = [];\n if (object.taxProceeds !== undefined && object.taxProceeds !== null) {\n for (const e of object.taxProceeds) {\n message.taxProceeds.push(coin_1.Coin.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseEpochInitialIssuance = {};\nexports.EpochInitialIssuance = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.issuance) {\n coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseEpochInitialIssuance);\n message.issuance = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.issuance.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseEpochInitialIssuance);\n message.issuance = [];\n if (object.issuance !== undefined && object.issuance !== null) {\n for (const e of object.issuance) {\n message.issuance.push(coin_1.Coin.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.issuance) {\n obj.issuance = message.issuance.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.issuance = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseEpochInitialIssuance);\n message.issuance = [];\n if (object.issuance !== undefined && object.issuance !== null) {\n for (const e of object.issuance) {\n message.issuance.push(coin_1.Coin.fromPartial(e));\n }\n }\n return message;\n },\n};\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=treasury.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VestingSchedule = exports.Schedule = exports.LazyGradedVestingAccount = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst vesting_1 = require(\"../../../cosmos/vesting/v1beta1/vesting\");\nexports.protobufPackage = \"terra.vesting.v1beta1\";\nconst baseLazyGradedVestingAccount = {};\nexports.LazyGradedVestingAccount = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.baseVestingAccount !== undefined) {\n vesting_1.BaseVestingAccount.encode(message.baseVestingAccount, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.vestingSchedules) {\n exports.VestingSchedule.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseLazyGradedVestingAccount);\n message.vestingSchedules = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.baseVestingAccount = vesting_1.BaseVestingAccount.decode(reader, reader.uint32());\n break;\n case 2:\n message.vestingSchedules.push(exports.VestingSchedule.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseLazyGradedVestingAccount);\n message.vestingSchedules = [];\n if (object.baseVestingAccount !== undefined && object.baseVestingAccount !== null) {\n message.baseVestingAccount = vesting_1.BaseVestingAccount.fromJSON(object.baseVestingAccount);\n }\n else {\n message.baseVestingAccount = undefined;\n }\n if (object.vestingSchedules !== undefined && object.vestingSchedules !== null) {\n for (const e of object.vestingSchedules) {\n message.vestingSchedules.push(exports.VestingSchedule.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.baseVestingAccount !== undefined &&\n (obj.baseVestingAccount = message.baseVestingAccount\n ? vesting_1.BaseVestingAccount.toJSON(message.baseVestingAccount)\n : undefined);\n if (message.vestingSchedules) {\n obj.vestingSchedules = message.vestingSchedules.map((e) => (e ? exports.VestingSchedule.toJSON(e) : undefined));\n }\n else {\n obj.vestingSchedules = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseLazyGradedVestingAccount);\n message.vestingSchedules = [];\n if (object.baseVestingAccount !== undefined && object.baseVestingAccount !== null) {\n message.baseVestingAccount = vesting_1.BaseVestingAccount.fromPartial(object.baseVestingAccount);\n }\n else {\n message.baseVestingAccount = undefined;\n }\n if (object.vestingSchedules !== undefined && object.vestingSchedules !== null) {\n for (const e of object.vestingSchedules) {\n message.vestingSchedules.push(exports.VestingSchedule.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseSchedule = { startTime: long_1.default.ZERO, endTime: long_1.default.ZERO, ratio: \"\" };\nexports.Schedule = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.startTime.isZero()) {\n writer.uint32(8).int64(message.startTime);\n }\n if (!message.endTime.isZero()) {\n writer.uint32(16).int64(message.endTime);\n }\n if (message.ratio !== \"\") {\n writer.uint32(26).string(message.ratio);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSchedule);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.startTime = reader.int64();\n break;\n case 2:\n message.endTime = reader.int64();\n break;\n case 3:\n message.ratio = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseSchedule);\n if (object.startTime !== undefined && object.startTime !== null) {\n message.startTime = long_1.default.fromString(object.startTime);\n }\n else {\n message.startTime = long_1.default.ZERO;\n }\n if (object.endTime !== undefined && object.endTime !== null) {\n message.endTime = long_1.default.fromString(object.endTime);\n }\n else {\n message.endTime = long_1.default.ZERO;\n }\n if (object.ratio !== undefined && object.ratio !== null) {\n message.ratio = String(object.ratio);\n }\n else {\n message.ratio = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.startTime !== undefined && (obj.startTime = (message.startTime || long_1.default.ZERO).toString());\n message.endTime !== undefined && (obj.endTime = (message.endTime || long_1.default.ZERO).toString());\n message.ratio !== undefined && (obj.ratio = message.ratio);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseSchedule);\n if (object.startTime !== undefined && object.startTime !== null) {\n message.startTime = object.startTime;\n }\n else {\n message.startTime = long_1.default.ZERO;\n }\n if (object.endTime !== undefined && object.endTime !== null) {\n message.endTime = object.endTime;\n }\n else {\n message.endTime = long_1.default.ZERO;\n }\n if (object.ratio !== undefined && object.ratio !== null) {\n message.ratio = object.ratio;\n }\n else {\n message.ratio = \"\";\n }\n return message;\n },\n};\nconst baseVestingSchedule = { denom: \"\" };\nexports.VestingSchedule = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.denom !== \"\") {\n writer.uint32(10).string(message.denom);\n }\n for (const v of message.schedules) {\n exports.Schedule.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseVestingSchedule);\n message.schedules = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.denom = reader.string();\n break;\n case 2:\n message.schedules.push(exports.Schedule.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseVestingSchedule);\n message.schedules = [];\n if (object.denom !== undefined && object.denom !== null) {\n message.denom = String(object.denom);\n }\n else {\n message.denom = \"\";\n }\n if (object.schedules !== undefined && object.schedules !== null) {\n for (const e of object.schedules) {\n message.schedules.push(exports.Schedule.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.denom !== undefined && (obj.denom = message.denom);\n if (message.schedules) {\n obj.schedules = message.schedules.map((e) => (e ? exports.Schedule.toJSON(e) : undefined));\n }\n else {\n obj.schedules = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseVestingSchedule);\n message.schedules = [];\n if (object.denom !== undefined && object.denom !== null) {\n message.denom = object.denom;\n }\n else {\n message.denom = \"\";\n }\n if (object.schedules !== undefined && object.schedules !== null) {\n for (const e of object.schedules) {\n message.schedules.push(exports.Schedule.fromPartial(e));\n }\n }\n return message;\n },\n};\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=vesting.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgClientImpl = exports.MsgClearContractAdminResponse = exports.MsgClearContractAdmin = exports.MsgUpdateContractAdminResponse = exports.MsgUpdateContractAdmin = exports.MsgMigrateContractResponse = exports.MsgMigrateContract = exports.MsgExecuteContractResponse = exports.MsgExecuteContract = exports.MsgInstantiateContractResponse = exports.MsgInstantiateContract = exports.MsgMigrateCodeResponse = exports.MsgMigrateCode = exports.MsgStoreCodeResponse = exports.MsgStoreCode = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst coin_1 = require(\"../../../cosmos/base/v1beta1/coin\");\nexports.protobufPackage = \"terra.wasm.v1beta1\";\nconst baseMsgStoreCode = { sender: \"\" };\nexports.MsgStoreCode = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.sender !== \"\") {\n writer.uint32(10).string(message.sender);\n }\n if (message.wasmByteCode.length !== 0) {\n writer.uint32(18).bytes(message.wasmByteCode);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgStoreCode);\n message.wasmByteCode = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sender = reader.string();\n break;\n case 2:\n message.wasmByteCode = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgStoreCode);\n message.wasmByteCode = new Uint8Array();\n if (object.sender !== undefined && object.sender !== null) {\n message.sender = String(object.sender);\n }\n else {\n message.sender = \"\";\n }\n if (object.wasmByteCode !== undefined && object.wasmByteCode !== null) {\n message.wasmByteCode = bytesFromBase64(object.wasmByteCode);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.sender !== undefined && (obj.sender = message.sender);\n message.wasmByteCode !== undefined &&\n (obj.wasmByteCode = base64FromBytes(message.wasmByteCode !== undefined ? message.wasmByteCode : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgStoreCode);\n if (object.sender !== undefined && object.sender !== null) {\n message.sender = object.sender;\n }\n else {\n message.sender = \"\";\n }\n if (object.wasmByteCode !== undefined && object.wasmByteCode !== null) {\n message.wasmByteCode = object.wasmByteCode;\n }\n else {\n message.wasmByteCode = new Uint8Array();\n }\n return message;\n },\n};\nconst baseMsgStoreCodeResponse = { codeId: long_1.default.UZERO };\nexports.MsgStoreCodeResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.codeId.isZero()) {\n writer.uint32(8).uint64(message.codeId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgStoreCodeResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.codeId = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgStoreCodeResponse);\n if (object.codeId !== undefined && object.codeId !== null) {\n message.codeId = long_1.default.fromString(object.codeId);\n }\n else {\n message.codeId = long_1.default.UZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.codeId !== undefined && (obj.codeId = (message.codeId || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgStoreCodeResponse);\n if (object.codeId !== undefined && object.codeId !== null) {\n message.codeId = object.codeId;\n }\n else {\n message.codeId = long_1.default.UZERO;\n }\n return message;\n },\n};\nconst baseMsgMigrateCode = { codeId: long_1.default.UZERO, sender: \"\" };\nexports.MsgMigrateCode = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.codeId.isZero()) {\n writer.uint32(8).uint64(message.codeId);\n }\n if (message.sender !== \"\") {\n writer.uint32(18).string(message.sender);\n }\n if (message.wasmByteCode.length !== 0) {\n writer.uint32(26).bytes(message.wasmByteCode);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgMigrateCode);\n message.wasmByteCode = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.codeId = reader.uint64();\n break;\n case 2:\n message.sender = reader.string();\n break;\n case 3:\n message.wasmByteCode = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgMigrateCode);\n message.wasmByteCode = new Uint8Array();\n if (object.codeId !== undefined && object.codeId !== null) {\n message.codeId = long_1.default.fromString(object.codeId);\n }\n else {\n message.codeId = long_1.default.UZERO;\n }\n if (object.sender !== undefined && object.sender !== null) {\n message.sender = String(object.sender);\n }\n else {\n message.sender = \"\";\n }\n if (object.wasmByteCode !== undefined && object.wasmByteCode !== null) {\n message.wasmByteCode = bytesFromBase64(object.wasmByteCode);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.codeId !== undefined && (obj.codeId = (message.codeId || long_1.default.UZERO).toString());\n message.sender !== undefined && (obj.sender = message.sender);\n message.wasmByteCode !== undefined &&\n (obj.wasmByteCode = base64FromBytes(message.wasmByteCode !== undefined ? message.wasmByteCode : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgMigrateCode);\n if (object.codeId !== undefined && object.codeId !== null) {\n message.codeId = object.codeId;\n }\n else {\n message.codeId = long_1.default.UZERO;\n }\n if (object.sender !== undefined && object.sender !== null) {\n message.sender = object.sender;\n }\n else {\n message.sender = \"\";\n }\n if (object.wasmByteCode !== undefined && object.wasmByteCode !== null) {\n message.wasmByteCode = object.wasmByteCode;\n }\n else {\n message.wasmByteCode = new Uint8Array();\n }\n return message;\n },\n};\nconst baseMsgMigrateCodeResponse = {};\nexports.MsgMigrateCodeResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgMigrateCodeResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgMigrateCodeResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgMigrateCodeResponse);\n return message;\n },\n};\nconst baseMsgInstantiateContract = { sender: \"\", admin: \"\", codeId: long_1.default.UZERO };\nexports.MsgInstantiateContract = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.sender !== \"\") {\n writer.uint32(10).string(message.sender);\n }\n if (message.admin !== \"\") {\n writer.uint32(18).string(message.admin);\n }\n if (!message.codeId.isZero()) {\n writer.uint32(24).uint64(message.codeId);\n }\n if (message.initMsg.length !== 0) {\n writer.uint32(34).bytes(message.initMsg);\n }\n for (const v of message.initCoins) {\n coin_1.Coin.encode(v, writer.uint32(42).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgInstantiateContract);\n message.initCoins = [];\n message.initMsg = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sender = reader.string();\n break;\n case 2:\n message.admin = reader.string();\n break;\n case 3:\n message.codeId = reader.uint64();\n break;\n case 4:\n message.initMsg = reader.bytes();\n break;\n case 5:\n message.initCoins.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgInstantiateContract);\n message.initCoins = [];\n message.initMsg = new Uint8Array();\n if (object.sender !== undefined && object.sender !== null) {\n message.sender = String(object.sender);\n }\n else {\n message.sender = \"\";\n }\n if (object.admin !== undefined && object.admin !== null) {\n message.admin = String(object.admin);\n }\n else {\n message.admin = \"\";\n }\n if (object.codeId !== undefined && object.codeId !== null) {\n message.codeId = long_1.default.fromString(object.codeId);\n }\n else {\n message.codeId = long_1.default.UZERO;\n }\n if (object.initMsg !== undefined && object.initMsg !== null) {\n message.initMsg = bytesFromBase64(object.initMsg);\n }\n if (object.initCoins !== undefined && object.initCoins !== null) {\n for (const e of object.initCoins) {\n message.initCoins.push(coin_1.Coin.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.sender !== undefined && (obj.sender = message.sender);\n message.admin !== undefined && (obj.admin = message.admin);\n message.codeId !== undefined && (obj.codeId = (message.codeId || long_1.default.UZERO).toString());\n message.initMsg !== undefined &&\n (obj.initMsg = base64FromBytes(message.initMsg !== undefined ? message.initMsg : new Uint8Array()));\n if (message.initCoins) {\n obj.initCoins = message.initCoins.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.initCoins = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgInstantiateContract);\n message.initCoins = [];\n if (object.sender !== undefined && object.sender !== null) {\n message.sender = object.sender;\n }\n else {\n message.sender = \"\";\n }\n if (object.admin !== undefined && object.admin !== null) {\n message.admin = object.admin;\n }\n else {\n message.admin = \"\";\n }\n if (object.codeId !== undefined && object.codeId !== null) {\n message.codeId = object.codeId;\n }\n else {\n message.codeId = long_1.default.UZERO;\n }\n if (object.initMsg !== undefined && object.initMsg !== null) {\n message.initMsg = object.initMsg;\n }\n else {\n message.initMsg = new Uint8Array();\n }\n if (object.initCoins !== undefined && object.initCoins !== null) {\n for (const e of object.initCoins) {\n message.initCoins.push(coin_1.Coin.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseMsgInstantiateContractResponse = { contractAddress: \"\" };\nexports.MsgInstantiateContractResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.contractAddress !== \"\") {\n writer.uint32(10).string(message.contractAddress);\n }\n if (message.data.length !== 0) {\n writer.uint32(18).bytes(message.data);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgInstantiateContractResponse);\n message.data = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.contractAddress = reader.string();\n break;\n case 2:\n message.data = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgInstantiateContractResponse);\n message.data = new Uint8Array();\n if (object.contractAddress !== undefined && object.contractAddress !== null) {\n message.contractAddress = String(object.contractAddress);\n }\n else {\n message.contractAddress = \"\";\n }\n if (object.data !== undefined && object.data !== null) {\n message.data = bytesFromBase64(object.data);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.contractAddress !== undefined && (obj.contractAddress = message.contractAddress);\n message.data !== undefined &&\n (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgInstantiateContractResponse);\n if (object.contractAddress !== undefined && object.contractAddress !== null) {\n message.contractAddress = object.contractAddress;\n }\n else {\n message.contractAddress = \"\";\n }\n if (object.data !== undefined && object.data !== null) {\n message.data = object.data;\n }\n else {\n message.data = new Uint8Array();\n }\n return message;\n },\n};\nconst baseMsgExecuteContract = { sender: \"\", contract: \"\" };\nexports.MsgExecuteContract = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.sender !== \"\") {\n writer.uint32(10).string(message.sender);\n }\n if (message.contract !== \"\") {\n writer.uint32(18).string(message.contract);\n }\n if (message.executeMsg.length !== 0) {\n writer.uint32(26).bytes(message.executeMsg);\n }\n for (const v of message.coins) {\n coin_1.Coin.encode(v, writer.uint32(42).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgExecuteContract);\n message.coins = [];\n message.executeMsg = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sender = reader.string();\n break;\n case 2:\n message.contract = reader.string();\n break;\n case 3:\n message.executeMsg = reader.bytes();\n break;\n case 5:\n message.coins.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgExecuteContract);\n message.coins = [];\n message.executeMsg = new Uint8Array();\n if (object.sender !== undefined && object.sender !== null) {\n message.sender = String(object.sender);\n }\n else {\n message.sender = \"\";\n }\n if (object.contract !== undefined && object.contract !== null) {\n message.contract = String(object.contract);\n }\n else {\n message.contract = \"\";\n }\n if (object.executeMsg !== undefined && object.executeMsg !== null) {\n message.executeMsg = bytesFromBase64(object.executeMsg);\n }\n if (object.coins !== undefined && object.coins !== null) {\n for (const e of object.coins) {\n message.coins.push(coin_1.Coin.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.sender !== undefined && (obj.sender = message.sender);\n message.contract !== undefined && (obj.contract = message.contract);\n message.executeMsg !== undefined &&\n (obj.executeMsg = base64FromBytes(message.executeMsg !== undefined ? message.executeMsg : new Uint8Array()));\n if (message.coins) {\n obj.coins = message.coins.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.coins = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgExecuteContract);\n message.coins = [];\n if (object.sender !== undefined && object.sender !== null) {\n message.sender = object.sender;\n }\n else {\n message.sender = \"\";\n }\n if (object.contract !== undefined && object.contract !== null) {\n message.contract = object.contract;\n }\n else {\n message.contract = \"\";\n }\n if (object.executeMsg !== undefined && object.executeMsg !== null) {\n message.executeMsg = object.executeMsg;\n }\n else {\n message.executeMsg = new Uint8Array();\n }\n if (object.coins !== undefined && object.coins !== null) {\n for (const e of object.coins) {\n message.coins.push(coin_1.Coin.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseMsgExecuteContractResponse = {};\nexports.MsgExecuteContractResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.data.length !== 0) {\n writer.uint32(10).bytes(message.data);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgExecuteContractResponse);\n message.data = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.data = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgExecuteContractResponse);\n message.data = new Uint8Array();\n if (object.data !== undefined && object.data !== null) {\n message.data = bytesFromBase64(object.data);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.data !== undefined &&\n (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgExecuteContractResponse);\n if (object.data !== undefined && object.data !== null) {\n message.data = object.data;\n }\n else {\n message.data = new Uint8Array();\n }\n return message;\n },\n};\nconst baseMsgMigrateContract = { admin: \"\", contract: \"\", newCodeId: long_1.default.UZERO };\nexports.MsgMigrateContract = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.admin !== \"\") {\n writer.uint32(10).string(message.admin);\n }\n if (message.contract !== \"\") {\n writer.uint32(18).string(message.contract);\n }\n if (!message.newCodeId.isZero()) {\n writer.uint32(24).uint64(message.newCodeId);\n }\n if (message.migrateMsg.length !== 0) {\n writer.uint32(34).bytes(message.migrateMsg);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgMigrateContract);\n message.migrateMsg = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.admin = reader.string();\n break;\n case 2:\n message.contract = reader.string();\n break;\n case 3:\n message.newCodeId = reader.uint64();\n break;\n case 4:\n message.migrateMsg = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgMigrateContract);\n message.migrateMsg = new Uint8Array();\n if (object.admin !== undefined && object.admin !== null) {\n message.admin = String(object.admin);\n }\n else {\n message.admin = \"\";\n }\n if (object.contract !== undefined && object.contract !== null) {\n message.contract = String(object.contract);\n }\n else {\n message.contract = \"\";\n }\n if (object.newCodeId !== undefined && object.newCodeId !== null) {\n message.newCodeId = long_1.default.fromString(object.newCodeId);\n }\n else {\n message.newCodeId = long_1.default.UZERO;\n }\n if (object.migrateMsg !== undefined && object.migrateMsg !== null) {\n message.migrateMsg = bytesFromBase64(object.migrateMsg);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.admin !== undefined && (obj.admin = message.admin);\n message.contract !== undefined && (obj.contract = message.contract);\n message.newCodeId !== undefined && (obj.newCodeId = (message.newCodeId || long_1.default.UZERO).toString());\n message.migrateMsg !== undefined &&\n (obj.migrateMsg = base64FromBytes(message.migrateMsg !== undefined ? message.migrateMsg : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgMigrateContract);\n if (object.admin !== undefined && object.admin !== null) {\n message.admin = object.admin;\n }\n else {\n message.admin = \"\";\n }\n if (object.contract !== undefined && object.contract !== null) {\n message.contract = object.contract;\n }\n else {\n message.contract = \"\";\n }\n if (object.newCodeId !== undefined && object.newCodeId !== null) {\n message.newCodeId = object.newCodeId;\n }\n else {\n message.newCodeId = long_1.default.UZERO;\n }\n if (object.migrateMsg !== undefined && object.migrateMsg !== null) {\n message.migrateMsg = object.migrateMsg;\n }\n else {\n message.migrateMsg = new Uint8Array();\n }\n return message;\n },\n};\nconst baseMsgMigrateContractResponse = {};\nexports.MsgMigrateContractResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.data.length !== 0) {\n writer.uint32(10).bytes(message.data);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgMigrateContractResponse);\n message.data = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.data = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgMigrateContractResponse);\n message.data = new Uint8Array();\n if (object.data !== undefined && object.data !== null) {\n message.data = bytesFromBase64(object.data);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.data !== undefined &&\n (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgMigrateContractResponse);\n if (object.data !== undefined && object.data !== null) {\n message.data = object.data;\n }\n else {\n message.data = new Uint8Array();\n }\n return message;\n },\n};\nconst baseMsgUpdateContractAdmin = { admin: \"\", newAdmin: \"\", contract: \"\" };\nexports.MsgUpdateContractAdmin = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.admin !== \"\") {\n writer.uint32(10).string(message.admin);\n }\n if (message.newAdmin !== \"\") {\n writer.uint32(18).string(message.newAdmin);\n }\n if (message.contract !== \"\") {\n writer.uint32(26).string(message.contract);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgUpdateContractAdmin);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.admin = reader.string();\n break;\n case 2:\n message.newAdmin = reader.string();\n break;\n case 3:\n message.contract = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgUpdateContractAdmin);\n if (object.admin !== undefined && object.admin !== null) {\n message.admin = String(object.admin);\n }\n else {\n message.admin = \"\";\n }\n if (object.newAdmin !== undefined && object.newAdmin !== null) {\n message.newAdmin = String(object.newAdmin);\n }\n else {\n message.newAdmin = \"\";\n }\n if (object.contract !== undefined && object.contract !== null) {\n message.contract = String(object.contract);\n }\n else {\n message.contract = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.admin !== undefined && (obj.admin = message.admin);\n message.newAdmin !== undefined && (obj.newAdmin = message.newAdmin);\n message.contract !== undefined && (obj.contract = message.contract);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgUpdateContractAdmin);\n if (object.admin !== undefined && object.admin !== null) {\n message.admin = object.admin;\n }\n else {\n message.admin = \"\";\n }\n if (object.newAdmin !== undefined && object.newAdmin !== null) {\n message.newAdmin = object.newAdmin;\n }\n else {\n message.newAdmin = \"\";\n }\n if (object.contract !== undefined && object.contract !== null) {\n message.contract = object.contract;\n }\n else {\n message.contract = \"\";\n }\n return message;\n },\n};\nconst baseMsgUpdateContractAdminResponse = {};\nexports.MsgUpdateContractAdminResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgUpdateContractAdminResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgUpdateContractAdminResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgUpdateContractAdminResponse);\n return message;\n },\n};\nconst baseMsgClearContractAdmin = { admin: \"\", contract: \"\" };\nexports.MsgClearContractAdmin = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.admin !== \"\") {\n writer.uint32(10).string(message.admin);\n }\n if (message.contract !== \"\") {\n writer.uint32(18).string(message.contract);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgClearContractAdmin);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.admin = reader.string();\n break;\n case 2:\n message.contract = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgClearContractAdmin);\n if (object.admin !== undefined && object.admin !== null) {\n message.admin = String(object.admin);\n }\n else {\n message.admin = \"\";\n }\n if (object.contract !== undefined && object.contract !== null) {\n message.contract = String(object.contract);\n }\n else {\n message.contract = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.admin !== undefined && (obj.admin = message.admin);\n message.contract !== undefined && (obj.contract = message.contract);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgClearContractAdmin);\n if (object.admin !== undefined && object.admin !== null) {\n message.admin = object.admin;\n }\n else {\n message.admin = \"\";\n }\n if (object.contract !== undefined && object.contract !== null) {\n message.contract = object.contract;\n }\n else {\n message.contract = \"\";\n }\n return message;\n },\n};\nconst baseMsgClearContractAdminResponse = {};\nexports.MsgClearContractAdminResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgClearContractAdminResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgClearContractAdminResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgClearContractAdminResponse);\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.StoreCode = this.StoreCode.bind(this);\n this.MigrateCode = this.MigrateCode.bind(this);\n this.InstantiateContract = this.InstantiateContract.bind(this);\n this.ExecuteContract = this.ExecuteContract.bind(this);\n this.MigrateContract = this.MigrateContract.bind(this);\n this.UpdateContractAdmin = this.UpdateContractAdmin.bind(this);\n this.ClearContractAdmin = this.ClearContractAdmin.bind(this);\n }\n StoreCode(request) {\n const data = exports.MsgStoreCode.encode(request).finish();\n const promise = this.rpc.request(\"terra.wasm.v1beta1.Msg\", \"StoreCode\", data);\n return promise.then((data) => exports.MsgStoreCodeResponse.decode(new minimal_1.default.Reader(data)));\n }\n MigrateCode(request) {\n const data = exports.MsgMigrateCode.encode(request).finish();\n const promise = this.rpc.request(\"terra.wasm.v1beta1.Msg\", \"MigrateCode\", data);\n return promise.then((data) => exports.MsgMigrateCodeResponse.decode(new minimal_1.default.Reader(data)));\n }\n InstantiateContract(request) {\n const data = exports.MsgInstantiateContract.encode(request).finish();\n const promise = this.rpc.request(\"terra.wasm.v1beta1.Msg\", \"InstantiateContract\", data);\n return promise.then((data) => exports.MsgInstantiateContractResponse.decode(new minimal_1.default.Reader(data)));\n }\n ExecuteContract(request) {\n const data = exports.MsgExecuteContract.encode(request).finish();\n const promise = this.rpc.request(\"terra.wasm.v1beta1.Msg\", \"ExecuteContract\", data);\n return promise.then((data) => exports.MsgExecuteContractResponse.decode(new minimal_1.default.Reader(data)));\n }\n MigrateContract(request) {\n const data = exports.MsgMigrateContract.encode(request).finish();\n const promise = this.rpc.request(\"terra.wasm.v1beta1.Msg\", \"MigrateContract\", data);\n return promise.then((data) => exports.MsgMigrateContractResponse.decode(new minimal_1.default.Reader(data)));\n }\n UpdateContractAdmin(request) {\n const data = exports.MsgUpdateContractAdmin.encode(request).finish();\n const promise = this.rpc.request(\"terra.wasm.v1beta1.Msg\", \"UpdateContractAdmin\", data);\n return promise.then((data) => exports.MsgUpdateContractAdminResponse.decode(new minimal_1.default.Reader(data)));\n }\n ClearContractAdmin(request) {\n const data = exports.MsgClearContractAdmin.encode(request).finish();\n const promise = this.rpc.request(\"terra.wasm.v1beta1.Msg\", \"ClearContractAdmin\", data);\n return promise.then((data) => exports.MsgClearContractAdminResponse.decode(new minimal_1.default.Reader(data)));\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=tx.js.map","\"use strict\";\n\n(function(root) {\n\n function checkInt(value) {\n return (parseInt(value) === value);\n }\n\n function checkInts(arrayish) {\n if (!checkInt(arrayish.length)) { return false; }\n\n for (var i = 0; i < arrayish.length; i++) {\n if (!checkInt(arrayish[i]) || arrayish[i] < 0 || arrayish[i] > 255) {\n return false;\n }\n }\n\n return true;\n }\n\n function coerceArray(arg, copy) {\n\n // ArrayBuffer view\n if (arg.buffer && ArrayBuffer.isView(arg) && arg.name === 'Uint8Array') {\n\n if (copy) {\n if (arg.slice) {\n arg = arg.slice();\n } else {\n arg = Array.prototype.slice.call(arg);\n }\n }\n\n return arg;\n }\n\n // It's an array; check it is a valid representation of a byte\n if (Array.isArray(arg)) {\n if (!checkInts(arg)) {\n throw new Error('Array contains invalid value: ' + arg);\n }\n\n return new Uint8Array(arg);\n }\n\n // Something else, but behaves like an array (maybe a Buffer? Arguments?)\n if (checkInt(arg.length) && checkInts(arg)) {\n return new Uint8Array(arg);\n }\n\n throw new Error('unsupported array-like object');\n }\n\n function createArray(length) {\n return new Uint8Array(length);\n }\n\n function copyArray(sourceArray, targetArray, targetStart, sourceStart, sourceEnd) {\n if (sourceStart != null || sourceEnd != null) {\n if (sourceArray.slice) {\n sourceArray = sourceArray.slice(sourceStart, sourceEnd);\n } else {\n sourceArray = Array.prototype.slice.call(sourceArray, sourceStart, sourceEnd);\n }\n }\n targetArray.set(sourceArray, targetStart);\n }\n\n\n\n var convertUtf8 = (function() {\n function toBytes(text) {\n var result = [], i = 0;\n text = encodeURI(text);\n while (i < text.length) {\n var c = text.charCodeAt(i++);\n\n // if it is a % sign, encode the following 2 bytes as a hex value\n if (c === 37) {\n result.push(parseInt(text.substr(i, 2), 16))\n i += 2;\n\n // otherwise, just the actual byte\n } else {\n result.push(c)\n }\n }\n\n return coerceArray(result);\n }\n\n function fromBytes(bytes) {\n var result = [], i = 0;\n\n while (i < bytes.length) {\n var c = bytes[i];\n\n if (c < 128) {\n result.push(String.fromCharCode(c));\n i++;\n } else if (c > 191 && c < 224) {\n result.push(String.fromCharCode(((c & 0x1f) << 6) | (bytes[i + 1] & 0x3f)));\n i += 2;\n } else {\n result.push(String.fromCharCode(((c & 0x0f) << 12) | ((bytes[i + 1] & 0x3f) << 6) | (bytes[i + 2] & 0x3f)));\n i += 3;\n }\n }\n\n return result.join('');\n }\n\n return {\n toBytes: toBytes,\n fromBytes: fromBytes,\n }\n })();\n\n var convertHex = (function() {\n function toBytes(text) {\n var result = [];\n for (var i = 0; i < text.length; i += 2) {\n result.push(parseInt(text.substr(i, 2), 16));\n }\n\n return result;\n }\n\n // http://ixti.net/development/javascript/2011/11/11/base64-encodedecode-of-utf8-in-browser-with-js.html\n var Hex = '0123456789abcdef';\n\n function fromBytes(bytes) {\n var result = [];\n for (var i = 0; i < bytes.length; i++) {\n var v = bytes[i];\n result.push(Hex[(v & 0xf0) >> 4] + Hex[v & 0x0f]);\n }\n return result.join('');\n }\n\n return {\n toBytes: toBytes,\n fromBytes: fromBytes,\n }\n })();\n\n\n // Number of rounds by keysize\n var numberOfRounds = {16: 10, 24: 12, 32: 14}\n\n // Round constant words\n var rcon = [0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91];\n\n // S-box and Inverse S-box (S is for Substitution)\n var S = [0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76, 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75, 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, 0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf, 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8, 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73, 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb, 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08, 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a, 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf, 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16];\n var Si =[0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb, 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, 0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e, 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25, 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92, 0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84, 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06, 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b, 0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73, 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e, 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89, 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b, 0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4, 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f, 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef, 0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61, 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d];\n\n // Transformations for encryption\n var T1 = [0xc66363a5, 0xf87c7c84, 0xee777799, 0xf67b7b8d, 0xfff2f20d, 0xd66b6bbd, 0xde6f6fb1, 0x91c5c554, 0x60303050, 0x02010103, 0xce6767a9, 0x562b2b7d, 0xe7fefe19, 0xb5d7d762, 0x4dababe6, 0xec76769a, 0x8fcaca45, 0x1f82829d, 0x89c9c940, 0xfa7d7d87, 0xeffafa15, 0xb25959eb, 0x8e4747c9, 0xfbf0f00b, 0x41adadec, 0xb3d4d467, 0x5fa2a2fd, 0x45afafea, 0x239c9cbf, 0x53a4a4f7, 0xe4727296, 0x9bc0c05b, 0x75b7b7c2, 0xe1fdfd1c, 0x3d9393ae, 0x4c26266a, 0x6c36365a, 0x7e3f3f41, 0xf5f7f702, 0x83cccc4f, 0x6834345c, 0x51a5a5f4, 0xd1e5e534, 0xf9f1f108, 0xe2717193, 0xabd8d873, 0x62313153, 0x2a15153f, 0x0804040c, 0x95c7c752, 0x46232365, 0x9dc3c35e, 0x30181828, 0x379696a1, 0x0a05050f, 0x2f9a9ab5, 0x0e070709, 0x24121236, 0x1b80809b, 0xdfe2e23d, 0xcdebeb26, 0x4e272769, 0x7fb2b2cd, 0xea75759f, 0x1209091b, 0x1d83839e, 0x582c2c74, 0x341a1a2e, 0x361b1b2d, 0xdc6e6eb2, 0xb45a5aee, 0x5ba0a0fb, 0xa45252f6, 0x763b3b4d, 0xb7d6d661, 0x7db3b3ce, 0x5229297b, 0xdde3e33e, 0x5e2f2f71, 0x13848497, 0xa65353f5, 0xb9d1d168, 0x00000000, 0xc1eded2c, 0x40202060, 0xe3fcfc1f, 0x79b1b1c8, 0xb65b5bed, 0xd46a6abe, 0x8dcbcb46, 0x67bebed9, 0x7239394b, 0x944a4ade, 0x984c4cd4, 0xb05858e8, 0x85cfcf4a, 0xbbd0d06b, 0xc5efef2a, 0x4faaaae5, 0xedfbfb16, 0x864343c5, 0x9a4d4dd7, 0x66333355, 0x11858594, 0x8a4545cf, 0xe9f9f910, 0x04020206, 0xfe7f7f81, 0xa05050f0, 0x783c3c44, 0x259f9fba, 0x4ba8a8e3, 0xa25151f3, 0x5da3a3fe, 0x804040c0, 0x058f8f8a, 0x3f9292ad, 0x219d9dbc, 0x70383848, 0xf1f5f504, 0x63bcbcdf, 0x77b6b6c1, 0xafdada75, 0x42212163, 0x20101030, 0xe5ffff1a, 0xfdf3f30e, 0xbfd2d26d, 0x81cdcd4c, 0x180c0c14, 0x26131335, 0xc3ecec2f, 0xbe5f5fe1, 0x359797a2, 0x884444cc, 0x2e171739, 0x93c4c457, 0x55a7a7f2, 0xfc7e7e82, 0x7a3d3d47, 0xc86464ac, 0xba5d5de7, 0x3219192b, 0xe6737395, 0xc06060a0, 0x19818198, 0x9e4f4fd1, 0xa3dcdc7f, 0x44222266, 0x542a2a7e, 0x3b9090ab, 0x0b888883, 0x8c4646ca, 0xc7eeee29, 0x6bb8b8d3, 0x2814143c, 0xa7dede79, 0xbc5e5ee2, 0x160b0b1d, 0xaddbdb76, 0xdbe0e03b, 0x64323256, 0x743a3a4e, 0x140a0a1e, 0x924949db, 0x0c06060a, 0x4824246c, 0xb85c5ce4, 0x9fc2c25d, 0xbdd3d36e, 0x43acacef, 0xc46262a6, 0x399191a8, 0x319595a4, 0xd3e4e437, 0xf279798b, 0xd5e7e732, 0x8bc8c843, 0x6e373759, 0xda6d6db7, 0x018d8d8c, 0xb1d5d564, 0x9c4e4ed2, 0x49a9a9e0, 0xd86c6cb4, 0xac5656fa, 0xf3f4f407, 0xcfeaea25, 0xca6565af, 0xf47a7a8e, 0x47aeaee9, 0x10080818, 0x6fbabad5, 0xf0787888, 0x4a25256f, 0x5c2e2e72, 0x381c1c24, 0x57a6a6f1, 0x73b4b4c7, 0x97c6c651, 0xcbe8e823, 0xa1dddd7c, 0xe874749c, 0x3e1f1f21, 0x964b4bdd, 0x61bdbddc, 0x0d8b8b86, 0x0f8a8a85, 0xe0707090, 0x7c3e3e42, 0x71b5b5c4, 0xcc6666aa, 0x904848d8, 0x06030305, 0xf7f6f601, 0x1c0e0e12, 0xc26161a3, 0x6a35355f, 0xae5757f9, 0x69b9b9d0, 0x17868691, 0x99c1c158, 0x3a1d1d27, 0x279e9eb9, 0xd9e1e138, 0xebf8f813, 0x2b9898b3, 0x22111133, 0xd26969bb, 0xa9d9d970, 0x078e8e89, 0x339494a7, 0x2d9b9bb6, 0x3c1e1e22, 0x15878792, 0xc9e9e920, 0x87cece49, 0xaa5555ff, 0x50282878, 0xa5dfdf7a, 0x038c8c8f, 0x59a1a1f8, 0x09898980, 0x1a0d0d17, 0x65bfbfda, 0xd7e6e631, 0x844242c6, 0xd06868b8, 0x824141c3, 0x299999b0, 0x5a2d2d77, 0x1e0f0f11, 0x7bb0b0cb, 0xa85454fc, 0x6dbbbbd6, 0x2c16163a];\n var T2 = [0xa5c66363, 0x84f87c7c, 0x99ee7777, 0x8df67b7b, 0x0dfff2f2, 0xbdd66b6b, 0xb1de6f6f, 0x5491c5c5, 0x50603030, 0x03020101, 0xa9ce6767, 0x7d562b2b, 0x19e7fefe, 0x62b5d7d7, 0xe64dabab, 0x9aec7676, 0x458fcaca, 0x9d1f8282, 0x4089c9c9, 0x87fa7d7d, 0x15effafa, 0xebb25959, 0xc98e4747, 0x0bfbf0f0, 0xec41adad, 0x67b3d4d4, 0xfd5fa2a2, 0xea45afaf, 0xbf239c9c, 0xf753a4a4, 0x96e47272, 0x5b9bc0c0, 0xc275b7b7, 0x1ce1fdfd, 0xae3d9393, 0x6a4c2626, 0x5a6c3636, 0x417e3f3f, 0x02f5f7f7, 0x4f83cccc, 0x5c683434, 0xf451a5a5, 0x34d1e5e5, 0x08f9f1f1, 0x93e27171, 0x73abd8d8, 0x53623131, 0x3f2a1515, 0x0c080404, 0x5295c7c7, 0x65462323, 0x5e9dc3c3, 0x28301818, 0xa1379696, 0x0f0a0505, 0xb52f9a9a, 0x090e0707, 0x36241212, 0x9b1b8080, 0x3ddfe2e2, 0x26cdebeb, 0x694e2727, 0xcd7fb2b2, 0x9fea7575, 0x1b120909, 0x9e1d8383, 0x74582c2c, 0x2e341a1a, 0x2d361b1b, 0xb2dc6e6e, 0xeeb45a5a, 0xfb5ba0a0, 0xf6a45252, 0x4d763b3b, 0x61b7d6d6, 0xce7db3b3, 0x7b522929, 0x3edde3e3, 0x715e2f2f, 0x97138484, 0xf5a65353, 0x68b9d1d1, 0x00000000, 0x2cc1eded, 0x60402020, 0x1fe3fcfc, 0xc879b1b1, 0xedb65b5b, 0xbed46a6a, 0x468dcbcb, 0xd967bebe, 0x4b723939, 0xde944a4a, 0xd4984c4c, 0xe8b05858, 0x4a85cfcf, 0x6bbbd0d0, 0x2ac5efef, 0xe54faaaa, 0x16edfbfb, 0xc5864343, 0xd79a4d4d, 0x55663333, 0x94118585, 0xcf8a4545, 0x10e9f9f9, 0x06040202, 0x81fe7f7f, 0xf0a05050, 0x44783c3c, 0xba259f9f, 0xe34ba8a8, 0xf3a25151, 0xfe5da3a3, 0xc0804040, 0x8a058f8f, 0xad3f9292, 0xbc219d9d, 0x48703838, 0x04f1f5f5, 0xdf63bcbc, 0xc177b6b6, 0x75afdada, 0x63422121, 0x30201010, 0x1ae5ffff, 0x0efdf3f3, 0x6dbfd2d2, 0x4c81cdcd, 0x14180c0c, 0x35261313, 0x2fc3ecec, 0xe1be5f5f, 0xa2359797, 0xcc884444, 0x392e1717, 0x5793c4c4, 0xf255a7a7, 0x82fc7e7e, 0x477a3d3d, 0xacc86464, 0xe7ba5d5d, 0x2b321919, 0x95e67373, 0xa0c06060, 0x98198181, 0xd19e4f4f, 0x7fa3dcdc, 0x66442222, 0x7e542a2a, 0xab3b9090, 0x830b8888, 0xca8c4646, 0x29c7eeee, 0xd36bb8b8, 0x3c281414, 0x79a7dede, 0xe2bc5e5e, 0x1d160b0b, 0x76addbdb, 0x3bdbe0e0, 0x56643232, 0x4e743a3a, 0x1e140a0a, 0xdb924949, 0x0a0c0606, 0x6c482424, 0xe4b85c5c, 0x5d9fc2c2, 0x6ebdd3d3, 0xef43acac, 0xa6c46262, 0xa8399191, 0xa4319595, 0x37d3e4e4, 0x8bf27979, 0x32d5e7e7, 0x438bc8c8, 0x596e3737, 0xb7da6d6d, 0x8c018d8d, 0x64b1d5d5, 0xd29c4e4e, 0xe049a9a9, 0xb4d86c6c, 0xfaac5656, 0x07f3f4f4, 0x25cfeaea, 0xafca6565, 0x8ef47a7a, 0xe947aeae, 0x18100808, 0xd56fbaba, 0x88f07878, 0x6f4a2525, 0x725c2e2e, 0x24381c1c, 0xf157a6a6, 0xc773b4b4, 0x5197c6c6, 0x23cbe8e8, 0x7ca1dddd, 0x9ce87474, 0x213e1f1f, 0xdd964b4b, 0xdc61bdbd, 0x860d8b8b, 0x850f8a8a, 0x90e07070, 0x427c3e3e, 0xc471b5b5, 0xaacc6666, 0xd8904848, 0x05060303, 0x01f7f6f6, 0x121c0e0e, 0xa3c26161, 0x5f6a3535, 0xf9ae5757, 0xd069b9b9, 0x91178686, 0x5899c1c1, 0x273a1d1d, 0xb9279e9e, 0x38d9e1e1, 0x13ebf8f8, 0xb32b9898, 0x33221111, 0xbbd26969, 0x70a9d9d9, 0x89078e8e, 0xa7339494, 0xb62d9b9b, 0x223c1e1e, 0x92158787, 0x20c9e9e9, 0x4987cece, 0xffaa5555, 0x78502828, 0x7aa5dfdf, 0x8f038c8c, 0xf859a1a1, 0x80098989, 0x171a0d0d, 0xda65bfbf, 0x31d7e6e6, 0xc6844242, 0xb8d06868, 0xc3824141, 0xb0299999, 0x775a2d2d, 0x111e0f0f, 0xcb7bb0b0, 0xfca85454, 0xd66dbbbb, 0x3a2c1616];\n var T3 = [0x63a5c663, 0x7c84f87c, 0x7799ee77, 0x7b8df67b, 0xf20dfff2, 0x6bbdd66b, 0x6fb1de6f, 0xc55491c5, 0x30506030, 0x01030201, 0x67a9ce67, 0x2b7d562b, 0xfe19e7fe, 0xd762b5d7, 0xabe64dab, 0x769aec76, 0xca458fca, 0x829d1f82, 0xc94089c9, 0x7d87fa7d, 0xfa15effa, 0x59ebb259, 0x47c98e47, 0xf00bfbf0, 0xadec41ad, 0xd467b3d4, 0xa2fd5fa2, 0xafea45af, 0x9cbf239c, 0xa4f753a4, 0x7296e472, 0xc05b9bc0, 0xb7c275b7, 0xfd1ce1fd, 0x93ae3d93, 0x266a4c26, 0x365a6c36, 0x3f417e3f, 0xf702f5f7, 0xcc4f83cc, 0x345c6834, 0xa5f451a5, 0xe534d1e5, 0xf108f9f1, 0x7193e271, 0xd873abd8, 0x31536231, 0x153f2a15, 0x040c0804, 0xc75295c7, 0x23654623, 0xc35e9dc3, 0x18283018, 0x96a13796, 0x050f0a05, 0x9ab52f9a, 0x07090e07, 0x12362412, 0x809b1b80, 0xe23ddfe2, 0xeb26cdeb, 0x27694e27, 0xb2cd7fb2, 0x759fea75, 0x091b1209, 0x839e1d83, 0x2c74582c, 0x1a2e341a, 0x1b2d361b, 0x6eb2dc6e, 0x5aeeb45a, 0xa0fb5ba0, 0x52f6a452, 0x3b4d763b, 0xd661b7d6, 0xb3ce7db3, 0x297b5229, 0xe33edde3, 0x2f715e2f, 0x84971384, 0x53f5a653, 0xd168b9d1, 0x00000000, 0xed2cc1ed, 0x20604020, 0xfc1fe3fc, 0xb1c879b1, 0x5bedb65b, 0x6abed46a, 0xcb468dcb, 0xbed967be, 0x394b7239, 0x4ade944a, 0x4cd4984c, 0x58e8b058, 0xcf4a85cf, 0xd06bbbd0, 0xef2ac5ef, 0xaae54faa, 0xfb16edfb, 0x43c58643, 0x4dd79a4d, 0x33556633, 0x85941185, 0x45cf8a45, 0xf910e9f9, 0x02060402, 0x7f81fe7f, 0x50f0a050, 0x3c44783c, 0x9fba259f, 0xa8e34ba8, 0x51f3a251, 0xa3fe5da3, 0x40c08040, 0x8f8a058f, 0x92ad3f92, 0x9dbc219d, 0x38487038, 0xf504f1f5, 0xbcdf63bc, 0xb6c177b6, 0xda75afda, 0x21634221, 0x10302010, 0xff1ae5ff, 0xf30efdf3, 0xd26dbfd2, 0xcd4c81cd, 0x0c14180c, 0x13352613, 0xec2fc3ec, 0x5fe1be5f, 0x97a23597, 0x44cc8844, 0x17392e17, 0xc45793c4, 0xa7f255a7, 0x7e82fc7e, 0x3d477a3d, 0x64acc864, 0x5de7ba5d, 0x192b3219, 0x7395e673, 0x60a0c060, 0x81981981, 0x4fd19e4f, 0xdc7fa3dc, 0x22664422, 0x2a7e542a, 0x90ab3b90, 0x88830b88, 0x46ca8c46, 0xee29c7ee, 0xb8d36bb8, 0x143c2814, 0xde79a7de, 0x5ee2bc5e, 0x0b1d160b, 0xdb76addb, 0xe03bdbe0, 0x32566432, 0x3a4e743a, 0x0a1e140a, 0x49db9249, 0x060a0c06, 0x246c4824, 0x5ce4b85c, 0xc25d9fc2, 0xd36ebdd3, 0xacef43ac, 0x62a6c462, 0x91a83991, 0x95a43195, 0xe437d3e4, 0x798bf279, 0xe732d5e7, 0xc8438bc8, 0x37596e37, 0x6db7da6d, 0x8d8c018d, 0xd564b1d5, 0x4ed29c4e, 0xa9e049a9, 0x6cb4d86c, 0x56faac56, 0xf407f3f4, 0xea25cfea, 0x65afca65, 0x7a8ef47a, 0xaee947ae, 0x08181008, 0xbad56fba, 0x7888f078, 0x256f4a25, 0x2e725c2e, 0x1c24381c, 0xa6f157a6, 0xb4c773b4, 0xc65197c6, 0xe823cbe8, 0xdd7ca1dd, 0x749ce874, 0x1f213e1f, 0x4bdd964b, 0xbddc61bd, 0x8b860d8b, 0x8a850f8a, 0x7090e070, 0x3e427c3e, 0xb5c471b5, 0x66aacc66, 0x48d89048, 0x03050603, 0xf601f7f6, 0x0e121c0e, 0x61a3c261, 0x355f6a35, 0x57f9ae57, 0xb9d069b9, 0x86911786, 0xc15899c1, 0x1d273a1d, 0x9eb9279e, 0xe138d9e1, 0xf813ebf8, 0x98b32b98, 0x11332211, 0x69bbd269, 0xd970a9d9, 0x8e89078e, 0x94a73394, 0x9bb62d9b, 0x1e223c1e, 0x87921587, 0xe920c9e9, 0xce4987ce, 0x55ffaa55, 0x28785028, 0xdf7aa5df, 0x8c8f038c, 0xa1f859a1, 0x89800989, 0x0d171a0d, 0xbfda65bf, 0xe631d7e6, 0x42c68442, 0x68b8d068, 0x41c38241, 0x99b02999, 0x2d775a2d, 0x0f111e0f, 0xb0cb7bb0, 0x54fca854, 0xbbd66dbb, 0x163a2c16];\n var T4 = [0x6363a5c6, 0x7c7c84f8, 0x777799ee, 0x7b7b8df6, 0xf2f20dff, 0x6b6bbdd6, 0x6f6fb1de, 0xc5c55491, 0x30305060, 0x01010302, 0x6767a9ce, 0x2b2b7d56, 0xfefe19e7, 0xd7d762b5, 0xababe64d, 0x76769aec, 0xcaca458f, 0x82829d1f, 0xc9c94089, 0x7d7d87fa, 0xfafa15ef, 0x5959ebb2, 0x4747c98e, 0xf0f00bfb, 0xadadec41, 0xd4d467b3, 0xa2a2fd5f, 0xafafea45, 0x9c9cbf23, 0xa4a4f753, 0x727296e4, 0xc0c05b9b, 0xb7b7c275, 0xfdfd1ce1, 0x9393ae3d, 0x26266a4c, 0x36365a6c, 0x3f3f417e, 0xf7f702f5, 0xcccc4f83, 0x34345c68, 0xa5a5f451, 0xe5e534d1, 0xf1f108f9, 0x717193e2, 0xd8d873ab, 0x31315362, 0x15153f2a, 0x04040c08, 0xc7c75295, 0x23236546, 0xc3c35e9d, 0x18182830, 0x9696a137, 0x05050f0a, 0x9a9ab52f, 0x0707090e, 0x12123624, 0x80809b1b, 0xe2e23ddf, 0xebeb26cd, 0x2727694e, 0xb2b2cd7f, 0x75759fea, 0x09091b12, 0x83839e1d, 0x2c2c7458, 0x1a1a2e34, 0x1b1b2d36, 0x6e6eb2dc, 0x5a5aeeb4, 0xa0a0fb5b, 0x5252f6a4, 0x3b3b4d76, 0xd6d661b7, 0xb3b3ce7d, 0x29297b52, 0xe3e33edd, 0x2f2f715e, 0x84849713, 0x5353f5a6, 0xd1d168b9, 0x00000000, 0xeded2cc1, 0x20206040, 0xfcfc1fe3, 0xb1b1c879, 0x5b5bedb6, 0x6a6abed4, 0xcbcb468d, 0xbebed967, 0x39394b72, 0x4a4ade94, 0x4c4cd498, 0x5858e8b0, 0xcfcf4a85, 0xd0d06bbb, 0xefef2ac5, 0xaaaae54f, 0xfbfb16ed, 0x4343c586, 0x4d4dd79a, 0x33335566, 0x85859411, 0x4545cf8a, 0xf9f910e9, 0x02020604, 0x7f7f81fe, 0x5050f0a0, 0x3c3c4478, 0x9f9fba25, 0xa8a8e34b, 0x5151f3a2, 0xa3a3fe5d, 0x4040c080, 0x8f8f8a05, 0x9292ad3f, 0x9d9dbc21, 0x38384870, 0xf5f504f1, 0xbcbcdf63, 0xb6b6c177, 0xdada75af, 0x21216342, 0x10103020, 0xffff1ae5, 0xf3f30efd, 0xd2d26dbf, 0xcdcd4c81, 0x0c0c1418, 0x13133526, 0xecec2fc3, 0x5f5fe1be, 0x9797a235, 0x4444cc88, 0x1717392e, 0xc4c45793, 0xa7a7f255, 0x7e7e82fc, 0x3d3d477a, 0x6464acc8, 0x5d5de7ba, 0x19192b32, 0x737395e6, 0x6060a0c0, 0x81819819, 0x4f4fd19e, 0xdcdc7fa3, 0x22226644, 0x2a2a7e54, 0x9090ab3b, 0x8888830b, 0x4646ca8c, 0xeeee29c7, 0xb8b8d36b, 0x14143c28, 0xdede79a7, 0x5e5ee2bc, 0x0b0b1d16, 0xdbdb76ad, 0xe0e03bdb, 0x32325664, 0x3a3a4e74, 0x0a0a1e14, 0x4949db92, 0x06060a0c, 0x24246c48, 0x5c5ce4b8, 0xc2c25d9f, 0xd3d36ebd, 0xacacef43, 0x6262a6c4, 0x9191a839, 0x9595a431, 0xe4e437d3, 0x79798bf2, 0xe7e732d5, 0xc8c8438b, 0x3737596e, 0x6d6db7da, 0x8d8d8c01, 0xd5d564b1, 0x4e4ed29c, 0xa9a9e049, 0x6c6cb4d8, 0x5656faac, 0xf4f407f3, 0xeaea25cf, 0x6565afca, 0x7a7a8ef4, 0xaeaee947, 0x08081810, 0xbabad56f, 0x787888f0, 0x25256f4a, 0x2e2e725c, 0x1c1c2438, 0xa6a6f157, 0xb4b4c773, 0xc6c65197, 0xe8e823cb, 0xdddd7ca1, 0x74749ce8, 0x1f1f213e, 0x4b4bdd96, 0xbdbddc61, 0x8b8b860d, 0x8a8a850f, 0x707090e0, 0x3e3e427c, 0xb5b5c471, 0x6666aacc, 0x4848d890, 0x03030506, 0xf6f601f7, 0x0e0e121c, 0x6161a3c2, 0x35355f6a, 0x5757f9ae, 0xb9b9d069, 0x86869117, 0xc1c15899, 0x1d1d273a, 0x9e9eb927, 0xe1e138d9, 0xf8f813eb, 0x9898b32b, 0x11113322, 0x6969bbd2, 0xd9d970a9, 0x8e8e8907, 0x9494a733, 0x9b9bb62d, 0x1e1e223c, 0x87879215, 0xe9e920c9, 0xcece4987, 0x5555ffaa, 0x28287850, 0xdfdf7aa5, 0x8c8c8f03, 0xa1a1f859, 0x89898009, 0x0d0d171a, 0xbfbfda65, 0xe6e631d7, 0x4242c684, 0x6868b8d0, 0x4141c382, 0x9999b029, 0x2d2d775a, 0x0f0f111e, 0xb0b0cb7b, 0x5454fca8, 0xbbbbd66d, 0x16163a2c];\n\n // Transformations for decryption\n var T5 = [0x51f4a750, 0x7e416553, 0x1a17a4c3, 0x3a275e96, 0x3bab6bcb, 0x1f9d45f1, 0xacfa58ab, 0x4be30393, 0x2030fa55, 0xad766df6, 0x88cc7691, 0xf5024c25, 0x4fe5d7fc, 0xc52acbd7, 0x26354480, 0xb562a38f, 0xdeb15a49, 0x25ba1b67, 0x45ea0e98, 0x5dfec0e1, 0xc32f7502, 0x814cf012, 0x8d4697a3, 0x6bd3f9c6, 0x038f5fe7, 0x15929c95, 0xbf6d7aeb, 0x955259da, 0xd4be832d, 0x587421d3, 0x49e06929, 0x8ec9c844, 0x75c2896a, 0xf48e7978, 0x99583e6b, 0x27b971dd, 0xbee14fb6, 0xf088ad17, 0xc920ac66, 0x7dce3ab4, 0x63df4a18, 0xe51a3182, 0x97513360, 0x62537f45, 0xb16477e0, 0xbb6bae84, 0xfe81a01c, 0xf9082b94, 0x70486858, 0x8f45fd19, 0x94de6c87, 0x527bf8b7, 0xab73d323, 0x724b02e2, 0xe31f8f57, 0x6655ab2a, 0xb2eb2807, 0x2fb5c203, 0x86c57b9a, 0xd33708a5, 0x302887f2, 0x23bfa5b2, 0x02036aba, 0xed16825c, 0x8acf1c2b, 0xa779b492, 0xf307f2f0, 0x4e69e2a1, 0x65daf4cd, 0x0605bed5, 0xd134621f, 0xc4a6fe8a, 0x342e539d, 0xa2f355a0, 0x058ae132, 0xa4f6eb75, 0x0b83ec39, 0x4060efaa, 0x5e719f06, 0xbd6e1051, 0x3e218af9, 0x96dd063d, 0xdd3e05ae, 0x4de6bd46, 0x91548db5, 0x71c45d05, 0x0406d46f, 0x605015ff, 0x1998fb24, 0xd6bde997, 0x894043cc, 0x67d99e77, 0xb0e842bd, 0x07898b88, 0xe7195b38, 0x79c8eedb, 0xa17c0a47, 0x7c420fe9, 0xf8841ec9, 0x00000000, 0x09808683, 0x322bed48, 0x1e1170ac, 0x6c5a724e, 0xfd0efffb, 0x0f853856, 0x3daed51e, 0x362d3927, 0x0a0fd964, 0x685ca621, 0x9b5b54d1, 0x24362e3a, 0x0c0a67b1, 0x9357e70f, 0xb4ee96d2, 0x1b9b919e, 0x80c0c54f, 0x61dc20a2, 0x5a774b69, 0x1c121a16, 0xe293ba0a, 0xc0a02ae5, 0x3c22e043, 0x121b171d, 0x0e090d0b, 0xf28bc7ad, 0x2db6a8b9, 0x141ea9c8, 0x57f11985, 0xaf75074c, 0xee99ddbb, 0xa37f60fd, 0xf701269f, 0x5c72f5bc, 0x44663bc5, 0x5bfb7e34, 0x8b432976, 0xcb23c6dc, 0xb6edfc68, 0xb8e4f163, 0xd731dcca, 0x42638510, 0x13972240, 0x84c61120, 0x854a247d, 0xd2bb3df8, 0xaef93211, 0xc729a16d, 0x1d9e2f4b, 0xdcb230f3, 0x0d8652ec, 0x77c1e3d0, 0x2bb3166c, 0xa970b999, 0x119448fa, 0x47e96422, 0xa8fc8cc4, 0xa0f03f1a, 0x567d2cd8, 0x223390ef, 0x87494ec7, 0xd938d1c1, 0x8ccaa2fe, 0x98d40b36, 0xa6f581cf, 0xa57ade28, 0xdab78e26, 0x3fadbfa4, 0x2c3a9de4, 0x5078920d, 0x6a5fcc9b, 0x547e4662, 0xf68d13c2, 0x90d8b8e8, 0x2e39f75e, 0x82c3aff5, 0x9f5d80be, 0x69d0937c, 0x6fd52da9, 0xcf2512b3, 0xc8ac993b, 0x10187da7, 0xe89c636e, 0xdb3bbb7b, 0xcd267809, 0x6e5918f4, 0xec9ab701, 0x834f9aa8, 0xe6956e65, 0xaaffe67e, 0x21bccf08, 0xef15e8e6, 0xbae79bd9, 0x4a6f36ce, 0xea9f09d4, 0x29b07cd6, 0x31a4b2af, 0x2a3f2331, 0xc6a59430, 0x35a266c0, 0x744ebc37, 0xfc82caa6, 0xe090d0b0, 0x33a7d815, 0xf104984a, 0x41ecdaf7, 0x7fcd500e, 0x1791f62f, 0x764dd68d, 0x43efb04d, 0xccaa4d54, 0xe49604df, 0x9ed1b5e3, 0x4c6a881b, 0xc12c1fb8, 0x4665517f, 0x9d5eea04, 0x018c355d, 0xfa877473, 0xfb0b412e, 0xb3671d5a, 0x92dbd252, 0xe9105633, 0x6dd64713, 0x9ad7618c, 0x37a10c7a, 0x59f8148e, 0xeb133c89, 0xcea927ee, 0xb761c935, 0xe11ce5ed, 0x7a47b13c, 0x9cd2df59, 0x55f2733f, 0x1814ce79, 0x73c737bf, 0x53f7cdea, 0x5ffdaa5b, 0xdf3d6f14, 0x7844db86, 0xcaaff381, 0xb968c43e, 0x3824342c, 0xc2a3405f, 0x161dc372, 0xbce2250c, 0x283c498b, 0xff0d9541, 0x39a80171, 0x080cb3de, 0xd8b4e49c, 0x6456c190, 0x7bcb8461, 0xd532b670, 0x486c5c74, 0xd0b85742];\n var T6 = [0x5051f4a7, 0x537e4165, 0xc31a17a4, 0x963a275e, 0xcb3bab6b, 0xf11f9d45, 0xabacfa58, 0x934be303, 0x552030fa, 0xf6ad766d, 0x9188cc76, 0x25f5024c, 0xfc4fe5d7, 0xd7c52acb, 0x80263544, 0x8fb562a3, 0x49deb15a, 0x6725ba1b, 0x9845ea0e, 0xe15dfec0, 0x02c32f75, 0x12814cf0, 0xa38d4697, 0xc66bd3f9, 0xe7038f5f, 0x9515929c, 0xebbf6d7a, 0xda955259, 0x2dd4be83, 0xd3587421, 0x2949e069, 0x448ec9c8, 0x6a75c289, 0x78f48e79, 0x6b99583e, 0xdd27b971, 0xb6bee14f, 0x17f088ad, 0x66c920ac, 0xb47dce3a, 0x1863df4a, 0x82e51a31, 0x60975133, 0x4562537f, 0xe0b16477, 0x84bb6bae, 0x1cfe81a0, 0x94f9082b, 0x58704868, 0x198f45fd, 0x8794de6c, 0xb7527bf8, 0x23ab73d3, 0xe2724b02, 0x57e31f8f, 0x2a6655ab, 0x07b2eb28, 0x032fb5c2, 0x9a86c57b, 0xa5d33708, 0xf2302887, 0xb223bfa5, 0xba02036a, 0x5ced1682, 0x2b8acf1c, 0x92a779b4, 0xf0f307f2, 0xa14e69e2, 0xcd65daf4, 0xd50605be, 0x1fd13462, 0x8ac4a6fe, 0x9d342e53, 0xa0a2f355, 0x32058ae1, 0x75a4f6eb, 0x390b83ec, 0xaa4060ef, 0x065e719f, 0x51bd6e10, 0xf93e218a, 0x3d96dd06, 0xaedd3e05, 0x464de6bd, 0xb591548d, 0x0571c45d, 0x6f0406d4, 0xff605015, 0x241998fb, 0x97d6bde9, 0xcc894043, 0x7767d99e, 0xbdb0e842, 0x8807898b, 0x38e7195b, 0xdb79c8ee, 0x47a17c0a, 0xe97c420f, 0xc9f8841e, 0x00000000, 0x83098086, 0x48322bed, 0xac1e1170, 0x4e6c5a72, 0xfbfd0eff, 0x560f8538, 0x1e3daed5, 0x27362d39, 0x640a0fd9, 0x21685ca6, 0xd19b5b54, 0x3a24362e, 0xb10c0a67, 0x0f9357e7, 0xd2b4ee96, 0x9e1b9b91, 0x4f80c0c5, 0xa261dc20, 0x695a774b, 0x161c121a, 0x0ae293ba, 0xe5c0a02a, 0x433c22e0, 0x1d121b17, 0x0b0e090d, 0xadf28bc7, 0xb92db6a8, 0xc8141ea9, 0x8557f119, 0x4caf7507, 0xbbee99dd, 0xfda37f60, 0x9ff70126, 0xbc5c72f5, 0xc544663b, 0x345bfb7e, 0x768b4329, 0xdccb23c6, 0x68b6edfc, 0x63b8e4f1, 0xcad731dc, 0x10426385, 0x40139722, 0x2084c611, 0x7d854a24, 0xf8d2bb3d, 0x11aef932, 0x6dc729a1, 0x4b1d9e2f, 0xf3dcb230, 0xec0d8652, 0xd077c1e3, 0x6c2bb316, 0x99a970b9, 0xfa119448, 0x2247e964, 0xc4a8fc8c, 0x1aa0f03f, 0xd8567d2c, 0xef223390, 0xc787494e, 0xc1d938d1, 0xfe8ccaa2, 0x3698d40b, 0xcfa6f581, 0x28a57ade, 0x26dab78e, 0xa43fadbf, 0xe42c3a9d, 0x0d507892, 0x9b6a5fcc, 0x62547e46, 0xc2f68d13, 0xe890d8b8, 0x5e2e39f7, 0xf582c3af, 0xbe9f5d80, 0x7c69d093, 0xa96fd52d, 0xb3cf2512, 0x3bc8ac99, 0xa710187d, 0x6ee89c63, 0x7bdb3bbb, 0x09cd2678, 0xf46e5918, 0x01ec9ab7, 0xa8834f9a, 0x65e6956e, 0x7eaaffe6, 0x0821bccf, 0xe6ef15e8, 0xd9bae79b, 0xce4a6f36, 0xd4ea9f09, 0xd629b07c, 0xaf31a4b2, 0x312a3f23, 0x30c6a594, 0xc035a266, 0x37744ebc, 0xa6fc82ca, 0xb0e090d0, 0x1533a7d8, 0x4af10498, 0xf741ecda, 0x0e7fcd50, 0x2f1791f6, 0x8d764dd6, 0x4d43efb0, 0x54ccaa4d, 0xdfe49604, 0xe39ed1b5, 0x1b4c6a88, 0xb8c12c1f, 0x7f466551, 0x049d5eea, 0x5d018c35, 0x73fa8774, 0x2efb0b41, 0x5ab3671d, 0x5292dbd2, 0x33e91056, 0x136dd647, 0x8c9ad761, 0x7a37a10c, 0x8e59f814, 0x89eb133c, 0xeecea927, 0x35b761c9, 0xede11ce5, 0x3c7a47b1, 0x599cd2df, 0x3f55f273, 0x791814ce, 0xbf73c737, 0xea53f7cd, 0x5b5ffdaa, 0x14df3d6f, 0x867844db, 0x81caaff3, 0x3eb968c4, 0x2c382434, 0x5fc2a340, 0x72161dc3, 0x0cbce225, 0x8b283c49, 0x41ff0d95, 0x7139a801, 0xde080cb3, 0x9cd8b4e4, 0x906456c1, 0x617bcb84, 0x70d532b6, 0x74486c5c, 0x42d0b857];\n var T7 = [0xa75051f4, 0x65537e41, 0xa4c31a17, 0x5e963a27, 0x6bcb3bab, 0x45f11f9d, 0x58abacfa, 0x03934be3, 0xfa552030, 0x6df6ad76, 0x769188cc, 0x4c25f502, 0xd7fc4fe5, 0xcbd7c52a, 0x44802635, 0xa38fb562, 0x5a49deb1, 0x1b6725ba, 0x0e9845ea, 0xc0e15dfe, 0x7502c32f, 0xf012814c, 0x97a38d46, 0xf9c66bd3, 0x5fe7038f, 0x9c951592, 0x7aebbf6d, 0x59da9552, 0x832dd4be, 0x21d35874, 0x692949e0, 0xc8448ec9, 0x896a75c2, 0x7978f48e, 0x3e6b9958, 0x71dd27b9, 0x4fb6bee1, 0xad17f088, 0xac66c920, 0x3ab47dce, 0x4a1863df, 0x3182e51a, 0x33609751, 0x7f456253, 0x77e0b164, 0xae84bb6b, 0xa01cfe81, 0x2b94f908, 0x68587048, 0xfd198f45, 0x6c8794de, 0xf8b7527b, 0xd323ab73, 0x02e2724b, 0x8f57e31f, 0xab2a6655, 0x2807b2eb, 0xc2032fb5, 0x7b9a86c5, 0x08a5d337, 0x87f23028, 0xa5b223bf, 0x6aba0203, 0x825ced16, 0x1c2b8acf, 0xb492a779, 0xf2f0f307, 0xe2a14e69, 0xf4cd65da, 0xbed50605, 0x621fd134, 0xfe8ac4a6, 0x539d342e, 0x55a0a2f3, 0xe132058a, 0xeb75a4f6, 0xec390b83, 0xefaa4060, 0x9f065e71, 0x1051bd6e, 0x8af93e21, 0x063d96dd, 0x05aedd3e, 0xbd464de6, 0x8db59154, 0x5d0571c4, 0xd46f0406, 0x15ff6050, 0xfb241998, 0xe997d6bd, 0x43cc8940, 0x9e7767d9, 0x42bdb0e8, 0x8b880789, 0x5b38e719, 0xeedb79c8, 0x0a47a17c, 0x0fe97c42, 0x1ec9f884, 0x00000000, 0x86830980, 0xed48322b, 0x70ac1e11, 0x724e6c5a, 0xfffbfd0e, 0x38560f85, 0xd51e3dae, 0x3927362d, 0xd9640a0f, 0xa621685c, 0x54d19b5b, 0x2e3a2436, 0x67b10c0a, 0xe70f9357, 0x96d2b4ee, 0x919e1b9b, 0xc54f80c0, 0x20a261dc, 0x4b695a77, 0x1a161c12, 0xba0ae293, 0x2ae5c0a0, 0xe0433c22, 0x171d121b, 0x0d0b0e09, 0xc7adf28b, 0xa8b92db6, 0xa9c8141e, 0x198557f1, 0x074caf75, 0xddbbee99, 0x60fda37f, 0x269ff701, 0xf5bc5c72, 0x3bc54466, 0x7e345bfb, 0x29768b43, 0xc6dccb23, 0xfc68b6ed, 0xf163b8e4, 0xdccad731, 0x85104263, 0x22401397, 0x112084c6, 0x247d854a, 0x3df8d2bb, 0x3211aef9, 0xa16dc729, 0x2f4b1d9e, 0x30f3dcb2, 0x52ec0d86, 0xe3d077c1, 0x166c2bb3, 0xb999a970, 0x48fa1194, 0x642247e9, 0x8cc4a8fc, 0x3f1aa0f0, 0x2cd8567d, 0x90ef2233, 0x4ec78749, 0xd1c1d938, 0xa2fe8cca, 0x0b3698d4, 0x81cfa6f5, 0xde28a57a, 0x8e26dab7, 0xbfa43fad, 0x9de42c3a, 0x920d5078, 0xcc9b6a5f, 0x4662547e, 0x13c2f68d, 0xb8e890d8, 0xf75e2e39, 0xaff582c3, 0x80be9f5d, 0x937c69d0, 0x2da96fd5, 0x12b3cf25, 0x993bc8ac, 0x7da71018, 0x636ee89c, 0xbb7bdb3b, 0x7809cd26, 0x18f46e59, 0xb701ec9a, 0x9aa8834f, 0x6e65e695, 0xe67eaaff, 0xcf0821bc, 0xe8e6ef15, 0x9bd9bae7, 0x36ce4a6f, 0x09d4ea9f, 0x7cd629b0, 0xb2af31a4, 0x23312a3f, 0x9430c6a5, 0x66c035a2, 0xbc37744e, 0xcaa6fc82, 0xd0b0e090, 0xd81533a7, 0x984af104, 0xdaf741ec, 0x500e7fcd, 0xf62f1791, 0xd68d764d, 0xb04d43ef, 0x4d54ccaa, 0x04dfe496, 0xb5e39ed1, 0x881b4c6a, 0x1fb8c12c, 0x517f4665, 0xea049d5e, 0x355d018c, 0x7473fa87, 0x412efb0b, 0x1d5ab367, 0xd25292db, 0x5633e910, 0x47136dd6, 0x618c9ad7, 0x0c7a37a1, 0x148e59f8, 0x3c89eb13, 0x27eecea9, 0xc935b761, 0xe5ede11c, 0xb13c7a47, 0xdf599cd2, 0x733f55f2, 0xce791814, 0x37bf73c7, 0xcdea53f7, 0xaa5b5ffd, 0x6f14df3d, 0xdb867844, 0xf381caaf, 0xc43eb968, 0x342c3824, 0x405fc2a3, 0xc372161d, 0x250cbce2, 0x498b283c, 0x9541ff0d, 0x017139a8, 0xb3de080c, 0xe49cd8b4, 0xc1906456, 0x84617bcb, 0xb670d532, 0x5c74486c, 0x5742d0b8];\n var T8 = [0xf4a75051, 0x4165537e, 0x17a4c31a, 0x275e963a, 0xab6bcb3b, 0x9d45f11f, 0xfa58abac, 0xe303934b, 0x30fa5520, 0x766df6ad, 0xcc769188, 0x024c25f5, 0xe5d7fc4f, 0x2acbd7c5, 0x35448026, 0x62a38fb5, 0xb15a49de, 0xba1b6725, 0xea0e9845, 0xfec0e15d, 0x2f7502c3, 0x4cf01281, 0x4697a38d, 0xd3f9c66b, 0x8f5fe703, 0x929c9515, 0x6d7aebbf, 0x5259da95, 0xbe832dd4, 0x7421d358, 0xe0692949, 0xc9c8448e, 0xc2896a75, 0x8e7978f4, 0x583e6b99, 0xb971dd27, 0xe14fb6be, 0x88ad17f0, 0x20ac66c9, 0xce3ab47d, 0xdf4a1863, 0x1a3182e5, 0x51336097, 0x537f4562, 0x6477e0b1, 0x6bae84bb, 0x81a01cfe, 0x082b94f9, 0x48685870, 0x45fd198f, 0xde6c8794, 0x7bf8b752, 0x73d323ab, 0x4b02e272, 0x1f8f57e3, 0x55ab2a66, 0xeb2807b2, 0xb5c2032f, 0xc57b9a86, 0x3708a5d3, 0x2887f230, 0xbfa5b223, 0x036aba02, 0x16825ced, 0xcf1c2b8a, 0x79b492a7, 0x07f2f0f3, 0x69e2a14e, 0xdaf4cd65, 0x05bed506, 0x34621fd1, 0xa6fe8ac4, 0x2e539d34, 0xf355a0a2, 0x8ae13205, 0xf6eb75a4, 0x83ec390b, 0x60efaa40, 0x719f065e, 0x6e1051bd, 0x218af93e, 0xdd063d96, 0x3e05aedd, 0xe6bd464d, 0x548db591, 0xc45d0571, 0x06d46f04, 0x5015ff60, 0x98fb2419, 0xbde997d6, 0x4043cc89, 0xd99e7767, 0xe842bdb0, 0x898b8807, 0x195b38e7, 0xc8eedb79, 0x7c0a47a1, 0x420fe97c, 0x841ec9f8, 0x00000000, 0x80868309, 0x2bed4832, 0x1170ac1e, 0x5a724e6c, 0x0efffbfd, 0x8538560f, 0xaed51e3d, 0x2d392736, 0x0fd9640a, 0x5ca62168, 0x5b54d19b, 0x362e3a24, 0x0a67b10c, 0x57e70f93, 0xee96d2b4, 0x9b919e1b, 0xc0c54f80, 0xdc20a261, 0x774b695a, 0x121a161c, 0x93ba0ae2, 0xa02ae5c0, 0x22e0433c, 0x1b171d12, 0x090d0b0e, 0x8bc7adf2, 0xb6a8b92d, 0x1ea9c814, 0xf1198557, 0x75074caf, 0x99ddbbee, 0x7f60fda3, 0x01269ff7, 0x72f5bc5c, 0x663bc544, 0xfb7e345b, 0x4329768b, 0x23c6dccb, 0xedfc68b6, 0xe4f163b8, 0x31dccad7, 0x63851042, 0x97224013, 0xc6112084, 0x4a247d85, 0xbb3df8d2, 0xf93211ae, 0x29a16dc7, 0x9e2f4b1d, 0xb230f3dc, 0x8652ec0d, 0xc1e3d077, 0xb3166c2b, 0x70b999a9, 0x9448fa11, 0xe9642247, 0xfc8cc4a8, 0xf03f1aa0, 0x7d2cd856, 0x3390ef22, 0x494ec787, 0x38d1c1d9, 0xcaa2fe8c, 0xd40b3698, 0xf581cfa6, 0x7ade28a5, 0xb78e26da, 0xadbfa43f, 0x3a9de42c, 0x78920d50, 0x5fcc9b6a, 0x7e466254, 0x8d13c2f6, 0xd8b8e890, 0x39f75e2e, 0xc3aff582, 0x5d80be9f, 0xd0937c69, 0xd52da96f, 0x2512b3cf, 0xac993bc8, 0x187da710, 0x9c636ee8, 0x3bbb7bdb, 0x267809cd, 0x5918f46e, 0x9ab701ec, 0x4f9aa883, 0x956e65e6, 0xffe67eaa, 0xbccf0821, 0x15e8e6ef, 0xe79bd9ba, 0x6f36ce4a, 0x9f09d4ea, 0xb07cd629, 0xa4b2af31, 0x3f23312a, 0xa59430c6, 0xa266c035, 0x4ebc3774, 0x82caa6fc, 0x90d0b0e0, 0xa7d81533, 0x04984af1, 0xecdaf741, 0xcd500e7f, 0x91f62f17, 0x4dd68d76, 0xefb04d43, 0xaa4d54cc, 0x9604dfe4, 0xd1b5e39e, 0x6a881b4c, 0x2c1fb8c1, 0x65517f46, 0x5eea049d, 0x8c355d01, 0x877473fa, 0x0b412efb, 0x671d5ab3, 0xdbd25292, 0x105633e9, 0xd647136d, 0xd7618c9a, 0xa10c7a37, 0xf8148e59, 0x133c89eb, 0xa927eece, 0x61c935b7, 0x1ce5ede1, 0x47b13c7a, 0xd2df599c, 0xf2733f55, 0x14ce7918, 0xc737bf73, 0xf7cdea53, 0xfdaa5b5f, 0x3d6f14df, 0x44db8678, 0xaff381ca, 0x68c43eb9, 0x24342c38, 0xa3405fc2, 0x1dc37216, 0xe2250cbc, 0x3c498b28, 0x0d9541ff, 0xa8017139, 0x0cb3de08, 0xb4e49cd8, 0x56c19064, 0xcb84617b, 0x32b670d5, 0x6c5c7448, 0xb85742d0];\n\n // Transformations for decryption key expansion\n var U1 = [0x00000000, 0x0e090d0b, 0x1c121a16, 0x121b171d, 0x3824342c, 0x362d3927, 0x24362e3a, 0x2a3f2331, 0x70486858, 0x7e416553, 0x6c5a724e, 0x62537f45, 0x486c5c74, 0x4665517f, 0x547e4662, 0x5a774b69, 0xe090d0b0, 0xee99ddbb, 0xfc82caa6, 0xf28bc7ad, 0xd8b4e49c, 0xd6bde997, 0xc4a6fe8a, 0xcaaff381, 0x90d8b8e8, 0x9ed1b5e3, 0x8ccaa2fe, 0x82c3aff5, 0xa8fc8cc4, 0xa6f581cf, 0xb4ee96d2, 0xbae79bd9, 0xdb3bbb7b, 0xd532b670, 0xc729a16d, 0xc920ac66, 0xe31f8f57, 0xed16825c, 0xff0d9541, 0xf104984a, 0xab73d323, 0xa57ade28, 0xb761c935, 0xb968c43e, 0x9357e70f, 0x9d5eea04, 0x8f45fd19, 0x814cf012, 0x3bab6bcb, 0x35a266c0, 0x27b971dd, 0x29b07cd6, 0x038f5fe7, 0x0d8652ec, 0x1f9d45f1, 0x119448fa, 0x4be30393, 0x45ea0e98, 0x57f11985, 0x59f8148e, 0x73c737bf, 0x7dce3ab4, 0x6fd52da9, 0x61dc20a2, 0xad766df6, 0xa37f60fd, 0xb16477e0, 0xbf6d7aeb, 0x955259da, 0x9b5b54d1, 0x894043cc, 0x87494ec7, 0xdd3e05ae, 0xd33708a5, 0xc12c1fb8, 0xcf2512b3, 0xe51a3182, 0xeb133c89, 0xf9082b94, 0xf701269f, 0x4de6bd46, 0x43efb04d, 0x51f4a750, 0x5ffdaa5b, 0x75c2896a, 0x7bcb8461, 0x69d0937c, 0x67d99e77, 0x3daed51e, 0x33a7d815, 0x21bccf08, 0x2fb5c203, 0x058ae132, 0x0b83ec39, 0x1998fb24, 0x1791f62f, 0x764dd68d, 0x7844db86, 0x6a5fcc9b, 0x6456c190, 0x4e69e2a1, 0x4060efaa, 0x527bf8b7, 0x5c72f5bc, 0x0605bed5, 0x080cb3de, 0x1a17a4c3, 0x141ea9c8, 0x3e218af9, 0x302887f2, 0x223390ef, 0x2c3a9de4, 0x96dd063d, 0x98d40b36, 0x8acf1c2b, 0x84c61120, 0xaef93211, 0xa0f03f1a, 0xb2eb2807, 0xbce2250c, 0xe6956e65, 0xe89c636e, 0xfa877473, 0xf48e7978, 0xdeb15a49, 0xd0b85742, 0xc2a3405f, 0xccaa4d54, 0x41ecdaf7, 0x4fe5d7fc, 0x5dfec0e1, 0x53f7cdea, 0x79c8eedb, 0x77c1e3d0, 0x65daf4cd, 0x6bd3f9c6, 0x31a4b2af, 0x3fadbfa4, 0x2db6a8b9, 0x23bfa5b2, 0x09808683, 0x07898b88, 0x15929c95, 0x1b9b919e, 0xa17c0a47, 0xaf75074c, 0xbd6e1051, 0xb3671d5a, 0x99583e6b, 0x97513360, 0x854a247d, 0x8b432976, 0xd134621f, 0xdf3d6f14, 0xcd267809, 0xc32f7502, 0xe9105633, 0xe7195b38, 0xf5024c25, 0xfb0b412e, 0x9ad7618c, 0x94de6c87, 0x86c57b9a, 0x88cc7691, 0xa2f355a0, 0xacfa58ab, 0xbee14fb6, 0xb0e842bd, 0xea9f09d4, 0xe49604df, 0xf68d13c2, 0xf8841ec9, 0xd2bb3df8, 0xdcb230f3, 0xcea927ee, 0xc0a02ae5, 0x7a47b13c, 0x744ebc37, 0x6655ab2a, 0x685ca621, 0x42638510, 0x4c6a881b, 0x5e719f06, 0x5078920d, 0x0a0fd964, 0x0406d46f, 0x161dc372, 0x1814ce79, 0x322bed48, 0x3c22e043, 0x2e39f75e, 0x2030fa55, 0xec9ab701, 0xe293ba0a, 0xf088ad17, 0xfe81a01c, 0xd4be832d, 0xdab78e26, 0xc8ac993b, 0xc6a59430, 0x9cd2df59, 0x92dbd252, 0x80c0c54f, 0x8ec9c844, 0xa4f6eb75, 0xaaffe67e, 0xb8e4f163, 0xb6edfc68, 0x0c0a67b1, 0x02036aba, 0x10187da7, 0x1e1170ac, 0x342e539d, 0x3a275e96, 0x283c498b, 0x26354480, 0x7c420fe9, 0x724b02e2, 0x605015ff, 0x6e5918f4, 0x44663bc5, 0x4a6f36ce, 0x587421d3, 0x567d2cd8, 0x37a10c7a, 0x39a80171, 0x2bb3166c, 0x25ba1b67, 0x0f853856, 0x018c355d, 0x13972240, 0x1d9e2f4b, 0x47e96422, 0x49e06929, 0x5bfb7e34, 0x55f2733f, 0x7fcd500e, 0x71c45d05, 0x63df4a18, 0x6dd64713, 0xd731dcca, 0xd938d1c1, 0xcb23c6dc, 0xc52acbd7, 0xef15e8e6, 0xe11ce5ed, 0xf307f2f0, 0xfd0efffb, 0xa779b492, 0xa970b999, 0xbb6bae84, 0xb562a38f, 0x9f5d80be, 0x91548db5, 0x834f9aa8, 0x8d4697a3];\n var U2 = [0x00000000, 0x0b0e090d, 0x161c121a, 0x1d121b17, 0x2c382434, 0x27362d39, 0x3a24362e, 0x312a3f23, 0x58704868, 0x537e4165, 0x4e6c5a72, 0x4562537f, 0x74486c5c, 0x7f466551, 0x62547e46, 0x695a774b, 0xb0e090d0, 0xbbee99dd, 0xa6fc82ca, 0xadf28bc7, 0x9cd8b4e4, 0x97d6bde9, 0x8ac4a6fe, 0x81caaff3, 0xe890d8b8, 0xe39ed1b5, 0xfe8ccaa2, 0xf582c3af, 0xc4a8fc8c, 0xcfa6f581, 0xd2b4ee96, 0xd9bae79b, 0x7bdb3bbb, 0x70d532b6, 0x6dc729a1, 0x66c920ac, 0x57e31f8f, 0x5ced1682, 0x41ff0d95, 0x4af10498, 0x23ab73d3, 0x28a57ade, 0x35b761c9, 0x3eb968c4, 0x0f9357e7, 0x049d5eea, 0x198f45fd, 0x12814cf0, 0xcb3bab6b, 0xc035a266, 0xdd27b971, 0xd629b07c, 0xe7038f5f, 0xec0d8652, 0xf11f9d45, 0xfa119448, 0x934be303, 0x9845ea0e, 0x8557f119, 0x8e59f814, 0xbf73c737, 0xb47dce3a, 0xa96fd52d, 0xa261dc20, 0xf6ad766d, 0xfda37f60, 0xe0b16477, 0xebbf6d7a, 0xda955259, 0xd19b5b54, 0xcc894043, 0xc787494e, 0xaedd3e05, 0xa5d33708, 0xb8c12c1f, 0xb3cf2512, 0x82e51a31, 0x89eb133c, 0x94f9082b, 0x9ff70126, 0x464de6bd, 0x4d43efb0, 0x5051f4a7, 0x5b5ffdaa, 0x6a75c289, 0x617bcb84, 0x7c69d093, 0x7767d99e, 0x1e3daed5, 0x1533a7d8, 0x0821bccf, 0x032fb5c2, 0x32058ae1, 0x390b83ec, 0x241998fb, 0x2f1791f6, 0x8d764dd6, 0x867844db, 0x9b6a5fcc, 0x906456c1, 0xa14e69e2, 0xaa4060ef, 0xb7527bf8, 0xbc5c72f5, 0xd50605be, 0xde080cb3, 0xc31a17a4, 0xc8141ea9, 0xf93e218a, 0xf2302887, 0xef223390, 0xe42c3a9d, 0x3d96dd06, 0x3698d40b, 0x2b8acf1c, 0x2084c611, 0x11aef932, 0x1aa0f03f, 0x07b2eb28, 0x0cbce225, 0x65e6956e, 0x6ee89c63, 0x73fa8774, 0x78f48e79, 0x49deb15a, 0x42d0b857, 0x5fc2a340, 0x54ccaa4d, 0xf741ecda, 0xfc4fe5d7, 0xe15dfec0, 0xea53f7cd, 0xdb79c8ee, 0xd077c1e3, 0xcd65daf4, 0xc66bd3f9, 0xaf31a4b2, 0xa43fadbf, 0xb92db6a8, 0xb223bfa5, 0x83098086, 0x8807898b, 0x9515929c, 0x9e1b9b91, 0x47a17c0a, 0x4caf7507, 0x51bd6e10, 0x5ab3671d, 0x6b99583e, 0x60975133, 0x7d854a24, 0x768b4329, 0x1fd13462, 0x14df3d6f, 0x09cd2678, 0x02c32f75, 0x33e91056, 0x38e7195b, 0x25f5024c, 0x2efb0b41, 0x8c9ad761, 0x8794de6c, 0x9a86c57b, 0x9188cc76, 0xa0a2f355, 0xabacfa58, 0xb6bee14f, 0xbdb0e842, 0xd4ea9f09, 0xdfe49604, 0xc2f68d13, 0xc9f8841e, 0xf8d2bb3d, 0xf3dcb230, 0xeecea927, 0xe5c0a02a, 0x3c7a47b1, 0x37744ebc, 0x2a6655ab, 0x21685ca6, 0x10426385, 0x1b4c6a88, 0x065e719f, 0x0d507892, 0x640a0fd9, 0x6f0406d4, 0x72161dc3, 0x791814ce, 0x48322bed, 0x433c22e0, 0x5e2e39f7, 0x552030fa, 0x01ec9ab7, 0x0ae293ba, 0x17f088ad, 0x1cfe81a0, 0x2dd4be83, 0x26dab78e, 0x3bc8ac99, 0x30c6a594, 0x599cd2df, 0x5292dbd2, 0x4f80c0c5, 0x448ec9c8, 0x75a4f6eb, 0x7eaaffe6, 0x63b8e4f1, 0x68b6edfc, 0xb10c0a67, 0xba02036a, 0xa710187d, 0xac1e1170, 0x9d342e53, 0x963a275e, 0x8b283c49, 0x80263544, 0xe97c420f, 0xe2724b02, 0xff605015, 0xf46e5918, 0xc544663b, 0xce4a6f36, 0xd3587421, 0xd8567d2c, 0x7a37a10c, 0x7139a801, 0x6c2bb316, 0x6725ba1b, 0x560f8538, 0x5d018c35, 0x40139722, 0x4b1d9e2f, 0x2247e964, 0x2949e069, 0x345bfb7e, 0x3f55f273, 0x0e7fcd50, 0x0571c45d, 0x1863df4a, 0x136dd647, 0xcad731dc, 0xc1d938d1, 0xdccb23c6, 0xd7c52acb, 0xe6ef15e8, 0xede11ce5, 0xf0f307f2, 0xfbfd0eff, 0x92a779b4, 0x99a970b9, 0x84bb6bae, 0x8fb562a3, 0xbe9f5d80, 0xb591548d, 0xa8834f9a, 0xa38d4697];\n var U3 = [0x00000000, 0x0d0b0e09, 0x1a161c12, 0x171d121b, 0x342c3824, 0x3927362d, 0x2e3a2436, 0x23312a3f, 0x68587048, 0x65537e41, 0x724e6c5a, 0x7f456253, 0x5c74486c, 0x517f4665, 0x4662547e, 0x4b695a77, 0xd0b0e090, 0xddbbee99, 0xcaa6fc82, 0xc7adf28b, 0xe49cd8b4, 0xe997d6bd, 0xfe8ac4a6, 0xf381caaf, 0xb8e890d8, 0xb5e39ed1, 0xa2fe8cca, 0xaff582c3, 0x8cc4a8fc, 0x81cfa6f5, 0x96d2b4ee, 0x9bd9bae7, 0xbb7bdb3b, 0xb670d532, 0xa16dc729, 0xac66c920, 0x8f57e31f, 0x825ced16, 0x9541ff0d, 0x984af104, 0xd323ab73, 0xde28a57a, 0xc935b761, 0xc43eb968, 0xe70f9357, 0xea049d5e, 0xfd198f45, 0xf012814c, 0x6bcb3bab, 0x66c035a2, 0x71dd27b9, 0x7cd629b0, 0x5fe7038f, 0x52ec0d86, 0x45f11f9d, 0x48fa1194, 0x03934be3, 0x0e9845ea, 0x198557f1, 0x148e59f8, 0x37bf73c7, 0x3ab47dce, 0x2da96fd5, 0x20a261dc, 0x6df6ad76, 0x60fda37f, 0x77e0b164, 0x7aebbf6d, 0x59da9552, 0x54d19b5b, 0x43cc8940, 0x4ec78749, 0x05aedd3e, 0x08a5d337, 0x1fb8c12c, 0x12b3cf25, 0x3182e51a, 0x3c89eb13, 0x2b94f908, 0x269ff701, 0xbd464de6, 0xb04d43ef, 0xa75051f4, 0xaa5b5ffd, 0x896a75c2, 0x84617bcb, 0x937c69d0, 0x9e7767d9, 0xd51e3dae, 0xd81533a7, 0xcf0821bc, 0xc2032fb5, 0xe132058a, 0xec390b83, 0xfb241998, 0xf62f1791, 0xd68d764d, 0xdb867844, 0xcc9b6a5f, 0xc1906456, 0xe2a14e69, 0xefaa4060, 0xf8b7527b, 0xf5bc5c72, 0xbed50605, 0xb3de080c, 0xa4c31a17, 0xa9c8141e, 0x8af93e21, 0x87f23028, 0x90ef2233, 0x9de42c3a, 0x063d96dd, 0x0b3698d4, 0x1c2b8acf, 0x112084c6, 0x3211aef9, 0x3f1aa0f0, 0x2807b2eb, 0x250cbce2, 0x6e65e695, 0x636ee89c, 0x7473fa87, 0x7978f48e, 0x5a49deb1, 0x5742d0b8, 0x405fc2a3, 0x4d54ccaa, 0xdaf741ec, 0xd7fc4fe5, 0xc0e15dfe, 0xcdea53f7, 0xeedb79c8, 0xe3d077c1, 0xf4cd65da, 0xf9c66bd3, 0xb2af31a4, 0xbfa43fad, 0xa8b92db6, 0xa5b223bf, 0x86830980, 0x8b880789, 0x9c951592, 0x919e1b9b, 0x0a47a17c, 0x074caf75, 0x1051bd6e, 0x1d5ab367, 0x3e6b9958, 0x33609751, 0x247d854a, 0x29768b43, 0x621fd134, 0x6f14df3d, 0x7809cd26, 0x7502c32f, 0x5633e910, 0x5b38e719, 0x4c25f502, 0x412efb0b, 0x618c9ad7, 0x6c8794de, 0x7b9a86c5, 0x769188cc, 0x55a0a2f3, 0x58abacfa, 0x4fb6bee1, 0x42bdb0e8, 0x09d4ea9f, 0x04dfe496, 0x13c2f68d, 0x1ec9f884, 0x3df8d2bb, 0x30f3dcb2, 0x27eecea9, 0x2ae5c0a0, 0xb13c7a47, 0xbc37744e, 0xab2a6655, 0xa621685c, 0x85104263, 0x881b4c6a, 0x9f065e71, 0x920d5078, 0xd9640a0f, 0xd46f0406, 0xc372161d, 0xce791814, 0xed48322b, 0xe0433c22, 0xf75e2e39, 0xfa552030, 0xb701ec9a, 0xba0ae293, 0xad17f088, 0xa01cfe81, 0x832dd4be, 0x8e26dab7, 0x993bc8ac, 0x9430c6a5, 0xdf599cd2, 0xd25292db, 0xc54f80c0, 0xc8448ec9, 0xeb75a4f6, 0xe67eaaff, 0xf163b8e4, 0xfc68b6ed, 0x67b10c0a, 0x6aba0203, 0x7da71018, 0x70ac1e11, 0x539d342e, 0x5e963a27, 0x498b283c, 0x44802635, 0x0fe97c42, 0x02e2724b, 0x15ff6050, 0x18f46e59, 0x3bc54466, 0x36ce4a6f, 0x21d35874, 0x2cd8567d, 0x0c7a37a1, 0x017139a8, 0x166c2bb3, 0x1b6725ba, 0x38560f85, 0x355d018c, 0x22401397, 0x2f4b1d9e, 0x642247e9, 0x692949e0, 0x7e345bfb, 0x733f55f2, 0x500e7fcd, 0x5d0571c4, 0x4a1863df, 0x47136dd6, 0xdccad731, 0xd1c1d938, 0xc6dccb23, 0xcbd7c52a, 0xe8e6ef15, 0xe5ede11c, 0xf2f0f307, 0xfffbfd0e, 0xb492a779, 0xb999a970, 0xae84bb6b, 0xa38fb562, 0x80be9f5d, 0x8db59154, 0x9aa8834f, 0x97a38d46];\n var U4 = [0x00000000, 0x090d0b0e, 0x121a161c, 0x1b171d12, 0x24342c38, 0x2d392736, 0x362e3a24, 0x3f23312a, 0x48685870, 0x4165537e, 0x5a724e6c, 0x537f4562, 0x6c5c7448, 0x65517f46, 0x7e466254, 0x774b695a, 0x90d0b0e0, 0x99ddbbee, 0x82caa6fc, 0x8bc7adf2, 0xb4e49cd8, 0xbde997d6, 0xa6fe8ac4, 0xaff381ca, 0xd8b8e890, 0xd1b5e39e, 0xcaa2fe8c, 0xc3aff582, 0xfc8cc4a8, 0xf581cfa6, 0xee96d2b4, 0xe79bd9ba, 0x3bbb7bdb, 0x32b670d5, 0x29a16dc7, 0x20ac66c9, 0x1f8f57e3, 0x16825ced, 0x0d9541ff, 0x04984af1, 0x73d323ab, 0x7ade28a5, 0x61c935b7, 0x68c43eb9, 0x57e70f93, 0x5eea049d, 0x45fd198f, 0x4cf01281, 0xab6bcb3b, 0xa266c035, 0xb971dd27, 0xb07cd629, 0x8f5fe703, 0x8652ec0d, 0x9d45f11f, 0x9448fa11, 0xe303934b, 0xea0e9845, 0xf1198557, 0xf8148e59, 0xc737bf73, 0xce3ab47d, 0xd52da96f, 0xdc20a261, 0x766df6ad, 0x7f60fda3, 0x6477e0b1, 0x6d7aebbf, 0x5259da95, 0x5b54d19b, 0x4043cc89, 0x494ec787, 0x3e05aedd, 0x3708a5d3, 0x2c1fb8c1, 0x2512b3cf, 0x1a3182e5, 0x133c89eb, 0x082b94f9, 0x01269ff7, 0xe6bd464d, 0xefb04d43, 0xf4a75051, 0xfdaa5b5f, 0xc2896a75, 0xcb84617b, 0xd0937c69, 0xd99e7767, 0xaed51e3d, 0xa7d81533, 0xbccf0821, 0xb5c2032f, 0x8ae13205, 0x83ec390b, 0x98fb2419, 0x91f62f17, 0x4dd68d76, 0x44db8678, 0x5fcc9b6a, 0x56c19064, 0x69e2a14e, 0x60efaa40, 0x7bf8b752, 0x72f5bc5c, 0x05bed506, 0x0cb3de08, 0x17a4c31a, 0x1ea9c814, 0x218af93e, 0x2887f230, 0x3390ef22, 0x3a9de42c, 0xdd063d96, 0xd40b3698, 0xcf1c2b8a, 0xc6112084, 0xf93211ae, 0xf03f1aa0, 0xeb2807b2, 0xe2250cbc, 0x956e65e6, 0x9c636ee8, 0x877473fa, 0x8e7978f4, 0xb15a49de, 0xb85742d0, 0xa3405fc2, 0xaa4d54cc, 0xecdaf741, 0xe5d7fc4f, 0xfec0e15d, 0xf7cdea53, 0xc8eedb79, 0xc1e3d077, 0xdaf4cd65, 0xd3f9c66b, 0xa4b2af31, 0xadbfa43f, 0xb6a8b92d, 0xbfa5b223, 0x80868309, 0x898b8807, 0x929c9515, 0x9b919e1b, 0x7c0a47a1, 0x75074caf, 0x6e1051bd, 0x671d5ab3, 0x583e6b99, 0x51336097, 0x4a247d85, 0x4329768b, 0x34621fd1, 0x3d6f14df, 0x267809cd, 0x2f7502c3, 0x105633e9, 0x195b38e7, 0x024c25f5, 0x0b412efb, 0xd7618c9a, 0xde6c8794, 0xc57b9a86, 0xcc769188, 0xf355a0a2, 0xfa58abac, 0xe14fb6be, 0xe842bdb0, 0x9f09d4ea, 0x9604dfe4, 0x8d13c2f6, 0x841ec9f8, 0xbb3df8d2, 0xb230f3dc, 0xa927eece, 0xa02ae5c0, 0x47b13c7a, 0x4ebc3774, 0x55ab2a66, 0x5ca62168, 0x63851042, 0x6a881b4c, 0x719f065e, 0x78920d50, 0x0fd9640a, 0x06d46f04, 0x1dc37216, 0x14ce7918, 0x2bed4832, 0x22e0433c, 0x39f75e2e, 0x30fa5520, 0x9ab701ec, 0x93ba0ae2, 0x88ad17f0, 0x81a01cfe, 0xbe832dd4, 0xb78e26da, 0xac993bc8, 0xa59430c6, 0xd2df599c, 0xdbd25292, 0xc0c54f80, 0xc9c8448e, 0xf6eb75a4, 0xffe67eaa, 0xe4f163b8, 0xedfc68b6, 0x0a67b10c, 0x036aba02, 0x187da710, 0x1170ac1e, 0x2e539d34, 0x275e963a, 0x3c498b28, 0x35448026, 0x420fe97c, 0x4b02e272, 0x5015ff60, 0x5918f46e, 0x663bc544, 0x6f36ce4a, 0x7421d358, 0x7d2cd856, 0xa10c7a37, 0xa8017139, 0xb3166c2b, 0xba1b6725, 0x8538560f, 0x8c355d01, 0x97224013, 0x9e2f4b1d, 0xe9642247, 0xe0692949, 0xfb7e345b, 0xf2733f55, 0xcd500e7f, 0xc45d0571, 0xdf4a1863, 0xd647136d, 0x31dccad7, 0x38d1c1d9, 0x23c6dccb, 0x2acbd7c5, 0x15e8e6ef, 0x1ce5ede1, 0x07f2f0f3, 0x0efffbfd, 0x79b492a7, 0x70b999a9, 0x6bae84bb, 0x62a38fb5, 0x5d80be9f, 0x548db591, 0x4f9aa883, 0x4697a38d];\n\n function convertToInt32(bytes) {\n var result = [];\n for (var i = 0; i < bytes.length; i += 4) {\n result.push(\n (bytes[i ] << 24) |\n (bytes[i + 1] << 16) |\n (bytes[i + 2] << 8) |\n bytes[i + 3]\n );\n }\n return result;\n }\n\n var AES = function(key) {\n if (!(this instanceof AES)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n Object.defineProperty(this, 'key', {\n value: coerceArray(key, true)\n });\n\n this._prepare();\n }\n\n\n AES.prototype._prepare = function() {\n\n var rounds = numberOfRounds[this.key.length];\n if (rounds == null) {\n throw new Error('invalid key size (must be 16, 24 or 32 bytes)');\n }\n\n // encryption round keys\n this._Ke = [];\n\n // decryption round keys\n this._Kd = [];\n\n for (var i = 0; i <= rounds; i++) {\n this._Ke.push([0, 0, 0, 0]);\n this._Kd.push([0, 0, 0, 0]);\n }\n\n var roundKeyCount = (rounds + 1) * 4;\n var KC = this.key.length / 4;\n\n // convert the key into ints\n var tk = convertToInt32(this.key);\n\n // copy values into round key arrays\n var index;\n for (var i = 0; i < KC; i++) {\n index = i >> 2;\n this._Ke[index][i % 4] = tk[i];\n this._Kd[rounds - index][i % 4] = tk[i];\n }\n\n // key expansion (fips-197 section 5.2)\n var rconpointer = 0;\n var t = KC, tt;\n while (t < roundKeyCount) {\n tt = tk[KC - 1];\n tk[0] ^= ((S[(tt >> 16) & 0xFF] << 24) ^\n (S[(tt >> 8) & 0xFF] << 16) ^\n (S[ tt & 0xFF] << 8) ^\n S[(tt >> 24) & 0xFF] ^\n (rcon[rconpointer] << 24));\n rconpointer += 1;\n\n // key expansion (for non-256 bit)\n if (KC != 8) {\n for (var i = 1; i < KC; i++) {\n tk[i] ^= tk[i - 1];\n }\n\n // key expansion for 256-bit keys is \"slightly different\" (fips-197)\n } else {\n for (var i = 1; i < (KC / 2); i++) {\n tk[i] ^= tk[i - 1];\n }\n tt = tk[(KC / 2) - 1];\n\n tk[KC / 2] ^= (S[ tt & 0xFF] ^\n (S[(tt >> 8) & 0xFF] << 8) ^\n (S[(tt >> 16) & 0xFF] << 16) ^\n (S[(tt >> 24) & 0xFF] << 24));\n\n for (var i = (KC / 2) + 1; i < KC; i++) {\n tk[i] ^= tk[i - 1];\n }\n }\n\n // copy values into round key arrays\n var i = 0, r, c;\n while (i < KC && t < roundKeyCount) {\n r = t >> 2;\n c = t % 4;\n this._Ke[r][c] = tk[i];\n this._Kd[rounds - r][c] = tk[i++];\n t++;\n }\n }\n\n // inverse-cipher-ify the decryption round key (fips-197 section 5.3)\n for (var r = 1; r < rounds; r++) {\n for (var c = 0; c < 4; c++) {\n tt = this._Kd[r][c];\n this._Kd[r][c] = (U1[(tt >> 24) & 0xFF] ^\n U2[(tt >> 16) & 0xFF] ^\n U3[(tt >> 8) & 0xFF] ^\n U4[ tt & 0xFF]);\n }\n }\n }\n\n AES.prototype.encrypt = function(plaintext) {\n if (plaintext.length != 16) {\n throw new Error('invalid plaintext size (must be 16 bytes)');\n }\n\n var rounds = this._Ke.length - 1;\n var a = [0, 0, 0, 0];\n\n // convert plaintext to (ints ^ key)\n var t = convertToInt32(plaintext);\n for (var i = 0; i < 4; i++) {\n t[i] ^= this._Ke[0][i];\n }\n\n // apply round transforms\n for (var r = 1; r < rounds; r++) {\n for (var i = 0; i < 4; i++) {\n a[i] = (T1[(t[ i ] >> 24) & 0xff] ^\n T2[(t[(i + 1) % 4] >> 16) & 0xff] ^\n T3[(t[(i + 2) % 4] >> 8) & 0xff] ^\n T4[ t[(i + 3) % 4] & 0xff] ^\n this._Ke[r][i]);\n }\n t = a.slice();\n }\n\n // the last round is special\n var result = createArray(16), tt;\n for (var i = 0; i < 4; i++) {\n tt = this._Ke[rounds][i];\n result[4 * i ] = (S[(t[ i ] >> 24) & 0xff] ^ (tt >> 24)) & 0xff;\n result[4 * i + 1] = (S[(t[(i + 1) % 4] >> 16) & 0xff] ^ (tt >> 16)) & 0xff;\n result[4 * i + 2] = (S[(t[(i + 2) % 4] >> 8) & 0xff] ^ (tt >> 8)) & 0xff;\n result[4 * i + 3] = (S[ t[(i + 3) % 4] & 0xff] ^ tt ) & 0xff;\n }\n\n return result;\n }\n\n AES.prototype.decrypt = function(ciphertext) {\n if (ciphertext.length != 16) {\n throw new Error('invalid ciphertext size (must be 16 bytes)');\n }\n\n var rounds = this._Kd.length - 1;\n var a = [0, 0, 0, 0];\n\n // convert plaintext to (ints ^ key)\n var t = convertToInt32(ciphertext);\n for (var i = 0; i < 4; i++) {\n t[i] ^= this._Kd[0][i];\n }\n\n // apply round transforms\n for (var r = 1; r < rounds; r++) {\n for (var i = 0; i < 4; i++) {\n a[i] = (T5[(t[ i ] >> 24) & 0xff] ^\n T6[(t[(i + 3) % 4] >> 16) & 0xff] ^\n T7[(t[(i + 2) % 4] >> 8) & 0xff] ^\n T8[ t[(i + 1) % 4] & 0xff] ^\n this._Kd[r][i]);\n }\n t = a.slice();\n }\n\n // the last round is special\n var result = createArray(16), tt;\n for (var i = 0; i < 4; i++) {\n tt = this._Kd[rounds][i];\n result[4 * i ] = (Si[(t[ i ] >> 24) & 0xff] ^ (tt >> 24)) & 0xff;\n result[4 * i + 1] = (Si[(t[(i + 3) % 4] >> 16) & 0xff] ^ (tt >> 16)) & 0xff;\n result[4 * i + 2] = (Si[(t[(i + 2) % 4] >> 8) & 0xff] ^ (tt >> 8)) & 0xff;\n result[4 * i + 3] = (Si[ t[(i + 1) % 4] & 0xff] ^ tt ) & 0xff;\n }\n\n return result;\n }\n\n\n /**\n * Mode Of Operation - Electonic Codebook (ECB)\n */\n var ModeOfOperationECB = function(key) {\n if (!(this instanceof ModeOfOperationECB)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Electronic Code Block\";\n this.name = \"ecb\";\n\n this._aes = new AES(key);\n }\n\n ModeOfOperationECB.prototype.encrypt = function(plaintext) {\n plaintext = coerceArray(plaintext);\n\n if ((plaintext.length % 16) !== 0) {\n throw new Error('invalid plaintext size (must be multiple of 16 bytes)');\n }\n\n var ciphertext = createArray(plaintext.length);\n var block = createArray(16);\n\n for (var i = 0; i < plaintext.length; i += 16) {\n copyArray(plaintext, block, 0, i, i + 16);\n block = this._aes.encrypt(block);\n copyArray(block, ciphertext, i);\n }\n\n return ciphertext;\n }\n\n ModeOfOperationECB.prototype.decrypt = function(ciphertext) {\n ciphertext = coerceArray(ciphertext);\n\n if ((ciphertext.length % 16) !== 0) {\n throw new Error('invalid ciphertext size (must be multiple of 16 bytes)');\n }\n\n var plaintext = createArray(ciphertext.length);\n var block = createArray(16);\n\n for (var i = 0; i < ciphertext.length; i += 16) {\n copyArray(ciphertext, block, 0, i, i + 16);\n block = this._aes.decrypt(block);\n copyArray(block, plaintext, i);\n }\n\n return plaintext;\n }\n\n\n /**\n * Mode Of Operation - Cipher Block Chaining (CBC)\n */\n var ModeOfOperationCBC = function(key, iv) {\n if (!(this instanceof ModeOfOperationCBC)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Cipher Block Chaining\";\n this.name = \"cbc\";\n\n if (!iv) {\n iv = createArray(16);\n\n } else if (iv.length != 16) {\n throw new Error('invalid initialation vector size (must be 16 bytes)');\n }\n\n this._lastCipherblock = coerceArray(iv, true);\n\n this._aes = new AES(key);\n }\n\n ModeOfOperationCBC.prototype.encrypt = function(plaintext) {\n plaintext = coerceArray(plaintext);\n\n if ((plaintext.length % 16) !== 0) {\n throw new Error('invalid plaintext size (must be multiple of 16 bytes)');\n }\n\n var ciphertext = createArray(plaintext.length);\n var block = createArray(16);\n\n for (var i = 0; i < plaintext.length; i += 16) {\n copyArray(plaintext, block, 0, i, i + 16);\n\n for (var j = 0; j < 16; j++) {\n block[j] ^= this._lastCipherblock[j];\n }\n\n this._lastCipherblock = this._aes.encrypt(block);\n copyArray(this._lastCipherblock, ciphertext, i);\n }\n\n return ciphertext;\n }\n\n ModeOfOperationCBC.prototype.decrypt = function(ciphertext) {\n ciphertext = coerceArray(ciphertext);\n\n if ((ciphertext.length % 16) !== 0) {\n throw new Error('invalid ciphertext size (must be multiple of 16 bytes)');\n }\n\n var plaintext = createArray(ciphertext.length);\n var block = createArray(16);\n\n for (var i = 0; i < ciphertext.length; i += 16) {\n copyArray(ciphertext, block, 0, i, i + 16);\n block = this._aes.decrypt(block);\n\n for (var j = 0; j < 16; j++) {\n plaintext[i + j] = block[j] ^ this._lastCipherblock[j];\n }\n\n copyArray(ciphertext, this._lastCipherblock, 0, i, i + 16);\n }\n\n return plaintext;\n }\n\n\n /**\n * Mode Of Operation - Cipher Feedback (CFB)\n */\n var ModeOfOperationCFB = function(key, iv, segmentSize) {\n if (!(this instanceof ModeOfOperationCFB)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Cipher Feedback\";\n this.name = \"cfb\";\n\n if (!iv) {\n iv = createArray(16);\n\n } else if (iv.length != 16) {\n throw new Error('invalid initialation vector size (must be 16 size)');\n }\n\n if (!segmentSize) { segmentSize = 1; }\n\n this.segmentSize = segmentSize;\n\n this._shiftRegister = coerceArray(iv, true);\n\n this._aes = new AES(key);\n }\n\n ModeOfOperationCFB.prototype.encrypt = function(plaintext) {\n if ((plaintext.length % this.segmentSize) != 0) {\n throw new Error('invalid plaintext size (must be segmentSize bytes)');\n }\n\n var encrypted = coerceArray(plaintext, true);\n\n var xorSegment;\n for (var i = 0; i < encrypted.length; i += this.segmentSize) {\n xorSegment = this._aes.encrypt(this._shiftRegister);\n for (var j = 0; j < this.segmentSize; j++) {\n encrypted[i + j] ^= xorSegment[j];\n }\n\n // Shift the register\n copyArray(this._shiftRegister, this._shiftRegister, 0, this.segmentSize);\n copyArray(encrypted, this._shiftRegister, 16 - this.segmentSize, i, i + this.segmentSize);\n }\n\n return encrypted;\n }\n\n ModeOfOperationCFB.prototype.decrypt = function(ciphertext) {\n if ((ciphertext.length % this.segmentSize) != 0) {\n throw new Error('invalid ciphertext size (must be segmentSize bytes)');\n }\n\n var plaintext = coerceArray(ciphertext, true);\n\n var xorSegment;\n for (var i = 0; i < plaintext.length; i += this.segmentSize) {\n xorSegment = this._aes.encrypt(this._shiftRegister);\n\n for (var j = 0; j < this.segmentSize; j++) {\n plaintext[i + j] ^= xorSegment[j];\n }\n\n // Shift the register\n copyArray(this._shiftRegister, this._shiftRegister, 0, this.segmentSize);\n copyArray(ciphertext, this._shiftRegister, 16 - this.segmentSize, i, i + this.segmentSize);\n }\n\n return plaintext;\n }\n\n /**\n * Mode Of Operation - Output Feedback (OFB)\n */\n var ModeOfOperationOFB = function(key, iv) {\n if (!(this instanceof ModeOfOperationOFB)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Output Feedback\";\n this.name = \"ofb\";\n\n if (!iv) {\n iv = createArray(16);\n\n } else if (iv.length != 16) {\n throw new Error('invalid initialation vector size (must be 16 bytes)');\n }\n\n this._lastPrecipher = coerceArray(iv, true);\n this._lastPrecipherIndex = 16;\n\n this._aes = new AES(key);\n }\n\n ModeOfOperationOFB.prototype.encrypt = function(plaintext) {\n var encrypted = coerceArray(plaintext, true);\n\n for (var i = 0; i < encrypted.length; i++) {\n if (this._lastPrecipherIndex === 16) {\n this._lastPrecipher = this._aes.encrypt(this._lastPrecipher);\n this._lastPrecipherIndex = 0;\n }\n encrypted[i] ^= this._lastPrecipher[this._lastPrecipherIndex++];\n }\n\n return encrypted;\n }\n\n // Decryption is symetric\n ModeOfOperationOFB.prototype.decrypt = ModeOfOperationOFB.prototype.encrypt;\n\n\n /**\n * Counter object for CTR common mode of operation\n */\n var Counter = function(initialValue) {\n if (!(this instanceof Counter)) {\n throw Error('Counter must be instanitated with `new`');\n }\n\n // We allow 0, but anything false-ish uses the default 1\n if (initialValue !== 0 && !initialValue) { initialValue = 1; }\n\n if (typeof(initialValue) === 'number') {\n this._counter = createArray(16);\n this.setValue(initialValue);\n\n } else {\n this.setBytes(initialValue);\n }\n }\n\n Counter.prototype.setValue = function(value) {\n if (typeof(value) !== 'number' || parseInt(value) != value) {\n throw new Error('invalid counter value (must be an integer)');\n }\n\n for (var index = 15; index >= 0; --index) {\n this._counter[index] = value % 256;\n value = value >> 8;\n }\n }\n\n Counter.prototype.setBytes = function(bytes) {\n bytes = coerceArray(bytes, true);\n\n if (bytes.length != 16) {\n throw new Error('invalid counter bytes size (must be 16 bytes)');\n }\n\n this._counter = bytes;\n };\n\n Counter.prototype.increment = function() {\n for (var i = 15; i >= 0; i--) {\n if (this._counter[i] === 255) {\n this._counter[i] = 0;\n } else {\n this._counter[i]++;\n break;\n }\n }\n }\n\n\n /**\n * Mode Of Operation - Counter (CTR)\n */\n var ModeOfOperationCTR = function(key, counter) {\n if (!(this instanceof ModeOfOperationCTR)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Counter\";\n this.name = \"ctr\";\n\n if (!(counter instanceof Counter)) {\n counter = new Counter(counter)\n }\n\n this._counter = counter;\n\n this._remainingCounter = null;\n this._remainingCounterIndex = 16;\n\n this._aes = new AES(key);\n }\n\n ModeOfOperationCTR.prototype.encrypt = function(plaintext) {\n var encrypted = coerceArray(plaintext, true);\n\n for (var i = 0; i < encrypted.length; i++) {\n if (this._remainingCounterIndex === 16) {\n this._remainingCounter = this._aes.encrypt(this._counter._counter);\n this._remainingCounterIndex = 0;\n this._counter.increment();\n }\n encrypted[i] ^= this._remainingCounter[this._remainingCounterIndex++];\n }\n\n return encrypted;\n }\n\n // Decryption is symetric\n ModeOfOperationCTR.prototype.decrypt = ModeOfOperationCTR.prototype.encrypt;\n\n\n ///////////////////////\n // Padding\n\n // See:https://tools.ietf.org/html/rfc2315\n function pkcs7pad(data) {\n data = coerceArray(data, true);\n var padder = 16 - (data.length % 16);\n var result = createArray(data.length + padder);\n copyArray(data, result);\n for (var i = data.length; i < result.length; i++) {\n result[i] = padder;\n }\n return result;\n }\n\n function pkcs7strip(data) {\n data = coerceArray(data, true);\n if (data.length < 16) { throw new Error('PKCS#7 invalid length'); }\n\n var padder = data[data.length - 1];\n if (padder > 16) { throw new Error('PKCS#7 padding byte out of range'); }\n\n var length = data.length - padder;\n for (var i = 0; i < padder; i++) {\n if (data[length + i] !== padder) {\n throw new Error('PKCS#7 invalid padding byte');\n }\n }\n\n var result = createArray(length);\n copyArray(data, result, 0, 0, length);\n return result;\n }\n\n ///////////////////////\n // Exporting\n\n\n // The block cipher\n var aesjs = {\n AES: AES,\n Counter: Counter,\n\n ModeOfOperation: {\n ecb: ModeOfOperationECB,\n cbc: ModeOfOperationCBC,\n cfb: ModeOfOperationCFB,\n ofb: ModeOfOperationOFB,\n ctr: ModeOfOperationCTR\n },\n\n utils: {\n hex: convertHex,\n utf8: convertUtf8\n },\n\n padding: {\n pkcs7: {\n pad: pkcs7pad,\n strip: pkcs7strip\n }\n },\n\n _arrayTest: {\n coerceArray: coerceArray,\n createArray: createArray,\n copyArray: copyArray,\n }\n };\n\n\n // node.js\n if (typeof exports !== 'undefined') {\n module.exports = aesjs\n\n // RequireJS/AMD\n // http://www.requirejs.org/docs/api.html\n // https://github.com/amdjs/amdjs-api/wiki/AMD\n } else if (typeof(define) === 'function' && define.amd) {\n define(aesjs);\n\n // Web Browsers\n } else {\n\n // If there was an existing library at \"aesjs\" make sure it's still available\n if (root.aesjs) {\n aesjs._aesjs = root.aesjs;\n }\n\n root.aesjs = aesjs;\n }\n\n\n})(this);\n","'use strict';\n\nconst asn1 = exports;\n\nasn1.bignum = require('bn.js');\n\nasn1.define = require('./asn1/api').define;\nasn1.base = require('./asn1/base');\nasn1.constants = require('./asn1/constants');\nasn1.decoders = require('./asn1/decoders');\nasn1.encoders = require('./asn1/encoders');\n","'use strict';\n\nconst encoders = require('./encoders');\nconst decoders = require('./decoders');\nconst inherits = require('inherits');\n\nconst api = exports;\n\napi.define = function define(name, body) {\n return new Entity(name, body);\n};\n\nfunction Entity(name, body) {\n this.name = name;\n this.body = body;\n\n this.decoders = {};\n this.encoders = {};\n}\n\nEntity.prototype._createNamed = function createNamed(Base) {\n const name = this.name;\n\n function Generated(entity) {\n this._initNamed(entity, name);\n }\n inherits(Generated, Base);\n Generated.prototype._initNamed = function _initNamed(entity, name) {\n Base.call(this, entity, name);\n };\n\n return new Generated(this);\n};\n\nEntity.prototype._getDecoder = function _getDecoder(enc) {\n enc = enc || 'der';\n // Lazily create decoder\n if (!this.decoders.hasOwnProperty(enc))\n this.decoders[enc] = this._createNamed(decoders[enc]);\n return this.decoders[enc];\n};\n\nEntity.prototype.decode = function decode(data, enc, options) {\n return this._getDecoder(enc).decode(data, options);\n};\n\nEntity.prototype._getEncoder = function _getEncoder(enc) {\n enc = enc || 'der';\n // Lazily create encoder\n if (!this.encoders.hasOwnProperty(enc))\n this.encoders[enc] = this._createNamed(encoders[enc]);\n return this.encoders[enc];\n};\n\nEntity.prototype.encode = function encode(data, enc, /* internal */ reporter) {\n return this._getEncoder(enc).encode(data, reporter);\n};\n","'use strict';\n\nconst inherits = require('inherits');\nconst Reporter = require('../base/reporter').Reporter;\nconst Buffer = require('safer-buffer').Buffer;\n\nfunction DecoderBuffer(base, options) {\n Reporter.call(this, options);\n if (!Buffer.isBuffer(base)) {\n this.error('Input not Buffer');\n return;\n }\n\n this.base = base;\n this.offset = 0;\n this.length = base.length;\n}\ninherits(DecoderBuffer, Reporter);\nexports.DecoderBuffer = DecoderBuffer;\n\nDecoderBuffer.isDecoderBuffer = function isDecoderBuffer(data) {\n if (data instanceof DecoderBuffer) {\n return true;\n }\n\n // Or accept compatible API\n const isCompatible = typeof data === 'object' &&\n Buffer.isBuffer(data.base) &&\n data.constructor.name === 'DecoderBuffer' &&\n typeof data.offset === 'number' &&\n typeof data.length === 'number' &&\n typeof data.save === 'function' &&\n typeof data.restore === 'function' &&\n typeof data.isEmpty === 'function' &&\n typeof data.readUInt8 === 'function' &&\n typeof data.skip === 'function' &&\n typeof data.raw === 'function';\n\n return isCompatible;\n};\n\nDecoderBuffer.prototype.save = function save() {\n return { offset: this.offset, reporter: Reporter.prototype.save.call(this) };\n};\n\nDecoderBuffer.prototype.restore = function restore(save) {\n // Return skipped data\n const res = new DecoderBuffer(this.base);\n res.offset = save.offset;\n res.length = this.offset;\n\n this.offset = save.offset;\n Reporter.prototype.restore.call(this, save.reporter);\n\n return res;\n};\n\nDecoderBuffer.prototype.isEmpty = function isEmpty() {\n return this.offset === this.length;\n};\n\nDecoderBuffer.prototype.readUInt8 = function readUInt8(fail) {\n if (this.offset + 1 <= this.length)\n return this.base.readUInt8(this.offset++, true);\n else\n return this.error(fail || 'DecoderBuffer overrun');\n};\n\nDecoderBuffer.prototype.skip = function skip(bytes, fail) {\n if (!(this.offset + bytes <= this.length))\n return this.error(fail || 'DecoderBuffer overrun');\n\n const res = new DecoderBuffer(this.base);\n\n // Share reporter state\n res._reporterState = this._reporterState;\n\n res.offset = this.offset;\n res.length = this.offset + bytes;\n this.offset += bytes;\n return res;\n};\n\nDecoderBuffer.prototype.raw = function raw(save) {\n return this.base.slice(save ? save.offset : this.offset, this.length);\n};\n\nfunction EncoderBuffer(value, reporter) {\n if (Array.isArray(value)) {\n this.length = 0;\n this.value = value.map(function(item) {\n if (!EncoderBuffer.isEncoderBuffer(item))\n item = new EncoderBuffer(item, reporter);\n this.length += item.length;\n return item;\n }, this);\n } else if (typeof value === 'number') {\n if (!(0 <= value && value <= 0xff))\n return reporter.error('non-byte EncoderBuffer value');\n this.value = value;\n this.length = 1;\n } else if (typeof value === 'string') {\n this.value = value;\n this.length = Buffer.byteLength(value);\n } else if (Buffer.isBuffer(value)) {\n this.value = value;\n this.length = value.length;\n } else {\n return reporter.error('Unsupported type: ' + typeof value);\n }\n}\nexports.EncoderBuffer = EncoderBuffer;\n\nEncoderBuffer.isEncoderBuffer = function isEncoderBuffer(data) {\n if (data instanceof EncoderBuffer) {\n return true;\n }\n\n // Or accept compatible API\n const isCompatible = typeof data === 'object' &&\n data.constructor.name === 'EncoderBuffer' &&\n typeof data.length === 'number' &&\n typeof data.join === 'function';\n\n return isCompatible;\n};\n\nEncoderBuffer.prototype.join = function join(out, offset) {\n if (!out)\n out = Buffer.alloc(this.length);\n if (!offset)\n offset = 0;\n\n if (this.length === 0)\n return out;\n\n if (Array.isArray(this.value)) {\n this.value.forEach(function(item) {\n item.join(out, offset);\n offset += item.length;\n });\n } else {\n if (typeof this.value === 'number')\n out[offset] = this.value;\n else if (typeof this.value === 'string')\n out.write(this.value, offset);\n else if (Buffer.isBuffer(this.value))\n this.value.copy(out, offset);\n offset += this.length;\n }\n\n return out;\n};\n","'use strict';\n\nconst base = exports;\n\nbase.Reporter = require('./reporter').Reporter;\nbase.DecoderBuffer = require('./buffer').DecoderBuffer;\nbase.EncoderBuffer = require('./buffer').EncoderBuffer;\nbase.Node = require('./node');\n","'use strict';\n\nconst Reporter = require('../base/reporter').Reporter;\nconst EncoderBuffer = require('../base/buffer').EncoderBuffer;\nconst DecoderBuffer = require('../base/buffer').DecoderBuffer;\nconst assert = require('minimalistic-assert');\n\n// Supported tags\nconst tags = [\n 'seq', 'seqof', 'set', 'setof', 'objid', 'bool',\n 'gentime', 'utctime', 'null_', 'enum', 'int', 'objDesc',\n 'bitstr', 'bmpstr', 'charstr', 'genstr', 'graphstr', 'ia5str', 'iso646str',\n 'numstr', 'octstr', 'printstr', 't61str', 'unistr', 'utf8str', 'videostr'\n];\n\n// Public methods list\nconst methods = [\n 'key', 'obj', 'use', 'optional', 'explicit', 'implicit', 'def', 'choice',\n 'any', 'contains'\n].concat(tags);\n\n// Overrided methods list\nconst overrided = [\n '_peekTag', '_decodeTag', '_use',\n '_decodeStr', '_decodeObjid', '_decodeTime',\n '_decodeNull', '_decodeInt', '_decodeBool', '_decodeList',\n\n '_encodeComposite', '_encodeStr', '_encodeObjid', '_encodeTime',\n '_encodeNull', '_encodeInt', '_encodeBool'\n];\n\nfunction Node(enc, parent, name) {\n const state = {};\n this._baseState = state;\n\n state.name = name;\n state.enc = enc;\n\n state.parent = parent || null;\n state.children = null;\n\n // State\n state.tag = null;\n state.args = null;\n state.reverseArgs = null;\n state.choice = null;\n state.optional = false;\n state.any = false;\n state.obj = false;\n state.use = null;\n state.useDecoder = null;\n state.key = null;\n state['default'] = null;\n state.explicit = null;\n state.implicit = null;\n state.contains = null;\n\n // Should create new instance on each method\n if (!state.parent) {\n state.children = [];\n this._wrap();\n }\n}\nmodule.exports = Node;\n\nconst stateProps = [\n 'enc', 'parent', 'children', 'tag', 'args', 'reverseArgs', 'choice',\n 'optional', 'any', 'obj', 'use', 'alteredUse', 'key', 'default', 'explicit',\n 'implicit', 'contains'\n];\n\nNode.prototype.clone = function clone() {\n const state = this._baseState;\n const cstate = {};\n stateProps.forEach(function(prop) {\n cstate[prop] = state[prop];\n });\n const res = new this.constructor(cstate.parent);\n res._baseState = cstate;\n return res;\n};\n\nNode.prototype._wrap = function wrap() {\n const state = this._baseState;\n methods.forEach(function(method) {\n this[method] = function _wrappedMethod() {\n const clone = new this.constructor(this);\n state.children.push(clone);\n return clone[method].apply(clone, arguments);\n };\n }, this);\n};\n\nNode.prototype._init = function init(body) {\n const state = this._baseState;\n\n assert(state.parent === null);\n body.call(this);\n\n // Filter children\n state.children = state.children.filter(function(child) {\n return child._baseState.parent === this;\n }, this);\n assert.equal(state.children.length, 1, 'Root node can have only one child');\n};\n\nNode.prototype._useArgs = function useArgs(args) {\n const state = this._baseState;\n\n // Filter children and args\n const children = args.filter(function(arg) {\n return arg instanceof this.constructor;\n }, this);\n args = args.filter(function(arg) {\n return !(arg instanceof this.constructor);\n }, this);\n\n if (children.length !== 0) {\n assert(state.children === null);\n state.children = children;\n\n // Replace parent to maintain backward link\n children.forEach(function(child) {\n child._baseState.parent = this;\n }, this);\n }\n if (args.length !== 0) {\n assert(state.args === null);\n state.args = args;\n state.reverseArgs = args.map(function(arg) {\n if (typeof arg !== 'object' || arg.constructor !== Object)\n return arg;\n\n const res = {};\n Object.keys(arg).forEach(function(key) {\n if (key == (key | 0))\n key |= 0;\n const value = arg[key];\n res[value] = key;\n });\n return res;\n });\n }\n};\n\n//\n// Overrided methods\n//\n\noverrided.forEach(function(method) {\n Node.prototype[method] = function _overrided() {\n const state = this._baseState;\n throw new Error(method + ' not implemented for encoding: ' + state.enc);\n };\n});\n\n//\n// Public methods\n//\n\ntags.forEach(function(tag) {\n Node.prototype[tag] = function _tagMethod() {\n const state = this._baseState;\n const args = Array.prototype.slice.call(arguments);\n\n assert(state.tag === null);\n state.tag = tag;\n\n this._useArgs(args);\n\n return this;\n };\n});\n\nNode.prototype.use = function use(item) {\n assert(item);\n const state = this._baseState;\n\n assert(state.use === null);\n state.use = item;\n\n return this;\n};\n\nNode.prototype.optional = function optional() {\n const state = this._baseState;\n\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.def = function def(val) {\n const state = this._baseState;\n\n assert(state['default'] === null);\n state['default'] = val;\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.explicit = function explicit(num) {\n const state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.explicit = num;\n\n return this;\n};\n\nNode.prototype.implicit = function implicit(num) {\n const state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.implicit = num;\n\n return this;\n};\n\nNode.prototype.obj = function obj() {\n const state = this._baseState;\n const args = Array.prototype.slice.call(arguments);\n\n state.obj = true;\n\n if (args.length !== 0)\n this._useArgs(args);\n\n return this;\n};\n\nNode.prototype.key = function key(newKey) {\n const state = this._baseState;\n\n assert(state.key === null);\n state.key = newKey;\n\n return this;\n};\n\nNode.prototype.any = function any() {\n const state = this._baseState;\n\n state.any = true;\n\n return this;\n};\n\nNode.prototype.choice = function choice(obj) {\n const state = this._baseState;\n\n assert(state.choice === null);\n state.choice = obj;\n this._useArgs(Object.keys(obj).map(function(key) {\n return obj[key];\n }));\n\n return this;\n};\n\nNode.prototype.contains = function contains(item) {\n const state = this._baseState;\n\n assert(state.use === null);\n state.contains = item;\n\n return this;\n};\n\n//\n// Decoding\n//\n\nNode.prototype._decode = function decode(input, options) {\n const state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return input.wrapResult(state.children[0]._decode(input, options));\n\n let result = state['default'];\n let present = true;\n\n let prevKey = null;\n if (state.key !== null)\n prevKey = input.enterKey(state.key);\n\n // Check if tag is there\n if (state.optional) {\n let tag = null;\n if (state.explicit !== null)\n tag = state.explicit;\n else if (state.implicit !== null)\n tag = state.implicit;\n else if (state.tag !== null)\n tag = state.tag;\n\n if (tag === null && !state.any) {\n // Trial and Error\n const save = input.save();\n try {\n if (state.choice === null)\n this._decodeGeneric(state.tag, input, options);\n else\n this._decodeChoice(input, options);\n present = true;\n } catch (e) {\n present = false;\n }\n input.restore(save);\n } else {\n present = this._peekTag(input, tag, state.any);\n\n if (input.isError(present))\n return present;\n }\n }\n\n // Push object on stack\n let prevObj;\n if (state.obj && present)\n prevObj = input.enterObject();\n\n if (present) {\n // Unwrap explicit values\n if (state.explicit !== null) {\n const explicit = this._decodeTag(input, state.explicit);\n if (input.isError(explicit))\n return explicit;\n input = explicit;\n }\n\n const start = input.offset;\n\n // Unwrap implicit and normal values\n if (state.use === null && state.choice === null) {\n let save;\n if (state.any)\n save = input.save();\n const body = this._decodeTag(\n input,\n state.implicit !== null ? state.implicit : state.tag,\n state.any\n );\n if (input.isError(body))\n return body;\n\n if (state.any)\n result = input.raw(save);\n else\n input = body;\n }\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), start, input.length, 'tagged');\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), input.offset, input.length, 'content');\n\n // Select proper method for tag\n if (state.any) {\n // no-op\n } else if (state.choice === null) {\n result = this._decodeGeneric(state.tag, input, options);\n } else {\n result = this._decodeChoice(input, options);\n }\n\n if (input.isError(result))\n return result;\n\n // Decode children\n if (!state.any && state.choice === null && state.children !== null) {\n state.children.forEach(function decodeChildren(child) {\n // NOTE: We are ignoring errors here, to let parser continue with other\n // parts of encoded data\n child._decode(input, options);\n });\n }\n\n // Decode contained/encoded by schema, only in bit or octet strings\n if (state.contains && (state.tag === 'octstr' || state.tag === 'bitstr')) {\n const data = new DecoderBuffer(result);\n result = this._getUse(state.contains, input._reporterState.obj)\n ._decode(data, options);\n }\n }\n\n // Pop object\n if (state.obj && present)\n result = input.leaveObject(prevObj);\n\n // Set key\n if (state.key !== null && (result !== null || present === true))\n input.leaveKey(prevKey, state.key, result);\n else if (prevKey !== null)\n input.exitKey(prevKey);\n\n return result;\n};\n\nNode.prototype._decodeGeneric = function decodeGeneric(tag, input, options) {\n const state = this._baseState;\n\n if (tag === 'seq' || tag === 'set')\n return null;\n if (tag === 'seqof' || tag === 'setof')\n return this._decodeList(input, tag, state.args[0], options);\n else if (/str$/.test(tag))\n return this._decodeStr(input, tag, options);\n else if (tag === 'objid' && state.args)\n return this._decodeObjid(input, state.args[0], state.args[1], options);\n else if (tag === 'objid')\n return this._decodeObjid(input, null, null, options);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._decodeTime(input, tag, options);\n else if (tag === 'null_')\n return this._decodeNull(input, options);\n else if (tag === 'bool')\n return this._decodeBool(input, options);\n else if (tag === 'objDesc')\n return this._decodeStr(input, tag, options);\n else if (tag === 'int' || tag === 'enum')\n return this._decodeInt(input, state.args && state.args[0], options);\n\n if (state.use !== null) {\n return this._getUse(state.use, input._reporterState.obj)\n ._decode(input, options);\n } else {\n return input.error('unknown tag: ' + tag);\n }\n};\n\nNode.prototype._getUse = function _getUse(entity, obj) {\n\n const state = this._baseState;\n // Create altered use decoder if implicit is set\n state.useDecoder = this._use(entity, obj);\n assert(state.useDecoder._baseState.parent === null);\n state.useDecoder = state.useDecoder._baseState.children[0];\n if (state.implicit !== state.useDecoder._baseState.implicit) {\n state.useDecoder = state.useDecoder.clone();\n state.useDecoder._baseState.implicit = state.implicit;\n }\n return state.useDecoder;\n};\n\nNode.prototype._decodeChoice = function decodeChoice(input, options) {\n const state = this._baseState;\n let result = null;\n let match = false;\n\n Object.keys(state.choice).some(function(key) {\n const save = input.save();\n const node = state.choice[key];\n try {\n const value = node._decode(input, options);\n if (input.isError(value))\n return false;\n\n result = { type: key, value: value };\n match = true;\n } catch (e) {\n input.restore(save);\n return false;\n }\n return true;\n }, this);\n\n if (!match)\n return input.error('Choice not matched');\n\n return result;\n};\n\n//\n// Encoding\n//\n\nNode.prototype._createEncoderBuffer = function createEncoderBuffer(data) {\n return new EncoderBuffer(data, this.reporter);\n};\n\nNode.prototype._encode = function encode(data, reporter, parent) {\n const state = this._baseState;\n if (state['default'] !== null && state['default'] === data)\n return;\n\n const result = this._encodeValue(data, reporter, parent);\n if (result === undefined)\n return;\n\n if (this._skipDefault(result, reporter, parent))\n return;\n\n return result;\n};\n\nNode.prototype._encodeValue = function encode(data, reporter, parent) {\n const state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return state.children[0]._encode(data, reporter || new Reporter());\n\n let result = null;\n\n // Set reporter to share it with a child class\n this.reporter = reporter;\n\n // Check if data is there\n if (state.optional && data === undefined) {\n if (state['default'] !== null)\n data = state['default'];\n else\n return;\n }\n\n // Encode children first\n let content = null;\n let primitive = false;\n if (state.any) {\n // Anything that was given is translated to buffer\n result = this._createEncoderBuffer(data);\n } else if (state.choice) {\n result = this._encodeChoice(data, reporter);\n } else if (state.contains) {\n content = this._getUse(state.contains, parent)._encode(data, reporter);\n primitive = true;\n } else if (state.children) {\n content = state.children.map(function(child) {\n if (child._baseState.tag === 'null_')\n return child._encode(null, reporter, data);\n\n if (child._baseState.key === null)\n return reporter.error('Child should have a key');\n const prevKey = reporter.enterKey(child._baseState.key);\n\n if (typeof data !== 'object')\n return reporter.error('Child expected, but input is not object');\n\n const res = child._encode(data[child._baseState.key], reporter, data);\n reporter.leaveKey(prevKey);\n\n return res;\n }, this).filter(function(child) {\n return child;\n });\n content = this._createEncoderBuffer(content);\n } else {\n if (state.tag === 'seqof' || state.tag === 'setof') {\n // TODO(indutny): this should be thrown on DSL level\n if (!(state.args && state.args.length === 1))\n return reporter.error('Too many args for : ' + state.tag);\n\n if (!Array.isArray(data))\n return reporter.error('seqof/setof, but data is not Array');\n\n const child = this.clone();\n child._baseState.implicit = null;\n content = this._createEncoderBuffer(data.map(function(item) {\n const state = this._baseState;\n\n return this._getUse(state.args[0], data)._encode(item, reporter);\n }, child));\n } else if (state.use !== null) {\n result = this._getUse(state.use, parent)._encode(data, reporter);\n } else {\n content = this._encodePrimitive(state.tag, data);\n primitive = true;\n }\n }\n\n // Encode data itself\n if (!state.any && state.choice === null) {\n const tag = state.implicit !== null ? state.implicit : state.tag;\n const cls = state.implicit === null ? 'universal' : 'context';\n\n if (tag === null) {\n if (state.use === null)\n reporter.error('Tag could be omitted only for .use()');\n } else {\n if (state.use === null)\n result = this._encodeComposite(tag, primitive, cls, content);\n }\n }\n\n // Wrap in explicit\n if (state.explicit !== null)\n result = this._encodeComposite(state.explicit, false, 'context', result);\n\n return result;\n};\n\nNode.prototype._encodeChoice = function encodeChoice(data, reporter) {\n const state = this._baseState;\n\n const node = state.choice[data.type];\n if (!node) {\n assert(\n false,\n data.type + ' not found in ' +\n JSON.stringify(Object.keys(state.choice)));\n }\n return node._encode(data.value, reporter);\n};\n\nNode.prototype._encodePrimitive = function encodePrimitive(tag, data) {\n const state = this._baseState;\n\n if (/str$/.test(tag))\n return this._encodeStr(data, tag);\n else if (tag === 'objid' && state.args)\n return this._encodeObjid(data, state.reverseArgs[0], state.args[1]);\n else if (tag === 'objid')\n return this._encodeObjid(data, null, null);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._encodeTime(data, tag);\n else if (tag === 'null_')\n return this._encodeNull();\n else if (tag === 'int' || tag === 'enum')\n return this._encodeInt(data, state.args && state.reverseArgs[0]);\n else if (tag === 'bool')\n return this._encodeBool(data);\n else if (tag === 'objDesc')\n return this._encodeStr(data, tag);\n else\n throw new Error('Unsupported tag: ' + tag);\n};\n\nNode.prototype._isNumstr = function isNumstr(str) {\n return /^[0-9 ]*$/.test(str);\n};\n\nNode.prototype._isPrintstr = function isPrintstr(str) {\n return /^[A-Za-z0-9 '()+,-./:=?]*$/.test(str);\n};\n","'use strict';\n\nconst inherits = require('inherits');\n\nfunction Reporter(options) {\n this._reporterState = {\n obj: null,\n path: [],\n options: options || {},\n errors: []\n };\n}\nexports.Reporter = Reporter;\n\nReporter.prototype.isError = function isError(obj) {\n return obj instanceof ReporterError;\n};\n\nReporter.prototype.save = function save() {\n const state = this._reporterState;\n\n return { obj: state.obj, pathLen: state.path.length };\n};\n\nReporter.prototype.restore = function restore(data) {\n const state = this._reporterState;\n\n state.obj = data.obj;\n state.path = state.path.slice(0, data.pathLen);\n};\n\nReporter.prototype.enterKey = function enterKey(key) {\n return this._reporterState.path.push(key);\n};\n\nReporter.prototype.exitKey = function exitKey(index) {\n const state = this._reporterState;\n\n state.path = state.path.slice(0, index - 1);\n};\n\nReporter.prototype.leaveKey = function leaveKey(index, key, value) {\n const state = this._reporterState;\n\n this.exitKey(index);\n if (state.obj !== null)\n state.obj[key] = value;\n};\n\nReporter.prototype.path = function path() {\n return this._reporterState.path.join('/');\n};\n\nReporter.prototype.enterObject = function enterObject() {\n const state = this._reporterState;\n\n const prev = state.obj;\n state.obj = {};\n return prev;\n};\n\nReporter.prototype.leaveObject = function leaveObject(prev) {\n const state = this._reporterState;\n\n const now = state.obj;\n state.obj = prev;\n return now;\n};\n\nReporter.prototype.error = function error(msg) {\n let err;\n const state = this._reporterState;\n\n const inherited = msg instanceof ReporterError;\n if (inherited) {\n err = msg;\n } else {\n err = new ReporterError(state.path.map(function(elem) {\n return '[' + JSON.stringify(elem) + ']';\n }).join(''), msg.message || msg, msg.stack);\n }\n\n if (!state.options.partial)\n throw err;\n\n if (!inherited)\n state.errors.push(err);\n\n return err;\n};\n\nReporter.prototype.wrapResult = function wrapResult(result) {\n const state = this._reporterState;\n if (!state.options.partial)\n return result;\n\n return {\n result: this.isError(result) ? null : result,\n errors: state.errors\n };\n};\n\nfunction ReporterError(path, msg) {\n this.path = path;\n this.rethrow(msg);\n}\ninherits(ReporterError, Error);\n\nReporterError.prototype.rethrow = function rethrow(msg) {\n this.message = msg + ' at: ' + (this.path || '(shallow)');\n if (Error.captureStackTrace)\n Error.captureStackTrace(this, ReporterError);\n\n if (!this.stack) {\n try {\n // IE only adds stack when thrown\n throw new Error(this.message);\n } catch (e) {\n this.stack = e.stack;\n }\n }\n return this;\n};\n","'use strict';\n\n// Helper\nfunction reverse(map) {\n const res = {};\n\n Object.keys(map).forEach(function(key) {\n // Convert key to integer if it is stringified\n if ((key | 0) == key)\n key = key | 0;\n\n const value = map[key];\n res[value] = key;\n });\n\n return res;\n}\n\nexports.tagClass = {\n 0: 'universal',\n 1: 'application',\n 2: 'context',\n 3: 'private'\n};\nexports.tagClassByName = reverse(exports.tagClass);\n\nexports.tag = {\n 0x00: 'end',\n 0x01: 'bool',\n 0x02: 'int',\n 0x03: 'bitstr',\n 0x04: 'octstr',\n 0x05: 'null_',\n 0x06: 'objid',\n 0x07: 'objDesc',\n 0x08: 'external',\n 0x09: 'real',\n 0x0a: 'enum',\n 0x0b: 'embed',\n 0x0c: 'utf8str',\n 0x0d: 'relativeOid',\n 0x10: 'seq',\n 0x11: 'set',\n 0x12: 'numstr',\n 0x13: 'printstr',\n 0x14: 't61str',\n 0x15: 'videostr',\n 0x16: 'ia5str',\n 0x17: 'utctime',\n 0x18: 'gentime',\n 0x19: 'graphstr',\n 0x1a: 'iso646str',\n 0x1b: 'genstr',\n 0x1c: 'unistr',\n 0x1d: 'charstr',\n 0x1e: 'bmpstr'\n};\nexports.tagByName = reverse(exports.tag);\n","'use strict';\n\nconst constants = exports;\n\n// Helper\nconstants._reverse = function reverse(map) {\n const res = {};\n\n Object.keys(map).forEach(function(key) {\n // Convert key to integer if it is stringified\n if ((key | 0) == key)\n key = key | 0;\n\n const value = map[key];\n res[value] = key;\n });\n\n return res;\n};\n\nconstants.der = require('./der');\n","'use strict';\n\nconst inherits = require('inherits');\n\nconst bignum = require('bn.js');\nconst DecoderBuffer = require('../base/buffer').DecoderBuffer;\nconst Node = require('../base/node');\n\n// Import DER constants\nconst der = require('../constants/der');\n\nfunction DERDecoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n}\nmodule.exports = DERDecoder;\n\nDERDecoder.prototype.decode = function decode(data, options) {\n if (!DecoderBuffer.isDecoderBuffer(data)) {\n data = new DecoderBuffer(data, options);\n }\n\n return this.tree._decode(data, options);\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n Node.call(this, 'der', parent);\n}\ninherits(DERNode, Node);\n\nDERNode.prototype._peekTag = function peekTag(buffer, tag, any) {\n if (buffer.isEmpty())\n return false;\n\n const state = buffer.save();\n const decodedTag = derDecodeTag(buffer, 'Failed to peek tag: \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n buffer.restore(state);\n\n return decodedTag.tag === tag || decodedTag.tagStr === tag ||\n (decodedTag.tagStr + 'of') === tag || any;\n};\n\nDERNode.prototype._decodeTag = function decodeTag(buffer, tag, any) {\n const decodedTag = derDecodeTag(buffer,\n 'Failed to decode tag of \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n let len = derDecodeLen(buffer,\n decodedTag.primitive,\n 'Failed to get length of \"' + tag + '\"');\n\n // Failure\n if (buffer.isError(len))\n return len;\n\n if (!any &&\n decodedTag.tag !== tag &&\n decodedTag.tagStr !== tag &&\n decodedTag.tagStr + 'of' !== tag) {\n return buffer.error('Failed to match tag: \"' + tag + '\"');\n }\n\n if (decodedTag.primitive || len !== null)\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n\n // Indefinite length... find END tag\n const state = buffer.save();\n const res = this._skipUntilEnd(\n buffer,\n 'Failed to skip indefinite length body: \"' + this.tag + '\"');\n if (buffer.isError(res))\n return res;\n\n len = buffer.offset - state.offset;\n buffer.restore(state);\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n};\n\nDERNode.prototype._skipUntilEnd = function skipUntilEnd(buffer, fail) {\n for (;;) {\n const tag = derDecodeTag(buffer, fail);\n if (buffer.isError(tag))\n return tag;\n const len = derDecodeLen(buffer, tag.primitive, fail);\n if (buffer.isError(len))\n return len;\n\n let res;\n if (tag.primitive || len !== null)\n res = buffer.skip(len);\n else\n res = this._skipUntilEnd(buffer, fail);\n\n // Failure\n if (buffer.isError(res))\n return res;\n\n if (tag.tagStr === 'end')\n break;\n }\n};\n\nDERNode.prototype._decodeList = function decodeList(buffer, tag, decoder,\n options) {\n const result = [];\n while (!buffer.isEmpty()) {\n const possibleEnd = this._peekTag(buffer, 'end');\n if (buffer.isError(possibleEnd))\n return possibleEnd;\n\n const res = decoder.decode(buffer, 'der', options);\n if (buffer.isError(res) && possibleEnd)\n break;\n result.push(res);\n }\n return result;\n};\n\nDERNode.prototype._decodeStr = function decodeStr(buffer, tag) {\n if (tag === 'bitstr') {\n const unused = buffer.readUInt8();\n if (buffer.isError(unused))\n return unused;\n return { unused: unused, data: buffer.raw() };\n } else if (tag === 'bmpstr') {\n const raw = buffer.raw();\n if (raw.length % 2 === 1)\n return buffer.error('Decoding of string type: bmpstr length mismatch');\n\n let str = '';\n for (let i = 0; i < raw.length / 2; i++) {\n str += String.fromCharCode(raw.readUInt16BE(i * 2));\n }\n return str;\n } else if (tag === 'numstr') {\n const numstr = buffer.raw().toString('ascii');\n if (!this._isNumstr(numstr)) {\n return buffer.error('Decoding of string type: ' +\n 'numstr unsupported characters');\n }\n return numstr;\n } else if (tag === 'octstr') {\n return buffer.raw();\n } else if (tag === 'objDesc') {\n return buffer.raw();\n } else if (tag === 'printstr') {\n const printstr = buffer.raw().toString('ascii');\n if (!this._isPrintstr(printstr)) {\n return buffer.error('Decoding of string type: ' +\n 'printstr unsupported characters');\n }\n return printstr;\n } else if (/str$/.test(tag)) {\n return buffer.raw().toString();\n } else {\n return buffer.error('Decoding of string type: ' + tag + ' unsupported');\n }\n};\n\nDERNode.prototype._decodeObjid = function decodeObjid(buffer, values, relative) {\n let result;\n const identifiers = [];\n let ident = 0;\n let subident = 0;\n while (!buffer.isEmpty()) {\n subident = buffer.readUInt8();\n ident <<= 7;\n ident |= subident & 0x7f;\n if ((subident & 0x80) === 0) {\n identifiers.push(ident);\n ident = 0;\n }\n }\n if (subident & 0x80)\n identifiers.push(ident);\n\n const first = (identifiers[0] / 40) | 0;\n const second = identifiers[0] % 40;\n\n if (relative)\n result = identifiers;\n else\n result = [first, second].concat(identifiers.slice(1));\n\n if (values) {\n let tmp = values[result.join(' ')];\n if (tmp === undefined)\n tmp = values[result.join('.')];\n if (tmp !== undefined)\n result = tmp;\n }\n\n return result;\n};\n\nDERNode.prototype._decodeTime = function decodeTime(buffer, tag) {\n const str = buffer.raw().toString();\n\n let year;\n let mon;\n let day;\n let hour;\n let min;\n let sec;\n if (tag === 'gentime') {\n year = str.slice(0, 4) | 0;\n mon = str.slice(4, 6) | 0;\n day = str.slice(6, 8) | 0;\n hour = str.slice(8, 10) | 0;\n min = str.slice(10, 12) | 0;\n sec = str.slice(12, 14) | 0;\n } else if (tag === 'utctime') {\n year = str.slice(0, 2) | 0;\n mon = str.slice(2, 4) | 0;\n day = str.slice(4, 6) | 0;\n hour = str.slice(6, 8) | 0;\n min = str.slice(8, 10) | 0;\n sec = str.slice(10, 12) | 0;\n if (year < 70)\n year = 2000 + year;\n else\n year = 1900 + year;\n } else {\n return buffer.error('Decoding ' + tag + ' time is not supported yet');\n }\n\n return Date.UTC(year, mon - 1, day, hour, min, sec, 0);\n};\n\nDERNode.prototype._decodeNull = function decodeNull() {\n return null;\n};\n\nDERNode.prototype._decodeBool = function decodeBool(buffer) {\n const res = buffer.readUInt8();\n if (buffer.isError(res))\n return res;\n else\n return res !== 0;\n};\n\nDERNode.prototype._decodeInt = function decodeInt(buffer, values) {\n // Bigint, return as it is (assume big endian)\n const raw = buffer.raw();\n let res = new bignum(raw);\n\n if (values)\n res = values[res.toString(10)] || res;\n\n return res;\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getDecoder('der').tree;\n};\n\n// Utility methods\n\nfunction derDecodeTag(buf, fail) {\n let tag = buf.readUInt8(fail);\n if (buf.isError(tag))\n return tag;\n\n const cls = der.tagClass[tag >> 6];\n const primitive = (tag & 0x20) === 0;\n\n // Multi-octet tag - load\n if ((tag & 0x1f) === 0x1f) {\n let oct = tag;\n tag = 0;\n while ((oct & 0x80) === 0x80) {\n oct = buf.readUInt8(fail);\n if (buf.isError(oct))\n return oct;\n\n tag <<= 7;\n tag |= oct & 0x7f;\n }\n } else {\n tag &= 0x1f;\n }\n const tagStr = der.tag[tag];\n\n return {\n cls: cls,\n primitive: primitive,\n tag: tag,\n tagStr: tagStr\n };\n}\n\nfunction derDecodeLen(buf, primitive, fail) {\n let len = buf.readUInt8(fail);\n if (buf.isError(len))\n return len;\n\n // Indefinite form\n if (!primitive && len === 0x80)\n return null;\n\n // Definite form\n if ((len & 0x80) === 0) {\n // Short form\n return len;\n }\n\n // Long form\n const num = len & 0x7f;\n if (num > 4)\n return buf.error('length octect is too long');\n\n len = 0;\n for (let i = 0; i < num; i++) {\n len <<= 8;\n const j = buf.readUInt8(fail);\n if (buf.isError(j))\n return j;\n len |= j;\n }\n\n return len;\n}\n","'use strict';\n\nconst decoders = exports;\n\ndecoders.der = require('./der');\ndecoders.pem = require('./pem');\n","'use strict';\n\nconst inherits = require('inherits');\nconst Buffer = require('safer-buffer').Buffer;\n\nconst DERDecoder = require('./der');\n\nfunction PEMDecoder(entity) {\n DERDecoder.call(this, entity);\n this.enc = 'pem';\n}\ninherits(PEMDecoder, DERDecoder);\nmodule.exports = PEMDecoder;\n\nPEMDecoder.prototype.decode = function decode(data, options) {\n const lines = data.toString().split(/[\\r\\n]+/g);\n\n const label = options.label.toUpperCase();\n\n const re = /^-----(BEGIN|END) ([^-]+)-----$/;\n let start = -1;\n let end = -1;\n for (let i = 0; i < lines.length; i++) {\n const match = lines[i].match(re);\n if (match === null)\n continue;\n\n if (match[2] !== label)\n continue;\n\n if (start === -1) {\n if (match[1] !== 'BEGIN')\n break;\n start = i;\n } else {\n if (match[1] !== 'END')\n break;\n end = i;\n break;\n }\n }\n if (start === -1 || end === -1)\n throw new Error('PEM section not found for: ' + label);\n\n const base64 = lines.slice(start + 1, end).join('');\n // Remove excessive symbols\n base64.replace(/[^a-z0-9+/=]+/gi, '');\n\n const input = Buffer.from(base64, 'base64');\n return DERDecoder.prototype.decode.call(this, input, options);\n};\n","'use strict';\n\nconst inherits = require('inherits');\nconst Buffer = require('safer-buffer').Buffer;\nconst Node = require('../base/node');\n\n// Import DER constants\nconst der = require('../constants/der');\n\nfunction DEREncoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n}\nmodule.exports = DEREncoder;\n\nDEREncoder.prototype.encode = function encode(data, reporter) {\n return this.tree._encode(data, reporter).join();\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n Node.call(this, 'der', parent);\n}\ninherits(DERNode, Node);\n\nDERNode.prototype._encodeComposite = function encodeComposite(tag,\n primitive,\n cls,\n content) {\n const encodedTag = encodeTag(tag, primitive, cls, this.reporter);\n\n // Short form\n if (content.length < 0x80) {\n const header = Buffer.alloc(2);\n header[0] = encodedTag;\n header[1] = content.length;\n return this._createEncoderBuffer([ header, content ]);\n }\n\n // Long form\n // Count octets required to store length\n let lenOctets = 1;\n for (let i = content.length; i >= 0x100; i >>= 8)\n lenOctets++;\n\n const header = Buffer.alloc(1 + 1 + lenOctets);\n header[0] = encodedTag;\n header[1] = 0x80 | lenOctets;\n\n for (let i = 1 + lenOctets, j = content.length; j > 0; i--, j >>= 8)\n header[i] = j & 0xff;\n\n return this._createEncoderBuffer([ header, content ]);\n};\n\nDERNode.prototype._encodeStr = function encodeStr(str, tag) {\n if (tag === 'bitstr') {\n return this._createEncoderBuffer([ str.unused | 0, str.data ]);\n } else if (tag === 'bmpstr') {\n const buf = Buffer.alloc(str.length * 2);\n for (let i = 0; i < str.length; i++) {\n buf.writeUInt16BE(str.charCodeAt(i), i * 2);\n }\n return this._createEncoderBuffer(buf);\n } else if (tag === 'numstr') {\n if (!this._isNumstr(str)) {\n return this.reporter.error('Encoding of string type: numstr supports ' +\n 'only digits and space');\n }\n return this._createEncoderBuffer(str);\n } else if (tag === 'printstr') {\n if (!this._isPrintstr(str)) {\n return this.reporter.error('Encoding of string type: printstr supports ' +\n 'only latin upper and lower case letters, ' +\n 'digits, space, apostrophe, left and rigth ' +\n 'parenthesis, plus sign, comma, hyphen, ' +\n 'dot, slash, colon, equal sign, ' +\n 'question mark');\n }\n return this._createEncoderBuffer(str);\n } else if (/str$/.test(tag)) {\n return this._createEncoderBuffer(str);\n } else if (tag === 'objDesc') {\n return this._createEncoderBuffer(str);\n } else {\n return this.reporter.error('Encoding of string type: ' + tag +\n ' unsupported');\n }\n};\n\nDERNode.prototype._encodeObjid = function encodeObjid(id, values, relative) {\n if (typeof id === 'string') {\n if (!values)\n return this.reporter.error('string objid given, but no values map found');\n if (!values.hasOwnProperty(id))\n return this.reporter.error('objid not found in values map');\n id = values[id].split(/[\\s.]+/g);\n for (let i = 0; i < id.length; i++)\n id[i] |= 0;\n } else if (Array.isArray(id)) {\n id = id.slice();\n for (let i = 0; i < id.length; i++)\n id[i] |= 0;\n }\n\n if (!Array.isArray(id)) {\n return this.reporter.error('objid() should be either array or string, ' +\n 'got: ' + JSON.stringify(id));\n }\n\n if (!relative) {\n if (id[1] >= 40)\n return this.reporter.error('Second objid identifier OOB');\n id.splice(0, 2, id[0] * 40 + id[1]);\n }\n\n // Count number of octets\n let size = 0;\n for (let i = 0; i < id.length; i++) {\n let ident = id[i];\n for (size++; ident >= 0x80; ident >>= 7)\n size++;\n }\n\n const objid = Buffer.alloc(size);\n let offset = objid.length - 1;\n for (let i = id.length - 1; i >= 0; i--) {\n let ident = id[i];\n objid[offset--] = ident & 0x7f;\n while ((ident >>= 7) > 0)\n objid[offset--] = 0x80 | (ident & 0x7f);\n }\n\n return this._createEncoderBuffer(objid);\n};\n\nfunction two(num) {\n if (num < 10)\n return '0' + num;\n else\n return num;\n}\n\nDERNode.prototype._encodeTime = function encodeTime(time, tag) {\n let str;\n const date = new Date(time);\n\n if (tag === 'gentime') {\n str = [\n two(date.getUTCFullYear()),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else if (tag === 'utctime') {\n str = [\n two(date.getUTCFullYear() % 100),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else {\n this.reporter.error('Encoding ' + tag + ' time is not supported yet');\n }\n\n return this._encodeStr(str, 'octstr');\n};\n\nDERNode.prototype._encodeNull = function encodeNull() {\n return this._createEncoderBuffer('');\n};\n\nDERNode.prototype._encodeInt = function encodeInt(num, values) {\n if (typeof num === 'string') {\n if (!values)\n return this.reporter.error('String int or enum given, but no values map');\n if (!values.hasOwnProperty(num)) {\n return this.reporter.error('Values map doesn\\'t contain: ' +\n JSON.stringify(num));\n }\n num = values[num];\n }\n\n // Bignum, assume big endian\n if (typeof num !== 'number' && !Buffer.isBuffer(num)) {\n const numArray = num.toArray();\n if (!num.sign && numArray[0] & 0x80) {\n numArray.unshift(0);\n }\n num = Buffer.from(numArray);\n }\n\n if (Buffer.isBuffer(num)) {\n let size = num.length;\n if (num.length === 0)\n size++;\n\n const out = Buffer.alloc(size);\n num.copy(out);\n if (num.length === 0)\n out[0] = 0;\n return this._createEncoderBuffer(out);\n }\n\n if (num < 0x80)\n return this._createEncoderBuffer(num);\n\n if (num < 0x100)\n return this._createEncoderBuffer([0, num]);\n\n let size = 1;\n for (let i = num; i >= 0x100; i >>= 8)\n size++;\n\n const out = new Array(size);\n for (let i = out.length - 1; i >= 0; i--) {\n out[i] = num & 0xff;\n num >>= 8;\n }\n if(out[0] & 0x80) {\n out.unshift(0);\n }\n\n return this._createEncoderBuffer(Buffer.from(out));\n};\n\nDERNode.prototype._encodeBool = function encodeBool(value) {\n return this._createEncoderBuffer(value ? 0xff : 0);\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getEncoder('der').tree;\n};\n\nDERNode.prototype._skipDefault = function skipDefault(dataBuffer, reporter, parent) {\n const state = this._baseState;\n let i;\n if (state['default'] === null)\n return false;\n\n const data = dataBuffer.join();\n if (state.defaultBuffer === undefined)\n state.defaultBuffer = this._encodeValue(state['default'], reporter, parent).join();\n\n if (data.length !== state.defaultBuffer.length)\n return false;\n\n for (i=0; i < data.length; i++)\n if (data[i] !== state.defaultBuffer[i])\n return false;\n\n return true;\n};\n\n// Utility methods\n\nfunction encodeTag(tag, primitive, cls, reporter) {\n let res;\n\n if (tag === 'seqof')\n tag = 'seq';\n else if (tag === 'setof')\n tag = 'set';\n\n if (der.tagByName.hasOwnProperty(tag))\n res = der.tagByName[tag];\n else if (typeof tag === 'number' && (tag | 0) === tag)\n res = tag;\n else\n return reporter.error('Unknown tag: ' + tag);\n\n if (res >= 0x1f)\n return reporter.error('Multi-octet tag encoding unsupported');\n\n if (!primitive)\n res |= 0x20;\n\n res |= (der.tagClassByName[cls || 'universal'] << 6);\n\n return res;\n}\n","'use strict';\n\nconst encoders = exports;\n\nencoders.der = require('./der');\nencoders.pem = require('./pem');\n","'use strict';\n\nconst inherits = require('inherits');\n\nconst DEREncoder = require('./der');\n\nfunction PEMEncoder(entity) {\n DEREncoder.call(this, entity);\n this.enc = 'pem';\n}\ninherits(PEMEncoder, DEREncoder);\nmodule.exports = PEMEncoder;\n\nPEMEncoder.prototype.encode = function encode(data, options) {\n const buf = DEREncoder.prototype.encode.call(this, data);\n\n const p = buf.toString('base64');\n const out = [ '-----BEGIN ' + options.label + '-----' ];\n for (let i = 0; i < p.length; i += 64)\n out.push(p.slice(i, i + 64));\n out.push('-----END ' + options.label + '-----');\n return out.join('\\n');\n};\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar transitionalDefaults = require('../defaults/transitional');\nvar AxiosError = require('../core/AxiosError');\nvar CanceledError = require('../cancel/CanceledError');\nvar parseProtocol = require('../helpers/parseProtocol');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData) && utils.isStandardBrowserEnv()) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new CanceledError() : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n var protocol = parseProtocol(fullPath);\n\n if (protocol && [ 'http', 'https', 'file' ].indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = require('./cancel/CanceledError');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\naxios.toFormData = require('./helpers/toFormData');\n\n// Expose AxiosError class\naxios.AxiosError = require('../lib/core/AxiosError');\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\nvar CanceledError = require('./CanceledError');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nvar AxiosError = require('../core/AxiosError');\nvar utils = require('../utils');\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction CanceledError(message) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nmodule.exports = CanceledError;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar buildFullPath = require('./buildFullPath');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n var fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url: url,\n data: data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nvar prototype = AxiosError.prototype;\nvar descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED'\n// eslint-disable-next-line func-names\n].forEach(function(code) {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = function(error, code, config, request, response, customProps) {\n var axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nmodule.exports = AxiosError;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar CanceledError = require('../cancel/CanceledError');\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'beforeRedirect': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n","'use strict';\n\nvar AxiosError = require('./AxiosError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar normalizeHeaderName = require('../helpers/normalizeHeaderName');\nvar AxiosError = require('../core/AxiosError');\nvar transitionalDefaults = require('./transitional');\nvar toFormData = require('../helpers/toFormData');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('../adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('../adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n\n var isObjectPayload = utils.isObject(data);\n var contentType = headers && headers['Content-Type'];\n\n var isFileList;\n\n if ((isFileList = utils.isFileList(data)) || (isObjectPayload && contentType === 'multipart/form-data')) {\n var _FormData = this.env && this.env.FormData;\n return toFormData(isFileList ? {'files[]': data} : data, _FormData && new _FormData());\n } else if (isObjectPayload || contentType === 'application/json') {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: require('./env/FormData')\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nmodule.exports = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","module.exports = {\n \"version\": \"0.27.2\"\n};","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","// eslint-disable-next-line strict\nmodule.exports = null;\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nmodule.exports = function parseProtocol(url) {\n var match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Convert a data object to FormData\n * @param {Object} obj\n * @param {?Object} [formData]\n * @returns {Object}\n **/\n\nfunction toFormData(obj, formData) {\n // eslint-disable-next-line no-param-reassign\n formData = formData || new FormData();\n\n var stack = [];\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n function build(data, parentKey) {\n if (utils.isPlainObject(data) || utils.isArray(data)) {\n if (stack.indexOf(data) !== -1) {\n throw Error('Circular reference detected in ' + parentKey);\n }\n\n stack.push(data);\n\n utils.forEach(data, function each(value, key) {\n if (utils.isUndefined(value)) return;\n var fullKey = parentKey ? parentKey + '.' + key : key;\n var arr;\n\n if (value && !parentKey && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (utils.endsWith(key, '[]') && (arr = utils.toArray(value))) {\n // eslint-disable-next-line func-names\n arr.forEach(function(el) {\n !utils.isUndefined(el) && formData.append(fullKey, convertValue(el));\n });\n return;\n }\n }\n\n build(value, fullKey);\n });\n\n stack.pop();\n } else {\n formData.append(parentKey, convertValue(data));\n }\n }\n\n build(obj);\n\n return formData;\n}\n\nmodule.exports = toFormData;\n","'use strict';\n\nvar VERSION = require('../env/data').version;\nvar AxiosError = require('../core/AxiosError');\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nmodule.exports = {\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n// eslint-disable-next-line func-names\nvar kindOf = (function(cache) {\n // eslint-disable-next-line func-names\n return function(thing) {\n var str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n };\n})(Object.create(null));\n\nfunction kindOfTest(type) {\n type = type.toLowerCase();\n return function isKindOf(thing) {\n return kindOf(thing) === type;\n };\n}\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return Array.isArray(val);\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nvar isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nvar isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nvar isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nvar isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nvar isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} thing The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(thing) {\n var pattern = '[object FormData]';\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) ||\n toString.call(thing) === pattern ||\n (isFunction(thing.toString) && thing.toString() === pattern)\n );\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nvar isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n */\n\nfunction inherits(constructor, superConstructor, props, descriptors) {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function} [filter]\n * @returns {Object}\n */\n\nfunction toFlatObject(sourceObj, destObj, filter) {\n var props;\n var i;\n var prop;\n var merged = {};\n\n destObj = destObj || {};\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if (!merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = Object.getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/*\n * determines whether a string ends with the characters of a specified string\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n * @returns {boolean}\n */\nfunction endsWith(str, searchString, position) {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n var lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object\n * @param {*} [thing]\n * @returns {Array}\n */\nfunction toArray(thing) {\n if (!thing) return null;\n var i = thing.length;\n if (isUndefined(i)) return null;\n var arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n// eslint-disable-next-line func-names\nvar isTypedArray = (function(TypedArray) {\n // eslint-disable-next-line func-names\n return function(thing) {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && Object.getPrototypeOf(Uint8Array));\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM,\n inherits: inherits,\n toFlatObject: toFlatObject,\n kindOf: kindOf,\n kindOfTest: kindOfTest,\n endsWith: endsWith,\n toArray: toArray,\n isTypedArray: isTypedArray,\n isFileList: isFileList\n};\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","'use strict';\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bech32m = exports.bech32 = void 0;\nconst ALPHABET = 'qpzry9x8gf2tvdw0s3jn54khce6mua7l';\nconst ALPHABET_MAP = {};\nfor (let z = 0; z < ALPHABET.length; z++) {\n const x = ALPHABET.charAt(z);\n ALPHABET_MAP[x] = z;\n}\nfunction polymodStep(pre) {\n const b = pre >> 25;\n return (((pre & 0x1ffffff) << 5) ^\n (-((b >> 0) & 1) & 0x3b6a57b2) ^\n (-((b >> 1) & 1) & 0x26508e6d) ^\n (-((b >> 2) & 1) & 0x1ea119fa) ^\n (-((b >> 3) & 1) & 0x3d4233dd) ^\n (-((b >> 4) & 1) & 0x2a1462b3));\n}\nfunction prefixChk(prefix) {\n let chk = 1;\n for (let i = 0; i < prefix.length; ++i) {\n const c = prefix.charCodeAt(i);\n if (c < 33 || c > 126)\n return 'Invalid prefix (' + prefix + ')';\n chk = polymodStep(chk) ^ (c >> 5);\n }\n chk = polymodStep(chk);\n for (let i = 0; i < prefix.length; ++i) {\n const v = prefix.charCodeAt(i);\n chk = polymodStep(chk) ^ (v & 0x1f);\n }\n return chk;\n}\nfunction convert(data, inBits, outBits, pad) {\n let value = 0;\n let bits = 0;\n const maxV = (1 << outBits) - 1;\n const result = [];\n for (let i = 0; i < data.length; ++i) {\n value = (value << inBits) | data[i];\n bits += inBits;\n while (bits >= outBits) {\n bits -= outBits;\n result.push((value >> bits) & maxV);\n }\n }\n if (pad) {\n if (bits > 0) {\n result.push((value << (outBits - bits)) & maxV);\n }\n }\n else {\n if (bits >= inBits)\n return 'Excess padding';\n if ((value << (outBits - bits)) & maxV)\n return 'Non-zero padding';\n }\n return result;\n}\nfunction toWords(bytes) {\n return convert(bytes, 8, 5, true);\n}\nfunction fromWordsUnsafe(words) {\n const res = convert(words, 5, 8, false);\n if (Array.isArray(res))\n return res;\n}\nfunction fromWords(words) {\n const res = convert(words, 5, 8, false);\n if (Array.isArray(res))\n return res;\n throw new Error(res);\n}\nfunction getLibraryFromEncoding(encoding) {\n let ENCODING_CONST;\n if (encoding === 'bech32') {\n ENCODING_CONST = 1;\n }\n else {\n ENCODING_CONST = 0x2bc830a3;\n }\n function encode(prefix, words, LIMIT) {\n LIMIT = LIMIT || 90;\n if (prefix.length + 7 + words.length > LIMIT)\n throw new TypeError('Exceeds length limit');\n prefix = prefix.toLowerCase();\n // determine chk mod\n let chk = prefixChk(prefix);\n if (typeof chk === 'string')\n throw new Error(chk);\n let result = prefix + '1';\n for (let i = 0; i < words.length; ++i) {\n const x = words[i];\n if (x >> 5 !== 0)\n throw new Error('Non 5-bit word');\n chk = polymodStep(chk) ^ x;\n result += ALPHABET.charAt(x);\n }\n for (let i = 0; i < 6; ++i) {\n chk = polymodStep(chk);\n }\n chk ^= ENCODING_CONST;\n for (let i = 0; i < 6; ++i) {\n const v = (chk >> ((5 - i) * 5)) & 0x1f;\n result += ALPHABET.charAt(v);\n }\n return result;\n }\n function __decode(str, LIMIT) {\n LIMIT = LIMIT || 90;\n if (str.length < 8)\n return str + ' too short';\n if (str.length > LIMIT)\n return 'Exceeds length limit';\n // don't allow mixed case\n const lowered = str.toLowerCase();\n const uppered = str.toUpperCase();\n if (str !== lowered && str !== uppered)\n return 'Mixed-case string ' + str;\n str = lowered;\n const split = str.lastIndexOf('1');\n if (split === -1)\n return 'No separator character for ' + str;\n if (split === 0)\n return 'Missing prefix for ' + str;\n const prefix = str.slice(0, split);\n const wordChars = str.slice(split + 1);\n if (wordChars.length < 6)\n return 'Data too short';\n let chk = prefixChk(prefix);\n if (typeof chk === 'string')\n return chk;\n const words = [];\n for (let i = 0; i < wordChars.length; ++i) {\n const c = wordChars.charAt(i);\n const v = ALPHABET_MAP[c];\n if (v === undefined)\n return 'Unknown character ' + c;\n chk = polymodStep(chk) ^ v;\n // not in the checksum?\n if (i + 6 >= wordChars.length)\n continue;\n words.push(v);\n }\n if (chk !== ENCODING_CONST)\n return 'Invalid checksum for ' + str;\n return { prefix, words };\n }\n function decodeUnsafe(str, LIMIT) {\n const res = __decode(str, LIMIT);\n if (typeof res === 'object')\n return res;\n }\n function decode(str, LIMIT) {\n const res = __decode(str, LIMIT);\n if (typeof res === 'object')\n return res;\n throw new Error(res);\n }\n return {\n decodeUnsafe,\n decode,\n encode,\n toWords,\n fromWordsUnsafe,\n fromWords,\n };\n}\nexports.bech32 = getLibraryFromEncoding('bech32');\nexports.bech32m = getLibraryFromEncoding('bech32m');\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// browserify by default only pulls in files that are hard coded in requires\n// In order of last to first in this file, the default wordlist will be chosen\n// based on what is present. (Bundles may remove wordlists they don't need)\nconst wordlists = {};\nexports.wordlists = wordlists;\nlet _default;\nexports._default = _default;\ntry {\n exports._default = _default = require('./wordlists/czech.json');\n wordlists.czech = _default;\n}\ncatch (err) { }\ntry {\n exports._default = _default = require('./wordlists/chinese_simplified.json');\n wordlists.chinese_simplified = _default;\n}\ncatch (err) { }\ntry {\n exports._default = _default = require('./wordlists/chinese_traditional.json');\n wordlists.chinese_traditional = _default;\n}\ncatch (err) { }\ntry {\n exports._default = _default = require('./wordlists/korean.json');\n wordlists.korean = _default;\n}\ncatch (err) { }\ntry {\n exports._default = _default = require('./wordlists/french.json');\n wordlists.french = _default;\n}\ncatch (err) { }\ntry {\n exports._default = _default = require('./wordlists/italian.json');\n wordlists.italian = _default;\n}\ncatch (err) { }\ntry {\n exports._default = _default = require('./wordlists/spanish.json');\n wordlists.spanish = _default;\n}\ncatch (err) { }\ntry {\n exports._default = _default = require('./wordlists/japanese.json');\n wordlists.japanese = _default;\n wordlists.JA = _default;\n}\ncatch (err) { }\ntry {\n exports._default = _default = require('./wordlists/portuguese.json');\n wordlists.portuguese = _default;\n}\ncatch (err) { }\ntry {\n exports._default = _default = require('./wordlists/english.json');\n wordlists.english = _default;\n wordlists.EN = _default;\n}\ncatch (err) { }\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst createHash = require(\"create-hash\");\nconst pbkdf2_1 = require(\"pbkdf2\");\nconst randomBytes = require(\"randombytes\");\nconst _wordlists_1 = require(\"./_wordlists\");\nlet DEFAULT_WORDLIST = _wordlists_1._default;\nconst INVALID_MNEMONIC = 'Invalid mnemonic';\nconst INVALID_ENTROPY = 'Invalid entropy';\nconst INVALID_CHECKSUM = 'Invalid mnemonic checksum';\nconst WORDLIST_REQUIRED = 'A wordlist is required but a default could not be found.\\n' +\n 'Please pass a 2048 word array explicitly.';\nfunction pbkdf2Promise(password, saltMixin, iterations, keylen, digest) {\n return Promise.resolve().then(() => new Promise((resolve, reject) => {\n const callback = (err, derivedKey) => {\n if (err) {\n return reject(err);\n }\n else {\n return resolve(derivedKey);\n }\n };\n pbkdf2_1.pbkdf2(password, saltMixin, iterations, keylen, digest, callback);\n }));\n}\nfunction normalize(str) {\n return (str || '').normalize('NFKD');\n}\nfunction lpad(str, padString, length) {\n while (str.length < length) {\n str = padString + str;\n }\n return str;\n}\nfunction binaryToByte(bin) {\n return parseInt(bin, 2);\n}\nfunction bytesToBinary(bytes) {\n return bytes.map((x) => lpad(x.toString(2), '0', 8)).join('');\n}\nfunction deriveChecksumBits(entropyBuffer) {\n const ENT = entropyBuffer.length * 8;\n const CS = ENT / 32;\n const hash = createHash('sha256')\n .update(entropyBuffer)\n .digest();\n return bytesToBinary(Array.from(hash)).slice(0, CS);\n}\nfunction salt(password) {\n return 'mnemonic' + (password || '');\n}\nfunction mnemonicToSeedSync(mnemonic, password) {\n const mnemonicBuffer = Buffer.from(normalize(mnemonic), 'utf8');\n const saltBuffer = Buffer.from(salt(normalize(password)), 'utf8');\n return pbkdf2_1.pbkdf2Sync(mnemonicBuffer, saltBuffer, 2048, 64, 'sha512');\n}\nexports.mnemonicToSeedSync = mnemonicToSeedSync;\nfunction mnemonicToSeed(mnemonic, password) {\n return Promise.resolve().then(() => {\n const mnemonicBuffer = Buffer.from(normalize(mnemonic), 'utf8');\n const saltBuffer = Buffer.from(salt(normalize(password)), 'utf8');\n return pbkdf2Promise(mnemonicBuffer, saltBuffer, 2048, 64, 'sha512');\n });\n}\nexports.mnemonicToSeed = mnemonicToSeed;\nfunction mnemonicToEntropy(mnemonic, wordlist) {\n wordlist = wordlist || DEFAULT_WORDLIST;\n if (!wordlist) {\n throw new Error(WORDLIST_REQUIRED);\n }\n const words = normalize(mnemonic).split(' ');\n if (words.length % 3 !== 0) {\n throw new Error(INVALID_MNEMONIC);\n }\n // convert word indices to 11 bit binary strings\n const bits = words\n .map((word) => {\n const index = wordlist.indexOf(word);\n if (index === -1) {\n throw new Error(INVALID_MNEMONIC);\n }\n return lpad(index.toString(2), '0', 11);\n })\n .join('');\n // split the binary string into ENT/CS\n const dividerIndex = Math.floor(bits.length / 33) * 32;\n const entropyBits = bits.slice(0, dividerIndex);\n const checksumBits = bits.slice(dividerIndex);\n // calculate the checksum and compare\n const entropyBytes = entropyBits.match(/(.{1,8})/g).map(binaryToByte);\n if (entropyBytes.length < 16) {\n throw new Error(INVALID_ENTROPY);\n }\n if (entropyBytes.length > 32) {\n throw new Error(INVALID_ENTROPY);\n }\n if (entropyBytes.length % 4 !== 0) {\n throw new Error(INVALID_ENTROPY);\n }\n const entropy = Buffer.from(entropyBytes);\n const newChecksum = deriveChecksumBits(entropy);\n if (newChecksum !== checksumBits) {\n throw new Error(INVALID_CHECKSUM);\n }\n return entropy.toString('hex');\n}\nexports.mnemonicToEntropy = mnemonicToEntropy;\nfunction entropyToMnemonic(entropy, wordlist) {\n if (!Buffer.isBuffer(entropy)) {\n entropy = Buffer.from(entropy, 'hex');\n }\n wordlist = wordlist || DEFAULT_WORDLIST;\n if (!wordlist) {\n throw new Error(WORDLIST_REQUIRED);\n }\n // 128 <= ENT <= 256\n if (entropy.length < 16) {\n throw new TypeError(INVALID_ENTROPY);\n }\n if (entropy.length > 32) {\n throw new TypeError(INVALID_ENTROPY);\n }\n if (entropy.length % 4 !== 0) {\n throw new TypeError(INVALID_ENTROPY);\n }\n const entropyBits = bytesToBinary(Array.from(entropy));\n const checksumBits = deriveChecksumBits(entropy);\n const bits = entropyBits + checksumBits;\n const chunks = bits.match(/(.{1,11})/g);\n const words = chunks.map((binary) => {\n const index = binaryToByte(binary);\n return wordlist[index];\n });\n return wordlist[0] === '\\u3042\\u3044\\u3053\\u304f\\u3057\\u3093' // Japanese wordlist\n ? words.join('\\u3000')\n : words.join(' ');\n}\nexports.entropyToMnemonic = entropyToMnemonic;\nfunction generateMnemonic(strength, rng, wordlist) {\n strength = strength || 128;\n if (strength % 32 !== 0) {\n throw new TypeError(INVALID_ENTROPY);\n }\n rng = rng || randomBytes;\n return entropyToMnemonic(rng(strength / 8), wordlist);\n}\nexports.generateMnemonic = generateMnemonic;\nfunction validateMnemonic(mnemonic, wordlist) {\n try {\n mnemonicToEntropy(mnemonic, wordlist);\n }\n catch (e) {\n return false;\n }\n return true;\n}\nexports.validateMnemonic = validateMnemonic;\nfunction setDefaultWordlist(language) {\n const result = _wordlists_1.wordlists[language];\n if (result) {\n DEFAULT_WORDLIST = result;\n }\n else {\n throw new Error('Could not find wordlist for language \"' + language + '\"');\n }\n}\nexports.setDefaultWordlist = setDefaultWordlist;\nfunction getDefaultWordlist() {\n if (!DEFAULT_WORDLIST) {\n throw new Error('No Default Wordlist set');\n }\n return Object.keys(_wordlists_1.wordlists).filter((lang) => {\n if (lang === 'JA' || lang === 'EN') {\n return false;\n }\n return _wordlists_1.wordlists[lang].every((word, index) => word === DEFAULT_WORDLIST[index]);\n })[0];\n}\nexports.getDefaultWordlist = getDefaultWordlist;\nvar _wordlists_2 = require(\"./_wordlists\");\nexports.wordlists = _wordlists_2.wordlists;\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","var r;\n\nmodule.exports = function rand(len) {\n if (!r)\n r = new Rand(null);\n\n return r.generate(len);\n};\n\nfunction Rand(rand) {\n this.rand = rand;\n}\nmodule.exports.Rand = Rand;\n\nRand.prototype.generate = function generate(len) {\n return this._rand(len);\n};\n\n// Emulate crypto API using randy\nRand.prototype._rand = function _rand(n) {\n if (this.rand.getBytes)\n return this.rand.getBytes(n);\n\n var res = new Uint8Array(n);\n for (var i = 0; i < res.length; i++)\n res[i] = this.rand.getByte();\n return res;\n};\n\nif (typeof self === 'object') {\n if (self.crypto && self.crypto.getRandomValues) {\n // Modern browsers\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.crypto.getRandomValues(arr);\n return arr;\n };\n } else if (self.msCrypto && self.msCrypto.getRandomValues) {\n // IE\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.msCrypto.getRandomValues(arr);\n return arr;\n };\n\n // Safari's WebWorkers do not have `crypto`\n } else if (typeof window === 'object') {\n // Old junk\n Rand.prototype._rand = function() {\n throw new Error('Not implemented yet');\n };\n }\n} else {\n // Node.js or Web worker with no crypto support\n try {\n var crypto = require('crypto');\n if (typeof crypto.randomBytes !== 'function')\n throw new Error('Not supported');\n\n Rand.prototype._rand = function _rand(n) {\n return crypto.randomBytes(n);\n };\n } catch (e) {\n }\n}\n","// based on the aes implimentation in triple sec\n// https://github.com/keybase/triplesec\n// which is in turn based on the one from crypto-js\n// https://code.google.com/p/crypto-js/\n\nvar Buffer = require('safe-buffer').Buffer\n\nfunction asUInt32Array (buf) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n\n var len = (buf.length / 4) | 0\n var out = new Array(len)\n\n for (var i = 0; i < len; i++) {\n out[i] = buf.readUInt32BE(i * 4)\n }\n\n return out\n}\n\nfunction scrubVec (v) {\n for (var i = 0; i < v.length; v++) {\n v[i] = 0\n }\n}\n\nfunction cryptBlock (M, keySchedule, SUB_MIX, SBOX, nRounds) {\n var SUB_MIX0 = SUB_MIX[0]\n var SUB_MIX1 = SUB_MIX[1]\n var SUB_MIX2 = SUB_MIX[2]\n var SUB_MIX3 = SUB_MIX[3]\n\n var s0 = M[0] ^ keySchedule[0]\n var s1 = M[1] ^ keySchedule[1]\n var s2 = M[2] ^ keySchedule[2]\n var s3 = M[3] ^ keySchedule[3]\n var t0, t1, t2, t3\n var ksRow = 4\n\n for (var round = 1; round < nRounds; round++) {\n t0 = SUB_MIX0[s0 >>> 24] ^ SUB_MIX1[(s1 >>> 16) & 0xff] ^ SUB_MIX2[(s2 >>> 8) & 0xff] ^ SUB_MIX3[s3 & 0xff] ^ keySchedule[ksRow++]\n t1 = SUB_MIX0[s1 >>> 24] ^ SUB_MIX1[(s2 >>> 16) & 0xff] ^ SUB_MIX2[(s3 >>> 8) & 0xff] ^ SUB_MIX3[s0 & 0xff] ^ keySchedule[ksRow++]\n t2 = SUB_MIX0[s2 >>> 24] ^ SUB_MIX1[(s3 >>> 16) & 0xff] ^ SUB_MIX2[(s0 >>> 8) & 0xff] ^ SUB_MIX3[s1 & 0xff] ^ keySchedule[ksRow++]\n t3 = SUB_MIX0[s3 >>> 24] ^ SUB_MIX1[(s0 >>> 16) & 0xff] ^ SUB_MIX2[(s1 >>> 8) & 0xff] ^ SUB_MIX3[s2 & 0xff] ^ keySchedule[ksRow++]\n s0 = t0\n s1 = t1\n s2 = t2\n s3 = t3\n }\n\n t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++]\n t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++]\n t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++]\n t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++]\n t0 = t0 >>> 0\n t1 = t1 >>> 0\n t2 = t2 >>> 0\n t3 = t3 >>> 0\n\n return [t0, t1, t2, t3]\n}\n\n// AES constants\nvar RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36]\nvar G = (function () {\n // Compute double table\n var d = new Array(256)\n for (var j = 0; j < 256; j++) {\n if (j < 128) {\n d[j] = j << 1\n } else {\n d[j] = (j << 1) ^ 0x11b\n }\n }\n\n var SBOX = []\n var INV_SBOX = []\n var SUB_MIX = [[], [], [], []]\n var INV_SUB_MIX = [[], [], [], []]\n\n // Walk GF(2^8)\n var x = 0\n var xi = 0\n for (var i = 0; i < 256; ++i) {\n // Compute sbox\n var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4)\n sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63\n SBOX[x] = sx\n INV_SBOX[sx] = x\n\n // Compute multiplication\n var x2 = d[x]\n var x4 = d[x2]\n var x8 = d[x4]\n\n // Compute sub bytes, mix columns tables\n var t = (d[sx] * 0x101) ^ (sx * 0x1010100)\n SUB_MIX[0][x] = (t << 24) | (t >>> 8)\n SUB_MIX[1][x] = (t << 16) | (t >>> 16)\n SUB_MIX[2][x] = (t << 8) | (t >>> 24)\n SUB_MIX[3][x] = t\n\n // Compute inv sub bytes, inv mix columns tables\n t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100)\n INV_SUB_MIX[0][sx] = (t << 24) | (t >>> 8)\n INV_SUB_MIX[1][sx] = (t << 16) | (t >>> 16)\n INV_SUB_MIX[2][sx] = (t << 8) | (t >>> 24)\n INV_SUB_MIX[3][sx] = t\n\n if (x === 0) {\n x = xi = 1\n } else {\n x = x2 ^ d[d[d[x8 ^ x2]]]\n xi ^= d[d[xi]]\n }\n }\n\n return {\n SBOX: SBOX,\n INV_SBOX: INV_SBOX,\n SUB_MIX: SUB_MIX,\n INV_SUB_MIX: INV_SUB_MIX\n }\n})()\n\nfunction AES (key) {\n this._key = asUInt32Array(key)\n this._reset()\n}\n\nAES.blockSize = 4 * 4\nAES.keySize = 256 / 8\nAES.prototype.blockSize = AES.blockSize\nAES.prototype.keySize = AES.keySize\nAES.prototype._reset = function () {\n var keyWords = this._key\n var keySize = keyWords.length\n var nRounds = keySize + 6\n var ksRows = (nRounds + 1) * 4\n\n var keySchedule = []\n for (var k = 0; k < keySize; k++) {\n keySchedule[k] = keyWords[k]\n }\n\n for (k = keySize; k < ksRows; k++) {\n var t = keySchedule[k - 1]\n\n if (k % keySize === 0) {\n t = (t << 8) | (t >>> 24)\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n\n t ^= RCON[(k / keySize) | 0] << 24\n } else if (keySize > 6 && k % keySize === 4) {\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n }\n\n keySchedule[k] = keySchedule[k - keySize] ^ t\n }\n\n var invKeySchedule = []\n for (var ik = 0; ik < ksRows; ik++) {\n var ksR = ksRows - ik\n var tt = keySchedule[ksR - (ik % 4 ? 0 : 4)]\n\n if (ik < 4 || ksR <= 4) {\n invKeySchedule[ik] = tt\n } else {\n invKeySchedule[ik] =\n G.INV_SUB_MIX[0][G.SBOX[tt >>> 24]] ^\n G.INV_SUB_MIX[1][G.SBOX[(tt >>> 16) & 0xff]] ^\n G.INV_SUB_MIX[2][G.SBOX[(tt >>> 8) & 0xff]] ^\n G.INV_SUB_MIX[3][G.SBOX[tt & 0xff]]\n }\n }\n\n this._nRounds = nRounds\n this._keySchedule = keySchedule\n this._invKeySchedule = invKeySchedule\n}\n\nAES.prototype.encryptBlockRaw = function (M) {\n M = asUInt32Array(M)\n return cryptBlock(M, this._keySchedule, G.SUB_MIX, G.SBOX, this._nRounds)\n}\n\nAES.prototype.encryptBlock = function (M) {\n var out = this.encryptBlockRaw(M)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[1], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[3], 12)\n return buf\n}\n\nAES.prototype.decryptBlock = function (M) {\n M = asUInt32Array(M)\n\n // swap\n var m1 = M[1]\n M[1] = M[3]\n M[3] = m1\n\n var out = cryptBlock(M, this._invKeySchedule, G.INV_SUB_MIX, G.INV_SBOX, this._nRounds)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[3], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[1], 12)\n return buf\n}\n\nAES.prototype.scrub = function () {\n scrubVec(this._keySchedule)\n scrubVec(this._invKeySchedule)\n scrubVec(this._key)\n}\n\nmodule.exports.AES = AES\n","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\nvar GHASH = require('./ghash')\nvar xor = require('buffer-xor')\nvar incr32 = require('./incr32')\n\nfunction xorTest (a, b) {\n var out = 0\n if (a.length !== b.length) out++\n\n var len = Math.min(a.length, b.length)\n for (var i = 0; i < len; ++i) {\n out += (a[i] ^ b[i])\n }\n\n return out\n}\n\nfunction calcIv (self, iv, ck) {\n if (iv.length === 12) {\n self._finID = Buffer.concat([iv, Buffer.from([0, 0, 0, 1])])\n return Buffer.concat([iv, Buffer.from([0, 0, 0, 2])])\n }\n var ghash = new GHASH(ck)\n var len = iv.length\n var toPad = len % 16\n ghash.update(iv)\n if (toPad) {\n toPad = 16 - toPad\n ghash.update(Buffer.alloc(toPad, 0))\n }\n ghash.update(Buffer.alloc(8, 0))\n var ivBits = len * 8\n var tail = Buffer.alloc(8)\n tail.writeUIntBE(ivBits, 0, 8)\n ghash.update(tail)\n self._finID = ghash.state\n var out = Buffer.from(self._finID)\n incr32(out)\n return out\n}\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n var h = Buffer.alloc(4, 0)\n\n this._cipher = new aes.AES(key)\n var ck = this._cipher.encryptBlock(h)\n this._ghash = new GHASH(ck)\n iv = calcIv(this, iv, ck)\n\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._alen = 0\n this._len = 0\n this._mode = mode\n\n this._authTag = null\n this._called = false\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n if (!this._called && this._alen) {\n var rump = 16 - (this._alen % 16)\n if (rump < 16) {\n rump = Buffer.alloc(rump, 0)\n this._ghash.update(rump)\n }\n }\n\n this._called = true\n var out = this._mode.encrypt(this, chunk)\n if (this._decrypt) {\n this._ghash.update(chunk)\n } else {\n this._ghash.update(out)\n }\n this._len += chunk.length\n return out\n}\n\nStreamCipher.prototype._final = function () {\n if (this._decrypt && !this._authTag) throw new Error('Unsupported state or unable to authenticate data')\n\n var tag = xor(this._ghash.final(this._alen * 8, this._len * 8), this._cipher.encryptBlock(this._finID))\n if (this._decrypt && xorTest(tag, this._authTag)) throw new Error('Unsupported state or unable to authenticate data')\n\n this._authTag = tag\n this._cipher.scrub()\n}\n\nStreamCipher.prototype.getAuthTag = function getAuthTag () {\n if (this._decrypt || !Buffer.isBuffer(this._authTag)) throw new Error('Attempting to get auth tag in unsupported state')\n\n return this._authTag\n}\n\nStreamCipher.prototype.setAuthTag = function setAuthTag (tag) {\n if (!this._decrypt) throw new Error('Attempting to set auth tag in unsupported state')\n\n this._authTag = tag\n}\n\nStreamCipher.prototype.setAAD = function setAAD (buf) {\n if (this._called) throw new Error('Attempting to set AAD in unsupported state')\n\n this._ghash.update(buf)\n this._alen += buf.length\n}\n\nmodule.exports = StreamCipher\n","var ciphers = require('./encrypter')\nvar deciphers = require('./decrypter')\nvar modes = require('./modes/list.json')\n\nfunction getCiphers () {\n return Object.keys(modes)\n}\n\nexports.createCipher = exports.Cipher = ciphers.createCipher\nexports.createCipheriv = exports.Cipheriv = ciphers.createCipheriv\nexports.createDecipher = exports.Decipher = deciphers.createDecipher\nexports.createDecipheriv = exports.Decipheriv = deciphers.createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\n","var AuthCipher = require('./authCipher')\nvar Buffer = require('safe-buffer').Buffer\nvar MODES = require('./modes')\nvar StreamCipher = require('./streamCipher')\nvar Transform = require('cipher-base')\nvar aes = require('./aes')\nvar ebtk = require('evp_bytestokey')\nvar inherits = require('inherits')\n\nfunction Decipher (mode, key, iv) {\n Transform.call(this)\n\n this._cache = new Splitter()\n this._last = void 0\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._mode = mode\n this._autopadding = true\n}\n\ninherits(Decipher, Transform)\n\nDecipher.prototype._update = function (data) {\n this._cache.add(data)\n var chunk\n var thing\n var out = []\n while ((chunk = this._cache.get(this._autopadding))) {\n thing = this._mode.decrypt(this, chunk)\n out.push(thing)\n }\n return Buffer.concat(out)\n}\n\nDecipher.prototype._final = function () {\n var chunk = this._cache.flush()\n if (this._autopadding) {\n return unpad(this._mode.decrypt(this, chunk))\n } else if (chunk) {\n throw new Error('data not multiple of block length')\n }\n}\n\nDecipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo\n return this\n}\n\nfunction Splitter () {\n this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function (autoPadding) {\n var out\n if (autoPadding) {\n if (this.cache.length > 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n } else {\n if (this.cache.length >= 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n }\n\n return null\n}\n\nSplitter.prototype.flush = function () {\n if (this.cache.length) return this.cache\n}\n\nfunction unpad (last) {\n var padded = last[15]\n if (padded < 1 || padded > 16) {\n throw new Error('unable to decrypt data')\n }\n var i = -1\n while (++i < padded) {\n if (last[(i + (16 - padded))] !== padded) {\n throw new Error('unable to decrypt data')\n }\n }\n if (padded === 16) return\n\n return last.slice(0, 16 - padded)\n}\n\nfunction createDecipheriv (suite, password, iv) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n if (typeof iv === 'string') iv = Buffer.from(iv)\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n if (typeof password === 'string') password = Buffer.from(password)\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv, true)\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv, true)\n }\n\n return new Decipher(config.module, password, iv)\n}\n\nfunction createDecipher (suite, password) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n var keys = ebtk(password, false, config.key, config.iv)\n return createDecipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createDecipher = createDecipher\nexports.createDecipheriv = createDecipheriv\n","var MODES = require('./modes')\nvar AuthCipher = require('./authCipher')\nvar Buffer = require('safe-buffer').Buffer\nvar StreamCipher = require('./streamCipher')\nvar Transform = require('cipher-base')\nvar aes = require('./aes')\nvar ebtk = require('evp_bytestokey')\nvar inherits = require('inherits')\n\nfunction Cipher (mode, key, iv) {\n Transform.call(this)\n\n this._cache = new Splitter()\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._mode = mode\n this._autopadding = true\n}\n\ninherits(Cipher, Transform)\n\nCipher.prototype._update = function (data) {\n this._cache.add(data)\n var chunk\n var thing\n var out = []\n\n while ((chunk = this._cache.get())) {\n thing = this._mode.encrypt(this, chunk)\n out.push(thing)\n }\n\n return Buffer.concat(out)\n}\n\nvar PADDING = Buffer.alloc(16, 0x10)\n\nCipher.prototype._final = function () {\n var chunk = this._cache.flush()\n if (this._autopadding) {\n chunk = this._mode.encrypt(this, chunk)\n this._cipher.scrub()\n return chunk\n }\n\n if (!chunk.equals(PADDING)) {\n this._cipher.scrub()\n throw new Error('data not multiple of block length')\n }\n}\n\nCipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo\n return this\n}\n\nfunction Splitter () {\n this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function () {\n if (this.cache.length > 15) {\n var out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n return null\n}\n\nSplitter.prototype.flush = function () {\n var len = 16 - this.cache.length\n var padBuff = Buffer.allocUnsafe(len)\n\n var i = -1\n while (++i < len) {\n padBuff.writeUInt8(len, i)\n }\n\n return Buffer.concat([this.cache, padBuff])\n}\n\nfunction createCipheriv (suite, password, iv) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n if (typeof password === 'string') password = Buffer.from(password)\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n if (typeof iv === 'string') iv = Buffer.from(iv)\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv)\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv)\n }\n\n return new Cipher(config.module, password, iv)\n}\n\nfunction createCipher (suite, password) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n var keys = ebtk(password, false, config.key, config.iv)\n return createCipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createCipheriv = createCipheriv\nexports.createCipher = createCipher\n","var Buffer = require('safe-buffer').Buffer\nvar ZEROES = Buffer.alloc(16, 0)\n\nfunction toArray (buf) {\n return [\n buf.readUInt32BE(0),\n buf.readUInt32BE(4),\n buf.readUInt32BE(8),\n buf.readUInt32BE(12)\n ]\n}\n\nfunction fromArray (out) {\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0] >>> 0, 0)\n buf.writeUInt32BE(out[1] >>> 0, 4)\n buf.writeUInt32BE(out[2] >>> 0, 8)\n buf.writeUInt32BE(out[3] >>> 0, 12)\n return buf\n}\n\nfunction GHASH (key) {\n this.h = key\n this.state = Buffer.alloc(16, 0)\n this.cache = Buffer.allocUnsafe(0)\n}\n\n// from http://bitwiseshiftleft.github.io/sjcl/doc/symbols/src/core_gcm.js.html\n// by Juho Vähä-Herttua\nGHASH.prototype.ghash = function (block) {\n var i = -1\n while (++i < block.length) {\n this.state[i] ^= block[i]\n }\n this._multiply()\n}\n\nGHASH.prototype._multiply = function () {\n var Vi = toArray(this.h)\n var Zi = [0, 0, 0, 0]\n var j, xi, lsbVi\n var i = -1\n while (++i < 128) {\n xi = (this.state[~~(i / 8)] & (1 << (7 - (i % 8)))) !== 0\n if (xi) {\n // Z_i+1 = Z_i ^ V_i\n Zi[0] ^= Vi[0]\n Zi[1] ^= Vi[1]\n Zi[2] ^= Vi[2]\n Zi[3] ^= Vi[3]\n }\n\n // Store the value of LSB(V_i)\n lsbVi = (Vi[3] & 1) !== 0\n\n // V_i+1 = V_i >> 1\n for (j = 3; j > 0; j--) {\n Vi[j] = (Vi[j] >>> 1) | ((Vi[j - 1] & 1) << 31)\n }\n Vi[0] = Vi[0] >>> 1\n\n // If LSB(V_i) is 1, V_i+1 = (V_i >> 1) ^ R\n if (lsbVi) {\n Vi[0] = Vi[0] ^ (0xe1 << 24)\n }\n }\n this.state = fromArray(Zi)\n}\n\nGHASH.prototype.update = function (buf) {\n this.cache = Buffer.concat([this.cache, buf])\n var chunk\n while (this.cache.length >= 16) {\n chunk = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n this.ghash(chunk)\n }\n}\n\nGHASH.prototype.final = function (abl, bl) {\n if (this.cache.length) {\n this.ghash(Buffer.concat([this.cache, ZEROES], 16))\n }\n\n this.ghash(fromArray([0, abl, 0, bl]))\n return this.state\n}\n\nmodule.exports = GHASH\n","function incr32 (iv) {\n var len = iv.length\n var item\n while (len--) {\n item = iv.readUInt8(len)\n if (item === 255) {\n iv.writeUInt8(0, len)\n } else {\n item++\n iv.writeUInt8(item, len)\n break\n }\n }\n}\nmodule.exports = incr32\n","var xor = require('buffer-xor')\n\nexports.encrypt = function (self, block) {\n var data = xor(block, self._prev)\n\n self._prev = self._cipher.encryptBlock(data)\n return self._prev\n}\n\nexports.decrypt = function (self, block) {\n var pad = self._prev\n\n self._prev = block\n var out = self._cipher.decryptBlock(block)\n\n return xor(out, pad)\n}\n","var Buffer = require('safe-buffer').Buffer\nvar xor = require('buffer-xor')\n\nfunction encryptStart (self, data, decrypt) {\n var len = data.length\n var out = xor(data, self._cache)\n self._cache = self._cache.slice(len)\n self._prev = Buffer.concat([self._prev, decrypt ? data : out])\n return out\n}\n\nexports.encrypt = function (self, data, decrypt) {\n var out = Buffer.allocUnsafe(0)\n var len\n\n while (data.length) {\n if (self._cache.length === 0) {\n self._cache = self._cipher.encryptBlock(self._prev)\n self._prev = Buffer.allocUnsafe(0)\n }\n\n if (self._cache.length <= data.length) {\n len = self._cache.length\n out = Buffer.concat([out, encryptStart(self, data.slice(0, len), decrypt)])\n data = data.slice(len)\n } else {\n out = Buffer.concat([out, encryptStart(self, data, decrypt)])\n break\n }\n }\n\n return out\n}\n","var Buffer = require('safe-buffer').Buffer\n\nfunction encryptByte (self, byteParam, decrypt) {\n var pad\n var i = -1\n var len = 8\n var out = 0\n var bit, value\n while (++i < len) {\n pad = self._cipher.encryptBlock(self._prev)\n bit = (byteParam & (1 << (7 - i))) ? 0x80 : 0\n value = pad[0] ^ bit\n out += ((value & 0x80) >> (i % 8))\n self._prev = shiftIn(self._prev, decrypt ? bit : value)\n }\n return out\n}\n\nfunction shiftIn (buffer, value) {\n var len = buffer.length\n var i = -1\n var out = Buffer.allocUnsafe(buffer.length)\n buffer = Buffer.concat([buffer, Buffer.from([value])])\n\n while (++i < len) {\n out[i] = buffer[i] << 1 | buffer[i + 1] >> (7)\n }\n\n return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length\n var out = Buffer.allocUnsafe(len)\n var i = -1\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt)\n }\n\n return out\n}\n","var Buffer = require('safe-buffer').Buffer\n\nfunction encryptByte (self, byteParam, decrypt) {\n var pad = self._cipher.encryptBlock(self._prev)\n var out = pad[0] ^ byteParam\n\n self._prev = Buffer.concat([\n self._prev.slice(1),\n Buffer.from([decrypt ? byteParam : out])\n ])\n\n return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length\n var out = Buffer.allocUnsafe(len)\n var i = -1\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt)\n }\n\n return out\n}\n","var xor = require('buffer-xor')\nvar Buffer = require('safe-buffer').Buffer\nvar incr32 = require('../incr32')\n\nfunction getBlock (self) {\n var out = self._cipher.encryptBlockRaw(self._prev)\n incr32(self._prev)\n return out\n}\n\nvar blockSize = 16\nexports.encrypt = function (self, chunk) {\n var chunkNum = Math.ceil(chunk.length / blockSize)\n var start = self._cache.length\n self._cache = Buffer.concat([\n self._cache,\n Buffer.allocUnsafe(chunkNum * blockSize)\n ])\n for (var i = 0; i < chunkNum; i++) {\n var out = getBlock(self)\n var offset = start + i * blockSize\n self._cache.writeUInt32BE(out[0], offset + 0)\n self._cache.writeUInt32BE(out[1], offset + 4)\n self._cache.writeUInt32BE(out[2], offset + 8)\n self._cache.writeUInt32BE(out[3], offset + 12)\n }\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","exports.encrypt = function (self, block) {\n return self._cipher.encryptBlock(block)\n}\n\nexports.decrypt = function (self, block) {\n return self._cipher.decryptBlock(block)\n}\n","var modeModules = {\n ECB: require('./ecb'),\n CBC: require('./cbc'),\n CFB: require('./cfb'),\n CFB8: require('./cfb8'),\n CFB1: require('./cfb1'),\n OFB: require('./ofb'),\n CTR: require('./ctr'),\n GCM: require('./ctr')\n}\n\nvar modes = require('./list.json')\n\nfor (var key in modes) {\n modes[key].module = modeModules[modes[key].mode]\n}\n\nmodule.exports = modes\n","var xor = require('buffer-xor')\n\nfunction getBlock (self) {\n self._prev = self._cipher.encryptBlock(self._prev)\n return self._prev\n}\n\nexports.encrypt = function (self, chunk) {\n while (self._cache.length < chunk.length) {\n self._cache = Buffer.concat([self._cache, getBlock(self)])\n }\n\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\n\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._mode = mode\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n return this._mode.encrypt(this, chunk, this._decrypt)\n}\n\nStreamCipher.prototype._final = function () {\n this._cipher.scrub()\n}\n\nmodule.exports = StreamCipher\n","var DES = require('browserify-des')\nvar aes = require('browserify-aes/browser')\nvar aesModes = require('browserify-aes/modes')\nvar desModes = require('browserify-des/modes')\nvar ebtk = require('evp_bytestokey')\n\nfunction createCipher (suite, password) {\n suite = suite.toLowerCase()\n\n var keyLen, ivLen\n if (aesModes[suite]) {\n keyLen = aesModes[suite].key\n ivLen = aesModes[suite].iv\n } else if (desModes[suite]) {\n keyLen = desModes[suite].key * 8\n ivLen = desModes[suite].iv\n } else {\n throw new TypeError('invalid suite type')\n }\n\n var keys = ebtk(password, false, keyLen, ivLen)\n return createCipheriv(suite, keys.key, keys.iv)\n}\n\nfunction createDecipher (suite, password) {\n suite = suite.toLowerCase()\n\n var keyLen, ivLen\n if (aesModes[suite]) {\n keyLen = aesModes[suite].key\n ivLen = aesModes[suite].iv\n } else if (desModes[suite]) {\n keyLen = desModes[suite].key * 8\n ivLen = desModes[suite].iv\n } else {\n throw new TypeError('invalid suite type')\n }\n\n var keys = ebtk(password, false, keyLen, ivLen)\n return createDecipheriv(suite, keys.key, keys.iv)\n}\n\nfunction createCipheriv (suite, key, iv) {\n suite = suite.toLowerCase()\n if (aesModes[suite]) return aes.createCipheriv(suite, key, iv)\n if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite })\n\n throw new TypeError('invalid suite type')\n}\n\nfunction createDecipheriv (suite, key, iv) {\n suite = suite.toLowerCase()\n if (aesModes[suite]) return aes.createDecipheriv(suite, key, iv)\n if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite, decrypt: true })\n\n throw new TypeError('invalid suite type')\n}\n\nfunction getCiphers () {\n return Object.keys(desModes).concat(aes.getCiphers())\n}\n\nexports.createCipher = exports.Cipher = createCipher\nexports.createCipheriv = exports.Cipheriv = createCipheriv\nexports.createDecipher = exports.Decipher = createDecipher\nexports.createDecipheriv = exports.Decipheriv = createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\n","var CipherBase = require('cipher-base')\nvar des = require('des.js')\nvar inherits = require('inherits')\nvar Buffer = require('safe-buffer').Buffer\n\nvar modes = {\n 'des-ede3-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede3': des.EDE,\n 'des-ede-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede': des.EDE,\n 'des-cbc': des.CBC.instantiate(des.DES),\n 'des-ecb': des.DES\n}\nmodes.des = modes['des-cbc']\nmodes.des3 = modes['des-ede3-cbc']\nmodule.exports = DES\ninherits(DES, CipherBase)\nfunction DES (opts) {\n CipherBase.call(this)\n var modeName = opts.mode.toLowerCase()\n var mode = modes[modeName]\n var type\n if (opts.decrypt) {\n type = 'decrypt'\n } else {\n type = 'encrypt'\n }\n var key = opts.key\n if (!Buffer.isBuffer(key)) {\n key = Buffer.from(key)\n }\n if (modeName === 'des-ede' || modeName === 'des-ede-cbc') {\n key = Buffer.concat([key, key.slice(0, 8)])\n }\n var iv = opts.iv\n if (!Buffer.isBuffer(iv)) {\n iv = Buffer.from(iv)\n }\n this._des = mode.create({\n key: key,\n iv: iv,\n type: type\n })\n}\nDES.prototype._update = function (data) {\n return Buffer.from(this._des.update(data))\n}\nDES.prototype._final = function () {\n return Buffer.from(this._des.final())\n}\n","exports['des-ecb'] = {\n key: 8,\n iv: 0\n}\nexports['des-cbc'] = exports.des = {\n key: 8,\n iv: 8\n}\nexports['des-ede3-cbc'] = exports.des3 = {\n key: 24,\n iv: 8\n}\nexports['des-ede3'] = {\n key: 24,\n iv: 0\n}\nexports['des-ede-cbc'] = {\n key: 16,\n iv: 8\n}\nexports['des-ede'] = {\n key: 16,\n iv: 0\n}\n","var BN = require('bn.js')\nvar randomBytes = require('randombytes')\n\nfunction blind (priv) {\n var r = getr(priv)\n var blinder = r.toRed(BN.mont(priv.modulus)).redPow(new BN(priv.publicExponent)).fromRed()\n return { blinder: blinder, unblinder: r.invm(priv.modulus) }\n}\n\nfunction getr (priv) {\n var len = priv.modulus.byteLength()\n var r\n do {\n r = new BN(randomBytes(len))\n } while (r.cmp(priv.modulus) >= 0 || !r.umod(priv.prime1) || !r.umod(priv.prime2))\n return r\n}\n\nfunction crt (msg, priv) {\n var blinds = blind(priv)\n var len = priv.modulus.byteLength()\n var blinded = new BN(msg).mul(blinds.blinder).umod(priv.modulus)\n var c1 = blinded.toRed(BN.mont(priv.prime1))\n var c2 = blinded.toRed(BN.mont(priv.prime2))\n var qinv = priv.coefficient\n var p = priv.prime1\n var q = priv.prime2\n var m1 = c1.redPow(priv.exponent1).fromRed()\n var m2 = c2.redPow(priv.exponent2).fromRed()\n var h = m1.isub(m2).imul(qinv).umod(p).imul(q)\n return m2.iadd(h).imul(blinds.unblinder).umod(priv.modulus).toArrayLike(Buffer, 'be', len)\n}\ncrt.getr = getr\n\nmodule.exports = crt\n","module.exports = require('./browser/algorithms.json')\n","var Buffer = require('safe-buffer').Buffer\nvar createHash = require('create-hash')\nvar stream = require('readable-stream')\nvar inherits = require('inherits')\nvar sign = require('./sign')\nvar verify = require('./verify')\n\nvar algorithms = require('./algorithms.json')\nObject.keys(algorithms).forEach(function (key) {\n algorithms[key].id = Buffer.from(algorithms[key].id, 'hex')\n algorithms[key.toLowerCase()] = algorithms[key]\n})\n\nfunction Sign (algorithm) {\n stream.Writable.call(this)\n\n var data = algorithms[algorithm]\n if (!data) throw new Error('Unknown message digest')\n\n this._hashType = data.hash\n this._hash = createHash(data.hash)\n this._tag = data.id\n this._signType = data.sign\n}\ninherits(Sign, stream.Writable)\n\nSign.prototype._write = function _write (data, _, done) {\n this._hash.update(data)\n done()\n}\n\nSign.prototype.update = function update (data, enc) {\n if (typeof data === 'string') data = Buffer.from(data, enc)\n\n this._hash.update(data)\n return this\n}\n\nSign.prototype.sign = function signMethod (key, enc) {\n this.end()\n var hash = this._hash.digest()\n var sig = sign(hash, key, this._hashType, this._signType, this._tag)\n\n return enc ? sig.toString(enc) : sig\n}\n\nfunction Verify (algorithm) {\n stream.Writable.call(this)\n\n var data = algorithms[algorithm]\n if (!data) throw new Error('Unknown message digest')\n\n this._hash = createHash(data.hash)\n this._tag = data.id\n this._signType = data.sign\n}\ninherits(Verify, stream.Writable)\n\nVerify.prototype._write = function _write (data, _, done) {\n this._hash.update(data)\n done()\n}\n\nVerify.prototype.update = function update (data, enc) {\n if (typeof data === 'string') data = Buffer.from(data, enc)\n\n this._hash.update(data)\n return this\n}\n\nVerify.prototype.verify = function verifyMethod (key, sig, enc) {\n if (typeof sig === 'string') sig = Buffer.from(sig, enc)\n\n this.end()\n var hash = this._hash.digest()\n return verify(sig, hash, key, this._signType, this._tag)\n}\n\nfunction createSign (algorithm) {\n return new Sign(algorithm)\n}\n\nfunction createVerify (algorithm) {\n return new Verify(algorithm)\n}\n\nmodule.exports = {\n Sign: createSign,\n Verify: createVerify,\n createSign: createSign,\n createVerify: createVerify\n}\n","// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = require('safe-buffer').Buffer\nvar createHmac = require('create-hmac')\nvar crt = require('browserify-rsa')\nvar EC = require('elliptic').ec\nvar BN = require('bn.js')\nvar parseKeys = require('parse-asn1')\nvar curves = require('./curves.json')\n\nfunction sign (hash, key, hashType, signType, tag) {\n var priv = parseKeys(key)\n if (priv.curve) {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') throw new Error('wrong private key type')\n return ecSign(hash, priv)\n } else if (priv.type === 'dsa') {\n if (signType !== 'dsa') throw new Error('wrong private key type')\n return dsaSign(hash, priv, hashType)\n } else {\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') throw new Error('wrong private key type')\n }\n hash = Buffer.concat([tag, hash])\n var len = priv.modulus.byteLength()\n var pad = [0, 1]\n while (hash.length + pad.length + 1 < len) pad.push(0xff)\n pad.push(0x00)\n var i = -1\n while (++i < hash.length) pad.push(hash[i])\n\n var out = crt(pad, priv)\n return out\n}\n\nfunction ecSign (hash, priv) {\n var curveId = curves[priv.curve.join('.')]\n if (!curveId) throw new Error('unknown curve ' + priv.curve.join('.'))\n\n var curve = new EC(curveId)\n var key = curve.keyFromPrivate(priv.privateKey)\n var out = key.sign(hash)\n\n return Buffer.from(out.toDER())\n}\n\nfunction dsaSign (hash, priv, algo) {\n var x = priv.params.priv_key\n var p = priv.params.p\n var q = priv.params.q\n var g = priv.params.g\n var r = new BN(0)\n var k\n var H = bits2int(hash, q).mod(q)\n var s = false\n var kv = getKey(x, q, hash, algo)\n while (s === false) {\n k = makeKey(q, kv, algo)\n r = makeR(g, k, p, q)\n s = k.invm(q).imul(H.add(x.mul(r))).mod(q)\n if (s.cmpn(0) === 0) {\n s = false\n r = new BN(0)\n }\n }\n return toDER(r, s)\n}\n\nfunction toDER (r, s) {\n r = r.toArray()\n s = s.toArray()\n\n // Pad values\n if (r[0] & 0x80) r = [0].concat(r)\n if (s[0] & 0x80) s = [0].concat(s)\n\n var total = r.length + s.length + 4\n var res = [0x30, total, 0x02, r.length]\n res = res.concat(r, [0x02, s.length], s)\n return Buffer.from(res)\n}\n\nfunction getKey (x, q, hash, algo) {\n x = Buffer.from(x.toArray())\n if (x.length < q.byteLength()) {\n var zeros = Buffer.alloc(q.byteLength() - x.length)\n x = Buffer.concat([zeros, x])\n }\n var hlen = hash.length\n var hbits = bits2octets(hash, q)\n var v = Buffer.alloc(hlen)\n v.fill(1)\n var k = Buffer.alloc(hlen)\n k = createHmac(algo, k).update(v).update(Buffer.from([0])).update(x).update(hbits).digest()\n v = createHmac(algo, k).update(v).digest()\n k = createHmac(algo, k).update(v).update(Buffer.from([1])).update(x).update(hbits).digest()\n v = createHmac(algo, k).update(v).digest()\n return { k: k, v: v }\n}\n\nfunction bits2int (obits, q) {\n var bits = new BN(obits)\n var shift = (obits.length << 3) - q.bitLength()\n if (shift > 0) bits.ishrn(shift)\n return bits\n}\n\nfunction bits2octets (bits, q) {\n bits = bits2int(bits, q)\n bits = bits.mod(q)\n var out = Buffer.from(bits.toArray())\n if (out.length < q.byteLength()) {\n var zeros = Buffer.alloc(q.byteLength() - out.length)\n out = Buffer.concat([zeros, out])\n }\n return out\n}\n\nfunction makeKey (q, kv, algo) {\n var t\n var k\n\n do {\n t = Buffer.alloc(0)\n\n while (t.length * 8 < q.bitLength()) {\n kv.v = createHmac(algo, kv.k).update(kv.v).digest()\n t = Buffer.concat([t, kv.v])\n }\n\n k = bits2int(t, q)\n kv.k = createHmac(algo, kv.k).update(kv.v).update(Buffer.from([0])).digest()\n kv.v = createHmac(algo, kv.k).update(kv.v).digest()\n } while (k.cmp(q) !== -1)\n\n return k\n}\n\nfunction makeR (g, k, p, q) {\n return g.toRed(BN.mont(p)).redPow(k).fromRed().mod(q)\n}\n\nmodule.exports = sign\nmodule.exports.getKey = getKey\nmodule.exports.makeKey = makeKey\n","// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = require('safe-buffer').Buffer\nvar BN = require('bn.js')\nvar EC = require('elliptic').ec\nvar parseKeys = require('parse-asn1')\nvar curves = require('./curves.json')\n\nfunction verify (sig, hash, key, signType, tag) {\n var pub = parseKeys(key)\n if (pub.type === 'ec') {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') throw new Error('wrong public key type')\n return ecVerify(sig, hash, pub)\n } else if (pub.type === 'dsa') {\n if (signType !== 'dsa') throw new Error('wrong public key type')\n return dsaVerify(sig, hash, pub)\n } else {\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') throw new Error('wrong public key type')\n }\n hash = Buffer.concat([tag, hash])\n var len = pub.modulus.byteLength()\n var pad = [1]\n var padNum = 0\n while (hash.length + pad.length + 2 < len) {\n pad.push(0xff)\n padNum++\n }\n pad.push(0x00)\n var i = -1\n while (++i < hash.length) {\n pad.push(hash[i])\n }\n pad = Buffer.from(pad)\n var red = BN.mont(pub.modulus)\n sig = new BN(sig).toRed(red)\n\n sig = sig.redPow(new BN(pub.publicExponent))\n sig = Buffer.from(sig.fromRed().toArray())\n var out = padNum < 8 ? 1 : 0\n len = Math.min(sig.length, pad.length)\n if (sig.length !== pad.length) out = 1\n\n i = -1\n while (++i < len) out |= sig[i] ^ pad[i]\n return out === 0\n}\n\nfunction ecVerify (sig, hash, pub) {\n var curveId = curves[pub.data.algorithm.curve.join('.')]\n if (!curveId) throw new Error('unknown curve ' + pub.data.algorithm.curve.join('.'))\n\n var curve = new EC(curveId)\n var pubkey = pub.data.subjectPrivateKey.data\n\n return curve.verify(hash, sig, pubkey)\n}\n\nfunction dsaVerify (sig, hash, pub) {\n var p = pub.data.p\n var q = pub.data.q\n var g = pub.data.g\n var y = pub.data.pub_key\n var unpacked = parseKeys.signature.decode(sig, 'der')\n var s = unpacked.s\n var r = unpacked.r\n checkValue(s, q)\n checkValue(r, q)\n var montp = BN.mont(p)\n var w = s.invm(q)\n var v = g.toRed(montp)\n .redPow(new BN(hash).mul(w).mod(q))\n .fromRed()\n .mul(y.toRed(montp).redPow(r.mul(w).mod(q)).fromRed())\n .mod(p)\n .mod(q)\n return v.cmp(r) === 0\n}\n\nfunction checkValue (b, q) {\n if (b.cmpn(0) <= 0) throw new Error('invalid sig')\n if (b.cmp(q) >= q) throw new Error('invalid sig')\n}\n\nmodule.exports = verify\n","module.exports = function xor (a, b) {\n var length = Math.min(a.length, b.length)\n var buffer = new Buffer(length)\n\n for (var i = 0; i < length; ++i) {\n buffer[i] = a[i] ^ b[i]\n }\n\n return buffer\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n let i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n const length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n let indexSize = 1\n let arrLength = arr.length\n let valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n let i\n if (dir) {\n let foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n let found = true\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n const remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n let res = ''\n let i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n const len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let i = byteLength\n let mul = 1\n let val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n let c, hi, lo\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n let i\n for (i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n","var Buffer = require('safe-buffer').Buffer\nvar Transform = require('stream').Transform\nvar StringDecoder = require('string_decoder').StringDecoder\nvar inherits = require('inherits')\n\nfunction CipherBase (hashMode) {\n Transform.call(this)\n this.hashMode = typeof hashMode === 'string'\n if (this.hashMode) {\n this[hashMode] = this._finalOrDigest\n } else {\n this.final = this._finalOrDigest\n }\n if (this._final) {\n this.__final = this._final\n this._final = null\n }\n this._decoder = null\n this._encoding = null\n}\ninherits(CipherBase, Transform)\n\nCipherBase.prototype.update = function (data, inputEnc, outputEnc) {\n if (typeof data === 'string') {\n data = Buffer.from(data, inputEnc)\n }\n\n var outData = this._update(data)\n if (this.hashMode) return this\n\n if (outputEnc) {\n outData = this._toString(outData, outputEnc)\n }\n\n return outData\n}\n\nCipherBase.prototype.setAutoPadding = function () {}\nCipherBase.prototype.getAuthTag = function () {\n throw new Error('trying to get auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAuthTag = function () {\n throw new Error('trying to set auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAAD = function () {\n throw new Error('trying to set aad in unsupported state')\n}\n\nCipherBase.prototype._transform = function (data, _, next) {\n var err\n try {\n if (this.hashMode) {\n this._update(data)\n } else {\n this.push(this._update(data))\n }\n } catch (e) {\n err = e\n } finally {\n next(err)\n }\n}\nCipherBase.prototype._flush = function (done) {\n var err\n try {\n this.push(this.__final())\n } catch (e) {\n err = e\n }\n\n done(err)\n}\nCipherBase.prototype._finalOrDigest = function (outputEnc) {\n var outData = this.__final() || Buffer.alloc(0)\n if (outputEnc) {\n outData = this._toString(outData, outputEnc, true)\n }\n return outData\n}\n\nCipherBase.prototype._toString = function (value, enc, fin) {\n if (!this._decoder) {\n this._decoder = new StringDecoder(enc)\n this._encoding = enc\n }\n\n if (this._encoding !== enc) throw new Error('can\\'t switch encodings')\n\n var out = this._decoder.write(value)\n if (fin) {\n out += this._decoder.end()\n }\n\n return out\n}\n\nmodule.exports = CipherBase\n","var elliptic = require('elliptic')\nvar BN = require('bn.js')\n\nmodule.exports = function createECDH (curve) {\n return new ECDH(curve)\n}\n\nvar aliases = {\n secp256k1: {\n name: 'secp256k1',\n byteLength: 32\n },\n secp224r1: {\n name: 'p224',\n byteLength: 28\n },\n prime256v1: {\n name: 'p256',\n byteLength: 32\n },\n prime192v1: {\n name: 'p192',\n byteLength: 24\n },\n ed25519: {\n name: 'ed25519',\n byteLength: 32\n },\n secp384r1: {\n name: 'p384',\n byteLength: 48\n },\n secp521r1: {\n name: 'p521',\n byteLength: 66\n }\n}\n\naliases.p224 = aliases.secp224r1\naliases.p256 = aliases.secp256r1 = aliases.prime256v1\naliases.p192 = aliases.secp192r1 = aliases.prime192v1\naliases.p384 = aliases.secp384r1\naliases.p521 = aliases.secp521r1\n\nfunction ECDH (curve) {\n this.curveType = aliases[curve]\n if (!this.curveType) {\n this.curveType = {\n name: curve\n }\n }\n this.curve = new elliptic.ec(this.curveType.name) // eslint-disable-line new-cap\n this.keys = void 0\n}\n\nECDH.prototype.generateKeys = function (enc, format) {\n this.keys = this.curve.genKeyPair()\n return this.getPublicKey(enc, format)\n}\n\nECDH.prototype.computeSecret = function (other, inenc, enc) {\n inenc = inenc || 'utf8'\n if (!Buffer.isBuffer(other)) {\n other = new Buffer(other, inenc)\n }\n var otherPub = this.curve.keyFromPublic(other).getPublic()\n var out = otherPub.mul(this.keys.getPrivate()).getX()\n return formatReturnValue(out, enc, this.curveType.byteLength)\n}\n\nECDH.prototype.getPublicKey = function (enc, format) {\n var key = this.keys.getPublic(format === 'compressed', true)\n if (format === 'hybrid') {\n if (key[key.length - 1] % 2) {\n key[0] = 7\n } else {\n key[0] = 6\n }\n }\n return formatReturnValue(key, enc)\n}\n\nECDH.prototype.getPrivateKey = function (enc) {\n return formatReturnValue(this.keys.getPrivate(), enc)\n}\n\nECDH.prototype.setPublicKey = function (pub, enc) {\n enc = enc || 'utf8'\n if (!Buffer.isBuffer(pub)) {\n pub = new Buffer(pub, enc)\n }\n this.keys._importPublic(pub)\n return this\n}\n\nECDH.prototype.setPrivateKey = function (priv, enc) {\n enc = enc || 'utf8'\n if (!Buffer.isBuffer(priv)) {\n priv = new Buffer(priv, enc)\n }\n\n var _priv = new BN(priv)\n _priv = _priv.toString(16)\n this.keys = this.curve.genKeyPair()\n this.keys._importPrivate(_priv)\n return this\n}\n\nfunction formatReturnValue (bn, enc, len) {\n if (!Array.isArray(bn)) {\n bn = bn.toArray()\n }\n var buf = new Buffer(bn)\n if (len && buf.length < len) {\n var zeros = new Buffer(len - buf.length)\n zeros.fill(0)\n buf = Buffer.concat([zeros, buf])\n }\n if (!enc) {\n return buf\n } else {\n return buf.toString(enc)\n }\n}\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict'\nvar inherits = require('inherits')\nvar MD5 = require('md5.js')\nvar RIPEMD160 = require('ripemd160')\nvar sha = require('sha.js')\nvar Base = require('cipher-base')\n\nfunction Hash (hash) {\n Base.call(this, 'digest')\n\n this._hash = hash\n}\n\ninherits(Hash, Base)\n\nHash.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHash.prototype._final = function () {\n return this._hash.digest()\n}\n\nmodule.exports = function createHash (alg) {\n alg = alg.toLowerCase()\n if (alg === 'md5') return new MD5()\n if (alg === 'rmd160' || alg === 'ripemd160') return new RIPEMD160()\n\n return new Hash(sha(alg))\n}\n","var MD5 = require('md5.js')\n\nmodule.exports = function (buffer) {\n return new MD5().update(buffer).digest()\n}\n","'use strict'\nvar inherits = require('inherits')\nvar Legacy = require('./legacy')\nvar Base = require('cipher-base')\nvar Buffer = require('safe-buffer').Buffer\nvar md5 = require('create-hash/md5')\nvar RIPEMD160 = require('ripemd160')\n\nvar sha = require('sha.js')\n\nvar ZEROS = Buffer.alloc(128)\n\nfunction Hmac (alg, key) {\n Base.call(this, 'digest')\n if (typeof key === 'string') {\n key = Buffer.from(key)\n }\n\n var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64\n\n this._alg = alg\n this._key = key\n if (key.length > blocksize) {\n var hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n key = hash.update(key).digest()\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize)\n var opad = this._opad = Buffer.allocUnsafe(blocksize)\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n this._hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n this._hash.update(ipad)\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHmac.prototype._final = function () {\n var h = this._hash.digest()\n var hash = this._alg === 'rmd160' ? new RIPEMD160() : sha(this._alg)\n return hash.update(this._opad).update(h).digest()\n}\n\nmodule.exports = function createHmac (alg, key) {\n alg = alg.toLowerCase()\n if (alg === 'rmd160' || alg === 'ripemd160') {\n return new Hmac('rmd160', key)\n }\n if (alg === 'md5') {\n return new Legacy(md5, key)\n }\n return new Hmac(alg, key)\n}\n","'use strict'\nvar inherits = require('inherits')\nvar Buffer = require('safe-buffer').Buffer\n\nvar Base = require('cipher-base')\n\nvar ZEROS = Buffer.alloc(128)\nvar blocksize = 64\n\nfunction Hmac (alg, key) {\n Base.call(this, 'digest')\n if (typeof key === 'string') {\n key = Buffer.from(key)\n }\n\n this._alg = alg\n this._key = key\n\n if (key.length > blocksize) {\n key = alg(key)\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize)\n var opad = this._opad = Buffer.allocUnsafe(blocksize)\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n\n this._hash = [ipad]\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n this._hash.push(data)\n}\n\nHmac.prototype._final = function () {\n var h = this._alg(Buffer.concat(this._hash))\n return this._alg(Buffer.concat([this._opad, h]))\n}\nmodule.exports = Hmac\n","'use strict'\n\nexports.randomBytes = exports.rng = exports.pseudoRandomBytes = exports.prng = require('randombytes')\nexports.createHash = exports.Hash = require('create-hash')\nexports.createHmac = exports.Hmac = require('create-hmac')\n\nvar algos = require('browserify-sign/algos')\nvar algoKeys = Object.keys(algos)\nvar hashes = ['sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'md5', 'rmd160'].concat(algoKeys)\nexports.getHashes = function () {\n return hashes\n}\n\nvar p = require('pbkdf2')\nexports.pbkdf2 = p.pbkdf2\nexports.pbkdf2Sync = p.pbkdf2Sync\n\nvar aes = require('browserify-cipher')\n\nexports.Cipher = aes.Cipher\nexports.createCipher = aes.createCipher\nexports.Cipheriv = aes.Cipheriv\nexports.createCipheriv = aes.createCipheriv\nexports.Decipher = aes.Decipher\nexports.createDecipher = aes.createDecipher\nexports.Decipheriv = aes.Decipheriv\nexports.createDecipheriv = aes.createDecipheriv\nexports.getCiphers = aes.getCiphers\nexports.listCiphers = aes.listCiphers\n\nvar dh = require('diffie-hellman')\n\nexports.DiffieHellmanGroup = dh.DiffieHellmanGroup\nexports.createDiffieHellmanGroup = dh.createDiffieHellmanGroup\nexports.getDiffieHellman = dh.getDiffieHellman\nexports.createDiffieHellman = dh.createDiffieHellman\nexports.DiffieHellman = dh.DiffieHellman\n\nvar sign = require('browserify-sign')\n\nexports.createSign = sign.createSign\nexports.Sign = sign.Sign\nexports.createVerify = sign.createVerify\nexports.Verify = sign.Verify\n\nexports.createECDH = require('create-ecdh')\n\nvar publicEncrypt = require('public-encrypt')\n\nexports.publicEncrypt = publicEncrypt.publicEncrypt\nexports.privateEncrypt = publicEncrypt.privateEncrypt\nexports.publicDecrypt = publicEncrypt.publicDecrypt\nexports.privateDecrypt = publicEncrypt.privateDecrypt\n\n// the least I can do is make error messages for the rest of the node.js/crypto api.\n// ;[\n// 'createCredentials'\n// ].forEach(function (name) {\n// exports[name] = function () {\n// throw new Error([\n// 'sorry, ' + name + ' is not implemented yet',\n// 'we accept pull requests',\n// 'https://github.com/crypto-browserify/crypto-browserify'\n// ].join('\\n'))\n// }\n// })\n\nvar rf = require('randomfill')\n\nexports.randomFill = rf.randomFill\nexports.randomFillSync = rf.randomFillSync\n\nexports.createCredentials = function () {\n throw new Error([\n 'sorry, createCredentials is not implemented yet',\n 'we accept pull requests',\n 'https://github.com/crypto-browserify/crypto-browserify'\n ].join('\\n'))\n}\n\nexports.constants = {\n 'DH_CHECK_P_NOT_SAFE_PRIME': 2,\n 'DH_CHECK_P_NOT_PRIME': 1,\n 'DH_UNABLE_TO_CHECK_GENERATOR': 4,\n 'DH_NOT_SUITABLE_GENERATOR': 8,\n 'NPN_ENABLED': 1,\n 'ALPN_ENABLED': 1,\n 'RSA_PKCS1_PADDING': 1,\n 'RSA_SSLV23_PADDING': 2,\n 'RSA_NO_PADDING': 3,\n 'RSA_PKCS1_OAEP_PADDING': 4,\n 'RSA_X931_PADDING': 5,\n 'RSA_PKCS1_PSS_PADDING': 6,\n 'POINT_CONVERSION_COMPRESSED': 2,\n 'POINT_CONVERSION_UNCOMPRESSED': 4,\n 'POINT_CONVERSION_HYBRID': 6\n}\n",";(function (globalScope) {\r\n 'use strict';\r\n\r\n\r\n /*!\r\n * decimal.js v10.4.0\r\n * An arbitrary-precision Decimal type for JavaScript.\r\n * https://github.com/MikeMcl/decimal.js\r\n * Copyright (c) 2022 Michael Mclaughlin \r\n * MIT Licence\r\n */\r\n\r\n\r\n // ----------------------------------- EDITABLE DEFAULTS ------------------------------------ //\r\n\r\n\r\n // The maximum exponent magnitude.\r\n // The limit on the value of `toExpNeg`, `toExpPos`, `minE` and `maxE`.\r\n var EXP_LIMIT = 9e15, // 0 to 9e15\r\n\r\n // The limit on the value of `precision`, and on the value of the first argument to\r\n // `toDecimalPlaces`, `toExponential`, `toFixed`, `toPrecision` and `toSignificantDigits`.\r\n MAX_DIGITS = 1e9, // 0 to 1e9\r\n\r\n // Base conversion alphabet.\r\n NUMERALS = '0123456789abcdef',\r\n\r\n // The natural logarithm of 10 (1025 digits).\r\n LN10 = '2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058',\r\n\r\n // Pi (1025 digits).\r\n PI = '3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789',\r\n\r\n\r\n // The initial configuration properties of the Decimal constructor.\r\n DEFAULTS = {\r\n\r\n // These values must be integers within the stated ranges (inclusive).\r\n // Most of these values can be changed at run-time using the `Decimal.config` method.\r\n\r\n // The maximum number of significant digits of the result of a calculation or base conversion.\r\n // E.g. `Decimal.config({ precision: 20 });`\r\n precision: 20, // 1 to MAX_DIGITS\r\n\r\n // The rounding mode used when rounding to `precision`.\r\n //\r\n // ROUND_UP 0 Away from zero.\r\n // ROUND_DOWN 1 Towards zero.\r\n // ROUND_CEIL 2 Towards +Infinity.\r\n // ROUND_FLOOR 3 Towards -Infinity.\r\n // ROUND_HALF_UP 4 Towards nearest neighbour. If equidistant, up.\r\n // ROUND_HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.\r\n // ROUND_HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n // ROUND_HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n // ROUND_HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n //\r\n // E.g.\r\n // `Decimal.rounding = 4;`\r\n // `Decimal.rounding = Decimal.ROUND_HALF_UP;`\r\n rounding: 4, // 0 to 8\r\n\r\n // The modulo mode used when calculating the modulus: a mod n.\r\n // The quotient (q = a / n) is calculated according to the corresponding rounding mode.\r\n // The remainder (r) is calculated as: r = a - n * q.\r\n //\r\n // UP 0 The remainder is positive if the dividend is negative, else is negative.\r\n // DOWN 1 The remainder has the same sign as the dividend (JavaScript %).\r\n // FLOOR 3 The remainder has the same sign as the divisor (Python %).\r\n // HALF_EVEN 6 The IEEE 754 remainder function.\r\n // EUCLID 9 Euclidian division. q = sign(n) * floor(a / abs(n)). Always positive.\r\n //\r\n // Truncated division (1), floored division (3), the IEEE 754 remainder (6), and Euclidian\r\n // division (9) are commonly used for the modulus operation. The other rounding modes can also\r\n // be used, but they may not give useful results.\r\n modulo: 1, // 0 to 9\r\n\r\n // The exponent value at and beneath which `toString` returns exponential notation.\r\n // JavaScript numbers: -7\r\n toExpNeg: -7, // 0 to -EXP_LIMIT\r\n\r\n // The exponent value at and above which `toString` returns exponential notation.\r\n // JavaScript numbers: 21\r\n toExpPos: 21, // 0 to EXP_LIMIT\r\n\r\n // The minimum exponent value, beneath which underflow to zero occurs.\r\n // JavaScript numbers: -324 (5e-324)\r\n minE: -EXP_LIMIT, // -1 to -EXP_LIMIT\r\n\r\n // The maximum exponent value, above which overflow to Infinity occurs.\r\n // JavaScript numbers: 308 (1.7976931348623157e+308)\r\n maxE: EXP_LIMIT, // 1 to EXP_LIMIT\r\n\r\n // Whether to use cryptographically-secure random number generation, if available.\r\n crypto: false // true/false\r\n },\r\n\r\n\r\n // ----------------------------------- END OF EDITABLE DEFAULTS ------------------------------- //\r\n\r\n\r\n Decimal, inexact, noConflict, quadrant,\r\n external = true,\r\n\r\n decimalError = '[DecimalError] ',\r\n invalidArgument = decimalError + 'Invalid argument: ',\r\n precisionLimitExceeded = decimalError + 'Precision limit exceeded',\r\n cryptoUnavailable = decimalError + 'crypto unavailable',\r\n tag = '[object Decimal]',\r\n\r\n mathfloor = Math.floor,\r\n mathpow = Math.pow,\r\n\r\n isBinary = /^0b([01]+(\\.[01]*)?|\\.[01]+)(p[+-]?\\d+)?$/i,\r\n isHex = /^0x([0-9a-f]+(\\.[0-9a-f]*)?|\\.[0-9a-f]+)(p[+-]?\\d+)?$/i,\r\n isOctal = /^0o([0-7]+(\\.[0-7]*)?|\\.[0-7]+)(p[+-]?\\d+)?$/i,\r\n isDecimal = /^(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i,\r\n\r\n BASE = 1e7,\r\n LOG_BASE = 7,\r\n MAX_SAFE_INTEGER = 9007199254740991,\r\n\r\n LN10_PRECISION = LN10.length - 1,\r\n PI_PRECISION = PI.length - 1,\r\n\r\n // Decimal.prototype object\r\n P = { toStringTag: tag };\r\n\r\n\r\n // Decimal prototype methods\r\n\r\n\r\n /*\r\n * absoluteValue abs\r\n * ceil\r\n * clampedTo clamp\r\n * comparedTo cmp\r\n * cosine cos\r\n * cubeRoot cbrt\r\n * decimalPlaces dp\r\n * dividedBy div\r\n * dividedToIntegerBy divToInt\r\n * equals eq\r\n * floor\r\n * greaterThan gt\r\n * greaterThanOrEqualTo gte\r\n * hyperbolicCosine cosh\r\n * hyperbolicSine sinh\r\n * hyperbolicTangent tanh\r\n * inverseCosine acos\r\n * inverseHyperbolicCosine acosh\r\n * inverseHyperbolicSine asinh\r\n * inverseHyperbolicTangent atanh\r\n * inverseSine asin\r\n * inverseTangent atan\r\n * isFinite\r\n * isInteger isInt\r\n * isNaN\r\n * isNegative isNeg\r\n * isPositive isPos\r\n * isZero\r\n * lessThan lt\r\n * lessThanOrEqualTo lte\r\n * logarithm log\r\n * [maximum] [max]\r\n * [minimum] [min]\r\n * minus sub\r\n * modulo mod\r\n * naturalExponential exp\r\n * naturalLogarithm ln\r\n * negated neg\r\n * plus add\r\n * precision sd\r\n * round\r\n * sine sin\r\n * squareRoot sqrt\r\n * tangent tan\r\n * times mul\r\n * toBinary\r\n * toDecimalPlaces toDP\r\n * toExponential\r\n * toFixed\r\n * toFraction\r\n * toHexadecimal toHex\r\n * toNearest\r\n * toNumber\r\n * toOctal\r\n * toPower pow\r\n * toPrecision\r\n * toSignificantDigits toSD\r\n * toString\r\n * truncated trunc\r\n * valueOf toJSON\r\n */\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the absolute value of this Decimal.\r\n *\r\n */\r\n P.absoluteValue = P.abs = function () {\r\n var x = new this.constructor(this);\r\n if (x.s < 0) x.s = 1;\r\n return finalise(x);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a whole number in the\r\n * direction of positive Infinity.\r\n *\r\n */\r\n P.ceil = function () {\r\n return finalise(new this.constructor(this), this.e + 1, 2);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal clamped to the range\r\n * delineated by `min` and `max`.\r\n *\r\n * min {number|string|Decimal}\r\n * max {number|string|Decimal}\r\n *\r\n */\r\n P.clampedTo = P.clamp = function (min, max) {\r\n var k,\r\n x = this,\r\n Ctor = x.constructor;\r\n min = new Ctor(min);\r\n max = new Ctor(max);\r\n if (!min.s || !max.s) return new Ctor(NaN);\r\n if (min.gt(max)) throw Error(invalidArgument + max);\r\n k = x.cmp(min);\r\n return k < 0 ? min : x.cmp(max) > 0 ? max : new Ctor(x);\r\n };\r\n\r\n\r\n /*\r\n * Return\r\n * 1 if the value of this Decimal is greater than the value of `y`,\r\n * -1 if the value of this Decimal is less than the value of `y`,\r\n * 0 if they have the same value,\r\n * NaN if the value of either Decimal is NaN.\r\n *\r\n */\r\n P.comparedTo = P.cmp = function (y) {\r\n var i, j, xdL, ydL,\r\n x = this,\r\n xd = x.d,\r\n yd = (y = new x.constructor(y)).d,\r\n xs = x.s,\r\n ys = y.s;\r\n\r\n // Either NaN or ±Infinity?\r\n if (!xd || !yd) {\r\n return !xs || !ys ? NaN : xs !== ys ? xs : xd === yd ? 0 : !xd ^ xs < 0 ? 1 : -1;\r\n }\r\n\r\n // Either zero?\r\n if (!xd[0] || !yd[0]) return xd[0] ? xs : yd[0] ? -ys : 0;\r\n\r\n // Signs differ?\r\n if (xs !== ys) return xs;\r\n\r\n // Compare exponents.\r\n if (x.e !== y.e) return x.e > y.e ^ xs < 0 ? 1 : -1;\r\n\r\n xdL = xd.length;\r\n ydL = yd.length;\r\n\r\n // Compare digit by digit.\r\n for (i = 0, j = xdL < ydL ? xdL : ydL; i < j; ++i) {\r\n if (xd[i] !== yd[i]) return xd[i] > yd[i] ^ xs < 0 ? 1 : -1;\r\n }\r\n\r\n // Compare lengths.\r\n return xdL === ydL ? 0 : xdL > ydL ^ xs < 0 ? 1 : -1;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the cosine of the value in radians of this Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-1, 1]\r\n *\r\n * cos(0) = 1\r\n * cos(-0) = 1\r\n * cos(Infinity) = NaN\r\n * cos(-Infinity) = NaN\r\n * cos(NaN) = NaN\r\n *\r\n */\r\n P.cosine = P.cos = function () {\r\n var pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.d) return new Ctor(NaN);\r\n\r\n // cos(0) = cos(-0) = 1\r\n if (!x.d[0]) return new Ctor(1);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + Math.max(x.e, x.sd()) + LOG_BASE;\r\n Ctor.rounding = 1;\r\n\r\n x = cosine(Ctor, toLessThanHalfPi(Ctor, x));\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return finalise(quadrant == 2 || quadrant == 3 ? x.neg() : x, pr, rm, true);\r\n };\r\n\r\n\r\n /*\r\n *\r\n * Return a new Decimal whose value is the cube root of the value of this Decimal, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * cbrt(0) = 0\r\n * cbrt(-0) = -0\r\n * cbrt(1) = 1\r\n * cbrt(-1) = -1\r\n * cbrt(N) = N\r\n * cbrt(-I) = -I\r\n * cbrt(I) = I\r\n *\r\n * Math.cbrt(x) = (x < 0 ? -Math.pow(-x, 1/3) : Math.pow(x, 1/3))\r\n *\r\n */\r\n P.cubeRoot = P.cbrt = function () {\r\n var e, m, n, r, rep, s, sd, t, t3, t3plusx,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite() || x.isZero()) return new Ctor(x);\r\n external = false;\r\n\r\n // Initial estimate.\r\n s = x.s * mathpow(x.s * x, 1 / 3);\r\n\r\n // Math.cbrt underflow/overflow?\r\n // Pass x to Math.pow as integer, then adjust the exponent of the result.\r\n if (!s || Math.abs(s) == 1 / 0) {\r\n n = digitsToString(x.d);\r\n e = x.e;\r\n\r\n // Adjust n exponent so it is a multiple of 3 away from x exponent.\r\n if (s = (e - n.length + 1) % 3) n += (s == 1 || s == -2 ? '0' : '00');\r\n s = mathpow(n, 1 / 3);\r\n\r\n // Rarely, e may be one less than the result exponent value.\r\n e = mathfloor((e + 1) / 3) - (e % 3 == (e < 0 ? -1 : 2));\r\n\r\n if (s == 1 / 0) {\r\n n = '5e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new Ctor(n);\r\n r.s = x.s;\r\n } else {\r\n r = new Ctor(s.toString());\r\n }\r\n\r\n sd = (e = Ctor.precision) + 3;\r\n\r\n // Halley's method.\r\n // TODO? Compare Newton's method.\r\n for (;;) {\r\n t = r;\r\n t3 = t.times(t).times(t);\r\n t3plusx = t3.plus(x);\r\n r = divide(t3plusx.plus(x).times(t), t3plusx.plus(t3), sd + 2, 1);\r\n\r\n // TODO? Replace with for-loop and checkRoundingDigits.\r\n if (digitsToString(t.d).slice(0, sd) === (n = digitsToString(r.d)).slice(0, sd)) {\r\n n = n.slice(sd - 3, sd + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits are 9999 or 4999\r\n // , i.e. approaching a rounding boundary, continue the iteration.\r\n if (n == '9999' || !rep && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the exact result as the\r\n // nines may infinitely repeat.\r\n if (!rep) {\r\n finalise(t, e + 1, 0);\r\n\r\n if (t.times(t).times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n }\r\n\r\n sd += 4;\r\n rep = 1;\r\n } else {\r\n\r\n // If the rounding digits are null, 0{0,4} or 50{0,3}, check for an exact result.\r\n // If not, then there are further digits and m will be truthy.\r\n if (!+n || !+n.slice(1) && n.charAt(0) == '5') {\r\n\r\n // Truncate to the first rounding digit.\r\n finalise(r, e + 1, 1);\r\n m = !r.times(r).times(r).eq(x);\r\n }\r\n\r\n break;\r\n }\r\n }\r\n }\r\n\r\n external = true;\r\n\r\n return finalise(r, e, Ctor.rounding, m);\r\n };\r\n\r\n\r\n /*\r\n * Return the number of decimal places of the value of this Decimal.\r\n *\r\n */\r\n P.decimalPlaces = P.dp = function () {\r\n var w,\r\n d = this.d,\r\n n = NaN;\r\n\r\n if (d) {\r\n w = d.length - 1;\r\n n = (w - mathfloor(this.e / LOG_BASE)) * LOG_BASE;\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n w = d[w];\r\n if (w) for (; w % 10 == 0; w /= 10) n--;\r\n if (n < 0) n = 0;\r\n }\r\n\r\n return n;\r\n };\r\n\r\n\r\n /*\r\n * n / 0 = I\r\n * n / N = N\r\n * n / I = 0\r\n * 0 / n = 0\r\n * 0 / 0 = N\r\n * 0 / N = N\r\n * 0 / I = 0\r\n * N / n = N\r\n * N / 0 = N\r\n * N / N = N\r\n * N / I = N\r\n * I / n = I\r\n * I / 0 = I\r\n * I / N = N\r\n * I / I = N\r\n *\r\n * Return a new Decimal whose value is the value of this Decimal divided by `y`, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n */\r\n P.dividedBy = P.div = function (y) {\r\n return divide(this, new this.constructor(y));\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the integer part of dividing the value of this Decimal\r\n * by the value of `y`, rounded to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n */\r\n P.dividedToIntegerBy = P.divToInt = function (y) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n return finalise(divide(x, new Ctor(y), 0, 1, 1), Ctor.precision, Ctor.rounding);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is equal to the value of `y`, otherwise return false.\r\n *\r\n */\r\n P.equals = P.eq = function (y) {\r\n return this.cmp(y) === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a whole number in the\r\n * direction of negative Infinity.\r\n *\r\n */\r\n P.floor = function () {\r\n return finalise(new this.constructor(this), this.e + 1, 3);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is greater than the value of `y`, otherwise return\r\n * false.\r\n *\r\n */\r\n P.greaterThan = P.gt = function (y) {\r\n return this.cmp(y) > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is greater than or equal to the value of `y`,\r\n * otherwise return false.\r\n *\r\n */\r\n P.greaterThanOrEqualTo = P.gte = function (y) {\r\n var k = this.cmp(y);\r\n return k == 1 || k === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the hyperbolic cosine of the value in radians of this\r\n * Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [1, Infinity]\r\n *\r\n * cosh(x) = 1 + x^2/2! + x^4/4! + x^6/6! + ...\r\n *\r\n * cosh(0) = 1\r\n * cosh(-0) = 1\r\n * cosh(Infinity) = Infinity\r\n * cosh(-Infinity) = Infinity\r\n * cosh(NaN) = NaN\r\n *\r\n * x time taken (ms) result\r\n * 1000 9 9.8503555700852349694e+433\r\n * 10000 25 4.4034091128314607936e+4342\r\n * 100000 171 1.4033316802130615897e+43429\r\n * 1000000 3817 1.5166076984010437725e+434294\r\n * 10000000 abandoned after 2 minute wait\r\n *\r\n * TODO? Compare performance of cosh(x) = 0.5 * (exp(x) + exp(-x))\r\n *\r\n */\r\n P.hyperbolicCosine = P.cosh = function () {\r\n var k, n, pr, rm, len,\r\n x = this,\r\n Ctor = x.constructor,\r\n one = new Ctor(1);\r\n\r\n if (!x.isFinite()) return new Ctor(x.s ? 1 / 0 : NaN);\r\n if (x.isZero()) return one;\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + Math.max(x.e, x.sd()) + 4;\r\n Ctor.rounding = 1;\r\n len = x.d.length;\r\n\r\n // Argument reduction: cos(4x) = 1 - 8cos^2(x) + 8cos^4(x) + 1\r\n // i.e. cos(x) = 1 - cos^2(x/4)(8 - 8cos^2(x/4))\r\n\r\n // Estimate the optimum number of times to use the argument reduction.\r\n // TODO? Estimation reused from cosine() and may not be optimal here.\r\n if (len < 32) {\r\n k = Math.ceil(len / 3);\r\n n = (1 / tinyPow(4, k)).toString();\r\n } else {\r\n k = 16;\r\n n = '2.3283064365386962890625e-10';\r\n }\r\n\r\n x = taylorSeries(Ctor, 1, x.times(n), new Ctor(1), true);\r\n\r\n // Reverse argument reduction\r\n var cosh2_x,\r\n i = k,\r\n d8 = new Ctor(8);\r\n for (; i--;) {\r\n cosh2_x = x.times(x);\r\n x = one.minus(cosh2_x.times(d8.minus(cosh2_x.times(d8))));\r\n }\r\n\r\n return finalise(x, Ctor.precision = pr, Ctor.rounding = rm, true);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the hyperbolic sine of the value in radians of this\r\n * Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-Infinity, Infinity]\r\n *\r\n * sinh(x) = x + x^3/3! + x^5/5! + x^7/7! + ...\r\n *\r\n * sinh(0) = 0\r\n * sinh(-0) = -0\r\n * sinh(Infinity) = Infinity\r\n * sinh(-Infinity) = -Infinity\r\n * sinh(NaN) = NaN\r\n *\r\n * x time taken (ms)\r\n * 10 2 ms\r\n * 100 5 ms\r\n * 1000 14 ms\r\n * 10000 82 ms\r\n * 100000 886 ms 1.4033316802130615897e+43429\r\n * 200000 2613 ms\r\n * 300000 5407 ms\r\n * 400000 8824 ms\r\n * 500000 13026 ms 8.7080643612718084129e+217146\r\n * 1000000 48543 ms\r\n *\r\n * TODO? Compare performance of sinh(x) = 0.5 * (exp(x) - exp(-x))\r\n *\r\n */\r\n P.hyperbolicSine = P.sinh = function () {\r\n var k, pr, rm, len,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite() || x.isZero()) return new Ctor(x);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + Math.max(x.e, x.sd()) + 4;\r\n Ctor.rounding = 1;\r\n len = x.d.length;\r\n\r\n if (len < 3) {\r\n x = taylorSeries(Ctor, 2, x, x, true);\r\n } else {\r\n\r\n // Alternative argument reduction: sinh(3x) = sinh(x)(3 + 4sinh^2(x))\r\n // i.e. sinh(x) = sinh(x/3)(3 + 4sinh^2(x/3))\r\n // 3 multiplications and 1 addition\r\n\r\n // Argument reduction: sinh(5x) = sinh(x)(5 + sinh^2(x)(20 + 16sinh^2(x)))\r\n // i.e. sinh(x) = sinh(x/5)(5 + sinh^2(x/5)(20 + 16sinh^2(x/5)))\r\n // 4 multiplications and 2 additions\r\n\r\n // Estimate the optimum number of times to use the argument reduction.\r\n k = 1.4 * Math.sqrt(len);\r\n k = k > 16 ? 16 : k | 0;\r\n\r\n x = x.times(1 / tinyPow(5, k));\r\n x = taylorSeries(Ctor, 2, x, x, true);\r\n\r\n // Reverse argument reduction\r\n var sinh2_x,\r\n d5 = new Ctor(5),\r\n d16 = new Ctor(16),\r\n d20 = new Ctor(20);\r\n for (; k--;) {\r\n sinh2_x = x.times(x);\r\n x = x.times(d5.plus(sinh2_x.times(d16.times(sinh2_x).plus(d20))));\r\n }\r\n }\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return finalise(x, pr, rm, true);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the hyperbolic tangent of the value in radians of this\r\n * Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-1, 1]\r\n *\r\n * tanh(x) = sinh(x) / cosh(x)\r\n *\r\n * tanh(0) = 0\r\n * tanh(-0) = -0\r\n * tanh(Infinity) = 1\r\n * tanh(-Infinity) = -1\r\n * tanh(NaN) = NaN\r\n *\r\n */\r\n P.hyperbolicTangent = P.tanh = function () {\r\n var pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite()) return new Ctor(x.s);\r\n if (x.isZero()) return new Ctor(x);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + 7;\r\n Ctor.rounding = 1;\r\n\r\n return divide(x.sinh(), x.cosh(), Ctor.precision = pr, Ctor.rounding = rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the arccosine (inverse cosine) in radians of the value of\r\n * this Decimal.\r\n *\r\n * Domain: [-1, 1]\r\n * Range: [0, pi]\r\n *\r\n * acos(x) = pi/2 - asin(x)\r\n *\r\n * acos(0) = pi/2\r\n * acos(-0) = pi/2\r\n * acos(1) = 0\r\n * acos(-1) = pi\r\n * acos(1/2) = pi/3\r\n * acos(-1/2) = 2*pi/3\r\n * acos(|x| > 1) = NaN\r\n * acos(NaN) = NaN\r\n *\r\n */\r\n P.inverseCosine = P.acos = function () {\r\n var halfPi,\r\n x = this,\r\n Ctor = x.constructor,\r\n k = x.abs().cmp(1),\r\n pr = Ctor.precision,\r\n rm = Ctor.rounding;\r\n\r\n if (k !== -1) {\r\n return k === 0\r\n // |x| is 1\r\n ? x.isNeg() ? getPi(Ctor, pr, rm) : new Ctor(0)\r\n // |x| > 1 or x is NaN\r\n : new Ctor(NaN);\r\n }\r\n\r\n if (x.isZero()) return getPi(Ctor, pr + 4, rm).times(0.5);\r\n\r\n // TODO? Special case acos(0.5) = pi/3 and acos(-0.5) = 2*pi/3\r\n\r\n Ctor.precision = pr + 6;\r\n Ctor.rounding = 1;\r\n\r\n x = x.asin();\r\n halfPi = getPi(Ctor, pr + 4, rm).times(0.5);\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return halfPi.minus(x);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic cosine in radians of the\r\n * value of this Decimal.\r\n *\r\n * Domain: [1, Infinity]\r\n * Range: [0, Infinity]\r\n *\r\n * acosh(x) = ln(x + sqrt(x^2 - 1))\r\n *\r\n * acosh(x < 1) = NaN\r\n * acosh(NaN) = NaN\r\n * acosh(Infinity) = Infinity\r\n * acosh(-Infinity) = NaN\r\n * acosh(0) = NaN\r\n * acosh(-0) = NaN\r\n * acosh(1) = 0\r\n * acosh(-1) = NaN\r\n *\r\n */\r\n P.inverseHyperbolicCosine = P.acosh = function () {\r\n var pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (x.lte(1)) return new Ctor(x.eq(1) ? 0 : NaN);\r\n if (!x.isFinite()) return new Ctor(x);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + Math.max(Math.abs(x.e), x.sd()) + 4;\r\n Ctor.rounding = 1;\r\n external = false;\r\n\r\n x = x.times(x).minus(1).sqrt().plus(x);\r\n\r\n external = true;\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return x.ln();\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic sine in radians of the value\r\n * of this Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-Infinity, Infinity]\r\n *\r\n * asinh(x) = ln(x + sqrt(x^2 + 1))\r\n *\r\n * asinh(NaN) = NaN\r\n * asinh(Infinity) = Infinity\r\n * asinh(-Infinity) = -Infinity\r\n * asinh(0) = 0\r\n * asinh(-0) = -0\r\n *\r\n */\r\n P.inverseHyperbolicSine = P.asinh = function () {\r\n var pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite() || x.isZero()) return new Ctor(x);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + 2 * Math.max(Math.abs(x.e), x.sd()) + 6;\r\n Ctor.rounding = 1;\r\n external = false;\r\n\r\n x = x.times(x).plus(1).sqrt().plus(x);\r\n\r\n external = true;\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return x.ln();\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic tangent in radians of the\r\n * value of this Decimal.\r\n *\r\n * Domain: [-1, 1]\r\n * Range: [-Infinity, Infinity]\r\n *\r\n * atanh(x) = 0.5 * ln((1 + x) / (1 - x))\r\n *\r\n * atanh(|x| > 1) = NaN\r\n * atanh(NaN) = NaN\r\n * atanh(Infinity) = NaN\r\n * atanh(-Infinity) = NaN\r\n * atanh(0) = 0\r\n * atanh(-0) = -0\r\n * atanh(1) = Infinity\r\n * atanh(-1) = -Infinity\r\n *\r\n */\r\n P.inverseHyperbolicTangent = P.atanh = function () {\r\n var pr, rm, wpr, xsd,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite()) return new Ctor(NaN);\r\n if (x.e >= 0) return new Ctor(x.abs().eq(1) ? x.s / 0 : x.isZero() ? x : NaN);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n xsd = x.sd();\r\n\r\n if (Math.max(xsd, pr) < 2 * -x.e - 1) return finalise(new Ctor(x), pr, rm, true);\r\n\r\n Ctor.precision = wpr = xsd - x.e;\r\n\r\n x = divide(x.plus(1), new Ctor(1).minus(x), wpr + pr, 1);\r\n\r\n Ctor.precision = pr + 4;\r\n Ctor.rounding = 1;\r\n\r\n x = x.ln();\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return x.times(0.5);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the arcsine (inverse sine) in radians of the value of this\r\n * Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-pi/2, pi/2]\r\n *\r\n * asin(x) = 2*atan(x/(1 + sqrt(1 - x^2)))\r\n *\r\n * asin(0) = 0\r\n * asin(-0) = -0\r\n * asin(1/2) = pi/6\r\n * asin(-1/2) = -pi/6\r\n * asin(1) = pi/2\r\n * asin(-1) = -pi/2\r\n * asin(|x| > 1) = NaN\r\n * asin(NaN) = NaN\r\n *\r\n * TODO? Compare performance of Taylor series.\r\n *\r\n */\r\n P.inverseSine = P.asin = function () {\r\n var halfPi, k,\r\n pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (x.isZero()) return new Ctor(x);\r\n\r\n k = x.abs().cmp(1);\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n\r\n if (k !== -1) {\r\n\r\n // |x| is 1\r\n if (k === 0) {\r\n halfPi = getPi(Ctor, pr + 4, rm).times(0.5);\r\n halfPi.s = x.s;\r\n return halfPi;\r\n }\r\n\r\n // |x| > 1 or x is NaN\r\n return new Ctor(NaN);\r\n }\r\n\r\n // TODO? Special case asin(1/2) = pi/6 and asin(-1/2) = -pi/6\r\n\r\n Ctor.precision = pr + 6;\r\n Ctor.rounding = 1;\r\n\r\n x = x.div(new Ctor(1).minus(x.times(x)).sqrt().plus(1)).atan();\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return x.times(2);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the arctangent (inverse tangent) in radians of the value\r\n * of this Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-pi/2, pi/2]\r\n *\r\n * atan(x) = x - x^3/3 + x^5/5 - x^7/7 + ...\r\n *\r\n * atan(0) = 0\r\n * atan(-0) = -0\r\n * atan(1) = pi/4\r\n * atan(-1) = -pi/4\r\n * atan(Infinity) = pi/2\r\n * atan(-Infinity) = -pi/2\r\n * atan(NaN) = NaN\r\n *\r\n */\r\n P.inverseTangent = P.atan = function () {\r\n var i, j, k, n, px, t, r, wpr, x2,\r\n x = this,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision,\r\n rm = Ctor.rounding;\r\n\r\n if (!x.isFinite()) {\r\n if (!x.s) return new Ctor(NaN);\r\n if (pr + 4 <= PI_PRECISION) {\r\n r = getPi(Ctor, pr + 4, rm).times(0.5);\r\n r.s = x.s;\r\n return r;\r\n }\r\n } else if (x.isZero()) {\r\n return new Ctor(x);\r\n } else if (x.abs().eq(1) && pr + 4 <= PI_PRECISION) {\r\n r = getPi(Ctor, pr + 4, rm).times(0.25);\r\n r.s = x.s;\r\n return r;\r\n }\r\n\r\n Ctor.precision = wpr = pr + 10;\r\n Ctor.rounding = 1;\r\n\r\n // TODO? if (x >= 1 && pr <= PI_PRECISION) atan(x) = halfPi * x.s - atan(1 / x);\r\n\r\n // Argument reduction\r\n // Ensure |x| < 0.42\r\n // atan(x) = 2 * atan(x / (1 + sqrt(1 + x^2)))\r\n\r\n k = Math.min(28, wpr / LOG_BASE + 2 | 0);\r\n\r\n for (i = k; i; --i) x = x.div(x.times(x).plus(1).sqrt().plus(1));\r\n\r\n external = false;\r\n\r\n j = Math.ceil(wpr / LOG_BASE);\r\n n = 1;\r\n x2 = x.times(x);\r\n r = new Ctor(x);\r\n px = x;\r\n\r\n // atan(x) = x - x^3/3 + x^5/5 - x^7/7 + ...\r\n for (; i !== -1;) {\r\n px = px.times(x2);\r\n t = r.minus(px.div(n += 2));\r\n\r\n px = px.times(x2);\r\n r = t.plus(px.div(n += 2));\r\n\r\n if (r.d[j] !== void 0) for (i = j; r.d[i] === t.d[i] && i--;);\r\n }\r\n\r\n if (k) r = r.times(2 << (k - 1));\r\n\r\n external = true;\r\n\r\n return finalise(r, Ctor.precision = pr, Ctor.rounding = rm, true);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is a finite number, otherwise return false.\r\n *\r\n */\r\n P.isFinite = function () {\r\n return !!this.d;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is an integer, otherwise return false.\r\n *\r\n */\r\n P.isInteger = P.isInt = function () {\r\n return !!this.d && mathfloor(this.e / LOG_BASE) > this.d.length - 2;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is NaN, otherwise return false.\r\n *\r\n */\r\n P.isNaN = function () {\r\n return !this.s;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is negative, otherwise return false.\r\n *\r\n */\r\n P.isNegative = P.isNeg = function () {\r\n return this.s < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is positive, otherwise return false.\r\n *\r\n */\r\n P.isPositive = P.isPos = function () {\r\n return this.s > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is 0 or -0, otherwise return false.\r\n *\r\n */\r\n P.isZero = function () {\r\n return !!this.d && this.d[0] === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is less than `y`, otherwise return false.\r\n *\r\n */\r\n P.lessThan = P.lt = function (y) {\r\n return this.cmp(y) < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is less than or equal to `y`, otherwise return false.\r\n *\r\n */\r\n P.lessThanOrEqualTo = P.lte = function (y) {\r\n return this.cmp(y) < 1;\r\n };\r\n\r\n\r\n /*\r\n * Return the logarithm of the value of this Decimal to the specified base, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * If no base is specified, return log[10](arg).\r\n *\r\n * log[base](arg) = ln(arg) / ln(base)\r\n *\r\n * The result will always be correctly rounded if the base of the log is 10, and 'almost always'\r\n * otherwise:\r\n *\r\n * Depending on the rounding mode, the result may be incorrectly rounded if the first fifteen\r\n * rounding digits are [49]99999999999999 or [50]00000000000000. In that case, the maximum error\r\n * between the result and the correctly rounded result will be one ulp (unit in the last place).\r\n *\r\n * log[-b](a) = NaN\r\n * log[0](a) = NaN\r\n * log[1](a) = NaN\r\n * log[NaN](a) = NaN\r\n * log[Infinity](a) = NaN\r\n * log[b](0) = -Infinity\r\n * log[b](-0) = -Infinity\r\n * log[b](-a) = NaN\r\n * log[b](1) = 0\r\n * log[b](Infinity) = Infinity\r\n * log[b](NaN) = NaN\r\n *\r\n * [base] {number|string|Decimal} The base of the logarithm.\r\n *\r\n */\r\n P.logarithm = P.log = function (base) {\r\n var isBase10, d, denominator, k, inf, num, sd, r,\r\n arg = this,\r\n Ctor = arg.constructor,\r\n pr = Ctor.precision,\r\n rm = Ctor.rounding,\r\n guard = 5;\r\n\r\n // Default base is 10.\r\n if (base == null) {\r\n base = new Ctor(10);\r\n isBase10 = true;\r\n } else {\r\n base = new Ctor(base);\r\n d = base.d;\r\n\r\n // Return NaN if base is negative, or non-finite, or is 0 or 1.\r\n if (base.s < 0 || !d || !d[0] || base.eq(1)) return new Ctor(NaN);\r\n\r\n isBase10 = base.eq(10);\r\n }\r\n\r\n d = arg.d;\r\n\r\n // Is arg negative, non-finite, 0 or 1?\r\n if (arg.s < 0 || !d || !d[0] || arg.eq(1)) {\r\n return new Ctor(d && !d[0] ? -1 / 0 : arg.s != 1 ? NaN : d ? 0 : 1 / 0);\r\n }\r\n\r\n // The result will have a non-terminating decimal expansion if base is 10 and arg is not an\r\n // integer power of 10.\r\n if (isBase10) {\r\n if (d.length > 1) {\r\n inf = true;\r\n } else {\r\n for (k = d[0]; k % 10 === 0;) k /= 10;\r\n inf = k !== 1;\r\n }\r\n }\r\n\r\n external = false;\r\n sd = pr + guard;\r\n num = naturalLogarithm(arg, sd);\r\n denominator = isBase10 ? getLn10(Ctor, sd + 10) : naturalLogarithm(base, sd);\r\n\r\n // The result will have 5 rounding digits.\r\n r = divide(num, denominator, sd, 1);\r\n\r\n // If at a rounding boundary, i.e. the result's rounding digits are [49]9999 or [50]0000,\r\n // calculate 10 further digits.\r\n //\r\n // If the result is known to have an infinite decimal expansion, repeat this until it is clear\r\n // that the result is above or below the boundary. Otherwise, if after calculating the 10\r\n // further digits, the last 14 are nines, round up and assume the result is exact.\r\n // Also assume the result is exact if the last 14 are zero.\r\n //\r\n // Example of a result that will be incorrectly rounded:\r\n // log[1048576](4503599627370502) = 2.60000000000000009610279511444746...\r\n // The above result correctly rounded using ROUND_CEIL to 1 decimal place should be 2.7, but it\r\n // will be given as 2.6 as there are 15 zeros immediately after the requested decimal place, so\r\n // the exact result would be assumed to be 2.6, which rounded using ROUND_CEIL to 1 decimal\r\n // place is still 2.6.\r\n if (checkRoundingDigits(r.d, k = pr, rm)) {\r\n\r\n do {\r\n sd += 10;\r\n num = naturalLogarithm(arg, sd);\r\n denominator = isBase10 ? getLn10(Ctor, sd + 10) : naturalLogarithm(base, sd);\r\n r = divide(num, denominator, sd, 1);\r\n\r\n if (!inf) {\r\n\r\n // Check for 14 nines from the 2nd rounding digit, as the first may be 4.\r\n if (+digitsToString(r.d).slice(k + 1, k + 15) + 1 == 1e14) {\r\n r = finalise(r, pr + 1, 0);\r\n }\r\n\r\n break;\r\n }\r\n } while (checkRoundingDigits(r.d, k += 10, rm));\r\n }\r\n\r\n external = true;\r\n\r\n return finalise(r, pr, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the maximum of the arguments and the value of this Decimal.\r\n *\r\n * arguments {number|string|Decimal}\r\n *\r\n P.max = function () {\r\n Array.prototype.push.call(arguments, this);\r\n return maxOrMin(this.constructor, arguments, 'lt');\r\n };\r\n */\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the minimum of the arguments and the value of this Decimal.\r\n *\r\n * arguments {number|string|Decimal}\r\n *\r\n P.min = function () {\r\n Array.prototype.push.call(arguments, this);\r\n return maxOrMin(this.constructor, arguments, 'gt');\r\n };\r\n */\r\n\r\n\r\n /*\r\n * n - 0 = n\r\n * n - N = N\r\n * n - I = -I\r\n * 0 - n = -n\r\n * 0 - 0 = 0\r\n * 0 - N = N\r\n * 0 - I = -I\r\n * N - n = N\r\n * N - 0 = N\r\n * N - N = N\r\n * N - I = N\r\n * I - n = I\r\n * I - 0 = I\r\n * I - N = N\r\n * I - I = N\r\n *\r\n * Return a new Decimal whose value is the value of this Decimal minus `y`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n */\r\n P.minus = P.sub = function (y) {\r\n var d, e, i, j, k, len, pr, rm, xd, xe, xLTy, yd,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n y = new Ctor(y);\r\n\r\n // If either is not finite...\r\n if (!x.d || !y.d) {\r\n\r\n // Return NaN if either is NaN.\r\n if (!x.s || !y.s) y = new Ctor(NaN);\r\n\r\n // Return y negated if x is finite and y is ±Infinity.\r\n else if (x.d) y.s = -y.s;\r\n\r\n // Return x if y is finite and x is ±Infinity.\r\n // Return x if both are ±Infinity with different signs.\r\n // Return NaN if both are ±Infinity with the same sign.\r\n else y = new Ctor(y.d || x.s !== y.s ? x : NaN);\r\n\r\n return y;\r\n }\r\n\r\n // If signs differ...\r\n if (x.s != y.s) {\r\n y.s = -y.s;\r\n return x.plus(y);\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n\r\n // If either is zero...\r\n if (!xd[0] || !yd[0]) {\r\n\r\n // Return y negated if x is zero and y is non-zero.\r\n if (yd[0]) y.s = -y.s;\r\n\r\n // Return x if y is zero and x is non-zero.\r\n else if (xd[0]) y = new Ctor(x);\r\n\r\n // Return zero if both are zero.\r\n // From IEEE 754 (2008) 6.3: 0 - 0 = -0 - -0 = -0 when rounding to -Infinity.\r\n else return new Ctor(rm === 3 ? -0 : 0);\r\n\r\n return external ? finalise(y, pr, rm) : y;\r\n }\r\n\r\n // x and y are finite, non-zero numbers with the same sign.\r\n\r\n // Calculate base 1e7 exponents.\r\n e = mathfloor(y.e / LOG_BASE);\r\n xe = mathfloor(x.e / LOG_BASE);\r\n\r\n xd = xd.slice();\r\n k = xe - e;\r\n\r\n // If base 1e7 exponents differ...\r\n if (k) {\r\n xLTy = k < 0;\r\n\r\n if (xLTy) {\r\n d = xd;\r\n k = -k;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = xe;\r\n len = xd.length;\r\n }\r\n\r\n // Numbers with massively different exponents would result in a very high number of\r\n // zeros needing to be prepended, but this can be avoided while still ensuring correct\r\n // rounding by limiting the number of zeros to `Math.ceil(pr / LOG_BASE) + 2`.\r\n i = Math.max(Math.ceil(pr / LOG_BASE), len) + 2;\r\n\r\n if (k > i) {\r\n k = i;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents.\r\n d.reverse();\r\n for (i = k; i--;) d.push(0);\r\n d.reverse();\r\n\r\n // Base 1e7 exponents equal.\r\n } else {\r\n\r\n // Check digits to determine which is the bigger number.\r\n\r\n i = xd.length;\r\n len = yd.length;\r\n xLTy = i < len;\r\n if (xLTy) len = i;\r\n\r\n for (i = 0; i < len; i++) {\r\n if (xd[i] != yd[i]) {\r\n xLTy = xd[i] < yd[i];\r\n break;\r\n }\r\n }\r\n\r\n k = 0;\r\n }\r\n\r\n if (xLTy) {\r\n d = xd;\r\n xd = yd;\r\n yd = d;\r\n y.s = -y.s;\r\n }\r\n\r\n len = xd.length;\r\n\r\n // Append zeros to `xd` if shorter.\r\n // Don't add zeros to `yd` if shorter as subtraction only needs to start at `yd` length.\r\n for (i = yd.length - len; i > 0; --i) xd[len++] = 0;\r\n\r\n // Subtract yd from xd.\r\n for (i = yd.length; i > k;) {\r\n\r\n if (xd[--i] < yd[i]) {\r\n for (j = i; j && xd[--j] === 0;) xd[j] = BASE - 1;\r\n --xd[j];\r\n xd[i] += BASE;\r\n }\r\n\r\n xd[i] -= yd[i];\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; xd[--len] === 0;) xd.pop();\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xd[0] === 0; xd.shift()) --e;\r\n\r\n // Zero?\r\n if (!xd[0]) return new Ctor(rm === 3 ? -0 : 0);\r\n\r\n y.d = xd;\r\n y.e = getBase10Exponent(xd, e);\r\n\r\n return external ? finalise(y, pr, rm) : y;\r\n };\r\n\r\n\r\n /*\r\n * n % 0 = N\r\n * n % N = N\r\n * n % I = n\r\n * 0 % n = 0\r\n * -0 % n = -0\r\n * 0 % 0 = N\r\n * 0 % N = N\r\n * 0 % I = 0\r\n * N % n = N\r\n * N % 0 = N\r\n * N % N = N\r\n * N % I = N\r\n * I % n = N\r\n * I % 0 = N\r\n * I % N = N\r\n * I % I = N\r\n *\r\n * Return a new Decimal whose value is the value of this Decimal modulo `y`, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * The result depends on the modulo mode.\r\n *\r\n */\r\n P.modulo = P.mod = function (y) {\r\n var q,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n y = new Ctor(y);\r\n\r\n // Return NaN if x is ±Infinity or NaN, or y is NaN or ±0.\r\n if (!x.d || !y.s || y.d && !y.d[0]) return new Ctor(NaN);\r\n\r\n // Return x if y is ±Infinity or x is ±0.\r\n if (!y.d || x.d && !x.d[0]) {\r\n return finalise(new Ctor(x), Ctor.precision, Ctor.rounding);\r\n }\r\n\r\n // Prevent rounding of intermediate calculations.\r\n external = false;\r\n\r\n if (Ctor.modulo == 9) {\r\n\r\n // Euclidian division: q = sign(y) * floor(x / abs(y))\r\n // result = x - q * y where 0 <= result < abs(y)\r\n q = divide(x, y.abs(), 0, 3, 1);\r\n q.s *= y.s;\r\n } else {\r\n q = divide(x, y, 0, Ctor.modulo, 1);\r\n }\r\n\r\n q = q.times(y);\r\n\r\n external = true;\r\n\r\n return x.minus(q);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural exponential of the value of this Decimal,\r\n * i.e. the base e raised to the power the value of this Decimal, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n */\r\n P.naturalExponential = P.exp = function () {\r\n return naturalExponential(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural logarithm of the value of this Decimal,\r\n * rounded to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n */\r\n P.naturalLogarithm = P.ln = function () {\r\n return naturalLogarithm(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal negated, i.e. as if multiplied by\r\n * -1.\r\n *\r\n */\r\n P.negated = P.neg = function () {\r\n var x = new this.constructor(this);\r\n x.s = -x.s;\r\n return finalise(x);\r\n };\r\n\r\n\r\n /*\r\n * n + 0 = n\r\n * n + N = N\r\n * n + I = I\r\n * 0 + n = n\r\n * 0 + 0 = 0\r\n * 0 + N = N\r\n * 0 + I = I\r\n * N + n = N\r\n * N + 0 = N\r\n * N + N = N\r\n * N + I = N\r\n * I + n = I\r\n * I + 0 = I\r\n * I + N = N\r\n * I + I = I\r\n *\r\n * Return a new Decimal whose value is the value of this Decimal plus `y`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n */\r\n P.plus = P.add = function (y) {\r\n var carry, d, e, i, k, len, pr, rm, xd, yd,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n y = new Ctor(y);\r\n\r\n // If either is not finite...\r\n if (!x.d || !y.d) {\r\n\r\n // Return NaN if either is NaN.\r\n if (!x.s || !y.s) y = new Ctor(NaN);\r\n\r\n // Return x if y is finite and x is ±Infinity.\r\n // Return x if both are ±Infinity with the same sign.\r\n // Return NaN if both are ±Infinity with different signs.\r\n // Return y if x is finite and y is ±Infinity.\r\n else if (!x.d) y = new Ctor(y.d || x.s === y.s ? x : NaN);\r\n\r\n return y;\r\n }\r\n\r\n // If signs differ...\r\n if (x.s != y.s) {\r\n y.s = -y.s;\r\n return x.minus(y);\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n\r\n // If either is zero...\r\n if (!xd[0] || !yd[0]) {\r\n\r\n // Return x if y is zero.\r\n // Return y if y is non-zero.\r\n if (!yd[0]) y = new Ctor(x);\r\n\r\n return external ? finalise(y, pr, rm) : y;\r\n }\r\n\r\n // x and y are finite, non-zero numbers with the same sign.\r\n\r\n // Calculate base 1e7 exponents.\r\n k = mathfloor(x.e / LOG_BASE);\r\n e = mathfloor(y.e / LOG_BASE);\r\n\r\n xd = xd.slice();\r\n i = k - e;\r\n\r\n // If base 1e7 exponents differ...\r\n if (i) {\r\n\r\n if (i < 0) {\r\n d = xd;\r\n i = -i;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = k;\r\n len = xd.length;\r\n }\r\n\r\n // Limit number of zeros prepended to max(ceil(pr / LOG_BASE), len) + 1.\r\n k = Math.ceil(pr / LOG_BASE);\r\n len = k > len ? k + 1 : len + 1;\r\n\r\n if (i > len) {\r\n i = len;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents. Note: Faster to use reverse then do unshifts.\r\n d.reverse();\r\n for (; i--;) d.push(0);\r\n d.reverse();\r\n }\r\n\r\n len = xd.length;\r\n i = yd.length;\r\n\r\n // If yd is longer than xd, swap xd and yd so xd points to the longer array.\r\n if (len - i < 0) {\r\n i = len;\r\n d = yd;\r\n yd = xd;\r\n xd = d;\r\n }\r\n\r\n // Only start adding at yd.length - 1 as the further digits of xd can be left as they are.\r\n for (carry = 0; i;) {\r\n carry = (xd[--i] = xd[i] + yd[i] + carry) / BASE | 0;\r\n xd[i] %= BASE;\r\n }\r\n\r\n if (carry) {\r\n xd.unshift(carry);\r\n ++e;\r\n }\r\n\r\n // Remove trailing zeros.\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n for (len = xd.length; xd[--len] == 0;) xd.pop();\r\n\r\n y.d = xd;\r\n y.e = getBase10Exponent(xd, e);\r\n\r\n return external ? finalise(y, pr, rm) : y;\r\n };\r\n\r\n\r\n /*\r\n * Return the number of significant digits of the value of this Decimal.\r\n *\r\n * [z] {boolean|number} Whether to count integer-part trailing zeros: true, false, 1 or 0.\r\n *\r\n */\r\n P.precision = P.sd = function (z) {\r\n var k,\r\n x = this;\r\n\r\n if (z !== void 0 && z !== !!z && z !== 1 && z !== 0) throw Error(invalidArgument + z);\r\n\r\n if (x.d) {\r\n k = getPrecision(x.d);\r\n if (z && x.e + 1 > k) k = x.e + 1;\r\n } else {\r\n k = NaN;\r\n }\r\n\r\n return k;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a whole number using\r\n * rounding mode `rounding`.\r\n *\r\n */\r\n P.round = function () {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n return finalise(new Ctor(x), x.e + 1, Ctor.rounding);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the sine of the value in radians of this Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-1, 1]\r\n *\r\n * sin(x) = x - x^3/3! + x^5/5! - ...\r\n *\r\n * sin(0) = 0\r\n * sin(-0) = -0\r\n * sin(Infinity) = NaN\r\n * sin(-Infinity) = NaN\r\n * sin(NaN) = NaN\r\n *\r\n */\r\n P.sine = P.sin = function () {\r\n var pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite()) return new Ctor(NaN);\r\n if (x.isZero()) return new Ctor(x);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + Math.max(x.e, x.sd()) + LOG_BASE;\r\n Ctor.rounding = 1;\r\n\r\n x = sine(Ctor, toLessThanHalfPi(Ctor, x));\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return finalise(quadrant > 2 ? x.neg() : x, pr, rm, true);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the square root of this Decimal, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * sqrt(-n) = N\r\n * sqrt(N) = N\r\n * sqrt(-I) = N\r\n * sqrt(I) = I\r\n * sqrt(0) = 0\r\n * sqrt(-0) = -0\r\n *\r\n */\r\n P.squareRoot = P.sqrt = function () {\r\n var m, n, sd, r, rep, t,\r\n x = this,\r\n d = x.d,\r\n e = x.e,\r\n s = x.s,\r\n Ctor = x.constructor;\r\n\r\n // Negative/NaN/Infinity/zero?\r\n if (s !== 1 || !d || !d[0]) {\r\n return new Ctor(!s || s < 0 && (!d || d[0]) ? NaN : d ? x : 1 / 0);\r\n }\r\n\r\n external = false;\r\n\r\n // Initial estimate.\r\n s = Math.sqrt(+x);\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n if (s == 0 || s == 1 / 0) {\r\n n = digitsToString(d);\r\n\r\n if ((n.length + e) % 2 == 0) n += '0';\r\n s = Math.sqrt(n);\r\n e = mathfloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n if (s == 1 / 0) {\r\n n = '5e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new Ctor(n);\r\n } else {\r\n r = new Ctor(s.toString());\r\n }\r\n\r\n sd = (e = Ctor.precision) + 3;\r\n\r\n // Newton-Raphson iteration.\r\n for (;;) {\r\n t = r;\r\n r = t.plus(divide(x, t, sd + 2, 1)).times(0.5);\r\n\r\n // TODO? Replace with for-loop and checkRoundingDigits.\r\n if (digitsToString(t.d).slice(0, sd) === (n = digitsToString(r.d)).slice(0, sd)) {\r\n n = n.slice(sd - 3, sd + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits are 9999 or\r\n // 4999, i.e. approaching a rounding boundary, continue the iteration.\r\n if (n == '9999' || !rep && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the exact result as the\r\n // nines may infinitely repeat.\r\n if (!rep) {\r\n finalise(t, e + 1, 0);\r\n\r\n if (t.times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n }\r\n\r\n sd += 4;\r\n rep = 1;\r\n } else {\r\n\r\n // If the rounding digits are null, 0{0,4} or 50{0,3}, check for an exact result.\r\n // If not, then there are further digits and m will be truthy.\r\n if (!+n || !+n.slice(1) && n.charAt(0) == '5') {\r\n\r\n // Truncate to the first rounding digit.\r\n finalise(r, e + 1, 1);\r\n m = !r.times(r).eq(x);\r\n }\r\n\r\n break;\r\n }\r\n }\r\n }\r\n\r\n external = true;\r\n\r\n return finalise(r, e, Ctor.rounding, m);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the tangent of the value in radians of this Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-Infinity, Infinity]\r\n *\r\n * tan(0) = 0\r\n * tan(-0) = -0\r\n * tan(Infinity) = NaN\r\n * tan(-Infinity) = NaN\r\n * tan(NaN) = NaN\r\n *\r\n */\r\n P.tangent = P.tan = function () {\r\n var pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite()) return new Ctor(NaN);\r\n if (x.isZero()) return new Ctor(x);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + 10;\r\n Ctor.rounding = 1;\r\n\r\n x = x.sin();\r\n x.s = 1;\r\n x = divide(x, new Ctor(1).minus(x.times(x)).sqrt(), pr + 10, 0);\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return finalise(quadrant == 2 || quadrant == 4 ? x.neg() : x, pr, rm, true);\r\n };\r\n\r\n\r\n /*\r\n * n * 0 = 0\r\n * n * N = N\r\n * n * I = I\r\n * 0 * n = 0\r\n * 0 * 0 = 0\r\n * 0 * N = N\r\n * 0 * I = N\r\n * N * n = N\r\n * N * 0 = N\r\n * N * N = N\r\n * N * I = N\r\n * I * n = I\r\n * I * 0 = N\r\n * I * N = N\r\n * I * I = I\r\n *\r\n * Return a new Decimal whose value is this Decimal times `y`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n */\r\n P.times = P.mul = function (y) {\r\n var carry, e, i, k, r, rL, t, xdL, ydL,\r\n x = this,\r\n Ctor = x.constructor,\r\n xd = x.d,\r\n yd = (y = new Ctor(y)).d;\r\n\r\n y.s *= x.s;\r\n\r\n // If either is NaN, ±Infinity or ±0...\r\n if (!xd || !xd[0] || !yd || !yd[0]) {\r\n\r\n return new Ctor(!y.s || xd && !xd[0] && !yd || yd && !yd[0] && !xd\r\n\r\n // Return NaN if either is NaN.\r\n // Return NaN if x is ±0 and y is ±Infinity, or y is ±0 and x is ±Infinity.\r\n ? NaN\r\n\r\n // Return ±Infinity if either is ±Infinity.\r\n // Return ±0 if either is ±0.\r\n : !xd || !yd ? y.s / 0 : y.s * 0);\r\n }\r\n\r\n e = mathfloor(x.e / LOG_BASE) + mathfloor(y.e / LOG_BASE);\r\n xdL = xd.length;\r\n ydL = yd.length;\r\n\r\n // Ensure xd points to the longer array.\r\n if (xdL < ydL) {\r\n r = xd;\r\n xd = yd;\r\n yd = r;\r\n rL = xdL;\r\n xdL = ydL;\r\n ydL = rL;\r\n }\r\n\r\n // Initialise the result array with zeros.\r\n r = [];\r\n rL = xdL + ydL;\r\n for (i = rL; i--;) r.push(0);\r\n\r\n // Multiply!\r\n for (i = ydL; --i >= 0;) {\r\n carry = 0;\r\n for (k = xdL + i; k > i;) {\r\n t = r[k] + yd[i] * xd[k - i - 1] + carry;\r\n r[k--] = t % BASE | 0;\r\n carry = t / BASE | 0;\r\n }\r\n\r\n r[k] = (r[k] + carry) % BASE | 0;\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; !r[--rL];) r.pop();\r\n\r\n if (carry) ++e;\r\n else r.shift();\r\n\r\n y.d = r;\r\n y.e = getBase10Exponent(r, e);\r\n\r\n return external ? finalise(y, Ctor.precision, Ctor.rounding) : y;\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal in base 2, round to `sd` significant\r\n * digits using rounding mode `rm`.\r\n *\r\n * If the optional `sd` argument is present then return binary exponential notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toBinary = function (sd, rm) {\r\n return toStringBinary(this, 2, sd, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `dp`\r\n * decimal places using rounding mode `rm` or `rounding` if `rm` is omitted.\r\n *\r\n * If `dp` is omitted, return a new Decimal whose value is the value of this Decimal.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toDecimalPlaces = P.toDP = function (dp, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n x = new Ctor(x);\r\n if (dp === void 0) return x;\r\n\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n return finalise(x, dp + x.e + 1, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal in exponential notation rounded to\r\n * `dp` fixed decimal places using rounding mode `rounding`.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toExponential = function (dp, rm) {\r\n var str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) {\r\n str = finiteToString(x, true);\r\n } else {\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = finalise(new Ctor(x), dp + 1, rm);\r\n str = finiteToString(x, true, dp + 1);\r\n }\r\n\r\n return x.isNeg() && !x.isZero() ? '-' + str : str;\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal in normal (fixed-point) notation to\r\n * `dp` fixed decimal places and rounded using rounding mode `rm` or `rounding` if `rm` is\r\n * omitted.\r\n *\r\n * As with JavaScript numbers, (-0).toFixed(0) is '0', but e.g. (-0.00001).toFixed(0) is '-0'.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'.\r\n * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'.\r\n * (-0).toFixed(3) is '0.000'.\r\n * (-0.5).toFixed(0) is '-0'.\r\n *\r\n */\r\n P.toFixed = function (dp, rm) {\r\n var str, y,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) {\r\n str = finiteToString(x);\r\n } else {\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n y = finalise(new Ctor(x), dp + x.e + 1, rm);\r\n str = finiteToString(y, false, dp + y.e + 1);\r\n }\r\n\r\n // To determine whether to add the minus sign look at the value before it was rounded,\r\n // i.e. look at `x` rather than `y`.\r\n return x.isNeg() && !x.isZero() ? '-' + str : str;\r\n };\r\n\r\n\r\n /*\r\n * Return an array representing the value of this Decimal as a simple fraction with an integer\r\n * numerator and an integer denominator.\r\n *\r\n * The denominator will be a positive non-zero value less than or equal to the specified maximum\r\n * denominator. If a maximum denominator is not specified, the denominator will be the lowest\r\n * value necessary to represent the number exactly.\r\n *\r\n * [maxD] {number|string|Decimal} Maximum denominator. Integer >= 1 and < Infinity.\r\n *\r\n */\r\n P.toFraction = function (maxD) {\r\n var d, d0, d1, d2, e, k, n, n0, n1, pr, q, r,\r\n x = this,\r\n xd = x.d,\r\n Ctor = x.constructor;\r\n\r\n if (!xd) return new Ctor(x);\r\n\r\n n1 = d0 = new Ctor(1);\r\n d1 = n0 = new Ctor(0);\r\n\r\n d = new Ctor(d1);\r\n e = d.e = getPrecision(xd) - x.e - 1;\r\n k = e % LOG_BASE;\r\n d.d[0] = mathpow(10, k < 0 ? LOG_BASE + k : k);\r\n\r\n if (maxD == null) {\r\n\r\n // d is 10**e, the minimum max-denominator needed.\r\n maxD = e > 0 ? d : n1;\r\n } else {\r\n n = new Ctor(maxD);\r\n if (!n.isInt() || n.lt(n1)) throw Error(invalidArgument + n);\r\n maxD = n.gt(d) ? (e > 0 ? d : n1) : n;\r\n }\r\n\r\n external = false;\r\n n = new Ctor(digitsToString(xd));\r\n pr = Ctor.precision;\r\n Ctor.precision = e = xd.length * LOG_BASE * 2;\r\n\r\n for (;;) {\r\n q = divide(n, d, 0, 1, 1);\r\n d2 = d0.plus(q.times(d1));\r\n if (d2.cmp(maxD) == 1) break;\r\n d0 = d1;\r\n d1 = d2;\r\n d2 = n1;\r\n n1 = n0.plus(q.times(d2));\r\n n0 = d2;\r\n d2 = d;\r\n d = n.minus(q.times(d2));\r\n n = d2;\r\n }\r\n\r\n d2 = divide(maxD.minus(d0), d1, 0, 1, 1);\r\n n0 = n0.plus(d2.times(n1));\r\n d0 = d0.plus(d2.times(d1));\r\n n0.s = n1.s = x.s;\r\n\r\n // Determine which fraction is closer to x, n0/d0 or n1/d1?\r\n r = divide(n1, d1, e, 1).minus(x).abs().cmp(divide(n0, d0, e, 1).minus(x).abs()) < 1\r\n ? [n1, d1] : [n0, d0];\r\n\r\n Ctor.precision = pr;\r\n external = true;\r\n\r\n return r;\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal in base 16, round to `sd` significant\r\n * digits using rounding mode `rm`.\r\n *\r\n * If the optional `sd` argument is present then return binary exponential notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toHexadecimal = P.toHex = function (sd, rm) {\r\n return toStringBinary(this, 16, sd, rm);\r\n };\r\n\r\n\r\n /*\r\n * Returns a new Decimal whose value is the nearest multiple of `y` in the direction of rounding\r\n * mode `rm`, or `Decimal.rounding` if `rm` is omitted, to the value of this Decimal.\r\n *\r\n * The return value will always have the same sign as this Decimal, unless either this Decimal\r\n * or `y` is NaN, in which case the return value will be also be NaN.\r\n *\r\n * The return value is not affected by the value of `precision`.\r\n *\r\n * y {number|string|Decimal} The magnitude to round to a multiple of.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * 'toNearest() rounding mode not an integer: {rm}'\r\n * 'toNearest() rounding mode out of range: {rm}'\r\n *\r\n */\r\n P.toNearest = function (y, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n x = new Ctor(x);\r\n\r\n if (y == null) {\r\n\r\n // If x is not finite, return x.\r\n if (!x.d) return x;\r\n\r\n y = new Ctor(1);\r\n rm = Ctor.rounding;\r\n } else {\r\n y = new Ctor(y);\r\n if (rm === void 0) {\r\n rm = Ctor.rounding;\r\n } else {\r\n checkInt32(rm, 0, 8);\r\n }\r\n\r\n // If x is not finite, return x if y is not NaN, else NaN.\r\n if (!x.d) return y.s ? x : y;\r\n\r\n // If y is not finite, return Infinity with the sign of x if y is Infinity, else NaN.\r\n if (!y.d) {\r\n if (y.s) y.s = x.s;\r\n return y;\r\n }\r\n }\r\n\r\n // If y is not zero, calculate the nearest multiple of y to x.\r\n if (y.d[0]) {\r\n external = false;\r\n x = divide(x, y, 0, rm, 1).times(y);\r\n external = true;\r\n finalise(x);\r\n\r\n // If y is zero, return zero with the sign of x.\r\n } else {\r\n y.s = x.s;\r\n x = y;\r\n }\r\n\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return the value of this Decimal converted to a number primitive.\r\n * Zero keeps its sign.\r\n *\r\n */\r\n P.toNumber = function () {\r\n return +this;\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal in base 8, round to `sd` significant\r\n * digits using rounding mode `rm`.\r\n *\r\n * If the optional `sd` argument is present then return binary exponential notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toOctal = function (sd, rm) {\r\n return toStringBinary(this, 8, sd, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal raised to the power `y`, rounded\r\n * to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * ECMAScript compliant.\r\n *\r\n * pow(x, NaN) = NaN\r\n * pow(x, ±0) = 1\r\n\r\n * pow(NaN, non-zero) = NaN\r\n * pow(abs(x) > 1, +Infinity) = +Infinity\r\n * pow(abs(x) > 1, -Infinity) = +0\r\n * pow(abs(x) == 1, ±Infinity) = NaN\r\n * pow(abs(x) < 1, +Infinity) = +0\r\n * pow(abs(x) < 1, -Infinity) = +Infinity\r\n * pow(+Infinity, y > 0) = +Infinity\r\n * pow(+Infinity, y < 0) = +0\r\n * pow(-Infinity, odd integer > 0) = -Infinity\r\n * pow(-Infinity, even integer > 0) = +Infinity\r\n * pow(-Infinity, odd integer < 0) = -0\r\n * pow(-Infinity, even integer < 0) = +0\r\n * pow(+0, y > 0) = +0\r\n * pow(+0, y < 0) = +Infinity\r\n * pow(-0, odd integer > 0) = -0\r\n * pow(-0, even integer > 0) = +0\r\n * pow(-0, odd integer < 0) = -Infinity\r\n * pow(-0, even integer < 0) = +Infinity\r\n * pow(finite x < 0, finite non-integer) = NaN\r\n *\r\n * For non-integer or very large exponents pow(x, y) is calculated using\r\n *\r\n * x^y = exp(y*ln(x))\r\n *\r\n * Assuming the first 15 rounding digits are each equally likely to be any digit 0-9, the\r\n * probability of an incorrectly rounded result\r\n * P([49]9{14} | [50]0{14}) = 2 * 0.2 * 10^-14 = 4e-15 = 1/2.5e+14\r\n * i.e. 1 in 250,000,000,000,000\r\n *\r\n * If a result is incorrectly rounded the maximum error will be 1 ulp (unit in last place).\r\n *\r\n * y {number|string|Decimal} The power to which to raise this Decimal.\r\n *\r\n */\r\n P.toPower = P.pow = function (y) {\r\n var e, k, pr, r, rm, s,\r\n x = this,\r\n Ctor = x.constructor,\r\n yn = +(y = new Ctor(y));\r\n\r\n // Either ±Infinity, NaN or ±0?\r\n if (!x.d || !y.d || !x.d[0] || !y.d[0]) return new Ctor(mathpow(+x, yn));\r\n\r\n x = new Ctor(x);\r\n\r\n if (x.eq(1)) return x;\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n\r\n if (y.eq(1)) return finalise(x, pr, rm);\r\n\r\n // y exponent\r\n e = mathfloor(y.e / LOG_BASE);\r\n\r\n // If y is a small integer use the 'exponentiation by squaring' algorithm.\r\n if (e >= y.d.length - 1 && (k = yn < 0 ? -yn : yn) <= MAX_SAFE_INTEGER) {\r\n r = intPow(Ctor, x, k, pr);\r\n return y.s < 0 ? new Ctor(1).div(r) : finalise(r, pr, rm);\r\n }\r\n\r\n s = x.s;\r\n\r\n // if x is negative\r\n if (s < 0) {\r\n\r\n // if y is not an integer\r\n if (e < y.d.length - 1) return new Ctor(NaN);\r\n\r\n // Result is positive if x is negative and the last digit of integer y is even.\r\n if ((y.d[e] & 1) == 0) s = 1;\r\n\r\n // if x.eq(-1)\r\n if (x.e == 0 && x.d[0] == 1 && x.d.length == 1) {\r\n x.s = s;\r\n return x;\r\n }\r\n }\r\n\r\n // Estimate result exponent.\r\n // x^y = 10^e, where e = y * log10(x)\r\n // log10(x) = log10(x_significand) + x_exponent\r\n // log10(x_significand) = ln(x_significand) / ln(10)\r\n k = mathpow(+x, yn);\r\n e = k == 0 || !isFinite(k)\r\n ? mathfloor(yn * (Math.log('0.' + digitsToString(x.d)) / Math.LN10 + x.e + 1))\r\n : new Ctor(k + '').e;\r\n\r\n // Exponent estimate may be incorrect e.g. x: 0.999999999999999999, y: 2.29, e: 0, r.e: -1.\r\n\r\n // Overflow/underflow?\r\n if (e > Ctor.maxE + 1 || e < Ctor.minE - 1) return new Ctor(e > 0 ? s / 0 : 0);\r\n\r\n external = false;\r\n Ctor.rounding = x.s = 1;\r\n\r\n // Estimate the extra guard digits needed to ensure five correct rounding digits from\r\n // naturalLogarithm(x). Example of failure without these extra digits (precision: 10):\r\n // new Decimal(2.32456).pow('2087987436534566.46411')\r\n // should be 1.162377823e+764914905173815, but is 1.162355823e+764914905173815\r\n k = Math.min(12, (e + '').length);\r\n\r\n // r = x^y = exp(y*ln(x))\r\n r = naturalExponential(y.times(naturalLogarithm(x, pr + k)), pr);\r\n\r\n // r may be Infinity, e.g. (0.9999999999999999).pow(-1e+40)\r\n if (r.d) {\r\n\r\n // Truncate to the required precision plus five rounding digits.\r\n r = finalise(r, pr + 5, 1);\r\n\r\n // If the rounding digits are [49]9999 or [50]0000 increase the precision by 10 and recalculate\r\n // the result.\r\n if (checkRoundingDigits(r.d, pr, rm)) {\r\n e = pr + 10;\r\n\r\n // Truncate to the increased precision plus five rounding digits.\r\n r = finalise(naturalExponential(y.times(naturalLogarithm(x, e + k)), e), e + 5, 1);\r\n\r\n // Check for 14 nines from the 2nd rounding digit (the first rounding digit may be 4 or 9).\r\n if (+digitsToString(r.d).slice(pr + 1, pr + 15) + 1 == 1e14) {\r\n r = finalise(r, pr + 1, 0);\r\n }\r\n }\r\n }\r\n\r\n r.s = s;\r\n external = true;\r\n Ctor.rounding = rm;\r\n\r\n return finalise(r, pr, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal rounded to `sd` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * Return exponential notation if `sd` is less than the number of digits necessary to represent\r\n * the integer part of the value in normal notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toPrecision = function (sd, rm) {\r\n var str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos);\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = finalise(new Ctor(x), sd, rm);\r\n str = finiteToString(x, sd <= x.e || x.e <= Ctor.toExpNeg, sd);\r\n }\r\n\r\n return x.isNeg() && !x.isZero() ? '-' + str : str;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `sd`\r\n * significant digits using rounding mode `rm`, or to `precision` and `rounding` respectively if\r\n * omitted.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * 'toSD() digits out of range: {sd}'\r\n * 'toSD() digits not an integer: {sd}'\r\n * 'toSD() rounding mode not an integer: {rm}'\r\n * 'toSD() rounding mode out of range: {rm}'\r\n *\r\n */\r\n P.toSignificantDigits = P.toSD = function (sd, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n sd = Ctor.precision;\r\n rm = Ctor.rounding;\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n }\r\n\r\n return finalise(new Ctor(x), sd, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal.\r\n *\r\n * Return exponential notation if this Decimal has a positive exponent equal to or greater than\r\n * `toExpPos`, or a negative exponent equal to or less than `toExpNeg`.\r\n *\r\n */\r\n P.toString = function () {\r\n var x = this,\r\n Ctor = x.constructor,\r\n str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos);\r\n\r\n return x.isNeg() && !x.isZero() ? '-' + str : str;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal truncated to a whole number.\r\n *\r\n */\r\n P.truncated = P.trunc = function () {\r\n return finalise(new this.constructor(this), this.e + 1, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal.\r\n * Unlike `toString`, negative zero will include the minus sign.\r\n *\r\n */\r\n P.valueOf = P.toJSON = function () {\r\n var x = this,\r\n Ctor = x.constructor,\r\n str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos);\r\n\r\n return x.isNeg() ? '-' + str : str;\r\n };\r\n\r\n\r\n // Helper functions for Decimal.prototype (P) and/or Decimal methods, and their callers.\r\n\r\n\r\n /*\r\n * digitsToString P.cubeRoot, P.logarithm, P.squareRoot, P.toFraction, P.toPower,\r\n * finiteToString, naturalExponential, naturalLogarithm\r\n * checkInt32 P.toDecimalPlaces, P.toExponential, P.toFixed, P.toNearest,\r\n * P.toPrecision, P.toSignificantDigits, toStringBinary, random\r\n * checkRoundingDigits P.logarithm, P.toPower, naturalExponential, naturalLogarithm\r\n * convertBase toStringBinary, parseOther\r\n * cos P.cos\r\n * divide P.atanh, P.cubeRoot, P.dividedBy, P.dividedToIntegerBy,\r\n * P.logarithm, P.modulo, P.squareRoot, P.tan, P.tanh, P.toFraction,\r\n * P.toNearest, toStringBinary, naturalExponential, naturalLogarithm,\r\n * taylorSeries, atan2, parseOther\r\n * finalise P.absoluteValue, P.atan, P.atanh, P.ceil, P.cos, P.cosh,\r\n * P.cubeRoot, P.dividedToIntegerBy, P.floor, P.logarithm, P.minus,\r\n * P.modulo, P.negated, P.plus, P.round, P.sin, P.sinh, P.squareRoot,\r\n * P.tan, P.times, P.toDecimalPlaces, P.toExponential, P.toFixed,\r\n * P.toNearest, P.toPower, P.toPrecision, P.toSignificantDigits,\r\n * P.truncated, divide, getLn10, getPi, naturalExponential,\r\n * naturalLogarithm, ceil, floor, round, trunc\r\n * finiteToString P.toExponential, P.toFixed, P.toPrecision, P.toString, P.valueOf,\r\n * toStringBinary\r\n * getBase10Exponent P.minus, P.plus, P.times, parseOther\r\n * getLn10 P.logarithm, naturalLogarithm\r\n * getPi P.acos, P.asin, P.atan, toLessThanHalfPi, atan2\r\n * getPrecision P.precision, P.toFraction\r\n * getZeroString digitsToString, finiteToString\r\n * intPow P.toPower, parseOther\r\n * isOdd toLessThanHalfPi\r\n * maxOrMin max, min\r\n * naturalExponential P.naturalExponential, P.toPower\r\n * naturalLogarithm P.acosh, P.asinh, P.atanh, P.logarithm, P.naturalLogarithm,\r\n * P.toPower, naturalExponential\r\n * nonFiniteToString finiteToString, toStringBinary\r\n * parseDecimal Decimal\r\n * parseOther Decimal\r\n * sin P.sin\r\n * taylorSeries P.cosh, P.sinh, cos, sin\r\n * toLessThanHalfPi P.cos, P.sin\r\n * toStringBinary P.toBinary, P.toHexadecimal, P.toOctal\r\n * truncate intPow\r\n *\r\n * Throws: P.logarithm, P.precision, P.toFraction, checkInt32, getLn10, getPi,\r\n * naturalLogarithm, config, parseOther, random, Decimal\r\n */\r\n\r\n\r\n function digitsToString(d) {\r\n var i, k, ws,\r\n indexOfLastWord = d.length - 1,\r\n str = '',\r\n w = d[0];\r\n\r\n if (indexOfLastWord > 0) {\r\n str += w;\r\n for (i = 1; i < indexOfLastWord; i++) {\r\n ws = d[i] + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n str += ws;\r\n }\r\n\r\n w = d[i];\r\n ws = w + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n } else if (w === 0) {\r\n return '0';\r\n }\r\n\r\n // Remove trailing zeros of last w.\r\n for (; w % 10 === 0;) w /= 10;\r\n\r\n return str + w;\r\n }\r\n\r\n\r\n function checkInt32(i, min, max) {\r\n if (i !== ~~i || i < min || i > max) {\r\n throw Error(invalidArgument + i);\r\n }\r\n }\r\n\r\n\r\n /*\r\n * Check 5 rounding digits if `repeating` is null, 4 otherwise.\r\n * `repeating == null` if caller is `log` or `pow`,\r\n * `repeating != null` if caller is `naturalLogarithm` or `naturalExponential`.\r\n */\r\n function checkRoundingDigits(d, i, rm, repeating) {\r\n var di, k, r, rd;\r\n\r\n // Get the length of the first word of the array d.\r\n for (k = d[0]; k >= 10; k /= 10) --i;\r\n\r\n // Is the rounding digit in the first word of d?\r\n if (--i < 0) {\r\n i += LOG_BASE;\r\n di = 0;\r\n } else {\r\n di = Math.ceil((i + 1) / LOG_BASE);\r\n i %= LOG_BASE;\r\n }\r\n\r\n // i is the index (0 - 6) of the rounding digit.\r\n // E.g. if within the word 3487563 the first rounding digit is 5,\r\n // then i = 4, k = 1000, rd = 3487563 % 1000 = 563\r\n k = mathpow(10, LOG_BASE - i);\r\n rd = d[di] % k | 0;\r\n\r\n if (repeating == null) {\r\n if (i < 3) {\r\n if (i == 0) rd = rd / 100 | 0;\r\n else if (i == 1) rd = rd / 10 | 0;\r\n r = rm < 4 && rd == 99999 || rm > 3 && rd == 49999 || rd == 50000 || rd == 0;\r\n } else {\r\n r = (rm < 4 && rd + 1 == k || rm > 3 && rd + 1 == k / 2) &&\r\n (d[di + 1] / k / 100 | 0) == mathpow(10, i - 2) - 1 ||\r\n (rd == k / 2 || rd == 0) && (d[di + 1] / k / 100 | 0) == 0;\r\n }\r\n } else {\r\n if (i < 4) {\r\n if (i == 0) rd = rd / 1000 | 0;\r\n else if (i == 1) rd = rd / 100 | 0;\r\n else if (i == 2) rd = rd / 10 | 0;\r\n r = (repeating || rm < 4) && rd == 9999 || !repeating && rm > 3 && rd == 4999;\r\n } else {\r\n r = ((repeating || rm < 4) && rd + 1 == k ||\r\n (!repeating && rm > 3) && rd + 1 == k / 2) &&\r\n (d[di + 1] / k / 1000 | 0) == mathpow(10, i - 3) - 1;\r\n }\r\n }\r\n\r\n return r;\r\n }\r\n\r\n\r\n // Convert string of `baseIn` to an array of numbers of `baseOut`.\r\n // Eg. convertBase('255', 10, 16) returns [15, 15].\r\n // Eg. convertBase('ff', 16, 10) returns [2, 5, 5].\r\n function convertBase(str, baseIn, baseOut) {\r\n var j,\r\n arr = [0],\r\n arrL,\r\n i = 0,\r\n strL = str.length;\r\n\r\n for (; i < strL;) {\r\n for (arrL = arr.length; arrL--;) arr[arrL] *= baseIn;\r\n arr[0] += NUMERALS.indexOf(str.charAt(i++));\r\n for (j = 0; j < arr.length; j++) {\r\n if (arr[j] > baseOut - 1) {\r\n if (arr[j + 1] === void 0) arr[j + 1] = 0;\r\n arr[j + 1] += arr[j] / baseOut | 0;\r\n arr[j] %= baseOut;\r\n }\r\n }\r\n }\r\n\r\n return arr.reverse();\r\n }\r\n\r\n\r\n /*\r\n * cos(x) = 1 - x^2/2! + x^4/4! - ...\r\n * |x| < pi/2\r\n *\r\n */\r\n function cosine(Ctor, x) {\r\n var k, len, y;\r\n\r\n if (x.isZero()) return x;\r\n\r\n // Argument reduction: cos(4x) = 8*(cos^4(x) - cos^2(x)) + 1\r\n // i.e. cos(x) = 8*(cos^4(x/4) - cos^2(x/4)) + 1\r\n\r\n // Estimate the optimum number of times to use the argument reduction.\r\n len = x.d.length;\r\n if (len < 32) {\r\n k = Math.ceil(len / 3);\r\n y = (1 / tinyPow(4, k)).toString();\r\n } else {\r\n k = 16;\r\n y = '2.3283064365386962890625e-10';\r\n }\r\n\r\n Ctor.precision += k;\r\n\r\n x = taylorSeries(Ctor, 1, x.times(y), new Ctor(1));\r\n\r\n // Reverse argument reduction\r\n for (var i = k; i--;) {\r\n var cos2x = x.times(x);\r\n x = cos2x.times(cos2x).minus(cos2x).times(8).plus(1);\r\n }\r\n\r\n Ctor.precision -= k;\r\n\r\n return x;\r\n }\r\n\r\n\r\n /*\r\n * Perform division in the specified base.\r\n */\r\n var divide = (function () {\r\n\r\n // Assumes non-zero x and k, and hence non-zero result.\r\n function multiplyInteger(x, k, base) {\r\n var temp,\r\n carry = 0,\r\n i = x.length;\r\n\r\n for (x = x.slice(); i--;) {\r\n temp = x[i] * k + carry;\r\n x[i] = temp % base | 0;\r\n carry = temp / base | 0;\r\n }\r\n\r\n if (carry) x.unshift(carry);\r\n\r\n return x;\r\n }\r\n\r\n function compare(a, b, aL, bL) {\r\n var i, r;\r\n\r\n if (aL != bL) {\r\n r = aL > bL ? 1 : -1;\r\n } else {\r\n for (i = r = 0; i < aL; i++) {\r\n if (a[i] != b[i]) {\r\n r = a[i] > b[i] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return r;\r\n }\r\n\r\n function subtract(a, b, aL, base) {\r\n var i = 0;\r\n\r\n // Subtract b from a.\r\n for (; aL--;) {\r\n a[aL] -= i;\r\n i = a[aL] < b[aL] ? 1 : 0;\r\n a[aL] = i * base + a[aL] - b[aL];\r\n }\r\n\r\n // Remove leading zeros.\r\n for (; !a[0] && a.length > 1;) a.shift();\r\n }\r\n\r\n return function (x, y, pr, rm, dp, base) {\r\n var cmp, e, i, k, logBase, more, prod, prodL, q, qd, rem, remL, rem0, sd, t, xi, xL, yd0,\r\n yL, yz,\r\n Ctor = x.constructor,\r\n sign = x.s == y.s ? 1 : -1,\r\n xd = x.d,\r\n yd = y.d;\r\n\r\n // Either NaN, Infinity or 0?\r\n if (!xd || !xd[0] || !yd || !yd[0]) {\r\n\r\n return new Ctor(// Return NaN if either NaN, or both Infinity or 0.\r\n !x.s || !y.s || (xd ? yd && xd[0] == yd[0] : !yd) ? NaN :\r\n\r\n // Return ±0 if x is 0 or y is ±Infinity, or return ±Infinity as y is 0.\r\n xd && xd[0] == 0 || !yd ? sign * 0 : sign / 0);\r\n }\r\n\r\n if (base) {\r\n logBase = 1;\r\n e = x.e - y.e;\r\n } else {\r\n base = BASE;\r\n logBase = LOG_BASE;\r\n e = mathfloor(x.e / logBase) - mathfloor(y.e / logBase);\r\n }\r\n\r\n yL = yd.length;\r\n xL = xd.length;\r\n q = new Ctor(sign);\r\n qd = q.d = [];\r\n\r\n // Result exponent may be one less than e.\r\n // The digit array of a Decimal from toStringBinary may have trailing zeros.\r\n for (i = 0; yd[i] == (xd[i] || 0); i++);\r\n\r\n if (yd[i] > (xd[i] || 0)) e--;\r\n\r\n if (pr == null) {\r\n sd = pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n } else if (dp) {\r\n sd = pr + (x.e - y.e) + 1;\r\n } else {\r\n sd = pr;\r\n }\r\n\r\n if (sd < 0) {\r\n qd.push(1);\r\n more = true;\r\n } else {\r\n\r\n // Convert precision in number of base 10 digits to base 1e7 digits.\r\n sd = sd / logBase + 2 | 0;\r\n i = 0;\r\n\r\n // divisor < 1e7\r\n if (yL == 1) {\r\n k = 0;\r\n yd = yd[0];\r\n sd++;\r\n\r\n // k is the carry.\r\n for (; (i < xL || k) && sd--; i++) {\r\n t = k * base + (xd[i] || 0);\r\n qd[i] = t / yd | 0;\r\n k = t % yd | 0;\r\n }\r\n\r\n more = k || i < xL;\r\n\r\n // divisor >= 1e7\r\n } else {\r\n\r\n // Normalise xd and yd so highest order digit of yd is >= base/2\r\n k = base / (yd[0] + 1) | 0;\r\n\r\n if (k > 1) {\r\n yd = multiplyInteger(yd, k, base);\r\n xd = multiplyInteger(xd, k, base);\r\n yL = yd.length;\r\n xL = xd.length;\r\n }\r\n\r\n xi = yL;\r\n rem = xd.slice(0, yL);\r\n remL = rem.length;\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; remL < yL;) rem[remL++] = 0;\r\n\r\n yz = yd.slice();\r\n yz.unshift(0);\r\n yd0 = yd[0];\r\n\r\n if (yd[1] >= base / 2) ++yd0;\r\n\r\n do {\r\n k = 0;\r\n\r\n // Compare divisor and remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < remainder.\r\n if (cmp < 0) {\r\n\r\n // Calculate trial digit, k.\r\n rem0 = rem[0];\r\n if (yL != remL) rem0 = rem0 * base + (rem[1] || 0);\r\n\r\n // k will be how many times the divisor goes into the current remainder.\r\n k = rem0 / yd0 | 0;\r\n\r\n // Algorithm:\r\n // 1. product = divisor * trial digit (k)\r\n // 2. if product > remainder: product -= divisor, k--\r\n // 3. remainder -= product\r\n // 4. if product was < remainder at 2:\r\n // 5. compare new remainder and divisor\r\n // 6. If remainder > divisor: remainder -= divisor, k++\r\n\r\n if (k > 1) {\r\n if (k >= base) k = base - 1;\r\n\r\n // product = divisor * trial digit.\r\n prod = multiplyInteger(yd, k, base);\r\n prodL = prod.length;\r\n remL = rem.length;\r\n\r\n // Compare product and remainder.\r\n cmp = compare(prod, rem, prodL, remL);\r\n\r\n // product > remainder.\r\n if (cmp == 1) {\r\n k--;\r\n\r\n // Subtract divisor from product.\r\n subtract(prod, yL < prodL ? yz : yd, prodL, base);\r\n }\r\n } else {\r\n\r\n // cmp is -1.\r\n // If k is 0, there is no need to compare yd and rem again below, so change cmp to 1\r\n // to avoid it. If k is 1 there is a need to compare yd and rem again below.\r\n if (k == 0) cmp = k = 1;\r\n prod = yd.slice();\r\n }\r\n\r\n prodL = prod.length;\r\n if (prodL < remL) prod.unshift(0);\r\n\r\n // Subtract product from remainder.\r\n subtract(rem, prod, remL, base);\r\n\r\n // If product was < previous remainder.\r\n if (cmp == -1) {\r\n remL = rem.length;\r\n\r\n // Compare divisor and new remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < new remainder, subtract divisor from remainder.\r\n if (cmp < 1) {\r\n k++;\r\n\r\n // Subtract divisor from remainder.\r\n subtract(rem, yL < remL ? yz : yd, remL, base);\r\n }\r\n }\r\n\r\n remL = rem.length;\r\n } else if (cmp === 0) {\r\n k++;\r\n rem = [0];\r\n } // if cmp === 1, k will be 0\r\n\r\n // Add the next digit, k, to the result array.\r\n qd[i++] = k;\r\n\r\n // Update the remainder.\r\n if (cmp && rem[0]) {\r\n rem[remL++] = xd[xi] || 0;\r\n } else {\r\n rem = [xd[xi]];\r\n remL = 1;\r\n }\r\n\r\n } while ((xi++ < xL || rem[0] !== void 0) && sd--);\r\n\r\n more = rem[0] !== void 0;\r\n }\r\n\r\n // Leading zero?\r\n if (!qd[0]) qd.shift();\r\n }\r\n\r\n // logBase is 1 when divide is being used for base conversion.\r\n if (logBase == 1) {\r\n q.e = e;\r\n inexact = more;\r\n } else {\r\n\r\n // To calculate q.e, first get the number of digits of qd[0].\r\n for (i = 1, k = qd[0]; k >= 10; k /= 10) i++;\r\n q.e = i + e * logBase - 1;\r\n\r\n finalise(q, dp ? pr + q.e + 1 : pr, rm, more);\r\n }\r\n\r\n return q;\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Round `x` to `sd` significant digits using rounding mode `rm`.\r\n * Check for over/under-flow.\r\n */\r\n function finalise(x, sd, rm, isTruncated) {\r\n var digits, i, j, k, rd, roundUp, w, xd, xdi,\r\n Ctor = x.constructor;\r\n\r\n // Don't round if sd is null or undefined.\r\n out: if (sd != null) {\r\n xd = x.d;\r\n\r\n // Infinity/NaN.\r\n if (!xd) return x;\r\n\r\n // rd: the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n // w: the word of xd containing rd, a base 1e7 number.\r\n // xdi: the index of w within xd.\r\n // digits: the number of digits of w.\r\n // i: what would be the index of rd within w if all the numbers were 7 digits long (i.e. if\r\n // they had leading zeros)\r\n // j: if > 0, the actual index of rd within w (if < 0, rd is a leading zero).\r\n\r\n // Get the length of the first word of the digits array xd.\r\n for (digits = 1, k = xd[0]; k >= 10; k /= 10) digits++;\r\n i = sd - digits;\r\n\r\n // Is the rounding digit in the first word of xd?\r\n if (i < 0) {\r\n i += LOG_BASE;\r\n j = sd;\r\n w = xd[xdi = 0];\r\n\r\n // Get the rounding digit at index j of w.\r\n rd = w / mathpow(10, digits - j - 1) % 10 | 0;\r\n } else {\r\n xdi = Math.ceil((i + 1) / LOG_BASE);\r\n k = xd.length;\r\n if (xdi >= k) {\r\n if (isTruncated) {\r\n\r\n // Needed by `naturalExponential`, `naturalLogarithm` and `squareRoot`.\r\n for (; k++ <= xdi;) xd.push(0);\r\n w = rd = 0;\r\n digits = 1;\r\n i %= LOG_BASE;\r\n j = i - LOG_BASE + 1;\r\n } else {\r\n break out;\r\n }\r\n } else {\r\n w = k = xd[xdi];\r\n\r\n // Get the number of digits of w.\r\n for (digits = 1; k >= 10; k /= 10) digits++;\r\n\r\n // Get the index of rd within w.\r\n i %= LOG_BASE;\r\n\r\n // Get the index of rd within w, adjusted for leading zeros.\r\n // The number of leading zeros of w is given by LOG_BASE - digits.\r\n j = i - LOG_BASE + digits;\r\n\r\n // Get the rounding digit at index j of w.\r\n rd = j < 0 ? 0 : w / mathpow(10, digits - j - 1) % 10 | 0;\r\n }\r\n }\r\n\r\n // Are there any non-zero digits after the rounding digit?\r\n isTruncated = isTruncated || sd < 0 ||\r\n xd[xdi + 1] !== void 0 || (j < 0 ? w : w % mathpow(10, digits - j - 1));\r\n\r\n // The expression `w % mathpow(10, digits - j - 1)` returns all the digits of w to the right\r\n // of the digit at (left-to-right) index j, e.g. if w is 908714 and j is 2, the expression\r\n // will give 714.\r\n\r\n roundUp = rm < 4\r\n ? (rd || isTruncated) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : rd > 5 || rd == 5 && (rm == 4 || isTruncated || rm == 6 &&\r\n\r\n // Check whether the digit to the left of the rounding digit is odd.\r\n ((i > 0 ? j > 0 ? w / mathpow(10, digits - j) : 0 : xd[xdi - 1]) % 10) & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n\r\n if (sd < 1 || !xd[0]) {\r\n xd.length = 0;\r\n if (roundUp) {\r\n\r\n // Convert sd to decimal places.\r\n sd -= x.e + 1;\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n xd[0] = mathpow(10, (LOG_BASE - sd % LOG_BASE) % LOG_BASE);\r\n x.e = -sd || 0;\r\n } else {\r\n\r\n // Zero.\r\n xd[0] = x.e = 0;\r\n }\r\n\r\n return x;\r\n }\r\n\r\n // Remove excess digits.\r\n if (i == 0) {\r\n xd.length = xdi;\r\n k = 1;\r\n xdi--;\r\n } else {\r\n xd.length = xdi + 1;\r\n k = mathpow(10, LOG_BASE - i);\r\n\r\n // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n // j > 0 means i > number of leading zeros of w.\r\n xd[xdi] = j > 0 ? (w / mathpow(10, digits - j) % mathpow(10, j) | 0) * k : 0;\r\n }\r\n\r\n if (roundUp) {\r\n for (;;) {\r\n\r\n // Is the digit to be rounded up in the first word of xd?\r\n if (xdi == 0) {\r\n\r\n // i will be the length of xd[0] before k is added.\r\n for (i = 1, j = xd[0]; j >= 10; j /= 10) i++;\r\n j = xd[0] += k;\r\n for (k = 1; j >= 10; j /= 10) k++;\r\n\r\n // if i != k the length has increased.\r\n if (i != k) {\r\n x.e++;\r\n if (xd[0] == BASE) xd[0] = 1;\r\n }\r\n\r\n break;\r\n } else {\r\n xd[xdi] += k;\r\n if (xd[xdi] != BASE) break;\r\n xd[xdi--] = 0;\r\n k = 1;\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (i = xd.length; xd[--i] === 0;) xd.pop();\r\n }\r\n\r\n if (external) {\r\n\r\n // Overflow?\r\n if (x.e > Ctor.maxE) {\r\n\r\n // Infinity.\r\n x.d = null;\r\n x.e = NaN;\r\n\r\n // Underflow?\r\n } else if (x.e < Ctor.minE) {\r\n\r\n // Zero.\r\n x.e = 0;\r\n x.d = [0];\r\n // Ctor.underflow = true;\r\n } // else Ctor.underflow = false;\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n function finiteToString(x, isExp, sd) {\r\n if (!x.isFinite()) return nonFiniteToString(x);\r\n var k,\r\n e = x.e,\r\n str = digitsToString(x.d),\r\n len = str.length;\r\n\r\n if (isExp) {\r\n if (sd && (k = sd - len) > 0) {\r\n str = str.charAt(0) + '.' + str.slice(1) + getZeroString(k);\r\n } else if (len > 1) {\r\n str = str.charAt(0) + '.' + str.slice(1);\r\n }\r\n\r\n str = str + (x.e < 0 ? 'e' : 'e+') + x.e;\r\n } else if (e < 0) {\r\n str = '0.' + getZeroString(-e - 1) + str;\r\n if (sd && (k = sd - len) > 0) str += getZeroString(k);\r\n } else if (e >= len) {\r\n str += getZeroString(e + 1 - len);\r\n if (sd && (k = sd - e - 1) > 0) str = str + '.' + getZeroString(k);\r\n } else {\r\n if ((k = e + 1) < len) str = str.slice(0, k) + '.' + str.slice(k);\r\n if (sd && (k = sd - len) > 0) {\r\n if (e + 1 === len) str += '.';\r\n str += getZeroString(k);\r\n }\r\n }\r\n\r\n return str;\r\n }\r\n\r\n\r\n // Calculate the base 10 exponent from the base 1e7 exponent.\r\n function getBase10Exponent(digits, e) {\r\n var w = digits[0];\r\n\r\n // Add the number of digits of the first word of the digits array.\r\n for ( e *= LOG_BASE; w >= 10; w /= 10) e++;\r\n return e;\r\n }\r\n\r\n\r\n function getLn10(Ctor, sd, pr) {\r\n if (sd > LN10_PRECISION) {\r\n\r\n // Reset global state in case the exception is caught.\r\n external = true;\r\n if (pr) Ctor.precision = pr;\r\n throw Error(precisionLimitExceeded);\r\n }\r\n return finalise(new Ctor(LN10), sd, 1, true);\r\n }\r\n\r\n\r\n function getPi(Ctor, sd, rm) {\r\n if (sd > PI_PRECISION) throw Error(precisionLimitExceeded);\r\n return finalise(new Ctor(PI), sd, rm, true);\r\n }\r\n\r\n\r\n function getPrecision(digits) {\r\n var w = digits.length - 1,\r\n len = w * LOG_BASE + 1;\r\n\r\n w = digits[w];\r\n\r\n // If non-zero...\r\n if (w) {\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n for (; w % 10 == 0; w /= 10) len--;\r\n\r\n // Add the number of digits of the first word.\r\n for (w = digits[0]; w >= 10; w /= 10) len++;\r\n }\r\n\r\n return len;\r\n }\r\n\r\n\r\n function getZeroString(k) {\r\n var zs = '';\r\n for (; k--;) zs += '0';\r\n return zs;\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of Decimal `x` to the power `n`, where `n` is an\r\n * integer of type number.\r\n *\r\n * Implements 'exponentiation by squaring'. Called by `pow` and `parseOther`.\r\n *\r\n */\r\n function intPow(Ctor, x, n, pr) {\r\n var isTruncated,\r\n r = new Ctor(1),\r\n\r\n // Max n of 9007199254740991 takes 53 loop iterations.\r\n // Maximum digits array length; leaves [28, 34] guard digits.\r\n k = Math.ceil(pr / LOG_BASE + 4);\r\n\r\n external = false;\r\n\r\n for (;;) {\r\n if (n % 2) {\r\n r = r.times(x);\r\n if (truncate(r.d, k)) isTruncated = true;\r\n }\r\n\r\n n = mathfloor(n / 2);\r\n if (n === 0) {\r\n\r\n // To ensure correct rounding when r.d is truncated, increment the last word if it is zero.\r\n n = r.d.length - 1;\r\n if (isTruncated && r.d[n] === 0) ++r.d[n];\r\n break;\r\n }\r\n\r\n x = x.times(x);\r\n truncate(x.d, k);\r\n }\r\n\r\n external = true;\r\n\r\n return r;\r\n }\r\n\r\n\r\n function isOdd(n) {\r\n return n.d[n.d.length - 1] & 1;\r\n }\r\n\r\n\r\n /*\r\n * Handle `max` and `min`. `ltgt` is 'lt' or 'gt'.\r\n */\r\n function maxOrMin(Ctor, args, ltgt) {\r\n var y,\r\n x = new Ctor(args[0]),\r\n i = 0;\r\n\r\n for (; ++i < args.length;) {\r\n y = new Ctor(args[i]);\r\n if (!y.s) {\r\n x = y;\r\n break;\r\n } else if (x[ltgt](y)) {\r\n x = y;\r\n }\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural exponential of `x` rounded to `sd` significant\r\n * digits.\r\n *\r\n * Taylor/Maclaurin series.\r\n *\r\n * exp(x) = x^0/0! + x^1/1! + x^2/2! + x^3/3! + ...\r\n *\r\n * Argument reduction:\r\n * Repeat x = x / 32, k += 5, until |x| < 0.1\r\n * exp(x) = exp(x / 2^k)^(2^k)\r\n *\r\n * Previously, the argument was initially reduced by\r\n * exp(x) = exp(r) * 10^k where r = x - k * ln10, k = floor(x / ln10)\r\n * to first put r in the range [0, ln10], before dividing by 32 until |x| < 0.1, but this was\r\n * found to be slower than just dividing repeatedly by 32 as above.\r\n *\r\n * Max integer argument: exp('20723265836946413') = 6.3e+9000000000000000\r\n * Min integer argument: exp('-20723265836946411') = 1.2e-9000000000000000\r\n * (Math object integer min/max: Math.exp(709) = 8.2e+307, Math.exp(-745) = 5e-324)\r\n *\r\n * exp(Infinity) = Infinity\r\n * exp(-Infinity) = 0\r\n * exp(NaN) = NaN\r\n * exp(±0) = 1\r\n *\r\n * exp(x) is non-terminating for any finite, non-zero x.\r\n *\r\n * The result will always be correctly rounded.\r\n *\r\n */\r\n function naturalExponential(x, sd) {\r\n var denominator, guard, j, pow, sum, t, wpr,\r\n rep = 0,\r\n i = 0,\r\n k = 0,\r\n Ctor = x.constructor,\r\n rm = Ctor.rounding,\r\n pr = Ctor.precision;\r\n\r\n // 0/NaN/Infinity?\r\n if (!x.d || !x.d[0] || x.e > 17) {\r\n\r\n return new Ctor(x.d\r\n ? !x.d[0] ? 1 : x.s < 0 ? 0 : 1 / 0\r\n : x.s ? x.s < 0 ? 0 : x : 0 / 0);\r\n }\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n t = new Ctor(0.03125);\r\n\r\n // while abs(x) >= 0.1\r\n while (x.e > -2) {\r\n\r\n // x = x / 2^5\r\n x = x.times(t);\r\n k += 5;\r\n }\r\n\r\n // Use 2 * log10(2^k) + 5 (empirically derived) to estimate the increase in precision\r\n // necessary to ensure the first 4 rounding digits are correct.\r\n guard = Math.log(mathpow(2, k)) / Math.LN10 * 2 + 5 | 0;\r\n wpr += guard;\r\n denominator = pow = sum = new Ctor(1);\r\n Ctor.precision = wpr;\r\n\r\n for (;;) {\r\n pow = finalise(pow.times(x), wpr, 1);\r\n denominator = denominator.times(++i);\r\n t = sum.plus(divide(pow, denominator, wpr, 1));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n j = k;\r\n while (j--) sum = finalise(sum.times(sum), wpr, 1);\r\n\r\n // Check to see if the first 4 rounding digits are [49]999.\r\n // If so, repeat the summation with a higher precision, otherwise\r\n // e.g. with precision: 18, rounding: 1\r\n // exp(18.404272462595034083567793919843761) = 98372560.1229999999 (should be 98372560.123)\r\n // `wpr - guard` is the index of first rounding digit.\r\n if (sd == null) {\r\n\r\n if (rep < 3 && checkRoundingDigits(sum.d, wpr - guard, rm, rep)) {\r\n Ctor.precision = wpr += 10;\r\n denominator = pow = t = new Ctor(1);\r\n i = 0;\r\n rep++;\r\n } else {\r\n return finalise(sum, Ctor.precision = pr, rm, external = true);\r\n }\r\n } else {\r\n Ctor.precision = pr;\r\n return sum;\r\n }\r\n }\r\n\r\n sum = t;\r\n }\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural logarithm of `x` rounded to `sd` significant\r\n * digits.\r\n *\r\n * ln(-n) = NaN\r\n * ln(0) = -Infinity\r\n * ln(-0) = -Infinity\r\n * ln(1) = 0\r\n * ln(Infinity) = Infinity\r\n * ln(-Infinity) = NaN\r\n * ln(NaN) = NaN\r\n *\r\n * ln(n) (n != 1) is non-terminating.\r\n *\r\n */\r\n function naturalLogarithm(y, sd) {\r\n var c, c0, denominator, e, numerator, rep, sum, t, wpr, x1, x2,\r\n n = 1,\r\n guard = 10,\r\n x = y,\r\n xd = x.d,\r\n Ctor = x.constructor,\r\n rm = Ctor.rounding,\r\n pr = Ctor.precision;\r\n\r\n // Is x negative or Infinity, NaN, 0 or 1?\r\n if (x.s < 0 || !xd || !xd[0] || !x.e && xd[0] == 1 && xd.length == 1) {\r\n return new Ctor(xd && !xd[0] ? -1 / 0 : x.s != 1 ? NaN : xd ? 0 : x);\r\n }\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n Ctor.precision = wpr += guard;\r\n c = digitsToString(xd);\r\n c0 = c.charAt(0);\r\n\r\n if (Math.abs(e = x.e) < 1.5e15) {\r\n\r\n // Argument reduction.\r\n // The series converges faster the closer the argument is to 1, so using\r\n // ln(a^b) = b * ln(a), ln(a) = ln(a^b) / b\r\n // multiply the argument by itself until the leading digits of the significand are 7, 8, 9,\r\n // 10, 11, 12 or 13, recording the number of multiplications so the sum of the series can\r\n // later be divided by this number, then separate out the power of 10 using\r\n // ln(a*10^b) = ln(a) + b*ln(10).\r\n\r\n // max n is 21 (gives 0.9, 1.0 or 1.1) (9e15 / 21 = 4.2e14).\r\n //while (c0 < 9 && c0 != 1 || c0 == 1 && c.charAt(1) > 1) {\r\n // max n is 6 (gives 0.7 - 1.3)\r\n while (c0 < 7 && c0 != 1 || c0 == 1 && c.charAt(1) > 3) {\r\n x = x.times(y);\r\n c = digitsToString(x.d);\r\n c0 = c.charAt(0);\r\n n++;\r\n }\r\n\r\n e = x.e;\r\n\r\n if (c0 > 1) {\r\n x = new Ctor('0.' + c);\r\n e++;\r\n } else {\r\n x = new Ctor(c0 + '.' + c.slice(1));\r\n }\r\n } else {\r\n\r\n // The argument reduction method above may result in overflow if the argument y is a massive\r\n // number with exponent >= 1500000000000000 (9e15 / 6 = 1.5e15), so instead recall this\r\n // function using ln(x*10^e) = ln(x) + e*ln(10).\r\n t = getLn10(Ctor, wpr + 2, pr).times(e + '');\r\n x = naturalLogarithm(new Ctor(c0 + '.' + c.slice(1)), wpr - guard).plus(t);\r\n Ctor.precision = pr;\r\n\r\n return sd == null ? finalise(x, pr, rm, external = true) : x;\r\n }\r\n\r\n // x1 is x reduced to a value near 1.\r\n x1 = x;\r\n\r\n // Taylor series.\r\n // ln(y) = ln((1 + x)/(1 - x)) = 2(x + x^3/3 + x^5/5 + x^7/7 + ...)\r\n // where x = (y - 1)/(y + 1) (|x| < 1)\r\n sum = numerator = x = divide(x.minus(1), x.plus(1), wpr, 1);\r\n x2 = finalise(x.times(x), wpr, 1);\r\n denominator = 3;\r\n\r\n for (;;) {\r\n numerator = finalise(numerator.times(x2), wpr, 1);\r\n t = sum.plus(divide(numerator, new Ctor(denominator), wpr, 1));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n sum = sum.times(2);\r\n\r\n // Reverse the argument reduction. Check that e is not 0 because, besides preventing an\r\n // unnecessary calculation, -0 + 0 = +0 and to ensure correct rounding -0 needs to stay -0.\r\n if (e !== 0) sum = sum.plus(getLn10(Ctor, wpr + 2, pr).times(e + ''));\r\n sum = divide(sum, new Ctor(n), wpr, 1);\r\n\r\n // Is rm > 3 and the first 4 rounding digits 4999, or rm < 4 (or the summation has\r\n // been repeated previously) and the first 4 rounding digits 9999?\r\n // If so, restart the summation with a higher precision, otherwise\r\n // e.g. with precision: 12, rounding: 1\r\n // ln(135520028.6126091714265381533) = 18.7246299999 when it should be 18.72463.\r\n // `wpr - guard` is the index of first rounding digit.\r\n if (sd == null) {\r\n if (checkRoundingDigits(sum.d, wpr - guard, rm, rep)) {\r\n Ctor.precision = wpr += guard;\r\n t = numerator = x = divide(x1.minus(1), x1.plus(1), wpr, 1);\r\n x2 = finalise(x.times(x), wpr, 1);\r\n denominator = rep = 1;\r\n } else {\r\n return finalise(sum, Ctor.precision = pr, rm, external = true);\r\n }\r\n } else {\r\n Ctor.precision = pr;\r\n return sum;\r\n }\r\n }\r\n\r\n sum = t;\r\n denominator += 2;\r\n }\r\n }\r\n\r\n\r\n // ±Infinity, NaN.\r\n function nonFiniteToString(x) {\r\n // Unsigned.\r\n return String(x.s * x.s / 0);\r\n }\r\n\r\n\r\n /*\r\n * Parse the value of a new Decimal `x` from string `str`.\r\n */\r\n function parseDecimal(x, str) {\r\n var e, i, len;\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = str.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +str.slice(i + 1);\r\n str = str.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = str.length;\r\n }\r\n\r\n // Determine leading zeros.\r\n for (i = 0; str.charCodeAt(i) === 48; i++);\r\n\r\n // Determine trailing zeros.\r\n for (len = str.length; str.charCodeAt(len - 1) === 48; --len);\r\n str = str.slice(i, len);\r\n\r\n if (str) {\r\n len -= i;\r\n x.e = e = e - i - 1;\r\n x.d = [];\r\n\r\n // Transform base\r\n\r\n // e is the base 10 exponent.\r\n // i is where to slice str to get the first word of the digits array.\r\n i = (e + 1) % LOG_BASE;\r\n if (e < 0) i += LOG_BASE;\r\n\r\n if (i < len) {\r\n if (i) x.d.push(+str.slice(0, i));\r\n for (len -= LOG_BASE; i < len;) x.d.push(+str.slice(i, i += LOG_BASE));\r\n str = str.slice(i);\r\n i = LOG_BASE - str.length;\r\n } else {\r\n i -= len;\r\n }\r\n\r\n for (; i--;) str += '0';\r\n x.d.push(+str);\r\n\r\n if (external) {\r\n\r\n // Overflow?\r\n if (x.e > x.constructor.maxE) {\r\n\r\n // Infinity.\r\n x.d = null;\r\n x.e = NaN;\r\n\r\n // Underflow?\r\n } else if (x.e < x.constructor.minE) {\r\n\r\n // Zero.\r\n x.e = 0;\r\n x.d = [0];\r\n // x.constructor.underflow = true;\r\n } // else x.constructor.underflow = false;\r\n }\r\n } else {\r\n\r\n // Zero.\r\n x.e = 0;\r\n x.d = [0];\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n /*\r\n * Parse the value of a new Decimal `x` from a string `str`, which is not a decimal value.\r\n */\r\n function parseOther(x, str) {\r\n var base, Ctor, divisor, i, isFloat, len, p, xd, xe;\r\n\r\n if (str.indexOf('_') > -1) {\r\n str = str.replace(/(\\d)_(?=\\d)/g, '$1');\r\n if (isDecimal.test(str)) return parseDecimal(x, str);\r\n } else if (str === 'Infinity' || str === 'NaN') {\r\n if (!+str) x.s = NaN;\r\n x.e = NaN;\r\n x.d = null;\r\n return x;\r\n }\r\n\r\n if (isHex.test(str)) {\r\n base = 16;\r\n str = str.toLowerCase();\r\n } else if (isBinary.test(str)) {\r\n base = 2;\r\n } else if (isOctal.test(str)) {\r\n base = 8;\r\n } else {\r\n throw Error(invalidArgument + str);\r\n }\r\n\r\n // Is there a binary exponent part?\r\n i = str.search(/p/i);\r\n\r\n if (i > 0) {\r\n p = +str.slice(i + 1);\r\n str = str.substring(2, i);\r\n } else {\r\n str = str.slice(2);\r\n }\r\n\r\n // Convert `str` as an integer then divide the result by `base` raised to a power such that the\r\n // fraction part will be restored.\r\n i = str.indexOf('.');\r\n isFloat = i >= 0;\r\n Ctor = x.constructor;\r\n\r\n if (isFloat) {\r\n str = str.replace('.', '');\r\n len = str.length;\r\n i = len - i;\r\n\r\n // log[10](16) = 1.2041... , log[10](88) = 1.9444....\r\n divisor = intPow(Ctor, new Ctor(base), i, i * 2);\r\n }\r\n\r\n xd = convertBase(str, base, BASE);\r\n xe = xd.length - 1;\r\n\r\n // Remove trailing zeros.\r\n for (i = xe; xd[i] === 0; --i) xd.pop();\r\n if (i < 0) return new Ctor(x.s * 0);\r\n x.e = getBase10Exponent(xd, xe);\r\n x.d = xd;\r\n external = false;\r\n\r\n // At what precision to perform the division to ensure exact conversion?\r\n // maxDecimalIntegerPartDigitCount = ceil(log[10](b) * otherBaseIntegerPartDigitCount)\r\n // log[10](2) = 0.30103, log[10](8) = 0.90309, log[10](16) = 1.20412\r\n // E.g. ceil(1.2 * 3) = 4, so up to 4 decimal digits are needed to represent 3 hex int digits.\r\n // maxDecimalFractionPartDigitCount = {Hex:4|Oct:3|Bin:1} * otherBaseFractionPartDigitCount\r\n // Therefore using 4 * the number of digits of str will always be enough.\r\n if (isFloat) x = divide(x, divisor, len * 4);\r\n\r\n // Multiply by the binary exponent part if present.\r\n if (p) x = x.times(Math.abs(p) < 54 ? mathpow(2, p) : Decimal.pow(2, p));\r\n external = true;\r\n\r\n return x;\r\n }\r\n\r\n\r\n /*\r\n * sin(x) = x - x^3/3! + x^5/5! - ...\r\n * |x| < pi/2\r\n *\r\n */\r\n function sine(Ctor, x) {\r\n var k,\r\n len = x.d.length;\r\n\r\n if (len < 3) {\r\n return x.isZero() ? x : taylorSeries(Ctor, 2, x, x);\r\n }\r\n\r\n // Argument reduction: sin(5x) = 16*sin^5(x) - 20*sin^3(x) + 5*sin(x)\r\n // i.e. sin(x) = 16*sin^5(x/5) - 20*sin^3(x/5) + 5*sin(x/5)\r\n // and sin(x) = sin(x/5)(5 + sin^2(x/5)(16sin^2(x/5) - 20))\r\n\r\n // Estimate the optimum number of times to use the argument reduction.\r\n k = 1.4 * Math.sqrt(len);\r\n k = k > 16 ? 16 : k | 0;\r\n\r\n x = x.times(1 / tinyPow(5, k));\r\n x = taylorSeries(Ctor, 2, x, x);\r\n\r\n // Reverse argument reduction\r\n var sin2_x,\r\n d5 = new Ctor(5),\r\n d16 = new Ctor(16),\r\n d20 = new Ctor(20);\r\n for (; k--;) {\r\n sin2_x = x.times(x);\r\n x = x.times(d5.plus(sin2_x.times(d16.times(sin2_x).minus(d20))));\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n // Calculate Taylor series for `cos`, `cosh`, `sin` and `sinh`.\r\n function taylorSeries(Ctor, n, x, y, isHyperbolic) {\r\n var j, t, u, x2,\r\n i = 1,\r\n pr = Ctor.precision,\r\n k = Math.ceil(pr / LOG_BASE);\r\n\r\n external = false;\r\n x2 = x.times(x);\r\n u = new Ctor(y);\r\n\r\n for (;;) {\r\n t = divide(u.times(x2), new Ctor(n++ * n++), pr, 1);\r\n u = isHyperbolic ? y.plus(t) : y.minus(t);\r\n y = divide(t.times(x2), new Ctor(n++ * n++), pr, 1);\r\n t = u.plus(y);\r\n\r\n if (t.d[k] !== void 0) {\r\n for (j = k; t.d[j] === u.d[j] && j--;);\r\n if (j == -1) break;\r\n }\r\n\r\n j = u;\r\n u = y;\r\n y = t;\r\n t = j;\r\n i++;\r\n }\r\n\r\n external = true;\r\n t.d.length = k + 1;\r\n\r\n return t;\r\n }\r\n\r\n\r\n // Exponent e must be positive and non-zero.\r\n function tinyPow(b, e) {\r\n var n = b;\r\n while (--e) n *= b;\r\n return n;\r\n }\r\n\r\n\r\n // Return the absolute value of `x` reduced to less than or equal to half pi.\r\n function toLessThanHalfPi(Ctor, x) {\r\n var t,\r\n isNeg = x.s < 0,\r\n pi = getPi(Ctor, Ctor.precision, 1),\r\n halfPi = pi.times(0.5);\r\n\r\n x = x.abs();\r\n\r\n if (x.lte(halfPi)) {\r\n quadrant = isNeg ? 4 : 1;\r\n return x;\r\n }\r\n\r\n t = x.divToInt(pi);\r\n\r\n if (t.isZero()) {\r\n quadrant = isNeg ? 3 : 2;\r\n } else {\r\n x = x.minus(t.times(pi));\r\n\r\n // 0 <= x < pi\r\n if (x.lte(halfPi)) {\r\n quadrant = isOdd(t) ? (isNeg ? 2 : 3) : (isNeg ? 4 : 1);\r\n return x;\r\n }\r\n\r\n quadrant = isOdd(t) ? (isNeg ? 1 : 4) : (isNeg ? 3 : 2);\r\n }\r\n\r\n return x.minus(pi).abs();\r\n }\r\n\r\n\r\n /*\r\n * Return the value of Decimal `x` as a string in base `baseOut`.\r\n *\r\n * If the optional `sd` argument is present include a binary exponent suffix.\r\n */\r\n function toStringBinary(x, baseOut, sd, rm) {\r\n var base, e, i, k, len, roundUp, str, xd, y,\r\n Ctor = x.constructor,\r\n isExp = sd !== void 0;\r\n\r\n if (isExp) {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n } else {\r\n sd = Ctor.precision;\r\n rm = Ctor.rounding;\r\n }\r\n\r\n if (!x.isFinite()) {\r\n str = nonFiniteToString(x);\r\n } else {\r\n str = finiteToString(x);\r\n i = str.indexOf('.');\r\n\r\n // Use exponential notation according to `toExpPos` and `toExpNeg`? No, but if required:\r\n // maxBinaryExponent = floor((decimalExponent + 1) * log[2](10))\r\n // minBinaryExponent = floor(decimalExponent * log[2](10))\r\n // log[2](10) = 3.321928094887362347870319429489390175864\r\n\r\n if (isExp) {\r\n base = 2;\r\n if (baseOut == 16) {\r\n sd = sd * 4 - 3;\r\n } else if (baseOut == 8) {\r\n sd = sd * 3 - 2;\r\n }\r\n } else {\r\n base = baseOut;\r\n }\r\n\r\n // Convert the number as an integer then divide the result by its base raised to a power such\r\n // that the fraction part will be restored.\r\n\r\n // Non-integer.\r\n if (i >= 0) {\r\n str = str.replace('.', '');\r\n y = new Ctor(1);\r\n y.e = str.length - i;\r\n y.d = convertBase(finiteToString(y), 10, base);\r\n y.e = y.d.length;\r\n }\r\n\r\n xd = convertBase(str, 10, base);\r\n e = len = xd.length;\r\n\r\n // Remove trailing zeros.\r\n for (; xd[--len] == 0;) xd.pop();\r\n\r\n if (!xd[0]) {\r\n str = isExp ? '0p+0' : '0';\r\n } else {\r\n if (i < 0) {\r\n e--;\r\n } else {\r\n x = new Ctor(x);\r\n x.d = xd;\r\n x.e = e;\r\n x = divide(x, y, sd, rm, 0, base);\r\n xd = x.d;\r\n e = x.e;\r\n roundUp = inexact;\r\n }\r\n\r\n // The rounding digit, i.e. the digit after the digit that may be rounded up.\r\n i = xd[sd];\r\n k = base / 2;\r\n roundUp = roundUp || xd[sd + 1] !== void 0;\r\n\r\n roundUp = rm < 4\r\n ? (i !== void 0 || roundUp) && (rm === 0 || rm === (x.s < 0 ? 3 : 2))\r\n : i > k || i === k && (rm === 4 || roundUp || rm === 6 && xd[sd - 1] & 1 ||\r\n rm === (x.s < 0 ? 8 : 7));\r\n\r\n xd.length = sd;\r\n\r\n if (roundUp) {\r\n\r\n // Rounding up may mean the previous digit has to be rounded up and so on.\r\n for (; ++xd[--sd] > base - 1;) {\r\n xd[sd] = 0;\r\n if (!sd) {\r\n ++e;\r\n xd.unshift(1);\r\n }\r\n }\r\n }\r\n\r\n // Determine trailing zeros.\r\n for (len = xd.length; !xd[len - 1]; --len);\r\n\r\n // E.g. [4, 11, 15] becomes 4bf.\r\n for (i = 0, str = ''; i < len; i++) str += NUMERALS.charAt(xd[i]);\r\n\r\n // Add binary exponent suffix?\r\n if (isExp) {\r\n if (len > 1) {\r\n if (baseOut == 16 || baseOut == 8) {\r\n i = baseOut == 16 ? 4 : 3;\r\n for (--len; len % i; len++) str += '0';\r\n xd = convertBase(str, base, baseOut);\r\n for (len = xd.length; !xd[len - 1]; --len);\r\n\r\n // xd[0] will always be be 1\r\n for (i = 1, str = '1.'; i < len; i++) str += NUMERALS.charAt(xd[i]);\r\n } else {\r\n str = str.charAt(0) + '.' + str.slice(1);\r\n }\r\n }\r\n\r\n str = str + (e < 0 ? 'p' : 'p+') + e;\r\n } else if (e < 0) {\r\n for (; ++e;) str = '0' + str;\r\n str = '0.' + str;\r\n } else {\r\n if (++e > len) for (e -= len; e-- ;) str += '0';\r\n else if (e < len) str = str.slice(0, e) + '.' + str.slice(e);\r\n }\r\n }\r\n\r\n str = (baseOut == 16 ? '0x' : baseOut == 2 ? '0b' : baseOut == 8 ? '0o' : '') + str;\r\n }\r\n\r\n return x.s < 0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // Does not strip trailing zeros.\r\n function truncate(arr, len) {\r\n if (arr.length > len) {\r\n arr.length = len;\r\n return true;\r\n }\r\n }\r\n\r\n\r\n // Decimal methods\r\n\r\n\r\n /*\r\n * abs\r\n * acos\r\n * acosh\r\n * add\r\n * asin\r\n * asinh\r\n * atan\r\n * atanh\r\n * atan2\r\n * cbrt\r\n * ceil\r\n * clamp\r\n * clone\r\n * config\r\n * cos\r\n * cosh\r\n * div\r\n * exp\r\n * floor\r\n * hypot\r\n * ln\r\n * log\r\n * log2\r\n * log10\r\n * max\r\n * min\r\n * mod\r\n * mul\r\n * pow\r\n * random\r\n * round\r\n * set\r\n * sign\r\n * sin\r\n * sinh\r\n * sqrt\r\n * sub\r\n * sum\r\n * tan\r\n * tanh\r\n * trunc\r\n */\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the absolute value of `x`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\n function abs(x) {\r\n return new this(x).abs();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the arccosine in radians of `x`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\n function acos(x) {\r\n return new this(x).acos();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic cosine of `x`, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\r\n function acosh(x) {\r\n return new this(x).acosh();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the sum of `x` and `y`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n * y {number|string|Decimal}\r\n *\r\n */\r\n function add(x, y) {\r\n return new this(x).plus(y);\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the arcsine in radians of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\n function asin(x) {\r\n return new this(x).asin();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic sine of `x`, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\r\n function asinh(x) {\r\n return new this(x).asinh();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the arctangent in radians of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\n function atan(x) {\r\n return new this(x).atan();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic tangent of `x`, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\r\n function atanh(x) {\r\n return new this(x).atanh();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the arctangent in radians of `y/x` in the range -pi to pi\r\n * (inclusive), rounded to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-pi, pi]\r\n *\r\n * y {number|string|Decimal} The y-coordinate.\r\n * x {number|string|Decimal} The x-coordinate.\r\n *\r\n * atan2(±0, -0) = ±pi\r\n * atan2(±0, +0) = ±0\r\n * atan2(±0, -x) = ±pi for x > 0\r\n * atan2(±0, x) = ±0 for x > 0\r\n * atan2(-y, ±0) = -pi/2 for y > 0\r\n * atan2(y, ±0) = pi/2 for y > 0\r\n * atan2(±y, -Infinity) = ±pi for finite y > 0\r\n * atan2(±y, +Infinity) = ±0 for finite y > 0\r\n * atan2(±Infinity, x) = ±pi/2 for finite x\r\n * atan2(±Infinity, -Infinity) = ±3*pi/4\r\n * atan2(±Infinity, +Infinity) = ±pi/4\r\n * atan2(NaN, x) = NaN\r\n * atan2(y, NaN) = NaN\r\n *\r\n */\r\n function atan2(y, x) {\r\n y = new this(y);\r\n x = new this(x);\r\n var r,\r\n pr = this.precision,\r\n rm = this.rounding,\r\n wpr = pr + 4;\r\n\r\n // Either NaN\r\n if (!y.s || !x.s) {\r\n r = new this(NaN);\r\n\r\n // Both ±Infinity\r\n } else if (!y.d && !x.d) {\r\n r = getPi(this, wpr, 1).times(x.s > 0 ? 0.25 : 0.75);\r\n r.s = y.s;\r\n\r\n // x is ±Infinity or y is ±0\r\n } else if (!x.d || y.isZero()) {\r\n r = x.s < 0 ? getPi(this, pr, rm) : new this(0);\r\n r.s = y.s;\r\n\r\n // y is ±Infinity or x is ±0\r\n } else if (!y.d || x.isZero()) {\r\n r = getPi(this, wpr, 1).times(0.5);\r\n r.s = y.s;\r\n\r\n // Both non-zero and finite\r\n } else if (x.s < 0) {\r\n this.precision = wpr;\r\n this.rounding = 1;\r\n r = this.atan(divide(y, x, wpr, 1));\r\n x = getPi(this, wpr, 1);\r\n this.precision = pr;\r\n this.rounding = rm;\r\n r = y.s < 0 ? r.minus(x) : r.plus(x);\r\n } else {\r\n r = this.atan(divide(y, x, wpr, 1));\r\n }\r\n\r\n return r;\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the cube root of `x`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\n function cbrt(x) {\r\n return new this(x).cbrt();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is `x` rounded to an integer using `ROUND_CEIL`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\n function ceil(x) {\r\n return finalise(x = new this(x), x.e + 1, 2);\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is `x` clamped to the range delineated by `min` and `max`.\r\n *\r\n * x {number|string|Decimal}\r\n * min {number|string|Decimal}\r\n * max {number|string|Decimal}\r\n *\r\n */\r\n function clamp(x, min, max) {\r\n return new this(x).clamp(min, max);\r\n }\r\n\r\n\r\n /*\r\n * Configure global settings for a Decimal constructor.\r\n *\r\n * `obj` is an object with one or more of the following properties,\r\n *\r\n * precision {number}\r\n * rounding {number}\r\n * toExpNeg {number}\r\n * toExpPos {number}\r\n * maxE {number}\r\n * minE {number}\r\n * modulo {number}\r\n * crypto {boolean|number}\r\n * defaults {true}\r\n *\r\n * E.g. Decimal.config({ precision: 20, rounding: 4 })\r\n *\r\n */\r\n function config(obj) {\r\n if (!obj || typeof obj !== 'object') throw Error(decimalError + 'Object expected');\r\n var i, p, v,\r\n useDefaults = obj.defaults === true,\r\n ps = [\r\n 'precision', 1, MAX_DIGITS,\r\n 'rounding', 0, 8,\r\n 'toExpNeg', -EXP_LIMIT, 0,\r\n 'toExpPos', 0, EXP_LIMIT,\r\n 'maxE', 0, EXP_LIMIT,\r\n 'minE', -EXP_LIMIT, 0,\r\n 'modulo', 0, 9\r\n ];\r\n\r\n for (i = 0; i < ps.length; i += 3) {\r\n if (p = ps[i], useDefaults) this[p] = DEFAULTS[p];\r\n if ((v = obj[p]) !== void 0) {\r\n if (mathfloor(v) === v && v >= ps[i + 1] && v <= ps[i + 2]) this[p] = v;\r\n else throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n }\r\n\r\n if (p = 'crypto', useDefaults) this[p] = DEFAULTS[p];\r\n if ((v = obj[p]) !== void 0) {\r\n if (v === true || v === false || v === 0 || v === 1) {\r\n if (v) {\r\n if (typeof crypto != 'undefined' && crypto &&\r\n (crypto.getRandomValues || crypto.randomBytes)) {\r\n this[p] = true;\r\n } else {\r\n throw Error(cryptoUnavailable);\r\n }\r\n } else {\r\n this[p] = false;\r\n }\r\n } else {\r\n throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the cosine of `x`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\r\n function cos(x) {\r\n return new this(x).cos();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the hyperbolic cosine of `x`, rounded to precision\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\r\n function cosh(x) {\r\n return new this(x).cosh();\r\n }\r\n\r\n\r\n /*\r\n * Create and return a Decimal constructor with the same configuration properties as this Decimal\r\n * constructor.\r\n *\r\n */\r\n function clone(obj) {\r\n var i, p, ps;\r\n\r\n /*\r\n * The Decimal constructor and exported function.\r\n * Return a new Decimal instance.\r\n *\r\n * v {number|string|Decimal} A numeric value.\r\n *\r\n */\r\n function Decimal(v) {\r\n var e, i, t,\r\n x = this;\r\n\r\n // Decimal called without new.\r\n if (!(x instanceof Decimal)) return new Decimal(v);\r\n\r\n // Retain a reference to this Decimal constructor, and shadow Decimal.prototype.constructor\r\n // which points to Object.\r\n x.constructor = Decimal;\r\n\r\n // Duplicate.\r\n if (isDecimalInstance(v)) {\r\n x.s = v.s;\r\n\r\n if (external) {\r\n if (!v.d || v.e > Decimal.maxE) {\r\n\r\n // Infinity.\r\n x.e = NaN;\r\n x.d = null;\r\n } else if (v.e < Decimal.minE) {\r\n\r\n // Zero.\r\n x.e = 0;\r\n x.d = [0];\r\n } else {\r\n x.e = v.e;\r\n x.d = v.d.slice();\r\n }\r\n } else {\r\n x.e = v.e;\r\n x.d = v.d ? v.d.slice() : v.d;\r\n }\r\n\r\n return;\r\n }\r\n\r\n t = typeof v;\r\n\r\n if (t === 'number') {\r\n if (v === 0) {\r\n x.s = 1 / v < 0 ? -1 : 1;\r\n x.e = 0;\r\n x.d = [0];\r\n return;\r\n }\r\n\r\n if (v < 0) {\r\n v = -v;\r\n x.s = -1;\r\n } else {\r\n x.s = 1;\r\n }\r\n\r\n // Fast path for small integers.\r\n if (v === ~~v && v < 1e7) {\r\n for (e = 0, i = v; i >= 10; i /= 10) e++;\r\n\r\n if (external) {\r\n if (e > Decimal.maxE) {\r\n x.e = NaN;\r\n x.d = null;\r\n } else if (e < Decimal.minE) {\r\n x.e = 0;\r\n x.d = [0];\r\n } else {\r\n x.e = e;\r\n x.d = [v];\r\n }\r\n } else {\r\n x.e = e;\r\n x.d = [v];\r\n }\r\n\r\n return;\r\n\r\n // Infinity, NaN.\r\n } else if (v * 0 !== 0) {\r\n if (!v) x.s = NaN;\r\n x.e = NaN;\r\n x.d = null;\r\n return;\r\n }\r\n\r\n return parseDecimal(x, v.toString());\r\n\r\n } else if (t !== 'string') {\r\n throw Error(invalidArgument + v);\r\n }\r\n\r\n // Minus sign?\r\n if ((i = v.charCodeAt(0)) === 45) {\r\n v = v.slice(1);\r\n x.s = -1;\r\n } else {\r\n // Plus sign?\r\n if (i === 43) v = v.slice(1);\r\n x.s = 1;\r\n }\r\n\r\n return isDecimal.test(v) ? parseDecimal(x, v) : parseOther(x, v);\r\n }\r\n\r\n Decimal.prototype = P;\r\n\r\n Decimal.ROUND_UP = 0;\r\n Decimal.ROUND_DOWN = 1;\r\n Decimal.ROUND_CEIL = 2;\r\n Decimal.ROUND_FLOOR = 3;\r\n Decimal.ROUND_HALF_UP = 4;\r\n Decimal.ROUND_HALF_DOWN = 5;\r\n Decimal.ROUND_HALF_EVEN = 6;\r\n Decimal.ROUND_HALF_CEIL = 7;\r\n Decimal.ROUND_HALF_FLOOR = 8;\r\n Decimal.EUCLID = 9;\r\n\r\n Decimal.config = Decimal.set = config;\r\n Decimal.clone = clone;\r\n Decimal.isDecimal = isDecimalInstance;\r\n\r\n Decimal.abs = abs;\r\n Decimal.acos = acos;\r\n Decimal.acosh = acosh; // ES6\r\n Decimal.add = add;\r\n Decimal.asin = asin;\r\n Decimal.asinh = asinh; // ES6\r\n Decimal.atan = atan;\r\n Decimal.atanh = atanh; // ES6\r\n Decimal.atan2 = atan2;\r\n Decimal.cbrt = cbrt; // ES6\r\n Decimal.ceil = ceil;\r\n Decimal.clamp = clamp;\r\n Decimal.cos = cos;\r\n Decimal.cosh = cosh; // ES6\r\n Decimal.div = div;\r\n Decimal.exp = exp;\r\n Decimal.floor = floor;\r\n Decimal.hypot = hypot; // ES6\r\n Decimal.ln = ln;\r\n Decimal.log = log;\r\n Decimal.log10 = log10; // ES6\r\n Decimal.log2 = log2; // ES6\r\n Decimal.max = max;\r\n Decimal.min = min;\r\n Decimal.mod = mod;\r\n Decimal.mul = mul;\r\n Decimal.pow = pow;\r\n Decimal.random = random;\r\n Decimal.round = round;\r\n Decimal.sign = sign; // ES6\r\n Decimal.sin = sin;\r\n Decimal.sinh = sinh; // ES6\r\n Decimal.sqrt = sqrt;\r\n Decimal.sub = sub;\r\n Decimal.sum = sum;\r\n Decimal.tan = tan;\r\n Decimal.tanh = tanh; // ES6\r\n Decimal.trunc = trunc; // ES6\r\n\r\n if (obj === void 0) obj = {};\r\n if (obj) {\r\n if (obj.defaults !== true) {\r\n ps = ['precision', 'rounding', 'toExpNeg', 'toExpPos', 'maxE', 'minE', 'modulo', 'crypto'];\r\n for (i = 0; i < ps.length;) if (!obj.hasOwnProperty(p = ps[i++])) obj[p] = this[p];\r\n }\r\n }\r\n\r\n Decimal.config(obj);\r\n\r\n return Decimal;\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is `x` divided by `y`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n * y {number|string|Decimal}\r\n *\r\n */\r\n function div(x, y) {\r\n return new this(x).div(y);\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural exponential of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} The power to which to raise the base of the natural log.\r\n *\r\n */\r\n function exp(x) {\r\n return new this(x).exp();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is `x` round to an integer using `ROUND_FLOOR`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\n function floor(x) {\r\n return finalise(x = new this(x), x.e + 1, 3);\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the square root of the sum of the squares of the arguments,\r\n * rounded to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * hypot(a, b, ...) = sqrt(a^2 + b^2 + ...)\r\n *\r\n * arguments {number|string|Decimal}\r\n *\r\n */\r\n function hypot() {\r\n var i, n,\r\n t = new this(0);\r\n\r\n external = false;\r\n\r\n for (i = 0; i < arguments.length;) {\r\n n = new this(arguments[i++]);\r\n if (!n.d) {\r\n if (n.s) {\r\n external = true;\r\n return new this(1 / 0);\r\n }\r\n t = n;\r\n } else if (t.d) {\r\n t = t.plus(n.times(n));\r\n }\r\n }\r\n\r\n external = true;\r\n\r\n return t.sqrt();\r\n }\r\n\r\n\r\n /*\r\n * Return true if object is a Decimal instance (where Decimal is any Decimal constructor),\r\n * otherwise return false.\r\n *\r\n */\r\n function isDecimalInstance(obj) {\r\n return obj instanceof Decimal || obj && obj.toStringTag === tag || false;\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural logarithm of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\n function ln(x) {\r\n return new this(x).ln();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the log of `x` to the base `y`, or to base 10 if no base\r\n * is specified, rounded to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * log[y](x)\r\n *\r\n * x {number|string|Decimal} The argument of the logarithm.\r\n * y {number|string|Decimal} The base of the logarithm.\r\n *\r\n */\r\n function log(x, y) {\r\n return new this(x).log(y);\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the base 2 logarithm of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\n function log2(x) {\r\n return new this(x).log(2);\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the base 10 logarithm of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\n function log10(x) {\r\n return new this(x).log(10);\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the maximum of the arguments.\r\n *\r\n * arguments {number|string|Decimal}\r\n *\r\n */\r\n function max() {\r\n return maxOrMin(this, arguments, 'lt');\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the minimum of the arguments.\r\n *\r\n * arguments {number|string|Decimal}\r\n *\r\n */\r\n function min() {\r\n return maxOrMin(this, arguments, 'gt');\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is `x` modulo `y`, rounded to `precision` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n * y {number|string|Decimal}\r\n *\r\n */\r\n function mod(x, y) {\r\n return new this(x).mod(y);\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is `x` multiplied by `y`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n * y {number|string|Decimal}\r\n *\r\n */\r\n function mul(x, y) {\r\n return new this(x).mul(y);\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is `x` raised to the power `y`, rounded to precision\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} The base.\r\n * y {number|string|Decimal} The exponent.\r\n *\r\n */\r\n function pow(x, y) {\r\n return new this(x).pow(y);\r\n }\r\n\r\n\r\n /*\r\n * Returns a new Decimal with a random value equal to or greater than 0 and less than 1, and with\r\n * `sd`, or `Decimal.precision` if `sd` is omitted, significant digits (or less if trailing zeros\r\n * are produced).\r\n *\r\n * [sd] {number} Significant digits. Integer, 0 to MAX_DIGITS inclusive.\r\n *\r\n */\r\n function random(sd) {\r\n var d, e, k, n,\r\n i = 0,\r\n r = new this(1),\r\n rd = [];\r\n\r\n if (sd === void 0) sd = this.precision;\r\n else checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n k = Math.ceil(sd / LOG_BASE);\r\n\r\n if (!this.crypto) {\r\n for (; i < k;) rd[i++] = Math.random() * 1e7 | 0;\r\n\r\n // Browsers supporting crypto.getRandomValues.\r\n } else if (crypto.getRandomValues) {\r\n d = crypto.getRandomValues(new Uint32Array(k));\r\n\r\n for (; i < k;) {\r\n n = d[i];\r\n\r\n // 0 <= n < 4294967296\r\n // Probability n >= 4.29e9, is 4967296 / 4294967296 = 0.00116 (1 in 865).\r\n if (n >= 4.29e9) {\r\n d[i] = crypto.getRandomValues(new Uint32Array(1))[0];\r\n } else {\r\n\r\n // 0 <= n <= 4289999999\r\n // 0 <= (n % 1e7) <= 9999999\r\n rd[i++] = n % 1e7;\r\n }\r\n }\r\n\r\n // Node.js supporting crypto.randomBytes.\r\n } else if (crypto.randomBytes) {\r\n\r\n // buffer\r\n d = crypto.randomBytes(k *= 4);\r\n\r\n for (; i < k;) {\r\n\r\n // 0 <= n < 2147483648\r\n n = d[i] + (d[i + 1] << 8) + (d[i + 2] << 16) + ((d[i + 3] & 0x7f) << 24);\r\n\r\n // Probability n >= 2.14e9, is 7483648 / 2147483648 = 0.0035 (1 in 286).\r\n if (n >= 2.14e9) {\r\n crypto.randomBytes(4).copy(d, i);\r\n } else {\r\n\r\n // 0 <= n <= 2139999999\r\n // 0 <= (n % 1e7) <= 9999999\r\n rd.push(n % 1e7);\r\n i += 4;\r\n }\r\n }\r\n\r\n i = k / 4;\r\n } else {\r\n throw Error(cryptoUnavailable);\r\n }\r\n\r\n k = rd[--i];\r\n sd %= LOG_BASE;\r\n\r\n // Convert trailing digits to zeros according to sd.\r\n if (k && sd) {\r\n n = mathpow(10, LOG_BASE - sd);\r\n rd[i] = (k / n | 0) * n;\r\n }\r\n\r\n // Remove trailing words which are zero.\r\n for (; rd[i] === 0; i--) rd.pop();\r\n\r\n // Zero?\r\n if (i < 0) {\r\n e = 0;\r\n rd = [0];\r\n } else {\r\n e = -1;\r\n\r\n // Remove leading words which are zero and adjust exponent accordingly.\r\n for (; rd[0] === 0; e -= LOG_BASE) rd.shift();\r\n\r\n // Count the digits of the first word of rd to determine leading zeros.\r\n for (k = 1, n = rd[0]; n >= 10; n /= 10) k++;\r\n\r\n // Adjust the exponent for leading zeros of the first word of rd.\r\n if (k < LOG_BASE) e -= LOG_BASE - k;\r\n }\r\n\r\n r.e = e;\r\n r.d = rd;\r\n\r\n return r;\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is `x` rounded to an integer using rounding mode `rounding`.\r\n *\r\n * To emulate `Math.round`, set rounding to 7 (ROUND_HALF_CEIL).\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\n function round(x) {\r\n return finalise(x = new this(x), x.e + 1, this.rounding);\r\n }\r\n\r\n\r\n /*\r\n * Return\r\n * 1 if x > 0,\r\n * -1 if x < 0,\r\n * 0 if x is 0,\r\n * -0 if x is -0,\r\n * NaN otherwise\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\n function sign(x) {\r\n x = new this(x);\r\n return x.d ? (x.d[0] ? x.s : 0 * x.s) : x.s || NaN;\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the sine of `x`, rounded to `precision` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\r\n function sin(x) {\r\n return new this(x).sin();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the hyperbolic sine of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\r\n function sinh(x) {\r\n return new this(x).sinh();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the square root of `x`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\n function sqrt(x) {\r\n return new this(x).sqrt();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is `x` minus `y`, rounded to `precision` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n * y {number|string|Decimal}\r\n *\r\n */\r\n function sub(x, y) {\r\n return new this(x).sub(y);\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the sum of the arguments, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * Only the result is rounded, not the intermediate calculations.\r\n *\r\n * arguments {number|string|Decimal}\r\n *\r\n */\r\n function sum() {\r\n var i = 0,\r\n args = arguments,\r\n x = new this(args[i]);\r\n\r\n external = false;\r\n for (; x.s && ++i < args.length;) x = x.plus(args[i]);\r\n external = true;\r\n\r\n return finalise(x, this.precision, this.rounding);\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the tangent of `x`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\r\n function tan(x) {\r\n return new this(x).tan();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the hyperbolic tangent of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\r\n function tanh(x) {\r\n return new this(x).tanh();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is `x` truncated to an integer.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\n function trunc(x) {\r\n return finalise(x = new this(x), x.e + 1, 1);\r\n }\r\n\r\n\r\n // Create and configure initial Decimal constructor.\r\n Decimal = clone(DEFAULTS);\r\n Decimal.prototype.constructor = Decimal;\r\n Decimal['default'] = Decimal.Decimal = Decimal;\r\n\r\n // Create the internal constants from their string values.\r\n LN10 = new Decimal(LN10);\r\n PI = new Decimal(PI);\r\n\r\n\r\n // Export.\r\n\r\n\r\n // AMD.\r\n if (typeof define == 'function' && define.amd) {\r\n define(function () {\r\n return Decimal;\r\n });\r\n\r\n // Node and other environments that support module.exports.\r\n } else if (typeof module != 'undefined' && module.exports) {\r\n if (typeof Symbol == 'function' && typeof Symbol.iterator == 'symbol') {\r\n P[Symbol['for']('nodejs.util.inspect.custom')] = P.toString;\r\n P[Symbol.toStringTag] = 'Decimal';\r\n }\r\n\r\n module.exports = Decimal;\r\n\r\n // Browser.\r\n } else {\r\n if (!globalScope) {\r\n globalScope = typeof self != 'undefined' && self && self.self == self ? self : window;\r\n }\r\n\r\n noConflict = globalScope.Decimal;\r\n Decimal.noConflict = function () {\r\n globalScope.Decimal = noConflict;\r\n return Decimal;\r\n };\r\n\r\n globalScope.Decimal = Decimal;\r\n }\r\n})(this);\r\n","'use strict';\n\nexports.utils = require('./des/utils');\nexports.Cipher = require('./des/cipher');\nexports.DES = require('./des/des');\nexports.CBC = require('./des/cbc');\nexports.EDE = require('./des/ede');\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar proto = {};\n\nfunction CBCState(iv) {\n assert.equal(iv.length, 8, 'Invalid IV length');\n\n this.iv = new Array(8);\n for (var i = 0; i < this.iv.length; i++)\n this.iv[i] = iv[i];\n}\n\nfunction instantiate(Base) {\n function CBC(options) {\n Base.call(this, options);\n this._cbcInit();\n }\n inherits(CBC, Base);\n\n var keys = Object.keys(proto);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n CBC.prototype[key] = proto[key];\n }\n\n CBC.create = function create(options) {\n return new CBC(options);\n };\n\n return CBC;\n}\n\nexports.instantiate = instantiate;\n\nproto._cbcInit = function _cbcInit() {\n var state = new CBCState(this.options.iv);\n this._cbcState = state;\n};\n\nproto._update = function _update(inp, inOff, out, outOff) {\n var state = this._cbcState;\n var superProto = this.constructor.super_.prototype;\n\n var iv = state.iv;\n if (this.type === 'encrypt') {\n for (var i = 0; i < this.blockSize; i++)\n iv[i] ^= inp[inOff + i];\n\n superProto._update.call(this, iv, 0, out, outOff);\n\n for (var i = 0; i < this.blockSize; i++)\n iv[i] = out[outOff + i];\n } else {\n superProto._update.call(this, inp, inOff, out, outOff);\n\n for (var i = 0; i < this.blockSize; i++)\n out[outOff + i] ^= iv[i];\n\n for (var i = 0; i < this.blockSize; i++)\n iv[i] = inp[inOff + i];\n }\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\n\nfunction Cipher(options) {\n this.options = options;\n\n this.type = this.options.type;\n this.blockSize = 8;\n this._init();\n\n this.buffer = new Array(this.blockSize);\n this.bufferOff = 0;\n}\nmodule.exports = Cipher;\n\nCipher.prototype._init = function _init() {\n // Might be overrided\n};\n\nCipher.prototype.update = function update(data) {\n if (data.length === 0)\n return [];\n\n if (this.type === 'decrypt')\n return this._updateDecrypt(data);\n else\n return this._updateEncrypt(data);\n};\n\nCipher.prototype._buffer = function _buffer(data, off) {\n // Append data to buffer\n var min = Math.min(this.buffer.length - this.bufferOff, data.length - off);\n for (var i = 0; i < min; i++)\n this.buffer[this.bufferOff + i] = data[off + i];\n this.bufferOff += min;\n\n // Shift next\n return min;\n};\n\nCipher.prototype._flushBuffer = function _flushBuffer(out, off) {\n this._update(this.buffer, 0, out, off);\n this.bufferOff = 0;\n return this.blockSize;\n};\n\nCipher.prototype._updateEncrypt = function _updateEncrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = ((this.bufferOff + data.length) / this.blockSize) | 0;\n var out = new Array(count * this.blockSize);\n\n if (this.bufferOff !== 0) {\n inputOff += this._buffer(data, inputOff);\n\n if (this.bufferOff === this.buffer.length)\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Write blocks\n var max = data.length - ((data.length - inputOff) % this.blockSize);\n for (; inputOff < max; inputOff += this.blockSize) {\n this._update(data, inputOff, out, outputOff);\n outputOff += this.blockSize;\n }\n\n // Queue rest\n for (; inputOff < data.length; inputOff++, this.bufferOff++)\n this.buffer[this.bufferOff] = data[inputOff];\n\n return out;\n};\n\nCipher.prototype._updateDecrypt = function _updateDecrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = Math.ceil((this.bufferOff + data.length) / this.blockSize) - 1;\n var out = new Array(count * this.blockSize);\n\n // TODO(indutny): optimize it, this is far from optimal\n for (; count > 0; count--) {\n inputOff += this._buffer(data, inputOff);\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Buffer rest of the input\n inputOff += this._buffer(data, inputOff);\n\n return out;\n};\n\nCipher.prototype.final = function final(buffer) {\n var first;\n if (buffer)\n first = this.update(buffer);\n\n var last;\n if (this.type === 'encrypt')\n last = this._finalEncrypt();\n else\n last = this._finalDecrypt();\n\n if (first)\n return first.concat(last);\n else\n return last;\n};\n\nCipher.prototype._pad = function _pad(buffer, off) {\n if (off === 0)\n return false;\n\n while (off < buffer.length)\n buffer[off++] = 0;\n\n return true;\n};\n\nCipher.prototype._finalEncrypt = function _finalEncrypt() {\n if (!this._pad(this.buffer, this.bufferOff))\n return [];\n\n var out = new Array(this.blockSize);\n this._update(this.buffer, 0, out, 0);\n return out;\n};\n\nCipher.prototype._unpad = function _unpad(buffer) {\n return buffer;\n};\n\nCipher.prototype._finalDecrypt = function _finalDecrypt() {\n assert.equal(this.bufferOff, this.blockSize, 'Not enough data to decrypt');\n var out = new Array(this.blockSize);\n this._flushBuffer(out, 0);\n\n return this._unpad(out);\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar utils = require('./utils');\nvar Cipher = require('./cipher');\n\nfunction DESState() {\n this.tmp = new Array(2);\n this.keys = null;\n}\n\nfunction DES(options) {\n Cipher.call(this, options);\n\n var state = new DESState();\n this._desState = state;\n\n this.deriveKeys(state, options.key);\n}\ninherits(DES, Cipher);\nmodule.exports = DES;\n\nDES.create = function create(options) {\n return new DES(options);\n};\n\nvar shiftTable = [\n 1, 1, 2, 2, 2, 2, 2, 2,\n 1, 2, 2, 2, 2, 2, 2, 1\n];\n\nDES.prototype.deriveKeys = function deriveKeys(state, key) {\n state.keys = new Array(16 * 2);\n\n assert.equal(key.length, this.blockSize, 'Invalid key length');\n\n var kL = utils.readUInt32BE(key, 0);\n var kR = utils.readUInt32BE(key, 4);\n\n utils.pc1(kL, kR, state.tmp, 0);\n kL = state.tmp[0];\n kR = state.tmp[1];\n for (var i = 0; i < state.keys.length; i += 2) {\n var shift = shiftTable[i >>> 1];\n kL = utils.r28shl(kL, shift);\n kR = utils.r28shl(kR, shift);\n utils.pc2(kL, kR, state.keys, i);\n }\n};\n\nDES.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._desState;\n\n var l = utils.readUInt32BE(inp, inOff);\n var r = utils.readUInt32BE(inp, inOff + 4);\n\n // Initial Permutation\n utils.ip(l, r, state.tmp, 0);\n l = state.tmp[0];\n r = state.tmp[1];\n\n if (this.type === 'encrypt')\n this._encrypt(state, l, r, state.tmp, 0);\n else\n this._decrypt(state, l, r, state.tmp, 0);\n\n l = state.tmp[0];\n r = state.tmp[1];\n\n utils.writeUInt32BE(out, l, outOff);\n utils.writeUInt32BE(out, r, outOff + 4);\n};\n\nDES.prototype._pad = function _pad(buffer, off) {\n var value = buffer.length - off;\n for (var i = off; i < buffer.length; i++)\n buffer[i] = value;\n\n return true;\n};\n\nDES.prototype._unpad = function _unpad(buffer) {\n var pad = buffer[buffer.length - 1];\n for (var i = buffer.length - pad; i < buffer.length; i++)\n assert.equal(buffer[i], pad);\n\n return buffer.slice(0, buffer.length - pad);\n};\n\nDES.prototype._encrypt = function _encrypt(state, lStart, rStart, out, off) {\n var l = lStart;\n var r = rStart;\n\n // Apply f() x16 times\n for (var i = 0; i < state.keys.length; i += 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(r, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = r;\n r = (l ^ f) >>> 0;\n l = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(r, l, out, off);\n};\n\nDES.prototype._decrypt = function _decrypt(state, lStart, rStart, out, off) {\n var l = rStart;\n var r = lStart;\n\n // Apply f() x16 times\n for (var i = state.keys.length - 2; i >= 0; i -= 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(l, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = l;\n l = (r ^ f) >>> 0;\n r = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(l, r, out, off);\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar Cipher = require('./cipher');\nvar DES = require('./des');\n\nfunction EDEState(type, key) {\n assert.equal(key.length, 24, 'Invalid key length');\n\n var k1 = key.slice(0, 8);\n var k2 = key.slice(8, 16);\n var k3 = key.slice(16, 24);\n\n if (type === 'encrypt') {\n this.ciphers = [\n DES.create({ type: 'encrypt', key: k1 }),\n DES.create({ type: 'decrypt', key: k2 }),\n DES.create({ type: 'encrypt', key: k3 })\n ];\n } else {\n this.ciphers = [\n DES.create({ type: 'decrypt', key: k3 }),\n DES.create({ type: 'encrypt', key: k2 }),\n DES.create({ type: 'decrypt', key: k1 })\n ];\n }\n}\n\nfunction EDE(options) {\n Cipher.call(this, options);\n\n var state = new EDEState(this.type, this.options.key);\n this._edeState = state;\n}\ninherits(EDE, Cipher);\n\nmodule.exports = EDE;\n\nEDE.create = function create(options) {\n return new EDE(options);\n};\n\nEDE.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._edeState;\n\n state.ciphers[0]._update(inp, inOff, out, outOff);\n state.ciphers[1]._update(out, outOff, out, outOff);\n state.ciphers[2]._update(out, outOff, out, outOff);\n};\n\nEDE.prototype._pad = DES.prototype._pad;\nEDE.prototype._unpad = DES.prototype._unpad;\n","'use strict';\n\nexports.readUInt32BE = function readUInt32BE(bytes, off) {\n var res = (bytes[0 + off] << 24) |\n (bytes[1 + off] << 16) |\n (bytes[2 + off] << 8) |\n bytes[3 + off];\n return res >>> 0;\n};\n\nexports.writeUInt32BE = function writeUInt32BE(bytes, value, off) {\n bytes[0 + off] = value >>> 24;\n bytes[1 + off] = (value >>> 16) & 0xff;\n bytes[2 + off] = (value >>> 8) & 0xff;\n bytes[3 + off] = value & 0xff;\n};\n\nexports.ip = function ip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >>> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inL >>> (j + i)) & 1;\n }\n }\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= (inR >>> (j + i)) & 1;\n }\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= (inL >>> (j + i)) & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.rip = function rip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 0; i < 4; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outL <<= 1;\n outL |= (inR >>> (j + i)) & 1;\n outL <<= 1;\n outL |= (inL >>> (j + i)) & 1;\n }\n }\n for (var i = 4; i < 8; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outR <<= 1;\n outR |= (inR >>> (j + i)) & 1;\n outR <<= 1;\n outR |= (inL >>> (j + i)) & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.pc1 = function pc1(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n // 7, 15, 23, 31, 39, 47, 55, 63\n // 6, 14, 22, 30, 39, 47, 55, 63\n // 5, 13, 21, 29, 39, 47, 55, 63\n // 4, 12, 20, 28\n for (var i = 7; i >= 5; i--) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inL >> (j + i)) & 1;\n }\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >> (j + i)) & 1;\n }\n\n // 1, 9, 17, 25, 33, 41, 49, 57\n // 2, 10, 18, 26, 34, 42, 50, 58\n // 3, 11, 19, 27, 35, 43, 51, 59\n // 36, 44, 52, 60\n for (var i = 1; i <= 3; i++) {\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inR >> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inL >> (j + i)) & 1;\n }\n }\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inL >> (j + i)) & 1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.r28shl = function r28shl(num, shift) {\n return ((num << shift) & 0xfffffff) | (num >>> (28 - shift));\n};\n\nvar pc2table = [\n // inL => outL\n 14, 11, 17, 4, 27, 23, 25, 0,\n 13, 22, 7, 18, 5, 9, 16, 24,\n 2, 20, 12, 21, 1, 8, 15, 26,\n\n // inR => outR\n 15, 4, 25, 19, 9, 1, 26, 16,\n 5, 11, 23, 8, 12, 7, 17, 0,\n 22, 3, 10, 14, 6, 20, 27, 24\n];\n\nexports.pc2 = function pc2(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n var len = pc2table.length >>> 1;\n for (var i = 0; i < len; i++) {\n outL <<= 1;\n outL |= (inL >>> pc2table[i]) & 0x1;\n }\n for (var i = len; i < pc2table.length; i++) {\n outR <<= 1;\n outR |= (inR >>> pc2table[i]) & 0x1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.expand = function expand(r, out, off) {\n var outL = 0;\n var outR = 0;\n\n outL = ((r & 1) << 5) | (r >>> 27);\n for (var i = 23; i >= 15; i -= 4) {\n outL <<= 6;\n outL |= (r >>> i) & 0x3f;\n }\n for (var i = 11; i >= 3; i -= 4) {\n outR |= (r >>> i) & 0x3f;\n outR <<= 6;\n }\n outR |= ((r & 0x1f) << 1) | (r >>> 31);\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nvar sTable = [\n 14, 0, 4, 15, 13, 7, 1, 4, 2, 14, 15, 2, 11, 13, 8, 1,\n 3, 10, 10, 6, 6, 12, 12, 11, 5, 9, 9, 5, 0, 3, 7, 8,\n 4, 15, 1, 12, 14, 8, 8, 2, 13, 4, 6, 9, 2, 1, 11, 7,\n 15, 5, 12, 11, 9, 3, 7, 14, 3, 10, 10, 0, 5, 6, 0, 13,\n\n 15, 3, 1, 13, 8, 4, 14, 7, 6, 15, 11, 2, 3, 8, 4, 14,\n 9, 12, 7, 0, 2, 1, 13, 10, 12, 6, 0, 9, 5, 11, 10, 5,\n 0, 13, 14, 8, 7, 10, 11, 1, 10, 3, 4, 15, 13, 4, 1, 2,\n 5, 11, 8, 6, 12, 7, 6, 12, 9, 0, 3, 5, 2, 14, 15, 9,\n\n 10, 13, 0, 7, 9, 0, 14, 9, 6, 3, 3, 4, 15, 6, 5, 10,\n 1, 2, 13, 8, 12, 5, 7, 14, 11, 12, 4, 11, 2, 15, 8, 1,\n 13, 1, 6, 10, 4, 13, 9, 0, 8, 6, 15, 9, 3, 8, 0, 7,\n 11, 4, 1, 15, 2, 14, 12, 3, 5, 11, 10, 5, 14, 2, 7, 12,\n\n 7, 13, 13, 8, 14, 11, 3, 5, 0, 6, 6, 15, 9, 0, 10, 3,\n 1, 4, 2, 7, 8, 2, 5, 12, 11, 1, 12, 10, 4, 14, 15, 9,\n 10, 3, 6, 15, 9, 0, 0, 6, 12, 10, 11, 1, 7, 13, 13, 8,\n 15, 9, 1, 4, 3, 5, 14, 11, 5, 12, 2, 7, 8, 2, 4, 14,\n\n 2, 14, 12, 11, 4, 2, 1, 12, 7, 4, 10, 7, 11, 13, 6, 1,\n 8, 5, 5, 0, 3, 15, 15, 10, 13, 3, 0, 9, 14, 8, 9, 6,\n 4, 11, 2, 8, 1, 12, 11, 7, 10, 1, 13, 14, 7, 2, 8, 13,\n 15, 6, 9, 15, 12, 0, 5, 9, 6, 10, 3, 4, 0, 5, 14, 3,\n\n 12, 10, 1, 15, 10, 4, 15, 2, 9, 7, 2, 12, 6, 9, 8, 5,\n 0, 6, 13, 1, 3, 13, 4, 14, 14, 0, 7, 11, 5, 3, 11, 8,\n 9, 4, 14, 3, 15, 2, 5, 12, 2, 9, 8, 5, 12, 15, 3, 10,\n 7, 11, 0, 14, 4, 1, 10, 7, 1, 6, 13, 0, 11, 8, 6, 13,\n\n 4, 13, 11, 0, 2, 11, 14, 7, 15, 4, 0, 9, 8, 1, 13, 10,\n 3, 14, 12, 3, 9, 5, 7, 12, 5, 2, 10, 15, 6, 8, 1, 6,\n 1, 6, 4, 11, 11, 13, 13, 8, 12, 1, 3, 4, 7, 10, 14, 7,\n 10, 9, 15, 5, 6, 0, 8, 15, 0, 14, 5, 2, 9, 3, 2, 12,\n\n 13, 1, 2, 15, 8, 13, 4, 8, 6, 10, 15, 3, 11, 7, 1, 4,\n 10, 12, 9, 5, 3, 6, 14, 11, 5, 0, 0, 14, 12, 9, 7, 2,\n 7, 2, 11, 1, 4, 14, 1, 7, 9, 4, 12, 10, 14, 8, 2, 13,\n 0, 15, 6, 12, 10, 9, 13, 0, 15, 3, 3, 5, 5, 6, 8, 11\n];\n\nexports.substitute = function substitute(inL, inR) {\n var out = 0;\n for (var i = 0; i < 4; i++) {\n var b = (inL >>> (18 - i * 6)) & 0x3f;\n var sb = sTable[i * 0x40 + b];\n\n out <<= 4;\n out |= sb;\n }\n for (var i = 0; i < 4; i++) {\n var b = (inR >>> (18 - i * 6)) & 0x3f;\n var sb = sTable[4 * 0x40 + i * 0x40 + b];\n\n out <<= 4;\n out |= sb;\n }\n return out >>> 0;\n};\n\nvar permuteTable = [\n 16, 25, 12, 11, 3, 20, 4, 15, 31, 17, 9, 6, 27, 14, 1, 22,\n 30, 24, 8, 18, 0, 5, 29, 23, 13, 19, 2, 26, 10, 21, 28, 7\n];\n\nexports.permute = function permute(num) {\n var out = 0;\n for (var i = 0; i < permuteTable.length; i++) {\n out <<= 1;\n out |= (num >>> permuteTable[i]) & 0x1;\n }\n return out >>> 0;\n};\n\nexports.padSplit = function padSplit(num, size, group) {\n var str = num.toString(2);\n while (str.length < size)\n str = '0' + str;\n\n var out = [];\n for (var i = 0; i < size; i += group)\n out.push(str.slice(i, i + group));\n return out.join(' ');\n};\n","var generatePrime = require('./lib/generatePrime')\nvar primes = require('./lib/primes.json')\n\nvar DH = require('./lib/dh')\n\nfunction getDiffieHellman (mod) {\n var prime = new Buffer(primes[mod].prime, 'hex')\n var gen = new Buffer(primes[mod].gen, 'hex')\n\n return new DH(prime, gen)\n}\n\nvar ENCODINGS = {\n 'binary': true, 'hex': true, 'base64': true\n}\n\nfunction createDiffieHellman (prime, enc, generator, genc) {\n if (Buffer.isBuffer(enc) || ENCODINGS[enc] === undefined) {\n return createDiffieHellman(prime, 'binary', enc, generator)\n }\n\n enc = enc || 'binary'\n genc = genc || 'binary'\n generator = generator || new Buffer([2])\n\n if (!Buffer.isBuffer(generator)) {\n generator = new Buffer(generator, genc)\n }\n\n if (typeof prime === 'number') {\n return new DH(generatePrime(prime, generator), generator, true)\n }\n\n if (!Buffer.isBuffer(prime)) {\n prime = new Buffer(prime, enc)\n }\n\n return new DH(prime, generator, true)\n}\n\nexports.DiffieHellmanGroup = exports.createDiffieHellmanGroup = exports.getDiffieHellman = getDiffieHellman\nexports.createDiffieHellman = exports.DiffieHellman = createDiffieHellman\n","var BN = require('bn.js');\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar TWENTYFOUR = new BN(24);\nvar ELEVEN = new BN(11);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar primes = require('./generatePrime');\nvar randomBytes = require('randombytes');\nmodule.exports = DH;\n\nfunction setPublicKey(pub, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(pub)) {\n pub = new Buffer(pub, enc);\n }\n this._pub = new BN(pub);\n return this;\n}\n\nfunction setPrivateKey(priv, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(priv)) {\n priv = new Buffer(priv, enc);\n }\n this._priv = new BN(priv);\n return this;\n}\n\nvar primeCache = {};\nfunction checkPrime(prime, generator) {\n var gen = generator.toString('hex');\n var hex = [gen, prime.toString(16)].join('_');\n if (hex in primeCache) {\n return primeCache[hex];\n }\n var error = 0;\n\n if (prime.isEven() ||\n !primes.simpleSieve ||\n !primes.fermatTest(prime) ||\n !millerRabin.test(prime)) {\n //not a prime so +1\n error += 1;\n\n if (gen === '02' || gen === '05') {\n // we'd be able to check the generator\n // it would fail so +8\n error += 8;\n } else {\n //we wouldn't be able to test the generator\n // so +4\n error += 4;\n }\n primeCache[hex] = error;\n return error;\n }\n if (!millerRabin.test(prime.shrn(1))) {\n //not a safe prime\n error += 2;\n }\n var rem;\n switch (gen) {\n case '02':\n if (prime.mod(TWENTYFOUR).cmp(ELEVEN)) {\n // unsuidable generator\n error += 8;\n }\n break;\n case '05':\n rem = prime.mod(TEN);\n if (rem.cmp(THREE) && rem.cmp(SEVEN)) {\n // prime mod 10 needs to equal 3 or 7\n error += 8;\n }\n break;\n default:\n error += 4;\n }\n primeCache[hex] = error;\n return error;\n}\n\nfunction DH(prime, generator, malleable) {\n this.setGenerator(generator);\n this.__prime = new BN(prime);\n this._prime = BN.mont(this.__prime);\n this._primeLen = prime.length;\n this._pub = undefined;\n this._priv = undefined;\n this._primeCode = undefined;\n if (malleable) {\n this.setPublicKey = setPublicKey;\n this.setPrivateKey = setPrivateKey;\n } else {\n this._primeCode = 8;\n }\n}\nObject.defineProperty(DH.prototype, 'verifyError', {\n enumerable: true,\n get: function () {\n if (typeof this._primeCode !== 'number') {\n this._primeCode = checkPrime(this.__prime, this.__gen);\n }\n return this._primeCode;\n }\n});\nDH.prototype.generateKeys = function () {\n if (!this._priv) {\n this._priv = new BN(randomBytes(this._primeLen));\n }\n this._pub = this._gen.toRed(this._prime).redPow(this._priv).fromRed();\n return this.getPublicKey();\n};\n\nDH.prototype.computeSecret = function (other) {\n other = new BN(other);\n other = other.toRed(this._prime);\n var secret = other.redPow(this._priv).fromRed();\n var out = new Buffer(secret.toArray());\n var prime = this.getPrime();\n if (out.length < prime.length) {\n var front = new Buffer(prime.length - out.length);\n front.fill(0);\n out = Buffer.concat([front, out]);\n }\n return out;\n};\n\nDH.prototype.getPublicKey = function getPublicKey(enc) {\n return formatReturnValue(this._pub, enc);\n};\n\nDH.prototype.getPrivateKey = function getPrivateKey(enc) {\n return formatReturnValue(this._priv, enc);\n};\n\nDH.prototype.getPrime = function (enc) {\n return formatReturnValue(this.__prime, enc);\n};\n\nDH.prototype.getGenerator = function (enc) {\n return formatReturnValue(this._gen, enc);\n};\n\nDH.prototype.setGenerator = function (gen, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(gen)) {\n gen = new Buffer(gen, enc);\n }\n this.__gen = gen;\n this._gen = new BN(gen);\n return this;\n};\n\nfunction formatReturnValue(bn, enc) {\n var buf = new Buffer(bn.toArray());\n if (!enc) {\n return buf;\n } else {\n return buf.toString(enc);\n }\n}\n","var randomBytes = require('randombytes');\nmodule.exports = findPrime;\nfindPrime.simpleSieve = simpleSieve;\nfindPrime.fermatTest = fermatTest;\nvar BN = require('bn.js');\nvar TWENTYFOUR = new BN(24);\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar ONE = new BN(1);\nvar TWO = new BN(2);\nvar FIVE = new BN(5);\nvar SIXTEEN = new BN(16);\nvar EIGHT = new BN(8);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar ELEVEN = new BN(11);\nvar FOUR = new BN(4);\nvar TWELVE = new BN(12);\nvar primes = null;\n\nfunction _getPrimes() {\n if (primes !== null)\n return primes;\n\n var limit = 0x100000;\n var res = [];\n res[0] = 2;\n for (var i = 1, k = 3; k < limit; k += 2) {\n var sqrt = Math.ceil(Math.sqrt(k));\n for (var j = 0; j < i && res[j] <= sqrt; j++)\n if (k % res[j] === 0)\n break;\n\n if (i !== j && res[j] <= sqrt)\n continue;\n\n res[i++] = k;\n }\n primes = res;\n return res;\n}\n\nfunction simpleSieve(p) {\n var primes = _getPrimes();\n\n for (var i = 0; i < primes.length; i++)\n if (p.modn(primes[i]) === 0) {\n if (p.cmpn(primes[i]) === 0) {\n return true;\n } else {\n return false;\n }\n }\n\n return true;\n}\n\nfunction fermatTest(p) {\n var red = BN.mont(p);\n return TWO.toRed(red).redPow(p.subn(1)).fromRed().cmpn(1) === 0;\n}\n\nfunction findPrime(bits, gen) {\n if (bits < 16) {\n // this is what openssl does\n if (gen === 2 || gen === 5) {\n return new BN([0x8c, 0x7b]);\n } else {\n return new BN([0x8c, 0x27]);\n }\n }\n gen = new BN(gen);\n\n var num, n2;\n\n while (true) {\n num = new BN(randomBytes(Math.ceil(bits / 8)));\n while (num.bitLength() > bits) {\n num.ishrn(1);\n }\n if (num.isEven()) {\n num.iadd(ONE);\n }\n if (!num.testn(1)) {\n num.iadd(TWO);\n }\n if (!gen.cmp(TWO)) {\n while (num.mod(TWENTYFOUR).cmp(ELEVEN)) {\n num.iadd(FOUR);\n }\n } else if (!gen.cmp(FIVE)) {\n while (num.mod(TEN).cmp(THREE)) {\n num.iadd(FOUR);\n }\n }\n n2 = num.shrn(1);\n if (simpleSieve(n2) && simpleSieve(num) &&\n fermatTest(n2) && fermatTest(num) &&\n millerRabin.test(n2) && millerRabin.test(num)) {\n return num;\n }\n }\n\n}\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict';\n\nvar elliptic = exports;\n\nelliptic.version = require('../package.json').version;\nelliptic.utils = require('./elliptic/utils');\nelliptic.rand = require('brorand');\nelliptic.curve = require('./elliptic/curve');\nelliptic.curves = require('./elliptic/curves');\n\n// Protocols\nelliptic.ec = require('./elliptic/ec');\nelliptic.eddsa = require('./elliptic/eddsa');\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar getNAF = utils.getNAF;\nvar getJSF = utils.getJSF;\nvar assert = utils.assert;\n\nfunction BaseCurve(type, conf) {\n this.type = type;\n this.p = new BN(conf.p, 16);\n\n // Use Montgomery, when there is no fast reduction for the prime\n this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);\n\n // Useful for many curves\n this.zero = new BN(0).toRed(this.red);\n this.one = new BN(1).toRed(this.red);\n this.two = new BN(2).toRed(this.red);\n\n // Curve configuration, optional\n this.n = conf.n && new BN(conf.n, 16);\n this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);\n\n // Temporary arrays\n this._wnafT1 = new Array(4);\n this._wnafT2 = new Array(4);\n this._wnafT3 = new Array(4);\n this._wnafT4 = new Array(4);\n\n this._bitLength = this.n ? this.n.bitLength() : 0;\n\n // Generalized Greg Maxwell's trick\n var adjustCount = this.n && this.p.div(this.n);\n if (!adjustCount || adjustCount.cmpn(100) > 0) {\n this.redN = null;\n } else {\n this._maxwellTrick = true;\n this.redN = this.n.toRed(this.red);\n }\n}\nmodule.exports = BaseCurve;\n\nBaseCurve.prototype.point = function point() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype.validate = function validate() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {\n assert(p.precomputed);\n var doubles = p._getDoubles();\n\n var naf = getNAF(k, 1, this._bitLength);\n var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);\n I /= 3;\n\n // Translate into more windowed form\n var repr = [];\n var j;\n var nafW;\n for (j = 0; j < naf.length; j += doubles.step) {\n nafW = 0;\n for (var l = j + doubles.step - 1; l >= j; l--)\n nafW = (nafW << 1) + naf[l];\n repr.push(nafW);\n }\n\n var a = this.jpoint(null, null, null);\n var b = this.jpoint(null, null, null);\n for (var i = I; i > 0; i--) {\n for (j = 0; j < repr.length; j++) {\n nafW = repr[j];\n if (nafW === i)\n b = b.mixedAdd(doubles.points[j]);\n else if (nafW === -i)\n b = b.mixedAdd(doubles.points[j].neg());\n }\n a = a.add(b);\n }\n return a.toP();\n};\n\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n var w = 4;\n\n // Precompute window\n var nafPoints = p._getNAFPoints(w);\n w = nafPoints.wnd;\n var wnd = nafPoints.points;\n\n // Get NAF form\n var naf = getNAF(k, w, this._bitLength);\n\n // Add `this`*(N+1) for every w-NAF index\n var acc = this.jpoint(null, null, null);\n for (var i = naf.length - 1; i >= 0; i--) {\n // Count zeroes\n for (var l = 0; i >= 0 && naf[i] === 0; i--)\n l++;\n if (i >= 0)\n l++;\n acc = acc.dblp(l);\n\n if (i < 0)\n break;\n var z = naf[i];\n assert(z !== 0);\n if (p.type === 'affine') {\n // J +- P\n if (z > 0)\n acc = acc.mixedAdd(wnd[(z - 1) >> 1]);\n else\n acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg());\n } else {\n // J +- J\n if (z > 0)\n acc = acc.add(wnd[(z - 1) >> 1]);\n else\n acc = acc.add(wnd[(-z - 1) >> 1].neg());\n }\n }\n return p.type === 'affine' ? acc.toP() : acc;\n};\n\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,\n points,\n coeffs,\n len,\n jacobianResult) {\n var wndWidth = this._wnafT1;\n var wnd = this._wnafT2;\n var naf = this._wnafT3;\n\n // Fill all arrays\n var max = 0;\n var i;\n var j;\n var p;\n for (i = 0; i < len; i++) {\n p = points[i];\n var nafPoints = p._getNAFPoints(defW);\n wndWidth[i] = nafPoints.wnd;\n wnd[i] = nafPoints.points;\n }\n\n // Comb small window NAFs\n for (i = len - 1; i >= 1; i -= 2) {\n var a = i - 1;\n var b = i;\n if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {\n naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);\n naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);\n max = Math.max(naf[a].length, max);\n max = Math.max(naf[b].length, max);\n continue;\n }\n\n var comb = [\n points[a], /* 1 */\n null, /* 3 */\n null, /* 5 */\n points[b], /* 7 */\n ];\n\n // Try to avoid Projective points, if possible\n if (points[a].y.cmp(points[b].y) === 0) {\n comb[1] = points[a].add(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].add(points[b].neg());\n } else {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n }\n\n var index = [\n -3, /* -1 -1 */\n -1, /* -1 0 */\n -5, /* -1 1 */\n -7, /* 0 -1 */\n 0, /* 0 0 */\n 7, /* 0 1 */\n 5, /* 1 -1 */\n 1, /* 1 0 */\n 3, /* 1 1 */\n ];\n\n var jsf = getJSF(coeffs[a], coeffs[b]);\n max = Math.max(jsf[0].length, max);\n naf[a] = new Array(max);\n naf[b] = new Array(max);\n for (j = 0; j < max; j++) {\n var ja = jsf[0][j] | 0;\n var jb = jsf[1][j] | 0;\n\n naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];\n naf[b][j] = 0;\n wnd[a] = comb;\n }\n }\n\n var acc = this.jpoint(null, null, null);\n var tmp = this._wnafT4;\n for (i = max; i >= 0; i--) {\n var k = 0;\n\n while (i >= 0) {\n var zero = true;\n for (j = 0; j < len; j++) {\n tmp[j] = naf[j][i] | 0;\n if (tmp[j] !== 0)\n zero = false;\n }\n if (!zero)\n break;\n k++;\n i--;\n }\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n if (i < 0)\n break;\n\n for (j = 0; j < len; j++) {\n var z = tmp[j];\n p;\n if (z === 0)\n continue;\n else if (z > 0)\n p = wnd[j][(z - 1) >> 1];\n else if (z < 0)\n p = wnd[j][(-z - 1) >> 1].neg();\n\n if (p.type === 'affine')\n acc = acc.mixedAdd(p);\n else\n acc = acc.add(p);\n }\n }\n // Zeroify references\n for (i = 0; i < len; i++)\n wnd[i] = null;\n\n if (jacobianResult)\n return acc;\n else\n return acc.toP();\n};\n\nfunction BasePoint(curve, type) {\n this.curve = curve;\n this.type = type;\n this.precomputed = null;\n}\nBaseCurve.BasePoint = BasePoint;\n\nBasePoint.prototype.eq = function eq(/*other*/) {\n throw new Error('Not implemented');\n};\n\nBasePoint.prototype.validate = function validate() {\n return this.curve.validate(this);\n};\n\nBaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n bytes = utils.toArray(bytes, enc);\n\n var len = this.p.byteLength();\n\n // uncompressed, hybrid-odd, hybrid-even\n if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&\n bytes.length - 1 === 2 * len) {\n if (bytes[0] === 0x06)\n assert(bytes[bytes.length - 1] % 2 === 0);\n else if (bytes[0] === 0x07)\n assert(bytes[bytes.length - 1] % 2 === 1);\n\n var res = this.point(bytes.slice(1, 1 + len),\n bytes.slice(1 + len, 1 + 2 * len));\n\n return res;\n } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) &&\n bytes.length - 1 === len) {\n return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);\n }\n throw new Error('Unknown point format');\n};\n\nBasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {\n return this.encode(enc, true);\n};\n\nBasePoint.prototype._encode = function _encode(compact) {\n var len = this.curve.p.byteLength();\n var x = this.getX().toArray('be', len);\n\n if (compact)\n return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x);\n\n return [ 0x04 ].concat(x, this.getY().toArray('be', len));\n};\n\nBasePoint.prototype.encode = function encode(enc, compact) {\n return utils.encode(this._encode(compact), enc);\n};\n\nBasePoint.prototype.precompute = function precompute(power) {\n if (this.precomputed)\n return this;\n\n var precomputed = {\n doubles: null,\n naf: null,\n beta: null,\n };\n precomputed.naf = this._getNAFPoints(8);\n precomputed.doubles = this._getDoubles(4, power);\n precomputed.beta = this._getBeta();\n this.precomputed = precomputed;\n\n return this;\n};\n\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n if (!this.precomputed)\n return false;\n\n var doubles = this.precomputed.doubles;\n if (!doubles)\n return false;\n\n return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);\n};\n\nBasePoint.prototype._getDoubles = function _getDoubles(step, power) {\n if (this.precomputed && this.precomputed.doubles)\n return this.precomputed.doubles;\n\n var doubles = [ this ];\n var acc = this;\n for (var i = 0; i < power; i += step) {\n for (var j = 0; j < step; j++)\n acc = acc.dbl();\n doubles.push(acc);\n }\n return {\n step: step,\n points: doubles,\n };\n};\n\nBasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {\n if (this.precomputed && this.precomputed.naf)\n return this.precomputed.naf;\n\n var res = [ this ];\n var max = (1 << wnd) - 1;\n var dbl = max === 1 ? null : this.dbl();\n for (var i = 1; i < max; i++)\n res[i] = res[i - 1].add(dbl);\n return {\n wnd: wnd,\n points: res,\n };\n};\n\nBasePoint.prototype._getBeta = function _getBeta() {\n return null;\n};\n\nBasePoint.prototype.dblp = function dblp(k) {\n var r = this;\n for (var i = 0; i < k; i++)\n r = r.dbl();\n return r;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction EdwardsCurve(conf) {\n // NOTE: Important as we are creating point in Base.call()\n this.twisted = (conf.a | 0) !== 1;\n this.mOneA = this.twisted && (conf.a | 0) === -1;\n this.extended = this.mOneA;\n\n Base.call(this, 'edwards', conf);\n\n this.a = new BN(conf.a, 16).umod(this.red.m);\n this.a = this.a.toRed(this.red);\n this.c = new BN(conf.c, 16).toRed(this.red);\n this.c2 = this.c.redSqr();\n this.d = new BN(conf.d, 16).toRed(this.red);\n this.dd = this.d.redAdd(this.d);\n\n assert(!this.twisted || this.c.fromRed().cmpn(1) === 0);\n this.oneC = (conf.c | 0) === 1;\n}\ninherits(EdwardsCurve, Base);\nmodule.exports = EdwardsCurve;\n\nEdwardsCurve.prototype._mulA = function _mulA(num) {\n if (this.mOneA)\n return num.redNeg();\n else\n return this.a.redMul(num);\n};\n\nEdwardsCurve.prototype._mulC = function _mulC(num) {\n if (this.oneC)\n return num;\n else\n return this.c.redMul(num);\n};\n\n// Just for compatibility with Short curve\nEdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {\n return this.point(x, y, z, t);\n};\n\nEdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var x2 = x.redSqr();\n var rhs = this.c2.redSub(this.a.redMul(x2));\n var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));\n\n var y2 = rhs.redMul(lhs.redInvm());\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {\n y = new BN(y, 16);\n if (!y.red)\n y = y.toRed(this.red);\n\n // x^2 = (y^2 - c^2) / (c^2 d y^2 - a)\n var y2 = y.redSqr();\n var lhs = y2.redSub(this.c2);\n var rhs = y2.redMul(this.d).redMul(this.c2).redSub(this.a);\n var x2 = lhs.redMul(rhs.redInvm());\n\n if (x2.cmp(this.zero) === 0) {\n if (odd)\n throw new Error('invalid point');\n else\n return this.point(this.zero, y);\n }\n\n var x = x2.redSqrt();\n if (x.redSqr().redSub(x2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n if (x.fromRed().isOdd() !== odd)\n x = x.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.validate = function validate(point) {\n if (point.isInfinity())\n return true;\n\n // Curve: A * X^2 + Y^2 = C^2 * (1 + D * X^2 * Y^2)\n point.normalize();\n\n var x2 = point.x.redSqr();\n var y2 = point.y.redSqr();\n var lhs = x2.redMul(this.a).redAdd(y2);\n var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));\n\n return lhs.cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, y, z, t) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && y === null && z === null) {\n this.x = this.curve.zero;\n this.y = this.curve.one;\n this.z = this.curve.one;\n this.t = this.curve.zero;\n this.zOne = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = z ? new BN(z, 16) : this.curve.one;\n this.t = t && new BN(t, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n if (this.t && !this.t.red)\n this.t = this.t.toRed(this.curve.red);\n this.zOne = this.z === this.curve.one;\n\n // Use extended coordinates\n if (this.curve.extended && !this.t) {\n this.t = this.x.redMul(this.y);\n if (!this.zOne)\n this.t = this.t.redMul(this.z.redInvm());\n }\n }\n}\ninherits(Point, Base.BasePoint);\n\nEdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nEdwardsCurve.prototype.point = function point(x, y, z, t) {\n return new Point(this, x, y, z, t);\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1], obj[2]);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.x.cmpn(0) === 0 &&\n (this.y.cmp(this.z) === 0 ||\n (this.zOne && this.y.cmp(this.curve.c) === 0));\n};\n\nPoint.prototype._extDbl = function _extDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #doubling-dbl-2008-hwcd\n // 4M + 4S\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = 2 * Z1^2\n var c = this.z.redSqr();\n c = c.redIAdd(c);\n // D = a * A\n var d = this.curve._mulA(a);\n // E = (X1 + Y1)^2 - A - B\n var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);\n // G = D + B\n var g = d.redAdd(b);\n // F = G - C\n var f = g.redSub(c);\n // H = D - B\n var h = d.redSub(b);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projDbl = function _projDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #doubling-dbl-2008-bbjlp\n // #doubling-dbl-2007-bl\n // and others\n // Generally 3M + 4S or 2M + 4S\n\n // B = (X1 + Y1)^2\n var b = this.x.redAdd(this.y).redSqr();\n // C = X1^2\n var c = this.x.redSqr();\n // D = Y1^2\n var d = this.y.redSqr();\n\n var nx;\n var ny;\n var nz;\n var e;\n var h;\n var j;\n if (this.curve.twisted) {\n // E = a * C\n e = this.curve._mulA(c);\n // F = E + D\n var f = e.redAdd(d);\n if (this.zOne) {\n // X3 = (B - C - D) * (F - 2)\n nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F^2 - 2 * F\n nz = f.redSqr().redSub(f).redSub(f);\n } else {\n // H = Z1^2\n h = this.z.redSqr();\n // J = F - 2 * H\n j = f.redSub(h).redISub(h);\n // X3 = (B-C-D)*J\n nx = b.redSub(c).redISub(d).redMul(j);\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F * J\n nz = f.redMul(j);\n }\n } else {\n // E = C + D\n e = c.redAdd(d);\n // H = (c * Z1)^2\n h = this.curve._mulC(this.z).redSqr();\n // J = E - 2 * H\n j = e.redSub(h).redSub(h);\n // X3 = c * (B - E) * J\n nx = this.curve._mulC(b.redISub(e)).redMul(j);\n // Y3 = c * E * (C - D)\n ny = this.curve._mulC(e).redMul(c.redISub(d));\n // Z3 = E * J\n nz = e.redMul(j);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n // Double in extended coordinates\n if (this.curve.extended)\n return this._extDbl();\n else\n return this._projDbl();\n};\n\nPoint.prototype._extAdd = function _extAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #addition-add-2008-hwcd-3\n // 8M\n\n // A = (Y1 - X1) * (Y2 - X2)\n var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));\n // B = (Y1 + X1) * (Y2 + X2)\n var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));\n // C = T1 * k * T2\n var c = this.t.redMul(this.curve.dd).redMul(p.t);\n // D = Z1 * 2 * Z2\n var d = this.z.redMul(p.z.redAdd(p.z));\n // E = B - A\n var e = b.redSub(a);\n // F = D - C\n var f = d.redSub(c);\n // G = D + C\n var g = d.redAdd(c);\n // H = B + A\n var h = b.redAdd(a);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projAdd = function _projAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #addition-add-2008-bbjlp\n // #addition-add-2007-bl\n // 10M + 1S\n\n // A = Z1 * Z2\n var a = this.z.redMul(p.z);\n // B = A^2\n var b = a.redSqr();\n // C = X1 * X2\n var c = this.x.redMul(p.x);\n // D = Y1 * Y2\n var d = this.y.redMul(p.y);\n // E = d * C * D\n var e = this.curve.d.redMul(c).redMul(d);\n // F = B - E\n var f = b.redSub(e);\n // G = B + E\n var g = b.redAdd(e);\n // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)\n var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);\n var nx = a.redMul(f).redMul(tmp);\n var ny;\n var nz;\n if (this.curve.twisted) {\n // Y3 = A * G * (D - a * C)\n ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));\n // Z3 = F * G\n nz = f.redMul(g);\n } else {\n // Y3 = A * G * (D - C)\n ny = a.redMul(g).redMul(d.redSub(c));\n // Z3 = c * F * G\n nz = this.curve._mulC(f).redMul(g);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.add = function add(p) {\n if (this.isInfinity())\n return p;\n if (p.isInfinity())\n return this;\n\n if (this.curve.extended)\n return this._extAdd(p);\n else\n return this._projAdd(p);\n};\n\nPoint.prototype.mul = function mul(k) {\n if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, false);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, true);\n};\n\nPoint.prototype.normalize = function normalize() {\n if (this.zOne)\n return this;\n\n // Normalize coordinates\n var zi = this.z.redInvm();\n this.x = this.x.redMul(zi);\n this.y = this.y.redMul(zi);\n if (this.t)\n this.t = this.t.redMul(zi);\n this.z = this.curve.one;\n this.zOne = true;\n return this;\n};\n\nPoint.prototype.neg = function neg() {\n return this.curve.point(this.x.redNeg(),\n this.y,\n this.z,\n this.t && this.t.redNeg());\n};\n\nPoint.prototype.getX = function getX() {\n this.normalize();\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n this.normalize();\n return this.y.fromRed();\n};\n\nPoint.prototype.eq = function eq(other) {\n return this === other ||\n this.getX().cmp(other.getX()) === 0 &&\n this.getY().cmp(other.getY()) === 0;\n};\n\nPoint.prototype.eqXToP = function eqXToP(x) {\n var rx = x.toRed(this.curve.red).redMul(this.z);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(this.z);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\n// Compatibility with BaseCurve\nPoint.prototype.toP = Point.prototype.normalize;\nPoint.prototype.mixedAdd = Point.prototype.add;\n","'use strict';\n\nvar curve = exports;\n\ncurve.base = require('./base');\ncurve.short = require('./short');\ncurve.mont = require('./mont');\ncurve.edwards = require('./edwards');\n","'use strict';\n\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar utils = require('../utils');\n\nfunction MontCurve(conf) {\n Base.call(this, 'mont', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.i4 = new BN(4).toRed(this.red).redInvm();\n this.two = new BN(2).toRed(this.red);\n this.a24 = this.i4.redMul(this.a.redAdd(this.two));\n}\ninherits(MontCurve, Base);\nmodule.exports = MontCurve;\n\nMontCurve.prototype.validate = function validate(point) {\n var x = point.normalize().x;\n var x2 = x.redSqr();\n var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);\n var y = rhs.redSqrt();\n\n return y.redSqr().cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, z) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && z === null) {\n this.x = this.curve.one;\n this.z = this.curve.zero;\n } else {\n this.x = new BN(x, 16);\n this.z = new BN(z, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n }\n}\ninherits(Point, Base.BasePoint);\n\nMontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n return this.point(utils.toArray(bytes, enc), 1);\n};\n\nMontCurve.prototype.point = function point(x, z) {\n return new Point(this, x, z);\n};\n\nMontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nPoint.prototype.precompute = function precompute() {\n // No-op\n};\n\nPoint.prototype._encode = function _encode() {\n return this.getX().toArray('be', this.curve.p.byteLength());\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1] || curve.one);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n\nPoint.prototype.dbl = function dbl() {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-1987-m-3\n // 2M + 2S + 4A\n\n // A = X1 + Z1\n var a = this.x.redAdd(this.z);\n // AA = A^2\n var aa = a.redSqr();\n // B = X1 - Z1\n var b = this.x.redSub(this.z);\n // BB = B^2\n var bb = b.redSqr();\n // C = AA - BB\n var c = aa.redSub(bb);\n // X3 = AA * BB\n var nx = aa.redMul(bb);\n // Z3 = C * (BB + A24 * C)\n var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.add = function add() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.diffAdd = function diffAdd(p, diff) {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-1987-m-3\n // 4M + 2S + 6A\n\n // A = X2 + Z2\n var a = this.x.redAdd(this.z);\n // B = X2 - Z2\n var b = this.x.redSub(this.z);\n // C = X3 + Z3\n var c = p.x.redAdd(p.z);\n // D = X3 - Z3\n var d = p.x.redSub(p.z);\n // DA = D * A\n var da = d.redMul(a);\n // CB = C * B\n var cb = c.redMul(b);\n // X5 = Z1 * (DA + CB)^2\n var nx = diff.z.redMul(da.redAdd(cb).redSqr());\n // Z5 = X1 * (DA - CB)^2\n var nz = diff.x.redMul(da.redISub(cb).redSqr());\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.mul = function mul(k) {\n var t = k.clone();\n var a = this; // (N / 2) * Q + Q\n var b = this.curve.point(null, null); // (N / 2) * Q\n var c = this; // Q\n\n for (var bits = []; t.cmpn(0) !== 0; t.iushrn(1))\n bits.push(t.andln(1));\n\n for (var i = bits.length - 1; i >= 0; i--) {\n if (bits[i] === 0) {\n // N * Q + Q = ((N / 2) * Q + Q)) + (N / 2) * Q\n a = a.diffAdd(b, c);\n // N * Q = 2 * ((N / 2) * Q + Q))\n b = b.dbl();\n } else {\n // N * Q = ((N / 2) * Q + Q) + ((N / 2) * Q)\n b = a.diffAdd(b, c);\n // N * Q + Q = 2 * ((N / 2) * Q + Q)\n a = a.dbl();\n }\n }\n return b;\n};\n\nPoint.prototype.mulAdd = function mulAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.jumlAdd = function jumlAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.eq = function eq(other) {\n return this.getX().cmp(other.getX()) === 0;\n};\n\nPoint.prototype.normalize = function normalize() {\n this.x = this.x.redMul(this.z.redInvm());\n this.z = this.curve.one;\n return this;\n};\n\nPoint.prototype.getX = function getX() {\n // Normalize coordinates\n this.normalize();\n\n return this.x.fromRed();\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction ShortCurve(conf) {\n Base.call(this, 'short', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.tinv = this.two.redInvm();\n\n this.zeroA = this.a.fromRed().cmpn(0) === 0;\n this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0;\n\n // If the curve is endomorphic, precalculate beta and lambda\n this.endo = this._getEndomorphism(conf);\n this._endoWnafT1 = new Array(4);\n this._endoWnafT2 = new Array(4);\n}\ninherits(ShortCurve, Base);\nmodule.exports = ShortCurve;\n\nShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {\n // No efficient endomorphism\n if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1)\n return;\n\n // Compute beta and lambda, that lambda * P = (beta * Px; Py)\n var beta;\n var lambda;\n if (conf.beta) {\n beta = new BN(conf.beta, 16).toRed(this.red);\n } else {\n var betas = this._getEndoRoots(this.p);\n // Choose the smallest beta\n beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];\n beta = beta.toRed(this.red);\n }\n if (conf.lambda) {\n lambda = new BN(conf.lambda, 16);\n } else {\n // Choose the lambda that is matching selected beta\n var lambdas = this._getEndoRoots(this.n);\n if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {\n lambda = lambdas[0];\n } else {\n lambda = lambdas[1];\n assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);\n }\n }\n\n // Get basis vectors, used for balanced length-two representation\n var basis;\n if (conf.basis) {\n basis = conf.basis.map(function(vec) {\n return {\n a: new BN(vec.a, 16),\n b: new BN(vec.b, 16),\n };\n });\n } else {\n basis = this._getEndoBasis(lambda);\n }\n\n return {\n beta: beta,\n lambda: lambda,\n basis: basis,\n };\n};\n\nShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {\n // Find roots of for x^2 + x + 1 in F\n // Root = (-1 +- Sqrt(-3)) / 2\n //\n var red = num === this.p ? this.red : BN.mont(num);\n var tinv = new BN(2).toRed(red).redInvm();\n var ntinv = tinv.redNeg();\n\n var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);\n\n var l1 = ntinv.redAdd(s).fromRed();\n var l2 = ntinv.redSub(s).fromRed();\n return [ l1, l2 ];\n};\n\nShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {\n // aprxSqrt >= sqrt(this.n)\n var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2));\n\n // 3.74\n // Run EGCD, until r(L + 1) < aprxSqrt\n var u = lambda;\n var v = this.n.clone();\n var x1 = new BN(1);\n var y1 = new BN(0);\n var x2 = new BN(0);\n var y2 = new BN(1);\n\n // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n)\n var a0;\n var b0;\n // First vector\n var a1;\n var b1;\n // Second vector\n var a2;\n var b2;\n\n var prevR;\n var i = 0;\n var r;\n var x;\n while (u.cmpn(0) !== 0) {\n var q = v.div(u);\n r = v.sub(q.mul(u));\n x = x2.sub(q.mul(x1));\n var y = y2.sub(q.mul(y1));\n\n if (!a1 && r.cmp(aprxSqrt) < 0) {\n a0 = prevR.neg();\n b0 = x1;\n a1 = r.neg();\n b1 = x;\n } else if (a1 && ++i === 2) {\n break;\n }\n prevR = r;\n\n v = u;\n u = r;\n x2 = x1;\n x1 = x;\n y2 = y1;\n y1 = y;\n }\n a2 = r.neg();\n b2 = x;\n\n var len1 = a1.sqr().add(b1.sqr());\n var len2 = a2.sqr().add(b2.sqr());\n if (len2.cmp(len1) >= 0) {\n a2 = a0;\n b2 = b0;\n }\n\n // Normalize signs\n if (a1.negative) {\n a1 = a1.neg();\n b1 = b1.neg();\n }\n if (a2.negative) {\n a2 = a2.neg();\n b2 = b2.neg();\n }\n\n return [\n { a: a1, b: b1 },\n { a: a2, b: b2 },\n ];\n};\n\nShortCurve.prototype._endoSplit = function _endoSplit(k) {\n var basis = this.endo.basis;\n var v1 = basis[0];\n var v2 = basis[1];\n\n var c1 = v2.b.mul(k).divRound(this.n);\n var c2 = v1.b.neg().mul(k).divRound(this.n);\n\n var p1 = c1.mul(v1.a);\n var p2 = c2.mul(v2.a);\n var q1 = c1.mul(v1.b);\n var q2 = c2.mul(v2.b);\n\n // Calculate answer\n var k1 = k.sub(p1).sub(p2);\n var k2 = q1.add(q2).neg();\n return { k1: k1, k2: k2 };\n};\n\nShortCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n // XXX Is there any way to tell if the number is odd without converting it\n // to non-red form?\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nShortCurve.prototype.validate = function validate(point) {\n if (point.inf)\n return true;\n\n var x = point.x;\n var y = point.y;\n\n var ax = this.a.redMul(x);\n var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);\n return y.redSqr().redISub(rhs).cmpn(0) === 0;\n};\n\nShortCurve.prototype._endoWnafMulAdd =\n function _endoWnafMulAdd(points, coeffs, jacobianResult) {\n var npoints = this._endoWnafT1;\n var ncoeffs = this._endoWnafT2;\n for (var i = 0; i < points.length; i++) {\n var split = this._endoSplit(coeffs[i]);\n var p = points[i];\n var beta = p._getBeta();\n\n if (split.k1.negative) {\n split.k1.ineg();\n p = p.neg(true);\n }\n if (split.k2.negative) {\n split.k2.ineg();\n beta = beta.neg(true);\n }\n\n npoints[i * 2] = p;\n npoints[i * 2 + 1] = beta;\n ncoeffs[i * 2] = split.k1;\n ncoeffs[i * 2 + 1] = split.k2;\n }\n var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult);\n\n // Clean-up references to points and coefficients\n for (var j = 0; j < i * 2; j++) {\n npoints[j] = null;\n ncoeffs[j] = null;\n }\n return res;\n };\n\nfunction Point(curve, x, y, isRed) {\n Base.BasePoint.call(this, curve, 'affine');\n if (x === null && y === null) {\n this.x = null;\n this.y = null;\n this.inf = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n // Force redgomery representation when loading from JSON\n if (isRed) {\n this.x.forceRed(this.curve.red);\n this.y.forceRed(this.curve.red);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n this.inf = false;\n }\n}\ninherits(Point, Base.BasePoint);\n\nShortCurve.prototype.point = function point(x, y, isRed) {\n return new Point(this, x, y, isRed);\n};\n\nShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {\n return Point.fromJSON(this, obj, red);\n};\n\nPoint.prototype._getBeta = function _getBeta() {\n if (!this.curve.endo)\n return;\n\n var pre = this.precomputed;\n if (pre && pre.beta)\n return pre.beta;\n\n var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);\n if (pre) {\n var curve = this.curve;\n var endoMul = function(p) {\n return curve.point(p.x.redMul(curve.endo.beta), p.y);\n };\n pre.beta = beta;\n beta.precomputed = {\n beta: null,\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(endoMul),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(endoMul),\n },\n };\n }\n return beta;\n};\n\nPoint.prototype.toJSON = function toJSON() {\n if (!this.precomputed)\n return [ this.x, this.y ];\n\n return [ this.x, this.y, this.precomputed && {\n doubles: this.precomputed.doubles && {\n step: this.precomputed.doubles.step,\n points: this.precomputed.doubles.points.slice(1),\n },\n naf: this.precomputed.naf && {\n wnd: this.precomputed.naf.wnd,\n points: this.precomputed.naf.points.slice(1),\n },\n } ];\n};\n\nPoint.fromJSON = function fromJSON(curve, obj, red) {\n if (typeof obj === 'string')\n obj = JSON.parse(obj);\n var res = curve.point(obj[0], obj[1], red);\n if (!obj[2])\n return res;\n\n function obj2point(obj) {\n return curve.point(obj[0], obj[1], red);\n }\n\n var pre = obj[2];\n res.precomputed = {\n beta: null,\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: [ res ].concat(pre.doubles.points.map(obj2point)),\n },\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: [ res ].concat(pre.naf.points.map(obj2point)),\n },\n };\n return res;\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n return this.inf;\n};\n\nPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.inf)\n return p;\n\n // P + O = P\n if (p.inf)\n return this;\n\n // P + P = 2P\n if (this.eq(p))\n return this.dbl();\n\n // P + (-P) = O\n if (this.neg().eq(p))\n return this.curve.point(null, null);\n\n // P + Q = O\n if (this.x.cmp(p.x) === 0)\n return this.curve.point(null, null);\n\n var c = this.y.redSub(p.y);\n if (c.cmpn(0) !== 0)\n c = c.redMul(this.x.redSub(p.x).redInvm());\n var nx = c.redSqr().redISub(this.x).redISub(p.x);\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.inf)\n return this;\n\n // 2P = O\n var ys1 = this.y.redAdd(this.y);\n if (ys1.cmpn(0) === 0)\n return this.curve.point(null, null);\n\n var a = this.curve.a;\n\n var x2 = this.x.redSqr();\n var dyinv = ys1.redInvm();\n var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);\n\n var nx = c.redSqr().redISub(this.x.redAdd(this.x));\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.getX = function getX() {\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n return this.y.fromRed();\n};\n\nPoint.prototype.mul = function mul(k) {\n k = new BN(k, 16);\n if (this.isInfinity())\n return this;\n else if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else if (this.curve.endo)\n return this.curve._endoWnafMulAdd([ this ], [ k ]);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs, true);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2, true);\n};\n\nPoint.prototype.eq = function eq(p) {\n return this === p ||\n this.inf === p.inf &&\n (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);\n};\n\nPoint.prototype.neg = function neg(_precompute) {\n if (this.inf)\n return this;\n\n var res = this.curve.point(this.x, this.y.redNeg());\n if (_precompute && this.precomputed) {\n var pre = this.precomputed;\n var negate = function(p) {\n return p.neg();\n };\n res.precomputed = {\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(negate),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(negate),\n },\n };\n }\n return res;\n};\n\nPoint.prototype.toJ = function toJ() {\n if (this.inf)\n return this.curve.jpoint(null, null, null);\n\n var res = this.curve.jpoint(this.x, this.y, this.curve.one);\n return res;\n};\n\nfunction JPoint(curve, x, y, z) {\n Base.BasePoint.call(this, curve, 'jacobian');\n if (x === null && y === null && z === null) {\n this.x = this.curve.one;\n this.y = this.curve.one;\n this.z = new BN(0);\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = new BN(z, 16);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n\n this.zOne = this.z === this.curve.one;\n}\ninherits(JPoint, Base.BasePoint);\n\nShortCurve.prototype.jpoint = function jpoint(x, y, z) {\n return new JPoint(this, x, y, z);\n};\n\nJPoint.prototype.toP = function toP() {\n if (this.isInfinity())\n return this.curve.point(null, null);\n\n var zinv = this.z.redInvm();\n var zinv2 = zinv.redSqr();\n var ax = this.x.redMul(zinv2);\n var ay = this.y.redMul(zinv2).redMul(zinv);\n\n return this.curve.point(ax, ay);\n};\n\nJPoint.prototype.neg = function neg() {\n return this.curve.jpoint(this.x, this.y.redNeg(), this.z);\n};\n\nJPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.isInfinity())\n return p;\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 12M + 4S + 7A\n var pz2 = p.z.redSqr();\n var z2 = this.z.redSqr();\n var u1 = this.x.redMul(pz2);\n var u2 = p.x.redMul(z2);\n var s1 = this.y.redMul(pz2.redMul(p.z));\n var s2 = p.y.redMul(z2.redMul(this.z));\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(p.z).redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mixedAdd = function mixedAdd(p) {\n // O + P = P\n if (this.isInfinity())\n return p.toJ();\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 8M + 3S + 7A\n var z2 = this.z.redSqr();\n var u1 = this.x;\n var u2 = p.x.redMul(z2);\n var s1 = this.y;\n var s2 = p.y.redMul(z2).redMul(this.z);\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.dblp = function dblp(pow) {\n if (pow === 0)\n return this;\n if (this.isInfinity())\n return this;\n if (!pow)\n return this.dbl();\n\n var i;\n if (this.curve.zeroA || this.curve.threeA) {\n var r = this;\n for (i = 0; i < pow; i++)\n r = r.dbl();\n return r;\n }\n\n // 1M + 2S + 1A + N * (4S + 5M + 8A)\n // N = 1 => 6M + 6S + 9A\n var a = this.curve.a;\n var tinv = this.curve.tinv;\n\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n // Reuse results\n var jyd = jy.redAdd(jy);\n for (i = 0; i < pow; i++) {\n var jx2 = jx.redSqr();\n var jyd2 = jyd.redSqr();\n var jyd4 = jyd2.redSqr();\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var t1 = jx.redMul(jyd2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n var dny = c.redMul(t2);\n dny = dny.redIAdd(dny).redISub(jyd4);\n var nz = jyd.redMul(jz);\n if (i + 1 < pow)\n jz4 = jz4.redMul(jyd4);\n\n jx = nx;\n jz = nz;\n jyd = dny;\n }\n\n return this.curve.jpoint(jx, jyd.redMul(tinv), jz);\n};\n\nJPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n if (this.curve.zeroA)\n return this._zeroDbl();\n else if (this.curve.threeA)\n return this._threeDbl();\n else\n return this._dbl();\n};\n\nJPoint.prototype._zeroDbl = function _zeroDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 14A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // T = M ^ 2 - 2*S\n var t = m.redSqr().redISub(s).redISub(s);\n\n // 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2*Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-dbl-2009-l\n // 2M + 5S + 13A\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = B^2\n var c = b.redSqr();\n // D = 2 * ((X1 + B)^2 - A - C)\n var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);\n d = d.redIAdd(d);\n // E = 3 * A\n var e = a.redAdd(a).redIAdd(a);\n // F = E^2\n var f = e.redSqr();\n\n // 8 * C\n var c8 = c.redIAdd(c);\n c8 = c8.redIAdd(c8);\n c8 = c8.redIAdd(c8);\n\n // X3 = F - 2 * D\n nx = f.redISub(d).redISub(d);\n // Y3 = E * (D - X3) - 8 * C\n ny = e.redMul(d.redISub(nx)).redISub(c8);\n // Z3 = 2 * Y1 * Z1\n nz = this.y.redMul(this.z);\n nz = nz.redIAdd(nz);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._threeDbl = function _threeDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 15A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a\n var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);\n // T = M^2 - 2 * S\n var t = m.redSqr().redISub(s).redISub(s);\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2 * Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b\n // 3M + 5S\n\n // delta = Z1^2\n var delta = this.z.redSqr();\n // gamma = Y1^2\n var gamma = this.y.redSqr();\n // beta = X1 * gamma\n var beta = this.x.redMul(gamma);\n // alpha = 3 * (X1 - delta) * (X1 + delta)\n var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));\n alpha = alpha.redAdd(alpha).redIAdd(alpha);\n // X3 = alpha^2 - 8 * beta\n var beta4 = beta.redIAdd(beta);\n beta4 = beta4.redIAdd(beta4);\n var beta8 = beta4.redAdd(beta4);\n nx = alpha.redSqr().redISub(beta8);\n // Z3 = (Y1 + Z1)^2 - gamma - delta\n nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);\n // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2\n var ggamma8 = gamma.redSqr();\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._dbl = function _dbl() {\n var a = this.curve.a;\n\n // 4M + 6S + 10A\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n var jx2 = jx.redSqr();\n var jy2 = jy.redSqr();\n\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var jxd4 = jx.redAdd(jx);\n jxd4 = jxd4.redIAdd(jxd4);\n var t1 = jxd4.redMul(jy2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n\n var jyd8 = jy2.redSqr();\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n var ny = c.redMul(t2).redISub(jyd8);\n var nz = jy.redAdd(jy).redMul(jz);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.trpl = function trpl() {\n if (!this.curve.zeroA)\n return this.dbl().add(this);\n\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl\n // 5M + 10S + ...\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // ZZ = Z1^2\n var zz = this.z.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // M = 3 * XX + a * ZZ2; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // MM = M^2\n var mm = m.redSqr();\n // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM\n var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n e = e.redIAdd(e);\n e = e.redAdd(e).redIAdd(e);\n e = e.redISub(mm);\n // EE = E^2\n var ee = e.redSqr();\n // T = 16*YYYY\n var t = yyyy.redIAdd(yyyy);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n // U = (M + E)^2 - MM - EE - T\n var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);\n // X3 = 4 * (X1 * EE - 4 * YY * U)\n var yyu4 = yy.redMul(u);\n yyu4 = yyu4.redIAdd(yyu4);\n yyu4 = yyu4.redIAdd(yyu4);\n var nx = this.x.redMul(ee).redISub(yyu4);\n nx = nx.redIAdd(nx);\n nx = nx.redIAdd(nx);\n // Y3 = 8 * Y1 * (U * (T - U) - E * EE)\n var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n // Z3 = (Z1 + E)^2 - ZZ - EE\n var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mul = function mul(k, kbase) {\n k = new BN(k, kbase);\n\n return this.curve._wnafMul(this, k);\n};\n\nJPoint.prototype.eq = function eq(p) {\n if (p.type === 'affine')\n return this.eq(p.toJ());\n\n if (this === p)\n return true;\n\n // x1 * z2^2 == x2 * z1^2\n var z2 = this.z.redSqr();\n var pz2 = p.z.redSqr();\n if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0)\n return false;\n\n // y1 * z2^3 == y2 * z1^3\n var z3 = z2.redMul(this.z);\n var pz3 = pz2.redMul(p.z);\n return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;\n};\n\nJPoint.prototype.eqXToP = function eqXToP(x) {\n var zs = this.z.redSqr();\n var rx = x.toRed(this.curve.red).redMul(zs);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(zs);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\nJPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nJPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n","'use strict';\n\nvar curves = exports;\n\nvar hash = require('hash.js');\nvar curve = require('./curve');\nvar utils = require('./utils');\n\nvar assert = utils.assert;\n\nfunction PresetCurve(options) {\n if (options.type === 'short')\n this.curve = new curve.short(options);\n else if (options.type === 'edwards')\n this.curve = new curve.edwards(options);\n else\n this.curve = new curve.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n\n assert(this.g.validate(), 'Invalid curve');\n assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function() {\n var curve = new PresetCurve(options);\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n value: curve,\n });\n return curve;\n },\n });\n}\n\ndefineCurve('p192', {\n type: 'short',\n prime: 'p192',\n p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',\n b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',\n n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',\n hash: hash.sha256,\n gRed: false,\n g: [\n '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012',\n '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811',\n ],\n});\n\ndefineCurve('p224', {\n type: 'short',\n prime: 'p224',\n p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',\n b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',\n n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',\n hash: hash.sha256,\n gRed: false,\n g: [\n 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21',\n 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34',\n ],\n});\n\ndefineCurve('p256', {\n type: 'short',\n prime: null,\n p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',\n a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',\n b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',\n n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',\n hash: hash.sha256,\n gRed: false,\n g: [\n '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296',\n '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5',\n ],\n});\n\ndefineCurve('p384', {\n type: 'short',\n prime: null,\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 ffffffff',\n a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 fffffffc',\n b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' +\n '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +\n 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n hash: hash.sha384,\n gRed: false,\n g: [\n 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' +\n '5502f25d bf55296c 3a545e38 72760ab7',\n '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' +\n '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f',\n ],\n});\n\ndefineCurve('p521', {\n type: 'short',\n prime: null,\n p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' +\n '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' +\n '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' +\n 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n hash: hash.sha512,\n gRed: false,\n g: [\n '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' +\n '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' +\n 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66',\n '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' +\n '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' +\n '3fad0761 353c7086 a272c240 88be9476 9fd16650',\n ],\n});\n\ndefineCurve('curve25519', {\n type: 'mont',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '76d06',\n b: '1',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '9',\n ],\n});\n\ndefineCurve('ed25519', {\n type: 'edwards',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '-1',\n c: '1',\n // -121665 * (121666^(-1)) (mod P)\n d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',\n\n // 4/5\n '6666666666666666666666666666666666666666666666666666666666666658',\n ],\n});\n\nvar pre;\ntry {\n pre = require('./precomputed/secp256k1');\n} catch (e) {\n pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n type: 'short',\n prime: 'k256',\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n a: '0',\n b: '7',\n n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n h: '1',\n hash: hash.sha256,\n\n // Precomputed endomorphism\n beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n basis: [\n {\n a: '3086d221a7d46bcde86c90e49284eb15',\n b: '-e4437ed6010e88286f547fa90abfe4c3',\n },\n {\n a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n b: '3086d221a7d46bcde86c90e49284eb15',\n },\n ],\n\n gRed: false,\n g: [\n '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',\n '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n pre,\n ],\n});\n","'use strict';\n\nvar BN = require('bn.js');\nvar HmacDRBG = require('hmac-drbg');\nvar utils = require('../utils');\nvar curves = require('../curves');\nvar rand = require('brorand');\nvar assert = utils.assert;\n\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EC(options) {\n if (!(this instanceof EC))\n return new EC(options);\n\n // Shortcut `elliptic.ec(curve-name)`\n if (typeof options === 'string') {\n assert(Object.prototype.hasOwnProperty.call(curves, options),\n 'Unknown curve ' + options);\n\n options = curves[options];\n }\n\n // Shortcut for `elliptic.ec(elliptic.curves.curveName)`\n if (options instanceof curves.PresetCurve)\n options = { curve: options };\n\n this.curve = options.curve.curve;\n this.n = this.curve.n;\n this.nh = this.n.ushrn(1);\n this.g = this.curve.g;\n\n // Point on curve\n this.g = options.curve.g;\n this.g.precompute(options.curve.n.bitLength() + 1);\n\n // Hash for function for DRBG\n this.hash = options.hash || options.curve.hash;\n}\nmodule.exports = EC;\n\nEC.prototype.keyPair = function keyPair(options) {\n return new KeyPair(this, options);\n};\n\nEC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {\n return KeyPair.fromPrivate(this, priv, enc);\n};\n\nEC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {\n return KeyPair.fromPublic(this, pub, enc);\n};\n\nEC.prototype.genKeyPair = function genKeyPair(options) {\n if (!options)\n options = {};\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n entropy: options.entropy || rand(this.hash.hmacStrength),\n entropyEnc: options.entropy && options.entropyEnc || 'utf8',\n nonce: this.n.toArray(),\n });\n\n var bytes = this.n.byteLength();\n var ns2 = this.n.sub(new BN(2));\n for (;;) {\n var priv = new BN(drbg.generate(bytes));\n if (priv.cmp(ns2) > 0)\n continue;\n\n priv.iaddn(1);\n return this.keyFromPrivate(priv);\n }\n};\n\nEC.prototype._truncateToN = function _truncateToN(msg, truncOnly) {\n var delta = msg.byteLength() * 8 - this.n.bitLength();\n if (delta > 0)\n msg = msg.ushrn(delta);\n if (!truncOnly && msg.cmp(this.n) >= 0)\n return msg.sub(this.n);\n else\n return msg;\n};\n\nEC.prototype.sign = function sign(msg, key, enc, options) {\n if (typeof enc === 'object') {\n options = enc;\n enc = null;\n }\n if (!options)\n options = {};\n\n key = this.keyFromPrivate(key, enc);\n msg = this._truncateToN(new BN(msg, 16));\n\n // Zero-extend key to provide enough entropy\n var bytes = this.n.byteLength();\n var bkey = key.getPrivate().toArray('be', bytes);\n\n // Zero-extend nonce to have the same byte size as N\n var nonce = msg.toArray('be', bytes);\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n entropy: bkey,\n nonce: nonce,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n });\n\n // Number of bytes to generate\n var ns1 = this.n.sub(new BN(1));\n\n for (var iter = 0; ; iter++) {\n var k = options.k ?\n options.k(iter) :\n new BN(drbg.generate(this.n.byteLength()));\n k = this._truncateToN(k, true);\n if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0)\n continue;\n\n var kp = this.g.mul(k);\n if (kp.isInfinity())\n continue;\n\n var kpX = kp.getX();\n var r = kpX.umod(this.n);\n if (r.cmpn(0) === 0)\n continue;\n\n var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));\n s = s.umod(this.n);\n if (s.cmpn(0) === 0)\n continue;\n\n var recoveryParam = (kp.getY().isOdd() ? 1 : 0) |\n (kpX.cmp(r) !== 0 ? 2 : 0);\n\n // Use complement of `s`, if it is > `n / 2`\n if (options.canonical && s.cmp(this.nh) > 0) {\n s = this.n.sub(s);\n recoveryParam ^= 1;\n }\n\n return new Signature({ r: r, s: s, recoveryParam: recoveryParam });\n }\n};\n\nEC.prototype.verify = function verify(msg, signature, key, enc) {\n msg = this._truncateToN(new BN(msg, 16));\n key = this.keyFromPublic(key, enc);\n signature = new Signature(signature, 'hex');\n\n // Perform primitive values validation\n var r = signature.r;\n var s = signature.s;\n if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0)\n return false;\n if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0)\n return false;\n\n // Validate signature\n var sinv = s.invm(this.n);\n var u1 = sinv.mul(msg).umod(this.n);\n var u2 = sinv.mul(r).umod(this.n);\n var p;\n\n if (!this.curve._maxwellTrick) {\n p = this.g.mulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n return p.getX().umod(this.n).cmp(r) === 0;\n }\n\n // NOTE: Greg Maxwell's trick, inspired by:\n // https://git.io/vad3K\n\n p = this.g.jmulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n // Compare `p.x` of Jacobian point with `r`,\n // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the\n // inverse of `p.z^2`\n return p.eqXToP(r);\n};\n\nEC.prototype.recoverPubKey = function(msg, signature, j, enc) {\n assert((3 & j) === j, 'The recovery param is more than two bits');\n signature = new Signature(signature, enc);\n\n var n = this.n;\n var e = new BN(msg);\n var r = signature.r;\n var s = signature.s;\n\n // A set LSB signifies that the y-coordinate is odd\n var isYOdd = j & 1;\n var isSecondKey = j >> 1;\n if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey)\n throw new Error('Unable to find sencond key candinate');\n\n // 1.1. Let x = r + jn.\n if (isSecondKey)\n r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);\n else\n r = this.curve.pointFromX(r, isYOdd);\n\n var rInv = signature.r.invm(n);\n var s1 = n.sub(e).mul(rInv).umod(n);\n var s2 = s.mul(rInv).umod(n);\n\n // 1.6.1 Compute Q = r^-1 (sR - eG)\n // Q = r^-1 (sR + -eG)\n return this.g.mulAdd(s1, r, s2);\n};\n\nEC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {\n signature = new Signature(signature, enc);\n if (signature.recoveryParam !== null)\n return signature.recoveryParam;\n\n for (var i = 0; i < 4; i++) {\n var Qprime;\n try {\n Qprime = this.recoverPubKey(e, signature, i);\n } catch (e) {\n continue;\n }\n\n if (Qprime.eq(Q))\n return i;\n }\n throw new Error('Unable to find valid recovery factor');\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction KeyPair(ec, options) {\n this.ec = ec;\n this.priv = null;\n this.pub = null;\n\n // KeyPair(ec, { priv: ..., pub: ... })\n if (options.priv)\n this._importPrivate(options.priv, options.privEnc);\n if (options.pub)\n this._importPublic(options.pub, options.pubEnc);\n}\nmodule.exports = KeyPair;\n\nKeyPair.fromPublic = function fromPublic(ec, pub, enc) {\n if (pub instanceof KeyPair)\n return pub;\n\n return new KeyPair(ec, {\n pub: pub,\n pubEnc: enc,\n });\n};\n\nKeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {\n if (priv instanceof KeyPair)\n return priv;\n\n return new KeyPair(ec, {\n priv: priv,\n privEnc: enc,\n });\n};\n\nKeyPair.prototype.validate = function validate() {\n var pub = this.getPublic();\n\n if (pub.isInfinity())\n return { result: false, reason: 'Invalid public key' };\n if (!pub.validate())\n return { result: false, reason: 'Public key is not a point' };\n if (!pub.mul(this.ec.curve.n).isInfinity())\n return { result: false, reason: 'Public key * N != O' };\n\n return { result: true, reason: null };\n};\n\nKeyPair.prototype.getPublic = function getPublic(compact, enc) {\n // compact is optional argument\n if (typeof compact === 'string') {\n enc = compact;\n compact = null;\n }\n\n if (!this.pub)\n this.pub = this.ec.g.mul(this.priv);\n\n if (!enc)\n return this.pub;\n\n return this.pub.encode(enc, compact);\n};\n\nKeyPair.prototype.getPrivate = function getPrivate(enc) {\n if (enc === 'hex')\n return this.priv.toString(16, 2);\n else\n return this.priv;\n};\n\nKeyPair.prototype._importPrivate = function _importPrivate(key, enc) {\n this.priv = new BN(key, enc || 16);\n\n // Ensure that the priv won't be bigger than n, otherwise we may fail\n // in fixed multiplication method\n this.priv = this.priv.umod(this.ec.curve.n);\n};\n\nKeyPair.prototype._importPublic = function _importPublic(key, enc) {\n if (key.x || key.y) {\n // Montgomery points only have an `x` coordinate.\n // Weierstrass/Edwards points on the other hand have both `x` and\n // `y` coordinates.\n if (this.ec.curve.type === 'mont') {\n assert(key.x, 'Need x coordinate');\n } else if (this.ec.curve.type === 'short' ||\n this.ec.curve.type === 'edwards') {\n assert(key.x && key.y, 'Need both x and y coordinate');\n }\n this.pub = this.ec.curve.point(key.x, key.y);\n return;\n }\n this.pub = this.ec.curve.decodePoint(key, enc);\n};\n\n// ECDH\nKeyPair.prototype.derive = function derive(pub) {\n if(!pub.validate()) {\n assert(pub.validate(), 'public point not validated');\n }\n return pub.mul(this.priv).getX();\n};\n\n// ECDSA\nKeyPair.prototype.sign = function sign(msg, enc, options) {\n return this.ec.sign(msg, this, enc, options);\n};\n\nKeyPair.prototype.verify = function verify(msg, signature) {\n return this.ec.verify(msg, signature, this);\n};\n\nKeyPair.prototype.inspect = function inspect() {\n return '';\n};\n","'use strict';\n\nvar BN = require('bn.js');\n\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction Signature(options, enc) {\n if (options instanceof Signature)\n return options;\n\n if (this._importDER(options, enc))\n return;\n\n assert(options.r && options.s, 'Signature without r or s');\n this.r = new BN(options.r, 16);\n this.s = new BN(options.s, 16);\n if (options.recoveryParam === undefined)\n this.recoveryParam = null;\n else\n this.recoveryParam = options.recoveryParam;\n}\nmodule.exports = Signature;\n\nfunction Position() {\n this.place = 0;\n}\n\nfunction getLength(buf, p) {\n var initial = buf[p.place++];\n if (!(initial & 0x80)) {\n return initial;\n }\n var octetLen = initial & 0xf;\n\n // Indefinite length or overflow\n if (octetLen === 0 || octetLen > 4) {\n return false;\n }\n\n var val = 0;\n for (var i = 0, off = p.place; i < octetLen; i++, off++) {\n val <<= 8;\n val |= buf[off];\n val >>>= 0;\n }\n\n // Leading zeroes\n if (val <= 0x7f) {\n return false;\n }\n\n p.place = off;\n return val;\n}\n\nfunction rmPadding(buf) {\n var i = 0;\n var len = buf.length - 1;\n while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {\n i++;\n }\n if (i === 0) {\n return buf;\n }\n return buf.slice(i);\n}\n\nSignature.prototype._importDER = function _importDER(data, enc) {\n data = utils.toArray(data, enc);\n var p = new Position();\n if (data[p.place++] !== 0x30) {\n return false;\n }\n var len = getLength(data, p);\n if (len === false) {\n return false;\n }\n if ((len + p.place) !== data.length) {\n return false;\n }\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var rlen = getLength(data, p);\n if (rlen === false) {\n return false;\n }\n var r = data.slice(p.place, rlen + p.place);\n p.place += rlen;\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var slen = getLength(data, p);\n if (slen === false) {\n return false;\n }\n if (data.length !== slen + p.place) {\n return false;\n }\n var s = data.slice(p.place, slen + p.place);\n if (r[0] === 0) {\n if (r[1] & 0x80) {\n r = r.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n if (s[0] === 0) {\n if (s[1] & 0x80) {\n s = s.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n\n this.r = new BN(r);\n this.s = new BN(s);\n this.recoveryParam = null;\n\n return true;\n};\n\nfunction constructLength(arr, len) {\n if (len < 0x80) {\n arr.push(len);\n return;\n }\n var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);\n arr.push(octets | 0x80);\n while (--octets) {\n arr.push((len >>> (octets << 3)) & 0xff);\n }\n arr.push(len);\n}\n\nSignature.prototype.toDER = function toDER(enc) {\n var r = this.r.toArray();\n var s = this.s.toArray();\n\n // Pad values\n if (r[0] & 0x80)\n r = [ 0 ].concat(r);\n // Pad values\n if (s[0] & 0x80)\n s = [ 0 ].concat(s);\n\n r = rmPadding(r);\n s = rmPadding(s);\n\n while (!s[0] && !(s[1] & 0x80)) {\n s = s.slice(1);\n }\n var arr = [ 0x02 ];\n constructLength(arr, r.length);\n arr = arr.concat(r);\n arr.push(0x02);\n constructLength(arr, s.length);\n var backHalf = arr.concat(s);\n var res = [ 0x30 ];\n constructLength(res, backHalf.length);\n res = res.concat(backHalf);\n return utils.encode(res, enc);\n};\n","'use strict';\n\nvar hash = require('hash.js');\nvar curves = require('../curves');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EDDSA(curve) {\n assert(curve === 'ed25519', 'only tested with ed25519 so far');\n\n if (!(this instanceof EDDSA))\n return new EDDSA(curve);\n\n curve = curves[curve].curve;\n this.curve = curve;\n this.g = curve.g;\n this.g.precompute(curve.n.bitLength() + 1);\n\n this.pointClass = curve.point().constructor;\n this.encodingLength = Math.ceil(curve.n.bitLength() / 8);\n this.hash = hash.sha512;\n}\n\nmodule.exports = EDDSA;\n\n/**\n* @param {Array|String} message - message bytes\n* @param {Array|String|KeyPair} secret - secret bytes or a keypair\n* @returns {Signature} - signature\n*/\nEDDSA.prototype.sign = function sign(message, secret) {\n message = parseBytes(message);\n var key = this.keyFromSecret(secret);\n var r = this.hashInt(key.messagePrefix(), message);\n var R = this.g.mul(r);\n var Rencoded = this.encodePoint(R);\n var s_ = this.hashInt(Rencoded, key.pubBytes(), message)\n .mul(key.priv());\n var S = r.add(s_).umod(this.curve.n);\n return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });\n};\n\n/**\n* @param {Array} message - message bytes\n* @param {Array|String|Signature} sig - sig bytes\n* @param {Array|String|Point|KeyPair} pub - public key\n* @returns {Boolean} - true if public key matches sig of message\n*/\nEDDSA.prototype.verify = function verify(message, sig, pub) {\n message = parseBytes(message);\n sig = this.makeSignature(sig);\n var key = this.keyFromPublic(pub);\n var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);\n var SG = this.g.mul(sig.S());\n var RplusAh = sig.R().add(key.pub().mul(h));\n return RplusAh.eq(SG);\n};\n\nEDDSA.prototype.hashInt = function hashInt() {\n var hash = this.hash();\n for (var i = 0; i < arguments.length; i++)\n hash.update(arguments[i]);\n return utils.intFromLE(hash.digest()).umod(this.curve.n);\n};\n\nEDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {\n return KeyPair.fromPublic(this, pub);\n};\n\nEDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {\n return KeyPair.fromSecret(this, secret);\n};\n\nEDDSA.prototype.makeSignature = function makeSignature(sig) {\n if (sig instanceof Signature)\n return sig;\n return new Signature(this, sig);\n};\n\n/**\n* * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-03#section-5.2\n*\n* EDDSA defines methods for encoding and decoding points and integers. These are\n* helper convenience methods, that pass along to utility functions implied\n* parameters.\n*\n*/\nEDDSA.prototype.encodePoint = function encodePoint(point) {\n var enc = point.getY().toArray('le', this.encodingLength);\n enc[this.encodingLength - 1] |= point.getX().isOdd() ? 0x80 : 0;\n return enc;\n};\n\nEDDSA.prototype.decodePoint = function decodePoint(bytes) {\n bytes = utils.parseBytes(bytes);\n\n var lastIx = bytes.length - 1;\n var normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & ~0x80);\n var xIsOdd = (bytes[lastIx] & 0x80) !== 0;\n\n var y = utils.intFromLE(normed);\n return this.curve.pointFromY(y, xIsOdd);\n};\n\nEDDSA.prototype.encodeInt = function encodeInt(num) {\n return num.toArray('le', this.encodingLength);\n};\n\nEDDSA.prototype.decodeInt = function decodeInt(bytes) {\n return utils.intFromLE(bytes);\n};\n\nEDDSA.prototype.isPoint = function isPoint(val) {\n return val instanceof this.pointClass;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar cachedProperty = utils.cachedProperty;\n\n/**\n* @param {EDDSA} eddsa - instance\n* @param {Object} params - public/private key parameters\n*\n* @param {Array} [params.secret] - secret seed bytes\n* @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)\n* @param {Array} [params.pub] - public key point encoded as bytes\n*\n*/\nfunction KeyPair(eddsa, params) {\n this.eddsa = eddsa;\n this._secret = parseBytes(params.secret);\n if (eddsa.isPoint(params.pub))\n this._pub = params.pub;\n else\n this._pubBytes = parseBytes(params.pub);\n}\n\nKeyPair.fromPublic = function fromPublic(eddsa, pub) {\n if (pub instanceof KeyPair)\n return pub;\n return new KeyPair(eddsa, { pub: pub });\n};\n\nKeyPair.fromSecret = function fromSecret(eddsa, secret) {\n if (secret instanceof KeyPair)\n return secret;\n return new KeyPair(eddsa, { secret: secret });\n};\n\nKeyPair.prototype.secret = function secret() {\n return this._secret;\n};\n\ncachedProperty(KeyPair, 'pubBytes', function pubBytes() {\n return this.eddsa.encodePoint(this.pub());\n});\n\ncachedProperty(KeyPair, 'pub', function pub() {\n if (this._pubBytes)\n return this.eddsa.decodePoint(this._pubBytes);\n return this.eddsa.g.mul(this.priv());\n});\n\ncachedProperty(KeyPair, 'privBytes', function privBytes() {\n var eddsa = this.eddsa;\n var hash = this.hash();\n var lastIx = eddsa.encodingLength - 1;\n\n var a = hash.slice(0, eddsa.encodingLength);\n a[0] &= 248;\n a[lastIx] &= 127;\n a[lastIx] |= 64;\n\n return a;\n});\n\ncachedProperty(KeyPair, 'priv', function priv() {\n return this.eddsa.decodeInt(this.privBytes());\n});\n\ncachedProperty(KeyPair, 'hash', function hash() {\n return this.eddsa.hash().update(this.secret()).digest();\n});\n\ncachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {\n return this.hash().slice(this.eddsa.encodingLength);\n});\n\nKeyPair.prototype.sign = function sign(message) {\n assert(this._secret, 'KeyPair can only verify');\n return this.eddsa.sign(message, this);\n};\n\nKeyPair.prototype.verify = function verify(message, sig) {\n return this.eddsa.verify(message, sig, this);\n};\n\nKeyPair.prototype.getSecret = function getSecret(enc) {\n assert(this._secret, 'KeyPair is public only');\n return utils.encode(this.secret(), enc);\n};\n\nKeyPair.prototype.getPublic = function getPublic(enc) {\n return utils.encode(this.pubBytes(), enc);\n};\n\nmodule.exports = KeyPair;\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar cachedProperty = utils.cachedProperty;\nvar parseBytes = utils.parseBytes;\n\n/**\n* @param {EDDSA} eddsa - eddsa instance\n* @param {Array|Object} sig -\n* @param {Array|Point} [sig.R] - R point as Point or bytes\n* @param {Array|bn} [sig.S] - S scalar as bn or bytes\n* @param {Array} [sig.Rencoded] - R point encoded\n* @param {Array} [sig.Sencoded] - S scalar encoded\n*/\nfunction Signature(eddsa, sig) {\n this.eddsa = eddsa;\n\n if (typeof sig !== 'object')\n sig = parseBytes(sig);\n\n if (Array.isArray(sig)) {\n sig = {\n R: sig.slice(0, eddsa.encodingLength),\n S: sig.slice(eddsa.encodingLength),\n };\n }\n\n assert(sig.R && sig.S, 'Signature without R or S');\n\n if (eddsa.isPoint(sig.R))\n this._R = sig.R;\n if (sig.S instanceof BN)\n this._S = sig.S;\n\n this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;\n this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;\n}\n\ncachedProperty(Signature, 'S', function S() {\n return this.eddsa.decodeInt(this.Sencoded());\n});\n\ncachedProperty(Signature, 'R', function R() {\n return this.eddsa.decodePoint(this.Rencoded());\n});\n\ncachedProperty(Signature, 'Rencoded', function Rencoded() {\n return this.eddsa.encodePoint(this.R());\n});\n\ncachedProperty(Signature, 'Sencoded', function Sencoded() {\n return this.eddsa.encodeInt(this.S());\n});\n\nSignature.prototype.toBytes = function toBytes() {\n return this.Rencoded().concat(this.Sencoded());\n};\n\nSignature.prototype.toHex = function toHex() {\n return utils.encode(this.toBytes(), 'hex').toUpperCase();\n};\n\nmodule.exports = Signature;\n","module.exports = {\n doubles: {\n step: 4,\n points: [\n [\n 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a',\n 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821',\n ],\n [\n '8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',\n '11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf',\n ],\n [\n '175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739',\n 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695',\n ],\n [\n '363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640',\n '4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9',\n ],\n [\n '8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c',\n '4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36',\n ],\n [\n '723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda',\n '96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f',\n ],\n [\n 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa',\n '5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999',\n ],\n [\n '100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0',\n 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09',\n ],\n [\n 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d',\n '9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d',\n ],\n [\n 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d',\n 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088',\n ],\n [\n 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1',\n '9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d',\n ],\n [\n '53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0',\n '5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8',\n ],\n [\n '8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047',\n '10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a',\n ],\n [\n '385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862',\n '283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453',\n ],\n [\n '6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7',\n '7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160',\n ],\n [\n '3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd',\n '56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0',\n ],\n [\n '85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83',\n '7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6',\n ],\n [\n '948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a',\n '53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589',\n ],\n [\n '6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8',\n 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17',\n ],\n [\n 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d',\n '4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda',\n ],\n [\n 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725',\n '7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd',\n ],\n [\n '213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754',\n '4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2',\n ],\n [\n '4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c',\n '17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6',\n ],\n [\n 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6',\n '6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f',\n ],\n [\n '76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39',\n 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01',\n ],\n [\n 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891',\n '893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3',\n ],\n [\n 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b',\n 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f',\n ],\n [\n 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03',\n '2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7',\n ],\n [\n 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d',\n 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78',\n ],\n [\n 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070',\n '7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1',\n ],\n [\n '90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4',\n 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150',\n ],\n [\n '8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da',\n '662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82',\n ],\n [\n 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11',\n '1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc',\n ],\n [\n '8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e',\n 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b',\n ],\n [\n 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41',\n '2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51',\n ],\n [\n 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef',\n '67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45',\n ],\n [\n 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8',\n 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120',\n ],\n [\n '324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d',\n '648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84',\n ],\n [\n '4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96',\n '35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d',\n ],\n [\n '9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd',\n 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d',\n ],\n [\n '6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5',\n '9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8',\n ],\n [\n 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266',\n '40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8',\n ],\n [\n '7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71',\n '34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac',\n ],\n [\n '928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac',\n 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f',\n ],\n [\n '85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751',\n '1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962',\n ],\n [\n 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e',\n '493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907',\n ],\n [\n '827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241',\n 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec',\n ],\n [\n 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3',\n 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d',\n ],\n [\n 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f',\n '4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414',\n ],\n [\n '1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19',\n 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd',\n ],\n [\n '146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be',\n 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0',\n ],\n [\n 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9',\n '6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811',\n ],\n [\n 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2',\n '8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1',\n ],\n [\n 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13',\n '7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c',\n ],\n [\n '174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c',\n 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73',\n ],\n [\n '959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba',\n '2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd',\n ],\n [\n 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151',\n 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405',\n ],\n [\n '64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073',\n 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589',\n ],\n [\n '8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458',\n '38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e',\n ],\n [\n '13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b',\n '69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27',\n ],\n [\n 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366',\n 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1',\n ],\n [\n '8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa',\n '40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482',\n ],\n [\n '8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0',\n '620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945',\n ],\n [\n 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787',\n '7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573',\n ],\n [\n 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e',\n 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82',\n ],\n ],\n },\n naf: {\n wnd: 7,\n points: [\n [\n 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9',\n '388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672',\n ],\n [\n '2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4',\n 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6',\n ],\n [\n '5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc',\n '6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da',\n ],\n [\n 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe',\n 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37',\n ],\n [\n '774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb',\n 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b',\n ],\n [\n 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8',\n 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81',\n ],\n [\n 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e',\n '581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58',\n ],\n [\n 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34',\n '4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77',\n ],\n [\n '2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c',\n '85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a',\n ],\n [\n '352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5',\n '321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c',\n ],\n [\n '2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f',\n '2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67',\n ],\n [\n '9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714',\n '73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402',\n ],\n [\n 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729',\n 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55',\n ],\n [\n 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db',\n '2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482',\n ],\n [\n '6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4',\n 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82',\n ],\n [\n '1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5',\n 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396',\n ],\n [\n '605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479',\n '2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49',\n ],\n [\n '62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d',\n '80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf',\n ],\n [\n '80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f',\n '1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a',\n ],\n [\n '7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb',\n 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7',\n ],\n [\n 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9',\n 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933',\n ],\n [\n '49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963',\n '758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a',\n ],\n [\n '77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74',\n '958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6',\n ],\n [\n 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530',\n 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37',\n ],\n [\n '463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b',\n '5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e',\n ],\n [\n 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247',\n 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6',\n ],\n [\n 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1',\n 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476',\n ],\n [\n '2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120',\n '4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40',\n ],\n [\n '7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435',\n '91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61',\n ],\n [\n '754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18',\n '673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683',\n ],\n [\n 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8',\n '59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5',\n ],\n [\n '186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb',\n '3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b',\n ],\n [\n 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f',\n '55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417',\n ],\n [\n '5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143',\n 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868',\n ],\n [\n '290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba',\n 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a',\n ],\n [\n 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45',\n 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6',\n ],\n [\n '766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a',\n '744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996',\n ],\n [\n '59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e',\n 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e',\n ],\n [\n 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8',\n 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d',\n ],\n [\n '7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c',\n '30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2',\n ],\n [\n '948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519',\n 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e',\n ],\n [\n '7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab',\n '100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437',\n ],\n [\n '3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca',\n 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311',\n ],\n [\n 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf',\n '8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4',\n ],\n [\n '1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610',\n '68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575',\n ],\n [\n '733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4',\n 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d',\n ],\n [\n '15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c',\n 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d',\n ],\n [\n 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940',\n 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629',\n ],\n [\n 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980',\n 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06',\n ],\n [\n '311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3',\n '66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374',\n ],\n [\n '34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf',\n '9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee',\n ],\n [\n 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63',\n '4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1',\n ],\n [\n 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448',\n 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b',\n ],\n [\n '32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf',\n '5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661',\n ],\n [\n '7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5',\n '8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6',\n ],\n [\n 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6',\n '8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e',\n ],\n [\n '16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5',\n '5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d',\n ],\n [\n 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99',\n 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc',\n ],\n [\n '78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51',\n 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4',\n ],\n [\n '494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5',\n '42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c',\n ],\n [\n 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5',\n '204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b',\n ],\n [\n 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997',\n '4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913',\n ],\n [\n '841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881',\n '73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154',\n ],\n [\n '5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5',\n '39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865',\n ],\n [\n '36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66',\n 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc',\n ],\n [\n '336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726',\n 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224',\n ],\n [\n '8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede',\n '6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e',\n ],\n [\n '1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94',\n '60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6',\n ],\n [\n '85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31',\n '3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511',\n ],\n [\n '29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51',\n 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b',\n ],\n [\n 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252',\n 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2',\n ],\n [\n '4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5',\n 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c',\n ],\n [\n 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b',\n '6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3',\n ],\n [\n 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4',\n '322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d',\n ],\n [\n 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f',\n '6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700',\n ],\n [\n 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889',\n '2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4',\n ],\n [\n '591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246',\n 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196',\n ],\n [\n '11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984',\n '998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4',\n ],\n [\n '3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a',\n 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257',\n ],\n [\n 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030',\n 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13',\n ],\n [\n 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197',\n '6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096',\n ],\n [\n 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593',\n 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38',\n ],\n [\n 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef',\n '21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f',\n ],\n [\n '347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38',\n '60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448',\n ],\n [\n 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a',\n '49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a',\n ],\n [\n 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111',\n '5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4',\n ],\n [\n '4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502',\n '7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437',\n ],\n [\n '3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea',\n 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7',\n ],\n [\n 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26',\n '8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d',\n ],\n [\n 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986',\n '39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a',\n ],\n [\n 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e',\n '62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54',\n ],\n [\n '48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4',\n '25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77',\n ],\n [\n 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda',\n 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517',\n ],\n [\n '6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859',\n 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10',\n ],\n [\n 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f',\n 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125',\n ],\n [\n 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c',\n '6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e',\n ],\n [\n '13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942',\n 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1',\n ],\n [\n 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a',\n '1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2',\n ],\n [\n 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80',\n '5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423',\n ],\n [\n 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d',\n '438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8',\n ],\n [\n '8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1',\n 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758',\n ],\n [\n '52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63',\n 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375',\n ],\n [\n 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352',\n '6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d',\n ],\n [\n '7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193',\n 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec',\n ],\n [\n '5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00',\n '9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0',\n ],\n [\n '32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58',\n 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c',\n ],\n [\n 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7',\n 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4',\n ],\n [\n '8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8',\n 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f',\n ],\n [\n '4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e',\n '67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649',\n ],\n [\n '3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d',\n 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826',\n ],\n [\n '674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b',\n '299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5',\n ],\n [\n 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f',\n 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87',\n ],\n [\n '30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6',\n '462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b',\n ],\n [\n 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297',\n '62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc',\n ],\n [\n '93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a',\n '7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c',\n ],\n [\n 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c',\n 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f',\n ],\n [\n 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52',\n '4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a',\n ],\n [\n 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb',\n 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46',\n ],\n [\n '463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065',\n 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f',\n ],\n [\n '7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917',\n '603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03',\n ],\n [\n '74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9',\n 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08',\n ],\n [\n '30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3',\n '553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8',\n ],\n [\n '9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57',\n '712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373',\n ],\n [\n '176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66',\n 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3',\n ],\n [\n '75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8',\n '9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8',\n ],\n [\n '809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721',\n '9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1',\n ],\n [\n '1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180',\n '4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9',\n ],\n ],\n },\n};\n","'use strict';\n\nvar utils = exports;\nvar BN = require('bn.js');\nvar minAssert = require('minimalistic-assert');\nvar minUtils = require('minimalistic-crypto-utils');\n\nutils.assert = minAssert;\nutils.toArray = minUtils.toArray;\nutils.zero2 = minUtils.zero2;\nutils.toHex = minUtils.toHex;\nutils.encode = minUtils.encode;\n\n// Represent num in a w-NAF form\nfunction getNAF(num, w, bits) {\n var naf = new Array(Math.max(num.bitLength(), bits) + 1);\n naf.fill(0);\n\n var ws = 1 << (w + 1);\n var k = num.clone();\n\n for (var i = 0; i < naf.length; i++) {\n var z;\n var mod = k.andln(ws - 1);\n if (k.isOdd()) {\n if (mod > (ws >> 1) - 1)\n z = (ws >> 1) - mod;\n else\n z = mod;\n k.isubn(z);\n } else {\n z = 0;\n }\n\n naf[i] = z;\n k.iushrn(1);\n }\n\n return naf;\n}\nutils.getNAF = getNAF;\n\n// Represent k1, k2 in a Joint Sparse Form\nfunction getJSF(k1, k2) {\n var jsf = [\n [],\n [],\n ];\n\n k1 = k1.clone();\n k2 = k2.clone();\n var d1 = 0;\n var d2 = 0;\n var m8;\n while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {\n // First phase\n var m14 = (k1.andln(3) + d1) & 3;\n var m24 = (k2.andln(3) + d2) & 3;\n if (m14 === 3)\n m14 = -1;\n if (m24 === 3)\n m24 = -1;\n var u1;\n if ((m14 & 1) === 0) {\n u1 = 0;\n } else {\n m8 = (k1.andln(7) + d1) & 7;\n if ((m8 === 3 || m8 === 5) && m24 === 2)\n u1 = -m14;\n else\n u1 = m14;\n }\n jsf[0].push(u1);\n\n var u2;\n if ((m24 & 1) === 0) {\n u2 = 0;\n } else {\n m8 = (k2.andln(7) + d2) & 7;\n if ((m8 === 3 || m8 === 5) && m14 === 2)\n u2 = -m24;\n else\n u2 = m24;\n }\n jsf[1].push(u2);\n\n // Second phase\n if (2 * d1 === u1 + 1)\n d1 = 1 - d1;\n if (2 * d2 === u2 + 1)\n d2 = 1 - d2;\n k1.iushrn(1);\n k2.iushrn(1);\n }\n\n return jsf;\n}\nutils.getJSF = getJSF;\n\nfunction cachedProperty(obj, name, computer) {\n var key = '_' + name;\n obj.prototype[name] = function cachedProperty() {\n return this[key] !== undefined ? this[key] :\n this[key] = computer.call(this);\n };\n}\nutils.cachedProperty = cachedProperty;\n\nfunction parseBytes(bytes) {\n return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :\n bytes;\n}\nutils.parseBytes = parseBytes;\n\nfunction intFromLE(bytes) {\n return new BN(bytes, 'hex', 'le');\n}\nutils.intFromLE = intFromLE;\n\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","\"use strict\";\nlet _permanentCensorErrors = false;\nlet _censorErrors = false;\nconst LogLevels = { debug: 1, \"default\": 2, info: 2, warning: 3, error: 4, off: 5 };\nlet _logLevel = LogLevels[\"default\"];\nimport { version } from \"./_version\";\nlet _globalLogger = null;\nfunction _checkNormalize() {\n try {\n const missing = [];\n // Make sure all forms of normalization are supported\n [\"NFD\", \"NFC\", \"NFKD\", \"NFKC\"].forEach((form) => {\n try {\n if (\"test\".normalize(form) !== \"test\") {\n throw new Error(\"bad normalize\");\n }\n ;\n }\n catch (error) {\n missing.push(form);\n }\n });\n if (missing.length) {\n throw new Error(\"missing \" + missing.join(\", \"));\n }\n if (String.fromCharCode(0xe9).normalize(\"NFD\") !== String.fromCharCode(0x65, 0x0301)) {\n throw new Error(\"broken implementation\");\n }\n }\n catch (error) {\n return error.message;\n }\n return null;\n}\nconst _normalizeError = _checkNormalize();\nexport var LogLevel;\n(function (LogLevel) {\n LogLevel[\"DEBUG\"] = \"DEBUG\";\n LogLevel[\"INFO\"] = \"INFO\";\n LogLevel[\"WARNING\"] = \"WARNING\";\n LogLevel[\"ERROR\"] = \"ERROR\";\n LogLevel[\"OFF\"] = \"OFF\";\n})(LogLevel || (LogLevel = {}));\nexport var ErrorCode;\n(function (ErrorCode) {\n ///////////////////\n // Generic Errors\n // Unknown Error\n ErrorCode[\"UNKNOWN_ERROR\"] = \"UNKNOWN_ERROR\";\n // Not Implemented\n ErrorCode[\"NOT_IMPLEMENTED\"] = \"NOT_IMPLEMENTED\";\n // Unsupported Operation\n // - operation\n ErrorCode[\"UNSUPPORTED_OPERATION\"] = \"UNSUPPORTED_OPERATION\";\n // Network Error (i.e. Ethereum Network, such as an invalid chain ID)\n // - event (\"noNetwork\" is not re-thrown in provider.ready; otherwise thrown)\n ErrorCode[\"NETWORK_ERROR\"] = \"NETWORK_ERROR\";\n // Some sort of bad response from the server\n ErrorCode[\"SERVER_ERROR\"] = \"SERVER_ERROR\";\n // Timeout\n ErrorCode[\"TIMEOUT\"] = \"TIMEOUT\";\n ///////////////////\n // Operational Errors\n // Buffer Overrun\n ErrorCode[\"BUFFER_OVERRUN\"] = \"BUFFER_OVERRUN\";\n // Numeric Fault\n // - operation: the operation being executed\n // - fault: the reason this faulted\n ErrorCode[\"NUMERIC_FAULT\"] = \"NUMERIC_FAULT\";\n ///////////////////\n // Argument Errors\n // Missing new operator to an object\n // - name: The name of the class\n ErrorCode[\"MISSING_NEW\"] = \"MISSING_NEW\";\n // Invalid argument (e.g. value is incompatible with type) to a function:\n // - argument: The argument name that was invalid\n // - value: The value of the argument\n ErrorCode[\"INVALID_ARGUMENT\"] = \"INVALID_ARGUMENT\";\n // Missing argument to a function:\n // - count: The number of arguments received\n // - expectedCount: The number of arguments expected\n ErrorCode[\"MISSING_ARGUMENT\"] = \"MISSING_ARGUMENT\";\n // Too many arguments\n // - count: The number of arguments received\n // - expectedCount: The number of arguments expected\n ErrorCode[\"UNEXPECTED_ARGUMENT\"] = \"UNEXPECTED_ARGUMENT\";\n ///////////////////\n // Blockchain Errors\n // Call exception\n // - transaction: the transaction\n // - address?: the contract address\n // - args?: The arguments passed into the function\n // - method?: The Solidity method signature\n // - errorSignature?: The EIP848 error signature\n // - errorArgs?: The EIP848 error parameters\n // - reason: The reason (only for EIP848 \"Error(string)\")\n ErrorCode[\"CALL_EXCEPTION\"] = \"CALL_EXCEPTION\";\n // Insufficient funds (< value + gasLimit * gasPrice)\n // - transaction: the transaction attempted\n ErrorCode[\"INSUFFICIENT_FUNDS\"] = \"INSUFFICIENT_FUNDS\";\n // Nonce has already been used\n // - transaction: the transaction attempted\n ErrorCode[\"NONCE_EXPIRED\"] = \"NONCE_EXPIRED\";\n // The replacement fee for the transaction is too low\n // - transaction: the transaction attempted\n ErrorCode[\"REPLACEMENT_UNDERPRICED\"] = \"REPLACEMENT_UNDERPRICED\";\n // The gas limit could not be estimated\n // - transaction: the transaction passed to estimateGas\n ErrorCode[\"UNPREDICTABLE_GAS_LIMIT\"] = \"UNPREDICTABLE_GAS_LIMIT\";\n // The transaction was replaced by one with a higher gas price\n // - reason: \"cancelled\", \"replaced\" or \"repriced\"\n // - cancelled: true if reason == \"cancelled\" or reason == \"replaced\")\n // - hash: original transaction hash\n // - replacement: the full TransactionsResponse for the replacement\n // - receipt: the receipt of the replacement\n ErrorCode[\"TRANSACTION_REPLACED\"] = \"TRANSACTION_REPLACED\";\n})(ErrorCode || (ErrorCode = {}));\n;\nconst HEX = \"0123456789abcdef\";\nexport class Logger {\n constructor(version) {\n Object.defineProperty(this, \"version\", {\n enumerable: true,\n value: version,\n writable: false\n });\n }\n _log(logLevel, args) {\n const level = logLevel.toLowerCase();\n if (LogLevels[level] == null) {\n this.throwArgumentError(\"invalid log level name\", \"logLevel\", logLevel);\n }\n if (_logLevel > LogLevels[level]) {\n return;\n }\n console.log.apply(console, args);\n }\n debug(...args) {\n this._log(Logger.levels.DEBUG, args);\n }\n info(...args) {\n this._log(Logger.levels.INFO, args);\n }\n warn(...args) {\n this._log(Logger.levels.WARNING, args);\n }\n makeError(message, code, params) {\n // Errors are being censored\n if (_censorErrors) {\n return this.makeError(\"censored error\", code, {});\n }\n if (!code) {\n code = Logger.errors.UNKNOWN_ERROR;\n }\n if (!params) {\n params = {};\n }\n const messageDetails = [];\n Object.keys(params).forEach((key) => {\n const value = params[key];\n try {\n if (value instanceof Uint8Array) {\n let hex = \"\";\n for (let i = 0; i < value.length; i++) {\n hex += HEX[value[i] >> 4];\n hex += HEX[value[i] & 0x0f];\n }\n messageDetails.push(key + \"=Uint8Array(0x\" + hex + \")\");\n }\n else {\n messageDetails.push(key + \"=\" + JSON.stringify(value));\n }\n }\n catch (error) {\n messageDetails.push(key + \"=\" + JSON.stringify(params[key].toString()));\n }\n });\n messageDetails.push(`code=${code}`);\n messageDetails.push(`version=${this.version}`);\n const reason = message;\n let url = \"\";\n switch (code) {\n case ErrorCode.NUMERIC_FAULT: {\n url = \"NUMERIC_FAULT\";\n const fault = message;\n switch (fault) {\n case \"overflow\":\n case \"underflow\":\n case \"division-by-zero\":\n url += \"-\" + fault;\n break;\n case \"negative-power\":\n case \"negative-width\":\n url += \"-unsupported\";\n break;\n case \"unbound-bitwise-result\":\n url += \"-unbound-result\";\n break;\n }\n break;\n }\n case ErrorCode.CALL_EXCEPTION:\n case ErrorCode.INSUFFICIENT_FUNDS:\n case ErrorCode.MISSING_NEW:\n case ErrorCode.NONCE_EXPIRED:\n case ErrorCode.REPLACEMENT_UNDERPRICED:\n case ErrorCode.TRANSACTION_REPLACED:\n case ErrorCode.UNPREDICTABLE_GAS_LIMIT:\n url = code;\n break;\n }\n if (url) {\n message += \" [ See: https:/\\/links.ethers.org/v5-errors-\" + url + \" ]\";\n }\n if (messageDetails.length) {\n message += \" (\" + messageDetails.join(\", \") + \")\";\n }\n // @TODO: Any??\n const error = new Error(message);\n error.reason = reason;\n error.code = code;\n Object.keys(params).forEach(function (key) {\n error[key] = params[key];\n });\n return error;\n }\n throwError(message, code, params) {\n throw this.makeError(message, code, params);\n }\n throwArgumentError(message, name, value) {\n return this.throwError(message, Logger.errors.INVALID_ARGUMENT, {\n argument: name,\n value: value\n });\n }\n assert(condition, message, code, params) {\n if (!!condition) {\n return;\n }\n this.throwError(message, code, params);\n }\n assertArgument(condition, message, name, value) {\n if (!!condition) {\n return;\n }\n this.throwArgumentError(message, name, value);\n }\n checkNormalize(message) {\n if (message == null) {\n message = \"platform missing String.prototype.normalize\";\n }\n if (_normalizeError) {\n this.throwError(\"platform missing String.prototype.normalize\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"String.prototype.normalize\", form: _normalizeError\n });\n }\n }\n checkSafeUint53(value, message) {\n if (typeof (value) !== \"number\") {\n return;\n }\n if (message == null) {\n message = \"value not safe\";\n }\n if (value < 0 || value >= 0x1fffffffffffff) {\n this.throwError(message, Logger.errors.NUMERIC_FAULT, {\n operation: \"checkSafeInteger\",\n fault: \"out-of-safe-range\",\n value: value\n });\n }\n if (value % 1) {\n this.throwError(message, Logger.errors.NUMERIC_FAULT, {\n operation: \"checkSafeInteger\",\n fault: \"non-integer\",\n value: value\n });\n }\n }\n checkArgumentCount(count, expectedCount, message) {\n if (message) {\n message = \": \" + message;\n }\n else {\n message = \"\";\n }\n if (count < expectedCount) {\n this.throwError(\"missing argument\" + message, Logger.errors.MISSING_ARGUMENT, {\n count: count,\n expectedCount: expectedCount\n });\n }\n if (count > expectedCount) {\n this.throwError(\"too many arguments\" + message, Logger.errors.UNEXPECTED_ARGUMENT, {\n count: count,\n expectedCount: expectedCount\n });\n }\n }\n checkNew(target, kind) {\n if (target === Object || target == null) {\n this.throwError(\"missing new\", Logger.errors.MISSING_NEW, { name: kind.name });\n }\n }\n checkAbstract(target, kind) {\n if (target === kind) {\n this.throwError(\"cannot instantiate abstract class \" + JSON.stringify(kind.name) + \" directly; use a sub-class\", Logger.errors.UNSUPPORTED_OPERATION, { name: target.name, operation: \"new\" });\n }\n else if (target === Object || target == null) {\n this.throwError(\"missing new\", Logger.errors.MISSING_NEW, { name: kind.name });\n }\n }\n static globalLogger() {\n if (!_globalLogger) {\n _globalLogger = new Logger(version);\n }\n return _globalLogger;\n }\n static setCensorship(censorship, permanent) {\n if (!censorship && permanent) {\n this.globalLogger().throwError(\"cannot permanently disable censorship\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"setCensorship\"\n });\n }\n if (_permanentCensorErrors) {\n if (!censorship) {\n return;\n }\n this.globalLogger().throwError(\"error censorship permanent\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"setCensorship\"\n });\n }\n _censorErrors = !!censorship;\n _permanentCensorErrors = !!permanent;\n }\n static setLogLevel(logLevel) {\n const level = LogLevels[logLevel.toLowerCase()];\n if (level == null) {\n Logger.globalLogger().warn(\"invalid log level - \" + logLevel);\n return;\n }\n _logLevel = level;\n }\n static from(version) {\n return new Logger(version);\n }\n}\nLogger.errors = ErrorCode;\nLogger.levels = LogLevel;\n//# sourceMappingURL=index.js.map","export const version = \"logger/5.6.0\";\n//# sourceMappingURL=_version.js.map","export const version = \"bytes/5.6.1\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n///////////////////////////////\nfunction isHexable(value) {\n return !!(value.toHexString);\n}\nfunction addSlice(array) {\n if (array.slice) {\n return array;\n }\n array.slice = function () {\n const args = Array.prototype.slice.call(arguments);\n return addSlice(new Uint8Array(Array.prototype.slice.apply(array, args)));\n };\n return array;\n}\nexport function isBytesLike(value) {\n return ((isHexString(value) && !(value.length % 2)) || isBytes(value));\n}\nfunction isInteger(value) {\n return (typeof (value) === \"number\" && value == value && (value % 1) === 0);\n}\nexport function isBytes(value) {\n if (value == null) {\n return false;\n }\n if (value.constructor === Uint8Array) {\n return true;\n }\n if (typeof (value) === \"string\") {\n return false;\n }\n if (!isInteger(value.length) || value.length < 0) {\n return false;\n }\n for (let i = 0; i < value.length; i++) {\n const v = value[i];\n if (!isInteger(v) || v < 0 || v >= 256) {\n return false;\n }\n }\n return true;\n}\nexport function arrayify(value, options) {\n if (!options) {\n options = {};\n }\n if (typeof (value) === \"number\") {\n logger.checkSafeUint53(value, \"invalid arrayify value\");\n const result = [];\n while (value) {\n result.unshift(value & 0xff);\n value = parseInt(String(value / 256));\n }\n if (result.length === 0) {\n result.push(0);\n }\n return addSlice(new Uint8Array(result));\n }\n if (options.allowMissingPrefix && typeof (value) === \"string\" && value.substring(0, 2) !== \"0x\") {\n value = \"0x\" + value;\n }\n if (isHexable(value)) {\n value = value.toHexString();\n }\n if (isHexString(value)) {\n let hex = value.substring(2);\n if (hex.length % 2) {\n if (options.hexPad === \"left\") {\n hex = \"0\" + hex;\n }\n else if (options.hexPad === \"right\") {\n hex += \"0\";\n }\n else {\n logger.throwArgumentError(\"hex data is odd-length\", \"value\", value);\n }\n }\n const result = [];\n for (let i = 0; i < hex.length; i += 2) {\n result.push(parseInt(hex.substring(i, i + 2), 16));\n }\n return addSlice(new Uint8Array(result));\n }\n if (isBytes(value)) {\n return addSlice(new Uint8Array(value));\n }\n return logger.throwArgumentError(\"invalid arrayify value\", \"value\", value);\n}\nexport function concat(items) {\n const objects = items.map(item => arrayify(item));\n const length = objects.reduce((accum, item) => (accum + item.length), 0);\n const result = new Uint8Array(length);\n objects.reduce((offset, object) => {\n result.set(object, offset);\n return offset + object.length;\n }, 0);\n return addSlice(result);\n}\nexport function stripZeros(value) {\n let result = arrayify(value);\n if (result.length === 0) {\n return result;\n }\n // Find the first non-zero entry\n let start = 0;\n while (start < result.length && result[start] === 0) {\n start++;\n }\n // If we started with zeros, strip them\n if (start) {\n result = result.slice(start);\n }\n return result;\n}\nexport function zeroPad(value, length) {\n value = arrayify(value);\n if (value.length > length) {\n logger.throwArgumentError(\"value out of range\", \"value\", arguments[0]);\n }\n const result = new Uint8Array(length);\n result.set(value, length - value.length);\n return addSlice(result);\n}\nexport function isHexString(value, length) {\n if (typeof (value) !== \"string\" || !value.match(/^0x[0-9A-Fa-f]*$/)) {\n return false;\n }\n if (length && value.length !== 2 + 2 * length) {\n return false;\n }\n return true;\n}\nconst HexCharacters = \"0123456789abcdef\";\nexport function hexlify(value, options) {\n if (!options) {\n options = {};\n }\n if (typeof (value) === \"number\") {\n logger.checkSafeUint53(value, \"invalid hexlify value\");\n let hex = \"\";\n while (value) {\n hex = HexCharacters[value & 0xf] + hex;\n value = Math.floor(value / 16);\n }\n if (hex.length) {\n if (hex.length % 2) {\n hex = \"0\" + hex;\n }\n return \"0x\" + hex;\n }\n return \"0x00\";\n }\n if (typeof (value) === \"bigint\") {\n value = value.toString(16);\n if (value.length % 2) {\n return (\"0x0\" + value);\n }\n return \"0x\" + value;\n }\n if (options.allowMissingPrefix && typeof (value) === \"string\" && value.substring(0, 2) !== \"0x\") {\n value = \"0x\" + value;\n }\n if (isHexable(value)) {\n return value.toHexString();\n }\n if (isHexString(value)) {\n if (value.length % 2) {\n if (options.hexPad === \"left\") {\n value = \"0x0\" + value.substring(2);\n }\n else if (options.hexPad === \"right\") {\n value += \"0\";\n }\n else {\n logger.throwArgumentError(\"hex data is odd-length\", \"value\", value);\n }\n }\n return value.toLowerCase();\n }\n if (isBytes(value)) {\n let result = \"0x\";\n for (let i = 0; i < value.length; i++) {\n let v = value[i];\n result += HexCharacters[(v & 0xf0) >> 4] + HexCharacters[v & 0x0f];\n }\n return result;\n }\n return logger.throwArgumentError(\"invalid hexlify value\", \"value\", value);\n}\n/*\nfunction unoddify(value: BytesLike | Hexable | number): BytesLike | Hexable | number {\n if (typeof(value) === \"string\" && value.length % 2 && value.substring(0, 2) === \"0x\") {\n return \"0x0\" + value.substring(2);\n }\n return value;\n}\n*/\nexport function hexDataLength(data) {\n if (typeof (data) !== \"string\") {\n data = hexlify(data);\n }\n else if (!isHexString(data) || (data.length % 2)) {\n return null;\n }\n return (data.length - 2) / 2;\n}\nexport function hexDataSlice(data, offset, endOffset) {\n if (typeof (data) !== \"string\") {\n data = hexlify(data);\n }\n else if (!isHexString(data) || (data.length % 2)) {\n logger.throwArgumentError(\"invalid hexData\", \"value\", data);\n }\n offset = 2 + 2 * offset;\n if (endOffset != null) {\n return \"0x\" + data.substring(offset, 2 + 2 * endOffset);\n }\n return \"0x\" + data.substring(offset);\n}\nexport function hexConcat(items) {\n let result = \"0x\";\n items.forEach((item) => {\n result += hexlify(item).substring(2);\n });\n return result;\n}\nexport function hexValue(value) {\n const trimmed = hexStripZeros(hexlify(value, { hexPad: \"left\" }));\n if (trimmed === \"0x\") {\n return \"0x0\";\n }\n return trimmed;\n}\nexport function hexStripZeros(value) {\n if (typeof (value) !== \"string\") {\n value = hexlify(value);\n }\n if (!isHexString(value)) {\n logger.throwArgumentError(\"invalid hex string\", \"value\", value);\n }\n value = value.substring(2);\n let offset = 0;\n while (offset < value.length && value[offset] === \"0\") {\n offset++;\n }\n return \"0x\" + value.substring(offset);\n}\nexport function hexZeroPad(value, length) {\n if (typeof (value) !== \"string\") {\n value = hexlify(value);\n }\n else if (!isHexString(value)) {\n logger.throwArgumentError(\"invalid hex string\", \"value\", value);\n }\n if (value.length > 2 * length + 2) {\n logger.throwArgumentError(\"value out of range\", \"value\", arguments[1]);\n }\n while (value.length < 2 * length + 2) {\n value = \"0x0\" + value.substring(2);\n }\n return value;\n}\nexport function splitSignature(signature) {\n const result = {\n r: \"0x\",\n s: \"0x\",\n _vs: \"0x\",\n recoveryParam: 0,\n v: 0,\n yParityAndS: \"0x\",\n compact: \"0x\"\n };\n if (isBytesLike(signature)) {\n let bytes = arrayify(signature);\n // Get the r, s and v\n if (bytes.length === 64) {\n // EIP-2098; pull the v from the top bit of s and clear it\n result.v = 27 + (bytes[32] >> 7);\n bytes[32] &= 0x7f;\n result.r = hexlify(bytes.slice(0, 32));\n result.s = hexlify(bytes.slice(32, 64));\n }\n else if (bytes.length === 65) {\n result.r = hexlify(bytes.slice(0, 32));\n result.s = hexlify(bytes.slice(32, 64));\n result.v = bytes[64];\n }\n else {\n logger.throwArgumentError(\"invalid signature string\", \"signature\", signature);\n }\n // Allow a recid to be used as the v\n if (result.v < 27) {\n if (result.v === 0 || result.v === 1) {\n result.v += 27;\n }\n else {\n logger.throwArgumentError(\"signature invalid v byte\", \"signature\", signature);\n }\n }\n // Compute recoveryParam from v\n result.recoveryParam = 1 - (result.v % 2);\n // Compute _vs from recoveryParam and s\n if (result.recoveryParam) {\n bytes[32] |= 0x80;\n }\n result._vs = hexlify(bytes.slice(32, 64));\n }\n else {\n result.r = signature.r;\n result.s = signature.s;\n result.v = signature.v;\n result.recoveryParam = signature.recoveryParam;\n result._vs = signature._vs;\n // If the _vs is available, use it to populate missing s, v and recoveryParam\n // and verify non-missing s, v and recoveryParam\n if (result._vs != null) {\n const vs = zeroPad(arrayify(result._vs), 32);\n result._vs = hexlify(vs);\n // Set or check the recid\n const recoveryParam = ((vs[0] >= 128) ? 1 : 0);\n if (result.recoveryParam == null) {\n result.recoveryParam = recoveryParam;\n }\n else if (result.recoveryParam !== recoveryParam) {\n logger.throwArgumentError(\"signature recoveryParam mismatch _vs\", \"signature\", signature);\n }\n // Set or check the s\n vs[0] &= 0x7f;\n const s = hexlify(vs);\n if (result.s == null) {\n result.s = s;\n }\n else if (result.s !== s) {\n logger.throwArgumentError(\"signature v mismatch _vs\", \"signature\", signature);\n }\n }\n // Use recid and v to populate each other\n if (result.recoveryParam == null) {\n if (result.v == null) {\n logger.throwArgumentError(\"signature missing v and recoveryParam\", \"signature\", signature);\n }\n else if (result.v === 0 || result.v === 1) {\n result.recoveryParam = result.v;\n }\n else {\n result.recoveryParam = 1 - (result.v % 2);\n }\n }\n else {\n if (result.v == null) {\n result.v = 27 + result.recoveryParam;\n }\n else {\n const recId = (result.v === 0 || result.v === 1) ? result.v : (1 - (result.v % 2));\n if (result.recoveryParam !== recId) {\n logger.throwArgumentError(\"signature recoveryParam mismatch v\", \"signature\", signature);\n }\n }\n }\n if (result.r == null || !isHexString(result.r)) {\n logger.throwArgumentError(\"signature missing or invalid r\", \"signature\", signature);\n }\n else {\n result.r = hexZeroPad(result.r, 32);\n }\n if (result.s == null || !isHexString(result.s)) {\n logger.throwArgumentError(\"signature missing or invalid s\", \"signature\", signature);\n }\n else {\n result.s = hexZeroPad(result.s, 32);\n }\n const vs = arrayify(result.s);\n if (vs[0] >= 128) {\n logger.throwArgumentError(\"signature s out of range\", \"signature\", signature);\n }\n if (result.recoveryParam) {\n vs[0] |= 0x80;\n }\n const _vs = hexlify(vs);\n if (result._vs) {\n if (!isHexString(result._vs)) {\n logger.throwArgumentError(\"signature invalid _vs\", \"signature\", signature);\n }\n result._vs = hexZeroPad(result._vs, 32);\n }\n // Set or check the _vs\n if (result._vs == null) {\n result._vs = _vs;\n }\n else if (result._vs !== _vs) {\n logger.throwArgumentError(\"signature _vs mismatch v and s\", \"signature\", signature);\n }\n }\n result.yParityAndS = result._vs;\n result.compact = result.r + result.yParityAndS.substring(2);\n return result;\n}\nexport function joinSignature(signature) {\n signature = splitSignature(signature);\n return hexlify(concat([\n signature.r,\n signature.s,\n (signature.recoveryParam ? \"0x1c\" : \"0x1b\")\n ]));\n}\n//# sourceMappingURL=index.js.map","export const version = \"bignumber/5.6.2\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\n/**\n * BigNumber\n *\n * A wrapper around the BN.js object. We use the BN.js library\n * because it is used by elliptic, so it is required regardless.\n *\n */\nimport _BN from \"bn.js\";\nvar BN = _BN.BN;\nimport { hexlify, isBytes, isHexString } from \"@ethersproject/bytes\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nconst _constructorGuard = {};\nconst MAX_SAFE = 0x1fffffffffffff;\nexport function isBigNumberish(value) {\n return (value != null) && (BigNumber.isBigNumber(value) ||\n (typeof (value) === \"number\" && (value % 1) === 0) ||\n (typeof (value) === \"string\" && !!value.match(/^-?[0-9]+$/)) ||\n isHexString(value) ||\n (typeof (value) === \"bigint\") ||\n isBytes(value));\n}\n// Only warn about passing 10 into radix once\nlet _warnedToStringRadix = false;\nexport class BigNumber {\n constructor(constructorGuard, hex) {\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"cannot call constructor directly; use BigNumber.from\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new (BigNumber)\"\n });\n }\n this._hex = hex;\n this._isBigNumber = true;\n Object.freeze(this);\n }\n fromTwos(value) {\n return toBigNumber(toBN(this).fromTwos(value));\n }\n toTwos(value) {\n return toBigNumber(toBN(this).toTwos(value));\n }\n abs() {\n if (this._hex[0] === \"-\") {\n return BigNumber.from(this._hex.substring(1));\n }\n return this;\n }\n add(other) {\n return toBigNumber(toBN(this).add(toBN(other)));\n }\n sub(other) {\n return toBigNumber(toBN(this).sub(toBN(other)));\n }\n div(other) {\n const o = BigNumber.from(other);\n if (o.isZero()) {\n throwFault(\"division-by-zero\", \"div\");\n }\n return toBigNumber(toBN(this).div(toBN(other)));\n }\n mul(other) {\n return toBigNumber(toBN(this).mul(toBN(other)));\n }\n mod(other) {\n const value = toBN(other);\n if (value.isNeg()) {\n throwFault(\"division-by-zero\", \"mod\");\n }\n return toBigNumber(toBN(this).umod(value));\n }\n pow(other) {\n const value = toBN(other);\n if (value.isNeg()) {\n throwFault(\"negative-power\", \"pow\");\n }\n return toBigNumber(toBN(this).pow(value));\n }\n and(other) {\n const value = toBN(other);\n if (this.isNegative() || value.isNeg()) {\n throwFault(\"unbound-bitwise-result\", \"and\");\n }\n return toBigNumber(toBN(this).and(value));\n }\n or(other) {\n const value = toBN(other);\n if (this.isNegative() || value.isNeg()) {\n throwFault(\"unbound-bitwise-result\", \"or\");\n }\n return toBigNumber(toBN(this).or(value));\n }\n xor(other) {\n const value = toBN(other);\n if (this.isNegative() || value.isNeg()) {\n throwFault(\"unbound-bitwise-result\", \"xor\");\n }\n return toBigNumber(toBN(this).xor(value));\n }\n mask(value) {\n if (this.isNegative() || value < 0) {\n throwFault(\"negative-width\", \"mask\");\n }\n return toBigNumber(toBN(this).maskn(value));\n }\n shl(value) {\n if (this.isNegative() || value < 0) {\n throwFault(\"negative-width\", \"shl\");\n }\n return toBigNumber(toBN(this).shln(value));\n }\n shr(value) {\n if (this.isNegative() || value < 0) {\n throwFault(\"negative-width\", \"shr\");\n }\n return toBigNumber(toBN(this).shrn(value));\n }\n eq(other) {\n return toBN(this).eq(toBN(other));\n }\n lt(other) {\n return toBN(this).lt(toBN(other));\n }\n lte(other) {\n return toBN(this).lte(toBN(other));\n }\n gt(other) {\n return toBN(this).gt(toBN(other));\n }\n gte(other) {\n return toBN(this).gte(toBN(other));\n }\n isNegative() {\n return (this._hex[0] === \"-\");\n }\n isZero() {\n return toBN(this).isZero();\n }\n toNumber() {\n try {\n return toBN(this).toNumber();\n }\n catch (error) {\n throwFault(\"overflow\", \"toNumber\", this.toString());\n }\n return null;\n }\n toBigInt() {\n try {\n return BigInt(this.toString());\n }\n catch (e) { }\n return logger.throwError(\"this platform does not support BigInt\", Logger.errors.UNSUPPORTED_OPERATION, {\n value: this.toString()\n });\n }\n toString() {\n // Lots of people expect this, which we do not support, so check (See: #889)\n if (arguments.length > 0) {\n if (arguments[0] === 10) {\n if (!_warnedToStringRadix) {\n _warnedToStringRadix = true;\n logger.warn(\"BigNumber.toString does not accept any parameters; base-10 is assumed\");\n }\n }\n else if (arguments[0] === 16) {\n logger.throwError(\"BigNumber.toString does not accept any parameters; use bigNumber.toHexString()\", Logger.errors.UNEXPECTED_ARGUMENT, {});\n }\n else {\n logger.throwError(\"BigNumber.toString does not accept parameters\", Logger.errors.UNEXPECTED_ARGUMENT, {});\n }\n }\n return toBN(this).toString(10);\n }\n toHexString() {\n return this._hex;\n }\n toJSON(key) {\n return { type: \"BigNumber\", hex: this.toHexString() };\n }\n static from(value) {\n if (value instanceof BigNumber) {\n return value;\n }\n if (typeof (value) === \"string\") {\n if (value.match(/^-?0x[0-9a-f]+$/i)) {\n return new BigNumber(_constructorGuard, toHex(value));\n }\n if (value.match(/^-?[0-9]+$/)) {\n return new BigNumber(_constructorGuard, toHex(new BN(value)));\n }\n return logger.throwArgumentError(\"invalid BigNumber string\", \"value\", value);\n }\n if (typeof (value) === \"number\") {\n if (value % 1) {\n throwFault(\"underflow\", \"BigNumber.from\", value);\n }\n if (value >= MAX_SAFE || value <= -MAX_SAFE) {\n throwFault(\"overflow\", \"BigNumber.from\", value);\n }\n return BigNumber.from(String(value));\n }\n const anyValue = value;\n if (typeof (anyValue) === \"bigint\") {\n return BigNumber.from(anyValue.toString());\n }\n if (isBytes(anyValue)) {\n return BigNumber.from(hexlify(anyValue));\n }\n if (anyValue) {\n // Hexable interface (takes priority)\n if (anyValue.toHexString) {\n const hex = anyValue.toHexString();\n if (typeof (hex) === \"string\") {\n return BigNumber.from(hex);\n }\n }\n else {\n // For now, handle legacy JSON-ified values (goes away in v6)\n let hex = anyValue._hex;\n // New-form JSON\n if (hex == null && anyValue.type === \"BigNumber\") {\n hex = anyValue.hex;\n }\n if (typeof (hex) === \"string\") {\n if (isHexString(hex) || (hex[0] === \"-\" && isHexString(hex.substring(1)))) {\n return BigNumber.from(hex);\n }\n }\n }\n }\n return logger.throwArgumentError(\"invalid BigNumber value\", \"value\", value);\n }\n static isBigNumber(value) {\n return !!(value && value._isBigNumber);\n }\n}\n// Normalize the hex string\nfunction toHex(value) {\n // For BN, call on the hex string\n if (typeof (value) !== \"string\") {\n return toHex(value.toString(16));\n }\n // If negative, prepend the negative sign to the normalized positive value\n if (value[0] === \"-\") {\n // Strip off the negative sign\n value = value.substring(1);\n // Cannot have multiple negative signs (e.g. \"--0x04\")\n if (value[0] === \"-\") {\n logger.throwArgumentError(\"invalid hex\", \"value\", value);\n }\n // Call toHex on the positive component\n value = toHex(value);\n // Do not allow \"-0x00\"\n if (value === \"0x00\") {\n return value;\n }\n // Negate the value\n return \"-\" + value;\n }\n // Add a \"0x\" prefix if missing\n if (value.substring(0, 2) !== \"0x\") {\n value = \"0x\" + value;\n }\n // Normalize zero\n if (value === \"0x\") {\n return \"0x00\";\n }\n // Make the string even length\n if (value.length % 2) {\n value = \"0x0\" + value.substring(2);\n }\n // Trim to smallest even-length string\n while (value.length > 4 && value.substring(0, 4) === \"0x00\") {\n value = \"0x\" + value.substring(4);\n }\n return value;\n}\nfunction toBigNumber(value) {\n return BigNumber.from(toHex(value));\n}\nfunction toBN(value) {\n const hex = BigNumber.from(value).toHexString();\n if (hex[0] === \"-\") {\n return (new BN(\"-\" + hex.substring(3), 16));\n }\n return new BN(hex.substring(2), 16);\n}\nfunction throwFault(fault, operation, value) {\n const params = { fault: fault, operation: operation };\n if (value != null) {\n params.value = value;\n }\n return logger.throwError(fault, Logger.errors.NUMERIC_FAULT, params);\n}\n// value should have no prefix\nexport function _base36To16(value) {\n return (new BN(value, 36)).toString(16);\n}\n// value should have no prefix\nexport function _base16To36(value) {\n return (new BN(value, 16)).toString(36);\n}\n//# sourceMappingURL=bignumber.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nexport function defineReadOnly(object, name, value) {\n Object.defineProperty(object, name, {\n enumerable: true,\n value: value,\n writable: false,\n });\n}\n// Crawl up the constructor chain to find a static method\nexport function getStatic(ctor, key) {\n for (let i = 0; i < 32; i++) {\n if (ctor[key]) {\n return ctor[key];\n }\n if (!ctor.prototype || typeof (ctor.prototype) !== \"object\") {\n break;\n }\n ctor = Object.getPrototypeOf(ctor.prototype).constructor;\n }\n return null;\n}\nexport function resolveProperties(object) {\n return __awaiter(this, void 0, void 0, function* () {\n const promises = Object.keys(object).map((key) => {\n const value = object[key];\n return Promise.resolve(value).then((v) => ({ key: key, value: v }));\n });\n const results = yield Promise.all(promises);\n return results.reduce((accum, result) => {\n accum[(result.key)] = result.value;\n return accum;\n }, {});\n });\n}\nexport function checkProperties(object, properties) {\n if (!object || typeof (object) !== \"object\") {\n logger.throwArgumentError(\"invalid object\", \"object\", object);\n }\n Object.keys(object).forEach((key) => {\n if (!properties[key]) {\n logger.throwArgumentError(\"invalid object key - \" + key, \"transaction:\" + key, object);\n }\n });\n}\nexport function shallowCopy(object) {\n const result = {};\n for (const key in object) {\n result[key] = object[key];\n }\n return result;\n}\nconst opaque = { bigint: true, boolean: true, \"function\": true, number: true, string: true };\nfunction _isFrozen(object) {\n // Opaque objects are not mutable, so safe to copy by assignment\n if (object === undefined || object === null || opaque[typeof (object)]) {\n return true;\n }\n if (Array.isArray(object) || typeof (object) === \"object\") {\n if (!Object.isFrozen(object)) {\n return false;\n }\n const keys = Object.keys(object);\n for (let i = 0; i < keys.length; i++) {\n let value = null;\n try {\n value = object[keys[i]];\n }\n catch (error) {\n // If accessing a value triggers an error, it is a getter\n // designed to do so (e.g. Result) and is therefore \"frozen\"\n continue;\n }\n if (!_isFrozen(value)) {\n return false;\n }\n }\n return true;\n }\n return logger.throwArgumentError(`Cannot deepCopy ${typeof (object)}`, \"object\", object);\n}\n// Returns a new copy of object, such that no properties may be replaced.\n// New properties may be added only to objects.\nfunction _deepCopy(object) {\n if (_isFrozen(object)) {\n return object;\n }\n // Arrays are mutable, so we need to create a copy\n if (Array.isArray(object)) {\n return Object.freeze(object.map((item) => deepCopy(item)));\n }\n if (typeof (object) === \"object\") {\n const result = {};\n for (const key in object) {\n const value = object[key];\n if (value === undefined) {\n continue;\n }\n defineReadOnly(result, key, deepCopy(value));\n }\n return result;\n }\n return logger.throwArgumentError(`Cannot deepCopy ${typeof (object)}`, \"object\", object);\n}\nexport function deepCopy(object) {\n return _deepCopy(object);\n}\nexport class Description {\n constructor(info) {\n for (const key in info) {\n this[key] = deepCopy(info[key]);\n }\n }\n}\n//# sourceMappingURL=index.js.map","export const version = \"properties/5.6.0\";\n//# sourceMappingURL=_version.js.map","export const version = \"abi/5.6.4\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nimport { arrayify, concat, hexConcat, hexlify } from \"@ethersproject/bytes\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"../_version\";\nconst logger = new Logger(version);\nexport function checkResultErrors(result) {\n // Find the first error (if any)\n const errors = [];\n const checkErrors = function (path, object) {\n if (!Array.isArray(object)) {\n return;\n }\n for (let key in object) {\n const childPath = path.slice();\n childPath.push(key);\n try {\n checkErrors(childPath, object[key]);\n }\n catch (error) {\n errors.push({ path: childPath, error: error });\n }\n }\n };\n checkErrors([], result);\n return errors;\n}\nexport class Coder {\n constructor(name, type, localName, dynamic) {\n // @TODO: defineReadOnly these\n this.name = name;\n this.type = type;\n this.localName = localName;\n this.dynamic = dynamic;\n }\n _throwError(message, value) {\n logger.throwArgumentError(message, this.localName, value);\n }\n}\nexport class Writer {\n constructor(wordSize) {\n defineReadOnly(this, \"wordSize\", wordSize || 32);\n this._data = [];\n this._dataLength = 0;\n this._padding = new Uint8Array(wordSize);\n }\n get data() {\n return hexConcat(this._data);\n }\n get length() { return this._dataLength; }\n _writeData(data) {\n this._data.push(data);\n this._dataLength += data.length;\n return data.length;\n }\n appendWriter(writer) {\n return this._writeData(concat(writer._data));\n }\n // Arrayish items; padded on the right to wordSize\n writeBytes(value) {\n let bytes = arrayify(value);\n const paddingOffset = bytes.length % this.wordSize;\n if (paddingOffset) {\n bytes = concat([bytes, this._padding.slice(paddingOffset)]);\n }\n return this._writeData(bytes);\n }\n _getValue(value) {\n let bytes = arrayify(BigNumber.from(value));\n if (bytes.length > this.wordSize) {\n logger.throwError(\"value out-of-bounds\", Logger.errors.BUFFER_OVERRUN, {\n length: this.wordSize,\n offset: bytes.length\n });\n }\n if (bytes.length % this.wordSize) {\n bytes = concat([this._padding.slice(bytes.length % this.wordSize), bytes]);\n }\n return bytes;\n }\n // BigNumberish items; padded on the left to wordSize\n writeValue(value) {\n return this._writeData(this._getValue(value));\n }\n writeUpdatableValue() {\n const offset = this._data.length;\n this._data.push(this._padding);\n this._dataLength += this.wordSize;\n return (value) => {\n this._data[offset] = this._getValue(value);\n };\n }\n}\nexport class Reader {\n constructor(data, wordSize, coerceFunc, allowLoose) {\n defineReadOnly(this, \"_data\", arrayify(data));\n defineReadOnly(this, \"wordSize\", wordSize || 32);\n defineReadOnly(this, \"_coerceFunc\", coerceFunc);\n defineReadOnly(this, \"allowLoose\", allowLoose);\n this._offset = 0;\n }\n get data() { return hexlify(this._data); }\n get consumed() { return this._offset; }\n // The default Coerce function\n static coerce(name, value) {\n let match = name.match(\"^u?int([0-9]+)$\");\n if (match && parseInt(match[1]) <= 48) {\n value = value.toNumber();\n }\n return value;\n }\n coerce(name, value) {\n if (this._coerceFunc) {\n return this._coerceFunc(name, value);\n }\n return Reader.coerce(name, value);\n }\n _peekBytes(offset, length, loose) {\n let alignedLength = Math.ceil(length / this.wordSize) * this.wordSize;\n if (this._offset + alignedLength > this._data.length) {\n if (this.allowLoose && loose && this._offset + length <= this._data.length) {\n alignedLength = length;\n }\n else {\n logger.throwError(\"data out-of-bounds\", Logger.errors.BUFFER_OVERRUN, {\n length: this._data.length,\n offset: this._offset + alignedLength\n });\n }\n }\n return this._data.slice(this._offset, this._offset + alignedLength);\n }\n subReader(offset) {\n return new Reader(this._data.slice(this._offset + offset), this.wordSize, this._coerceFunc, this.allowLoose);\n }\n readBytes(length, loose) {\n let bytes = this._peekBytes(0, length, !!loose);\n this._offset += bytes.length;\n // @TODO: Make sure the length..end bytes are all 0?\n return bytes.slice(0, length);\n }\n readValue() {\n return BigNumber.from(this.readBytes(this.wordSize));\n }\n}\n//# sourceMappingURL=abstract-coder.js.map","\"use strict\";\nimport sha3 from \"js-sha3\";\nimport { arrayify } from \"@ethersproject/bytes\";\nexport function keccak256(data) {\n return '0x' + sha3.keccak_256(arrayify(data));\n}\n//# sourceMappingURL=index.js.map","export const version = \"rlp/5.6.1\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\n//See: https://github.com/ethereum/wiki/wiki/RLP\nimport { arrayify, hexlify, isBytesLike } from \"@ethersproject/bytes\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nfunction arrayifyInteger(value) {\n const result = [];\n while (value) {\n result.unshift(value & 0xff);\n value >>= 8;\n }\n return result;\n}\nfunction unarrayifyInteger(data, offset, length) {\n let result = 0;\n for (let i = 0; i < length; i++) {\n result = (result * 256) + data[offset + i];\n }\n return result;\n}\nfunction _encode(object) {\n if (Array.isArray(object)) {\n let payload = [];\n object.forEach(function (child) {\n payload = payload.concat(_encode(child));\n });\n if (payload.length <= 55) {\n payload.unshift(0xc0 + payload.length);\n return payload;\n }\n const length = arrayifyInteger(payload.length);\n length.unshift(0xf7 + length.length);\n return length.concat(payload);\n }\n if (!isBytesLike(object)) {\n logger.throwArgumentError(\"RLP object must be BytesLike\", \"object\", object);\n }\n const data = Array.prototype.slice.call(arrayify(object));\n if (data.length === 1 && data[0] <= 0x7f) {\n return data;\n }\n else if (data.length <= 55) {\n data.unshift(0x80 + data.length);\n return data;\n }\n const length = arrayifyInteger(data.length);\n length.unshift(0xb7 + length.length);\n return length.concat(data);\n}\nexport function encode(object) {\n return hexlify(_encode(object));\n}\nfunction _decodeChildren(data, offset, childOffset, length) {\n const result = [];\n while (childOffset < offset + 1 + length) {\n const decoded = _decode(data, childOffset);\n result.push(decoded.result);\n childOffset += decoded.consumed;\n if (childOffset > offset + 1 + length) {\n logger.throwError(\"child data too short\", Logger.errors.BUFFER_OVERRUN, {});\n }\n }\n return { consumed: (1 + length), result: result };\n}\n// returns { consumed: number, result: Object }\nfunction _decode(data, offset) {\n if (data.length === 0) {\n logger.throwError(\"data too short\", Logger.errors.BUFFER_OVERRUN, {});\n }\n // Array with extra length prefix\n if (data[offset] >= 0xf8) {\n const lengthLength = data[offset] - 0xf7;\n if (offset + 1 + lengthLength > data.length) {\n logger.throwError(\"data short segment too short\", Logger.errors.BUFFER_OVERRUN, {});\n }\n const length = unarrayifyInteger(data, offset + 1, lengthLength);\n if (offset + 1 + lengthLength + length > data.length) {\n logger.throwError(\"data long segment too short\", Logger.errors.BUFFER_OVERRUN, {});\n }\n return _decodeChildren(data, offset, offset + 1 + lengthLength, lengthLength + length);\n }\n else if (data[offset] >= 0xc0) {\n const length = data[offset] - 0xc0;\n if (offset + 1 + length > data.length) {\n logger.throwError(\"data array too short\", Logger.errors.BUFFER_OVERRUN, {});\n }\n return _decodeChildren(data, offset, offset + 1, length);\n }\n else if (data[offset] >= 0xb8) {\n const lengthLength = data[offset] - 0xb7;\n if (offset + 1 + lengthLength > data.length) {\n logger.throwError(\"data array too short\", Logger.errors.BUFFER_OVERRUN, {});\n }\n const length = unarrayifyInteger(data, offset + 1, lengthLength);\n if (offset + 1 + lengthLength + length > data.length) {\n logger.throwError(\"data array too short\", Logger.errors.BUFFER_OVERRUN, {});\n }\n const result = hexlify(data.slice(offset + 1 + lengthLength, offset + 1 + lengthLength + length));\n return { consumed: (1 + lengthLength + length), result: result };\n }\n else if (data[offset] >= 0x80) {\n const length = data[offset] - 0x80;\n if (offset + 1 + length > data.length) {\n logger.throwError(\"data too short\", Logger.errors.BUFFER_OVERRUN, {});\n }\n const result = hexlify(data.slice(offset + 1, offset + 1 + length));\n return { consumed: (1 + length), result: result };\n }\n return { consumed: 1, result: hexlify(data[offset]) };\n}\nexport function decode(data) {\n const bytes = arrayify(data);\n const decoded = _decode(bytes, 0);\n if (decoded.consumed !== bytes.length) {\n logger.throwArgumentError(\"invalid rlp data\", \"data\", data);\n }\n return decoded.result;\n}\n//# sourceMappingURL=index.js.map","export const version = \"address/5.6.1\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nimport { arrayify, concat, hexDataLength, hexDataSlice, isHexString, stripZeros } from \"@ethersproject/bytes\";\nimport { BigNumber, _base16To36, _base36To16 } from \"@ethersproject/bignumber\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { encode } from \"@ethersproject/rlp\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nfunction getChecksumAddress(address) {\n if (!isHexString(address, 20)) {\n logger.throwArgumentError(\"invalid address\", \"address\", address);\n }\n address = address.toLowerCase();\n const chars = address.substring(2).split(\"\");\n const expanded = new Uint8Array(40);\n for (let i = 0; i < 40; i++) {\n expanded[i] = chars[i].charCodeAt(0);\n }\n const hashed = arrayify(keccak256(expanded));\n for (let i = 0; i < 40; i += 2) {\n if ((hashed[i >> 1] >> 4) >= 8) {\n chars[i] = chars[i].toUpperCase();\n }\n if ((hashed[i >> 1] & 0x0f) >= 8) {\n chars[i + 1] = chars[i + 1].toUpperCase();\n }\n }\n return \"0x\" + chars.join(\"\");\n}\n// Shims for environments that are missing some required constants and functions\nconst MAX_SAFE_INTEGER = 0x1fffffffffffff;\nfunction log10(x) {\n if (Math.log10) {\n return Math.log10(x);\n }\n return Math.log(x) / Math.LN10;\n}\n// See: https://en.wikipedia.org/wiki/International_Bank_Account_Number\n// Create lookup table\nconst ibanLookup = {};\nfor (let i = 0; i < 10; i++) {\n ibanLookup[String(i)] = String(i);\n}\nfor (let i = 0; i < 26; i++) {\n ibanLookup[String.fromCharCode(65 + i)] = String(10 + i);\n}\n// How many decimal digits can we process? (for 64-bit float, this is 15)\nconst safeDigits = Math.floor(log10(MAX_SAFE_INTEGER));\nfunction ibanChecksum(address) {\n address = address.toUpperCase();\n address = address.substring(4) + address.substring(0, 2) + \"00\";\n let expanded = address.split(\"\").map((c) => { return ibanLookup[c]; }).join(\"\");\n // Javascript can handle integers safely up to 15 (decimal) digits\n while (expanded.length >= safeDigits) {\n let block = expanded.substring(0, safeDigits);\n expanded = parseInt(block, 10) % 97 + expanded.substring(block.length);\n }\n let checksum = String(98 - (parseInt(expanded, 10) % 97));\n while (checksum.length < 2) {\n checksum = \"0\" + checksum;\n }\n return checksum;\n}\n;\nexport function getAddress(address) {\n let result = null;\n if (typeof (address) !== \"string\") {\n logger.throwArgumentError(\"invalid address\", \"address\", address);\n }\n if (address.match(/^(0x)?[0-9a-fA-F]{40}$/)) {\n // Missing the 0x prefix\n if (address.substring(0, 2) !== \"0x\") {\n address = \"0x\" + address;\n }\n result = getChecksumAddress(address);\n // It is a checksummed address with a bad checksum\n if (address.match(/([A-F].*[a-f])|([a-f].*[A-F])/) && result !== address) {\n logger.throwArgumentError(\"bad address checksum\", \"address\", address);\n }\n // Maybe ICAP? (we only support direct mode)\n }\n else if (address.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)) {\n // It is an ICAP address with a bad checksum\n if (address.substring(2, 4) !== ibanChecksum(address)) {\n logger.throwArgumentError(\"bad icap checksum\", \"address\", address);\n }\n result = _base36To16(address.substring(4));\n while (result.length < 40) {\n result = \"0\" + result;\n }\n result = getChecksumAddress(\"0x\" + result);\n }\n else {\n logger.throwArgumentError(\"invalid address\", \"address\", address);\n }\n return result;\n}\nexport function isAddress(address) {\n try {\n getAddress(address);\n return true;\n }\n catch (error) { }\n return false;\n}\nexport function getIcapAddress(address) {\n let base36 = _base16To36(getAddress(address).substring(2)).toUpperCase();\n while (base36.length < 30) {\n base36 = \"0\" + base36;\n }\n return \"XE\" + ibanChecksum(\"XE00\" + base36) + base36;\n}\n// http://ethereum.stackexchange.com/questions/760/how-is-the-address-of-an-ethereum-contract-computed\nexport function getContractAddress(transaction) {\n let from = null;\n try {\n from = getAddress(transaction.from);\n }\n catch (error) {\n logger.throwArgumentError(\"missing from address\", \"transaction\", transaction);\n }\n const nonce = stripZeros(arrayify(BigNumber.from(transaction.nonce).toHexString()));\n return getAddress(hexDataSlice(keccak256(encode([from, nonce])), 12));\n}\nexport function getCreate2Address(from, salt, initCodeHash) {\n if (hexDataLength(salt) !== 32) {\n logger.throwArgumentError(\"salt must be 32 bytes\", \"salt\", salt);\n }\n if (hexDataLength(initCodeHash) !== 32) {\n logger.throwArgumentError(\"initCodeHash must be 32 bytes\", \"initCodeHash\", initCodeHash);\n }\n return getAddress(hexDataSlice(keccak256(concat([\"0xff\", getAddress(from), salt, initCodeHash])), 12));\n}\n//# sourceMappingURL=index.js.map","export const version = \"strings/5.6.1\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nimport { arrayify } from \"@ethersproject/bytes\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n///////////////////////////////\nexport var UnicodeNormalizationForm;\n(function (UnicodeNormalizationForm) {\n UnicodeNormalizationForm[\"current\"] = \"\";\n UnicodeNormalizationForm[\"NFC\"] = \"NFC\";\n UnicodeNormalizationForm[\"NFD\"] = \"NFD\";\n UnicodeNormalizationForm[\"NFKC\"] = \"NFKC\";\n UnicodeNormalizationForm[\"NFKD\"] = \"NFKD\";\n})(UnicodeNormalizationForm || (UnicodeNormalizationForm = {}));\n;\nexport var Utf8ErrorReason;\n(function (Utf8ErrorReason) {\n // A continuation byte was present where there was nothing to continue\n // - offset = the index the codepoint began in\n Utf8ErrorReason[\"UNEXPECTED_CONTINUE\"] = \"unexpected continuation byte\";\n // An invalid (non-continuation) byte to start a UTF-8 codepoint was found\n // - offset = the index the codepoint began in\n Utf8ErrorReason[\"BAD_PREFIX\"] = \"bad codepoint prefix\";\n // The string is too short to process the expected codepoint\n // - offset = the index the codepoint began in\n Utf8ErrorReason[\"OVERRUN\"] = \"string overrun\";\n // A missing continuation byte was expected but not found\n // - offset = the index the continuation byte was expected at\n Utf8ErrorReason[\"MISSING_CONTINUE\"] = \"missing continuation byte\";\n // The computed code point is outside the range for UTF-8\n // - offset = start of this codepoint\n // - badCodepoint = the computed codepoint; outside the UTF-8 range\n Utf8ErrorReason[\"OUT_OF_RANGE\"] = \"out of UTF-8 range\";\n // UTF-8 strings may not contain UTF-16 surrogate pairs\n // - offset = start of this codepoint\n // - badCodepoint = the computed codepoint; inside the UTF-16 surrogate range\n Utf8ErrorReason[\"UTF16_SURROGATE\"] = \"UTF-16 surrogate\";\n // The string is an overlong representation\n // - offset = start of this codepoint\n // - badCodepoint = the computed codepoint; already bounds checked\n Utf8ErrorReason[\"OVERLONG\"] = \"overlong representation\";\n})(Utf8ErrorReason || (Utf8ErrorReason = {}));\n;\nfunction errorFunc(reason, offset, bytes, output, badCodepoint) {\n return logger.throwArgumentError(`invalid codepoint at offset ${offset}; ${reason}`, \"bytes\", bytes);\n}\nfunction ignoreFunc(reason, offset, bytes, output, badCodepoint) {\n // If there is an invalid prefix (including stray continuation), skip any additional continuation bytes\n if (reason === Utf8ErrorReason.BAD_PREFIX || reason === Utf8ErrorReason.UNEXPECTED_CONTINUE) {\n let i = 0;\n for (let o = offset + 1; o < bytes.length; o++) {\n if (bytes[o] >> 6 !== 0x02) {\n break;\n }\n i++;\n }\n return i;\n }\n // This byte runs us past the end of the string, so just jump to the end\n // (but the first byte was read already read and therefore skipped)\n if (reason === Utf8ErrorReason.OVERRUN) {\n return bytes.length - offset - 1;\n }\n // Nothing to skip\n return 0;\n}\nfunction replaceFunc(reason, offset, bytes, output, badCodepoint) {\n // Overlong representations are otherwise \"valid\" code points; just non-deistingtished\n if (reason === Utf8ErrorReason.OVERLONG) {\n output.push(badCodepoint);\n return 0;\n }\n // Put the replacement character into the output\n output.push(0xfffd);\n // Otherwise, process as if ignoring errors\n return ignoreFunc(reason, offset, bytes, output, badCodepoint);\n}\n// Common error handing strategies\nexport const Utf8ErrorFuncs = Object.freeze({\n error: errorFunc,\n ignore: ignoreFunc,\n replace: replaceFunc\n});\n// http://stackoverflow.com/questions/13356493/decode-utf-8-with-javascript#13691499\nfunction getUtf8CodePoints(bytes, onError) {\n if (onError == null) {\n onError = Utf8ErrorFuncs.error;\n }\n bytes = arrayify(bytes);\n const result = [];\n let i = 0;\n // Invalid bytes are ignored\n while (i < bytes.length) {\n const c = bytes[i++];\n // 0xxx xxxx\n if (c >> 7 === 0) {\n result.push(c);\n continue;\n }\n // Multibyte; how many bytes left for this character?\n let extraLength = null;\n let overlongMask = null;\n // 110x xxxx 10xx xxxx\n if ((c & 0xe0) === 0xc0) {\n extraLength = 1;\n overlongMask = 0x7f;\n // 1110 xxxx 10xx xxxx 10xx xxxx\n }\n else if ((c & 0xf0) === 0xe0) {\n extraLength = 2;\n overlongMask = 0x7ff;\n // 1111 0xxx 10xx xxxx 10xx xxxx 10xx xxxx\n }\n else if ((c & 0xf8) === 0xf0) {\n extraLength = 3;\n overlongMask = 0xffff;\n }\n else {\n if ((c & 0xc0) === 0x80) {\n i += onError(Utf8ErrorReason.UNEXPECTED_CONTINUE, i - 1, bytes, result);\n }\n else {\n i += onError(Utf8ErrorReason.BAD_PREFIX, i - 1, bytes, result);\n }\n continue;\n }\n // Do we have enough bytes in our data?\n if (i - 1 + extraLength >= bytes.length) {\n i += onError(Utf8ErrorReason.OVERRUN, i - 1, bytes, result);\n continue;\n }\n // Remove the length prefix from the char\n let res = c & ((1 << (8 - extraLength - 1)) - 1);\n for (let j = 0; j < extraLength; j++) {\n let nextChar = bytes[i];\n // Invalid continuation byte\n if ((nextChar & 0xc0) != 0x80) {\n i += onError(Utf8ErrorReason.MISSING_CONTINUE, i, bytes, result);\n res = null;\n break;\n }\n ;\n res = (res << 6) | (nextChar & 0x3f);\n i++;\n }\n // See above loop for invalid continuation byte\n if (res === null) {\n continue;\n }\n // Maximum code point\n if (res > 0x10ffff) {\n i += onError(Utf8ErrorReason.OUT_OF_RANGE, i - 1 - extraLength, bytes, result, res);\n continue;\n }\n // Reserved for UTF-16 surrogate halves\n if (res >= 0xd800 && res <= 0xdfff) {\n i += onError(Utf8ErrorReason.UTF16_SURROGATE, i - 1 - extraLength, bytes, result, res);\n continue;\n }\n // Check for overlong sequences (more bytes than needed)\n if (res <= overlongMask) {\n i += onError(Utf8ErrorReason.OVERLONG, i - 1 - extraLength, bytes, result, res);\n continue;\n }\n result.push(res);\n }\n return result;\n}\n// http://stackoverflow.com/questions/18729405/how-to-convert-utf8-string-to-byte-array\nexport function toUtf8Bytes(str, form = UnicodeNormalizationForm.current) {\n if (form != UnicodeNormalizationForm.current) {\n logger.checkNormalize();\n str = str.normalize(form);\n }\n let result = [];\n for (let i = 0; i < str.length; i++) {\n const c = str.charCodeAt(i);\n if (c < 0x80) {\n result.push(c);\n }\n else if (c < 0x800) {\n result.push((c >> 6) | 0xc0);\n result.push((c & 0x3f) | 0x80);\n }\n else if ((c & 0xfc00) == 0xd800) {\n i++;\n const c2 = str.charCodeAt(i);\n if (i >= str.length || (c2 & 0xfc00) !== 0xdc00) {\n throw new Error(\"invalid utf-8 string\");\n }\n // Surrogate Pair\n const pair = 0x10000 + ((c & 0x03ff) << 10) + (c2 & 0x03ff);\n result.push((pair >> 18) | 0xf0);\n result.push(((pair >> 12) & 0x3f) | 0x80);\n result.push(((pair >> 6) & 0x3f) | 0x80);\n result.push((pair & 0x3f) | 0x80);\n }\n else {\n result.push((c >> 12) | 0xe0);\n result.push(((c >> 6) & 0x3f) | 0x80);\n result.push((c & 0x3f) | 0x80);\n }\n }\n return arrayify(result);\n}\n;\nfunction escapeChar(value) {\n const hex = (\"0000\" + value.toString(16));\n return \"\\\\u\" + hex.substring(hex.length - 4);\n}\nexport function _toEscapedUtf8String(bytes, onError) {\n return '\"' + getUtf8CodePoints(bytes, onError).map((codePoint) => {\n if (codePoint < 256) {\n switch (codePoint) {\n case 8: return \"\\\\b\";\n case 9: return \"\\\\t\";\n case 10: return \"\\\\n\";\n case 13: return \"\\\\r\";\n case 34: return \"\\\\\\\"\";\n case 92: return \"\\\\\\\\\";\n }\n if (codePoint >= 32 && codePoint < 127) {\n return String.fromCharCode(codePoint);\n }\n }\n if (codePoint <= 0xffff) {\n return escapeChar(codePoint);\n }\n codePoint -= 0x10000;\n return escapeChar(((codePoint >> 10) & 0x3ff) + 0xd800) + escapeChar((codePoint & 0x3ff) + 0xdc00);\n }).join(\"\") + '\"';\n}\nexport function _toUtf8String(codePoints) {\n return codePoints.map((codePoint) => {\n if (codePoint <= 0xffff) {\n return String.fromCharCode(codePoint);\n }\n codePoint -= 0x10000;\n return String.fromCharCode((((codePoint >> 10) & 0x3ff) + 0xd800), ((codePoint & 0x3ff) + 0xdc00));\n }).join(\"\");\n}\nexport function toUtf8String(bytes, onError) {\n return _toUtf8String(getUtf8CodePoints(bytes, onError));\n}\nexport function toUtf8CodePoints(str, form = UnicodeNormalizationForm.current) {\n return getUtf8CodePoints(toUtf8Bytes(str, form));\n}\n//# sourceMappingURL=utf8.js.map","import { keccak256 } from \"@ethersproject/keccak256\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\nexport function id(text) {\n return keccak256(toUtf8Bytes(text));\n}\n//# sourceMappingURL=id.js.map","\"use strict\";\nimport { getAddress } from \"@ethersproject/address\";\nimport { hexZeroPad } from \"@ethersproject/bytes\";\nimport { Coder } from \"./abstract-coder\";\nexport class AddressCoder extends Coder {\n constructor(localName) {\n super(\"address\", \"address\", localName, false);\n }\n defaultValue() {\n return \"0x0000000000000000000000000000000000000000\";\n }\n encode(writer, value) {\n try {\n value = getAddress(value);\n }\n catch (error) {\n this._throwError(error.message, value);\n }\n return writer.writeValue(value);\n }\n decode(reader) {\n return getAddress(hexZeroPad(reader.readValue().toHexString(), 20));\n }\n}\n//# sourceMappingURL=address.js.map","\"use strict\";\nimport { Coder } from \"./abstract-coder\";\n// Clones the functionality of an existing Coder, but without a localName\nexport class AnonymousCoder extends Coder {\n constructor(coder) {\n super(coder.name, coder.type, undefined, coder.dynamic);\n this.coder = coder;\n }\n defaultValue() {\n return this.coder.defaultValue();\n }\n encode(writer, value) {\n return this.coder.encode(writer, value);\n }\n decode(reader) {\n return this.coder.decode(reader);\n }\n}\n//# sourceMappingURL=anonymous.js.map","\"use strict\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"../_version\";\nconst logger = new Logger(version);\nimport { Coder, Writer } from \"./abstract-coder\";\nimport { AnonymousCoder } from \"./anonymous\";\nexport function pack(writer, coders, values) {\n let arrayValues = null;\n if (Array.isArray(values)) {\n arrayValues = values;\n }\n else if (values && typeof (values) === \"object\") {\n let unique = {};\n arrayValues = coders.map((coder) => {\n const name = coder.localName;\n if (!name) {\n logger.throwError(\"cannot encode object for signature with missing names\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"values\",\n coder: coder,\n value: values\n });\n }\n if (unique[name]) {\n logger.throwError(\"cannot encode object for signature with duplicate names\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"values\",\n coder: coder,\n value: values\n });\n }\n unique[name] = true;\n return values[name];\n });\n }\n else {\n logger.throwArgumentError(\"invalid tuple value\", \"tuple\", values);\n }\n if (coders.length !== arrayValues.length) {\n logger.throwArgumentError(\"types/value length mismatch\", \"tuple\", values);\n }\n let staticWriter = new Writer(writer.wordSize);\n let dynamicWriter = new Writer(writer.wordSize);\n let updateFuncs = [];\n coders.forEach((coder, index) => {\n let value = arrayValues[index];\n if (coder.dynamic) {\n // Get current dynamic offset (for the future pointer)\n let dynamicOffset = dynamicWriter.length;\n // Encode the dynamic value into the dynamicWriter\n coder.encode(dynamicWriter, value);\n // Prepare to populate the correct offset once we are done\n let updateFunc = staticWriter.writeUpdatableValue();\n updateFuncs.push((baseOffset) => {\n updateFunc(baseOffset + dynamicOffset);\n });\n }\n else {\n coder.encode(staticWriter, value);\n }\n });\n // Backfill all the dynamic offsets, now that we know the static length\n updateFuncs.forEach((func) => { func(staticWriter.length); });\n let length = writer.appendWriter(staticWriter);\n length += writer.appendWriter(dynamicWriter);\n return length;\n}\nexport function unpack(reader, coders) {\n let values = [];\n // A reader anchored to this base\n let baseReader = reader.subReader(0);\n coders.forEach((coder) => {\n let value = null;\n if (coder.dynamic) {\n let offset = reader.readValue();\n let offsetReader = baseReader.subReader(offset.toNumber());\n try {\n value = coder.decode(offsetReader);\n }\n catch (error) {\n // Cannot recover from this\n if (error.code === Logger.errors.BUFFER_OVERRUN) {\n throw error;\n }\n value = error;\n value.baseType = coder.name;\n value.name = coder.localName;\n value.type = coder.type;\n }\n }\n else {\n try {\n value = coder.decode(reader);\n }\n catch (error) {\n // Cannot recover from this\n if (error.code === Logger.errors.BUFFER_OVERRUN) {\n throw error;\n }\n value = error;\n value.baseType = coder.name;\n value.name = coder.localName;\n value.type = coder.type;\n }\n }\n if (value != undefined) {\n values.push(value);\n }\n });\n // We only output named properties for uniquely named coders\n const uniqueNames = coders.reduce((accum, coder) => {\n const name = coder.localName;\n if (name) {\n if (!accum[name]) {\n accum[name] = 0;\n }\n accum[name]++;\n }\n return accum;\n }, {});\n // Add any named parameters (i.e. tuples)\n coders.forEach((coder, index) => {\n let name = coder.localName;\n if (!name || uniqueNames[name] !== 1) {\n return;\n }\n if (name === \"length\") {\n name = \"_length\";\n }\n if (values[name] != null) {\n return;\n }\n const value = values[index];\n if (value instanceof Error) {\n Object.defineProperty(values, name, {\n enumerable: true,\n get: () => { throw value; }\n });\n }\n else {\n values[name] = value;\n }\n });\n for (let i = 0; i < values.length; i++) {\n const value = values[i];\n if (value instanceof Error) {\n Object.defineProperty(values, i, {\n enumerable: true,\n get: () => { throw value; }\n });\n }\n }\n return Object.freeze(values);\n}\nexport class ArrayCoder extends Coder {\n constructor(coder, length, localName) {\n const type = (coder.type + \"[\" + (length >= 0 ? length : \"\") + \"]\");\n const dynamic = (length === -1 || coder.dynamic);\n super(\"array\", type, localName, dynamic);\n this.coder = coder;\n this.length = length;\n }\n defaultValue() {\n // Verifies the child coder is valid (even if the array is dynamic or 0-length)\n const defaultChild = this.coder.defaultValue();\n const result = [];\n for (let i = 0; i < this.length; i++) {\n result.push(defaultChild);\n }\n return result;\n }\n encode(writer, value) {\n if (!Array.isArray(value)) {\n this._throwError(\"expected array value\", value);\n }\n let count = this.length;\n if (count === -1) {\n count = value.length;\n writer.writeValue(value.length);\n }\n logger.checkArgumentCount(value.length, count, \"coder array\" + (this.localName ? (\" \" + this.localName) : \"\"));\n let coders = [];\n for (let i = 0; i < value.length; i++) {\n coders.push(this.coder);\n }\n return pack(writer, coders, value);\n }\n decode(reader) {\n let count = this.length;\n if (count === -1) {\n count = reader.readValue().toNumber();\n // Check that there is *roughly* enough data to ensure\n // stray random data is not being read as a length. Each\n // slot requires at least 32 bytes for their value (or 32\n // bytes as a link to the data). This could use a much\n // tighter bound, but we are erroring on the side of safety.\n if (count * 32 > reader._data.length) {\n logger.throwError(\"insufficient data length\", Logger.errors.BUFFER_OVERRUN, {\n length: reader._data.length,\n count: count\n });\n }\n }\n let coders = [];\n for (let i = 0; i < count; i++) {\n coders.push(new AnonymousCoder(this.coder));\n }\n return reader.coerce(this.name, unpack(reader, coders));\n }\n}\n//# sourceMappingURL=array.js.map","\"use strict\";\nimport { Coder } from \"./abstract-coder\";\nexport class BooleanCoder extends Coder {\n constructor(localName) {\n super(\"bool\", \"bool\", localName, false);\n }\n defaultValue() {\n return false;\n }\n encode(writer, value) {\n return writer.writeValue(value ? 1 : 0);\n }\n decode(reader) {\n return reader.coerce(this.type, !reader.readValue().isZero());\n }\n}\n//# sourceMappingURL=boolean.js.map","\"use strict\";\nimport { arrayify, hexlify } from \"@ethersproject/bytes\";\nimport { Coder } from \"./abstract-coder\";\nexport class DynamicBytesCoder extends Coder {\n constructor(type, localName) {\n super(type, type, localName, true);\n }\n defaultValue() {\n return \"0x\";\n }\n encode(writer, value) {\n value = arrayify(value);\n let length = writer.writeValue(value.length);\n length += writer.writeBytes(value);\n return length;\n }\n decode(reader) {\n return reader.readBytes(reader.readValue().toNumber(), true);\n }\n}\nexport class BytesCoder extends DynamicBytesCoder {\n constructor(localName) {\n super(\"bytes\", localName);\n }\n decode(reader) {\n return reader.coerce(this.name, hexlify(super.decode(reader)));\n }\n}\n//# sourceMappingURL=bytes.js.map","\"use strict\";\nimport { arrayify, hexlify } from \"@ethersproject/bytes\";\nimport { Coder } from \"./abstract-coder\";\n// @TODO: Merge this with bytes\nexport class FixedBytesCoder extends Coder {\n constructor(size, localName) {\n let name = \"bytes\" + String(size);\n super(name, name, localName, false);\n this.size = size;\n }\n defaultValue() {\n return (\"0x0000000000000000000000000000000000000000000000000000000000000000\").substring(0, 2 + this.size * 2);\n }\n encode(writer, value) {\n let data = arrayify(value);\n if (data.length !== this.size) {\n this._throwError(\"incorrect data length\", value);\n }\n return writer.writeBytes(data);\n }\n decode(reader) {\n return reader.coerce(this.name, hexlify(reader.readBytes(this.size)));\n }\n}\n//# sourceMappingURL=fixed-bytes.js.map","\"use strict\";\nimport { Coder } from \"./abstract-coder\";\nexport class NullCoder extends Coder {\n constructor(localName) {\n super(\"null\", \"\", localName, false);\n }\n defaultValue() {\n return null;\n }\n encode(writer, value) {\n if (value != null) {\n this._throwError(\"not null\", value);\n }\n return writer.writeBytes([]);\n }\n decode(reader) {\n reader.readBytes(0);\n return reader.coerce(this.name, null);\n }\n}\n//# sourceMappingURL=null.js.map","import { BigNumber } from \"@ethersproject/bignumber\";\nconst NegativeOne = ( /*#__PURE__*/BigNumber.from(-1));\nconst Zero = ( /*#__PURE__*/BigNumber.from(0));\nconst One = ( /*#__PURE__*/BigNumber.from(1));\nconst Two = ( /*#__PURE__*/BigNumber.from(2));\nconst WeiPerEther = ( /*#__PURE__*/BigNumber.from(\"1000000000000000000\"));\nconst MaxUint256 = ( /*#__PURE__*/BigNumber.from(\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"));\nconst MinInt256 = ( /*#__PURE__*/BigNumber.from(\"-0x8000000000000000000000000000000000000000000000000000000000000000\"));\nconst MaxInt256 = ( /*#__PURE__*/BigNumber.from(\"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"));\nexport { NegativeOne, Zero, One, Two, WeiPerEther, MaxUint256, MinInt256, MaxInt256, };\n//# sourceMappingURL=bignumbers.js.map","\"use strict\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { MaxUint256, NegativeOne, One, Zero } from \"@ethersproject/constants\";\nimport { Coder } from \"./abstract-coder\";\nexport class NumberCoder extends Coder {\n constructor(size, signed, localName) {\n const name = ((signed ? \"int\" : \"uint\") + (size * 8));\n super(name, name, localName, false);\n this.size = size;\n this.signed = signed;\n }\n defaultValue() {\n return 0;\n }\n encode(writer, value) {\n let v = BigNumber.from(value);\n // Check bounds are safe for encoding\n let maxUintValue = MaxUint256.mask(writer.wordSize * 8);\n if (this.signed) {\n let bounds = maxUintValue.mask(this.size * 8 - 1);\n if (v.gt(bounds) || v.lt(bounds.add(One).mul(NegativeOne))) {\n this._throwError(\"value out-of-bounds\", value);\n }\n }\n else if (v.lt(Zero) || v.gt(maxUintValue.mask(this.size * 8))) {\n this._throwError(\"value out-of-bounds\", value);\n }\n v = v.toTwos(this.size * 8).mask(this.size * 8);\n if (this.signed) {\n v = v.fromTwos(this.size * 8).toTwos(8 * writer.wordSize);\n }\n return writer.writeValue(v);\n }\n decode(reader) {\n let value = reader.readValue().mask(this.size * 8);\n if (this.signed) {\n value = value.fromTwos(this.size * 8);\n }\n return reader.coerce(this.name, value);\n }\n}\n//# sourceMappingURL=number.js.map","\"use strict\";\nimport { toUtf8Bytes, toUtf8String } from \"@ethersproject/strings\";\nimport { DynamicBytesCoder } from \"./bytes\";\nexport class StringCoder extends DynamicBytesCoder {\n constructor(localName) {\n super(\"string\", localName);\n }\n defaultValue() {\n return \"\";\n }\n encode(writer, value) {\n return super.encode(writer, toUtf8Bytes(value));\n }\n decode(reader) {\n return toUtf8String(super.decode(reader));\n }\n}\n//# sourceMappingURL=string.js.map","\"use strict\";\nimport { Coder } from \"./abstract-coder\";\nimport { pack, unpack } from \"./array\";\nexport class TupleCoder extends Coder {\n constructor(coders, localName) {\n let dynamic = false;\n const types = [];\n coders.forEach((coder) => {\n if (coder.dynamic) {\n dynamic = true;\n }\n types.push(coder.type);\n });\n const type = (\"tuple(\" + types.join(\",\") + \")\");\n super(\"tuple\", type, localName, dynamic);\n this.coders = coders;\n }\n defaultValue() {\n const values = [];\n this.coders.forEach((coder) => {\n values.push(coder.defaultValue());\n });\n // We only output named properties for uniquely named coders\n const uniqueNames = this.coders.reduce((accum, coder) => {\n const name = coder.localName;\n if (name) {\n if (!accum[name]) {\n accum[name] = 0;\n }\n accum[name]++;\n }\n return accum;\n }, {});\n // Add named values\n this.coders.forEach((coder, index) => {\n let name = coder.localName;\n if (!name || uniqueNames[name] !== 1) {\n return;\n }\n if (name === \"length\") {\n name = \"_length\";\n }\n if (values[name] != null) {\n return;\n }\n values[name] = values[index];\n });\n return Object.freeze(values);\n }\n encode(writer, value) {\n return pack(writer, this.coders, value);\n }\n decode(reader) {\n return reader.coerce(this.name, unpack(reader, this.coders));\n }\n}\n//# sourceMappingURL=tuple.js.map","\"use strict\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n;\nconst _constructorGuard = {};\nlet ModifiersBytes = { calldata: true, memory: true, storage: true };\nlet ModifiersNest = { calldata: true, memory: true };\nfunction checkModifier(type, name) {\n if (type === \"bytes\" || type === \"string\") {\n if (ModifiersBytes[name]) {\n return true;\n }\n }\n else if (type === \"address\") {\n if (name === \"payable\") {\n return true;\n }\n }\n else if (type.indexOf(\"[\") >= 0 || type === \"tuple\") {\n if (ModifiersNest[name]) {\n return true;\n }\n }\n if (ModifiersBytes[name] || name === \"payable\") {\n logger.throwArgumentError(\"invalid modifier\", \"name\", name);\n }\n return false;\n}\n// @TODO: Make sure that children of an indexed tuple are marked with a null indexed\nfunction parseParamType(param, allowIndexed) {\n let originalParam = param;\n function throwError(i) {\n logger.throwArgumentError(`unexpected character at position ${i}`, \"param\", param);\n }\n param = param.replace(/\\s/g, \" \");\n function newNode(parent) {\n let node = { type: \"\", name: \"\", parent: parent, state: { allowType: true } };\n if (allowIndexed) {\n node.indexed = false;\n }\n return node;\n }\n let parent = { type: \"\", name: \"\", state: { allowType: true } };\n let node = parent;\n for (let i = 0; i < param.length; i++) {\n let c = param[i];\n switch (c) {\n case \"(\":\n if (node.state.allowType && node.type === \"\") {\n node.type = \"tuple\";\n }\n else if (!node.state.allowParams) {\n throwError(i);\n }\n node.state.allowType = false;\n node.type = verifyType(node.type);\n node.components = [newNode(node)];\n node = node.components[0];\n break;\n case \")\":\n delete node.state;\n if (node.name === \"indexed\") {\n if (!allowIndexed) {\n throwError(i);\n }\n node.indexed = true;\n node.name = \"\";\n }\n if (checkModifier(node.type, node.name)) {\n node.name = \"\";\n }\n node.type = verifyType(node.type);\n let child = node;\n node = node.parent;\n if (!node) {\n throwError(i);\n }\n delete child.parent;\n node.state.allowParams = false;\n node.state.allowName = true;\n node.state.allowArray = true;\n break;\n case \",\":\n delete node.state;\n if (node.name === \"indexed\") {\n if (!allowIndexed) {\n throwError(i);\n }\n node.indexed = true;\n node.name = \"\";\n }\n if (checkModifier(node.type, node.name)) {\n node.name = \"\";\n }\n node.type = verifyType(node.type);\n let sibling = newNode(node.parent);\n //{ type: \"\", name: \"\", parent: node.parent, state: { allowType: true } };\n node.parent.components.push(sibling);\n delete node.parent;\n node = sibling;\n break;\n // Hit a space...\n case \" \":\n // If reading type, the type is done and may read a param or name\n if (node.state.allowType) {\n if (node.type !== \"\") {\n node.type = verifyType(node.type);\n delete node.state.allowType;\n node.state.allowName = true;\n node.state.allowParams = true;\n }\n }\n // If reading name, the name is done\n if (node.state.allowName) {\n if (node.name !== \"\") {\n if (node.name === \"indexed\") {\n if (!allowIndexed) {\n throwError(i);\n }\n if (node.indexed) {\n throwError(i);\n }\n node.indexed = true;\n node.name = \"\";\n }\n else if (checkModifier(node.type, node.name)) {\n node.name = \"\";\n }\n else {\n node.state.allowName = false;\n }\n }\n }\n break;\n case \"[\":\n if (!node.state.allowArray) {\n throwError(i);\n }\n node.type += c;\n node.state.allowArray = false;\n node.state.allowName = false;\n node.state.readArray = true;\n break;\n case \"]\":\n if (!node.state.readArray) {\n throwError(i);\n }\n node.type += c;\n node.state.readArray = false;\n node.state.allowArray = true;\n node.state.allowName = true;\n break;\n default:\n if (node.state.allowType) {\n node.type += c;\n node.state.allowParams = true;\n node.state.allowArray = true;\n }\n else if (node.state.allowName) {\n node.name += c;\n delete node.state.allowArray;\n }\n else if (node.state.readArray) {\n node.type += c;\n }\n else {\n throwError(i);\n }\n }\n }\n if (node.parent) {\n logger.throwArgumentError(\"unexpected eof\", \"param\", param);\n }\n delete parent.state;\n if (node.name === \"indexed\") {\n if (!allowIndexed) {\n throwError(originalParam.length - 7);\n }\n if (node.indexed) {\n throwError(originalParam.length - 7);\n }\n node.indexed = true;\n node.name = \"\";\n }\n else if (checkModifier(node.type, node.name)) {\n node.name = \"\";\n }\n parent.type = verifyType(parent.type);\n return parent;\n}\nfunction populate(object, params) {\n for (let key in params) {\n defineReadOnly(object, key, params[key]);\n }\n}\nexport const FormatTypes = Object.freeze({\n // Bare formatting, as is needed for computing a sighash of an event or function\n sighash: \"sighash\",\n // Human-Readable with Minimal spacing and without names (compact human-readable)\n minimal: \"minimal\",\n // Human-Readable with nice spacing, including all names\n full: \"full\",\n // JSON-format a la Solidity\n json: \"json\"\n});\nconst paramTypeArray = new RegExp(/^(.*)\\[([0-9]*)\\]$/);\nexport class ParamType {\n constructor(constructorGuard, params) {\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"use fromString\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new ParamType()\"\n });\n }\n populate(this, params);\n let match = this.type.match(paramTypeArray);\n if (match) {\n populate(this, {\n arrayLength: parseInt(match[2] || \"-1\"),\n arrayChildren: ParamType.fromObject({\n type: match[1],\n components: this.components\n }),\n baseType: \"array\"\n });\n }\n else {\n populate(this, {\n arrayLength: null,\n arrayChildren: null,\n baseType: ((this.components != null) ? \"tuple\" : this.type)\n });\n }\n this._isParamType = true;\n Object.freeze(this);\n }\n // Format the parameter fragment\n // - sighash: \"(uint256,address)\"\n // - minimal: \"tuple(uint256,address) indexed\"\n // - full: \"tuple(uint256 foo, address bar) indexed baz\"\n format(format) {\n if (!format) {\n format = FormatTypes.sighash;\n }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n if (format === FormatTypes.json) {\n let result = {\n type: ((this.baseType === \"tuple\") ? \"tuple\" : this.type),\n name: (this.name || undefined)\n };\n if (typeof (this.indexed) === \"boolean\") {\n result.indexed = this.indexed;\n }\n if (this.components) {\n result.components = this.components.map((comp) => JSON.parse(comp.format(format)));\n }\n return JSON.stringify(result);\n }\n let result = \"\";\n // Array\n if (this.baseType === \"array\") {\n result += this.arrayChildren.format(format);\n result += \"[\" + (this.arrayLength < 0 ? \"\" : String(this.arrayLength)) + \"]\";\n }\n else {\n if (this.baseType === \"tuple\") {\n if (format !== FormatTypes.sighash) {\n result += this.type;\n }\n result += \"(\" + this.components.map((comp) => comp.format(format)).join((format === FormatTypes.full) ? \", \" : \",\") + \")\";\n }\n else {\n result += this.type;\n }\n }\n if (format !== FormatTypes.sighash) {\n if (this.indexed === true) {\n result += \" indexed\";\n }\n if (format === FormatTypes.full && this.name) {\n result += \" \" + this.name;\n }\n }\n return result;\n }\n static from(value, allowIndexed) {\n if (typeof (value) === \"string\") {\n return ParamType.fromString(value, allowIndexed);\n }\n return ParamType.fromObject(value);\n }\n static fromObject(value) {\n if (ParamType.isParamType(value)) {\n return value;\n }\n return new ParamType(_constructorGuard, {\n name: (value.name || null),\n type: verifyType(value.type),\n indexed: ((value.indexed == null) ? null : !!value.indexed),\n components: (value.components ? value.components.map(ParamType.fromObject) : null)\n });\n }\n static fromString(value, allowIndexed) {\n function ParamTypify(node) {\n return ParamType.fromObject({\n name: node.name,\n type: node.type,\n indexed: node.indexed,\n components: node.components\n });\n }\n return ParamTypify(parseParamType(value, !!allowIndexed));\n }\n static isParamType(value) {\n return !!(value != null && value._isParamType);\n }\n}\n;\nfunction parseParams(value, allowIndex) {\n return splitNesting(value).map((param) => ParamType.fromString(param, allowIndex));\n}\nexport class Fragment {\n constructor(constructorGuard, params) {\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"use a static from method\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new Fragment()\"\n });\n }\n populate(this, params);\n this._isFragment = true;\n Object.freeze(this);\n }\n static from(value) {\n if (Fragment.isFragment(value)) {\n return value;\n }\n if (typeof (value) === \"string\") {\n return Fragment.fromString(value);\n }\n return Fragment.fromObject(value);\n }\n static fromObject(value) {\n if (Fragment.isFragment(value)) {\n return value;\n }\n switch (value.type) {\n case \"function\":\n return FunctionFragment.fromObject(value);\n case \"event\":\n return EventFragment.fromObject(value);\n case \"constructor\":\n return ConstructorFragment.fromObject(value);\n case \"error\":\n return ErrorFragment.fromObject(value);\n case \"fallback\":\n case \"receive\":\n // @TODO: Something? Maybe return a FunctionFragment? A custom DefaultFunctionFragment?\n return null;\n }\n return logger.throwArgumentError(\"invalid fragment object\", \"value\", value);\n }\n static fromString(value) {\n // Make sure the \"returns\" is surrounded by a space and all whitespace is exactly one space\n value = value.replace(/\\s/g, \" \");\n value = value.replace(/\\(/g, \" (\").replace(/\\)/g, \") \").replace(/\\s+/g, \" \");\n value = value.trim();\n if (value.split(\" \")[0] === \"event\") {\n return EventFragment.fromString(value.substring(5).trim());\n }\n else if (value.split(\" \")[0] === \"function\") {\n return FunctionFragment.fromString(value.substring(8).trim());\n }\n else if (value.split(\"(\")[0].trim() === \"constructor\") {\n return ConstructorFragment.fromString(value.trim());\n }\n else if (value.split(\" \")[0] === \"error\") {\n return ErrorFragment.fromString(value.substring(5).trim());\n }\n return logger.throwArgumentError(\"unsupported fragment\", \"value\", value);\n }\n static isFragment(value) {\n return !!(value && value._isFragment);\n }\n}\nexport class EventFragment extends Fragment {\n format(format) {\n if (!format) {\n format = FormatTypes.sighash;\n }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n if (format === FormatTypes.json) {\n return JSON.stringify({\n type: \"event\",\n anonymous: this.anonymous,\n name: this.name,\n inputs: this.inputs.map((input) => JSON.parse(input.format(format)))\n });\n }\n let result = \"\";\n if (format !== FormatTypes.sighash) {\n result += \"event \";\n }\n result += this.name + \"(\" + this.inputs.map((input) => input.format(format)).join((format === FormatTypes.full) ? \", \" : \",\") + \") \";\n if (format !== FormatTypes.sighash) {\n if (this.anonymous) {\n result += \"anonymous \";\n }\n }\n return result.trim();\n }\n static from(value) {\n if (typeof (value) === \"string\") {\n return EventFragment.fromString(value);\n }\n return EventFragment.fromObject(value);\n }\n static fromObject(value) {\n if (EventFragment.isEventFragment(value)) {\n return value;\n }\n if (value.type !== \"event\") {\n logger.throwArgumentError(\"invalid event object\", \"value\", value);\n }\n const params = {\n name: verifyIdentifier(value.name),\n anonymous: value.anonymous,\n inputs: (value.inputs ? value.inputs.map(ParamType.fromObject) : []),\n type: \"event\"\n };\n return new EventFragment(_constructorGuard, params);\n }\n static fromString(value) {\n let match = value.match(regexParen);\n if (!match) {\n logger.throwArgumentError(\"invalid event string\", \"value\", value);\n }\n let anonymous = false;\n match[3].split(\" \").forEach((modifier) => {\n switch (modifier.trim()) {\n case \"anonymous\":\n anonymous = true;\n break;\n case \"\":\n break;\n default:\n logger.warn(\"unknown modifier: \" + modifier);\n }\n });\n return EventFragment.fromObject({\n name: match[1].trim(),\n anonymous: anonymous,\n inputs: parseParams(match[2], true),\n type: \"event\"\n });\n }\n static isEventFragment(value) {\n return (value && value._isFragment && value.type === \"event\");\n }\n}\nfunction parseGas(value, params) {\n params.gas = null;\n let comps = value.split(\"@\");\n if (comps.length !== 1) {\n if (comps.length > 2) {\n logger.throwArgumentError(\"invalid human-readable ABI signature\", \"value\", value);\n }\n if (!comps[1].match(/^[0-9]+$/)) {\n logger.throwArgumentError(\"invalid human-readable ABI signature gas\", \"value\", value);\n }\n params.gas = BigNumber.from(comps[1]);\n return comps[0];\n }\n return value;\n}\nfunction parseModifiers(value, params) {\n params.constant = false;\n params.payable = false;\n params.stateMutability = \"nonpayable\";\n value.split(\" \").forEach((modifier) => {\n switch (modifier.trim()) {\n case \"constant\":\n params.constant = true;\n break;\n case \"payable\":\n params.payable = true;\n params.stateMutability = \"payable\";\n break;\n case \"nonpayable\":\n params.payable = false;\n params.stateMutability = \"nonpayable\";\n break;\n case \"pure\":\n params.constant = true;\n params.stateMutability = \"pure\";\n break;\n case \"view\":\n params.constant = true;\n params.stateMutability = \"view\";\n break;\n case \"external\":\n case \"public\":\n case \"\":\n break;\n default:\n console.log(\"unknown modifier: \" + modifier);\n }\n });\n}\nfunction verifyState(value) {\n let result = {\n constant: false,\n payable: true,\n stateMutability: \"payable\"\n };\n if (value.stateMutability != null) {\n result.stateMutability = value.stateMutability;\n // Set (and check things are consistent) the constant property\n result.constant = (result.stateMutability === \"view\" || result.stateMutability === \"pure\");\n if (value.constant != null) {\n if ((!!value.constant) !== result.constant) {\n logger.throwArgumentError(\"cannot have constant function with mutability \" + result.stateMutability, \"value\", value);\n }\n }\n // Set (and check things are consistent) the payable property\n result.payable = (result.stateMutability === \"payable\");\n if (value.payable != null) {\n if ((!!value.payable) !== result.payable) {\n logger.throwArgumentError(\"cannot have payable function with mutability \" + result.stateMutability, \"value\", value);\n }\n }\n }\n else if (value.payable != null) {\n result.payable = !!value.payable;\n // If payable we can assume non-constant; otherwise we can't assume\n if (value.constant == null && !result.payable && value.type !== \"constructor\") {\n logger.throwArgumentError(\"unable to determine stateMutability\", \"value\", value);\n }\n result.constant = !!value.constant;\n if (result.constant) {\n result.stateMutability = \"view\";\n }\n else {\n result.stateMutability = (result.payable ? \"payable\" : \"nonpayable\");\n }\n if (result.payable && result.constant) {\n logger.throwArgumentError(\"cannot have constant payable function\", \"value\", value);\n }\n }\n else if (value.constant != null) {\n result.constant = !!value.constant;\n result.payable = !result.constant;\n result.stateMutability = (result.constant ? \"view\" : \"payable\");\n }\n else if (value.type !== \"constructor\") {\n logger.throwArgumentError(\"unable to determine stateMutability\", \"value\", value);\n }\n return result;\n}\nexport class ConstructorFragment extends Fragment {\n format(format) {\n if (!format) {\n format = FormatTypes.sighash;\n }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n if (format === FormatTypes.json) {\n return JSON.stringify({\n type: \"constructor\",\n stateMutability: ((this.stateMutability !== \"nonpayable\") ? this.stateMutability : undefined),\n payable: this.payable,\n gas: (this.gas ? this.gas.toNumber() : undefined),\n inputs: this.inputs.map((input) => JSON.parse(input.format(format)))\n });\n }\n if (format === FormatTypes.sighash) {\n logger.throwError(\"cannot format a constructor for sighash\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"format(sighash)\"\n });\n }\n let result = \"constructor(\" + this.inputs.map((input) => input.format(format)).join((format === FormatTypes.full) ? \", \" : \",\") + \") \";\n if (this.stateMutability && this.stateMutability !== \"nonpayable\") {\n result += this.stateMutability + \" \";\n }\n return result.trim();\n }\n static from(value) {\n if (typeof (value) === \"string\") {\n return ConstructorFragment.fromString(value);\n }\n return ConstructorFragment.fromObject(value);\n }\n static fromObject(value) {\n if (ConstructorFragment.isConstructorFragment(value)) {\n return value;\n }\n if (value.type !== \"constructor\") {\n logger.throwArgumentError(\"invalid constructor object\", \"value\", value);\n }\n let state = verifyState(value);\n if (state.constant) {\n logger.throwArgumentError(\"constructor cannot be constant\", \"value\", value);\n }\n const params = {\n name: null,\n type: value.type,\n inputs: (value.inputs ? value.inputs.map(ParamType.fromObject) : []),\n payable: state.payable,\n stateMutability: state.stateMutability,\n gas: (value.gas ? BigNumber.from(value.gas) : null)\n };\n return new ConstructorFragment(_constructorGuard, params);\n }\n static fromString(value) {\n let params = { type: \"constructor\" };\n value = parseGas(value, params);\n let parens = value.match(regexParen);\n if (!parens || parens[1].trim() !== \"constructor\") {\n logger.throwArgumentError(\"invalid constructor string\", \"value\", value);\n }\n params.inputs = parseParams(parens[2].trim(), false);\n parseModifiers(parens[3].trim(), params);\n return ConstructorFragment.fromObject(params);\n }\n static isConstructorFragment(value) {\n return (value && value._isFragment && value.type === \"constructor\");\n }\n}\nexport class FunctionFragment extends ConstructorFragment {\n format(format) {\n if (!format) {\n format = FormatTypes.sighash;\n }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n if (format === FormatTypes.json) {\n return JSON.stringify({\n type: \"function\",\n name: this.name,\n constant: this.constant,\n stateMutability: ((this.stateMutability !== \"nonpayable\") ? this.stateMutability : undefined),\n payable: this.payable,\n gas: (this.gas ? this.gas.toNumber() : undefined),\n inputs: this.inputs.map((input) => JSON.parse(input.format(format))),\n outputs: this.outputs.map((output) => JSON.parse(output.format(format))),\n });\n }\n let result = \"\";\n if (format !== FormatTypes.sighash) {\n result += \"function \";\n }\n result += this.name + \"(\" + this.inputs.map((input) => input.format(format)).join((format === FormatTypes.full) ? \", \" : \",\") + \") \";\n if (format !== FormatTypes.sighash) {\n if (this.stateMutability) {\n if (this.stateMutability !== \"nonpayable\") {\n result += (this.stateMutability + \" \");\n }\n }\n else if (this.constant) {\n result += \"view \";\n }\n if (this.outputs && this.outputs.length) {\n result += \"returns (\" + this.outputs.map((output) => output.format(format)).join(\", \") + \") \";\n }\n if (this.gas != null) {\n result += \"@\" + this.gas.toString() + \" \";\n }\n }\n return result.trim();\n }\n static from(value) {\n if (typeof (value) === \"string\") {\n return FunctionFragment.fromString(value);\n }\n return FunctionFragment.fromObject(value);\n }\n static fromObject(value) {\n if (FunctionFragment.isFunctionFragment(value)) {\n return value;\n }\n if (value.type !== \"function\") {\n logger.throwArgumentError(\"invalid function object\", \"value\", value);\n }\n let state = verifyState(value);\n const params = {\n type: value.type,\n name: verifyIdentifier(value.name),\n constant: state.constant,\n inputs: (value.inputs ? value.inputs.map(ParamType.fromObject) : []),\n outputs: (value.outputs ? value.outputs.map(ParamType.fromObject) : []),\n payable: state.payable,\n stateMutability: state.stateMutability,\n gas: (value.gas ? BigNumber.from(value.gas) : null)\n };\n return new FunctionFragment(_constructorGuard, params);\n }\n static fromString(value) {\n let params = { type: \"function\" };\n value = parseGas(value, params);\n let comps = value.split(\" returns \");\n if (comps.length > 2) {\n logger.throwArgumentError(\"invalid function string\", \"value\", value);\n }\n let parens = comps[0].match(regexParen);\n if (!parens) {\n logger.throwArgumentError(\"invalid function signature\", \"value\", value);\n }\n params.name = parens[1].trim();\n if (params.name) {\n verifyIdentifier(params.name);\n }\n params.inputs = parseParams(parens[2], false);\n parseModifiers(parens[3].trim(), params);\n // We have outputs\n if (comps.length > 1) {\n let returns = comps[1].match(regexParen);\n if (returns[1].trim() != \"\" || returns[3].trim() != \"\") {\n logger.throwArgumentError(\"unexpected tokens\", \"value\", value);\n }\n params.outputs = parseParams(returns[2], false);\n }\n else {\n params.outputs = [];\n }\n return FunctionFragment.fromObject(params);\n }\n static isFunctionFragment(value) {\n return (value && value._isFragment && value.type === \"function\");\n }\n}\n//export class StructFragment extends Fragment {\n//}\nfunction checkForbidden(fragment) {\n const sig = fragment.format();\n if (sig === \"Error(string)\" || sig === \"Panic(uint256)\") {\n logger.throwArgumentError(`cannot specify user defined ${sig} error`, \"fragment\", fragment);\n }\n return fragment;\n}\nexport class ErrorFragment extends Fragment {\n format(format) {\n if (!format) {\n format = FormatTypes.sighash;\n }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n if (format === FormatTypes.json) {\n return JSON.stringify({\n type: \"error\",\n name: this.name,\n inputs: this.inputs.map((input) => JSON.parse(input.format(format))),\n });\n }\n let result = \"\";\n if (format !== FormatTypes.sighash) {\n result += \"error \";\n }\n result += this.name + \"(\" + this.inputs.map((input) => input.format(format)).join((format === FormatTypes.full) ? \", \" : \",\") + \") \";\n return result.trim();\n }\n static from(value) {\n if (typeof (value) === \"string\") {\n return ErrorFragment.fromString(value);\n }\n return ErrorFragment.fromObject(value);\n }\n static fromObject(value) {\n if (ErrorFragment.isErrorFragment(value)) {\n return value;\n }\n if (value.type !== \"error\") {\n logger.throwArgumentError(\"invalid error object\", \"value\", value);\n }\n const params = {\n type: value.type,\n name: verifyIdentifier(value.name),\n inputs: (value.inputs ? value.inputs.map(ParamType.fromObject) : [])\n };\n return checkForbidden(new ErrorFragment(_constructorGuard, params));\n }\n static fromString(value) {\n let params = { type: \"error\" };\n let parens = value.match(regexParen);\n if (!parens) {\n logger.throwArgumentError(\"invalid error signature\", \"value\", value);\n }\n params.name = parens[1].trim();\n if (params.name) {\n verifyIdentifier(params.name);\n }\n params.inputs = parseParams(parens[2], false);\n return checkForbidden(ErrorFragment.fromObject(params));\n }\n static isErrorFragment(value) {\n return (value && value._isFragment && value.type === \"error\");\n }\n}\nfunction verifyType(type) {\n // These need to be transformed to their full description\n if (type.match(/^uint($|[^1-9])/)) {\n type = \"uint256\" + type.substring(4);\n }\n else if (type.match(/^int($|[^1-9])/)) {\n type = \"int256\" + type.substring(3);\n }\n // @TODO: more verification\n return type;\n}\n// See: https://github.com/ethereum/solidity/blob/1f8f1a3db93a548d0555e3e14cfc55a10e25b60e/docs/grammar/SolidityLexer.g4#L234\nconst regexIdentifier = new RegExp(\"^[a-zA-Z$_][a-zA-Z0-9$_]*$\");\nfunction verifyIdentifier(value) {\n if (!value || !value.match(regexIdentifier)) {\n logger.throwArgumentError(`invalid identifier \"${value}\"`, \"value\", value);\n }\n return value;\n}\nconst regexParen = new RegExp(\"^([^)(]*)\\\\((.*)\\\\)([^)(]*)$\");\nfunction splitNesting(value) {\n value = value.trim();\n let result = [];\n let accum = \"\";\n let depth = 0;\n for (let offset = 0; offset < value.length; offset++) {\n let c = value[offset];\n if (c === \",\" && depth === 0) {\n result.push(accum);\n accum = \"\";\n }\n else {\n accum += c;\n if (c === \"(\") {\n depth++;\n }\n else if (c === \")\") {\n depth--;\n if (depth === -1) {\n logger.throwArgumentError(\"unbalanced parenthesis\", \"value\", value);\n }\n }\n }\n }\n if (accum) {\n result.push(accum);\n }\n return result;\n}\n//# sourceMappingURL=fragments.js.map","\"use strict\";\n// See: https://github.com/ethereum/wiki/wiki/Ethereum-Contract-ABI\nimport { arrayify } from \"@ethersproject/bytes\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { Reader, Writer } from \"./coders/abstract-coder\";\nimport { AddressCoder } from \"./coders/address\";\nimport { ArrayCoder } from \"./coders/array\";\nimport { BooleanCoder } from \"./coders/boolean\";\nimport { BytesCoder } from \"./coders/bytes\";\nimport { FixedBytesCoder } from \"./coders/fixed-bytes\";\nimport { NullCoder } from \"./coders/null\";\nimport { NumberCoder } from \"./coders/number\";\nimport { StringCoder } from \"./coders/string\";\nimport { TupleCoder } from \"./coders/tuple\";\nimport { ParamType } from \"./fragments\";\nconst paramTypeBytes = new RegExp(/^bytes([0-9]*)$/);\nconst paramTypeNumber = new RegExp(/^(u?int)([0-9]*)$/);\nexport class AbiCoder {\n constructor(coerceFunc) {\n defineReadOnly(this, \"coerceFunc\", coerceFunc || null);\n }\n _getCoder(param) {\n switch (param.baseType) {\n case \"address\":\n return new AddressCoder(param.name);\n case \"bool\":\n return new BooleanCoder(param.name);\n case \"string\":\n return new StringCoder(param.name);\n case \"bytes\":\n return new BytesCoder(param.name);\n case \"array\":\n return new ArrayCoder(this._getCoder(param.arrayChildren), param.arrayLength, param.name);\n case \"tuple\":\n return new TupleCoder((param.components || []).map((component) => {\n return this._getCoder(component);\n }), param.name);\n case \"\":\n return new NullCoder(param.name);\n }\n // u?int[0-9]*\n let match = param.type.match(paramTypeNumber);\n if (match) {\n let size = parseInt(match[2] || \"256\");\n if (size === 0 || size > 256 || (size % 8) !== 0) {\n logger.throwArgumentError(\"invalid \" + match[1] + \" bit length\", \"param\", param);\n }\n return new NumberCoder(size / 8, (match[1] === \"int\"), param.name);\n }\n // bytes[0-9]+\n match = param.type.match(paramTypeBytes);\n if (match) {\n let size = parseInt(match[1]);\n if (size === 0 || size > 32) {\n logger.throwArgumentError(\"invalid bytes length\", \"param\", param);\n }\n return new FixedBytesCoder(size, param.name);\n }\n return logger.throwArgumentError(\"invalid type\", \"type\", param.type);\n }\n _getWordSize() { return 32; }\n _getReader(data, allowLoose) {\n return new Reader(data, this._getWordSize(), this.coerceFunc, allowLoose);\n }\n _getWriter() {\n return new Writer(this._getWordSize());\n }\n getDefaultValue(types) {\n const coders = types.map((type) => this._getCoder(ParamType.from(type)));\n const coder = new TupleCoder(coders, \"_\");\n return coder.defaultValue();\n }\n encode(types, values) {\n if (types.length !== values.length) {\n logger.throwError(\"types/values length mismatch\", Logger.errors.INVALID_ARGUMENT, {\n count: { types: types.length, values: values.length },\n value: { types: types, values: values }\n });\n }\n const coders = types.map((type) => this._getCoder(ParamType.from(type)));\n const coder = (new TupleCoder(coders, \"_\"));\n const writer = this._getWriter();\n coder.encode(writer, values);\n return writer.data;\n }\n decode(types, data, loose) {\n const coders = types.map((type) => this._getCoder(ParamType.from(type)));\n const coder = new TupleCoder(coders, \"_\");\n return coder.decode(this._getReader(arrayify(data), loose));\n }\n}\nexport const defaultAbiCoder = new AbiCoder();\n//# sourceMappingURL=abi-coder.js.map","\"use strict\";\nimport { getAddress } from \"@ethersproject/address\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { arrayify, concat, hexDataSlice, hexlify, hexZeroPad, isHexString } from \"@ethersproject/bytes\";\nimport { id } from \"@ethersproject/hash\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { defineReadOnly, Description, getStatic } from \"@ethersproject/properties\";\nimport { defaultAbiCoder } from \"./abi-coder\";\nimport { checkResultErrors } from \"./coders/abstract-coder\";\nimport { ConstructorFragment, EventFragment, FormatTypes, Fragment, FunctionFragment, ParamType } from \"./fragments\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nexport { checkResultErrors };\nexport class LogDescription extends Description {\n}\nexport class TransactionDescription extends Description {\n}\nexport class ErrorDescription extends Description {\n}\nexport class Indexed extends Description {\n static isIndexed(value) {\n return !!(value && value._isIndexed);\n }\n}\nconst BuiltinErrors = {\n \"0x08c379a0\": { signature: \"Error(string)\", name: \"Error\", inputs: [\"string\"], reason: true },\n \"0x4e487b71\": { signature: \"Panic(uint256)\", name: \"Panic\", inputs: [\"uint256\"] }\n};\nfunction wrapAccessError(property, error) {\n const wrap = new Error(`deferred error during ABI decoding triggered accessing ${property}`);\n wrap.error = error;\n return wrap;\n}\n/*\nfunction checkNames(fragment: Fragment, type: \"input\" | \"output\", params: Array): void {\n params.reduce((accum, param) => {\n if (param.name) {\n if (accum[param.name]) {\n logger.throwArgumentError(`duplicate ${ type } parameter ${ JSON.stringify(param.name) } in ${ fragment.format(\"full\") }`, \"fragment\", fragment);\n }\n accum[param.name] = true;\n }\n return accum;\n }, <{ [ name: string ]: boolean }>{ });\n}\n*/\nexport class Interface {\n constructor(fragments) {\n let abi = [];\n if (typeof (fragments) === \"string\") {\n abi = JSON.parse(fragments);\n }\n else {\n abi = fragments;\n }\n defineReadOnly(this, \"fragments\", abi.map((fragment) => {\n return Fragment.from(fragment);\n }).filter((fragment) => (fragment != null)));\n defineReadOnly(this, \"_abiCoder\", getStatic(new.target, \"getAbiCoder\")());\n defineReadOnly(this, \"functions\", {});\n defineReadOnly(this, \"errors\", {});\n defineReadOnly(this, \"events\", {});\n defineReadOnly(this, \"structs\", {});\n // Add all fragments by their signature\n this.fragments.forEach((fragment) => {\n let bucket = null;\n switch (fragment.type) {\n case \"constructor\":\n if (this.deploy) {\n logger.warn(\"duplicate definition - constructor\");\n return;\n }\n //checkNames(fragment, \"input\", fragment.inputs);\n defineReadOnly(this, \"deploy\", fragment);\n return;\n case \"function\":\n //checkNames(fragment, \"input\", fragment.inputs);\n //checkNames(fragment, \"output\", (fragment).outputs);\n bucket = this.functions;\n break;\n case \"event\":\n //checkNames(fragment, \"input\", fragment.inputs);\n bucket = this.events;\n break;\n case \"error\":\n bucket = this.errors;\n break;\n default:\n return;\n }\n let signature = fragment.format();\n if (bucket[signature]) {\n logger.warn(\"duplicate definition - \" + signature);\n return;\n }\n bucket[signature] = fragment;\n });\n // If we do not have a constructor add a default\n if (!this.deploy) {\n defineReadOnly(this, \"deploy\", ConstructorFragment.from({\n payable: false,\n type: \"constructor\"\n }));\n }\n defineReadOnly(this, \"_isInterface\", true);\n }\n format(format) {\n if (!format) {\n format = FormatTypes.full;\n }\n if (format === FormatTypes.sighash) {\n logger.throwArgumentError(\"interface does not support formatting sighash\", \"format\", format);\n }\n const abi = this.fragments.map((fragment) => fragment.format(format));\n // We need to re-bundle the JSON fragments a bit\n if (format === FormatTypes.json) {\n return JSON.stringify(abi.map((j) => JSON.parse(j)));\n }\n return abi;\n }\n // Sub-classes can override these to handle other blockchains\n static getAbiCoder() {\n return defaultAbiCoder;\n }\n static getAddress(address) {\n return getAddress(address);\n }\n static getSighash(fragment) {\n return hexDataSlice(id(fragment.format()), 0, 4);\n }\n static getEventTopic(eventFragment) {\n return id(eventFragment.format());\n }\n // Find a function definition by any means necessary (unless it is ambiguous)\n getFunction(nameOrSignatureOrSighash) {\n if (isHexString(nameOrSignatureOrSighash)) {\n for (const name in this.functions) {\n if (nameOrSignatureOrSighash === this.getSighash(name)) {\n return this.functions[name];\n }\n }\n logger.throwArgumentError(\"no matching function\", \"sighash\", nameOrSignatureOrSighash);\n }\n // It is a bare name, look up the function (will return null if ambiguous)\n if (nameOrSignatureOrSighash.indexOf(\"(\") === -1) {\n const name = nameOrSignatureOrSighash.trim();\n const matching = Object.keys(this.functions).filter((f) => (f.split(\"(\" /* fix:) */)[0] === name));\n if (matching.length === 0) {\n logger.throwArgumentError(\"no matching function\", \"name\", name);\n }\n else if (matching.length > 1) {\n logger.throwArgumentError(\"multiple matching functions\", \"name\", name);\n }\n return this.functions[matching[0]];\n }\n // Normalize the signature and lookup the function\n const result = this.functions[FunctionFragment.fromString(nameOrSignatureOrSighash).format()];\n if (!result) {\n logger.throwArgumentError(\"no matching function\", \"signature\", nameOrSignatureOrSighash);\n }\n return result;\n }\n // Find an event definition by any means necessary (unless it is ambiguous)\n getEvent(nameOrSignatureOrTopic) {\n if (isHexString(nameOrSignatureOrTopic)) {\n const topichash = nameOrSignatureOrTopic.toLowerCase();\n for (const name in this.events) {\n if (topichash === this.getEventTopic(name)) {\n return this.events[name];\n }\n }\n logger.throwArgumentError(\"no matching event\", \"topichash\", topichash);\n }\n // It is a bare name, look up the function (will return null if ambiguous)\n if (nameOrSignatureOrTopic.indexOf(\"(\") === -1) {\n const name = nameOrSignatureOrTopic.trim();\n const matching = Object.keys(this.events).filter((f) => (f.split(\"(\" /* fix:) */)[0] === name));\n if (matching.length === 0) {\n logger.throwArgumentError(\"no matching event\", \"name\", name);\n }\n else if (matching.length > 1) {\n logger.throwArgumentError(\"multiple matching events\", \"name\", name);\n }\n return this.events[matching[0]];\n }\n // Normalize the signature and lookup the function\n const result = this.events[EventFragment.fromString(nameOrSignatureOrTopic).format()];\n if (!result) {\n logger.throwArgumentError(\"no matching event\", \"signature\", nameOrSignatureOrTopic);\n }\n return result;\n }\n // Find a function definition by any means necessary (unless it is ambiguous)\n getError(nameOrSignatureOrSighash) {\n if (isHexString(nameOrSignatureOrSighash)) {\n const getSighash = getStatic(this.constructor, \"getSighash\");\n for (const name in this.errors) {\n const error = this.errors[name];\n if (nameOrSignatureOrSighash === getSighash(error)) {\n return this.errors[name];\n }\n }\n logger.throwArgumentError(\"no matching error\", \"sighash\", nameOrSignatureOrSighash);\n }\n // It is a bare name, look up the function (will return null if ambiguous)\n if (nameOrSignatureOrSighash.indexOf(\"(\") === -1) {\n const name = nameOrSignatureOrSighash.trim();\n const matching = Object.keys(this.errors).filter((f) => (f.split(\"(\" /* fix:) */)[0] === name));\n if (matching.length === 0) {\n logger.throwArgumentError(\"no matching error\", \"name\", name);\n }\n else if (matching.length > 1) {\n logger.throwArgumentError(\"multiple matching errors\", \"name\", name);\n }\n return this.errors[matching[0]];\n }\n // Normalize the signature and lookup the function\n const result = this.errors[FunctionFragment.fromString(nameOrSignatureOrSighash).format()];\n if (!result) {\n logger.throwArgumentError(\"no matching error\", \"signature\", nameOrSignatureOrSighash);\n }\n return result;\n }\n // Get the sighash (the bytes4 selector) used by Solidity to identify a function\n getSighash(fragment) {\n if (typeof (fragment) === \"string\") {\n try {\n fragment = this.getFunction(fragment);\n }\n catch (error) {\n try {\n fragment = this.getError(fragment);\n }\n catch (_) {\n throw error;\n }\n }\n }\n return getStatic(this.constructor, \"getSighash\")(fragment);\n }\n // Get the topic (the bytes32 hash) used by Solidity to identify an event\n getEventTopic(eventFragment) {\n if (typeof (eventFragment) === \"string\") {\n eventFragment = this.getEvent(eventFragment);\n }\n return getStatic(this.constructor, \"getEventTopic\")(eventFragment);\n }\n _decodeParams(params, data) {\n return this._abiCoder.decode(params, data);\n }\n _encodeParams(params, values) {\n return this._abiCoder.encode(params, values);\n }\n encodeDeploy(values) {\n return this._encodeParams(this.deploy.inputs, values || []);\n }\n decodeErrorResult(fragment, data) {\n if (typeof (fragment) === \"string\") {\n fragment = this.getError(fragment);\n }\n const bytes = arrayify(data);\n if (hexlify(bytes.slice(0, 4)) !== this.getSighash(fragment)) {\n logger.throwArgumentError(`data signature does not match error ${fragment.name}.`, \"data\", hexlify(bytes));\n }\n return this._decodeParams(fragment.inputs, bytes.slice(4));\n }\n encodeErrorResult(fragment, values) {\n if (typeof (fragment) === \"string\") {\n fragment = this.getError(fragment);\n }\n return hexlify(concat([\n this.getSighash(fragment),\n this._encodeParams(fragment.inputs, values || [])\n ]));\n }\n // Decode the data for a function call (e.g. tx.data)\n decodeFunctionData(functionFragment, data) {\n if (typeof (functionFragment) === \"string\") {\n functionFragment = this.getFunction(functionFragment);\n }\n const bytes = arrayify(data);\n if (hexlify(bytes.slice(0, 4)) !== this.getSighash(functionFragment)) {\n logger.throwArgumentError(`data signature does not match function ${functionFragment.name}.`, \"data\", hexlify(bytes));\n }\n return this._decodeParams(functionFragment.inputs, bytes.slice(4));\n }\n // Encode the data for a function call (e.g. tx.data)\n encodeFunctionData(functionFragment, values) {\n if (typeof (functionFragment) === \"string\") {\n functionFragment = this.getFunction(functionFragment);\n }\n return hexlify(concat([\n this.getSighash(functionFragment),\n this._encodeParams(functionFragment.inputs, values || [])\n ]));\n }\n // Decode the result from a function call (e.g. from eth_call)\n decodeFunctionResult(functionFragment, data) {\n if (typeof (functionFragment) === \"string\") {\n functionFragment = this.getFunction(functionFragment);\n }\n let bytes = arrayify(data);\n let reason = null;\n let message = \"\";\n let errorArgs = null;\n let errorName = null;\n let errorSignature = null;\n switch (bytes.length % this._abiCoder._getWordSize()) {\n case 0:\n try {\n return this._abiCoder.decode(functionFragment.outputs, bytes);\n }\n catch (error) { }\n break;\n case 4: {\n const selector = hexlify(bytes.slice(0, 4));\n const builtin = BuiltinErrors[selector];\n if (builtin) {\n errorArgs = this._abiCoder.decode(builtin.inputs, bytes.slice(4));\n errorName = builtin.name;\n errorSignature = builtin.signature;\n if (builtin.reason) {\n reason = errorArgs[0];\n }\n if (errorName === \"Error\") {\n message = `; VM Exception while processing transaction: reverted with reason string ${JSON.stringify(errorArgs[0])}`;\n }\n else if (errorName === \"Panic\") {\n message = `; VM Exception while processing transaction: reverted with panic code ${errorArgs[0]}`;\n }\n }\n else {\n try {\n const error = this.getError(selector);\n errorArgs = this._abiCoder.decode(error.inputs, bytes.slice(4));\n errorName = error.name;\n errorSignature = error.format();\n }\n catch (error) { }\n }\n break;\n }\n }\n return logger.throwError(\"call revert exception\" + message, Logger.errors.CALL_EXCEPTION, {\n method: functionFragment.format(),\n data: hexlify(data), errorArgs, errorName, errorSignature, reason\n });\n }\n // Encode the result for a function call (e.g. for eth_call)\n encodeFunctionResult(functionFragment, values) {\n if (typeof (functionFragment) === \"string\") {\n functionFragment = this.getFunction(functionFragment);\n }\n return hexlify(this._abiCoder.encode(functionFragment.outputs, values || []));\n }\n // Create the filter for the event with search criteria (e.g. for eth_filterLog)\n encodeFilterTopics(eventFragment, values) {\n if (typeof (eventFragment) === \"string\") {\n eventFragment = this.getEvent(eventFragment);\n }\n if (values.length > eventFragment.inputs.length) {\n logger.throwError(\"too many arguments for \" + eventFragment.format(), Logger.errors.UNEXPECTED_ARGUMENT, {\n argument: \"values\",\n value: values\n });\n }\n let topics = [];\n if (!eventFragment.anonymous) {\n topics.push(this.getEventTopic(eventFragment));\n }\n const encodeTopic = (param, value) => {\n if (param.type === \"string\") {\n return id(value);\n }\n else if (param.type === \"bytes\") {\n return keccak256(hexlify(value));\n }\n if (param.type === \"bool\" && typeof (value) === \"boolean\") {\n value = (value ? \"0x01\" : \"0x00\");\n }\n if (param.type.match(/^u?int/)) {\n value = BigNumber.from(value).toHexString();\n }\n // Check addresses are valid\n if (param.type === \"address\") {\n this._abiCoder.encode([\"address\"], [value]);\n }\n return hexZeroPad(hexlify(value), 32);\n };\n values.forEach((value, index) => {\n let param = eventFragment.inputs[index];\n if (!param.indexed) {\n if (value != null) {\n logger.throwArgumentError(\"cannot filter non-indexed parameters; must be null\", (\"contract.\" + param.name), value);\n }\n return;\n }\n if (value == null) {\n topics.push(null);\n }\n else if (param.baseType === \"array\" || param.baseType === \"tuple\") {\n logger.throwArgumentError(\"filtering with tuples or arrays not supported\", (\"contract.\" + param.name), value);\n }\n else if (Array.isArray(value)) {\n topics.push(value.map((value) => encodeTopic(param, value)));\n }\n else {\n topics.push(encodeTopic(param, value));\n }\n });\n // Trim off trailing nulls\n while (topics.length && topics[topics.length - 1] === null) {\n topics.pop();\n }\n return topics;\n }\n encodeEventLog(eventFragment, values) {\n if (typeof (eventFragment) === \"string\") {\n eventFragment = this.getEvent(eventFragment);\n }\n const topics = [];\n const dataTypes = [];\n const dataValues = [];\n if (!eventFragment.anonymous) {\n topics.push(this.getEventTopic(eventFragment));\n }\n if (values.length !== eventFragment.inputs.length) {\n logger.throwArgumentError(\"event arguments/values mismatch\", \"values\", values);\n }\n eventFragment.inputs.forEach((param, index) => {\n const value = values[index];\n if (param.indexed) {\n if (param.type === \"string\") {\n topics.push(id(value));\n }\n else if (param.type === \"bytes\") {\n topics.push(keccak256(value));\n }\n else if (param.baseType === \"tuple\" || param.baseType === \"array\") {\n // @TODO\n throw new Error(\"not implemented\");\n }\n else {\n topics.push(this._abiCoder.encode([param.type], [value]));\n }\n }\n else {\n dataTypes.push(param);\n dataValues.push(value);\n }\n });\n return {\n data: this._abiCoder.encode(dataTypes, dataValues),\n topics: topics\n };\n }\n // Decode a filter for the event and the search criteria\n decodeEventLog(eventFragment, data, topics) {\n if (typeof (eventFragment) === \"string\") {\n eventFragment = this.getEvent(eventFragment);\n }\n if (topics != null && !eventFragment.anonymous) {\n let topicHash = this.getEventTopic(eventFragment);\n if (!isHexString(topics[0], 32) || topics[0].toLowerCase() !== topicHash) {\n logger.throwError(\"fragment/topic mismatch\", Logger.errors.INVALID_ARGUMENT, { argument: \"topics[0]\", expected: topicHash, value: topics[0] });\n }\n topics = topics.slice(1);\n }\n let indexed = [];\n let nonIndexed = [];\n let dynamic = [];\n eventFragment.inputs.forEach((param, index) => {\n if (param.indexed) {\n if (param.type === \"string\" || param.type === \"bytes\" || param.baseType === \"tuple\" || param.baseType === \"array\") {\n indexed.push(ParamType.fromObject({ type: \"bytes32\", name: param.name }));\n dynamic.push(true);\n }\n else {\n indexed.push(param);\n dynamic.push(false);\n }\n }\n else {\n nonIndexed.push(param);\n dynamic.push(false);\n }\n });\n let resultIndexed = (topics != null) ? this._abiCoder.decode(indexed, concat(topics)) : null;\n let resultNonIndexed = this._abiCoder.decode(nonIndexed, data, true);\n let result = [];\n let nonIndexedIndex = 0, indexedIndex = 0;\n eventFragment.inputs.forEach((param, index) => {\n if (param.indexed) {\n if (resultIndexed == null) {\n result[index] = new Indexed({ _isIndexed: true, hash: null });\n }\n else if (dynamic[index]) {\n result[index] = new Indexed({ _isIndexed: true, hash: resultIndexed[indexedIndex++] });\n }\n else {\n try {\n result[index] = resultIndexed[indexedIndex++];\n }\n catch (error) {\n result[index] = error;\n }\n }\n }\n else {\n try {\n result[index] = resultNonIndexed[nonIndexedIndex++];\n }\n catch (error) {\n result[index] = error;\n }\n }\n // Add the keyword argument if named and safe\n if (param.name && result[param.name] == null) {\n const value = result[index];\n // Make error named values throw on access\n if (value instanceof Error) {\n Object.defineProperty(result, param.name, {\n enumerable: true,\n get: () => { throw wrapAccessError(`property ${JSON.stringify(param.name)}`, value); }\n });\n }\n else {\n result[param.name] = value;\n }\n }\n });\n // Make all error indexed values throw on access\n for (let i = 0; i < result.length; i++) {\n const value = result[i];\n if (value instanceof Error) {\n Object.defineProperty(result, i, {\n enumerable: true,\n get: () => { throw wrapAccessError(`index ${i}`, value); }\n });\n }\n }\n return Object.freeze(result);\n }\n // Given a transaction, find the matching function fragment (if any) and\n // determine all its properties and call parameters\n parseTransaction(tx) {\n let fragment = this.getFunction(tx.data.substring(0, 10).toLowerCase());\n if (!fragment) {\n return null;\n }\n return new TransactionDescription({\n args: this._abiCoder.decode(fragment.inputs, \"0x\" + tx.data.substring(10)),\n functionFragment: fragment,\n name: fragment.name,\n signature: fragment.format(),\n sighash: this.getSighash(fragment),\n value: BigNumber.from(tx.value || \"0\"),\n });\n }\n // @TODO\n //parseCallResult(data: BytesLike): ??\n // Given an event log, find the matching event fragment (if any) and\n // determine all its properties and values\n parseLog(log) {\n let fragment = this.getEvent(log.topics[0]);\n if (!fragment || fragment.anonymous) {\n return null;\n }\n // @TODO: If anonymous, and the only method, and the input count matches, should we parse?\n // Probably not, because just because it is the only event in the ABI does\n // not mean we have the full ABI; maybe just a fragment?\n return new LogDescription({\n eventFragment: fragment,\n name: fragment.name,\n signature: fragment.format(),\n topic: this.getEventTopic(fragment),\n args: this.decodeEventLog(fragment, log.data, log.topics)\n });\n }\n parseError(data) {\n const hexData = hexlify(data);\n let fragment = this.getError(hexData.substring(0, 10).toLowerCase());\n if (!fragment) {\n return null;\n }\n return new ErrorDescription({\n args: this._abiCoder.decode(fragment.inputs, \"0x\" + hexData.substring(10)),\n errorFragment: fragment,\n name: fragment.name,\n signature: fragment.format(),\n sighash: this.getSighash(fragment),\n });\n }\n /*\n static from(value: Array | string | Interface) {\n if (Interface.isInterface(value)) {\n return value;\n }\n if (typeof(value) === \"string\") {\n return new Interface(JSON.parse(value));\n }\n return new Interface(value);\n }\n */\n static isInterface(value) {\n return !!(value && value._isInterface);\n }\n}\n//# sourceMappingURL=interface.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { isHexString } from \"@ethersproject/bytes\";\nimport { Description, defineReadOnly, resolveProperties } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n;\n;\n//export type CallTransactionable = {\n// call(transaction: TransactionRequest): Promise;\n//};\nexport class ForkEvent extends Description {\n static isForkEvent(value) {\n return !!(value && value._isForkEvent);\n }\n}\nexport class BlockForkEvent extends ForkEvent {\n constructor(blockHash, expiry) {\n if (!isHexString(blockHash, 32)) {\n logger.throwArgumentError(\"invalid blockHash\", \"blockHash\", blockHash);\n }\n super({\n _isForkEvent: true,\n _isBlockForkEvent: true,\n expiry: (expiry || 0),\n blockHash: blockHash\n });\n }\n}\nexport class TransactionForkEvent extends ForkEvent {\n constructor(hash, expiry) {\n if (!isHexString(hash, 32)) {\n logger.throwArgumentError(\"invalid transaction hash\", \"hash\", hash);\n }\n super({\n _isForkEvent: true,\n _isTransactionForkEvent: true,\n expiry: (expiry || 0),\n hash: hash\n });\n }\n}\nexport class TransactionOrderForkEvent extends ForkEvent {\n constructor(beforeHash, afterHash, expiry) {\n if (!isHexString(beforeHash, 32)) {\n logger.throwArgumentError(\"invalid transaction hash\", \"beforeHash\", beforeHash);\n }\n if (!isHexString(afterHash, 32)) {\n logger.throwArgumentError(\"invalid transaction hash\", \"afterHash\", afterHash);\n }\n super({\n _isForkEvent: true,\n _isTransactionOrderForkEvent: true,\n expiry: (expiry || 0),\n beforeHash: beforeHash,\n afterHash: afterHash\n });\n }\n}\n///////////////////////////////\n// Exported Abstracts\nexport class Provider {\n constructor() {\n logger.checkAbstract(new.target, Provider);\n defineReadOnly(this, \"_isProvider\", true);\n }\n getFeeData() {\n return __awaiter(this, void 0, void 0, function* () {\n const { block, gasPrice } = yield resolveProperties({\n block: this.getBlock(\"latest\"),\n gasPrice: this.getGasPrice().catch((error) => {\n // @TODO: Why is this now failing on Calaveras?\n //console.log(error);\n return null;\n })\n });\n let maxFeePerGas = null, maxPriorityFeePerGas = null;\n if (block && block.baseFeePerGas) {\n // We may want to compute this more accurately in the future,\n // using the formula \"check if the base fee is correct\".\n // See: https://eips.ethereum.org/EIPS/eip-1559\n maxPriorityFeePerGas = BigNumber.from(\"1500000000\");\n maxFeePerGas = block.baseFeePerGas.mul(2).add(maxPriorityFeePerGas);\n }\n return { maxFeePerGas, maxPriorityFeePerGas, gasPrice };\n });\n }\n // Alias for \"on\"\n addListener(eventName, listener) {\n return this.on(eventName, listener);\n }\n // Alias for \"off\"\n removeListener(eventName, listener) {\n return this.off(eventName, listener);\n }\n static isProvider(value) {\n return !!(value && value._isProvider);\n }\n}\n//# sourceMappingURL=index.js.map","export const version = \"abstract-provider/5.6.1\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { defineReadOnly, resolveProperties, shallowCopy } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nconst allowedTransactionKeys = [\n \"accessList\", \"ccipReadEnabled\", \"chainId\", \"customData\", \"data\", \"from\", \"gasLimit\", \"gasPrice\", \"maxFeePerGas\", \"maxPriorityFeePerGas\", \"nonce\", \"to\", \"type\", \"value\"\n];\nconst forwardErrors = [\n Logger.errors.INSUFFICIENT_FUNDS,\n Logger.errors.NONCE_EXPIRED,\n Logger.errors.REPLACEMENT_UNDERPRICED,\n];\n;\n;\nexport class Signer {\n ///////////////////\n // Sub-classes MUST call super\n constructor() {\n logger.checkAbstract(new.target, Signer);\n defineReadOnly(this, \"_isSigner\", true);\n }\n ///////////////////\n // Sub-classes MAY override these\n getBalance(blockTag) {\n return __awaiter(this, void 0, void 0, function* () {\n this._checkProvider(\"getBalance\");\n return yield this.provider.getBalance(this.getAddress(), blockTag);\n });\n }\n getTransactionCount(blockTag) {\n return __awaiter(this, void 0, void 0, function* () {\n this._checkProvider(\"getTransactionCount\");\n return yield this.provider.getTransactionCount(this.getAddress(), blockTag);\n });\n }\n // Populates \"from\" if unspecified, and estimates the gas for the transaction\n estimateGas(transaction) {\n return __awaiter(this, void 0, void 0, function* () {\n this._checkProvider(\"estimateGas\");\n const tx = yield resolveProperties(this.checkTransaction(transaction));\n return yield this.provider.estimateGas(tx);\n });\n }\n // Populates \"from\" if unspecified, and calls with the transaction\n call(transaction, blockTag) {\n return __awaiter(this, void 0, void 0, function* () {\n this._checkProvider(\"call\");\n const tx = yield resolveProperties(this.checkTransaction(transaction));\n return yield this.provider.call(tx, blockTag);\n });\n }\n // Populates all fields in a transaction, signs it and sends it to the network\n sendTransaction(transaction) {\n return __awaiter(this, void 0, void 0, function* () {\n this._checkProvider(\"sendTransaction\");\n const tx = yield this.populateTransaction(transaction);\n const signedTx = yield this.signTransaction(tx);\n return yield this.provider.sendTransaction(signedTx);\n });\n }\n getChainId() {\n return __awaiter(this, void 0, void 0, function* () {\n this._checkProvider(\"getChainId\");\n const network = yield this.provider.getNetwork();\n return network.chainId;\n });\n }\n getGasPrice() {\n return __awaiter(this, void 0, void 0, function* () {\n this._checkProvider(\"getGasPrice\");\n return yield this.provider.getGasPrice();\n });\n }\n getFeeData() {\n return __awaiter(this, void 0, void 0, function* () {\n this._checkProvider(\"getFeeData\");\n return yield this.provider.getFeeData();\n });\n }\n resolveName(name) {\n return __awaiter(this, void 0, void 0, function* () {\n this._checkProvider(\"resolveName\");\n return yield this.provider.resolveName(name);\n });\n }\n // Checks a transaction does not contain invalid keys and if\n // no \"from\" is provided, populates it.\n // - does NOT require a provider\n // - adds \"from\" is not present\n // - returns a COPY (safe to mutate the result)\n // By default called from: (overriding these prevents it)\n // - call\n // - estimateGas\n // - populateTransaction (and therefor sendTransaction)\n checkTransaction(transaction) {\n for (const key in transaction) {\n if (allowedTransactionKeys.indexOf(key) === -1) {\n logger.throwArgumentError(\"invalid transaction key: \" + key, \"transaction\", transaction);\n }\n }\n const tx = shallowCopy(transaction);\n if (tx.from == null) {\n tx.from = this.getAddress();\n }\n else {\n // Make sure any provided address matches this signer\n tx.from = Promise.all([\n Promise.resolve(tx.from),\n this.getAddress()\n ]).then((result) => {\n if (result[0].toLowerCase() !== result[1].toLowerCase()) {\n logger.throwArgumentError(\"from address mismatch\", \"transaction\", transaction);\n }\n return result[0];\n });\n }\n return tx;\n }\n // Populates ALL keys for a transaction and checks that \"from\" matches\n // this Signer. Should be used by sendTransaction but NOT by signTransaction.\n // By default called from: (overriding these prevents it)\n // - sendTransaction\n //\n // Notes:\n // - We allow gasPrice for EIP-1559 as long as it matches maxFeePerGas\n populateTransaction(transaction) {\n return __awaiter(this, void 0, void 0, function* () {\n const tx = yield resolveProperties(this.checkTransaction(transaction));\n if (tx.to != null) {\n tx.to = Promise.resolve(tx.to).then((to) => __awaiter(this, void 0, void 0, function* () {\n if (to == null) {\n return null;\n }\n const address = yield this.resolveName(to);\n if (address == null) {\n logger.throwArgumentError(\"provided ENS name resolves to null\", \"tx.to\", to);\n }\n return address;\n }));\n // Prevent this error from causing an UnhandledPromiseException\n tx.to.catch((error) => { });\n }\n // Do not allow mixing pre-eip-1559 and eip-1559 properties\n const hasEip1559 = (tx.maxFeePerGas != null || tx.maxPriorityFeePerGas != null);\n if (tx.gasPrice != null && (tx.type === 2 || hasEip1559)) {\n logger.throwArgumentError(\"eip-1559 transaction do not support gasPrice\", \"transaction\", transaction);\n }\n else if ((tx.type === 0 || tx.type === 1) && hasEip1559) {\n logger.throwArgumentError(\"pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas\", \"transaction\", transaction);\n }\n if ((tx.type === 2 || tx.type == null) && (tx.maxFeePerGas != null && tx.maxPriorityFeePerGas != null)) {\n // Fully-formed EIP-1559 transaction (skip getFeeData)\n tx.type = 2;\n }\n else if (tx.type === 0 || tx.type === 1) {\n // Explicit Legacy or EIP-2930 transaction\n // Populate missing gasPrice\n if (tx.gasPrice == null) {\n tx.gasPrice = this.getGasPrice();\n }\n }\n else {\n // We need to get fee data to determine things\n const feeData = yield this.getFeeData();\n if (tx.type == null) {\n // We need to auto-detect the intended type of this transaction...\n if (feeData.maxFeePerGas != null && feeData.maxPriorityFeePerGas != null) {\n // The network supports EIP-1559!\n // Upgrade transaction from null to eip-1559\n tx.type = 2;\n if (tx.gasPrice != null) {\n // Using legacy gasPrice property on an eip-1559 network,\n // so use gasPrice as both fee properties\n const gasPrice = tx.gasPrice;\n delete tx.gasPrice;\n tx.maxFeePerGas = gasPrice;\n tx.maxPriorityFeePerGas = gasPrice;\n }\n else {\n // Populate missing fee data\n if (tx.maxFeePerGas == null) {\n tx.maxFeePerGas = feeData.maxFeePerGas;\n }\n if (tx.maxPriorityFeePerGas == null) {\n tx.maxPriorityFeePerGas = feeData.maxPriorityFeePerGas;\n }\n }\n }\n else if (feeData.gasPrice != null) {\n // Network doesn't support EIP-1559...\n // ...but they are trying to use EIP-1559 properties\n if (hasEip1559) {\n logger.throwError(\"network does not support EIP-1559\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"populateTransaction\"\n });\n }\n // Populate missing fee data\n if (tx.gasPrice == null) {\n tx.gasPrice = feeData.gasPrice;\n }\n // Explicitly set untyped transaction to legacy\n tx.type = 0;\n }\n else {\n // getFeeData has failed us.\n logger.throwError(\"failed to get consistent fee data\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"signer.getFeeData\"\n });\n }\n }\n else if (tx.type === 2) {\n // Explicitly using EIP-1559\n // Populate missing fee data\n if (tx.maxFeePerGas == null) {\n tx.maxFeePerGas = feeData.maxFeePerGas;\n }\n if (tx.maxPriorityFeePerGas == null) {\n tx.maxPriorityFeePerGas = feeData.maxPriorityFeePerGas;\n }\n }\n }\n if (tx.nonce == null) {\n tx.nonce = this.getTransactionCount(\"pending\");\n }\n if (tx.gasLimit == null) {\n tx.gasLimit = this.estimateGas(tx).catch((error) => {\n if (forwardErrors.indexOf(error.code) >= 0) {\n throw error;\n }\n return logger.throwError(\"cannot estimate gas; transaction may fail or may require manual gas limit\", Logger.errors.UNPREDICTABLE_GAS_LIMIT, {\n error: error,\n tx: tx\n });\n });\n }\n if (tx.chainId == null) {\n tx.chainId = this.getChainId();\n }\n else {\n tx.chainId = Promise.all([\n Promise.resolve(tx.chainId),\n this.getChainId()\n ]).then((results) => {\n if (results[1] !== 0 && results[0] !== results[1]) {\n logger.throwArgumentError(\"chainId address mismatch\", \"transaction\", transaction);\n }\n return results[0];\n });\n }\n return yield resolveProperties(tx);\n });\n }\n ///////////////////\n // Sub-classes SHOULD leave these alone\n _checkProvider(operation) {\n if (!this.provider) {\n logger.throwError(\"missing provider\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: (operation || \"_checkProvider\")\n });\n }\n }\n static isSigner(value) {\n return !!(value && value._isSigner);\n }\n}\nexport class VoidSigner extends Signer {\n constructor(address, provider) {\n super();\n defineReadOnly(this, \"address\", address);\n defineReadOnly(this, \"provider\", provider || null);\n }\n getAddress() {\n return Promise.resolve(this.address);\n }\n _fail(message, operation) {\n return Promise.resolve().then(() => {\n logger.throwError(message, Logger.errors.UNSUPPORTED_OPERATION, { operation: operation });\n });\n }\n signMessage(message) {\n return this._fail(\"VoidSigner cannot sign messages\", \"signMessage\");\n }\n signTransaction(transaction) {\n return this._fail(\"VoidSigner cannot sign transactions\", \"signTransaction\");\n }\n _signTypedData(domain, types, value) {\n return this._fail(\"VoidSigner cannot sign typed data\", \"signTypedData\");\n }\n connect(provider) {\n return new VoidSigner(this.address, provider);\n }\n}\n//# sourceMappingURL=index.js.map","export const version = \"abstract-signer/5.6.2\";\n//# sourceMappingURL=_version.js.map","import BN from 'bn.js';\nimport hash from 'hash.js';\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nfunction createCommonjsModule(fn, basedir, module) {\n\treturn module = {\n\t\tpath: basedir,\n\t\texports: {},\n\t\trequire: function (path, base) {\n\t\t\treturn commonjsRequire(path, (base === undefined || base === null) ? module.path : base);\n\t\t}\n\t}, fn(module, module.exports), module.exports;\n}\n\nfunction getDefaultExportFromNamespaceIfPresent (n) {\n\treturn n && Object.prototype.hasOwnProperty.call(n, 'default') ? n['default'] : n;\n}\n\nfunction getDefaultExportFromNamespaceIfNotNamed (n) {\n\treturn n && Object.prototype.hasOwnProperty.call(n, 'default') && Object.keys(n).length === 1 ? n['default'] : n;\n}\n\nfunction getAugmentedNamespace(n) {\n\tif (n.__esModule) return n;\n\tvar a = Object.defineProperty({}, '__esModule', {value: true});\n\tObject.keys(n).forEach(function (k) {\n\t\tvar d = Object.getOwnPropertyDescriptor(n, k);\n\t\tObject.defineProperty(a, k, d.get ? d : {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\treturn n[k];\n\t\t\t}\n\t\t});\n\t});\n\treturn a;\n}\n\nfunction commonjsRequire () {\n\tthrow new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs');\n}\n\nvar minimalisticAssert = assert;\n\nfunction assert(val, msg) {\n if (!val)\n throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r)\n throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));\n};\n\nvar utils_1 = createCommonjsModule(function (module, exports) {\n'use strict';\n\nvar utils = exports;\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg !== 'string') {\n for (var i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n return res;\n }\n if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (var i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n } else {\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n var hi = c >> 8;\n var lo = c & 0xff;\n if (hi)\n res.push(hi, lo);\n else\n res.push(lo);\n }\n }\n return res;\n}\nutils.toArray = toArray;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nutils.zero2 = zero2;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nutils.toHex = toHex;\n\nutils.encode = function encode(arr, enc) {\n if (enc === 'hex')\n return toHex(arr);\n else\n return arr;\n};\n});\n\nvar utils_1$1 = createCommonjsModule(function (module, exports) {\n'use strict';\n\nvar utils = exports;\n\n\n\n\nutils.assert = minimalisticAssert;\nutils.toArray = utils_1.toArray;\nutils.zero2 = utils_1.zero2;\nutils.toHex = utils_1.toHex;\nutils.encode = utils_1.encode;\n\n// Represent num in a w-NAF form\nfunction getNAF(num, w, bits) {\n var naf = new Array(Math.max(num.bitLength(), bits) + 1);\n naf.fill(0);\n\n var ws = 1 << (w + 1);\n var k = num.clone();\n\n for (var i = 0; i < naf.length; i++) {\n var z;\n var mod = k.andln(ws - 1);\n if (k.isOdd()) {\n if (mod > (ws >> 1) - 1)\n z = (ws >> 1) - mod;\n else\n z = mod;\n k.isubn(z);\n } else {\n z = 0;\n }\n\n naf[i] = z;\n k.iushrn(1);\n }\n\n return naf;\n}\nutils.getNAF = getNAF;\n\n// Represent k1, k2 in a Joint Sparse Form\nfunction getJSF(k1, k2) {\n var jsf = [\n [],\n [],\n ];\n\n k1 = k1.clone();\n k2 = k2.clone();\n var d1 = 0;\n var d2 = 0;\n var m8;\n while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {\n // First phase\n var m14 = (k1.andln(3) + d1) & 3;\n var m24 = (k2.andln(3) + d2) & 3;\n if (m14 === 3)\n m14 = -1;\n if (m24 === 3)\n m24 = -1;\n var u1;\n if ((m14 & 1) === 0) {\n u1 = 0;\n } else {\n m8 = (k1.andln(7) + d1) & 7;\n if ((m8 === 3 || m8 === 5) && m24 === 2)\n u1 = -m14;\n else\n u1 = m14;\n }\n jsf[0].push(u1);\n\n var u2;\n if ((m24 & 1) === 0) {\n u2 = 0;\n } else {\n m8 = (k2.andln(7) + d2) & 7;\n if ((m8 === 3 || m8 === 5) && m14 === 2)\n u2 = -m24;\n else\n u2 = m24;\n }\n jsf[1].push(u2);\n\n // Second phase\n if (2 * d1 === u1 + 1)\n d1 = 1 - d1;\n if (2 * d2 === u2 + 1)\n d2 = 1 - d2;\n k1.iushrn(1);\n k2.iushrn(1);\n }\n\n return jsf;\n}\nutils.getJSF = getJSF;\n\nfunction cachedProperty(obj, name, computer) {\n var key = '_' + name;\n obj.prototype[name] = function cachedProperty() {\n return this[key] !== undefined ? this[key] :\n this[key] = computer.call(this);\n };\n}\nutils.cachedProperty = cachedProperty;\n\nfunction parseBytes(bytes) {\n return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :\n bytes;\n}\nutils.parseBytes = parseBytes;\n\nfunction intFromLE(bytes) {\n return new BN(bytes, 'hex', 'le');\n}\nutils.intFromLE = intFromLE;\n});\n\n'use strict';\n\n\n\nvar getNAF = utils_1$1.getNAF;\nvar getJSF = utils_1$1.getJSF;\nvar assert$1 = utils_1$1.assert;\n\nfunction BaseCurve(type, conf) {\n this.type = type;\n this.p = new BN(conf.p, 16);\n\n // Use Montgomery, when there is no fast reduction for the prime\n this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);\n\n // Useful for many curves\n this.zero = new BN(0).toRed(this.red);\n this.one = new BN(1).toRed(this.red);\n this.two = new BN(2).toRed(this.red);\n\n // Curve configuration, optional\n this.n = conf.n && new BN(conf.n, 16);\n this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);\n\n // Temporary arrays\n this._wnafT1 = new Array(4);\n this._wnafT2 = new Array(4);\n this._wnafT3 = new Array(4);\n this._wnafT4 = new Array(4);\n\n this._bitLength = this.n ? this.n.bitLength() : 0;\n\n // Generalized Greg Maxwell's trick\n var adjustCount = this.n && this.p.div(this.n);\n if (!adjustCount || adjustCount.cmpn(100) > 0) {\n this.redN = null;\n } else {\n this._maxwellTrick = true;\n this.redN = this.n.toRed(this.red);\n }\n}\nvar base = BaseCurve;\n\nBaseCurve.prototype.point = function point() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype.validate = function validate() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {\n assert$1(p.precomputed);\n var doubles = p._getDoubles();\n\n var naf = getNAF(k, 1, this._bitLength);\n var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);\n I /= 3;\n\n // Translate into more windowed form\n var repr = [];\n var j;\n var nafW;\n for (j = 0; j < naf.length; j += doubles.step) {\n nafW = 0;\n for (var l = j + doubles.step - 1; l >= j; l--)\n nafW = (nafW << 1) + naf[l];\n repr.push(nafW);\n }\n\n var a = this.jpoint(null, null, null);\n var b = this.jpoint(null, null, null);\n for (var i = I; i > 0; i--) {\n for (j = 0; j < repr.length; j++) {\n nafW = repr[j];\n if (nafW === i)\n b = b.mixedAdd(doubles.points[j]);\n else if (nafW === -i)\n b = b.mixedAdd(doubles.points[j].neg());\n }\n a = a.add(b);\n }\n return a.toP();\n};\n\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n var w = 4;\n\n // Precompute window\n var nafPoints = p._getNAFPoints(w);\n w = nafPoints.wnd;\n var wnd = nafPoints.points;\n\n // Get NAF form\n var naf = getNAF(k, w, this._bitLength);\n\n // Add `this`*(N+1) for every w-NAF index\n var acc = this.jpoint(null, null, null);\n for (var i = naf.length - 1; i >= 0; i--) {\n // Count zeroes\n for (var l = 0; i >= 0 && naf[i] === 0; i--)\n l++;\n if (i >= 0)\n l++;\n acc = acc.dblp(l);\n\n if (i < 0)\n break;\n var z = naf[i];\n assert$1(z !== 0);\n if (p.type === 'affine') {\n // J +- P\n if (z > 0)\n acc = acc.mixedAdd(wnd[(z - 1) >> 1]);\n else\n acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg());\n } else {\n // J +- J\n if (z > 0)\n acc = acc.add(wnd[(z - 1) >> 1]);\n else\n acc = acc.add(wnd[(-z - 1) >> 1].neg());\n }\n }\n return p.type === 'affine' ? acc.toP() : acc;\n};\n\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,\n points,\n coeffs,\n len,\n jacobianResult) {\n var wndWidth = this._wnafT1;\n var wnd = this._wnafT2;\n var naf = this._wnafT3;\n\n // Fill all arrays\n var max = 0;\n var i;\n var j;\n var p;\n for (i = 0; i < len; i++) {\n p = points[i];\n var nafPoints = p._getNAFPoints(defW);\n wndWidth[i] = nafPoints.wnd;\n wnd[i] = nafPoints.points;\n }\n\n // Comb small window NAFs\n for (i = len - 1; i >= 1; i -= 2) {\n var a = i - 1;\n var b = i;\n if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {\n naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);\n naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);\n max = Math.max(naf[a].length, max);\n max = Math.max(naf[b].length, max);\n continue;\n }\n\n var comb = [\n points[a], /* 1 */\n null, /* 3 */\n null, /* 5 */\n points[b], /* 7 */\n ];\n\n // Try to avoid Projective points, if possible\n if (points[a].y.cmp(points[b].y) === 0) {\n comb[1] = points[a].add(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].add(points[b].neg());\n } else {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n }\n\n var index = [\n -3, /* -1 -1 */\n -1, /* -1 0 */\n -5, /* -1 1 */\n -7, /* 0 -1 */\n 0, /* 0 0 */\n 7, /* 0 1 */\n 5, /* 1 -1 */\n 1, /* 1 0 */\n 3, /* 1 1 */\n ];\n\n var jsf = getJSF(coeffs[a], coeffs[b]);\n max = Math.max(jsf[0].length, max);\n naf[a] = new Array(max);\n naf[b] = new Array(max);\n for (j = 0; j < max; j++) {\n var ja = jsf[0][j] | 0;\n var jb = jsf[1][j] | 0;\n\n naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];\n naf[b][j] = 0;\n wnd[a] = comb;\n }\n }\n\n var acc = this.jpoint(null, null, null);\n var tmp = this._wnafT4;\n for (i = max; i >= 0; i--) {\n var k = 0;\n\n while (i >= 0) {\n var zero = true;\n for (j = 0; j < len; j++) {\n tmp[j] = naf[j][i] | 0;\n if (tmp[j] !== 0)\n zero = false;\n }\n if (!zero)\n break;\n k++;\n i--;\n }\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n if (i < 0)\n break;\n\n for (j = 0; j < len; j++) {\n var z = tmp[j];\n p;\n if (z === 0)\n continue;\n else if (z > 0)\n p = wnd[j][(z - 1) >> 1];\n else if (z < 0)\n p = wnd[j][(-z - 1) >> 1].neg();\n\n if (p.type === 'affine')\n acc = acc.mixedAdd(p);\n else\n acc = acc.add(p);\n }\n }\n // Zeroify references\n for (i = 0; i < len; i++)\n wnd[i] = null;\n\n if (jacobianResult)\n return acc;\n else\n return acc.toP();\n};\n\nfunction BasePoint(curve, type) {\n this.curve = curve;\n this.type = type;\n this.precomputed = null;\n}\nBaseCurve.BasePoint = BasePoint;\n\nBasePoint.prototype.eq = function eq(/*other*/) {\n throw new Error('Not implemented');\n};\n\nBasePoint.prototype.validate = function validate() {\n return this.curve.validate(this);\n};\n\nBaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n bytes = utils_1$1.toArray(bytes, enc);\n\n var len = this.p.byteLength();\n\n // uncompressed, hybrid-odd, hybrid-even\n if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&\n bytes.length - 1 === 2 * len) {\n if (bytes[0] === 0x06)\n assert$1(bytes[bytes.length - 1] % 2 === 0);\n else if (bytes[0] === 0x07)\n assert$1(bytes[bytes.length - 1] % 2 === 1);\n\n var res = this.point(bytes.slice(1, 1 + len),\n bytes.slice(1 + len, 1 + 2 * len));\n\n return res;\n } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) &&\n bytes.length - 1 === len) {\n return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);\n }\n throw new Error('Unknown point format');\n};\n\nBasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {\n return this.encode(enc, true);\n};\n\nBasePoint.prototype._encode = function _encode(compact) {\n var len = this.curve.p.byteLength();\n var x = this.getX().toArray('be', len);\n\n if (compact)\n return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x);\n\n return [ 0x04 ].concat(x, this.getY().toArray('be', len));\n};\n\nBasePoint.prototype.encode = function encode(enc, compact) {\n return utils_1$1.encode(this._encode(compact), enc);\n};\n\nBasePoint.prototype.precompute = function precompute(power) {\n if (this.precomputed)\n return this;\n\n var precomputed = {\n doubles: null,\n naf: null,\n beta: null,\n };\n precomputed.naf = this._getNAFPoints(8);\n precomputed.doubles = this._getDoubles(4, power);\n precomputed.beta = this._getBeta();\n this.precomputed = precomputed;\n\n return this;\n};\n\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n if (!this.precomputed)\n return false;\n\n var doubles = this.precomputed.doubles;\n if (!doubles)\n return false;\n\n return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);\n};\n\nBasePoint.prototype._getDoubles = function _getDoubles(step, power) {\n if (this.precomputed && this.precomputed.doubles)\n return this.precomputed.doubles;\n\n var doubles = [ this ];\n var acc = this;\n for (var i = 0; i < power; i += step) {\n for (var j = 0; j < step; j++)\n acc = acc.dbl();\n doubles.push(acc);\n }\n return {\n step: step,\n points: doubles,\n };\n};\n\nBasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {\n if (this.precomputed && this.precomputed.naf)\n return this.precomputed.naf;\n\n var res = [ this ];\n var max = (1 << wnd) - 1;\n var dbl = max === 1 ? null : this.dbl();\n for (var i = 1; i < max; i++)\n res[i] = res[i - 1].add(dbl);\n return {\n wnd: wnd,\n points: res,\n };\n};\n\nBasePoint.prototype._getBeta = function _getBeta() {\n return null;\n};\n\nBasePoint.prototype.dblp = function dblp(k) {\n var r = this;\n for (var i = 0; i < k; i++)\n r = r.dbl();\n return r;\n};\n\nvar inherits_browser = createCommonjsModule(function (module) {\nif (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n };\n}\n});\n\n'use strict';\n\n\n\n\n\n\nvar assert$2 = utils_1$1.assert;\n\nfunction ShortCurve(conf) {\n base.call(this, 'short', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.tinv = this.two.redInvm();\n\n this.zeroA = this.a.fromRed().cmpn(0) === 0;\n this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0;\n\n // If the curve is endomorphic, precalculate beta and lambda\n this.endo = this._getEndomorphism(conf);\n this._endoWnafT1 = new Array(4);\n this._endoWnafT2 = new Array(4);\n}\ninherits_browser(ShortCurve, base);\nvar short_1 = ShortCurve;\n\nShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {\n // No efficient endomorphism\n if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1)\n return;\n\n // Compute beta and lambda, that lambda * P = (beta * Px; Py)\n var beta;\n var lambda;\n if (conf.beta) {\n beta = new BN(conf.beta, 16).toRed(this.red);\n } else {\n var betas = this._getEndoRoots(this.p);\n // Choose the smallest beta\n beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];\n beta = beta.toRed(this.red);\n }\n if (conf.lambda) {\n lambda = new BN(conf.lambda, 16);\n } else {\n // Choose the lambda that is matching selected beta\n var lambdas = this._getEndoRoots(this.n);\n if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {\n lambda = lambdas[0];\n } else {\n lambda = lambdas[1];\n assert$2(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);\n }\n }\n\n // Get basis vectors, used for balanced length-two representation\n var basis;\n if (conf.basis) {\n basis = conf.basis.map(function(vec) {\n return {\n a: new BN(vec.a, 16),\n b: new BN(vec.b, 16),\n };\n });\n } else {\n basis = this._getEndoBasis(lambda);\n }\n\n return {\n beta: beta,\n lambda: lambda,\n basis: basis,\n };\n};\n\nShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {\n // Find roots of for x^2 + x + 1 in F\n // Root = (-1 +- Sqrt(-3)) / 2\n //\n var red = num === this.p ? this.red : BN.mont(num);\n var tinv = new BN(2).toRed(red).redInvm();\n var ntinv = tinv.redNeg();\n\n var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);\n\n var l1 = ntinv.redAdd(s).fromRed();\n var l2 = ntinv.redSub(s).fromRed();\n return [ l1, l2 ];\n};\n\nShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {\n // aprxSqrt >= sqrt(this.n)\n var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2));\n\n // 3.74\n // Run EGCD, until r(L + 1) < aprxSqrt\n var u = lambda;\n var v = this.n.clone();\n var x1 = new BN(1);\n var y1 = new BN(0);\n var x2 = new BN(0);\n var y2 = new BN(1);\n\n // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n)\n var a0;\n var b0;\n // First vector\n var a1;\n var b1;\n // Second vector\n var a2;\n var b2;\n\n var prevR;\n var i = 0;\n var r;\n var x;\n while (u.cmpn(0) !== 0) {\n var q = v.div(u);\n r = v.sub(q.mul(u));\n x = x2.sub(q.mul(x1));\n var y = y2.sub(q.mul(y1));\n\n if (!a1 && r.cmp(aprxSqrt) < 0) {\n a0 = prevR.neg();\n b0 = x1;\n a1 = r.neg();\n b1 = x;\n } else if (a1 && ++i === 2) {\n break;\n }\n prevR = r;\n\n v = u;\n u = r;\n x2 = x1;\n x1 = x;\n y2 = y1;\n y1 = y;\n }\n a2 = r.neg();\n b2 = x;\n\n var len1 = a1.sqr().add(b1.sqr());\n var len2 = a2.sqr().add(b2.sqr());\n if (len2.cmp(len1) >= 0) {\n a2 = a0;\n b2 = b0;\n }\n\n // Normalize signs\n if (a1.negative) {\n a1 = a1.neg();\n b1 = b1.neg();\n }\n if (a2.negative) {\n a2 = a2.neg();\n b2 = b2.neg();\n }\n\n return [\n { a: a1, b: b1 },\n { a: a2, b: b2 },\n ];\n};\n\nShortCurve.prototype._endoSplit = function _endoSplit(k) {\n var basis = this.endo.basis;\n var v1 = basis[0];\n var v2 = basis[1];\n\n var c1 = v2.b.mul(k).divRound(this.n);\n var c2 = v1.b.neg().mul(k).divRound(this.n);\n\n var p1 = c1.mul(v1.a);\n var p2 = c2.mul(v2.a);\n var q1 = c1.mul(v1.b);\n var q2 = c2.mul(v2.b);\n\n // Calculate answer\n var k1 = k.sub(p1).sub(p2);\n var k2 = q1.add(q2).neg();\n return { k1: k1, k2: k2 };\n};\n\nShortCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n // XXX Is there any way to tell if the number is odd without converting it\n // to non-red form?\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nShortCurve.prototype.validate = function validate(point) {\n if (point.inf)\n return true;\n\n var x = point.x;\n var y = point.y;\n\n var ax = this.a.redMul(x);\n var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);\n return y.redSqr().redISub(rhs).cmpn(0) === 0;\n};\n\nShortCurve.prototype._endoWnafMulAdd =\n function _endoWnafMulAdd(points, coeffs, jacobianResult) {\n var npoints = this._endoWnafT1;\n var ncoeffs = this._endoWnafT2;\n for (var i = 0; i < points.length; i++) {\n var split = this._endoSplit(coeffs[i]);\n var p = points[i];\n var beta = p._getBeta();\n\n if (split.k1.negative) {\n split.k1.ineg();\n p = p.neg(true);\n }\n if (split.k2.negative) {\n split.k2.ineg();\n beta = beta.neg(true);\n }\n\n npoints[i * 2] = p;\n npoints[i * 2 + 1] = beta;\n ncoeffs[i * 2] = split.k1;\n ncoeffs[i * 2 + 1] = split.k2;\n }\n var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult);\n\n // Clean-up references to points and coefficients\n for (var j = 0; j < i * 2; j++) {\n npoints[j] = null;\n ncoeffs[j] = null;\n }\n return res;\n };\n\nfunction Point(curve, x, y, isRed) {\n base.BasePoint.call(this, curve, 'affine');\n if (x === null && y === null) {\n this.x = null;\n this.y = null;\n this.inf = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n // Force redgomery representation when loading from JSON\n if (isRed) {\n this.x.forceRed(this.curve.red);\n this.y.forceRed(this.curve.red);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n this.inf = false;\n }\n}\ninherits_browser(Point, base.BasePoint);\n\nShortCurve.prototype.point = function point(x, y, isRed) {\n return new Point(this, x, y, isRed);\n};\n\nShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {\n return Point.fromJSON(this, obj, red);\n};\n\nPoint.prototype._getBeta = function _getBeta() {\n if (!this.curve.endo)\n return;\n\n var pre = this.precomputed;\n if (pre && pre.beta)\n return pre.beta;\n\n var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);\n if (pre) {\n var curve = this.curve;\n var endoMul = function(p) {\n return curve.point(p.x.redMul(curve.endo.beta), p.y);\n };\n pre.beta = beta;\n beta.precomputed = {\n beta: null,\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(endoMul),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(endoMul),\n },\n };\n }\n return beta;\n};\n\nPoint.prototype.toJSON = function toJSON() {\n if (!this.precomputed)\n return [ this.x, this.y ];\n\n return [ this.x, this.y, this.precomputed && {\n doubles: this.precomputed.doubles && {\n step: this.precomputed.doubles.step,\n points: this.precomputed.doubles.points.slice(1),\n },\n naf: this.precomputed.naf && {\n wnd: this.precomputed.naf.wnd,\n points: this.precomputed.naf.points.slice(1),\n },\n } ];\n};\n\nPoint.fromJSON = function fromJSON(curve, obj, red) {\n if (typeof obj === 'string')\n obj = JSON.parse(obj);\n var res = curve.point(obj[0], obj[1], red);\n if (!obj[2])\n return res;\n\n function obj2point(obj) {\n return curve.point(obj[0], obj[1], red);\n }\n\n var pre = obj[2];\n res.precomputed = {\n beta: null,\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: [ res ].concat(pre.doubles.points.map(obj2point)),\n },\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: [ res ].concat(pre.naf.points.map(obj2point)),\n },\n };\n return res;\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n return this.inf;\n};\n\nPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.inf)\n return p;\n\n // P + O = P\n if (p.inf)\n return this;\n\n // P + P = 2P\n if (this.eq(p))\n return this.dbl();\n\n // P + (-P) = O\n if (this.neg().eq(p))\n return this.curve.point(null, null);\n\n // P + Q = O\n if (this.x.cmp(p.x) === 0)\n return this.curve.point(null, null);\n\n var c = this.y.redSub(p.y);\n if (c.cmpn(0) !== 0)\n c = c.redMul(this.x.redSub(p.x).redInvm());\n var nx = c.redSqr().redISub(this.x).redISub(p.x);\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.inf)\n return this;\n\n // 2P = O\n var ys1 = this.y.redAdd(this.y);\n if (ys1.cmpn(0) === 0)\n return this.curve.point(null, null);\n\n var a = this.curve.a;\n\n var x2 = this.x.redSqr();\n var dyinv = ys1.redInvm();\n var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);\n\n var nx = c.redSqr().redISub(this.x.redAdd(this.x));\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.getX = function getX() {\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n return this.y.fromRed();\n};\n\nPoint.prototype.mul = function mul(k) {\n k = new BN(k, 16);\n if (this.isInfinity())\n return this;\n else if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else if (this.curve.endo)\n return this.curve._endoWnafMulAdd([ this ], [ k ]);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs, true);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2, true);\n};\n\nPoint.prototype.eq = function eq(p) {\n return this === p ||\n this.inf === p.inf &&\n (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);\n};\n\nPoint.prototype.neg = function neg(_precompute) {\n if (this.inf)\n return this;\n\n var res = this.curve.point(this.x, this.y.redNeg());\n if (_precompute && this.precomputed) {\n var pre = this.precomputed;\n var negate = function(p) {\n return p.neg();\n };\n res.precomputed = {\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(negate),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(negate),\n },\n };\n }\n return res;\n};\n\nPoint.prototype.toJ = function toJ() {\n if (this.inf)\n return this.curve.jpoint(null, null, null);\n\n var res = this.curve.jpoint(this.x, this.y, this.curve.one);\n return res;\n};\n\nfunction JPoint(curve, x, y, z) {\n base.BasePoint.call(this, curve, 'jacobian');\n if (x === null && y === null && z === null) {\n this.x = this.curve.one;\n this.y = this.curve.one;\n this.z = new BN(0);\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = new BN(z, 16);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n\n this.zOne = this.z === this.curve.one;\n}\ninherits_browser(JPoint, base.BasePoint);\n\nShortCurve.prototype.jpoint = function jpoint(x, y, z) {\n return new JPoint(this, x, y, z);\n};\n\nJPoint.prototype.toP = function toP() {\n if (this.isInfinity())\n return this.curve.point(null, null);\n\n var zinv = this.z.redInvm();\n var zinv2 = zinv.redSqr();\n var ax = this.x.redMul(zinv2);\n var ay = this.y.redMul(zinv2).redMul(zinv);\n\n return this.curve.point(ax, ay);\n};\n\nJPoint.prototype.neg = function neg() {\n return this.curve.jpoint(this.x, this.y.redNeg(), this.z);\n};\n\nJPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.isInfinity())\n return p;\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 12M + 4S + 7A\n var pz2 = p.z.redSqr();\n var z2 = this.z.redSqr();\n var u1 = this.x.redMul(pz2);\n var u2 = p.x.redMul(z2);\n var s1 = this.y.redMul(pz2.redMul(p.z));\n var s2 = p.y.redMul(z2.redMul(this.z));\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(p.z).redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mixedAdd = function mixedAdd(p) {\n // O + P = P\n if (this.isInfinity())\n return p.toJ();\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 8M + 3S + 7A\n var z2 = this.z.redSqr();\n var u1 = this.x;\n var u2 = p.x.redMul(z2);\n var s1 = this.y;\n var s2 = p.y.redMul(z2).redMul(this.z);\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.dblp = function dblp(pow) {\n if (pow === 0)\n return this;\n if (this.isInfinity())\n return this;\n if (!pow)\n return this.dbl();\n\n var i;\n if (this.curve.zeroA || this.curve.threeA) {\n var r = this;\n for (i = 0; i < pow; i++)\n r = r.dbl();\n return r;\n }\n\n // 1M + 2S + 1A + N * (4S + 5M + 8A)\n // N = 1 => 6M + 6S + 9A\n var a = this.curve.a;\n var tinv = this.curve.tinv;\n\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n // Reuse results\n var jyd = jy.redAdd(jy);\n for (i = 0; i < pow; i++) {\n var jx2 = jx.redSqr();\n var jyd2 = jyd.redSqr();\n var jyd4 = jyd2.redSqr();\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var t1 = jx.redMul(jyd2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n var dny = c.redMul(t2);\n dny = dny.redIAdd(dny).redISub(jyd4);\n var nz = jyd.redMul(jz);\n if (i + 1 < pow)\n jz4 = jz4.redMul(jyd4);\n\n jx = nx;\n jz = nz;\n jyd = dny;\n }\n\n return this.curve.jpoint(jx, jyd.redMul(tinv), jz);\n};\n\nJPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n if (this.curve.zeroA)\n return this._zeroDbl();\n else if (this.curve.threeA)\n return this._threeDbl();\n else\n return this._dbl();\n};\n\nJPoint.prototype._zeroDbl = function _zeroDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 14A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // T = M ^ 2 - 2*S\n var t = m.redSqr().redISub(s).redISub(s);\n\n // 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2*Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-dbl-2009-l\n // 2M + 5S + 13A\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = B^2\n var c = b.redSqr();\n // D = 2 * ((X1 + B)^2 - A - C)\n var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);\n d = d.redIAdd(d);\n // E = 3 * A\n var e = a.redAdd(a).redIAdd(a);\n // F = E^2\n var f = e.redSqr();\n\n // 8 * C\n var c8 = c.redIAdd(c);\n c8 = c8.redIAdd(c8);\n c8 = c8.redIAdd(c8);\n\n // X3 = F - 2 * D\n nx = f.redISub(d).redISub(d);\n // Y3 = E * (D - X3) - 8 * C\n ny = e.redMul(d.redISub(nx)).redISub(c8);\n // Z3 = 2 * Y1 * Z1\n nz = this.y.redMul(this.z);\n nz = nz.redIAdd(nz);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._threeDbl = function _threeDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 15A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a\n var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);\n // T = M^2 - 2 * S\n var t = m.redSqr().redISub(s).redISub(s);\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2 * Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b\n // 3M + 5S\n\n // delta = Z1^2\n var delta = this.z.redSqr();\n // gamma = Y1^2\n var gamma = this.y.redSqr();\n // beta = X1 * gamma\n var beta = this.x.redMul(gamma);\n // alpha = 3 * (X1 - delta) * (X1 + delta)\n var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));\n alpha = alpha.redAdd(alpha).redIAdd(alpha);\n // X3 = alpha^2 - 8 * beta\n var beta4 = beta.redIAdd(beta);\n beta4 = beta4.redIAdd(beta4);\n var beta8 = beta4.redAdd(beta4);\n nx = alpha.redSqr().redISub(beta8);\n // Z3 = (Y1 + Z1)^2 - gamma - delta\n nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);\n // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2\n var ggamma8 = gamma.redSqr();\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._dbl = function _dbl() {\n var a = this.curve.a;\n\n // 4M + 6S + 10A\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n var jx2 = jx.redSqr();\n var jy2 = jy.redSqr();\n\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var jxd4 = jx.redAdd(jx);\n jxd4 = jxd4.redIAdd(jxd4);\n var t1 = jxd4.redMul(jy2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n\n var jyd8 = jy2.redSqr();\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n var ny = c.redMul(t2).redISub(jyd8);\n var nz = jy.redAdd(jy).redMul(jz);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.trpl = function trpl() {\n if (!this.curve.zeroA)\n return this.dbl().add(this);\n\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl\n // 5M + 10S + ...\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // ZZ = Z1^2\n var zz = this.z.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // M = 3 * XX + a * ZZ2; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // MM = M^2\n var mm = m.redSqr();\n // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM\n var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n e = e.redIAdd(e);\n e = e.redAdd(e).redIAdd(e);\n e = e.redISub(mm);\n // EE = E^2\n var ee = e.redSqr();\n // T = 16*YYYY\n var t = yyyy.redIAdd(yyyy);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n // U = (M + E)^2 - MM - EE - T\n var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);\n // X3 = 4 * (X1 * EE - 4 * YY * U)\n var yyu4 = yy.redMul(u);\n yyu4 = yyu4.redIAdd(yyu4);\n yyu4 = yyu4.redIAdd(yyu4);\n var nx = this.x.redMul(ee).redISub(yyu4);\n nx = nx.redIAdd(nx);\n nx = nx.redIAdd(nx);\n // Y3 = 8 * Y1 * (U * (T - U) - E * EE)\n var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n // Z3 = (Z1 + E)^2 - ZZ - EE\n var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mul = function mul(k, kbase) {\n k = new BN(k, kbase);\n\n return this.curve._wnafMul(this, k);\n};\n\nJPoint.prototype.eq = function eq(p) {\n if (p.type === 'affine')\n return this.eq(p.toJ());\n\n if (this === p)\n return true;\n\n // x1 * z2^2 == x2 * z1^2\n var z2 = this.z.redSqr();\n var pz2 = p.z.redSqr();\n if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0)\n return false;\n\n // y1 * z2^3 == y2 * z1^3\n var z3 = z2.redMul(this.z);\n var pz3 = pz2.redMul(p.z);\n return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;\n};\n\nJPoint.prototype.eqXToP = function eqXToP(x) {\n var zs = this.z.redSqr();\n var rx = x.toRed(this.curve.red).redMul(zs);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(zs);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\nJPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nJPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n\nvar curve_1 = createCommonjsModule(function (module, exports) {\n'use strict';\n\nvar curve = exports;\n\ncurve.base = base;\ncurve.short = short_1;\ncurve.mont = /*RicMoo:ethers:require(./mont)*/(null);\ncurve.edwards = /*RicMoo:ethers:require(./edwards)*/(null);\n});\n\nvar curves_1 = createCommonjsModule(function (module, exports) {\n'use strict';\n\nvar curves = exports;\n\n\n\n\n\nvar assert = utils_1$1.assert;\n\nfunction PresetCurve(options) {\n if (options.type === 'short')\n this.curve = new curve_1.short(options);\n else if (options.type === 'edwards')\n this.curve = new curve_1.edwards(options);\n else\n this.curve = new curve_1.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n\n assert(this.g.validate(), 'Invalid curve');\n assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function() {\n var curve = new PresetCurve(options);\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n value: curve,\n });\n return curve;\n },\n });\n}\n\ndefineCurve('p192', {\n type: 'short',\n prime: 'p192',\n p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',\n b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',\n n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',\n hash: hash.sha256,\n gRed: false,\n g: [\n '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012',\n '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811',\n ],\n});\n\ndefineCurve('p224', {\n type: 'short',\n prime: 'p224',\n p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',\n b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',\n n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',\n hash: hash.sha256,\n gRed: false,\n g: [\n 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21',\n 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34',\n ],\n});\n\ndefineCurve('p256', {\n type: 'short',\n prime: null,\n p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',\n a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',\n b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',\n n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',\n hash: hash.sha256,\n gRed: false,\n g: [\n '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296',\n '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5',\n ],\n});\n\ndefineCurve('p384', {\n type: 'short',\n prime: null,\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 ffffffff',\n a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 fffffffc',\n b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' +\n '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +\n 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n hash: hash.sha384,\n gRed: false,\n g: [\n 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' +\n '5502f25d bf55296c 3a545e38 72760ab7',\n '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' +\n '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f',\n ],\n});\n\ndefineCurve('p521', {\n type: 'short',\n prime: null,\n p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' +\n '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' +\n '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' +\n 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n hash: hash.sha512,\n gRed: false,\n g: [\n '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' +\n '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' +\n 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66',\n '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' +\n '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' +\n '3fad0761 353c7086 a272c240 88be9476 9fd16650',\n ],\n});\n\ndefineCurve('curve25519', {\n type: 'mont',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '76d06',\n b: '1',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '9',\n ],\n});\n\ndefineCurve('ed25519', {\n type: 'edwards',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '-1',\n c: '1',\n // -121665 * (121666^(-1)) (mod P)\n d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',\n\n // 4/5\n '6666666666666666666666666666666666666666666666666666666666666658',\n ],\n});\n\nvar pre;\ntry {\n pre = /*RicMoo:ethers:require(./precomputed/secp256k1)*/(null).crash();\n} catch (e) {\n pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n type: 'short',\n prime: 'k256',\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n a: '0',\n b: '7',\n n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n h: '1',\n hash: hash.sha256,\n\n // Precomputed endomorphism\n beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n basis: [\n {\n a: '3086d221a7d46bcde86c90e49284eb15',\n b: '-e4437ed6010e88286f547fa90abfe4c3',\n },\n {\n a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n b: '3086d221a7d46bcde86c90e49284eb15',\n },\n ],\n\n gRed: false,\n g: [\n '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',\n '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n pre,\n ],\n});\n});\n\n'use strict';\n\n\n\n\n\nfunction HmacDRBG(options) {\n if (!(this instanceof HmacDRBG))\n return new HmacDRBG(options);\n this.hash = options.hash;\n this.predResist = !!options.predResist;\n\n this.outLen = this.hash.outSize;\n this.minEntropy = options.minEntropy || this.hash.hmacStrength;\n\n this._reseed = null;\n this.reseedInterval = null;\n this.K = null;\n this.V = null;\n\n var entropy = utils_1.toArray(options.entropy, options.entropyEnc || 'hex');\n var nonce = utils_1.toArray(options.nonce, options.nonceEnc || 'hex');\n var pers = utils_1.toArray(options.pers, options.persEnc || 'hex');\n minimalisticAssert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n this._init(entropy, nonce, pers);\n}\nvar hmacDrbg = HmacDRBG;\n\nHmacDRBG.prototype._init = function init(entropy, nonce, pers) {\n var seed = entropy.concat(nonce).concat(pers);\n\n this.K = new Array(this.outLen / 8);\n this.V = new Array(this.outLen / 8);\n for (var i = 0; i < this.V.length; i++) {\n this.K[i] = 0x00;\n this.V[i] = 0x01;\n }\n\n this._update(seed);\n this._reseed = 1;\n this.reseedInterval = 0x1000000000000; // 2^48\n};\n\nHmacDRBG.prototype._hmac = function hmac() {\n return new hash.hmac(this.hash, this.K);\n};\n\nHmacDRBG.prototype._update = function update(seed) {\n var kmac = this._hmac()\n .update(this.V)\n .update([ 0x00 ]);\n if (seed)\n kmac = kmac.update(seed);\n this.K = kmac.digest();\n this.V = this._hmac().update(this.V).digest();\n if (!seed)\n return;\n\n this.K = this._hmac()\n .update(this.V)\n .update([ 0x01 ])\n .update(seed)\n .digest();\n this.V = this._hmac().update(this.V).digest();\n};\n\nHmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {\n // Optional entropy enc\n if (typeof entropyEnc !== 'string') {\n addEnc = add;\n add = entropyEnc;\n entropyEnc = null;\n }\n\n entropy = utils_1.toArray(entropy, entropyEnc);\n add = utils_1.toArray(add, addEnc);\n\n minimalisticAssert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n\n this._update(entropy.concat(add || []));\n this._reseed = 1;\n};\n\nHmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {\n if (this._reseed > this.reseedInterval)\n throw new Error('Reseed is required');\n\n // Optional encoding\n if (typeof enc !== 'string') {\n addEnc = add;\n add = enc;\n enc = null;\n }\n\n // Optional additional data\n if (add) {\n add = utils_1.toArray(add, addEnc || 'hex');\n this._update(add);\n }\n\n var temp = [];\n while (temp.length < len) {\n this.V = this._hmac().update(this.V).digest();\n temp = temp.concat(this.V);\n }\n\n var res = temp.slice(0, len);\n this._update(add);\n this._reseed++;\n return utils_1.encode(res, enc);\n};\n\n'use strict';\n\n\n\nvar assert$3 = utils_1$1.assert;\n\nfunction KeyPair(ec, options) {\n this.ec = ec;\n this.priv = null;\n this.pub = null;\n\n // KeyPair(ec, { priv: ..., pub: ... })\n if (options.priv)\n this._importPrivate(options.priv, options.privEnc);\n if (options.pub)\n this._importPublic(options.pub, options.pubEnc);\n}\nvar key = KeyPair;\n\nKeyPair.fromPublic = function fromPublic(ec, pub, enc) {\n if (pub instanceof KeyPair)\n return pub;\n\n return new KeyPair(ec, {\n pub: pub,\n pubEnc: enc,\n });\n};\n\nKeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {\n if (priv instanceof KeyPair)\n return priv;\n\n return new KeyPair(ec, {\n priv: priv,\n privEnc: enc,\n });\n};\n\nKeyPair.prototype.validate = function validate() {\n var pub = this.getPublic();\n\n if (pub.isInfinity())\n return { result: false, reason: 'Invalid public key' };\n if (!pub.validate())\n return { result: false, reason: 'Public key is not a point' };\n if (!pub.mul(this.ec.curve.n).isInfinity())\n return { result: false, reason: 'Public key * N != O' };\n\n return { result: true, reason: null };\n};\n\nKeyPair.prototype.getPublic = function getPublic(compact, enc) {\n // compact is optional argument\n if (typeof compact === 'string') {\n enc = compact;\n compact = null;\n }\n\n if (!this.pub)\n this.pub = this.ec.g.mul(this.priv);\n\n if (!enc)\n return this.pub;\n\n return this.pub.encode(enc, compact);\n};\n\nKeyPair.prototype.getPrivate = function getPrivate(enc) {\n if (enc === 'hex')\n return this.priv.toString(16, 2);\n else\n return this.priv;\n};\n\nKeyPair.prototype._importPrivate = function _importPrivate(key, enc) {\n this.priv = new BN(key, enc || 16);\n\n // Ensure that the priv won't be bigger than n, otherwise we may fail\n // in fixed multiplication method\n this.priv = this.priv.umod(this.ec.curve.n);\n};\n\nKeyPair.prototype._importPublic = function _importPublic(key, enc) {\n if (key.x || key.y) {\n // Montgomery points only have an `x` coordinate.\n // Weierstrass/Edwards points on the other hand have both `x` and\n // `y` coordinates.\n if (this.ec.curve.type === 'mont') {\n assert$3(key.x, 'Need x coordinate');\n } else if (this.ec.curve.type === 'short' ||\n this.ec.curve.type === 'edwards') {\n assert$3(key.x && key.y, 'Need both x and y coordinate');\n }\n this.pub = this.ec.curve.point(key.x, key.y);\n return;\n }\n this.pub = this.ec.curve.decodePoint(key, enc);\n};\n\n// ECDH\nKeyPair.prototype.derive = function derive(pub) {\n if(!pub.validate()) {\n assert$3(pub.validate(), 'public point not validated');\n }\n return pub.mul(this.priv).getX();\n};\n\n// ECDSA\nKeyPair.prototype.sign = function sign(msg, enc, options) {\n return this.ec.sign(msg, this, enc, options);\n};\n\nKeyPair.prototype.verify = function verify(msg, signature) {\n return this.ec.verify(msg, signature, this);\n};\n\nKeyPair.prototype.inspect = function inspect() {\n return '';\n};\n\n'use strict';\n\n\n\n\nvar assert$4 = utils_1$1.assert;\n\nfunction Signature(options, enc) {\n if (options instanceof Signature)\n return options;\n\n if (this._importDER(options, enc))\n return;\n\n assert$4(options.r && options.s, 'Signature without r or s');\n this.r = new BN(options.r, 16);\n this.s = new BN(options.s, 16);\n if (options.recoveryParam === undefined)\n this.recoveryParam = null;\n else\n this.recoveryParam = options.recoveryParam;\n}\nvar signature = Signature;\n\nfunction Position() {\n this.place = 0;\n}\n\nfunction getLength(buf, p) {\n var initial = buf[p.place++];\n if (!(initial & 0x80)) {\n return initial;\n }\n var octetLen = initial & 0xf;\n\n // Indefinite length or overflow\n if (octetLen === 0 || octetLen > 4) {\n return false;\n }\n\n var val = 0;\n for (var i = 0, off = p.place; i < octetLen; i++, off++) {\n val <<= 8;\n val |= buf[off];\n val >>>= 0;\n }\n\n // Leading zeroes\n if (val <= 0x7f) {\n return false;\n }\n\n p.place = off;\n return val;\n}\n\nfunction rmPadding(buf) {\n var i = 0;\n var len = buf.length - 1;\n while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {\n i++;\n }\n if (i === 0) {\n return buf;\n }\n return buf.slice(i);\n}\n\nSignature.prototype._importDER = function _importDER(data, enc) {\n data = utils_1$1.toArray(data, enc);\n var p = new Position();\n if (data[p.place++] !== 0x30) {\n return false;\n }\n var len = getLength(data, p);\n if (len === false) {\n return false;\n }\n if ((len + p.place) !== data.length) {\n return false;\n }\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var rlen = getLength(data, p);\n if (rlen === false) {\n return false;\n }\n var r = data.slice(p.place, rlen + p.place);\n p.place += rlen;\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var slen = getLength(data, p);\n if (slen === false) {\n return false;\n }\n if (data.length !== slen + p.place) {\n return false;\n }\n var s = data.slice(p.place, slen + p.place);\n if (r[0] === 0) {\n if (r[1] & 0x80) {\n r = r.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n if (s[0] === 0) {\n if (s[1] & 0x80) {\n s = s.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n\n this.r = new BN(r);\n this.s = new BN(s);\n this.recoveryParam = null;\n\n return true;\n};\n\nfunction constructLength(arr, len) {\n if (len < 0x80) {\n arr.push(len);\n return;\n }\n var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);\n arr.push(octets | 0x80);\n while (--octets) {\n arr.push((len >>> (octets << 3)) & 0xff);\n }\n arr.push(len);\n}\n\nSignature.prototype.toDER = function toDER(enc) {\n var r = this.r.toArray();\n var s = this.s.toArray();\n\n // Pad values\n if (r[0] & 0x80)\n r = [ 0 ].concat(r);\n // Pad values\n if (s[0] & 0x80)\n s = [ 0 ].concat(s);\n\n r = rmPadding(r);\n s = rmPadding(s);\n\n while (!s[0] && !(s[1] & 0x80)) {\n s = s.slice(1);\n }\n var arr = [ 0x02 ];\n constructLength(arr, r.length);\n arr = arr.concat(r);\n arr.push(0x02);\n constructLength(arr, s.length);\n var backHalf = arr.concat(s);\n var res = [ 0x30 ];\n constructLength(res, backHalf.length);\n res = res.concat(backHalf);\n return utils_1$1.encode(res, enc);\n};\n\n'use strict';\n\n\n\n\n\nvar rand = /*RicMoo:ethers:require(brorand)*/(function() { throw new Error('unsupported'); });\nvar assert$5 = utils_1$1.assert;\n\n\n\n\nfunction EC(options) {\n if (!(this instanceof EC))\n return new EC(options);\n\n // Shortcut `elliptic.ec(curve-name)`\n if (typeof options === 'string') {\n assert$5(Object.prototype.hasOwnProperty.call(curves_1, options),\n 'Unknown curve ' + options);\n\n options = curves_1[options];\n }\n\n // Shortcut for `elliptic.ec(elliptic.curves.curveName)`\n if (options instanceof curves_1.PresetCurve)\n options = { curve: options };\n\n this.curve = options.curve.curve;\n this.n = this.curve.n;\n this.nh = this.n.ushrn(1);\n this.g = this.curve.g;\n\n // Point on curve\n this.g = options.curve.g;\n this.g.precompute(options.curve.n.bitLength() + 1);\n\n // Hash for function for DRBG\n this.hash = options.hash || options.curve.hash;\n}\nvar ec = EC;\n\nEC.prototype.keyPair = function keyPair(options) {\n return new key(this, options);\n};\n\nEC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {\n return key.fromPrivate(this, priv, enc);\n};\n\nEC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {\n return key.fromPublic(this, pub, enc);\n};\n\nEC.prototype.genKeyPair = function genKeyPair(options) {\n if (!options)\n options = {};\n\n // Instantiate Hmac_DRBG\n var drbg = new hmacDrbg({\n hash: this.hash,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n entropy: options.entropy || rand(this.hash.hmacStrength),\n entropyEnc: options.entropy && options.entropyEnc || 'utf8',\n nonce: this.n.toArray(),\n });\n\n var bytes = this.n.byteLength();\n var ns2 = this.n.sub(new BN(2));\n for (;;) {\n var priv = new BN(drbg.generate(bytes));\n if (priv.cmp(ns2) > 0)\n continue;\n\n priv.iaddn(1);\n return this.keyFromPrivate(priv);\n }\n};\n\nEC.prototype._truncateToN = function _truncateToN(msg, truncOnly) {\n var delta = msg.byteLength() * 8 - this.n.bitLength();\n if (delta > 0)\n msg = msg.ushrn(delta);\n if (!truncOnly && msg.cmp(this.n) >= 0)\n return msg.sub(this.n);\n else\n return msg;\n};\n\nEC.prototype.sign = function sign(msg, key, enc, options) {\n if (typeof enc === 'object') {\n options = enc;\n enc = null;\n }\n if (!options)\n options = {};\n\n key = this.keyFromPrivate(key, enc);\n msg = this._truncateToN(new BN(msg, 16));\n\n // Zero-extend key to provide enough entropy\n var bytes = this.n.byteLength();\n var bkey = key.getPrivate().toArray('be', bytes);\n\n // Zero-extend nonce to have the same byte size as N\n var nonce = msg.toArray('be', bytes);\n\n // Instantiate Hmac_DRBG\n var drbg = new hmacDrbg({\n hash: this.hash,\n entropy: bkey,\n nonce: nonce,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n });\n\n // Number of bytes to generate\n var ns1 = this.n.sub(new BN(1));\n\n for (var iter = 0; ; iter++) {\n var k = options.k ?\n options.k(iter) :\n new BN(drbg.generate(this.n.byteLength()));\n k = this._truncateToN(k, true);\n if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0)\n continue;\n\n var kp = this.g.mul(k);\n if (kp.isInfinity())\n continue;\n\n var kpX = kp.getX();\n var r = kpX.umod(this.n);\n if (r.cmpn(0) === 0)\n continue;\n\n var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));\n s = s.umod(this.n);\n if (s.cmpn(0) === 0)\n continue;\n\n var recoveryParam = (kp.getY().isOdd() ? 1 : 0) |\n (kpX.cmp(r) !== 0 ? 2 : 0);\n\n // Use complement of `s`, if it is > `n / 2`\n if (options.canonical && s.cmp(this.nh) > 0) {\n s = this.n.sub(s);\n recoveryParam ^= 1;\n }\n\n return new signature({ r: r, s: s, recoveryParam: recoveryParam });\n }\n};\n\nEC.prototype.verify = function verify(msg, signature$1, key, enc) {\n msg = this._truncateToN(new BN(msg, 16));\n key = this.keyFromPublic(key, enc);\n signature$1 = new signature(signature$1, 'hex');\n\n // Perform primitive values validation\n var r = signature$1.r;\n var s = signature$1.s;\n if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0)\n return false;\n if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0)\n return false;\n\n // Validate signature\n var sinv = s.invm(this.n);\n var u1 = sinv.mul(msg).umod(this.n);\n var u2 = sinv.mul(r).umod(this.n);\n var p;\n\n if (!this.curve._maxwellTrick) {\n p = this.g.mulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n return p.getX().umod(this.n).cmp(r) === 0;\n }\n\n // NOTE: Greg Maxwell's trick, inspired by:\n // https://git.io/vad3K\n\n p = this.g.jmulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n // Compare `p.x` of Jacobian point with `r`,\n // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the\n // inverse of `p.z^2`\n return p.eqXToP(r);\n};\n\nEC.prototype.recoverPubKey = function(msg, signature$1, j, enc) {\n assert$5((3 & j) === j, 'The recovery param is more than two bits');\n signature$1 = new signature(signature$1, enc);\n\n var n = this.n;\n var e = new BN(msg);\n var r = signature$1.r;\n var s = signature$1.s;\n\n // A set LSB signifies that the y-coordinate is odd\n var isYOdd = j & 1;\n var isSecondKey = j >> 1;\n if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey)\n throw new Error('Unable to find sencond key candinate');\n\n // 1.1. Let x = r + jn.\n if (isSecondKey)\n r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);\n else\n r = this.curve.pointFromX(r, isYOdd);\n\n var rInv = signature$1.r.invm(n);\n var s1 = n.sub(e).mul(rInv).umod(n);\n var s2 = s.mul(rInv).umod(n);\n\n // 1.6.1 Compute Q = r^-1 (sR - eG)\n // Q = r^-1 (sR + -eG)\n return this.g.mulAdd(s1, r, s2);\n};\n\nEC.prototype.getKeyRecoveryParam = function(e, signature$1, Q, enc) {\n signature$1 = new signature(signature$1, enc);\n if (signature$1.recoveryParam !== null)\n return signature$1.recoveryParam;\n\n for (var i = 0; i < 4; i++) {\n var Qprime;\n try {\n Qprime = this.recoverPubKey(e, signature$1, i);\n } catch (e) {\n continue;\n }\n\n if (Qprime.eq(Q))\n return i;\n }\n throw new Error('Unable to find valid recovery factor');\n};\n\nvar elliptic_1 = createCommonjsModule(function (module, exports) {\n'use strict';\n\nvar elliptic = exports;\n\nelliptic.version = /*RicMoo:ethers*/{ version: \"6.5.4\" }.version;\nelliptic.utils = utils_1$1;\nelliptic.rand = /*RicMoo:ethers:require(brorand)*/(function() { throw new Error('unsupported'); });\nelliptic.curve = curve_1;\nelliptic.curves = curves_1;\n\n// Protocols\nelliptic.ec = ec;\nelliptic.eddsa = /*RicMoo:ethers:require(./elliptic/eddsa)*/(null);\n});\n\nvar EC$1 = elliptic_1.ec;\n\nexport { EC$1 as EC };\n//# sourceMappingURL=elliptic.js.map\n","export const version = \"signing-key/5.6.2\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nimport { EC } from \"./elliptic\";\nimport { arrayify, hexDataLength, hexlify, hexZeroPad, splitSignature } from \"@ethersproject/bytes\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nlet _curve = null;\nfunction getCurve() {\n if (!_curve) {\n _curve = new EC(\"secp256k1\");\n }\n return _curve;\n}\nexport class SigningKey {\n constructor(privateKey) {\n defineReadOnly(this, \"curve\", \"secp256k1\");\n defineReadOnly(this, \"privateKey\", hexlify(privateKey));\n if (hexDataLength(this.privateKey) !== 32) {\n logger.throwArgumentError(\"invalid private key\", \"privateKey\", \"[[ REDACTED ]]\");\n }\n const keyPair = getCurve().keyFromPrivate(arrayify(this.privateKey));\n defineReadOnly(this, \"publicKey\", \"0x\" + keyPair.getPublic(false, \"hex\"));\n defineReadOnly(this, \"compressedPublicKey\", \"0x\" + keyPair.getPublic(true, \"hex\"));\n defineReadOnly(this, \"_isSigningKey\", true);\n }\n _addPoint(other) {\n const p0 = getCurve().keyFromPublic(arrayify(this.publicKey));\n const p1 = getCurve().keyFromPublic(arrayify(other));\n return \"0x\" + p0.pub.add(p1.pub).encodeCompressed(\"hex\");\n }\n signDigest(digest) {\n const keyPair = getCurve().keyFromPrivate(arrayify(this.privateKey));\n const digestBytes = arrayify(digest);\n if (digestBytes.length !== 32) {\n logger.throwArgumentError(\"bad digest length\", \"digest\", digest);\n }\n const signature = keyPair.sign(digestBytes, { canonical: true });\n return splitSignature({\n recoveryParam: signature.recoveryParam,\n r: hexZeroPad(\"0x\" + signature.r.toString(16), 32),\n s: hexZeroPad(\"0x\" + signature.s.toString(16), 32),\n });\n }\n computeSharedSecret(otherKey) {\n const keyPair = getCurve().keyFromPrivate(arrayify(this.privateKey));\n const otherKeyPair = getCurve().keyFromPublic(arrayify(computePublicKey(otherKey)));\n return hexZeroPad(\"0x\" + keyPair.derive(otherKeyPair.getPublic()).toString(16), 32);\n }\n static isSigningKey(value) {\n return !!(value && value._isSigningKey);\n }\n}\nexport function recoverPublicKey(digest, signature) {\n const sig = splitSignature(signature);\n const rs = { r: arrayify(sig.r), s: arrayify(sig.s) };\n return \"0x\" + getCurve().recoverPubKey(arrayify(digest), rs, sig.recoveryParam).encode(\"hex\", false);\n}\nexport function computePublicKey(key, compressed) {\n const bytes = arrayify(key);\n if (bytes.length === 32) {\n const signingKey = new SigningKey(bytes);\n if (compressed) {\n return \"0x\" + getCurve().keyFromPrivate(bytes).getPublic(true, \"hex\");\n }\n return signingKey.publicKey;\n }\n else if (bytes.length === 33) {\n if (compressed) {\n return hexlify(bytes);\n }\n return \"0x\" + getCurve().keyFromPublic(bytes).getPublic(false, \"hex\");\n }\n else if (bytes.length === 65) {\n if (!compressed) {\n return hexlify(bytes);\n }\n return \"0x\" + getCurve().keyFromPublic(bytes).getPublic(true, \"hex\");\n }\n return logger.throwArgumentError(\"invalid public or private key\", \"key\", \"[REDACTED]\");\n}\n//# sourceMappingURL=index.js.map","export const version = \"transactions/5.6.2\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nimport { getAddress } from \"@ethersproject/address\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { arrayify, hexConcat, hexDataLength, hexDataSlice, hexlify, hexZeroPad, isBytesLike, splitSignature, stripZeros, } from \"@ethersproject/bytes\";\nimport { Zero } from \"@ethersproject/constants\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { checkProperties } from \"@ethersproject/properties\";\nimport * as RLP from \"@ethersproject/rlp\";\nimport { computePublicKey, recoverPublicKey } from \"@ethersproject/signing-key\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nexport var TransactionTypes;\n(function (TransactionTypes) {\n TransactionTypes[TransactionTypes[\"legacy\"] = 0] = \"legacy\";\n TransactionTypes[TransactionTypes[\"eip2930\"] = 1] = \"eip2930\";\n TransactionTypes[TransactionTypes[\"eip1559\"] = 2] = \"eip1559\";\n})(TransactionTypes || (TransactionTypes = {}));\n;\n///////////////////////////////\nfunction handleAddress(value) {\n if (value === \"0x\") {\n return null;\n }\n return getAddress(value);\n}\nfunction handleNumber(value) {\n if (value === \"0x\") {\n return Zero;\n }\n return BigNumber.from(value);\n}\n// Legacy Transaction Fields\nconst transactionFields = [\n { name: \"nonce\", maxLength: 32, numeric: true },\n { name: \"gasPrice\", maxLength: 32, numeric: true },\n { name: \"gasLimit\", maxLength: 32, numeric: true },\n { name: \"to\", length: 20 },\n { name: \"value\", maxLength: 32, numeric: true },\n { name: \"data\" },\n];\nconst allowedTransactionKeys = {\n chainId: true, data: true, gasLimit: true, gasPrice: true, nonce: true, to: true, type: true, value: true\n};\nexport function computeAddress(key) {\n const publicKey = computePublicKey(key);\n return getAddress(hexDataSlice(keccak256(hexDataSlice(publicKey, 1)), 12));\n}\nexport function recoverAddress(digest, signature) {\n return computeAddress(recoverPublicKey(arrayify(digest), signature));\n}\nfunction formatNumber(value, name) {\n const result = stripZeros(BigNumber.from(value).toHexString());\n if (result.length > 32) {\n logger.throwArgumentError(\"invalid length for \" + name, (\"transaction:\" + name), value);\n }\n return result;\n}\nfunction accessSetify(addr, storageKeys) {\n return {\n address: getAddress(addr),\n storageKeys: (storageKeys || []).map((storageKey, index) => {\n if (hexDataLength(storageKey) !== 32) {\n logger.throwArgumentError(\"invalid access list storageKey\", `accessList[${addr}:${index}]`, storageKey);\n }\n return storageKey.toLowerCase();\n })\n };\n}\nexport function accessListify(value) {\n if (Array.isArray(value)) {\n return value.map((set, index) => {\n if (Array.isArray(set)) {\n if (set.length > 2) {\n logger.throwArgumentError(\"access list expected to be [ address, storageKeys[] ]\", `value[${index}]`, set);\n }\n return accessSetify(set[0], set[1]);\n }\n return accessSetify(set.address, set.storageKeys);\n });\n }\n const result = Object.keys(value).map((addr) => {\n const storageKeys = value[addr].reduce((accum, storageKey) => {\n accum[storageKey] = true;\n return accum;\n }, {});\n return accessSetify(addr, Object.keys(storageKeys).sort());\n });\n result.sort((a, b) => (a.address.localeCompare(b.address)));\n return result;\n}\nfunction formatAccessList(value) {\n return accessListify(value).map((set) => [set.address, set.storageKeys]);\n}\nfunction _serializeEip1559(transaction, signature) {\n // If there is an explicit gasPrice, make sure it matches the\n // EIP-1559 fees; otherwise they may not understand what they\n // think they are setting in terms of fee.\n if (transaction.gasPrice != null) {\n const gasPrice = BigNumber.from(transaction.gasPrice);\n const maxFeePerGas = BigNumber.from(transaction.maxFeePerGas || 0);\n if (!gasPrice.eq(maxFeePerGas)) {\n logger.throwArgumentError(\"mismatch EIP-1559 gasPrice != maxFeePerGas\", \"tx\", {\n gasPrice, maxFeePerGas\n });\n }\n }\n const fields = [\n formatNumber(transaction.chainId || 0, \"chainId\"),\n formatNumber(transaction.nonce || 0, \"nonce\"),\n formatNumber(transaction.maxPriorityFeePerGas || 0, \"maxPriorityFeePerGas\"),\n formatNumber(transaction.maxFeePerGas || 0, \"maxFeePerGas\"),\n formatNumber(transaction.gasLimit || 0, \"gasLimit\"),\n ((transaction.to != null) ? getAddress(transaction.to) : \"0x\"),\n formatNumber(transaction.value || 0, \"value\"),\n (transaction.data || \"0x\"),\n (formatAccessList(transaction.accessList || []))\n ];\n if (signature) {\n const sig = splitSignature(signature);\n fields.push(formatNumber(sig.recoveryParam, \"recoveryParam\"));\n fields.push(stripZeros(sig.r));\n fields.push(stripZeros(sig.s));\n }\n return hexConcat([\"0x02\", RLP.encode(fields)]);\n}\nfunction _serializeEip2930(transaction, signature) {\n const fields = [\n formatNumber(transaction.chainId || 0, \"chainId\"),\n formatNumber(transaction.nonce || 0, \"nonce\"),\n formatNumber(transaction.gasPrice || 0, \"gasPrice\"),\n formatNumber(transaction.gasLimit || 0, \"gasLimit\"),\n ((transaction.to != null) ? getAddress(transaction.to) : \"0x\"),\n formatNumber(transaction.value || 0, \"value\"),\n (transaction.data || \"0x\"),\n (formatAccessList(transaction.accessList || []))\n ];\n if (signature) {\n const sig = splitSignature(signature);\n fields.push(formatNumber(sig.recoveryParam, \"recoveryParam\"));\n fields.push(stripZeros(sig.r));\n fields.push(stripZeros(sig.s));\n }\n return hexConcat([\"0x01\", RLP.encode(fields)]);\n}\n// Legacy Transactions and EIP-155\nfunction _serialize(transaction, signature) {\n checkProperties(transaction, allowedTransactionKeys);\n const raw = [];\n transactionFields.forEach(function (fieldInfo) {\n let value = transaction[fieldInfo.name] || ([]);\n const options = {};\n if (fieldInfo.numeric) {\n options.hexPad = \"left\";\n }\n value = arrayify(hexlify(value, options));\n // Fixed-width field\n if (fieldInfo.length && value.length !== fieldInfo.length && value.length > 0) {\n logger.throwArgumentError(\"invalid length for \" + fieldInfo.name, (\"transaction:\" + fieldInfo.name), value);\n }\n // Variable-width (with a maximum)\n if (fieldInfo.maxLength) {\n value = stripZeros(value);\n if (value.length > fieldInfo.maxLength) {\n logger.throwArgumentError(\"invalid length for \" + fieldInfo.name, (\"transaction:\" + fieldInfo.name), value);\n }\n }\n raw.push(hexlify(value));\n });\n let chainId = 0;\n if (transaction.chainId != null) {\n // A chainId was provided; if non-zero we'll use EIP-155\n chainId = transaction.chainId;\n if (typeof (chainId) !== \"number\") {\n logger.throwArgumentError(\"invalid transaction.chainId\", \"transaction\", transaction);\n }\n }\n else if (signature && !isBytesLike(signature) && signature.v > 28) {\n // No chainId provided, but the signature is signing with EIP-155; derive chainId\n chainId = Math.floor((signature.v - 35) / 2);\n }\n // We have an EIP-155 transaction (chainId was specified and non-zero)\n if (chainId !== 0) {\n raw.push(hexlify(chainId)); // @TODO: hexValue?\n raw.push(\"0x\");\n raw.push(\"0x\");\n }\n // Requesting an unsigned transaction\n if (!signature) {\n return RLP.encode(raw);\n }\n // The splitSignature will ensure the transaction has a recoveryParam in the\n // case that the signTransaction function only adds a v.\n const sig = splitSignature(signature);\n // We pushed a chainId and null r, s on for hashing only; remove those\n let v = 27 + sig.recoveryParam;\n if (chainId !== 0) {\n raw.pop();\n raw.pop();\n raw.pop();\n v += chainId * 2 + 8;\n // If an EIP-155 v (directly or indirectly; maybe _vs) was provided, check it!\n if (sig.v > 28 && sig.v !== v) {\n logger.throwArgumentError(\"transaction.chainId/signature.v mismatch\", \"signature\", signature);\n }\n }\n else if (sig.v !== v) {\n logger.throwArgumentError(\"transaction.chainId/signature.v mismatch\", \"signature\", signature);\n }\n raw.push(hexlify(v));\n raw.push(stripZeros(arrayify(sig.r)));\n raw.push(stripZeros(arrayify(sig.s)));\n return RLP.encode(raw);\n}\nexport function serialize(transaction, signature) {\n // Legacy and EIP-155 Transactions\n if (transaction.type == null || transaction.type === 0) {\n if (transaction.accessList != null) {\n logger.throwArgumentError(\"untyped transactions do not support accessList; include type: 1\", \"transaction\", transaction);\n }\n return _serialize(transaction, signature);\n }\n // Typed Transactions (EIP-2718)\n switch (transaction.type) {\n case 1:\n return _serializeEip2930(transaction, signature);\n case 2:\n return _serializeEip1559(transaction, signature);\n default:\n break;\n }\n return logger.throwError(`unsupported transaction type: ${transaction.type}`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"serializeTransaction\",\n transactionType: transaction.type\n });\n}\nfunction _parseEipSignature(tx, fields, serialize) {\n try {\n const recid = handleNumber(fields[0]).toNumber();\n if (recid !== 0 && recid !== 1) {\n throw new Error(\"bad recid\");\n }\n tx.v = recid;\n }\n catch (error) {\n logger.throwArgumentError(\"invalid v for transaction type: 1\", \"v\", fields[0]);\n }\n tx.r = hexZeroPad(fields[1], 32);\n tx.s = hexZeroPad(fields[2], 32);\n try {\n const digest = keccak256(serialize(tx));\n tx.from = recoverAddress(digest, { r: tx.r, s: tx.s, recoveryParam: tx.v });\n }\n catch (error) { }\n}\nfunction _parseEip1559(payload) {\n const transaction = RLP.decode(payload.slice(1));\n if (transaction.length !== 9 && transaction.length !== 12) {\n logger.throwArgumentError(\"invalid component count for transaction type: 2\", \"payload\", hexlify(payload));\n }\n const maxPriorityFeePerGas = handleNumber(transaction[2]);\n const maxFeePerGas = handleNumber(transaction[3]);\n const tx = {\n type: 2,\n chainId: handleNumber(transaction[0]).toNumber(),\n nonce: handleNumber(transaction[1]).toNumber(),\n maxPriorityFeePerGas: maxPriorityFeePerGas,\n maxFeePerGas: maxFeePerGas,\n gasPrice: null,\n gasLimit: handleNumber(transaction[4]),\n to: handleAddress(transaction[5]),\n value: handleNumber(transaction[6]),\n data: transaction[7],\n accessList: accessListify(transaction[8]),\n };\n // Unsigned EIP-1559 Transaction\n if (transaction.length === 9) {\n return tx;\n }\n tx.hash = keccak256(payload);\n _parseEipSignature(tx, transaction.slice(9), _serializeEip1559);\n return tx;\n}\nfunction _parseEip2930(payload) {\n const transaction = RLP.decode(payload.slice(1));\n if (transaction.length !== 8 && transaction.length !== 11) {\n logger.throwArgumentError(\"invalid component count for transaction type: 1\", \"payload\", hexlify(payload));\n }\n const tx = {\n type: 1,\n chainId: handleNumber(transaction[0]).toNumber(),\n nonce: handleNumber(transaction[1]).toNumber(),\n gasPrice: handleNumber(transaction[2]),\n gasLimit: handleNumber(transaction[3]),\n to: handleAddress(transaction[4]),\n value: handleNumber(transaction[5]),\n data: transaction[6],\n accessList: accessListify(transaction[7])\n };\n // Unsigned EIP-2930 Transaction\n if (transaction.length === 8) {\n return tx;\n }\n tx.hash = keccak256(payload);\n _parseEipSignature(tx, transaction.slice(8), _serializeEip2930);\n return tx;\n}\n// Legacy Transactions and EIP-155\nfunction _parse(rawTransaction) {\n const transaction = RLP.decode(rawTransaction);\n if (transaction.length !== 9 && transaction.length !== 6) {\n logger.throwArgumentError(\"invalid raw transaction\", \"rawTransaction\", rawTransaction);\n }\n const tx = {\n nonce: handleNumber(transaction[0]).toNumber(),\n gasPrice: handleNumber(transaction[1]),\n gasLimit: handleNumber(transaction[2]),\n to: handleAddress(transaction[3]),\n value: handleNumber(transaction[4]),\n data: transaction[5],\n chainId: 0\n };\n // Legacy unsigned transaction\n if (transaction.length === 6) {\n return tx;\n }\n try {\n tx.v = BigNumber.from(transaction[6]).toNumber();\n }\n catch (error) {\n // @TODO: What makes snese to do? The v is too big\n return tx;\n }\n tx.r = hexZeroPad(transaction[7], 32);\n tx.s = hexZeroPad(transaction[8], 32);\n if (BigNumber.from(tx.r).isZero() && BigNumber.from(tx.s).isZero()) {\n // EIP-155 unsigned transaction\n tx.chainId = tx.v;\n tx.v = 0;\n }\n else {\n // Signed Transaction\n tx.chainId = Math.floor((tx.v - 35) / 2);\n if (tx.chainId < 0) {\n tx.chainId = 0;\n }\n let recoveryParam = tx.v - 27;\n const raw = transaction.slice(0, 6);\n if (tx.chainId !== 0) {\n raw.push(hexlify(tx.chainId));\n raw.push(\"0x\");\n raw.push(\"0x\");\n recoveryParam -= tx.chainId * 2 + 8;\n }\n const digest = keccak256(RLP.encode(raw));\n try {\n tx.from = recoverAddress(digest, { r: hexlify(tx.r), s: hexlify(tx.s), recoveryParam: recoveryParam });\n }\n catch (error) { }\n tx.hash = keccak256(rawTransaction);\n }\n tx.type = null;\n return tx;\n}\nexport function parse(rawTransaction) {\n const payload = arrayify(rawTransaction);\n // Legacy and EIP-155 Transactions\n if (payload[0] > 0x7f) {\n return _parse(payload);\n }\n // Typed Transaction (EIP-2718)\n switch (payload[0]) {\n case 1:\n return _parseEip2930(payload);\n case 2:\n return _parseEip1559(payload);\n default:\n break;\n }\n return logger.throwError(`unsupported transaction type: ${payload[0]}`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"parseTransaction\",\n transactionType: payload[0]\n });\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { checkResultErrors, Indexed, Interface } from \"@ethersproject/abi\";\nimport { Provider } from \"@ethersproject/abstract-provider\";\nimport { Signer, VoidSigner } from \"@ethersproject/abstract-signer\";\nimport { getAddress, getContractAddress } from \"@ethersproject/address\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { arrayify, concat, hexlify, isBytes, isHexString } from \"@ethersproject/bytes\";\nimport { defineReadOnly, deepCopy, getStatic, resolveProperties, shallowCopy } from \"@ethersproject/properties\";\nimport { accessListify } from \"@ethersproject/transactions\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n;\n;\n///////////////////////////////\nconst allowedTransactionKeys = {\n chainId: true, data: true, from: true, gasLimit: true, gasPrice: true, nonce: true, to: true, value: true,\n type: true, accessList: true,\n maxFeePerGas: true, maxPriorityFeePerGas: true,\n customData: true,\n ccipReadEnabled: true\n};\nfunction resolveName(resolver, nameOrPromise) {\n return __awaiter(this, void 0, void 0, function* () {\n const name = yield nameOrPromise;\n if (typeof (name) !== \"string\") {\n logger.throwArgumentError(\"invalid address or ENS name\", \"name\", name);\n }\n // If it is already an address, just use it (after adding checksum)\n try {\n return getAddress(name);\n }\n catch (error) { }\n if (!resolver) {\n logger.throwError(\"a provider or signer is needed to resolve ENS names\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"resolveName\"\n });\n }\n const address = yield resolver.resolveName(name);\n if (address == null) {\n logger.throwArgumentError(\"resolver or addr is not configured for ENS name\", \"name\", name);\n }\n return address;\n });\n}\n// Recursively replaces ENS names with promises to resolve the name and resolves all properties\nfunction resolveAddresses(resolver, value, paramType) {\n return __awaiter(this, void 0, void 0, function* () {\n if (Array.isArray(paramType)) {\n return yield Promise.all(paramType.map((paramType, index) => {\n return resolveAddresses(resolver, ((Array.isArray(value)) ? value[index] : value[paramType.name]), paramType);\n }));\n }\n if (paramType.type === \"address\") {\n return yield resolveName(resolver, value);\n }\n if (paramType.type === \"tuple\") {\n return yield resolveAddresses(resolver, value, paramType.components);\n }\n if (paramType.baseType === \"array\") {\n if (!Array.isArray(value)) {\n return Promise.reject(logger.makeError(\"invalid value for array\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"value\",\n value\n }));\n }\n return yield Promise.all(value.map((v) => resolveAddresses(resolver, v, paramType.arrayChildren)));\n }\n return value;\n });\n}\nfunction populateTransaction(contract, fragment, args) {\n return __awaiter(this, void 0, void 0, function* () {\n // If an extra argument is given, it is overrides\n let overrides = {};\n if (args.length === fragment.inputs.length + 1 && typeof (args[args.length - 1]) === \"object\") {\n overrides = shallowCopy(args.pop());\n }\n // Make sure the parameter count matches\n logger.checkArgumentCount(args.length, fragment.inputs.length, \"passed to contract\");\n // Populate \"from\" override (allow promises)\n if (contract.signer) {\n if (overrides.from) {\n // Contracts with a Signer are from the Signer's frame-of-reference;\n // but we allow overriding \"from\" if it matches the signer\n overrides.from = resolveProperties({\n override: resolveName(contract.signer, overrides.from),\n signer: contract.signer.getAddress()\n }).then((check) => __awaiter(this, void 0, void 0, function* () {\n if (getAddress(check.signer) !== check.override) {\n logger.throwError(\"Contract with a Signer cannot override from\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"overrides.from\"\n });\n }\n return check.override;\n }));\n }\n else {\n overrides.from = contract.signer.getAddress();\n }\n }\n else if (overrides.from) {\n overrides.from = resolveName(contract.provider, overrides.from);\n //} else {\n // Contracts without a signer can override \"from\", and if\n // unspecified the zero address is used\n //overrides.from = AddressZero;\n }\n // Wait for all dependencies to be resolved (prefer the signer over the provider)\n const resolved = yield resolveProperties({\n args: resolveAddresses(contract.signer || contract.provider, args, fragment.inputs),\n address: contract.resolvedAddress,\n overrides: (resolveProperties(overrides) || {})\n });\n // The ABI coded transaction\n const data = contract.interface.encodeFunctionData(fragment, resolved.args);\n const tx = {\n data: data,\n to: resolved.address\n };\n // Resolved Overrides\n const ro = resolved.overrides;\n // Populate simple overrides\n if (ro.nonce != null) {\n tx.nonce = BigNumber.from(ro.nonce).toNumber();\n }\n if (ro.gasLimit != null) {\n tx.gasLimit = BigNumber.from(ro.gasLimit);\n }\n if (ro.gasPrice != null) {\n tx.gasPrice = BigNumber.from(ro.gasPrice);\n }\n if (ro.maxFeePerGas != null) {\n tx.maxFeePerGas = BigNumber.from(ro.maxFeePerGas);\n }\n if (ro.maxPriorityFeePerGas != null) {\n tx.maxPriorityFeePerGas = BigNumber.from(ro.maxPriorityFeePerGas);\n }\n if (ro.from != null) {\n tx.from = ro.from;\n }\n if (ro.type != null) {\n tx.type = ro.type;\n }\n if (ro.accessList != null) {\n tx.accessList = accessListify(ro.accessList);\n }\n // If there was no \"gasLimit\" override, but the ABI specifies a default, use it\n if (tx.gasLimit == null && fragment.gas != null) {\n // Compute the intrinsic gas cost for this transaction\n // @TODO: This is based on the yellow paper as of Petersburg; this is something\n // we may wish to parameterize in v6 as part of the Network object. Since this\n // is always a non-nil to address, we can ignore G_create, but may wish to add\n // similar logic to the ContractFactory.\n let intrinsic = 21000;\n const bytes = arrayify(data);\n for (let i = 0; i < bytes.length; i++) {\n intrinsic += 4;\n if (bytes[i]) {\n intrinsic += 64;\n }\n }\n tx.gasLimit = BigNumber.from(fragment.gas).add(intrinsic);\n }\n // Populate \"value\" override\n if (ro.value) {\n const roValue = BigNumber.from(ro.value);\n if (!roValue.isZero() && !fragment.payable) {\n logger.throwError(\"non-payable method cannot override value\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"overrides.value\",\n value: overrides.value\n });\n }\n tx.value = roValue;\n }\n if (ro.customData) {\n tx.customData = shallowCopy(ro.customData);\n }\n if (ro.ccipReadEnabled) {\n tx.ccipReadEnabled = !!ro.ccipReadEnabled;\n }\n // Remove the overrides\n delete overrides.nonce;\n delete overrides.gasLimit;\n delete overrides.gasPrice;\n delete overrides.from;\n delete overrides.value;\n delete overrides.type;\n delete overrides.accessList;\n delete overrides.maxFeePerGas;\n delete overrides.maxPriorityFeePerGas;\n delete overrides.customData;\n delete overrides.ccipReadEnabled;\n // Make sure there are no stray overrides, which may indicate a\n // typo or using an unsupported key.\n const leftovers = Object.keys(overrides).filter((key) => (overrides[key] != null));\n if (leftovers.length) {\n logger.throwError(`cannot override ${leftovers.map((l) => JSON.stringify(l)).join(\",\")}`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"overrides\",\n overrides: leftovers\n });\n }\n return tx;\n });\n}\nfunction buildPopulate(contract, fragment) {\n return function (...args) {\n return populateTransaction(contract, fragment, args);\n };\n}\nfunction buildEstimate(contract, fragment) {\n const signerOrProvider = (contract.signer || contract.provider);\n return function (...args) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!signerOrProvider) {\n logger.throwError(\"estimate require a provider or signer\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"estimateGas\"\n });\n }\n const tx = yield populateTransaction(contract, fragment, args);\n return yield signerOrProvider.estimateGas(tx);\n });\n };\n}\nfunction addContractWait(contract, tx) {\n const wait = tx.wait.bind(tx);\n tx.wait = (confirmations) => {\n return wait(confirmations).then((receipt) => {\n receipt.events = receipt.logs.map((log) => {\n let event = deepCopy(log);\n let parsed = null;\n try {\n parsed = contract.interface.parseLog(log);\n }\n catch (e) { }\n // Successfully parsed the event log; include it\n if (parsed) {\n event.args = parsed.args;\n event.decode = (data, topics) => {\n return contract.interface.decodeEventLog(parsed.eventFragment, data, topics);\n };\n event.event = parsed.name;\n event.eventSignature = parsed.signature;\n }\n // Useful operations\n event.removeListener = () => { return contract.provider; };\n event.getBlock = () => {\n return contract.provider.getBlock(receipt.blockHash);\n };\n event.getTransaction = () => {\n return contract.provider.getTransaction(receipt.transactionHash);\n };\n event.getTransactionReceipt = () => {\n return Promise.resolve(receipt);\n };\n return event;\n });\n return receipt;\n });\n };\n}\nfunction buildCall(contract, fragment, collapseSimple) {\n const signerOrProvider = (contract.signer || contract.provider);\n return function (...args) {\n return __awaiter(this, void 0, void 0, function* () {\n // Extract the \"blockTag\" override if present\n let blockTag = undefined;\n if (args.length === fragment.inputs.length + 1 && typeof (args[args.length - 1]) === \"object\") {\n const overrides = shallowCopy(args.pop());\n if (overrides.blockTag != null) {\n blockTag = yield overrides.blockTag;\n }\n delete overrides.blockTag;\n args.push(overrides);\n }\n // If the contract was just deployed, wait until it is mined\n if (contract.deployTransaction != null) {\n yield contract._deployed(blockTag);\n }\n // Call a node and get the result\n const tx = yield populateTransaction(contract, fragment, args);\n const result = yield signerOrProvider.call(tx, blockTag);\n try {\n let value = contract.interface.decodeFunctionResult(fragment, result);\n if (collapseSimple && fragment.outputs.length === 1) {\n value = value[0];\n }\n return value;\n }\n catch (error) {\n if (error.code === Logger.errors.CALL_EXCEPTION) {\n error.address = contract.address;\n error.args = args;\n error.transaction = tx;\n }\n throw error;\n }\n });\n };\n}\nfunction buildSend(contract, fragment) {\n return function (...args) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!contract.signer) {\n logger.throwError(\"sending a transaction requires a signer\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"sendTransaction\"\n });\n }\n // If the contract was just deployed, wait until it is mined\n if (contract.deployTransaction != null) {\n yield contract._deployed();\n }\n const txRequest = yield populateTransaction(contract, fragment, args);\n const tx = yield contract.signer.sendTransaction(txRequest);\n // Tweak the tx.wait so the receipt has extra properties\n addContractWait(contract, tx);\n return tx;\n });\n };\n}\nfunction buildDefault(contract, fragment, collapseSimple) {\n if (fragment.constant) {\n return buildCall(contract, fragment, collapseSimple);\n }\n return buildSend(contract, fragment);\n}\nfunction getEventTag(filter) {\n if (filter.address && (filter.topics == null || filter.topics.length === 0)) {\n return \"*\";\n }\n return (filter.address || \"*\") + \"@\" + (filter.topics ? filter.topics.map((topic) => {\n if (Array.isArray(topic)) {\n return topic.join(\"|\");\n }\n return topic;\n }).join(\":\") : \"\");\n}\nclass RunningEvent {\n constructor(tag, filter) {\n defineReadOnly(this, \"tag\", tag);\n defineReadOnly(this, \"filter\", filter);\n this._listeners = [];\n }\n addListener(listener, once) {\n this._listeners.push({ listener: listener, once: once });\n }\n removeListener(listener) {\n let done = false;\n this._listeners = this._listeners.filter((item) => {\n if (done || item.listener !== listener) {\n return true;\n }\n done = true;\n return false;\n });\n }\n removeAllListeners() {\n this._listeners = [];\n }\n listeners() {\n return this._listeners.map((i) => i.listener);\n }\n listenerCount() {\n return this._listeners.length;\n }\n run(args) {\n const listenerCount = this.listenerCount();\n this._listeners = this._listeners.filter((item) => {\n const argsCopy = args.slice();\n // Call the callback in the next event loop\n setTimeout(() => {\n item.listener.apply(this, argsCopy);\n }, 0);\n // Reschedule it if it not \"once\"\n return !(item.once);\n });\n return listenerCount;\n }\n prepareEvent(event) {\n }\n // Returns the array that will be applied to an emit\n getEmit(event) {\n return [event];\n }\n}\nclass ErrorRunningEvent extends RunningEvent {\n constructor() {\n super(\"error\", null);\n }\n}\n// @TODO Fragment should inherit Wildcard? and just override getEmit?\n// or have a common abstract super class, with enough constructor\n// options to configure both.\n// A Fragment Event will populate all the properties that Wildcard\n// will, and additionally dereference the arguments when emitting\nclass FragmentRunningEvent extends RunningEvent {\n constructor(address, contractInterface, fragment, topics) {\n const filter = {\n address: address\n };\n let topic = contractInterface.getEventTopic(fragment);\n if (topics) {\n if (topic !== topics[0]) {\n logger.throwArgumentError(\"topic mismatch\", \"topics\", topics);\n }\n filter.topics = topics.slice();\n }\n else {\n filter.topics = [topic];\n }\n super(getEventTag(filter), filter);\n defineReadOnly(this, \"address\", address);\n defineReadOnly(this, \"interface\", contractInterface);\n defineReadOnly(this, \"fragment\", fragment);\n }\n prepareEvent(event) {\n super.prepareEvent(event);\n event.event = this.fragment.name;\n event.eventSignature = this.fragment.format();\n event.decode = (data, topics) => {\n return this.interface.decodeEventLog(this.fragment, data, topics);\n };\n try {\n event.args = this.interface.decodeEventLog(this.fragment, event.data, event.topics);\n }\n catch (error) {\n event.args = null;\n event.decodeError = error;\n }\n }\n getEmit(event) {\n const errors = checkResultErrors(event.args);\n if (errors.length) {\n throw errors[0].error;\n }\n const args = (event.args || []).slice();\n args.push(event);\n return args;\n }\n}\n// A Wildcard Event will attempt to populate:\n// - event The name of the event name\n// - eventSignature The full signature of the event\n// - decode A function to decode data and topics\n// - args The decoded data and topics\nclass WildcardRunningEvent extends RunningEvent {\n constructor(address, contractInterface) {\n super(\"*\", { address: address });\n defineReadOnly(this, \"address\", address);\n defineReadOnly(this, \"interface\", contractInterface);\n }\n prepareEvent(event) {\n super.prepareEvent(event);\n try {\n const parsed = this.interface.parseLog(event);\n event.event = parsed.name;\n event.eventSignature = parsed.signature;\n event.decode = (data, topics) => {\n return this.interface.decodeEventLog(parsed.eventFragment, data, topics);\n };\n event.args = parsed.args;\n }\n catch (error) {\n // No matching event\n }\n }\n}\nexport class BaseContract {\n constructor(addressOrName, contractInterface, signerOrProvider) {\n // @TODO: Maybe still check the addressOrName looks like a valid address or name?\n //address = getAddress(address);\n defineReadOnly(this, \"interface\", getStatic(new.target, \"getInterface\")(contractInterface));\n if (signerOrProvider == null) {\n defineReadOnly(this, \"provider\", null);\n defineReadOnly(this, \"signer\", null);\n }\n else if (Signer.isSigner(signerOrProvider)) {\n defineReadOnly(this, \"provider\", signerOrProvider.provider || null);\n defineReadOnly(this, \"signer\", signerOrProvider);\n }\n else if (Provider.isProvider(signerOrProvider)) {\n defineReadOnly(this, \"provider\", signerOrProvider);\n defineReadOnly(this, \"signer\", null);\n }\n else {\n logger.throwArgumentError(\"invalid signer or provider\", \"signerOrProvider\", signerOrProvider);\n }\n defineReadOnly(this, \"callStatic\", {});\n defineReadOnly(this, \"estimateGas\", {});\n defineReadOnly(this, \"functions\", {});\n defineReadOnly(this, \"populateTransaction\", {});\n defineReadOnly(this, \"filters\", {});\n {\n const uniqueFilters = {};\n Object.keys(this.interface.events).forEach((eventSignature) => {\n const event = this.interface.events[eventSignature];\n defineReadOnly(this.filters, eventSignature, (...args) => {\n return {\n address: this.address,\n topics: this.interface.encodeFilterTopics(event, args)\n };\n });\n if (!uniqueFilters[event.name]) {\n uniqueFilters[event.name] = [];\n }\n uniqueFilters[event.name].push(eventSignature);\n });\n Object.keys(uniqueFilters).forEach((name) => {\n const filters = uniqueFilters[name];\n if (filters.length === 1) {\n defineReadOnly(this.filters, name, this.filters[filters[0]]);\n }\n else {\n logger.warn(`Duplicate definition of ${name} (${filters.join(\", \")})`);\n }\n });\n }\n defineReadOnly(this, \"_runningEvents\", {});\n defineReadOnly(this, \"_wrappedEmits\", {});\n if (addressOrName == null) {\n logger.throwArgumentError(\"invalid contract address or ENS name\", \"addressOrName\", addressOrName);\n }\n defineReadOnly(this, \"address\", addressOrName);\n if (this.provider) {\n defineReadOnly(this, \"resolvedAddress\", resolveName(this.provider, addressOrName));\n }\n else {\n try {\n defineReadOnly(this, \"resolvedAddress\", Promise.resolve(getAddress(addressOrName)));\n }\n catch (error) {\n // Without a provider, we cannot use ENS names\n logger.throwError(\"provider is required to use ENS name as contract address\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new Contract\"\n });\n }\n }\n // Swallow bad ENS names to prevent Unhandled Exceptions\n this.resolvedAddress.catch((e) => { });\n const uniqueNames = {};\n const uniqueSignatures = {};\n Object.keys(this.interface.functions).forEach((signature) => {\n const fragment = this.interface.functions[signature];\n // Check that the signature is unique; if not the ABI generation has\n // not been cleaned or may be incorrectly generated\n if (uniqueSignatures[signature]) {\n logger.warn(`Duplicate ABI entry for ${JSON.stringify(signature)}`);\n return;\n }\n uniqueSignatures[signature] = true;\n // Track unique names; we only expose bare named functions if they\n // are ambiguous\n {\n const name = fragment.name;\n if (!uniqueNames[`%${name}`]) {\n uniqueNames[`%${name}`] = [];\n }\n uniqueNames[`%${name}`].push(signature);\n }\n if (this[signature] == null) {\n defineReadOnly(this, signature, buildDefault(this, fragment, true));\n }\n // We do not collapse simple calls on this bucket, which allows\n // frameworks to safely use this without introspection as well as\n // allows decoding error recovery.\n if (this.functions[signature] == null) {\n defineReadOnly(this.functions, signature, buildDefault(this, fragment, false));\n }\n if (this.callStatic[signature] == null) {\n defineReadOnly(this.callStatic, signature, buildCall(this, fragment, true));\n }\n if (this.populateTransaction[signature] == null) {\n defineReadOnly(this.populateTransaction, signature, buildPopulate(this, fragment));\n }\n if (this.estimateGas[signature] == null) {\n defineReadOnly(this.estimateGas, signature, buildEstimate(this, fragment));\n }\n });\n Object.keys(uniqueNames).forEach((name) => {\n // Ambiguous names to not get attached as bare names\n const signatures = uniqueNames[name];\n if (signatures.length > 1) {\n return;\n }\n // Strip off the leading \"%\" used for prototype protection\n name = name.substring(1);\n const signature = signatures[0];\n // If overwriting a member property that is null, swallow the error\n try {\n if (this[name] == null) {\n defineReadOnly(this, name, this[signature]);\n }\n }\n catch (e) { }\n if (this.functions[name] == null) {\n defineReadOnly(this.functions, name, this.functions[signature]);\n }\n if (this.callStatic[name] == null) {\n defineReadOnly(this.callStatic, name, this.callStatic[signature]);\n }\n if (this.populateTransaction[name] == null) {\n defineReadOnly(this.populateTransaction, name, this.populateTransaction[signature]);\n }\n if (this.estimateGas[name] == null) {\n defineReadOnly(this.estimateGas, name, this.estimateGas[signature]);\n }\n });\n }\n static getContractAddress(transaction) {\n return getContractAddress(transaction);\n }\n static getInterface(contractInterface) {\n if (Interface.isInterface(contractInterface)) {\n return contractInterface;\n }\n return new Interface(contractInterface);\n }\n // @TODO: Allow timeout?\n deployed() {\n return this._deployed();\n }\n _deployed(blockTag) {\n if (!this._deployedPromise) {\n // If we were just deployed, we know the transaction we should occur in\n if (this.deployTransaction) {\n this._deployedPromise = this.deployTransaction.wait().then(() => {\n return this;\n });\n }\n else {\n // @TODO: Once we allow a timeout to be passed in, we will wait\n // up to that many blocks for getCode\n // Otherwise, poll for our code to be deployed\n this._deployedPromise = this.provider.getCode(this.address, blockTag).then((code) => {\n if (code === \"0x\") {\n logger.throwError(\"contract not deployed\", Logger.errors.UNSUPPORTED_OPERATION, {\n contractAddress: this.address,\n operation: \"getDeployed\"\n });\n }\n return this;\n });\n }\n }\n return this._deployedPromise;\n }\n // @TODO:\n // estimateFallback(overrides?: TransactionRequest): Promise\n // @TODO:\n // estimateDeploy(bytecode: string, ...args): Promise\n fallback(overrides) {\n if (!this.signer) {\n logger.throwError(\"sending a transactions require a signer\", Logger.errors.UNSUPPORTED_OPERATION, { operation: \"sendTransaction(fallback)\" });\n }\n const tx = shallowCopy(overrides || {});\n [\"from\", \"to\"].forEach(function (key) {\n if (tx[key] == null) {\n return;\n }\n logger.throwError(\"cannot override \" + key, Logger.errors.UNSUPPORTED_OPERATION, { operation: key });\n });\n tx.to = this.resolvedAddress;\n return this.deployed().then(() => {\n return this.signer.sendTransaction(tx);\n });\n }\n // Reconnect to a different signer or provider\n connect(signerOrProvider) {\n if (typeof (signerOrProvider) === \"string\") {\n signerOrProvider = new VoidSigner(signerOrProvider, this.provider);\n }\n const contract = new (this.constructor)(this.address, this.interface, signerOrProvider);\n if (this.deployTransaction) {\n defineReadOnly(contract, \"deployTransaction\", this.deployTransaction);\n }\n return contract;\n }\n // Re-attach to a different on-chain instance of this contract\n attach(addressOrName) {\n return new (this.constructor)(addressOrName, this.interface, this.signer || this.provider);\n }\n static isIndexed(value) {\n return Indexed.isIndexed(value);\n }\n _normalizeRunningEvent(runningEvent) {\n // Already have an instance of this event running; we can re-use it\n if (this._runningEvents[runningEvent.tag]) {\n return this._runningEvents[runningEvent.tag];\n }\n return runningEvent;\n }\n _getRunningEvent(eventName) {\n if (typeof (eventName) === \"string\") {\n // Listen for \"error\" events (if your contract has an error event, include\n // the full signature to bypass this special event keyword)\n if (eventName === \"error\") {\n return this._normalizeRunningEvent(new ErrorRunningEvent());\n }\n // Listen for any event that is registered\n if (eventName === \"event\") {\n return this._normalizeRunningEvent(new RunningEvent(\"event\", null));\n }\n // Listen for any event\n if (eventName === \"*\") {\n return this._normalizeRunningEvent(new WildcardRunningEvent(this.address, this.interface));\n }\n // Get the event Fragment (throws if ambiguous/unknown event)\n const fragment = this.interface.getEvent(eventName);\n return this._normalizeRunningEvent(new FragmentRunningEvent(this.address, this.interface, fragment));\n }\n // We have topics to filter by...\n if (eventName.topics && eventName.topics.length > 0) {\n // Is it a known topichash? (throws if no matching topichash)\n try {\n const topic = eventName.topics[0];\n if (typeof (topic) !== \"string\") {\n throw new Error(\"invalid topic\"); // @TODO: May happen for anonymous events\n }\n const fragment = this.interface.getEvent(topic);\n return this._normalizeRunningEvent(new FragmentRunningEvent(this.address, this.interface, fragment, eventName.topics));\n }\n catch (error) { }\n // Filter by the unknown topichash\n const filter = {\n address: this.address,\n topics: eventName.topics\n };\n return this._normalizeRunningEvent(new RunningEvent(getEventTag(filter), filter));\n }\n return this._normalizeRunningEvent(new WildcardRunningEvent(this.address, this.interface));\n }\n _checkRunningEvents(runningEvent) {\n if (runningEvent.listenerCount() === 0) {\n delete this._runningEvents[runningEvent.tag];\n // If we have a poller for this, remove it\n const emit = this._wrappedEmits[runningEvent.tag];\n if (emit && runningEvent.filter) {\n this.provider.off(runningEvent.filter, emit);\n delete this._wrappedEmits[runningEvent.tag];\n }\n }\n }\n // Subclasses can override this to gracefully recover\n // from parse errors if they wish\n _wrapEvent(runningEvent, log, listener) {\n const event = deepCopy(log);\n event.removeListener = () => {\n if (!listener) {\n return;\n }\n runningEvent.removeListener(listener);\n this._checkRunningEvents(runningEvent);\n };\n event.getBlock = () => { return this.provider.getBlock(log.blockHash); };\n event.getTransaction = () => { return this.provider.getTransaction(log.transactionHash); };\n event.getTransactionReceipt = () => { return this.provider.getTransactionReceipt(log.transactionHash); };\n // This may throw if the topics and data mismatch the signature\n runningEvent.prepareEvent(event);\n return event;\n }\n _addEventListener(runningEvent, listener, once) {\n if (!this.provider) {\n logger.throwError(\"events require a provider or a signer with a provider\", Logger.errors.UNSUPPORTED_OPERATION, { operation: \"once\" });\n }\n runningEvent.addListener(listener, once);\n // Track this running event and its listeners (may already be there; but no hard in updating)\n this._runningEvents[runningEvent.tag] = runningEvent;\n // If we are not polling the provider, start polling\n if (!this._wrappedEmits[runningEvent.tag]) {\n const wrappedEmit = (log) => {\n let event = this._wrapEvent(runningEvent, log, listener);\n // Try to emit the result for the parameterized event...\n if (event.decodeError == null) {\n try {\n const args = runningEvent.getEmit(event);\n this.emit(runningEvent.filter, ...args);\n }\n catch (error) {\n event.decodeError = error.error;\n }\n }\n // Always emit \"event\" for fragment-base events\n if (runningEvent.filter != null) {\n this.emit(\"event\", event);\n }\n // Emit \"error\" if there was an error\n if (event.decodeError != null) {\n this.emit(\"error\", event.decodeError, event);\n }\n };\n this._wrappedEmits[runningEvent.tag] = wrappedEmit;\n // Special events, like \"error\" do not have a filter\n if (runningEvent.filter != null) {\n this.provider.on(runningEvent.filter, wrappedEmit);\n }\n }\n }\n queryFilter(event, fromBlockOrBlockhash, toBlock) {\n const runningEvent = this._getRunningEvent(event);\n const filter = shallowCopy(runningEvent.filter);\n if (typeof (fromBlockOrBlockhash) === \"string\" && isHexString(fromBlockOrBlockhash, 32)) {\n if (toBlock != null) {\n logger.throwArgumentError(\"cannot specify toBlock with blockhash\", \"toBlock\", toBlock);\n }\n filter.blockHash = fromBlockOrBlockhash;\n }\n else {\n filter.fromBlock = ((fromBlockOrBlockhash != null) ? fromBlockOrBlockhash : 0);\n filter.toBlock = ((toBlock != null) ? toBlock : \"latest\");\n }\n return this.provider.getLogs(filter).then((logs) => {\n return logs.map((log) => this._wrapEvent(runningEvent, log, null));\n });\n }\n on(event, listener) {\n this._addEventListener(this._getRunningEvent(event), listener, false);\n return this;\n }\n once(event, listener) {\n this._addEventListener(this._getRunningEvent(event), listener, true);\n return this;\n }\n emit(eventName, ...args) {\n if (!this.provider) {\n return false;\n }\n const runningEvent = this._getRunningEvent(eventName);\n const result = (runningEvent.run(args) > 0);\n // May have drained all the \"once\" events; check for living events\n this._checkRunningEvents(runningEvent);\n return result;\n }\n listenerCount(eventName) {\n if (!this.provider) {\n return 0;\n }\n if (eventName == null) {\n return Object.keys(this._runningEvents).reduce((accum, key) => {\n return accum + this._runningEvents[key].listenerCount();\n }, 0);\n }\n return this._getRunningEvent(eventName).listenerCount();\n }\n listeners(eventName) {\n if (!this.provider) {\n return [];\n }\n if (eventName == null) {\n const result = [];\n for (let tag in this._runningEvents) {\n this._runningEvents[tag].listeners().forEach((listener) => {\n result.push(listener);\n });\n }\n return result;\n }\n return this._getRunningEvent(eventName).listeners();\n }\n removeAllListeners(eventName) {\n if (!this.provider) {\n return this;\n }\n if (eventName == null) {\n for (const tag in this._runningEvents) {\n const runningEvent = this._runningEvents[tag];\n runningEvent.removeAllListeners();\n this._checkRunningEvents(runningEvent);\n }\n return this;\n }\n // Delete any listeners\n const runningEvent = this._getRunningEvent(eventName);\n runningEvent.removeAllListeners();\n this._checkRunningEvents(runningEvent);\n return this;\n }\n off(eventName, listener) {\n if (!this.provider) {\n return this;\n }\n const runningEvent = this._getRunningEvent(eventName);\n runningEvent.removeListener(listener);\n this._checkRunningEvents(runningEvent);\n return this;\n }\n removeListener(eventName, listener) {\n return this.off(eventName, listener);\n }\n}\nexport class Contract extends BaseContract {\n}\nexport class ContractFactory {\n constructor(contractInterface, bytecode, signer) {\n let bytecodeHex = null;\n if (typeof (bytecode) === \"string\") {\n bytecodeHex = bytecode;\n }\n else if (isBytes(bytecode)) {\n bytecodeHex = hexlify(bytecode);\n }\n else if (bytecode && typeof (bytecode.object) === \"string\") {\n // Allow the bytecode object from the Solidity compiler\n bytecodeHex = bytecode.object;\n }\n else {\n // Crash in the next verification step\n bytecodeHex = \"!\";\n }\n // Make sure it is 0x prefixed\n if (bytecodeHex.substring(0, 2) !== \"0x\") {\n bytecodeHex = \"0x\" + bytecodeHex;\n }\n // Make sure the final result is valid bytecode\n if (!isHexString(bytecodeHex) || (bytecodeHex.length % 2)) {\n logger.throwArgumentError(\"invalid bytecode\", \"bytecode\", bytecode);\n }\n // If we have a signer, make sure it is valid\n if (signer && !Signer.isSigner(signer)) {\n logger.throwArgumentError(\"invalid signer\", \"signer\", signer);\n }\n defineReadOnly(this, \"bytecode\", bytecodeHex);\n defineReadOnly(this, \"interface\", getStatic(new.target, \"getInterface\")(contractInterface));\n defineReadOnly(this, \"signer\", signer || null);\n }\n // @TODO: Future; rename to populateTransaction?\n getDeployTransaction(...args) {\n let tx = {};\n // If we have 1 additional argument, we allow transaction overrides\n if (args.length === this.interface.deploy.inputs.length + 1 && typeof (args[args.length - 1]) === \"object\") {\n tx = shallowCopy(args.pop());\n for (const key in tx) {\n if (!allowedTransactionKeys[key]) {\n throw new Error(\"unknown transaction override \" + key);\n }\n }\n }\n // Do not allow these to be overridden in a deployment transaction\n [\"data\", \"from\", \"to\"].forEach((key) => {\n if (tx[key] == null) {\n return;\n }\n logger.throwError(\"cannot override \" + key, Logger.errors.UNSUPPORTED_OPERATION, { operation: key });\n });\n if (tx.value) {\n const value = BigNumber.from(tx.value);\n if (!value.isZero() && !this.interface.deploy.payable) {\n logger.throwError(\"non-payable constructor cannot override value\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"overrides.value\",\n value: tx.value\n });\n }\n }\n // Make sure the call matches the constructor signature\n logger.checkArgumentCount(args.length, this.interface.deploy.inputs.length, \" in Contract constructor\");\n // Set the data to the bytecode + the encoded constructor arguments\n tx.data = hexlify(concat([\n this.bytecode,\n this.interface.encodeDeploy(args)\n ]));\n return tx;\n }\n deploy(...args) {\n return __awaiter(this, void 0, void 0, function* () {\n let overrides = {};\n // If 1 extra parameter was passed in, it contains overrides\n if (args.length === this.interface.deploy.inputs.length + 1) {\n overrides = args.pop();\n }\n // Make sure the call matches the constructor signature\n logger.checkArgumentCount(args.length, this.interface.deploy.inputs.length, \" in Contract constructor\");\n // Resolve ENS names and promises in the arguments\n const params = yield resolveAddresses(this.signer, args, this.interface.deploy.inputs);\n params.push(overrides);\n // Get the deployment transaction (with optional overrides)\n const unsignedTx = this.getDeployTransaction(...params);\n // Send the deployment transaction\n const tx = yield this.signer.sendTransaction(unsignedTx);\n const address = getStatic(this.constructor, \"getContractAddress\")(tx);\n const contract = getStatic(this.constructor, \"getContract\")(address, this.interface, this.signer);\n // Add the modified wait that wraps events\n addContractWait(contract, tx);\n defineReadOnly(contract, \"deployTransaction\", tx);\n return contract;\n });\n }\n attach(address) {\n return (this.constructor).getContract(address, this.interface, this.signer);\n }\n connect(signer) {\n return new (this.constructor)(this.interface, this.bytecode, signer);\n }\n static fromSolidity(compilerOutput, signer) {\n if (compilerOutput == null) {\n logger.throwError(\"missing compiler output\", Logger.errors.MISSING_ARGUMENT, { argument: \"compilerOutput\" });\n }\n if (typeof (compilerOutput) === \"string\") {\n compilerOutput = JSON.parse(compilerOutput);\n }\n const abi = compilerOutput.abi;\n let bytecode = null;\n if (compilerOutput.bytecode) {\n bytecode = compilerOutput.bytecode;\n }\n else if (compilerOutput.evm && compilerOutput.evm.bytecode) {\n bytecode = compilerOutput.evm.bytecode;\n }\n return new this(abi, bytecode, signer);\n }\n static getInterface(contractInterface) {\n return Contract.getInterface(contractInterface);\n }\n static getContractAddress(tx) {\n return getContractAddress(tx);\n }\n static getContract(address, contractInterface, signer) {\n return new Contract(address, contractInterface, signer);\n }\n}\n//# sourceMappingURL=index.js.map","export const version = \"contracts/5.6.2\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nimport { arrayify, hexZeroPad, isBytes } from \"@ethersproject/bytes\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { BigNumber, isBigNumberish } from \"./bignumber\";\nconst _constructorGuard = {};\nconst Zero = BigNumber.from(0);\nconst NegativeOne = BigNumber.from(-1);\nfunction throwFault(message, fault, operation, value) {\n const params = { fault: fault, operation: operation };\n if (value !== undefined) {\n params.value = value;\n }\n return logger.throwError(message, Logger.errors.NUMERIC_FAULT, params);\n}\n// Constant to pull zeros from for multipliers\nlet zeros = \"0\";\nwhile (zeros.length < 256) {\n zeros += zeros;\n}\n// Returns a string \"1\" followed by decimal \"0\"s\nfunction getMultiplier(decimals) {\n if (typeof (decimals) !== \"number\") {\n try {\n decimals = BigNumber.from(decimals).toNumber();\n }\n catch (e) { }\n }\n if (typeof (decimals) === \"number\" && decimals >= 0 && decimals <= 256 && !(decimals % 1)) {\n return (\"1\" + zeros.substring(0, decimals));\n }\n return logger.throwArgumentError(\"invalid decimal size\", \"decimals\", decimals);\n}\nexport function formatFixed(value, decimals) {\n if (decimals == null) {\n decimals = 0;\n }\n const multiplier = getMultiplier(decimals);\n // Make sure wei is a big number (convert as necessary)\n value = BigNumber.from(value);\n const negative = value.lt(Zero);\n if (negative) {\n value = value.mul(NegativeOne);\n }\n let fraction = value.mod(multiplier).toString();\n while (fraction.length < multiplier.length - 1) {\n fraction = \"0\" + fraction;\n }\n // Strip training 0\n fraction = fraction.match(/^([0-9]*[1-9]|0)(0*)/)[1];\n const whole = value.div(multiplier).toString();\n if (multiplier.length === 1) {\n value = whole;\n }\n else {\n value = whole + \".\" + fraction;\n }\n if (negative) {\n value = \"-\" + value;\n }\n return value;\n}\nexport function parseFixed(value, decimals) {\n if (decimals == null) {\n decimals = 0;\n }\n const multiplier = getMultiplier(decimals);\n if (typeof (value) !== \"string\" || !value.match(/^-?[0-9.]+$/)) {\n logger.throwArgumentError(\"invalid decimal value\", \"value\", value);\n }\n // Is it negative?\n const negative = (value.substring(0, 1) === \"-\");\n if (negative) {\n value = value.substring(1);\n }\n if (value === \".\") {\n logger.throwArgumentError(\"missing value\", \"value\", value);\n }\n // Split it into a whole and fractional part\n const comps = value.split(\".\");\n if (comps.length > 2) {\n logger.throwArgumentError(\"too many decimal points\", \"value\", value);\n }\n let whole = comps[0], fraction = comps[1];\n if (!whole) {\n whole = \"0\";\n }\n if (!fraction) {\n fraction = \"0\";\n }\n // Trim trailing zeros\n while (fraction[fraction.length - 1] === \"0\") {\n fraction = fraction.substring(0, fraction.length - 1);\n }\n // Check the fraction doesn't exceed our decimals size\n if (fraction.length > multiplier.length - 1) {\n throwFault(\"fractional component exceeds decimals\", \"underflow\", \"parseFixed\");\n }\n // If decimals is 0, we have an empty string for fraction\n if (fraction === \"\") {\n fraction = \"0\";\n }\n // Fully pad the string with zeros to get to wei\n while (fraction.length < multiplier.length - 1) {\n fraction += \"0\";\n }\n const wholeValue = BigNumber.from(whole);\n const fractionValue = BigNumber.from(fraction);\n let wei = (wholeValue.mul(multiplier)).add(fractionValue);\n if (negative) {\n wei = wei.mul(NegativeOne);\n }\n return wei;\n}\nexport class FixedFormat {\n constructor(constructorGuard, signed, width, decimals) {\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"cannot use FixedFormat constructor; use FixedFormat.from\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new FixedFormat\"\n });\n }\n this.signed = signed;\n this.width = width;\n this.decimals = decimals;\n this.name = (signed ? \"\" : \"u\") + \"fixed\" + String(width) + \"x\" + String(decimals);\n this._multiplier = getMultiplier(decimals);\n Object.freeze(this);\n }\n static from(value) {\n if (value instanceof FixedFormat) {\n return value;\n }\n if (typeof (value) === \"number\") {\n value = `fixed128x${value}`;\n }\n let signed = true;\n let width = 128;\n let decimals = 18;\n if (typeof (value) === \"string\") {\n if (value === \"fixed\") {\n // defaults...\n }\n else if (value === \"ufixed\") {\n signed = false;\n }\n else {\n const match = value.match(/^(u?)fixed([0-9]+)x([0-9]+)$/);\n if (!match) {\n logger.throwArgumentError(\"invalid fixed format\", \"format\", value);\n }\n signed = (match[1] !== \"u\");\n width = parseInt(match[2]);\n decimals = parseInt(match[3]);\n }\n }\n else if (value) {\n const check = (key, type, defaultValue) => {\n if (value[key] == null) {\n return defaultValue;\n }\n if (typeof (value[key]) !== type) {\n logger.throwArgumentError(\"invalid fixed format (\" + key + \" not \" + type + \")\", \"format.\" + key, value[key]);\n }\n return value[key];\n };\n signed = check(\"signed\", \"boolean\", signed);\n width = check(\"width\", \"number\", width);\n decimals = check(\"decimals\", \"number\", decimals);\n }\n if (width % 8) {\n logger.throwArgumentError(\"invalid fixed format width (not byte aligned)\", \"format.width\", width);\n }\n if (decimals > 80) {\n logger.throwArgumentError(\"invalid fixed format (decimals too large)\", \"format.decimals\", decimals);\n }\n return new FixedFormat(_constructorGuard, signed, width, decimals);\n }\n}\nexport class FixedNumber {\n constructor(constructorGuard, hex, value, format) {\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"cannot use FixedNumber constructor; use FixedNumber.from\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new FixedFormat\"\n });\n }\n this.format = format;\n this._hex = hex;\n this._value = value;\n this._isFixedNumber = true;\n Object.freeze(this);\n }\n _checkFormat(other) {\n if (this.format.name !== other.format.name) {\n logger.throwArgumentError(\"incompatible format; use fixedNumber.toFormat\", \"other\", other);\n }\n }\n addUnsafe(other) {\n this._checkFormat(other);\n const a = parseFixed(this._value, this.format.decimals);\n const b = parseFixed(other._value, other.format.decimals);\n return FixedNumber.fromValue(a.add(b), this.format.decimals, this.format);\n }\n subUnsafe(other) {\n this._checkFormat(other);\n const a = parseFixed(this._value, this.format.decimals);\n const b = parseFixed(other._value, other.format.decimals);\n return FixedNumber.fromValue(a.sub(b), this.format.decimals, this.format);\n }\n mulUnsafe(other) {\n this._checkFormat(other);\n const a = parseFixed(this._value, this.format.decimals);\n const b = parseFixed(other._value, other.format.decimals);\n return FixedNumber.fromValue(a.mul(b).div(this.format._multiplier), this.format.decimals, this.format);\n }\n divUnsafe(other) {\n this._checkFormat(other);\n const a = parseFixed(this._value, this.format.decimals);\n const b = parseFixed(other._value, other.format.decimals);\n return FixedNumber.fromValue(a.mul(this.format._multiplier).div(b), this.format.decimals, this.format);\n }\n floor() {\n const comps = this.toString().split(\".\");\n if (comps.length === 1) {\n comps.push(\"0\");\n }\n let result = FixedNumber.from(comps[0], this.format);\n const hasFraction = !comps[1].match(/^(0*)$/);\n if (this.isNegative() && hasFraction) {\n result = result.subUnsafe(ONE.toFormat(result.format));\n }\n return result;\n }\n ceiling() {\n const comps = this.toString().split(\".\");\n if (comps.length === 1) {\n comps.push(\"0\");\n }\n let result = FixedNumber.from(comps[0], this.format);\n const hasFraction = !comps[1].match(/^(0*)$/);\n if (!this.isNegative() && hasFraction) {\n result = result.addUnsafe(ONE.toFormat(result.format));\n }\n return result;\n }\n // @TODO: Support other rounding algorithms\n round(decimals) {\n if (decimals == null) {\n decimals = 0;\n }\n // If we are already in range, we're done\n const comps = this.toString().split(\".\");\n if (comps.length === 1) {\n comps.push(\"0\");\n }\n if (decimals < 0 || decimals > 80 || (decimals % 1)) {\n logger.throwArgumentError(\"invalid decimal count\", \"decimals\", decimals);\n }\n if (comps[1].length <= decimals) {\n return this;\n }\n const factor = FixedNumber.from(\"1\" + zeros.substring(0, decimals), this.format);\n const bump = BUMP.toFormat(this.format);\n return this.mulUnsafe(factor).addUnsafe(bump).floor().divUnsafe(factor);\n }\n isZero() {\n return (this._value === \"0.0\" || this._value === \"0\");\n }\n isNegative() {\n return (this._value[0] === \"-\");\n }\n toString() { return this._value; }\n toHexString(width) {\n if (width == null) {\n return this._hex;\n }\n if (width % 8) {\n logger.throwArgumentError(\"invalid byte width\", \"width\", width);\n }\n const hex = BigNumber.from(this._hex).fromTwos(this.format.width).toTwos(width).toHexString();\n return hexZeroPad(hex, width / 8);\n }\n toUnsafeFloat() { return parseFloat(this.toString()); }\n toFormat(format) {\n return FixedNumber.fromString(this._value, format);\n }\n static fromValue(value, decimals, format) {\n // If decimals looks more like a format, and there is no format, shift the parameters\n if (format == null && decimals != null && !isBigNumberish(decimals)) {\n format = decimals;\n decimals = null;\n }\n if (decimals == null) {\n decimals = 0;\n }\n if (format == null) {\n format = \"fixed\";\n }\n return FixedNumber.fromString(formatFixed(value, decimals), FixedFormat.from(format));\n }\n static fromString(value, format) {\n if (format == null) {\n format = \"fixed\";\n }\n const fixedFormat = FixedFormat.from(format);\n const numeric = parseFixed(value, fixedFormat.decimals);\n if (!fixedFormat.signed && numeric.lt(Zero)) {\n throwFault(\"unsigned value cannot be negative\", \"overflow\", \"value\", value);\n }\n let hex = null;\n if (fixedFormat.signed) {\n hex = numeric.toTwos(fixedFormat.width).toHexString();\n }\n else {\n hex = numeric.toHexString();\n hex = hexZeroPad(hex, fixedFormat.width / 8);\n }\n const decimal = formatFixed(numeric, fixedFormat.decimals);\n return new FixedNumber(_constructorGuard, hex, decimal, fixedFormat);\n }\n static fromBytes(value, format) {\n if (format == null) {\n format = \"fixed\";\n }\n const fixedFormat = FixedFormat.from(format);\n if (arrayify(value).length > fixedFormat.width / 8) {\n throw new Error(\"overflow\");\n }\n let numeric = BigNumber.from(value);\n if (fixedFormat.signed) {\n numeric = numeric.fromTwos(fixedFormat.width);\n }\n const hex = numeric.toTwos((fixedFormat.signed ? 0 : 1) + fixedFormat.width).toHexString();\n const decimal = formatFixed(numeric, fixedFormat.decimals);\n return new FixedNumber(_constructorGuard, hex, decimal, fixedFormat);\n }\n static from(value, format) {\n if (typeof (value) === \"string\") {\n return FixedNumber.fromString(value, format);\n }\n if (isBytes(value)) {\n return FixedNumber.fromBytes(value, format);\n }\n try {\n return FixedNumber.fromValue(value, 0, format);\n }\n catch (error) {\n // Allow NUMERIC_FAULT to bubble up\n if (error.code !== Logger.errors.INVALID_ARGUMENT) {\n throw error;\n }\n }\n return logger.throwArgumentError(\"invalid FixedNumber value\", \"value\", value);\n }\n static isFixedNumber(value) {\n return !!(value && value._isFixedNumber);\n }\n}\nconst ONE = FixedNumber.from(1);\nconst BUMP = FixedNumber.from(\"0.5\");\n//# sourceMappingURL=fixednumber.js.map","import { concat } from \"@ethersproject/bytes\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\nexport const messagePrefix = \"\\x19Ethereum Signed Message:\\n\";\nexport function hashMessage(message) {\n if (typeof (message) === \"string\") {\n message = toUtf8Bytes(message);\n }\n return keccak256(concat([\n toUtf8Bytes(messagePrefix),\n toUtf8Bytes(String(message.length)),\n message\n ]));\n}\n//# sourceMappingURL=message.js.map","export const version = \"hash/5.6.1\";\n//# sourceMappingURL=_version.js.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { getAddress } from \"@ethersproject/address\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { arrayify, hexConcat, hexlify, hexZeroPad, isHexString } from \"@ethersproject/bytes\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { deepCopy, defineReadOnly, shallowCopy } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { id } from \"./id\";\nconst padding = new Uint8Array(32);\npadding.fill(0);\nconst NegativeOne = BigNumber.from(-1);\nconst Zero = BigNumber.from(0);\nconst One = BigNumber.from(1);\nconst MaxUint256 = BigNumber.from(\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\");\nfunction hexPadRight(value) {\n const bytes = arrayify(value);\n const padOffset = bytes.length % 32;\n if (padOffset) {\n return hexConcat([bytes, padding.slice(padOffset)]);\n }\n return hexlify(bytes);\n}\nconst hexTrue = hexZeroPad(One.toHexString(), 32);\nconst hexFalse = hexZeroPad(Zero.toHexString(), 32);\nconst domainFieldTypes = {\n name: \"string\",\n version: \"string\",\n chainId: \"uint256\",\n verifyingContract: \"address\",\n salt: \"bytes32\"\n};\nconst domainFieldNames = [\n \"name\", \"version\", \"chainId\", \"verifyingContract\", \"salt\"\n];\nfunction checkString(key) {\n return function (value) {\n if (typeof (value) !== \"string\") {\n logger.throwArgumentError(`invalid domain value for ${JSON.stringify(key)}`, `domain.${key}`, value);\n }\n return value;\n };\n}\nconst domainChecks = {\n name: checkString(\"name\"),\n version: checkString(\"version\"),\n chainId: function (value) {\n try {\n return BigNumber.from(value).toString();\n }\n catch (error) { }\n return logger.throwArgumentError(`invalid domain value for \"chainId\"`, \"domain.chainId\", value);\n },\n verifyingContract: function (value) {\n try {\n return getAddress(value).toLowerCase();\n }\n catch (error) { }\n return logger.throwArgumentError(`invalid domain value \"verifyingContract\"`, \"domain.verifyingContract\", value);\n },\n salt: function (value) {\n try {\n const bytes = arrayify(value);\n if (bytes.length !== 32) {\n throw new Error(\"bad length\");\n }\n return hexlify(bytes);\n }\n catch (error) { }\n return logger.throwArgumentError(`invalid domain value \"salt\"`, \"domain.salt\", value);\n }\n};\nfunction getBaseEncoder(type) {\n // intXX and uintXX\n {\n const match = type.match(/^(u?)int(\\d*)$/);\n if (match) {\n const signed = (match[1] === \"\");\n const width = parseInt(match[2] || \"256\");\n if (width % 8 !== 0 || width > 256 || (match[2] && match[2] !== String(width))) {\n logger.throwArgumentError(\"invalid numeric width\", \"type\", type);\n }\n const boundsUpper = MaxUint256.mask(signed ? (width - 1) : width);\n const boundsLower = signed ? boundsUpper.add(One).mul(NegativeOne) : Zero;\n return function (value) {\n const v = BigNumber.from(value);\n if (v.lt(boundsLower) || v.gt(boundsUpper)) {\n logger.throwArgumentError(`value out-of-bounds for ${type}`, \"value\", value);\n }\n return hexZeroPad(v.toTwos(256).toHexString(), 32);\n };\n }\n }\n // bytesXX\n {\n const match = type.match(/^bytes(\\d+)$/);\n if (match) {\n const width = parseInt(match[1]);\n if (width === 0 || width > 32 || match[1] !== String(width)) {\n logger.throwArgumentError(\"invalid bytes width\", \"type\", type);\n }\n return function (value) {\n const bytes = arrayify(value);\n if (bytes.length !== width) {\n logger.throwArgumentError(`invalid length for ${type}`, \"value\", value);\n }\n return hexPadRight(value);\n };\n }\n }\n switch (type) {\n case \"address\": return function (value) {\n return hexZeroPad(getAddress(value), 32);\n };\n case \"bool\": return function (value) {\n return ((!value) ? hexFalse : hexTrue);\n };\n case \"bytes\": return function (value) {\n return keccak256(value);\n };\n case \"string\": return function (value) {\n return id(value);\n };\n }\n return null;\n}\nfunction encodeType(name, fields) {\n return `${name}(${fields.map(({ name, type }) => (type + \" \" + name)).join(\",\")})`;\n}\nexport class TypedDataEncoder {\n constructor(types) {\n defineReadOnly(this, \"types\", Object.freeze(deepCopy(types)));\n defineReadOnly(this, \"_encoderCache\", {});\n defineReadOnly(this, \"_types\", {});\n // Link struct types to their direct child structs\n const links = {};\n // Link structs to structs which contain them as a child\n const parents = {};\n // Link all subtypes within a given struct\n const subtypes = {};\n Object.keys(types).forEach((type) => {\n links[type] = {};\n parents[type] = [];\n subtypes[type] = {};\n });\n for (const name in types) {\n const uniqueNames = {};\n types[name].forEach((field) => {\n // Check each field has a unique name\n if (uniqueNames[field.name]) {\n logger.throwArgumentError(`duplicate variable name ${JSON.stringify(field.name)} in ${JSON.stringify(name)}`, \"types\", types);\n }\n uniqueNames[field.name] = true;\n // Get the base type (drop any array specifiers)\n const baseType = field.type.match(/^([^\\x5b]*)(\\x5b|$)/)[1];\n if (baseType === name) {\n logger.throwArgumentError(`circular type reference to ${JSON.stringify(baseType)}`, \"types\", types);\n }\n // Is this a base encoding type?\n const encoder = getBaseEncoder(baseType);\n if (encoder) {\n return;\n }\n if (!parents[baseType]) {\n logger.throwArgumentError(`unknown type ${JSON.stringify(baseType)}`, \"types\", types);\n }\n // Add linkage\n parents[baseType].push(name);\n links[name][baseType] = true;\n });\n }\n // Deduce the primary type\n const primaryTypes = Object.keys(parents).filter((n) => (parents[n].length === 0));\n if (primaryTypes.length === 0) {\n logger.throwArgumentError(\"missing primary type\", \"types\", types);\n }\n else if (primaryTypes.length > 1) {\n logger.throwArgumentError(`ambiguous primary types or unused types: ${primaryTypes.map((t) => (JSON.stringify(t))).join(\", \")}`, \"types\", types);\n }\n defineReadOnly(this, \"primaryType\", primaryTypes[0]);\n // Check for circular type references\n function checkCircular(type, found) {\n if (found[type]) {\n logger.throwArgumentError(`circular type reference to ${JSON.stringify(type)}`, \"types\", types);\n }\n found[type] = true;\n Object.keys(links[type]).forEach((child) => {\n if (!parents[child]) {\n return;\n }\n // Recursively check children\n checkCircular(child, found);\n // Mark all ancestors as having this decendant\n Object.keys(found).forEach((subtype) => {\n subtypes[subtype][child] = true;\n });\n });\n delete found[type];\n }\n checkCircular(this.primaryType, {});\n // Compute each fully describe type\n for (const name in subtypes) {\n const st = Object.keys(subtypes[name]);\n st.sort();\n this._types[name] = encodeType(name, types[name]) + st.map((t) => encodeType(t, types[t])).join(\"\");\n }\n }\n getEncoder(type) {\n let encoder = this._encoderCache[type];\n if (!encoder) {\n encoder = this._encoderCache[type] = this._getEncoder(type);\n }\n return encoder;\n }\n _getEncoder(type) {\n // Basic encoder type (address, bool, uint256, etc)\n {\n const encoder = getBaseEncoder(type);\n if (encoder) {\n return encoder;\n }\n }\n // Array\n const match = type.match(/^(.*)(\\x5b(\\d*)\\x5d)$/);\n if (match) {\n const subtype = match[1];\n const subEncoder = this.getEncoder(subtype);\n const length = parseInt(match[3]);\n return (value) => {\n if (length >= 0 && value.length !== length) {\n logger.throwArgumentError(\"array length mismatch; expected length ${ arrayLength }\", \"value\", value);\n }\n let result = value.map(subEncoder);\n if (this._types[subtype]) {\n result = result.map(keccak256);\n }\n return keccak256(hexConcat(result));\n };\n }\n // Struct\n const fields = this.types[type];\n if (fields) {\n const encodedType = id(this._types[type]);\n return (value) => {\n const values = fields.map(({ name, type }) => {\n const result = this.getEncoder(type)(value[name]);\n if (this._types[type]) {\n return keccak256(result);\n }\n return result;\n });\n values.unshift(encodedType);\n return hexConcat(values);\n };\n }\n return logger.throwArgumentError(`unknown type: ${type}`, \"type\", type);\n }\n encodeType(name) {\n const result = this._types[name];\n if (!result) {\n logger.throwArgumentError(`unknown type: ${JSON.stringify(name)}`, \"name\", name);\n }\n return result;\n }\n encodeData(type, value) {\n return this.getEncoder(type)(value);\n }\n hashStruct(name, value) {\n return keccak256(this.encodeData(name, value));\n }\n encode(value) {\n return this.encodeData(this.primaryType, value);\n }\n hash(value) {\n return this.hashStruct(this.primaryType, value);\n }\n _visit(type, value, callback) {\n // Basic encoder type (address, bool, uint256, etc)\n {\n const encoder = getBaseEncoder(type);\n if (encoder) {\n return callback(type, value);\n }\n }\n // Array\n const match = type.match(/^(.*)(\\x5b(\\d*)\\x5d)$/);\n if (match) {\n const subtype = match[1];\n const length = parseInt(match[3]);\n if (length >= 0 && value.length !== length) {\n logger.throwArgumentError(\"array length mismatch; expected length ${ arrayLength }\", \"value\", value);\n }\n return value.map((v) => this._visit(subtype, v, callback));\n }\n // Struct\n const fields = this.types[type];\n if (fields) {\n return fields.reduce((accum, { name, type }) => {\n accum[name] = this._visit(type, value[name], callback);\n return accum;\n }, {});\n }\n return logger.throwArgumentError(`unknown type: ${type}`, \"type\", type);\n }\n visit(value, callback) {\n return this._visit(this.primaryType, value, callback);\n }\n static from(types) {\n return new TypedDataEncoder(types);\n }\n static getPrimaryType(types) {\n return TypedDataEncoder.from(types).primaryType;\n }\n static hashStruct(name, types, value) {\n return TypedDataEncoder.from(types).hashStruct(name, value);\n }\n static hashDomain(domain) {\n const domainFields = [];\n for (const name in domain) {\n const type = domainFieldTypes[name];\n if (!type) {\n logger.throwArgumentError(`invalid typed-data domain key: ${JSON.stringify(name)}`, \"domain\", domain);\n }\n domainFields.push({ name, type });\n }\n domainFields.sort((a, b) => {\n return domainFieldNames.indexOf(a.name) - domainFieldNames.indexOf(b.name);\n });\n return TypedDataEncoder.hashStruct(\"EIP712Domain\", { EIP712Domain: domainFields }, domain);\n }\n static encode(domain, types, value) {\n return hexConcat([\n \"0x1901\",\n TypedDataEncoder.hashDomain(domain),\n TypedDataEncoder.from(types).hash(value)\n ]);\n }\n static hash(domain, types, value) {\n return keccak256(TypedDataEncoder.encode(domain, types, value));\n }\n // Replaces all address types with ENS names with their looked up address\n static resolveNames(domain, types, value, resolveName) {\n return __awaiter(this, void 0, void 0, function* () {\n // Make a copy to isolate it from the object passed in\n domain = shallowCopy(domain);\n // Look up all ENS names\n const ensCache = {};\n // Do we need to look up the domain's verifyingContract?\n if (domain.verifyingContract && !isHexString(domain.verifyingContract, 20)) {\n ensCache[domain.verifyingContract] = \"0x\";\n }\n // We are going to use the encoder to visit all the base values\n const encoder = TypedDataEncoder.from(types);\n // Get a list of all the addresses\n encoder.visit(value, (type, value) => {\n if (type === \"address\" && !isHexString(value, 20)) {\n ensCache[value] = \"0x\";\n }\n return value;\n });\n // Lookup each name\n for (const name in ensCache) {\n ensCache[name] = yield resolveName(name);\n }\n // Replace the domain verifyingContract if needed\n if (domain.verifyingContract && ensCache[domain.verifyingContract]) {\n domain.verifyingContract = ensCache[domain.verifyingContract];\n }\n // Replace all ENS names with their address\n value = encoder.visit(value, (type, value) => {\n if (type === \"address\" && ensCache[value]) {\n return ensCache[value];\n }\n return value;\n });\n return { domain, value };\n });\n }\n static getPayload(domain, types, value) {\n // Validate the domain fields\n TypedDataEncoder.hashDomain(domain);\n // Derive the EIP712Domain Struct reference type\n const domainValues = {};\n const domainTypes = [];\n domainFieldNames.forEach((name) => {\n const value = domain[name];\n if (value == null) {\n return;\n }\n domainValues[name] = domainChecks[name](value);\n domainTypes.push({ name, type: domainFieldTypes[name] });\n });\n const encoder = TypedDataEncoder.from(types);\n const typesWithDomain = shallowCopy(types);\n if (typesWithDomain.EIP712Domain) {\n logger.throwArgumentError(\"types must not contain EIP712Domain type\", \"types.EIP712Domain\", types);\n }\n else {\n typesWithDomain.EIP712Domain = domainTypes;\n }\n // Validate the data structures and types\n encoder.encode(value);\n return {\n types: typesWithDomain,\n domain: domainValues,\n primaryType: encoder.primaryType,\n message: encoder.visit(value, (type, value) => {\n // bytes\n if (type.match(/^bytes(\\d*)/)) {\n return hexlify(arrayify(value));\n }\n // uint or int\n if (type.match(/^u?int/)) {\n return BigNumber.from(value).toString();\n }\n switch (type) {\n case \"address\":\n return value.toLowerCase();\n case \"bool\":\n return !!value;\n case \"string\":\n if (typeof (value) !== \"string\") {\n logger.throwArgumentError(`invalid string`, \"value\", value);\n }\n return value;\n }\n return logger.throwArgumentError(\"unsupported type\", \"type\", type);\n })\n };\n }\n}\n//# sourceMappingURL=typed-data.js.map","/**\n * var basex = require(\"base-x\");\n *\n * This implementation is heavily based on base-x. The main reason to\n * deviate was to prevent the dependency of Buffer.\n *\n * Contributors:\n *\n * base-x encoding\n * Forked from https://github.com/cryptocoinjs/bs58\n * Originally written by Mike Hearn for BitcoinJ\n * Copyright (c) 2011 Google Inc\n * Ported to JavaScript by Stefan Thomas\n * Merged Buffer refactorings from base58-native by Stephen Pair\n * Copyright (c) 2013 BitPay Inc\n *\n * The MIT License (MIT)\n *\n * Copyright base-x contributors (c) 2016\n *\n * Permission is hereby granted, free of charge, to any person obtaining a\n * copy of this software and associated documentation files (the \"Software\"),\n * to deal in the Software without restriction, including without limitation\n * the rights to use, copy, modify, merge, publish, distribute, sublicense,\n * and/or sell copies of the Software, and to permit persons to whom the\n * Software is furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n *\n */\nimport { arrayify } from \"@ethersproject/bytes\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nexport class BaseX {\n constructor(alphabet) {\n defineReadOnly(this, \"alphabet\", alphabet);\n defineReadOnly(this, \"base\", alphabet.length);\n defineReadOnly(this, \"_alphabetMap\", {});\n defineReadOnly(this, \"_leader\", alphabet.charAt(0));\n // pre-compute lookup table\n for (let i = 0; i < alphabet.length; i++) {\n this._alphabetMap[alphabet.charAt(i)] = i;\n }\n }\n encode(value) {\n let source = arrayify(value);\n if (source.length === 0) {\n return \"\";\n }\n let digits = [0];\n for (let i = 0; i < source.length; ++i) {\n let carry = source[i];\n for (let j = 0; j < digits.length; ++j) {\n carry += digits[j] << 8;\n digits[j] = carry % this.base;\n carry = (carry / this.base) | 0;\n }\n while (carry > 0) {\n digits.push(carry % this.base);\n carry = (carry / this.base) | 0;\n }\n }\n let string = \"\";\n // deal with leading zeros\n for (let k = 0; source[k] === 0 && k < source.length - 1; ++k) {\n string += this._leader;\n }\n // convert digits to a string\n for (let q = digits.length - 1; q >= 0; --q) {\n string += this.alphabet[digits[q]];\n }\n return string;\n }\n decode(value) {\n if (typeof (value) !== \"string\") {\n throw new TypeError(\"Expected String\");\n }\n let bytes = [];\n if (value.length === 0) {\n return new Uint8Array(bytes);\n }\n bytes.push(0);\n for (let i = 0; i < value.length; i++) {\n let byte = this._alphabetMap[value[i]];\n if (byte === undefined) {\n throw new Error(\"Non-base\" + this.base + \" character\");\n }\n let carry = byte;\n for (let j = 0; j < bytes.length; ++j) {\n carry += bytes[j] * this.base;\n bytes[j] = carry & 0xff;\n carry >>= 8;\n }\n while (carry > 0) {\n bytes.push(carry & 0xff);\n carry >>= 8;\n }\n }\n // deal with leading zeros\n for (let k = 0; value[k] === this._leader && k < value.length - 1; ++k) {\n bytes.push(0);\n }\n return arrayify(new Uint8Array(bytes.reverse()));\n }\n}\nconst Base32 = new BaseX(\"abcdefghijklmnopqrstuvwxyz234567\");\nconst Base58 = new BaseX(\"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz\");\nexport { Base32, Base58 };\n//console.log(Base58.decode(\"Qmd2V777o5XvJbYMeMb8k2nU5f8d3ciUQ5YpYuWhzv8iDj\"))\n//console.log(Base58.encode(Base58.decode(\"Qmd2V777o5XvJbYMeMb8k2nU5f8d3ciUQ5YpYuWhzv8iDj\")))\n//# sourceMappingURL=index.js.map","export var SupportedAlgorithm;\n(function (SupportedAlgorithm) {\n SupportedAlgorithm[\"sha256\"] = \"sha256\";\n SupportedAlgorithm[\"sha512\"] = \"sha512\";\n})(SupportedAlgorithm || (SupportedAlgorithm = {}));\n;\n//# sourceMappingURL=types.js.map","export const version = \"sha2/5.6.1\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nimport hash from \"hash.js\";\n//const _ripemd160 = _hash.ripemd160;\nimport { arrayify } from \"@ethersproject/bytes\";\nimport { SupportedAlgorithm } from \"./types\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nexport function ripemd160(data) {\n return \"0x\" + (hash.ripemd160().update(arrayify(data)).digest(\"hex\"));\n}\nexport function sha256(data) {\n return \"0x\" + (hash.sha256().update(arrayify(data)).digest(\"hex\"));\n}\nexport function sha512(data) {\n return \"0x\" + (hash.sha512().update(arrayify(data)).digest(\"hex\"));\n}\nexport function computeHmac(algorithm, key, data) {\n if (!SupportedAlgorithm[algorithm]) {\n logger.throwError(\"unsupported algorithm \" + algorithm, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"hmac\",\n algorithm: algorithm\n });\n }\n return \"0x\" + hash.hmac(hash[algorithm], arrayify(key)).update(arrayify(data)).digest(\"hex\");\n}\n//# sourceMappingURL=sha2.js.map","\"use strict\";\nimport { arrayify, hexlify } from \"@ethersproject/bytes\";\nimport { computeHmac } from \"@ethersproject/sha2\";\nexport function pbkdf2(password, salt, iterations, keylen, hashAlgorithm) {\n password = arrayify(password);\n salt = arrayify(salt);\n let hLen;\n let l = 1;\n const DK = new Uint8Array(keylen);\n const block1 = new Uint8Array(salt.length + 4);\n block1.set(salt);\n //salt.copy(block1, 0, 0, salt.length)\n let r;\n let T;\n for (let i = 1; i <= l; i++) {\n //block1.writeUInt32BE(i, salt.length)\n block1[salt.length] = (i >> 24) & 0xff;\n block1[salt.length + 1] = (i >> 16) & 0xff;\n block1[salt.length + 2] = (i >> 8) & 0xff;\n block1[salt.length + 3] = i & 0xff;\n //let U = createHmac(password).update(block1).digest();\n let U = arrayify(computeHmac(hashAlgorithm, password, block1));\n if (!hLen) {\n hLen = U.length;\n T = new Uint8Array(hLen);\n l = Math.ceil(keylen / hLen);\n r = keylen - (l - 1) * hLen;\n }\n //U.copy(T, 0, 0, hLen)\n T.set(U);\n for (let j = 1; j < iterations; j++) {\n //U = createHmac(password).update(U).digest();\n U = arrayify(computeHmac(hashAlgorithm, password, U));\n for (let k = 0; k < hLen; k++)\n T[k] ^= U[k];\n }\n const destPos = (i - 1) * hLen;\n const len = (i === l ? r : hLen);\n //T.copy(DK, destPos, 0, len)\n DK.set(arrayify(T).slice(0, len), destPos);\n }\n return hexlify(DK);\n}\n//# sourceMappingURL=pbkdf2.js.map","export const version = \"wordlists/5.6.1\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\n// This gets overridden by rollup\nconst exportWordlist = false;\nimport { id } from \"@ethersproject/hash\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nexport const logger = new Logger(version);\nexport class Wordlist {\n constructor(locale) {\n logger.checkAbstract(new.target, Wordlist);\n defineReadOnly(this, \"locale\", locale);\n }\n // Subclasses may override this\n split(mnemonic) {\n return mnemonic.toLowerCase().split(/ +/g);\n }\n // Subclasses may override this\n join(words) {\n return words.join(\" \");\n }\n static check(wordlist) {\n const words = [];\n for (let i = 0; i < 2048; i++) {\n const word = wordlist.getWord(i);\n /* istanbul ignore if */\n if (i !== wordlist.getWordIndex(word)) {\n return \"0x\";\n }\n words.push(word);\n }\n return id(words.join(\"\\n\") + \"\\n\");\n }\n static register(lang, name) {\n if (!name) {\n name = lang.locale;\n }\n /* istanbul ignore if */\n if (exportWordlist) {\n try {\n const anyGlobal = window;\n if (anyGlobal._ethers && anyGlobal._ethers.wordlists) {\n if (!anyGlobal._ethers.wordlists[name]) {\n defineReadOnly(anyGlobal._ethers.wordlists, name, lang);\n }\n }\n }\n catch (error) { }\n }\n }\n}\n//# sourceMappingURL=wordlist.js.map","\"use strict\";\nimport { Wordlist } from \"./wordlist\";\nconst words = \"AbandonAbilityAbleAboutAboveAbsentAbsorbAbstractAbsurdAbuseAccessAccidentAccountAccuseAchieveAcidAcousticAcquireAcrossActActionActorActressActualAdaptAddAddictAddressAdjustAdmitAdultAdvanceAdviceAerobicAffairAffordAfraidAgainAgeAgentAgreeAheadAimAirAirportAisleAlarmAlbumAlcoholAlertAlienAllAlleyAllowAlmostAloneAlphaAlreadyAlsoAlterAlwaysAmateurAmazingAmongAmountAmusedAnalystAnchorAncientAngerAngleAngryAnimalAnkleAnnounceAnnualAnotherAnswerAntennaAntiqueAnxietyAnyApartApologyAppearAppleApproveAprilArchArcticAreaArenaArgueArmArmedArmorArmyAroundArrangeArrestArriveArrowArtArtefactArtistArtworkAskAspectAssaultAssetAssistAssumeAsthmaAthleteAtomAttackAttendAttitudeAttractAuctionAuditAugustAuntAuthorAutoAutumnAverageAvocadoAvoidAwakeAwareAwayAwesomeAwfulAwkwardAxisBabyBachelorBaconBadgeBagBalanceBalconyBallBambooBananaBannerBarBarelyBargainBarrelBaseBasicBasketBattleBeachBeanBeautyBecauseBecomeBeefBeforeBeginBehaveBehindBelieveBelowBeltBenchBenefitBestBetrayBetterBetweenBeyondBicycleBidBikeBindBiologyBirdBirthBitterBlackBladeBlameBlanketBlastBleakBlessBlindBloodBlossomBlouseBlueBlurBlushBoardBoatBodyBoilBombBoneBonusBookBoostBorderBoringBorrowBossBottomBounceBoxBoyBracketBrainBrandBrassBraveBreadBreezeBrickBridgeBriefBrightBringBriskBroccoliBrokenBronzeBroomBrotherBrownBrushBubbleBuddyBudgetBuffaloBuildBulbBulkBulletBundleBunkerBurdenBurgerBurstBusBusinessBusyButterBuyerBuzzCabbageCabinCableCactusCageCakeCallCalmCameraCampCanCanalCancelCandyCannonCanoeCanvasCanyonCapableCapitalCaptainCarCarbonCardCargoCarpetCarryCartCaseCashCasinoCastleCasualCatCatalogCatchCategoryCattleCaughtCauseCautionCaveCeilingCeleryCementCensusCenturyCerealCertainChairChalkChampionChangeChaosChapterChargeChaseChatCheapCheckCheeseChefCherryChestChickenChiefChildChimneyChoiceChooseChronicChuckleChunkChurnCigarCinnamonCircleCitizenCityCivilClaimClapClarifyClawClayCleanClerkCleverClickClientCliffClimbClinicClipClockClogCloseClothCloudClownClubClumpClusterClutchCoachCoastCoconutCodeCoffeeCoilCoinCollectColorColumnCombineComeComfortComicCommonCompanyConcertConductConfirmCongressConnectConsiderControlConvinceCookCoolCopperCopyCoralCoreCornCorrectCostCottonCouchCountryCoupleCourseCousinCoverCoyoteCrackCradleCraftCramCraneCrashCraterCrawlCrazyCreamCreditCreekCrewCricketCrimeCrispCriticCropCrossCrouchCrowdCrucialCruelCruiseCrumbleCrunchCrushCryCrystalCubeCultureCupCupboardCuriousCurrentCurtainCurveCushionCustomCuteCycleDadDamageDampDanceDangerDaringDashDaughterDawnDayDealDebateDebrisDecadeDecemberDecideDeclineDecorateDecreaseDeerDefenseDefineDefyDegreeDelayDeliverDemandDemiseDenialDentistDenyDepartDependDepositDepthDeputyDeriveDescribeDesertDesignDeskDespairDestroyDetailDetectDevelopDeviceDevoteDiagramDialDiamondDiaryDiceDieselDietDifferDigitalDignityDilemmaDinnerDinosaurDirectDirtDisagreeDiscoverDiseaseDishDismissDisorderDisplayDistanceDivertDivideDivorceDizzyDoctorDocumentDogDollDolphinDomainDonateDonkeyDonorDoorDoseDoubleDoveDraftDragonDramaDrasticDrawDreamDressDriftDrillDrinkDripDriveDropDrumDryDuckDumbDuneDuringDustDutchDutyDwarfDynamicEagerEagleEarlyEarnEarthEasilyEastEasyEchoEcologyEconomyEdgeEditEducateEffortEggEightEitherElbowElderElectricElegantElementElephantElevatorEliteElseEmbarkEmbodyEmbraceEmergeEmotionEmployEmpowerEmptyEnableEnactEndEndlessEndorseEnemyEnergyEnforceEngageEngineEnhanceEnjoyEnlistEnoughEnrichEnrollEnsureEnterEntireEntryEnvelopeEpisodeEqualEquipEraEraseErodeErosionErrorEruptEscapeEssayEssenceEstateEternalEthicsEvidenceEvilEvokeEvolveExactExampleExcessExchangeExciteExcludeExcuseExecuteExerciseExhaustExhibitExileExistExitExoticExpandExpectExpireExplainExposeExpressExtendExtraEyeEyebrowFabricFaceFacultyFadeFaintFaithFallFalseFameFamilyFamousFanFancyFantasyFarmFashionFatFatalFatherFatigueFaultFavoriteFeatureFebruaryFederalFeeFeedFeelFemaleFenceFestivalFetchFeverFewFiberFictionFieldFigureFileFilmFilterFinalFindFineFingerFinishFireFirmFirstFiscalFishFitFitnessFixFlagFlameFlashFlatFlavorFleeFlightFlipFloatFlockFloorFlowerFluidFlushFlyFoamFocusFogFoilFoldFollowFoodFootForceForestForgetForkFortuneForumForwardFossilFosterFoundFoxFragileFrameFrequentFreshFriendFringeFrogFrontFrostFrownFrozenFruitFuelFunFunnyFurnaceFuryFutureGadgetGainGalaxyGalleryGameGapGarageGarbageGardenGarlicGarmentGasGaspGateGatherGaugeGazeGeneralGeniusGenreGentleGenuineGestureGhostGiantGiftGiggleGingerGiraffeGirlGiveGladGlanceGlareGlassGlideGlimpseGlobeGloomGloryGloveGlowGlueGoatGoddessGoldGoodGooseGorillaGospelGossipGovernGownGrabGraceGrainGrantGrapeGrassGravityGreatGreenGridGriefGritGroceryGroupGrowGruntGuardGuessGuideGuiltGuitarGunGymHabitHairHalfHammerHamsterHandHappyHarborHardHarshHarvestHatHaveHawkHazardHeadHealthHeartHeavyHedgehogHeightHelloHelmetHelpHenHeroHiddenHighHillHintHipHireHistoryHobbyHockeyHoldHoleHolidayHollowHomeHoneyHoodHopeHornHorrorHorseHospitalHostHotelHourHoverHubHugeHumanHumbleHumorHundredHungryHuntHurdleHurryHurtHusbandHybridIceIconIdeaIdentifyIdleIgnoreIllIllegalIllnessImageImitateImmenseImmuneImpactImposeImproveImpulseInchIncludeIncomeIncreaseIndexIndicateIndoorIndustryInfantInflictInformInhaleInheritInitialInjectInjuryInmateInnerInnocentInputInquiryInsaneInsectInsideInspireInstallIntactInterestIntoInvestInviteInvolveIronIslandIsolateIssueItemIvoryJacketJaguarJarJazzJealousJeansJellyJewelJobJoinJokeJourneyJoyJudgeJuiceJumpJungleJuniorJunkJustKangarooKeenKeepKetchupKeyKickKidKidneyKindKingdomKissKitKitchenKiteKittenKiwiKneeKnifeKnockKnowLabLabelLaborLadderLadyLakeLampLanguageLaptopLargeLaterLatinLaughLaundryLavaLawLawnLawsuitLayerLazyLeaderLeafLearnLeaveLectureLeftLegLegalLegendLeisureLemonLendLengthLensLeopardLessonLetterLevelLiarLibertyLibraryLicenseLifeLiftLightLikeLimbLimitLinkLionLiquidListLittleLiveLizardLoadLoanLobsterLocalLockLogicLonelyLongLoopLotteryLoudLoungeLoveLoyalLuckyLuggageLumberLunarLunchLuxuryLyricsMachineMadMagicMagnetMaidMailMainMajorMakeMammalManManageMandateMangoMansionManualMapleMarbleMarchMarginMarineMarketMarriageMaskMassMasterMatchMaterialMathMatrixMatterMaximumMazeMeadowMeanMeasureMeatMechanicMedalMediaMelodyMeltMemberMemoryMentionMenuMercyMergeMeritMerryMeshMessageMetalMethodMiddleMidnightMilkMillionMimicMindMinimumMinorMinuteMiracleMirrorMiseryMissMistakeMixMixedMixtureMobileModelModifyMomMomentMonitorMonkeyMonsterMonthMoonMoralMoreMorningMosquitoMotherMotionMotorMountainMouseMoveMovieMuchMuffinMuleMultiplyMuscleMuseumMushroomMusicMustMutualMyselfMysteryMythNaiveNameNapkinNarrowNastyNationNatureNearNeckNeedNegativeNeglectNeitherNephewNerveNestNetNetworkNeutralNeverNewsNextNiceNightNobleNoiseNomineeNoodleNormalNorthNoseNotableNoteNothingNoticeNovelNowNuclearNumberNurseNutOakObeyObjectObligeObscureObserveObtainObviousOccurOceanOctoberOdorOffOfferOfficeOftenOilOkayOldOliveOlympicOmitOnceOneOnionOnlineOnlyOpenOperaOpinionOpposeOptionOrangeOrbitOrchardOrderOrdinaryOrganOrientOriginalOrphanOstrichOtherOutdoorOuterOutputOutsideOvalOvenOverOwnOwnerOxygenOysterOzonePactPaddlePagePairPalacePalmPandaPanelPanicPantherPaperParadeParentParkParrotPartyPassPatchPathPatientPatrolPatternPausePavePaymentPeacePeanutPearPeasantPelicanPenPenaltyPencilPeoplePepperPerfectPermitPersonPetPhonePhotoPhrasePhysicalPianoPicnicPicturePiecePigPigeonPillPilotPinkPioneerPipePistolPitchPizzaPlacePlanetPlasticPlatePlayPleasePledgePluckPlugPlungePoemPoetPointPolarPolePolicePondPonyPoolPopularPortionPositionPossiblePostPotatoPotteryPovertyPowderPowerPracticePraisePredictPreferPreparePresentPrettyPreventPricePridePrimaryPrintPriorityPrisonPrivatePrizeProblemProcessProduceProfitProgramProjectPromoteProofPropertyProsperProtectProudProvidePublicPuddingPullPulpPulsePumpkinPunchPupilPuppyPurchasePurityPurposePursePushPutPuzzlePyramidQualityQuantumQuarterQuestionQuickQuitQuizQuoteRabbitRaccoonRaceRackRadarRadioRailRainRaiseRallyRampRanchRandomRangeRapidRareRateRatherRavenRawRazorReadyRealReasonRebelRebuildRecallReceiveRecipeRecordRecycleReduceReflectReformRefuseRegionRegretRegularRejectRelaxReleaseReliefRelyRemainRememberRemindRemoveRenderRenewRentReopenRepairRepeatReplaceReportRequireRescueResembleResistResourceResponseResultRetireRetreatReturnReunionRevealReviewRewardRhythmRibRibbonRiceRichRideRidgeRifleRightRigidRingRiotRippleRiskRitualRivalRiverRoadRoastRobotRobustRocketRomanceRoofRookieRoomRoseRotateRoughRoundRouteRoyalRubberRudeRugRuleRunRunwayRuralSadSaddleSadnessSafeSailSaladSalmonSalonSaltSaluteSameSampleSandSatisfySatoshiSauceSausageSaveSayScaleScanScareScatterSceneSchemeSchoolScienceScissorsScorpionScoutScrapScreenScriptScrubSeaSearchSeasonSeatSecondSecretSectionSecuritySeedSeekSegmentSelectSellSeminarSeniorSenseSentenceSeriesServiceSessionSettleSetupSevenShadowShaftShallowShareShedShellSheriffShieldShiftShineShipShiverShockShoeShootShopShortShoulderShoveShrimpShrugShuffleShySiblingSickSideSiegeSightSignSilentSilkSillySilverSimilarSimpleSinceSingSirenSisterSituateSixSizeSkateSketchSkiSkillSkinSkirtSkullSlabSlamSleepSlenderSliceSlideSlightSlimSloganSlotSlowSlushSmallSmartSmileSmokeSmoothSnackSnakeSnapSniffSnowSoapSoccerSocialSockSodaSoftSolarSoldierSolidSolutionSolveSomeoneSongSoonSorrySortSoulSoundSoupSourceSouthSpaceSpareSpatialSpawnSpeakSpecialSpeedSpellSpendSphereSpiceSpiderSpikeSpinSpiritSplitSpoilSponsorSpoonSportSpotSpraySpreadSpringSpySquareSqueezeSquirrelStableStadiumStaffStageStairsStampStandStartStateStaySteakSteelStemStepStereoStickStillStingStockStomachStoneStoolStoryStoveStrategyStreetStrikeStrongStruggleStudentStuffStumbleStyleSubjectSubmitSubwaySuccessSuchSuddenSufferSugarSuggestSuitSummerSunSunnySunsetSuperSupplySupremeSureSurfaceSurgeSurpriseSurroundSurveySuspectSustainSwallowSwampSwapSwarmSwearSweetSwiftSwimSwingSwitchSwordSymbolSymptomSyrupSystemTableTackleTagTailTalentTalkTankTapeTargetTaskTasteTattooTaxiTeachTeamTellTenTenantTennisTentTermTestTextThankThatThemeThenTheoryThereTheyThingThisThoughtThreeThriveThrowThumbThunderTicketTideTigerTiltTimberTimeTinyTipTiredTissueTitleToastTobaccoTodayToddlerToeTogetherToiletTokenTomatoTomorrowToneTongueTonightToolToothTopTopicToppleTorchTornadoTortoiseTossTotalTouristTowardTowerTownToyTrackTradeTrafficTragicTrainTransferTrapTrashTravelTrayTreatTreeTrendTrialTribeTrickTriggerTrimTripTrophyTroubleTruckTrueTrulyTrumpetTrustTruthTryTubeTuitionTumbleTunaTunnelTurkeyTurnTurtleTwelveTwentyTwiceTwinTwistTwoTypeTypicalUglyUmbrellaUnableUnawareUncleUncoverUnderUndoUnfairUnfoldUnhappyUniformUniqueUnitUniverseUnknownUnlockUntilUnusualUnveilUpdateUpgradeUpholdUponUpperUpsetUrbanUrgeUsageUseUsedUsefulUselessUsualUtilityVacantVacuumVagueValidValleyValveVanVanishVaporVariousVastVaultVehicleVelvetVendorVentureVenueVerbVerifyVersionVeryVesselVeteranViableVibrantViciousVictoryVideoViewVillageVintageViolinVirtualVirusVisaVisitVisualVitalVividVocalVoiceVoidVolcanoVolumeVoteVoyageWageWagonWaitWalkWallWalnutWantWarfareWarmWarriorWashWaspWasteWaterWaveWayWealthWeaponWearWeaselWeatherWebWeddingWeekendWeirdWelcomeWestWetWhaleWhatWheatWheelWhenWhereWhipWhisperWideWidthWifeWildWillWinWindowWineWingWinkWinnerWinterWireWisdomWiseWishWitnessWolfWomanWonderWoodWoolWordWorkWorldWorryWorthWrapWreckWrestleWristWriteWrongYardYearYellowYouYoungYouthZebraZeroZoneZoo\";\nlet wordlist = null;\nfunction loadWords(lang) {\n if (wordlist != null) {\n return;\n }\n wordlist = words.replace(/([A-Z])/g, \" $1\").toLowerCase().substring(1).split(\" \");\n // Verify the computed list matches the official list\n /* istanbul ignore if */\n if (Wordlist.check(lang) !== \"0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60\") {\n wordlist = null;\n throw new Error(\"BIP39 Wordlist for en (English) FAILED\");\n }\n}\nclass LangEn extends Wordlist {\n constructor() {\n super(\"en\");\n }\n getWord(index) {\n loadWords(this);\n return wordlist[index];\n }\n getWordIndex(word) {\n loadWords(this);\n return wordlist.indexOf(word);\n }\n}\nconst langEn = new LangEn();\nWordlist.register(langEn);\nexport { langEn };\n//# sourceMappingURL=lang-en.js.map","\"use strict\";\nimport { langEn as en } from \"./lang-en\";\nexport const wordlists = {\n en: en\n};\n//# sourceMappingURL=wordlists.js.map","\"use strict\";\nimport { Base58 } from \"@ethersproject/basex\";\nimport { arrayify, concat, hexDataSlice, hexZeroPad, hexlify } from \"@ethersproject/bytes\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { toUtf8Bytes, UnicodeNormalizationForm } from \"@ethersproject/strings\";\nimport { pbkdf2 } from \"@ethersproject/pbkdf2\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { SigningKey } from \"@ethersproject/signing-key\";\nimport { computeHmac, ripemd160, sha256, SupportedAlgorithm } from \"@ethersproject/sha2\";\nimport { computeAddress } from \"@ethersproject/transactions\";\nimport { wordlists } from \"@ethersproject/wordlists\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nconst N = BigNumber.from(\"0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141\");\n// \"Bitcoin seed\"\nconst MasterSecret = toUtf8Bytes(\"Bitcoin seed\");\nconst HardenedBit = 0x80000000;\n// Returns a byte with the MSB bits set\nfunction getUpperMask(bits) {\n return ((1 << bits) - 1) << (8 - bits);\n}\n// Returns a byte with the LSB bits set\nfunction getLowerMask(bits) {\n return (1 << bits) - 1;\n}\nfunction bytes32(value) {\n return hexZeroPad(hexlify(value), 32);\n}\nfunction base58check(data) {\n return Base58.encode(concat([data, hexDataSlice(sha256(sha256(data)), 0, 4)]));\n}\nfunction getWordlist(wordlist) {\n if (wordlist == null) {\n return wordlists[\"en\"];\n }\n if (typeof (wordlist) === \"string\") {\n const words = wordlists[wordlist];\n if (words == null) {\n logger.throwArgumentError(\"unknown locale\", \"wordlist\", wordlist);\n }\n return words;\n }\n return wordlist;\n}\nconst _constructorGuard = {};\nexport const defaultPath = \"m/44'/60'/0'/0/0\";\n;\nexport class HDNode {\n /**\n * This constructor should not be called directly.\n *\n * Please use:\n * - fromMnemonic\n * - fromSeed\n */\n constructor(constructorGuard, privateKey, publicKey, parentFingerprint, chainCode, index, depth, mnemonicOrPath) {\n /* istanbul ignore if */\n if (constructorGuard !== _constructorGuard) {\n throw new Error(\"HDNode constructor cannot be called directly\");\n }\n if (privateKey) {\n const signingKey = new SigningKey(privateKey);\n defineReadOnly(this, \"privateKey\", signingKey.privateKey);\n defineReadOnly(this, \"publicKey\", signingKey.compressedPublicKey);\n }\n else {\n defineReadOnly(this, \"privateKey\", null);\n defineReadOnly(this, \"publicKey\", hexlify(publicKey));\n }\n defineReadOnly(this, \"parentFingerprint\", parentFingerprint);\n defineReadOnly(this, \"fingerprint\", hexDataSlice(ripemd160(sha256(this.publicKey)), 0, 4));\n defineReadOnly(this, \"address\", computeAddress(this.publicKey));\n defineReadOnly(this, \"chainCode\", chainCode);\n defineReadOnly(this, \"index\", index);\n defineReadOnly(this, \"depth\", depth);\n if (mnemonicOrPath == null) {\n // From a source that does not preserve the path (e.g. extended keys)\n defineReadOnly(this, \"mnemonic\", null);\n defineReadOnly(this, \"path\", null);\n }\n else if (typeof (mnemonicOrPath) === \"string\") {\n // From a source that does not preserve the mnemonic (e.g. neutered)\n defineReadOnly(this, \"mnemonic\", null);\n defineReadOnly(this, \"path\", mnemonicOrPath);\n }\n else {\n // From a fully qualified source\n defineReadOnly(this, \"mnemonic\", mnemonicOrPath);\n defineReadOnly(this, \"path\", mnemonicOrPath.path);\n }\n }\n get extendedKey() {\n // We only support the mainnet values for now, but if anyone needs\n // testnet values, let me know. I believe current sentiment is that\n // we should always use mainnet, and use BIP-44 to derive the network\n // - Mainnet: public=0x0488B21E, private=0x0488ADE4\n // - Testnet: public=0x043587CF, private=0x04358394\n if (this.depth >= 256) {\n throw new Error(\"Depth too large!\");\n }\n return base58check(concat([\n ((this.privateKey != null) ? \"0x0488ADE4\" : \"0x0488B21E\"),\n hexlify(this.depth),\n this.parentFingerprint,\n hexZeroPad(hexlify(this.index), 4),\n this.chainCode,\n ((this.privateKey != null) ? concat([\"0x00\", this.privateKey]) : this.publicKey),\n ]));\n }\n neuter() {\n return new HDNode(_constructorGuard, null, this.publicKey, this.parentFingerprint, this.chainCode, this.index, this.depth, this.path);\n }\n _derive(index) {\n if (index > 0xffffffff) {\n throw new Error(\"invalid index - \" + String(index));\n }\n // Base path\n let path = this.path;\n if (path) {\n path += \"/\" + (index & ~HardenedBit);\n }\n const data = new Uint8Array(37);\n if (index & HardenedBit) {\n if (!this.privateKey) {\n throw new Error(\"cannot derive child of neutered node\");\n }\n // Data = 0x00 || ser_256(k_par)\n data.set(arrayify(this.privateKey), 1);\n // Hardened path\n if (path) {\n path += \"'\";\n }\n }\n else {\n // Data = ser_p(point(k_par))\n data.set(arrayify(this.publicKey));\n }\n // Data += ser_32(i)\n for (let i = 24; i >= 0; i -= 8) {\n data[33 + (i >> 3)] = ((index >> (24 - i)) & 0xff);\n }\n const I = arrayify(computeHmac(SupportedAlgorithm.sha512, this.chainCode, data));\n const IL = I.slice(0, 32);\n const IR = I.slice(32);\n // The private key\n let ki = null;\n // The public key\n let Ki = null;\n if (this.privateKey) {\n ki = bytes32(BigNumber.from(IL).add(this.privateKey).mod(N));\n }\n else {\n const ek = new SigningKey(hexlify(IL));\n Ki = ek._addPoint(this.publicKey);\n }\n let mnemonicOrPath = path;\n const srcMnemonic = this.mnemonic;\n if (srcMnemonic) {\n mnemonicOrPath = Object.freeze({\n phrase: srcMnemonic.phrase,\n path: path,\n locale: (srcMnemonic.locale || \"en\")\n });\n }\n return new HDNode(_constructorGuard, ki, Ki, this.fingerprint, bytes32(IR), index, this.depth + 1, mnemonicOrPath);\n }\n derivePath(path) {\n const components = path.split(\"/\");\n if (components.length === 0 || (components[0] === \"m\" && this.depth !== 0)) {\n throw new Error(\"invalid path - \" + path);\n }\n if (components[0] === \"m\") {\n components.shift();\n }\n let result = this;\n for (let i = 0; i < components.length; i++) {\n const component = components[i];\n if (component.match(/^[0-9]+'$/)) {\n const index = parseInt(component.substring(0, component.length - 1));\n if (index >= HardenedBit) {\n throw new Error(\"invalid path index - \" + component);\n }\n result = result._derive(HardenedBit + index);\n }\n else if (component.match(/^[0-9]+$/)) {\n const index = parseInt(component);\n if (index >= HardenedBit) {\n throw new Error(\"invalid path index - \" + component);\n }\n result = result._derive(index);\n }\n else {\n throw new Error(\"invalid path component - \" + component);\n }\n }\n return result;\n }\n static _fromSeed(seed, mnemonic) {\n const seedArray = arrayify(seed);\n if (seedArray.length < 16 || seedArray.length > 64) {\n throw new Error(\"invalid seed\");\n }\n const I = arrayify(computeHmac(SupportedAlgorithm.sha512, MasterSecret, seedArray));\n return new HDNode(_constructorGuard, bytes32(I.slice(0, 32)), null, \"0x00000000\", bytes32(I.slice(32)), 0, 0, mnemonic);\n }\n static fromMnemonic(mnemonic, password, wordlist) {\n // If a locale name was passed in, find the associated wordlist\n wordlist = getWordlist(wordlist);\n // Normalize the case and spacing in the mnemonic (throws if the mnemonic is invalid)\n mnemonic = entropyToMnemonic(mnemonicToEntropy(mnemonic, wordlist), wordlist);\n return HDNode._fromSeed(mnemonicToSeed(mnemonic, password), {\n phrase: mnemonic,\n path: \"m\",\n locale: wordlist.locale\n });\n }\n static fromSeed(seed) {\n return HDNode._fromSeed(seed, null);\n }\n static fromExtendedKey(extendedKey) {\n const bytes = Base58.decode(extendedKey);\n if (bytes.length !== 82 || base58check(bytes.slice(0, 78)) !== extendedKey) {\n logger.throwArgumentError(\"invalid extended key\", \"extendedKey\", \"[REDACTED]\");\n }\n const depth = bytes[4];\n const parentFingerprint = hexlify(bytes.slice(5, 9));\n const index = parseInt(hexlify(bytes.slice(9, 13)).substring(2), 16);\n const chainCode = hexlify(bytes.slice(13, 45));\n const key = bytes.slice(45, 78);\n switch (hexlify(bytes.slice(0, 4))) {\n // Public Key\n case \"0x0488b21e\":\n case \"0x043587cf\":\n return new HDNode(_constructorGuard, null, hexlify(key), parentFingerprint, chainCode, index, depth, null);\n // Private Key\n case \"0x0488ade4\":\n case \"0x04358394 \":\n if (key[0] !== 0) {\n break;\n }\n return new HDNode(_constructorGuard, hexlify(key.slice(1)), null, parentFingerprint, chainCode, index, depth, null);\n }\n return logger.throwArgumentError(\"invalid extended key\", \"extendedKey\", \"[REDACTED]\");\n }\n}\nexport function mnemonicToSeed(mnemonic, password) {\n if (!password) {\n password = \"\";\n }\n const salt = toUtf8Bytes(\"mnemonic\" + password, UnicodeNormalizationForm.NFKD);\n return pbkdf2(toUtf8Bytes(mnemonic, UnicodeNormalizationForm.NFKD), salt, 2048, 64, \"sha512\");\n}\nexport function mnemonicToEntropy(mnemonic, wordlist) {\n wordlist = getWordlist(wordlist);\n logger.checkNormalize();\n const words = wordlist.split(mnemonic);\n if ((words.length % 3) !== 0) {\n throw new Error(\"invalid mnemonic\");\n }\n const entropy = arrayify(new Uint8Array(Math.ceil(11 * words.length / 8)));\n let offset = 0;\n for (let i = 0; i < words.length; i++) {\n let index = wordlist.getWordIndex(words[i].normalize(\"NFKD\"));\n if (index === -1) {\n throw new Error(\"invalid mnemonic\");\n }\n for (let bit = 0; bit < 11; bit++) {\n if (index & (1 << (10 - bit))) {\n entropy[offset >> 3] |= (1 << (7 - (offset % 8)));\n }\n offset++;\n }\n }\n const entropyBits = 32 * words.length / 3;\n const checksumBits = words.length / 3;\n const checksumMask = getUpperMask(checksumBits);\n const checksum = arrayify(sha256(entropy.slice(0, entropyBits / 8)))[0] & checksumMask;\n if (checksum !== (entropy[entropy.length - 1] & checksumMask)) {\n throw new Error(\"invalid checksum\");\n }\n return hexlify(entropy.slice(0, entropyBits / 8));\n}\nexport function entropyToMnemonic(entropy, wordlist) {\n wordlist = getWordlist(wordlist);\n entropy = arrayify(entropy);\n if ((entropy.length % 4) !== 0 || entropy.length < 16 || entropy.length > 32) {\n throw new Error(\"invalid entropy\");\n }\n const indices = [0];\n let remainingBits = 11;\n for (let i = 0; i < entropy.length; i++) {\n // Consume the whole byte (with still more to go)\n if (remainingBits > 8) {\n indices[indices.length - 1] <<= 8;\n indices[indices.length - 1] |= entropy[i];\n remainingBits -= 8;\n // This byte will complete an 11-bit index\n }\n else {\n indices[indices.length - 1] <<= remainingBits;\n indices[indices.length - 1] |= entropy[i] >> (8 - remainingBits);\n // Start the next word\n indices.push(entropy[i] & getLowerMask(8 - remainingBits));\n remainingBits += 3;\n }\n }\n // Compute the checksum bits\n const checksumBits = entropy.length / 4;\n const checksum = arrayify(sha256(entropy))[0] & getUpperMask(checksumBits);\n // Shift the checksum into the word indices\n indices[indices.length - 1] <<= checksumBits;\n indices[indices.length - 1] |= (checksum >> (8 - checksumBits));\n return wordlist.join(indices.map((index) => wordlist.getWord(index)));\n}\nexport function isValidMnemonic(mnemonic, wordlist) {\n try {\n mnemonicToEntropy(mnemonic, wordlist);\n return true;\n }\n catch (error) { }\n return false;\n}\nexport function getAccountPath(index) {\n if (typeof (index) !== \"number\" || index < 0 || index >= HardenedBit || index % 1) {\n logger.throwArgumentError(\"invalid account index\", \"index\", index);\n }\n return `m/44'/60'/${index}'/0/0`;\n}\n//# sourceMappingURL=index.js.map","export const version = \"hdnode/5.6.2\";\n//# sourceMappingURL=_version.js.map","export const version = \"random/5.6.1\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nimport { arrayify } from \"@ethersproject/bytes\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n// Debugging line for testing browser lib in node\n//const window = { crypto: { getRandomValues: () => { } } };\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/globalThis\nfunction getGlobal() {\n if (typeof self !== 'undefined') {\n return self;\n }\n if (typeof window !== 'undefined') {\n return window;\n }\n if (typeof global !== 'undefined') {\n return global;\n }\n throw new Error('unable to locate global object');\n}\n;\nconst anyGlobal = getGlobal();\nlet crypto = anyGlobal.crypto || anyGlobal.msCrypto;\nif (!crypto || !crypto.getRandomValues) {\n logger.warn(\"WARNING: Missing strong random number source\");\n crypto = {\n getRandomValues: function (buffer) {\n return logger.throwError(\"no secure random source avaialble\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"crypto.getRandomValues\"\n });\n }\n };\n}\nexport function randomBytes(length) {\n if (length <= 0 || length > 1024 || (length % 1) || length != length) {\n logger.throwArgumentError(\"invalid length\", \"length\", length);\n }\n const result = new Uint8Array(length);\n crypto.getRandomValues(result);\n return arrayify(result);\n}\n;\n//# sourceMappingURL=random.js.map","\"use strict\";\nimport { arrayify, hexlify } from \"@ethersproject/bytes\";\nimport { toUtf8Bytes, UnicodeNormalizationForm } from '@ethersproject/strings';\nexport function looseArrayify(hexString) {\n if (typeof (hexString) === 'string' && hexString.substring(0, 2) !== '0x') {\n hexString = '0x' + hexString;\n }\n return arrayify(hexString);\n}\nexport function zpad(value, length) {\n value = String(value);\n while (value.length < length) {\n value = '0' + value;\n }\n return value;\n}\nexport function getPassword(password) {\n if (typeof (password) === 'string') {\n return toUtf8Bytes(password, UnicodeNormalizationForm.NFKC);\n }\n return arrayify(password);\n}\nexport function searchPath(object, path) {\n let currentChild = object;\n const comps = path.toLowerCase().split('/');\n for (let i = 0; i < comps.length; i++) {\n // Search for a child object with a case-insensitive matching key\n let matchingChild = null;\n for (const key in currentChild) {\n if (key.toLowerCase() === comps[i]) {\n matchingChild = currentChild[key];\n break;\n }\n }\n // Didn't find one. :'(\n if (matchingChild === null) {\n return null;\n }\n // Now check this child...\n currentChild = matchingChild;\n }\n return currentChild;\n}\n// See: https://www.ietf.org/rfc/rfc4122.txt (Section 4.4)\nexport function uuidV4(randomBytes) {\n const bytes = arrayify(randomBytes);\n // Section: 4.1.3:\n // - time_hi_and_version[12:16] = 0b0100\n bytes[6] = (bytes[6] & 0x0f) | 0x40;\n // Section 4.4\n // - clock_seq_hi_and_reserved[6] = 0b0\n // - clock_seq_hi_and_reserved[7] = 0b1\n bytes[8] = (bytes[8] & 0x3f) | 0x80;\n const value = hexlify(bytes);\n return [\n value.substring(2, 10),\n value.substring(10, 14),\n value.substring(14, 18),\n value.substring(18, 22),\n value.substring(22, 34),\n ].join(\"-\");\n}\n//# sourceMappingURL=utils.js.map","export const version = \"json-wallets/5.6.1\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport aes from \"aes-js\";\nimport scrypt from \"scrypt-js\";\nimport { getAddress } from \"@ethersproject/address\";\nimport { arrayify, concat, hexlify } from \"@ethersproject/bytes\";\nimport { defaultPath, entropyToMnemonic, HDNode, mnemonicToEntropy } from \"@ethersproject/hdnode\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { pbkdf2 as _pbkdf2 } from \"@ethersproject/pbkdf2\";\nimport { randomBytes } from \"@ethersproject/random\";\nimport { Description } from \"@ethersproject/properties\";\nimport { computeAddress } from \"@ethersproject/transactions\";\nimport { getPassword, looseArrayify, searchPath, uuidV4, zpad } from \"./utils\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n// Exported Types\nfunction hasMnemonic(value) {\n return (value != null && value.mnemonic && value.mnemonic.phrase);\n}\nexport class KeystoreAccount extends Description {\n isKeystoreAccount(value) {\n return !!(value && value._isKeystoreAccount);\n }\n}\nfunction _decrypt(data, key, ciphertext) {\n const cipher = searchPath(data, \"crypto/cipher\");\n if (cipher === \"aes-128-ctr\") {\n const iv = looseArrayify(searchPath(data, \"crypto/cipherparams/iv\"));\n const counter = new aes.Counter(iv);\n const aesCtr = new aes.ModeOfOperation.ctr(key, counter);\n return arrayify(aesCtr.decrypt(ciphertext));\n }\n return null;\n}\nfunction _getAccount(data, key) {\n const ciphertext = looseArrayify(searchPath(data, \"crypto/ciphertext\"));\n const computedMAC = hexlify(keccak256(concat([key.slice(16, 32), ciphertext]))).substring(2);\n if (computedMAC !== searchPath(data, \"crypto/mac\").toLowerCase()) {\n throw new Error(\"invalid password\");\n }\n const privateKey = _decrypt(data, key.slice(0, 16), ciphertext);\n if (!privateKey) {\n logger.throwError(\"unsupported cipher\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"decrypt\"\n });\n }\n const mnemonicKey = key.slice(32, 64);\n const address = computeAddress(privateKey);\n if (data.address) {\n let check = data.address.toLowerCase();\n if (check.substring(0, 2) !== \"0x\") {\n check = \"0x\" + check;\n }\n if (getAddress(check) !== address) {\n throw new Error(\"address mismatch\");\n }\n }\n const account = {\n _isKeystoreAccount: true,\n address: address,\n privateKey: hexlify(privateKey)\n };\n // Version 0.1 x-ethers metadata must contain an encrypted mnemonic phrase\n if (searchPath(data, \"x-ethers/version\") === \"0.1\") {\n const mnemonicCiphertext = looseArrayify(searchPath(data, \"x-ethers/mnemonicCiphertext\"));\n const mnemonicIv = looseArrayify(searchPath(data, \"x-ethers/mnemonicCounter\"));\n const mnemonicCounter = new aes.Counter(mnemonicIv);\n const mnemonicAesCtr = new aes.ModeOfOperation.ctr(mnemonicKey, mnemonicCounter);\n const path = searchPath(data, \"x-ethers/path\") || defaultPath;\n const locale = searchPath(data, \"x-ethers/locale\") || \"en\";\n const entropy = arrayify(mnemonicAesCtr.decrypt(mnemonicCiphertext));\n try {\n const mnemonic = entropyToMnemonic(entropy, locale);\n const node = HDNode.fromMnemonic(mnemonic, null, locale).derivePath(path);\n if (node.privateKey != account.privateKey) {\n throw new Error(\"mnemonic mismatch\");\n }\n account.mnemonic = node.mnemonic;\n }\n catch (error) {\n // If we don't have the locale wordlist installed to\n // read this mnemonic, just bail and don't set the\n // mnemonic\n if (error.code !== Logger.errors.INVALID_ARGUMENT || error.argument !== \"wordlist\") {\n throw error;\n }\n }\n }\n return new KeystoreAccount(account);\n}\nfunction pbkdf2Sync(passwordBytes, salt, count, dkLen, prfFunc) {\n return arrayify(_pbkdf2(passwordBytes, salt, count, dkLen, prfFunc));\n}\nfunction pbkdf2(passwordBytes, salt, count, dkLen, prfFunc) {\n return Promise.resolve(pbkdf2Sync(passwordBytes, salt, count, dkLen, prfFunc));\n}\nfunction _computeKdfKey(data, password, pbkdf2Func, scryptFunc, progressCallback) {\n const passwordBytes = getPassword(password);\n const kdf = searchPath(data, \"crypto/kdf\");\n if (kdf && typeof (kdf) === \"string\") {\n const throwError = function (name, value) {\n return logger.throwArgumentError(\"invalid key-derivation function parameters\", name, value);\n };\n if (kdf.toLowerCase() === \"scrypt\") {\n const salt = looseArrayify(searchPath(data, \"crypto/kdfparams/salt\"));\n const N = parseInt(searchPath(data, \"crypto/kdfparams/n\"));\n const r = parseInt(searchPath(data, \"crypto/kdfparams/r\"));\n const p = parseInt(searchPath(data, \"crypto/kdfparams/p\"));\n // Check for all required parameters\n if (!N || !r || !p) {\n throwError(\"kdf\", kdf);\n }\n // Make sure N is a power of 2\n if ((N & (N - 1)) !== 0) {\n throwError(\"N\", N);\n }\n const dkLen = parseInt(searchPath(data, \"crypto/kdfparams/dklen\"));\n if (dkLen !== 32) {\n throwError(\"dklen\", dkLen);\n }\n return scryptFunc(passwordBytes, salt, N, r, p, 64, progressCallback);\n }\n else if (kdf.toLowerCase() === \"pbkdf2\") {\n const salt = looseArrayify(searchPath(data, \"crypto/kdfparams/salt\"));\n let prfFunc = null;\n const prf = searchPath(data, \"crypto/kdfparams/prf\");\n if (prf === \"hmac-sha256\") {\n prfFunc = \"sha256\";\n }\n else if (prf === \"hmac-sha512\") {\n prfFunc = \"sha512\";\n }\n else {\n throwError(\"prf\", prf);\n }\n const count = parseInt(searchPath(data, \"crypto/kdfparams/c\"));\n const dkLen = parseInt(searchPath(data, \"crypto/kdfparams/dklen\"));\n if (dkLen !== 32) {\n throwError(\"dklen\", dkLen);\n }\n return pbkdf2Func(passwordBytes, salt, count, dkLen, prfFunc);\n }\n }\n return logger.throwArgumentError(\"unsupported key-derivation function\", \"kdf\", kdf);\n}\nexport function decryptSync(json, password) {\n const data = JSON.parse(json);\n const key = _computeKdfKey(data, password, pbkdf2Sync, scrypt.syncScrypt);\n return _getAccount(data, key);\n}\nexport function decrypt(json, password, progressCallback) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.parse(json);\n const key = yield _computeKdfKey(data, password, pbkdf2, scrypt.scrypt, progressCallback);\n return _getAccount(data, key);\n });\n}\nexport function encrypt(account, password, options, progressCallback) {\n try {\n // Check the address matches the private key\n if (getAddress(account.address) !== computeAddress(account.privateKey)) {\n throw new Error(\"address/privateKey mismatch\");\n }\n // Check the mnemonic (if any) matches the private key\n if (hasMnemonic(account)) {\n const mnemonic = account.mnemonic;\n const node = HDNode.fromMnemonic(mnemonic.phrase, null, mnemonic.locale).derivePath(mnemonic.path || defaultPath);\n if (node.privateKey != account.privateKey) {\n throw new Error(\"mnemonic mismatch\");\n }\n }\n }\n catch (e) {\n return Promise.reject(e);\n }\n // The options are optional, so adjust the call as needed\n if (typeof (options) === \"function\" && !progressCallback) {\n progressCallback = options;\n options = {};\n }\n if (!options) {\n options = {};\n }\n const privateKey = arrayify(account.privateKey);\n const passwordBytes = getPassword(password);\n let entropy = null;\n let path = null;\n let locale = null;\n if (hasMnemonic(account)) {\n const srcMnemonic = account.mnemonic;\n entropy = arrayify(mnemonicToEntropy(srcMnemonic.phrase, srcMnemonic.locale || \"en\"));\n path = srcMnemonic.path || defaultPath;\n locale = srcMnemonic.locale || \"en\";\n }\n let client = options.client;\n if (!client) {\n client = \"ethers.js\";\n }\n // Check/generate the salt\n let salt = null;\n if (options.salt) {\n salt = arrayify(options.salt);\n }\n else {\n salt = randomBytes(32);\n ;\n }\n // Override initialization vector\n let iv = null;\n if (options.iv) {\n iv = arrayify(options.iv);\n if (iv.length !== 16) {\n throw new Error(\"invalid iv\");\n }\n }\n else {\n iv = randomBytes(16);\n }\n // Override the uuid\n let uuidRandom = null;\n if (options.uuid) {\n uuidRandom = arrayify(options.uuid);\n if (uuidRandom.length !== 16) {\n throw new Error(\"invalid uuid\");\n }\n }\n else {\n uuidRandom = randomBytes(16);\n }\n // Override the scrypt password-based key derivation function parameters\n let N = (1 << 17), r = 8, p = 1;\n if (options.scrypt) {\n if (options.scrypt.N) {\n N = options.scrypt.N;\n }\n if (options.scrypt.r) {\n r = options.scrypt.r;\n }\n if (options.scrypt.p) {\n p = options.scrypt.p;\n }\n }\n // We take 64 bytes:\n // - 32 bytes As normal for the Web3 secret storage (derivedKey, macPrefix)\n // - 32 bytes AES key to encrypt mnemonic with (required here to be Ethers Wallet)\n return scrypt.scrypt(passwordBytes, salt, N, r, p, 64, progressCallback).then((key) => {\n key = arrayify(key);\n // This will be used to encrypt the wallet (as per Web3 secret storage)\n const derivedKey = key.slice(0, 16);\n const macPrefix = key.slice(16, 32);\n // This will be used to encrypt the mnemonic phrase (if any)\n const mnemonicKey = key.slice(32, 64);\n // Encrypt the private key\n const counter = new aes.Counter(iv);\n const aesCtr = new aes.ModeOfOperation.ctr(derivedKey, counter);\n const ciphertext = arrayify(aesCtr.encrypt(privateKey));\n // Compute the message authentication code, used to check the password\n const mac = keccak256(concat([macPrefix, ciphertext]));\n // See: https://github.com/ethereum/wiki/wiki/Web3-Secret-Storage-Definition\n const data = {\n address: account.address.substring(2).toLowerCase(),\n id: uuidV4(uuidRandom),\n version: 3,\n Crypto: {\n cipher: \"aes-128-ctr\",\n cipherparams: {\n iv: hexlify(iv).substring(2),\n },\n ciphertext: hexlify(ciphertext).substring(2),\n kdf: \"scrypt\",\n kdfparams: {\n salt: hexlify(salt).substring(2),\n n: N,\n dklen: 32,\n p: p,\n r: r\n },\n mac: mac.substring(2)\n }\n };\n // If we have a mnemonic, encrypt it into the JSON wallet\n if (entropy) {\n const mnemonicIv = randomBytes(16);\n const mnemonicCounter = new aes.Counter(mnemonicIv);\n const mnemonicAesCtr = new aes.ModeOfOperation.ctr(mnemonicKey, mnemonicCounter);\n const mnemonicCiphertext = arrayify(mnemonicAesCtr.encrypt(entropy));\n const now = new Date();\n const timestamp = (now.getUTCFullYear() + \"-\" +\n zpad(now.getUTCMonth() + 1, 2) + \"-\" +\n zpad(now.getUTCDate(), 2) + \"T\" +\n zpad(now.getUTCHours(), 2) + \"-\" +\n zpad(now.getUTCMinutes(), 2) + \"-\" +\n zpad(now.getUTCSeconds(), 2) + \".0Z\");\n data[\"x-ethers\"] = {\n client: client,\n gethFilename: (\"UTC--\" + timestamp + \"--\" + data.address),\n mnemonicCounter: hexlify(mnemonicIv).substring(2),\n mnemonicCiphertext: hexlify(mnemonicCiphertext).substring(2),\n path: path,\n locale: locale,\n version: \"0.1\"\n };\n }\n return JSON.stringify(data);\n });\n}\n//# sourceMappingURL=keystore.js.map","\"use strict\";\nimport aes from \"aes-js\";\nimport { getAddress } from \"@ethersproject/address\";\nimport { arrayify } from \"@ethersproject/bytes\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { pbkdf2 } from \"@ethersproject/pbkdf2\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\nimport { Description } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { getPassword, looseArrayify, searchPath } from \"./utils\";\nexport class CrowdsaleAccount extends Description {\n isCrowdsaleAccount(value) {\n return !!(value && value._isCrowdsaleAccount);\n }\n}\n// See: https://github.com/ethereum/pyethsaletool\nexport function decrypt(json, password) {\n const data = JSON.parse(json);\n password = getPassword(password);\n // Ethereum Address\n const ethaddr = getAddress(searchPath(data, \"ethaddr\"));\n // Encrypted Seed\n const encseed = looseArrayify(searchPath(data, \"encseed\"));\n if (!encseed || (encseed.length % 16) !== 0) {\n logger.throwArgumentError(\"invalid encseed\", \"json\", json);\n }\n const key = arrayify(pbkdf2(password, password, 2000, 32, \"sha256\")).slice(0, 16);\n const iv = encseed.slice(0, 16);\n const encryptedSeed = encseed.slice(16);\n // Decrypt the seed\n const aesCbc = new aes.ModeOfOperation.cbc(key, iv);\n const seed = aes.padding.pkcs7.strip(arrayify(aesCbc.decrypt(encryptedSeed)));\n // This wallet format is weird... Convert the binary encoded hex to a string.\n let seedHex = \"\";\n for (let i = 0; i < seed.length; i++) {\n seedHex += String.fromCharCode(seed[i]);\n }\n const seedHexBytes = toUtf8Bytes(seedHex);\n const privateKey = keccak256(seedHexBytes);\n return new CrowdsaleAccount({\n _isCrowdsaleAccount: true,\n address: ethaddr,\n privateKey: privateKey\n });\n}\n//# sourceMappingURL=crowdsale.js.map","\"use strict\";\nimport { getAddress } from \"@ethersproject/address\";\nexport function isCrowdsaleWallet(json) {\n let data = null;\n try {\n data = JSON.parse(json);\n }\n catch (error) {\n return false;\n }\n return (data.encseed && data.ethaddr);\n}\nexport function isKeystoreWallet(json) {\n let data = null;\n try {\n data = JSON.parse(json);\n }\n catch (error) {\n return false;\n }\n if (!data.version || parseInt(data.version) !== data.version || parseInt(data.version) !== 3) {\n return false;\n }\n // @TODO: Put more checks to make sure it has kdf, iv and all that good stuff\n return true;\n}\n//export function isJsonWallet(json: string): boolean {\n// return (isSecretStorageWallet(json) || isCrowdsaleWallet(json));\n//}\nexport function getJsonWalletAddress(json) {\n if (isCrowdsaleWallet(json)) {\n try {\n return getAddress(JSON.parse(json).ethaddr);\n }\n catch (error) {\n return null;\n }\n }\n if (isKeystoreWallet(json)) {\n try {\n return getAddress(JSON.parse(json).address);\n }\n catch (error) {\n return null;\n }\n }\n return null;\n}\n//# sourceMappingURL=inspect.js.map","\"use strict\";\nimport { decrypt as decryptCrowdsale } from \"./crowdsale\";\nimport { getJsonWalletAddress, isCrowdsaleWallet, isKeystoreWallet } from \"./inspect\";\nimport { decrypt as decryptKeystore, decryptSync as decryptKeystoreSync, encrypt as encryptKeystore } from \"./keystore\";\nfunction decryptJsonWallet(json, password, progressCallback) {\n if (isCrowdsaleWallet(json)) {\n if (progressCallback) {\n progressCallback(0);\n }\n const account = decryptCrowdsale(json, password);\n if (progressCallback) {\n progressCallback(1);\n }\n return Promise.resolve(account);\n }\n if (isKeystoreWallet(json)) {\n return decryptKeystore(json, password, progressCallback);\n }\n return Promise.reject(new Error(\"invalid JSON wallet\"));\n}\nfunction decryptJsonWalletSync(json, password) {\n if (isCrowdsaleWallet(json)) {\n return decryptCrowdsale(json, password);\n }\n if (isKeystoreWallet(json)) {\n return decryptKeystoreSync(json, password);\n }\n throw new Error(\"invalid JSON wallet\");\n}\nexport { decryptCrowdsale, decryptKeystore, decryptKeystoreSync, encryptKeystore, isCrowdsaleWallet, isKeystoreWallet, getJsonWalletAddress, decryptJsonWallet, decryptJsonWalletSync, };\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { getAddress } from \"@ethersproject/address\";\nimport { Provider } from \"@ethersproject/abstract-provider\";\nimport { Signer } from \"@ethersproject/abstract-signer\";\nimport { arrayify, concat, hexDataSlice, isHexString, joinSignature } from \"@ethersproject/bytes\";\nimport { hashMessage, _TypedDataEncoder } from \"@ethersproject/hash\";\nimport { defaultPath, HDNode, entropyToMnemonic } from \"@ethersproject/hdnode\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { defineReadOnly, resolveProperties } from \"@ethersproject/properties\";\nimport { randomBytes } from \"@ethersproject/random\";\nimport { SigningKey } from \"@ethersproject/signing-key\";\nimport { decryptJsonWallet, decryptJsonWalletSync, encryptKeystore } from \"@ethersproject/json-wallets\";\nimport { computeAddress, recoverAddress, serialize } from \"@ethersproject/transactions\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nfunction isAccount(value) {\n return (value != null && isHexString(value.privateKey, 32) && value.address != null);\n}\nfunction hasMnemonic(value) {\n const mnemonic = value.mnemonic;\n return (mnemonic && mnemonic.phrase);\n}\nexport class Wallet extends Signer {\n constructor(privateKey, provider) {\n super();\n if (isAccount(privateKey)) {\n const signingKey = new SigningKey(privateKey.privateKey);\n defineReadOnly(this, \"_signingKey\", () => signingKey);\n defineReadOnly(this, \"address\", computeAddress(this.publicKey));\n if (this.address !== getAddress(privateKey.address)) {\n logger.throwArgumentError(\"privateKey/address mismatch\", \"privateKey\", \"[REDACTED]\");\n }\n if (hasMnemonic(privateKey)) {\n const srcMnemonic = privateKey.mnemonic;\n defineReadOnly(this, \"_mnemonic\", () => ({\n phrase: srcMnemonic.phrase,\n path: srcMnemonic.path || defaultPath,\n locale: srcMnemonic.locale || \"en\"\n }));\n const mnemonic = this.mnemonic;\n const node = HDNode.fromMnemonic(mnemonic.phrase, null, mnemonic.locale).derivePath(mnemonic.path);\n if (computeAddress(node.privateKey) !== this.address) {\n logger.throwArgumentError(\"mnemonic/address mismatch\", \"privateKey\", \"[REDACTED]\");\n }\n }\n else {\n defineReadOnly(this, \"_mnemonic\", () => null);\n }\n }\n else {\n if (SigningKey.isSigningKey(privateKey)) {\n /* istanbul ignore if */\n if (privateKey.curve !== \"secp256k1\") {\n logger.throwArgumentError(\"unsupported curve; must be secp256k1\", \"privateKey\", \"[REDACTED]\");\n }\n defineReadOnly(this, \"_signingKey\", () => privateKey);\n }\n else {\n // A lot of common tools do not prefix private keys with a 0x (see: #1166)\n if (typeof (privateKey) === \"string\") {\n if (privateKey.match(/^[0-9a-f]*$/i) && privateKey.length === 64) {\n privateKey = \"0x\" + privateKey;\n }\n }\n const signingKey = new SigningKey(privateKey);\n defineReadOnly(this, \"_signingKey\", () => signingKey);\n }\n defineReadOnly(this, \"_mnemonic\", () => null);\n defineReadOnly(this, \"address\", computeAddress(this.publicKey));\n }\n /* istanbul ignore if */\n if (provider && !Provider.isProvider(provider)) {\n logger.throwArgumentError(\"invalid provider\", \"provider\", provider);\n }\n defineReadOnly(this, \"provider\", provider || null);\n }\n get mnemonic() { return this._mnemonic(); }\n get privateKey() { return this._signingKey().privateKey; }\n get publicKey() { return this._signingKey().publicKey; }\n getAddress() {\n return Promise.resolve(this.address);\n }\n connect(provider) {\n return new Wallet(this, provider);\n }\n signTransaction(transaction) {\n return resolveProperties(transaction).then((tx) => {\n if (tx.from != null) {\n if (getAddress(tx.from) !== this.address) {\n logger.throwArgumentError(\"transaction from address mismatch\", \"transaction.from\", transaction.from);\n }\n delete tx.from;\n }\n const signature = this._signingKey().signDigest(keccak256(serialize(tx)));\n return serialize(tx, signature);\n });\n }\n signMessage(message) {\n return __awaiter(this, void 0, void 0, function* () {\n return joinSignature(this._signingKey().signDigest(hashMessage(message)));\n });\n }\n _signTypedData(domain, types, value) {\n return __awaiter(this, void 0, void 0, function* () {\n // Populate any ENS names\n const populated = yield _TypedDataEncoder.resolveNames(domain, types, value, (name) => {\n if (this.provider == null) {\n logger.throwError(\"cannot resolve ENS names without a provider\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"resolveName\",\n value: name\n });\n }\n return this.provider.resolveName(name);\n });\n return joinSignature(this._signingKey().signDigest(_TypedDataEncoder.hash(populated.domain, types, populated.value)));\n });\n }\n encrypt(password, options, progressCallback) {\n if (typeof (options) === \"function\" && !progressCallback) {\n progressCallback = options;\n options = {};\n }\n if (progressCallback && typeof (progressCallback) !== \"function\") {\n throw new Error(\"invalid callback\");\n }\n if (!options) {\n options = {};\n }\n return encryptKeystore(this, password, options, progressCallback);\n }\n /**\n * Static methods to create Wallet instances.\n */\n static createRandom(options) {\n let entropy = randomBytes(16);\n if (!options) {\n options = {};\n }\n if (options.extraEntropy) {\n entropy = arrayify(hexDataSlice(keccak256(concat([entropy, options.extraEntropy])), 0, 16));\n }\n const mnemonic = entropyToMnemonic(entropy, options.locale);\n return Wallet.fromMnemonic(mnemonic, options.path, options.locale);\n }\n static fromEncryptedJson(json, password, progressCallback) {\n return decryptJsonWallet(json, password, progressCallback).then((account) => {\n return new Wallet(account);\n });\n }\n static fromEncryptedJsonSync(json, password) {\n return new Wallet(decryptJsonWalletSync(json, password));\n }\n static fromMnemonic(mnemonic, path, wordlist) {\n if (!path) {\n path = defaultPath;\n }\n return new Wallet(HDNode.fromMnemonic(mnemonic, null, wordlist).derivePath(path));\n }\n}\nexport function verifyMessage(message, signature) {\n return recoverAddress(hashMessage(message), signature);\n}\nexport function verifyTypedData(domain, types, value, signature) {\n return recoverAddress(_TypedDataEncoder.hash(domain, types, value), signature);\n}\n//# sourceMappingURL=index.js.map","export const version = \"wallet/5.6.2\";\n//# sourceMappingURL=_version.js.map","export const AddressZero = \"0x0000000000000000000000000000000000000000\";\n//# sourceMappingURL=addresses.js.map","export const HashZero = \"0x0000000000000000000000000000000000000000000000000000000000000000\";\n//# sourceMappingURL=hashes.js.map","// NFKC (composed) // (decomposed)\nexport const EtherSymbol = \"\\u039e\"; // \"\\uD835\\uDF63\";\n//# sourceMappingURL=strings.js.map","\"use strict\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n;\nfunction isRenetworkable(value) {\n return (value && typeof (value.renetwork) === \"function\");\n}\nfunction ethDefaultProvider(network) {\n const func = function (providers, options) {\n if (options == null) {\n options = {};\n }\n const providerList = [];\n if (providers.InfuraProvider && options.infura !== \"-\") {\n try {\n providerList.push(new providers.InfuraProvider(network, options.infura));\n }\n catch (error) { }\n }\n if (providers.EtherscanProvider && options.etherscan !== \"-\") {\n try {\n providerList.push(new providers.EtherscanProvider(network, options.etherscan));\n }\n catch (error) { }\n }\n if (providers.AlchemyProvider && options.alchemy !== \"-\") {\n try {\n providerList.push(new providers.AlchemyProvider(network, options.alchemy));\n }\n catch (error) { }\n }\n if (providers.PocketProvider && options.pocket !== \"-\") {\n // These networks are currently faulty on Pocket as their\n // network does not handle the Berlin hardfork, which is\n // live on these ones.\n // @TODO: This goes away once Pocket has upgraded their nodes\n const skip = [\"goerli\", \"ropsten\", \"rinkeby\"];\n try {\n const provider = new providers.PocketProvider(network, options.pocket);\n if (provider.network && skip.indexOf(provider.network.name) === -1) {\n providerList.push(provider);\n }\n }\n catch (error) { }\n }\n if (providers.CloudflareProvider && options.cloudflare !== \"-\") {\n try {\n providerList.push(new providers.CloudflareProvider(network));\n }\n catch (error) { }\n }\n if (providers.AnkrProvider && options.ankr !== \"-\") {\n try {\n const skip = [\"ropsten\"];\n const provider = new providers.AnkrProvider(network, options.ankr);\n if (provider.network && skip.indexOf(provider.network.name) === -1) {\n providerList.push(provider);\n }\n }\n catch (error) { }\n }\n if (providerList.length === 0) {\n return null;\n }\n if (providers.FallbackProvider) {\n let quorum = 1;\n if (options.quorum != null) {\n quorum = options.quorum;\n }\n else if (network === \"homestead\") {\n quorum = 2;\n }\n return new providers.FallbackProvider(providerList, quorum);\n }\n return providerList[0];\n };\n func.renetwork = function (network) {\n return ethDefaultProvider(network);\n };\n return func;\n}\nfunction etcDefaultProvider(url, network) {\n const func = function (providers, options) {\n if (providers.JsonRpcProvider) {\n return new providers.JsonRpcProvider(url, network);\n }\n return null;\n };\n func.renetwork = function (network) {\n return etcDefaultProvider(url, network);\n };\n return func;\n}\nconst homestead = {\n chainId: 1,\n ensAddress: \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\",\n name: \"homestead\",\n _defaultProvider: ethDefaultProvider(\"homestead\")\n};\nconst ropsten = {\n chainId: 3,\n ensAddress: \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\",\n name: \"ropsten\",\n _defaultProvider: ethDefaultProvider(\"ropsten\")\n};\nconst classicMordor = {\n chainId: 63,\n name: \"classicMordor\",\n _defaultProvider: etcDefaultProvider(\"https://www.ethercluster.com/mordor\", \"classicMordor\")\n};\n// See: https://chainlist.org\nconst networks = {\n unspecified: { chainId: 0, name: \"unspecified\" },\n homestead: homestead,\n mainnet: homestead,\n morden: { chainId: 2, name: \"morden\" },\n ropsten: ropsten,\n testnet: ropsten,\n rinkeby: {\n chainId: 4,\n ensAddress: \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\",\n name: \"rinkeby\",\n _defaultProvider: ethDefaultProvider(\"rinkeby\")\n },\n kovan: {\n chainId: 42,\n name: \"kovan\",\n _defaultProvider: ethDefaultProvider(\"kovan\")\n },\n goerli: {\n chainId: 5,\n ensAddress: \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\",\n name: \"goerli\",\n _defaultProvider: ethDefaultProvider(\"goerli\")\n },\n kintsugi: { chainId: 1337702, name: \"kintsugi\" },\n // ETC (See: #351)\n classic: {\n chainId: 61,\n name: \"classic\",\n _defaultProvider: etcDefaultProvider(\"https:/\\/www.ethercluster.com/etc\", \"classic\")\n },\n classicMorden: { chainId: 62, name: \"classicMorden\" },\n classicMordor: classicMordor,\n classicTestnet: classicMordor,\n classicKotti: {\n chainId: 6,\n name: \"classicKotti\",\n _defaultProvider: etcDefaultProvider(\"https:/\\/www.ethercluster.com/kotti\", \"classicKotti\")\n },\n xdai: { chainId: 100, name: \"xdai\" },\n matic: {\n chainId: 137,\n name: \"matic\",\n _defaultProvider: ethDefaultProvider(\"matic\")\n },\n maticmum: { chainId: 80001, name: \"maticmum\" },\n optimism: {\n chainId: 10,\n name: \"optimism\",\n _defaultProvider: ethDefaultProvider(\"optimism\")\n },\n \"optimism-kovan\": { chainId: 69, name: \"optimism-kovan\" },\n \"optimism-goerli\": { chainId: 420, name: \"optimism-goerli\" },\n arbitrum: { chainId: 42161, name: \"arbitrum\" },\n \"arbitrum-rinkeby\": { chainId: 421611, name: \"arbitrum-rinkeby\" },\n bnb: { chainId: 56, name: \"bnb\" },\n bnbt: { chainId: 97, name: \"bnbt\" },\n};\n/**\n * getNetwork\n *\n * Converts a named common networks or chain ID (network ID) to a Network\n * and verifies a network is a valid Network..\n */\nexport function getNetwork(network) {\n // No network (null)\n if (network == null) {\n return null;\n }\n if (typeof (network) === \"number\") {\n for (const name in networks) {\n const standard = networks[name];\n if (standard.chainId === network) {\n return {\n name: standard.name,\n chainId: standard.chainId,\n ensAddress: (standard.ensAddress || null),\n _defaultProvider: (standard._defaultProvider || null)\n };\n }\n }\n return {\n chainId: network,\n name: \"unknown\"\n };\n }\n if (typeof (network) === \"string\") {\n const standard = networks[network];\n if (standard == null) {\n return null;\n }\n return {\n name: standard.name,\n chainId: standard.chainId,\n ensAddress: standard.ensAddress,\n _defaultProvider: (standard._defaultProvider || null)\n };\n }\n const standard = networks[network.name];\n // Not a standard network; check that it is a valid network in general\n if (!standard) {\n if (typeof (network.chainId) !== \"number\") {\n logger.throwArgumentError(\"invalid network chainId\", \"network\", network);\n }\n return network;\n }\n // Make sure the chainId matches the expected network chainId (or is 0; disable EIP-155)\n if (network.chainId !== 0 && network.chainId !== standard.chainId) {\n logger.throwArgumentError(\"network chainId mismatch\", \"network\", network);\n }\n // @TODO: In the next major version add an attach function to a defaultProvider\n // class and move the _defaultProvider internal to this file (extend Network)\n let defaultProvider = network._defaultProvider || null;\n if (defaultProvider == null && standard._defaultProvider) {\n if (isRenetworkable(standard._defaultProvider)) {\n defaultProvider = standard._defaultProvider.renetwork(network);\n }\n else {\n defaultProvider = standard._defaultProvider;\n }\n }\n // Standard Network (allow overriding the ENS address)\n return {\n name: network.name,\n chainId: standard.chainId,\n ensAddress: (network.ensAddress || standard.ensAddress || null),\n _defaultProvider: defaultProvider\n };\n}\n//# sourceMappingURL=index.js.map","export const version = \"networks/5.6.4\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nimport { arrayify } from \"@ethersproject/bytes\";\nexport function decode(textData) {\n textData = atob(textData);\n const data = [];\n for (let i = 0; i < textData.length; i++) {\n data.push(textData.charCodeAt(i));\n }\n return arrayify(data);\n}\nexport function encode(data) {\n data = arrayify(data);\n let textData = \"\";\n for (let i = 0; i < data.length; i++) {\n textData += String.fromCharCode(data[i]);\n }\n return btoa(textData);\n}\n//# sourceMappingURL=base64.js.map","\"use strict\";\nimport { toUtf8CodePoints, _toUtf8String, UnicodeNormalizationForm } from \"./utf8\";\nfunction bytes2(data) {\n if ((data.length % 4) !== 0) {\n throw new Error(\"bad data\");\n }\n let result = [];\n for (let i = 0; i < data.length; i += 4) {\n result.push(parseInt(data.substring(i, i + 4), 16));\n }\n return result;\n}\nfunction createTable(data, func) {\n if (!func) {\n func = function (value) { return [parseInt(value, 16)]; };\n }\n let lo = 0;\n let result = {};\n data.split(\",\").forEach((pair) => {\n let comps = pair.split(\":\");\n lo += parseInt(comps[0], 16);\n result[lo] = func(comps[1]);\n });\n return result;\n}\nfunction createRangeTable(data) {\n let hi = 0;\n return data.split(\",\").map((v) => {\n let comps = v.split(\"-\");\n if (comps.length === 1) {\n comps[1] = \"0\";\n }\n else if (comps[1] === \"\") {\n comps[1] = \"1\";\n }\n let lo = hi + parseInt(comps[0], 16);\n hi = parseInt(comps[1], 16);\n return { l: lo, h: hi };\n });\n}\nfunction matchMap(value, ranges) {\n let lo = 0;\n for (let i = 0; i < ranges.length; i++) {\n let range = ranges[i];\n lo += range.l;\n if (value >= lo && value <= lo + range.h && ((value - lo) % (range.d || 1)) === 0) {\n if (range.e && range.e.indexOf(value - lo) !== -1) {\n continue;\n }\n return range;\n }\n }\n return null;\n}\nconst Table_A_1_ranges = createRangeTable(\"221,13-1b,5f-,40-10,51-f,11-3,3-3,2-2,2-4,8,2,15,2d,28-8,88,48,27-,3-5,11-20,27-,8,28,3-5,12,18,b-a,1c-4,6-16,2-d,2-2,2,1b-4,17-9,8f-,10,f,1f-2,1c-34,33-14e,4,36-,13-,6-2,1a-f,4,9-,3-,17,8,2-2,5-,2,8-,3-,4-8,2-3,3,6-,16-6,2-,7-3,3-,17,8,3,3,3-,2,6-3,3-,4-a,5,2-6,10-b,4,8,2,4,17,8,3,6-,b,4,4-,2-e,2-4,b-10,4,9-,3-,17,8,3-,5-,9-2,3-,4-7,3-3,3,4-3,c-10,3,7-2,4,5-2,3,2,3-2,3-2,4-2,9,4-3,6-2,4,5-8,2-e,d-d,4,9,4,18,b,6-3,8,4,5-6,3-8,3-3,b-11,3,9,4,18,b,6-3,8,4,5-6,3-6,2,3-3,b-11,3,9,4,18,11-3,7-,4,5-8,2-7,3-3,b-11,3,13-2,19,a,2-,8-2,2-3,7,2,9-11,4-b,3b-3,1e-24,3,2-,3,2-,2-5,5,8,4,2,2-,3,e,4-,6,2,7-,b-,3-21,49,23-5,1c-3,9,25,10-,2-2f,23,6,3,8-2,5-5,1b-45,27-9,2a-,2-3,5b-4,45-4,53-5,8,40,2,5-,8,2,5-,28,2,5-,20,2,5-,8,2,5-,8,8,18,20,2,5-,8,28,14-5,1d-22,56-b,277-8,1e-2,52-e,e,8-a,18-8,15-b,e,4,3-b,5e-2,b-15,10,b-5,59-7,2b-555,9d-3,5b-5,17-,7-,27-,7-,9,2,2,2,20-,36,10,f-,7,14-,4,a,54-3,2-6,6-5,9-,1c-10,13-1d,1c-14,3c-,10-6,32-b,240-30,28-18,c-14,a0,115-,3,66-,b-76,5,5-,1d,24,2,5-2,2,8-,35-2,19,f-10,1d-3,311-37f,1b,5a-b,d7-19,d-3,41,57-,68-4,29-3,5f,29-37,2e-2,25-c,2c-2,4e-3,30,78-3,64-,20,19b7-49,51a7-59,48e-2,38-738,2ba5-5b,222f-,3c-94,8-b,6-4,1b,6,2,3,3,6d-20,16e-f,41-,37-7,2e-2,11-f,5-b,18-,b,14,5-3,6,88-,2,bf-2,7-,7-,7-,4-2,8,8-9,8-2ff,20,5-b,1c-b4,27-,27-cbb1,f7-9,28-2,b5-221,56,48,3-,2-,3-,5,d,2,5,3,42,5-,9,8,1d,5,6,2-2,8,153-3,123-3,33-27fd,a6da-5128,21f-5df,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3,2-1d,61-ff7d\");\n// @TODO: Make this relative...\nconst Table_B_1_flags = \"ad,34f,1806,180b,180c,180d,200b,200c,200d,2060,feff\".split(\",\").map((v) => parseInt(v, 16));\nconst Table_B_2_ranges = [\n { h: 25, s: 32, l: 65 },\n { h: 30, s: 32, e: [23], l: 127 },\n { h: 54, s: 1, e: [48], l: 64, d: 2 },\n { h: 14, s: 1, l: 57, d: 2 },\n { h: 44, s: 1, l: 17, d: 2 },\n { h: 10, s: 1, e: [2, 6, 8], l: 61, d: 2 },\n { h: 16, s: 1, l: 68, d: 2 },\n { h: 84, s: 1, e: [18, 24, 66], l: 19, d: 2 },\n { h: 26, s: 32, e: [17], l: 435 },\n { h: 22, s: 1, l: 71, d: 2 },\n { h: 15, s: 80, l: 40 },\n { h: 31, s: 32, l: 16 },\n { h: 32, s: 1, l: 80, d: 2 },\n { h: 52, s: 1, l: 42, d: 2 },\n { h: 12, s: 1, l: 55, d: 2 },\n { h: 40, s: 1, e: [38], l: 15, d: 2 },\n { h: 14, s: 1, l: 48, d: 2 },\n { h: 37, s: 48, l: 49 },\n { h: 148, s: 1, l: 6351, d: 2 },\n { h: 88, s: 1, l: 160, d: 2 },\n { h: 15, s: 16, l: 704 },\n { h: 25, s: 26, l: 854 },\n { h: 25, s: 32, l: 55915 },\n { h: 37, s: 40, l: 1247 },\n { h: 25, s: -119711, l: 53248 },\n { h: 25, s: -119763, l: 52 },\n { h: 25, s: -119815, l: 52 },\n { h: 25, s: -119867, e: [1, 4, 5, 7, 8, 11, 12, 17], l: 52 },\n { h: 25, s: -119919, l: 52 },\n { h: 24, s: -119971, e: [2, 7, 8, 17], l: 52 },\n { h: 24, s: -120023, e: [2, 7, 13, 15, 16, 17], l: 52 },\n { h: 25, s: -120075, l: 52 },\n { h: 25, s: -120127, l: 52 },\n { h: 25, s: -120179, l: 52 },\n { h: 25, s: -120231, l: 52 },\n { h: 25, s: -120283, l: 52 },\n { h: 25, s: -120335, l: 52 },\n { h: 24, s: -119543, e: [17], l: 56 },\n { h: 24, s: -119601, e: [17], l: 58 },\n { h: 24, s: -119659, e: [17], l: 58 },\n { h: 24, s: -119717, e: [17], l: 58 },\n { h: 24, s: -119775, e: [17], l: 58 }\n];\nconst Table_B_2_lut_abs = createTable(\"b5:3bc,c3:ff,7:73,2:253,5:254,3:256,1:257,5:259,1:25b,3:260,1:263,2:269,1:268,5:26f,1:272,2:275,7:280,3:283,5:288,3:28a,1:28b,5:292,3f:195,1:1bf,29:19e,125:3b9,8b:3b2,1:3b8,1:3c5,3:3c6,1:3c0,1a:3ba,1:3c1,1:3c3,2:3b8,1:3b5,1bc9:3b9,1c:1f76,1:1f77,f:1f7a,1:1f7b,d:1f78,1:1f79,1:1f7c,1:1f7d,107:63,5:25b,4:68,1:68,1:68,3:69,1:69,1:6c,3:6e,4:70,1:71,1:72,1:72,1:72,7:7a,2:3c9,2:7a,2:6b,1:e5,1:62,1:63,3:65,1:66,2:6d,b:3b3,1:3c0,6:64,1b574:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3\");\nconst Table_B_2_lut_rel = createTable(\"179:1,2:1,2:1,5:1,2:1,a:4f,a:1,8:1,2:1,2:1,3:1,5:1,3:1,4:1,2:1,3:1,4:1,8:2,1:1,2:2,1:1,2:2,27:2,195:26,2:25,1:25,1:25,2:40,2:3f,1:3f,33:1,11:-6,1:-9,1ac7:-3a,6d:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,b:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,c:-8,2:-8,2:-8,2:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,49:-8,1:-8,1:-4a,1:-4a,d:-56,1:-56,1:-56,1:-56,d:-8,1:-8,f:-8,1:-8,3:-7\");\nconst Table_B_2_complex = createTable(\"df:00730073,51:00690307,19:02BC006E,a7:006A030C,18a:002003B9,16:03B903080301,20:03C503080301,1d7:05650582,190f:00680331,1:00740308,1:0077030A,1:0079030A,1:006102BE,b6:03C50313,2:03C503130300,2:03C503130301,2:03C503130342,2a:1F0003B9,1:1F0103B9,1:1F0203B9,1:1F0303B9,1:1F0403B9,1:1F0503B9,1:1F0603B9,1:1F0703B9,1:1F0003B9,1:1F0103B9,1:1F0203B9,1:1F0303B9,1:1F0403B9,1:1F0503B9,1:1F0603B9,1:1F0703B9,1:1F2003B9,1:1F2103B9,1:1F2203B9,1:1F2303B9,1:1F2403B9,1:1F2503B9,1:1F2603B9,1:1F2703B9,1:1F2003B9,1:1F2103B9,1:1F2203B9,1:1F2303B9,1:1F2403B9,1:1F2503B9,1:1F2603B9,1:1F2703B9,1:1F6003B9,1:1F6103B9,1:1F6203B9,1:1F6303B9,1:1F6403B9,1:1F6503B9,1:1F6603B9,1:1F6703B9,1:1F6003B9,1:1F6103B9,1:1F6203B9,1:1F6303B9,1:1F6403B9,1:1F6503B9,1:1F6603B9,1:1F6703B9,3:1F7003B9,1:03B103B9,1:03AC03B9,2:03B10342,1:03B1034203B9,5:03B103B9,6:1F7403B9,1:03B703B9,1:03AE03B9,2:03B70342,1:03B7034203B9,5:03B703B9,6:03B903080300,1:03B903080301,3:03B90342,1:03B903080342,b:03C503080300,1:03C503080301,1:03C10313,2:03C50342,1:03C503080342,b:1F7C03B9,1:03C903B9,1:03CE03B9,2:03C90342,1:03C9034203B9,5:03C903B9,ac:00720073,5b:00B00063,6:00B00066,d:006E006F,a:0073006D,1:00740065006C,1:0074006D,124f:006800700061,2:00610075,2:006F0076,b:00700061,1:006E0061,1:03BC0061,1:006D0061,1:006B0061,1:006B0062,1:006D0062,1:00670062,3:00700066,1:006E0066,1:03BC0066,4:0068007A,1:006B0068007A,1:006D0068007A,1:00670068007A,1:00740068007A,15:00700061,1:006B00700061,1:006D00700061,1:006700700061,8:00700076,1:006E0076,1:03BC0076,1:006D0076,1:006B0076,1:006D0076,1:00700077,1:006E0077,1:03BC0077,1:006D0077,1:006B0077,1:006D0077,1:006B03C9,1:006D03C9,2:00620071,3:00632215006B0067,1:0063006F002E,1:00640062,1:00670079,2:00680070,2:006B006B,1:006B006D,9:00700068,2:00700070006D,1:00700072,2:00730076,1:00770062,c723:00660066,1:00660069,1:0066006C,1:006600660069,1:00660066006C,1:00730074,1:00730074,d:05740576,1:05740565,1:0574056B,1:057E0576,1:0574056D\", bytes2);\nconst Table_C_ranges = createRangeTable(\"80-20,2a0-,39c,32,f71,18e,7f2-f,19-7,30-4,7-5,f81-b,5,a800-20ff,4d1-1f,110,fa-6,d174-7,2e84-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,2,1f-5f,ff7f-20001\");\nfunction flatten(values) {\n return values.reduce((accum, value) => {\n value.forEach((value) => { accum.push(value); });\n return accum;\n }, []);\n}\nexport function _nameprepTableA1(codepoint) {\n return !!matchMap(codepoint, Table_A_1_ranges);\n}\nexport function _nameprepTableB2(codepoint) {\n let range = matchMap(codepoint, Table_B_2_ranges);\n if (range) {\n return [codepoint + range.s];\n }\n let codes = Table_B_2_lut_abs[codepoint];\n if (codes) {\n return codes;\n }\n let shift = Table_B_2_lut_rel[codepoint];\n if (shift) {\n return [codepoint + shift[0]];\n }\n let complex = Table_B_2_complex[codepoint];\n if (complex) {\n return complex;\n }\n return null;\n}\nexport function _nameprepTableC(codepoint) {\n return !!matchMap(codepoint, Table_C_ranges);\n}\nexport function nameprep(value) {\n // This allows platforms with incomplete normalize to bypass\n // it for very basic names which the built-in toLowerCase\n // will certainly handle correctly\n if (value.match(/^[a-z0-9-]*$/i) && value.length <= 59) {\n return value.toLowerCase();\n }\n // Get the code points (keeping the current normalization)\n let codes = toUtf8CodePoints(value);\n codes = flatten(codes.map((code) => {\n // Substitute Table B.1 (Maps to Nothing)\n if (Table_B_1_flags.indexOf(code) >= 0) {\n return [];\n }\n if (code >= 0xfe00 && code <= 0xfe0f) {\n return [];\n }\n // Substitute Table B.2 (Case Folding)\n let codesTableB2 = _nameprepTableB2(code);\n if (codesTableB2) {\n return codesTableB2;\n }\n // No Substitution\n return [code];\n }));\n // Normalize using form KC\n codes = toUtf8CodePoints(_toUtf8String(codes), UnicodeNormalizationForm.NFKC);\n // Prohibit Tables C.1.2, C.2.2, C.3, C.4, C.5, C.6, C.7, C.8, C.9\n codes.forEach((code) => {\n if (_nameprepTableC(code)) {\n throw new Error(\"STRINGPREP_CONTAINS_PROHIBITED\");\n }\n });\n // Prohibit Unassigned Code Points (Table A.1)\n codes.forEach((code) => {\n if (_nameprepTableA1(code)) {\n throw new Error(\"STRINGPREP_CONTAINS_UNASSIGNED\");\n }\n });\n // IDNA extras\n let name = _toUtf8String(codes);\n // IDNA: 4.2.3.1\n if (name.substring(0, 1) === \"-\" || name.substring(2, 4) === \"--\" || name.substring(name.length - 1) === \"-\") {\n throw new Error(\"invalid hyphen\");\n }\n // IDNA: 4.2.4\n if (name.length > 63) {\n throw new Error(\"too long\");\n }\n return name;\n}\n//# sourceMappingURL=idna.js.map","import { concat, hexlify } from \"@ethersproject/bytes\";\nimport { nameprep, toUtf8Bytes } from \"@ethersproject/strings\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nconst Zeros = new Uint8Array(32);\nZeros.fill(0);\nconst Partition = new RegExp(\"^((.*)\\\\.)?([^.]+)$\");\nexport function isValidName(name) {\n try {\n const comps = name.split(\".\");\n for (let i = 0; i < comps.length; i++) {\n if (nameprep(comps[i]).length === 0) {\n throw new Error(\"empty\");\n }\n }\n return true;\n }\n catch (error) { }\n return false;\n}\nexport function namehash(name) {\n /* istanbul ignore if */\n if (typeof (name) !== \"string\") {\n logger.throwArgumentError(\"invalid ENS name; not a string\", \"name\", name);\n }\n let current = name;\n let result = Zeros;\n while (current.length) {\n const partition = current.match(Partition);\n if (partition == null || partition[2] === \"\") {\n logger.throwArgumentError(\"invalid ENS address; missing component\", \"name\", name);\n }\n const label = toUtf8Bytes(nameprep(partition[3]));\n result = keccak256(concat([result, keccak256(label)]));\n current = partition[2] || \"\";\n }\n return hexlify(result);\n}\nexport function dnsEncode(name) {\n return hexlify(concat(name.split(\".\").map((comp) => {\n // We jam in an _ prefix to fill in with the length later\n // Note: Nameprep throws if the component is over 63 bytes\n const bytes = toUtf8Bytes(\"_\" + nameprep(comp));\n bytes[0] = bytes.length - 1;\n return bytes;\n }))) + \"00\";\n}\n//# sourceMappingURL=namehash.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { arrayify } from \"@ethersproject/bytes\";\nexport function getUrl(href, options) {\n return __awaiter(this, void 0, void 0, function* () {\n if (options == null) {\n options = {};\n }\n const request = {\n method: (options.method || \"GET\"),\n headers: (options.headers || {}),\n body: (options.body || undefined),\n };\n if (options.skipFetchSetup !== true) {\n request.mode = \"cors\"; // no-cors, cors, *same-origin\n request.cache = \"no-cache\"; // *default, no-cache, reload, force-cache, only-if-cached\n request.credentials = \"same-origin\"; // include, *same-origin, omit\n request.redirect = \"follow\"; // manual, *follow, error\n request.referrer = \"client\"; // no-referrer, *client\n }\n ;\n const response = yield fetch(href, request);\n const body = yield response.arrayBuffer();\n const headers = {};\n if (response.headers.forEach) {\n response.headers.forEach((value, key) => {\n headers[key.toLowerCase()] = value;\n });\n }\n else {\n ((response.headers).keys)().forEach((key) => {\n headers[key.toLowerCase()] = response.headers.get(key);\n });\n }\n return {\n headers: headers,\n statusCode: response.status,\n statusMessage: response.statusText,\n body: arrayify(new Uint8Array(body)),\n };\n });\n}\n//# sourceMappingURL=geturl.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { decode as base64Decode, encode as base64Encode } from \"@ethersproject/base64\";\nimport { hexlify, isBytesLike } from \"@ethersproject/bytes\";\nimport { shallowCopy } from \"@ethersproject/properties\";\nimport { toUtf8Bytes, toUtf8String } from \"@ethersproject/strings\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { getUrl } from \"./geturl\";\nfunction staller(duration) {\n return new Promise((resolve) => {\n setTimeout(resolve, duration);\n });\n}\nfunction bodyify(value, type) {\n if (value == null) {\n return null;\n }\n if (typeof (value) === \"string\") {\n return value;\n }\n if (isBytesLike(value)) {\n if (type && (type.split(\"/\")[0] === \"text\" || type.split(\";\")[0].trim() === \"application/json\")) {\n try {\n return toUtf8String(value);\n }\n catch (error) { }\n ;\n }\n return hexlify(value);\n }\n return value;\n}\n// This API is still a work in progress; the future changes will likely be:\n// - ConnectionInfo => FetchDataRequest\n// - FetchDataRequest.body? = string | Uint8Array | { contentType: string, data: string | Uint8Array }\n// - If string => text/plain, Uint8Array => application/octet-stream (if content-type unspecified)\n// - FetchDataRequest.processFunc = (body: Uint8Array, response: FetchDataResponse) => T\n// For this reason, it should be considered internal until the API is finalized\nexport function _fetchData(connection, body, processFunc) {\n // How many times to retry in the event of a throttle\n const attemptLimit = (typeof (connection) === \"object\" && connection.throttleLimit != null) ? connection.throttleLimit : 12;\n logger.assertArgument((attemptLimit > 0 && (attemptLimit % 1) === 0), \"invalid connection throttle limit\", \"connection.throttleLimit\", attemptLimit);\n const throttleCallback = ((typeof (connection) === \"object\") ? connection.throttleCallback : null);\n const throttleSlotInterval = ((typeof (connection) === \"object\" && typeof (connection.throttleSlotInterval) === \"number\") ? connection.throttleSlotInterval : 100);\n logger.assertArgument((throttleSlotInterval > 0 && (throttleSlotInterval % 1) === 0), \"invalid connection throttle slot interval\", \"connection.throttleSlotInterval\", throttleSlotInterval);\n const errorPassThrough = ((typeof (connection) === \"object\") ? !!(connection.errorPassThrough) : false);\n const headers = {};\n let url = null;\n // @TODO: Allow ConnectionInfo to override some of these values\n const options = {\n method: \"GET\",\n };\n let allow304 = false;\n let timeout = 2 * 60 * 1000;\n if (typeof (connection) === \"string\") {\n url = connection;\n }\n else if (typeof (connection) === \"object\") {\n if (connection == null || connection.url == null) {\n logger.throwArgumentError(\"missing URL\", \"connection.url\", connection);\n }\n url = connection.url;\n if (typeof (connection.timeout) === \"number\" && connection.timeout > 0) {\n timeout = connection.timeout;\n }\n if (connection.headers) {\n for (const key in connection.headers) {\n headers[key.toLowerCase()] = { key: key, value: String(connection.headers[key]) };\n if ([\"if-none-match\", \"if-modified-since\"].indexOf(key.toLowerCase()) >= 0) {\n allow304 = true;\n }\n }\n }\n options.allowGzip = !!connection.allowGzip;\n if (connection.user != null && connection.password != null) {\n if (url.substring(0, 6) !== \"https:\" && connection.allowInsecureAuthentication !== true) {\n logger.throwError(\"basic authentication requires a secure https url\", Logger.errors.INVALID_ARGUMENT, { argument: \"url\", url: url, user: connection.user, password: \"[REDACTED]\" });\n }\n const authorization = connection.user + \":\" + connection.password;\n headers[\"authorization\"] = {\n key: \"Authorization\",\n value: \"Basic \" + base64Encode(toUtf8Bytes(authorization))\n };\n }\n if (connection.skipFetchSetup != null) {\n options.skipFetchSetup = !!connection.skipFetchSetup;\n }\n }\n const reData = new RegExp(\"^data:([a-z0-9-]+/[a-z0-9-]+);base64,(.*)$\", \"i\");\n const dataMatch = ((url) ? url.match(reData) : null);\n if (dataMatch) {\n try {\n const response = {\n statusCode: 200,\n statusMessage: \"OK\",\n headers: { \"content-type\": dataMatch[1] },\n body: base64Decode(dataMatch[2])\n };\n let result = response.body;\n if (processFunc) {\n result = processFunc(response.body, response);\n }\n return Promise.resolve(result);\n }\n catch (error) {\n logger.throwError(\"processing response error\", Logger.errors.SERVER_ERROR, {\n body: bodyify(dataMatch[1], dataMatch[2]),\n error: error,\n requestBody: null,\n requestMethod: \"GET\",\n url: url\n });\n }\n }\n if (body) {\n options.method = \"POST\";\n options.body = body;\n if (headers[\"content-type\"] == null) {\n headers[\"content-type\"] = { key: \"Content-Type\", value: \"application/octet-stream\" };\n }\n if (headers[\"content-length\"] == null) {\n headers[\"content-length\"] = { key: \"Content-Length\", value: String(body.length) };\n }\n }\n const flatHeaders = {};\n Object.keys(headers).forEach((key) => {\n const header = headers[key];\n flatHeaders[header.key] = header.value;\n });\n options.headers = flatHeaders;\n const runningTimeout = (function () {\n let timer = null;\n const promise = new Promise(function (resolve, reject) {\n if (timeout) {\n timer = setTimeout(() => {\n if (timer == null) {\n return;\n }\n timer = null;\n reject(logger.makeError(\"timeout\", Logger.errors.TIMEOUT, {\n requestBody: bodyify(options.body, flatHeaders[\"content-type\"]),\n requestMethod: options.method,\n timeout: timeout,\n url: url\n }));\n }, timeout);\n }\n });\n const cancel = function () {\n if (timer == null) {\n return;\n }\n clearTimeout(timer);\n timer = null;\n };\n return { promise, cancel };\n })();\n const runningFetch = (function () {\n return __awaiter(this, void 0, void 0, function* () {\n for (let attempt = 0; attempt < attemptLimit; attempt++) {\n let response = null;\n try {\n response = yield getUrl(url, options);\n if (attempt < attemptLimit) {\n if (response.statusCode === 301 || response.statusCode === 302) {\n // Redirection; for now we only support absolute locataions\n const location = response.headers.location || \"\";\n if (options.method === \"GET\" && location.match(/^https:/)) {\n url = response.headers.location;\n continue;\n }\n }\n else if (response.statusCode === 429) {\n // Exponential back-off throttling\n let tryAgain = true;\n if (throttleCallback) {\n tryAgain = yield throttleCallback(attempt, url);\n }\n if (tryAgain) {\n let stall = 0;\n const retryAfter = response.headers[\"retry-after\"];\n if (typeof (retryAfter) === \"string\" && retryAfter.match(/^[1-9][0-9]*$/)) {\n stall = parseInt(retryAfter) * 1000;\n }\n else {\n stall = throttleSlotInterval * parseInt(String(Math.random() * Math.pow(2, attempt)));\n }\n //console.log(\"Stalling 429\");\n yield staller(stall);\n continue;\n }\n }\n }\n }\n catch (error) {\n response = error.response;\n if (response == null) {\n runningTimeout.cancel();\n logger.throwError(\"missing response\", Logger.errors.SERVER_ERROR, {\n requestBody: bodyify(options.body, flatHeaders[\"content-type\"]),\n requestMethod: options.method,\n serverError: error,\n url: url\n });\n }\n }\n let body = response.body;\n if (allow304 && response.statusCode === 304) {\n body = null;\n }\n else if (!errorPassThrough && (response.statusCode < 200 || response.statusCode >= 300)) {\n runningTimeout.cancel();\n logger.throwError(\"bad response\", Logger.errors.SERVER_ERROR, {\n status: response.statusCode,\n headers: response.headers,\n body: bodyify(body, ((response.headers) ? response.headers[\"content-type\"] : null)),\n requestBody: bodyify(options.body, flatHeaders[\"content-type\"]),\n requestMethod: options.method,\n url: url\n });\n }\n if (processFunc) {\n try {\n const result = yield processFunc(body, response);\n runningTimeout.cancel();\n return result;\n }\n catch (error) {\n // Allow the processFunc to trigger a throttle\n if (error.throttleRetry && attempt < attemptLimit) {\n let tryAgain = true;\n if (throttleCallback) {\n tryAgain = yield throttleCallback(attempt, url);\n }\n if (tryAgain) {\n const timeout = throttleSlotInterval * parseInt(String(Math.random() * Math.pow(2, attempt)));\n //console.log(\"Stalling callback\");\n yield staller(timeout);\n continue;\n }\n }\n runningTimeout.cancel();\n logger.throwError(\"processing response error\", Logger.errors.SERVER_ERROR, {\n body: bodyify(body, ((response.headers) ? response.headers[\"content-type\"] : null)),\n error: error,\n requestBody: bodyify(options.body, flatHeaders[\"content-type\"]),\n requestMethod: options.method,\n url: url\n });\n }\n }\n runningTimeout.cancel();\n // If we had a processFunc, it either returned a T or threw above.\n // The \"body\" is now a Uint8Array.\n return body;\n }\n return logger.throwError(\"failed response\", Logger.errors.SERVER_ERROR, {\n requestBody: bodyify(options.body, flatHeaders[\"content-type\"]),\n requestMethod: options.method,\n url: url\n });\n });\n })();\n return Promise.race([runningTimeout.promise, runningFetch]);\n}\nexport function fetchJson(connection, json, processFunc) {\n let processJsonFunc = (value, response) => {\n let result = null;\n if (value != null) {\n try {\n result = JSON.parse(toUtf8String(value));\n }\n catch (error) {\n logger.throwError(\"invalid JSON\", Logger.errors.SERVER_ERROR, {\n body: value,\n error: error\n });\n }\n }\n if (processFunc) {\n result = processFunc(result, response);\n }\n return result;\n };\n // If we have json to send, we must\n // - add content-type of application/json (unless already overridden)\n // - convert the json to bytes\n let body = null;\n if (json != null) {\n body = toUtf8Bytes(json);\n // Create a connection with the content-type set for JSON\n const updated = (typeof (connection) === \"string\") ? ({ url: connection }) : shallowCopy(connection);\n if (updated.headers) {\n const hasContentType = (Object.keys(updated.headers).filter((k) => (k.toLowerCase() === \"content-type\")).length) !== 0;\n if (!hasContentType) {\n updated.headers = shallowCopy(updated.headers);\n updated.headers[\"content-type\"] = \"application/json\";\n }\n }\n else {\n updated.headers = { \"content-type\": \"application/json\" };\n }\n connection = updated;\n }\n return _fetchData(connection, body, processJsonFunc);\n}\nexport function poll(func, options) {\n if (!options) {\n options = {};\n }\n options = shallowCopy(options);\n if (options.floor == null) {\n options.floor = 0;\n }\n if (options.ceiling == null) {\n options.ceiling = 10000;\n }\n if (options.interval == null) {\n options.interval = 250;\n }\n return new Promise(function (resolve, reject) {\n let timer = null;\n let done = false;\n // Returns true if cancel was successful. Unsuccessful cancel means we're already done.\n const cancel = () => {\n if (done) {\n return false;\n }\n done = true;\n if (timer) {\n clearTimeout(timer);\n }\n return true;\n };\n if (options.timeout) {\n timer = setTimeout(() => {\n if (cancel()) {\n reject(new Error(\"timeout\"));\n }\n }, options.timeout);\n }\n const retryLimit = options.retryLimit;\n let attempt = 0;\n function check() {\n return func().then(function (result) {\n // If we have a result, or are allowed null then we're done\n if (result !== undefined) {\n if (cancel()) {\n resolve(result);\n }\n }\n else if (options.oncePoll) {\n options.oncePoll.once(\"poll\", check);\n }\n else if (options.onceBlock) {\n options.onceBlock.once(\"block\", check);\n // Otherwise, exponential back-off (up to 10s) our next request\n }\n else if (!done) {\n attempt++;\n if (attempt > retryLimit) {\n if (cancel()) {\n reject(new Error(\"retry limit reached\"));\n }\n return;\n }\n let timeout = options.interval * parseInt(String(Math.random() * Math.pow(2, attempt)));\n if (timeout < options.floor) {\n timeout = options.floor;\n }\n if (timeout > options.ceiling) {\n timeout = options.ceiling;\n }\n setTimeout(check, timeout);\n }\n return null;\n }, function (error) {\n if (cancel()) {\n reject(error);\n }\n });\n }\n check();\n });\n}\n//# sourceMappingURL=index.js.map","export const version = \"web/5.6.1\";\n//# sourceMappingURL=_version.js.map","export const version = \"providers/5.6.8\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nimport { getAddress, getContractAddress } from \"@ethersproject/address\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { hexDataLength, hexDataSlice, hexValue, hexZeroPad, isHexString } from \"@ethersproject/bytes\";\nimport { AddressZero } from \"@ethersproject/constants\";\nimport { shallowCopy } from \"@ethersproject/properties\";\nimport { accessListify, parse as parseTransaction } from \"@ethersproject/transactions\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nexport class Formatter {\n constructor() {\n this.formats = this.getDefaultFormats();\n }\n getDefaultFormats() {\n const formats = ({});\n const address = this.address.bind(this);\n const bigNumber = this.bigNumber.bind(this);\n const blockTag = this.blockTag.bind(this);\n const data = this.data.bind(this);\n const hash = this.hash.bind(this);\n const hex = this.hex.bind(this);\n const number = this.number.bind(this);\n const type = this.type.bind(this);\n const strictData = (v) => { return this.data(v, true); };\n formats.transaction = {\n hash: hash,\n type: type,\n accessList: Formatter.allowNull(this.accessList.bind(this), null),\n blockHash: Formatter.allowNull(hash, null),\n blockNumber: Formatter.allowNull(number, null),\n transactionIndex: Formatter.allowNull(number, null),\n confirmations: Formatter.allowNull(number, null),\n from: address,\n // either (gasPrice) or (maxPriorityFeePerGas + maxFeePerGas)\n // must be set\n gasPrice: Formatter.allowNull(bigNumber),\n maxPriorityFeePerGas: Formatter.allowNull(bigNumber),\n maxFeePerGas: Formatter.allowNull(bigNumber),\n gasLimit: bigNumber,\n to: Formatter.allowNull(address, null),\n value: bigNumber,\n nonce: number,\n data: data,\n r: Formatter.allowNull(this.uint256),\n s: Formatter.allowNull(this.uint256),\n v: Formatter.allowNull(number),\n creates: Formatter.allowNull(address, null),\n raw: Formatter.allowNull(data),\n };\n formats.transactionRequest = {\n from: Formatter.allowNull(address),\n nonce: Formatter.allowNull(number),\n gasLimit: Formatter.allowNull(bigNumber),\n gasPrice: Formatter.allowNull(bigNumber),\n maxPriorityFeePerGas: Formatter.allowNull(bigNumber),\n maxFeePerGas: Formatter.allowNull(bigNumber),\n to: Formatter.allowNull(address),\n value: Formatter.allowNull(bigNumber),\n data: Formatter.allowNull(strictData),\n type: Formatter.allowNull(number),\n accessList: Formatter.allowNull(this.accessList.bind(this), null),\n };\n formats.receiptLog = {\n transactionIndex: number,\n blockNumber: number,\n transactionHash: hash,\n address: address,\n topics: Formatter.arrayOf(hash),\n data: data,\n logIndex: number,\n blockHash: hash,\n };\n formats.receipt = {\n to: Formatter.allowNull(this.address, null),\n from: Formatter.allowNull(this.address, null),\n contractAddress: Formatter.allowNull(address, null),\n transactionIndex: number,\n // should be allowNull(hash), but broken-EIP-658 support is handled in receipt\n root: Formatter.allowNull(hex),\n gasUsed: bigNumber,\n logsBloom: Formatter.allowNull(data),\n blockHash: hash,\n transactionHash: hash,\n logs: Formatter.arrayOf(this.receiptLog.bind(this)),\n blockNumber: number,\n confirmations: Formatter.allowNull(number, null),\n cumulativeGasUsed: bigNumber,\n effectiveGasPrice: Formatter.allowNull(bigNumber),\n status: Formatter.allowNull(number),\n type: type\n };\n formats.block = {\n hash: Formatter.allowNull(hash),\n parentHash: hash,\n number: number,\n timestamp: number,\n nonce: Formatter.allowNull(hex),\n difficulty: this.difficulty.bind(this),\n gasLimit: bigNumber,\n gasUsed: bigNumber,\n miner: Formatter.allowNull(address),\n extraData: data,\n transactions: Formatter.allowNull(Formatter.arrayOf(hash)),\n baseFeePerGas: Formatter.allowNull(bigNumber)\n };\n formats.blockWithTransactions = shallowCopy(formats.block);\n formats.blockWithTransactions.transactions = Formatter.allowNull(Formatter.arrayOf(this.transactionResponse.bind(this)));\n formats.filter = {\n fromBlock: Formatter.allowNull(blockTag, undefined),\n toBlock: Formatter.allowNull(blockTag, undefined),\n blockHash: Formatter.allowNull(hash, undefined),\n address: Formatter.allowNull(address, undefined),\n topics: Formatter.allowNull(this.topics.bind(this), undefined),\n };\n formats.filterLog = {\n blockNumber: Formatter.allowNull(number),\n blockHash: Formatter.allowNull(hash),\n transactionIndex: number,\n removed: Formatter.allowNull(this.boolean.bind(this)),\n address: address,\n data: Formatter.allowFalsish(data, \"0x\"),\n topics: Formatter.arrayOf(hash),\n transactionHash: hash,\n logIndex: number,\n };\n return formats;\n }\n accessList(accessList) {\n return accessListify(accessList || []);\n }\n // Requires a BigNumberish that is within the IEEE754 safe integer range; returns a number\n // Strict! Used on input.\n number(number) {\n if (number === \"0x\") {\n return 0;\n }\n return BigNumber.from(number).toNumber();\n }\n type(number) {\n if (number === \"0x\" || number == null) {\n return 0;\n }\n return BigNumber.from(number).toNumber();\n }\n // Strict! Used on input.\n bigNumber(value) {\n return BigNumber.from(value);\n }\n // Requires a boolean, \"true\" or \"false\"; returns a boolean\n boolean(value) {\n if (typeof (value) === \"boolean\") {\n return value;\n }\n if (typeof (value) === \"string\") {\n value = value.toLowerCase();\n if (value === \"true\") {\n return true;\n }\n if (value === \"false\") {\n return false;\n }\n }\n throw new Error(\"invalid boolean - \" + value);\n }\n hex(value, strict) {\n if (typeof (value) === \"string\") {\n if (!strict && value.substring(0, 2) !== \"0x\") {\n value = \"0x\" + value;\n }\n if (isHexString(value)) {\n return value.toLowerCase();\n }\n }\n return logger.throwArgumentError(\"invalid hash\", \"value\", value);\n }\n data(value, strict) {\n const result = this.hex(value, strict);\n if ((result.length % 2) !== 0) {\n throw new Error(\"invalid data; odd-length - \" + value);\n }\n return result;\n }\n // Requires an address\n // Strict! Used on input.\n address(value) {\n return getAddress(value);\n }\n callAddress(value) {\n if (!isHexString(value, 32)) {\n return null;\n }\n const address = getAddress(hexDataSlice(value, 12));\n return (address === AddressZero) ? null : address;\n }\n contractAddress(value) {\n return getContractAddress(value);\n }\n // Strict! Used on input.\n blockTag(blockTag) {\n if (blockTag == null) {\n return \"latest\";\n }\n if (blockTag === \"earliest\") {\n return \"0x0\";\n }\n if (blockTag === \"latest\" || blockTag === \"pending\") {\n return blockTag;\n }\n if (typeof (blockTag) === \"number\" || isHexString(blockTag)) {\n return hexValue(blockTag);\n }\n throw new Error(\"invalid blockTag\");\n }\n // Requires a hash, optionally requires 0x prefix; returns prefixed lowercase hash.\n hash(value, strict) {\n const result = this.hex(value, strict);\n if (hexDataLength(result) !== 32) {\n return logger.throwArgumentError(\"invalid hash\", \"value\", value);\n }\n return result;\n }\n // Returns the difficulty as a number, or if too large (i.e. PoA network) null\n difficulty(value) {\n if (value == null) {\n return null;\n }\n const v = BigNumber.from(value);\n try {\n return v.toNumber();\n }\n catch (error) { }\n return null;\n }\n uint256(value) {\n if (!isHexString(value)) {\n throw new Error(\"invalid uint256\");\n }\n return hexZeroPad(value, 32);\n }\n _block(value, format) {\n if (value.author != null && value.miner == null) {\n value.miner = value.author;\n }\n // The difficulty may need to come from _difficulty in recursed blocks\n const difficulty = (value._difficulty != null) ? value._difficulty : value.difficulty;\n const result = Formatter.check(format, value);\n result._difficulty = ((difficulty == null) ? null : BigNumber.from(difficulty));\n return result;\n }\n block(value) {\n return this._block(value, this.formats.block);\n }\n blockWithTransactions(value) {\n return this._block(value, this.formats.blockWithTransactions);\n }\n // Strict! Used on input.\n transactionRequest(value) {\n return Formatter.check(this.formats.transactionRequest, value);\n }\n transactionResponse(transaction) {\n // Rename gas to gasLimit\n if (transaction.gas != null && transaction.gasLimit == null) {\n transaction.gasLimit = transaction.gas;\n }\n // Some clients (TestRPC) do strange things like return 0x0 for the\n // 0 address; correct this to be a real address\n if (transaction.to && BigNumber.from(transaction.to).isZero()) {\n transaction.to = \"0x0000000000000000000000000000000000000000\";\n }\n // Rename input to data\n if (transaction.input != null && transaction.data == null) {\n transaction.data = transaction.input;\n }\n // If to and creates are empty, populate the creates from the transaction\n if (transaction.to == null && transaction.creates == null) {\n transaction.creates = this.contractAddress(transaction);\n }\n if ((transaction.type === 1 || transaction.type === 2) && transaction.accessList == null) {\n transaction.accessList = [];\n }\n const result = Formatter.check(this.formats.transaction, transaction);\n if (transaction.chainId != null) {\n let chainId = transaction.chainId;\n if (isHexString(chainId)) {\n chainId = BigNumber.from(chainId).toNumber();\n }\n result.chainId = chainId;\n }\n else {\n let chainId = transaction.networkId;\n // geth-etc returns chainId\n if (chainId == null && result.v == null) {\n chainId = transaction.chainId;\n }\n if (isHexString(chainId)) {\n chainId = BigNumber.from(chainId).toNumber();\n }\n if (typeof (chainId) !== \"number\" && result.v != null) {\n chainId = (result.v - 35) / 2;\n if (chainId < 0) {\n chainId = 0;\n }\n chainId = parseInt(chainId);\n }\n if (typeof (chainId) !== \"number\") {\n chainId = 0;\n }\n result.chainId = chainId;\n }\n // 0x0000... should actually be null\n if (result.blockHash && result.blockHash.replace(/0/g, \"\") === \"x\") {\n result.blockHash = null;\n }\n return result;\n }\n transaction(value) {\n return parseTransaction(value);\n }\n receiptLog(value) {\n return Formatter.check(this.formats.receiptLog, value);\n }\n receipt(value) {\n const result = Formatter.check(this.formats.receipt, value);\n // RSK incorrectly implemented EIP-658, so we munge things a bit here for it\n if (result.root != null) {\n if (result.root.length <= 4) {\n // Could be 0x00, 0x0, 0x01 or 0x1\n const value = BigNumber.from(result.root).toNumber();\n if (value === 0 || value === 1) {\n // Make sure if both are specified, they match\n if (result.status != null && (result.status !== value)) {\n logger.throwArgumentError(\"alt-root-status/status mismatch\", \"value\", { root: result.root, status: result.status });\n }\n result.status = value;\n delete result.root;\n }\n else {\n logger.throwArgumentError(\"invalid alt-root-status\", \"value.root\", result.root);\n }\n }\n else if (result.root.length !== 66) {\n // Must be a valid bytes32\n logger.throwArgumentError(\"invalid root hash\", \"value.root\", result.root);\n }\n }\n if (result.status != null) {\n result.byzantium = true;\n }\n return result;\n }\n topics(value) {\n if (Array.isArray(value)) {\n return value.map((v) => this.topics(v));\n }\n else if (value != null) {\n return this.hash(value, true);\n }\n return null;\n }\n filter(value) {\n return Formatter.check(this.formats.filter, value);\n }\n filterLog(value) {\n return Formatter.check(this.formats.filterLog, value);\n }\n static check(format, object) {\n const result = {};\n for (const key in format) {\n try {\n const value = format[key](object[key]);\n if (value !== undefined) {\n result[key] = value;\n }\n }\n catch (error) {\n error.checkKey = key;\n error.checkValue = object[key];\n throw error;\n }\n }\n return result;\n }\n // if value is null-ish, nullValue is returned\n static allowNull(format, nullValue) {\n return (function (value) {\n if (value == null) {\n return nullValue;\n }\n return format(value);\n });\n }\n // If value is false-ish, replaceValue is returned\n static allowFalsish(format, replaceValue) {\n return (function (value) {\n if (!value) {\n return replaceValue;\n }\n return format(value);\n });\n }\n // Requires an Array satisfying check\n static arrayOf(format) {\n return (function (array) {\n if (!Array.isArray(array)) {\n throw new Error(\"not an array\");\n }\n const result = [];\n array.forEach(function (value) {\n result.push(format(value));\n });\n return result;\n });\n }\n}\nexport function isCommunityResourcable(value) {\n return (value && typeof (value.isCommunityResource) === \"function\");\n}\nexport function isCommunityResource(value) {\n return (isCommunityResourcable(value) && value.isCommunityResource());\n}\n// Show the throttle message only once\nlet throttleMessage = false;\nexport function showThrottleMessage() {\n if (throttleMessage) {\n return;\n }\n throttleMessage = true;\n console.log(\"========= NOTICE =========\");\n console.log(\"Request-Rate Exceeded (this message will not be repeated)\");\n console.log(\"\");\n console.log(\"The default API keys for each service are provided as a highly-throttled,\");\n console.log(\"community resource for low-traffic projects and early prototyping.\");\n console.log(\"\");\n console.log(\"While your application will continue to function, we highly recommended\");\n console.log(\"signing up for your own API keys to improve performance, increase your\");\n console.log(\"request rate/limit and enable other perks, such as metrics and advanced APIs.\");\n console.log(\"\");\n console.log(\"For more details: https:/\\/docs.ethers.io/api-keys/\");\n console.log(\"==========================\");\n}\n//# sourceMappingURL=formatter.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { ForkEvent, Provider } from \"@ethersproject/abstract-provider\";\nimport { encode as base64Encode } from \"@ethersproject/base64\";\nimport { Base58 } from \"@ethersproject/basex\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { arrayify, concat, hexConcat, hexDataLength, hexDataSlice, hexlify, hexValue, hexZeroPad, isHexString } from \"@ethersproject/bytes\";\nimport { HashZero } from \"@ethersproject/constants\";\nimport { dnsEncode, namehash } from \"@ethersproject/hash\";\nimport { getNetwork } from \"@ethersproject/networks\";\nimport { defineReadOnly, getStatic, resolveProperties } from \"@ethersproject/properties\";\nimport { sha256 } from \"@ethersproject/sha2\";\nimport { toUtf8Bytes, toUtf8String } from \"@ethersproject/strings\";\nimport { fetchJson, poll } from \"@ethersproject/web\";\nimport bech32 from \"bech32\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { Formatter } from \"./formatter\";\nconst MAX_CCIP_REDIRECTS = 10;\n//////////////////////////////\n// Event Serializeing\nfunction checkTopic(topic) {\n if (topic == null) {\n return \"null\";\n }\n if (hexDataLength(topic) !== 32) {\n logger.throwArgumentError(\"invalid topic\", \"topic\", topic);\n }\n return topic.toLowerCase();\n}\nfunction serializeTopics(topics) {\n // Remove trailing null AND-topics; they are redundant\n topics = topics.slice();\n while (topics.length > 0 && topics[topics.length - 1] == null) {\n topics.pop();\n }\n return topics.map((topic) => {\n if (Array.isArray(topic)) {\n // Only track unique OR-topics\n const unique = {};\n topic.forEach((topic) => {\n unique[checkTopic(topic)] = true;\n });\n // The order of OR-topics does not matter\n const sorted = Object.keys(unique);\n sorted.sort();\n return sorted.join(\"|\");\n }\n else {\n return checkTopic(topic);\n }\n }).join(\"&\");\n}\nfunction deserializeTopics(data) {\n if (data === \"\") {\n return [];\n }\n return data.split(/&/g).map((topic) => {\n if (topic === \"\") {\n return [];\n }\n const comps = topic.split(\"|\").map((topic) => {\n return ((topic === \"null\") ? null : topic);\n });\n return ((comps.length === 1) ? comps[0] : comps);\n });\n}\nfunction getEventTag(eventName) {\n if (typeof (eventName) === \"string\") {\n eventName = eventName.toLowerCase();\n if (hexDataLength(eventName) === 32) {\n return \"tx:\" + eventName;\n }\n if (eventName.indexOf(\":\") === -1) {\n return eventName;\n }\n }\n else if (Array.isArray(eventName)) {\n return \"filter:*:\" + serializeTopics(eventName);\n }\n else if (ForkEvent.isForkEvent(eventName)) {\n logger.warn(\"not implemented\");\n throw new Error(\"not implemented\");\n }\n else if (eventName && typeof (eventName) === \"object\") {\n return \"filter:\" + (eventName.address || \"*\") + \":\" + serializeTopics(eventName.topics || []);\n }\n throw new Error(\"invalid event - \" + eventName);\n}\n//////////////////////////////\n// Helper Object\nfunction getTime() {\n return (new Date()).getTime();\n}\nfunction stall(duration) {\n return new Promise((resolve) => {\n setTimeout(resolve, duration);\n });\n}\n//////////////////////////////\n// Provider Object\n/**\n * EventType\n * - \"block\"\n * - \"poll\"\n * - \"didPoll\"\n * - \"pending\"\n * - \"error\"\n * - \"network\"\n * - filter\n * - topics array\n * - transaction hash\n */\nconst PollableEvents = [\"block\", \"network\", \"pending\", \"poll\"];\nexport class Event {\n constructor(tag, listener, once) {\n defineReadOnly(this, \"tag\", tag);\n defineReadOnly(this, \"listener\", listener);\n defineReadOnly(this, \"once\", once);\n this._lastBlockNumber = -2;\n this._inflight = false;\n }\n get event() {\n switch (this.type) {\n case \"tx\":\n return this.hash;\n case \"filter\":\n return this.filter;\n }\n return this.tag;\n }\n get type() {\n return this.tag.split(\":\")[0];\n }\n get hash() {\n const comps = this.tag.split(\":\");\n if (comps[0] !== \"tx\") {\n return null;\n }\n return comps[1];\n }\n get filter() {\n const comps = this.tag.split(\":\");\n if (comps[0] !== \"filter\") {\n return null;\n }\n const address = comps[1];\n const topics = deserializeTopics(comps[2]);\n const filter = {};\n if (topics.length > 0) {\n filter.topics = topics;\n }\n if (address && address !== \"*\") {\n filter.address = address;\n }\n return filter;\n }\n pollable() {\n return (this.tag.indexOf(\":\") >= 0 || PollableEvents.indexOf(this.tag) >= 0);\n }\n}\n;\n// https://github.com/satoshilabs/slips/blob/master/slip-0044.md\nconst coinInfos = {\n \"0\": { symbol: \"btc\", p2pkh: 0x00, p2sh: 0x05, prefix: \"bc\" },\n \"2\": { symbol: \"ltc\", p2pkh: 0x30, p2sh: 0x32, prefix: \"ltc\" },\n \"3\": { symbol: \"doge\", p2pkh: 0x1e, p2sh: 0x16 },\n \"60\": { symbol: \"eth\", ilk: \"eth\" },\n \"61\": { symbol: \"etc\", ilk: \"eth\" },\n \"700\": { symbol: \"xdai\", ilk: \"eth\" },\n};\nfunction bytes32ify(value) {\n return hexZeroPad(BigNumber.from(value).toHexString(), 32);\n}\n// Compute the Base58Check encoded data (checksum is first 4 bytes of sha256d)\nfunction base58Encode(data) {\n return Base58.encode(concat([data, hexDataSlice(sha256(sha256(data)), 0, 4)]));\n}\nconst matcherIpfs = new RegExp(\"^(ipfs):/\\/(.*)$\", \"i\");\nconst matchers = [\n new RegExp(\"^(https):/\\/(.*)$\", \"i\"),\n new RegExp(\"^(data):(.*)$\", \"i\"),\n matcherIpfs,\n new RegExp(\"^eip155:[0-9]+/(erc[0-9]+):(.*)$\", \"i\"),\n];\nfunction _parseString(result, start) {\n try {\n return toUtf8String(_parseBytes(result, start));\n }\n catch (error) { }\n return null;\n}\nfunction _parseBytes(result, start) {\n if (result === \"0x\") {\n return null;\n }\n const offset = BigNumber.from(hexDataSlice(result, start, start + 32)).toNumber();\n const length = BigNumber.from(hexDataSlice(result, offset, offset + 32)).toNumber();\n return hexDataSlice(result, offset + 32, offset + 32 + length);\n}\n// Trim off the ipfs:// prefix and return the default gateway URL\nfunction getIpfsLink(link) {\n if (link.match(/^ipfs:\\/\\/ipfs\\//i)) {\n link = link.substring(12);\n }\n else if (link.match(/^ipfs:\\/\\//i)) {\n link = link.substring(7);\n }\n else {\n logger.throwArgumentError(\"unsupported IPFS format\", \"link\", link);\n }\n return `https:/\\/gateway.ipfs.io/ipfs/${link}`;\n}\nfunction numPad(value) {\n const result = arrayify(value);\n if (result.length > 32) {\n throw new Error(\"internal; should not happen\");\n }\n const padded = new Uint8Array(32);\n padded.set(result, 32 - result.length);\n return padded;\n}\nfunction bytesPad(value) {\n if ((value.length % 32) === 0) {\n return value;\n }\n const result = new Uint8Array(Math.ceil(value.length / 32) * 32);\n result.set(value);\n return result;\n}\n// ABI Encodes a series of (bytes, bytes, ...)\nfunction encodeBytes(datas) {\n const result = [];\n let byteCount = 0;\n // Add place-holders for pointers as we add items\n for (let i = 0; i < datas.length; i++) {\n result.push(null);\n byteCount += 32;\n }\n for (let i = 0; i < datas.length; i++) {\n const data = arrayify(datas[i]);\n // Update the bytes offset\n result[i] = numPad(byteCount);\n // The length and padded value of data\n result.push(numPad(data.length));\n result.push(bytesPad(data));\n byteCount += 32 + Math.ceil(data.length / 32) * 32;\n }\n return hexConcat(result);\n}\nexport class Resolver {\n // The resolvedAddress is only for creating a ReverseLookup resolver\n constructor(provider, address, name, resolvedAddress) {\n defineReadOnly(this, \"provider\", provider);\n defineReadOnly(this, \"name\", name);\n defineReadOnly(this, \"address\", provider.formatter.address(address));\n defineReadOnly(this, \"_resolvedAddress\", resolvedAddress);\n }\n supportsWildcard() {\n if (!this._supportsEip2544) {\n // supportsInterface(bytes4 = selector(\"resolve(bytes,bytes)\"))\n this._supportsEip2544 = this.provider.call({\n to: this.address,\n data: \"0x01ffc9a79061b92300000000000000000000000000000000000000000000000000000000\"\n }).then((result) => {\n return BigNumber.from(result).eq(1);\n }).catch((error) => {\n if (error.code === Logger.errors.CALL_EXCEPTION) {\n return false;\n }\n // Rethrow the error: link is down, etc. Let future attempts retry.\n this._supportsEip2544 = null;\n throw error;\n });\n }\n return this._supportsEip2544;\n }\n _fetch(selector, parameters) {\n return __awaiter(this, void 0, void 0, function* () {\n // e.g. keccak256(\"addr(bytes32,uint256)\")\n const tx = {\n to: this.address,\n ccipReadEnabled: true,\n data: hexConcat([selector, namehash(this.name), (parameters || \"0x\")])\n };\n // Wildcard support; use EIP-2544 to resolve the request\n let parseBytes = false;\n if (yield this.supportsWildcard()) {\n parseBytes = true;\n // selector(\"resolve(bytes,bytes)\")\n tx.data = hexConcat([\"0x9061b923\", encodeBytes([dnsEncode(this.name), tx.data])]);\n }\n try {\n let result = yield this.provider.call(tx);\n if ((arrayify(result).length % 32) === 4) {\n logger.throwError(\"resolver threw error\", Logger.errors.CALL_EXCEPTION, {\n transaction: tx, data: result\n });\n }\n if (parseBytes) {\n result = _parseBytes(result, 0);\n }\n return result;\n }\n catch (error) {\n if (error.code === Logger.errors.CALL_EXCEPTION) {\n return null;\n }\n throw error;\n }\n });\n }\n _fetchBytes(selector, parameters) {\n return __awaiter(this, void 0, void 0, function* () {\n const result = yield this._fetch(selector, parameters);\n if (result != null) {\n return _parseBytes(result, 0);\n }\n return null;\n });\n }\n _getAddress(coinType, hexBytes) {\n const coinInfo = coinInfos[String(coinType)];\n if (coinInfo == null) {\n logger.throwError(`unsupported coin type: ${coinType}`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: `getAddress(${coinType})`\n });\n }\n if (coinInfo.ilk === \"eth\") {\n return this.provider.formatter.address(hexBytes);\n }\n const bytes = arrayify(hexBytes);\n // P2PKH: OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG\n if (coinInfo.p2pkh != null) {\n const p2pkh = hexBytes.match(/^0x76a9([0-9a-f][0-9a-f])([0-9a-f]*)88ac$/);\n if (p2pkh) {\n const length = parseInt(p2pkh[1], 16);\n if (p2pkh[2].length === length * 2 && length >= 1 && length <= 75) {\n return base58Encode(concat([[coinInfo.p2pkh], (\"0x\" + p2pkh[2])]));\n }\n }\n }\n // P2SH: OP_HASH160 OP_EQUAL\n if (coinInfo.p2sh != null) {\n const p2sh = hexBytes.match(/^0xa9([0-9a-f][0-9a-f])([0-9a-f]*)87$/);\n if (p2sh) {\n const length = parseInt(p2sh[1], 16);\n if (p2sh[2].length === length * 2 && length >= 1 && length <= 75) {\n return base58Encode(concat([[coinInfo.p2sh], (\"0x\" + p2sh[2])]));\n }\n }\n }\n // Bech32\n if (coinInfo.prefix != null) {\n const length = bytes[1];\n // https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki#witness-program\n let version = bytes[0];\n if (version === 0x00) {\n if (length !== 20 && length !== 32) {\n version = -1;\n }\n }\n else {\n version = -1;\n }\n if (version >= 0 && bytes.length === 2 + length && length >= 1 && length <= 75) {\n const words = bech32.toWords(bytes.slice(2));\n words.unshift(version);\n return bech32.encode(coinInfo.prefix, words);\n }\n }\n return null;\n }\n getAddress(coinType) {\n return __awaiter(this, void 0, void 0, function* () {\n if (coinType == null) {\n coinType = 60;\n }\n // If Ethereum, use the standard `addr(bytes32)`\n if (coinType === 60) {\n try {\n // keccak256(\"addr(bytes32)\")\n const result = yield this._fetch(\"0x3b3b57de\");\n // No address\n if (result === \"0x\" || result === HashZero) {\n return null;\n }\n return this.provider.formatter.callAddress(result);\n }\n catch (error) {\n if (error.code === Logger.errors.CALL_EXCEPTION) {\n return null;\n }\n throw error;\n }\n }\n // keccak256(\"addr(bytes32,uint256\")\n const hexBytes = yield this._fetchBytes(\"0xf1cb7e06\", bytes32ify(coinType));\n // No address\n if (hexBytes == null || hexBytes === \"0x\") {\n return null;\n }\n // Compute the address\n const address = this._getAddress(coinType, hexBytes);\n if (address == null) {\n logger.throwError(`invalid or unsupported coin data`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: `getAddress(${coinType})`,\n coinType: coinType,\n data: hexBytes\n });\n }\n return address;\n });\n }\n getAvatar() {\n return __awaiter(this, void 0, void 0, function* () {\n const linkage = [{ type: \"name\", content: this.name }];\n try {\n // test data for ricmoo.eth\n //const avatar = \"eip155:1/erc721:0x265385c7f4132228A0d54EB1A9e7460b91c0cC68/29233\";\n const avatar = yield this.getText(\"avatar\");\n if (avatar == null) {\n return null;\n }\n for (let i = 0; i < matchers.length; i++) {\n const match = avatar.match(matchers[i]);\n if (match == null) {\n continue;\n }\n const scheme = match[1].toLowerCase();\n switch (scheme) {\n case \"https\":\n linkage.push({ type: \"url\", content: avatar });\n return { linkage, url: avatar };\n case \"data\":\n linkage.push({ type: \"data\", content: avatar });\n return { linkage, url: avatar };\n case \"ipfs\":\n linkage.push({ type: \"ipfs\", content: avatar });\n return { linkage, url: getIpfsLink(avatar) };\n case \"erc721\":\n case \"erc1155\": {\n // Depending on the ERC type, use tokenURI(uint256) or url(uint256)\n const selector = (scheme === \"erc721\") ? \"0xc87b56dd\" : \"0x0e89341c\";\n linkage.push({ type: scheme, content: avatar });\n // The owner of this name\n const owner = (this._resolvedAddress || (yield this.getAddress()));\n const comps = (match[2] || \"\").split(\"/\");\n if (comps.length !== 2) {\n return null;\n }\n const addr = yield this.provider.formatter.address(comps[0]);\n const tokenId = hexZeroPad(BigNumber.from(comps[1]).toHexString(), 32);\n // Check that this account owns the token\n if (scheme === \"erc721\") {\n // ownerOf(uint256 tokenId)\n const tokenOwner = this.provider.formatter.callAddress(yield this.provider.call({\n to: addr, data: hexConcat([\"0x6352211e\", tokenId])\n }));\n if (owner !== tokenOwner) {\n return null;\n }\n linkage.push({ type: \"owner\", content: tokenOwner });\n }\n else if (scheme === \"erc1155\") {\n // balanceOf(address owner, uint256 tokenId)\n const balance = BigNumber.from(yield this.provider.call({\n to: addr, data: hexConcat([\"0x00fdd58e\", hexZeroPad(owner, 32), tokenId])\n }));\n if (balance.isZero()) {\n return null;\n }\n linkage.push({ type: \"balance\", content: balance.toString() });\n }\n // Call the token contract for the metadata URL\n const tx = {\n to: this.provider.formatter.address(comps[0]),\n data: hexConcat([selector, tokenId])\n };\n let metadataUrl = _parseString(yield this.provider.call(tx), 0);\n if (metadataUrl == null) {\n return null;\n }\n linkage.push({ type: \"metadata-url-base\", content: metadataUrl });\n // ERC-1155 allows a generic {id} in the URL\n if (scheme === \"erc1155\") {\n metadataUrl = metadataUrl.replace(\"{id}\", tokenId.substring(2));\n linkage.push({ type: \"metadata-url-expanded\", content: metadataUrl });\n }\n // Transform IPFS metadata links\n if (metadataUrl.match(/^ipfs:/i)) {\n metadataUrl = getIpfsLink(metadataUrl);\n }\n linkage.push({ type: \"metadata-url\", content: metadataUrl });\n // Get the token metadata\n const metadata = yield fetchJson(metadataUrl);\n if (!metadata) {\n return null;\n }\n linkage.push({ type: \"metadata\", content: JSON.stringify(metadata) });\n // Pull the image URL out\n let imageUrl = metadata.image;\n if (typeof (imageUrl) !== \"string\") {\n return null;\n }\n if (imageUrl.match(/^(https:\\/\\/|data:)/i)) {\n // Allow\n }\n else {\n // Transform IPFS link to gateway\n const ipfs = imageUrl.match(matcherIpfs);\n if (ipfs == null) {\n return null;\n }\n linkage.push({ type: \"url-ipfs\", content: imageUrl });\n imageUrl = getIpfsLink(imageUrl);\n }\n linkage.push({ type: \"url\", content: imageUrl });\n return { linkage, url: imageUrl };\n }\n }\n }\n }\n catch (error) { }\n return null;\n });\n }\n getContentHash() {\n return __awaiter(this, void 0, void 0, function* () {\n // keccak256(\"contenthash()\")\n const hexBytes = yield this._fetchBytes(\"0xbc1c58d1\");\n // No contenthash\n if (hexBytes == null || hexBytes === \"0x\") {\n return null;\n }\n // IPFS (CID: 1, Type: DAG-PB)\n const ipfs = hexBytes.match(/^0xe3010170(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);\n if (ipfs) {\n const length = parseInt(ipfs[3], 16);\n if (ipfs[4].length === length * 2) {\n return \"ipfs:/\\/\" + Base58.encode(\"0x\" + ipfs[1]);\n }\n }\n // IPNS (CID: 1, Type: libp2p-key)\n const ipns = hexBytes.match(/^0xe5010172(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);\n if (ipns) {\n const length = parseInt(ipns[3], 16);\n if (ipns[4].length === length * 2) {\n return \"ipns:/\\/\" + Base58.encode(\"0x\" + ipns[1]);\n }\n }\n // Swarm (CID: 1, Type: swarm-manifest; hash/length hard-coded to keccak256/32)\n const swarm = hexBytes.match(/^0xe40101fa011b20([0-9a-f]*)$/);\n if (swarm) {\n if (swarm[1].length === (32 * 2)) {\n return \"bzz:/\\/\" + swarm[1];\n }\n }\n const skynet = hexBytes.match(/^0x90b2c605([0-9a-f]*)$/);\n if (skynet) {\n if (skynet[1].length === (34 * 2)) {\n // URL Safe base64; https://datatracker.ietf.org/doc/html/rfc4648#section-5\n const urlSafe = { \"=\": \"\", \"+\": \"-\", \"/\": \"_\" };\n const hash = base64Encode(\"0x\" + skynet[1]).replace(/[=+\\/]/g, (a) => (urlSafe[a]));\n return \"sia:/\\/\" + hash;\n }\n }\n return logger.throwError(`invalid or unsupported content hash data`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"getContentHash()\",\n data: hexBytes\n });\n });\n }\n getText(key) {\n return __awaiter(this, void 0, void 0, function* () {\n // The key encoded as parameter to fetchBytes\n let keyBytes = toUtf8Bytes(key);\n // The nodehash consumes the first slot, so the string pointer targets\n // offset 64, with the length at offset 64 and data starting at offset 96\n keyBytes = concat([bytes32ify(64), bytes32ify(keyBytes.length), keyBytes]);\n // Pad to word-size (32 bytes)\n if ((keyBytes.length % 32) !== 0) {\n keyBytes = concat([keyBytes, hexZeroPad(\"0x\", 32 - (key.length % 32))]);\n }\n const hexBytes = yield this._fetchBytes(\"0x59d1d43c\", hexlify(keyBytes));\n if (hexBytes == null || hexBytes === \"0x\") {\n return null;\n }\n return toUtf8String(hexBytes);\n });\n }\n}\nlet defaultFormatter = null;\nlet nextPollId = 1;\nexport class BaseProvider extends Provider {\n /**\n * ready\n *\n * A Promise that resolves only once the provider is ready.\n *\n * Sub-classes that call the super with a network without a chainId\n * MUST set this. Standard named networks have a known chainId.\n *\n */\n constructor(network) {\n super();\n // Events being listened to\n this._events = [];\n this._emitted = { block: -2 };\n this.disableCcipRead = false;\n this.formatter = new.target.getFormatter();\n // If network is any, this Provider allows the underlying\n // network to change dynamically, and we auto-detect the\n // current network\n defineReadOnly(this, \"anyNetwork\", (network === \"any\"));\n if (this.anyNetwork) {\n network = this.detectNetwork();\n }\n if (network instanceof Promise) {\n this._networkPromise = network;\n // Squash any \"unhandled promise\" errors; that do not need to be handled\n network.catch((error) => { });\n // Trigger initial network setting (async)\n this._ready().catch((error) => { });\n }\n else {\n const knownNetwork = getStatic(new.target, \"getNetwork\")(network);\n if (knownNetwork) {\n defineReadOnly(this, \"_network\", knownNetwork);\n this.emit(\"network\", knownNetwork, null);\n }\n else {\n logger.throwArgumentError(\"invalid network\", \"network\", network);\n }\n }\n this._maxInternalBlockNumber = -1024;\n this._lastBlockNumber = -2;\n this._maxFilterBlockRange = 10;\n this._pollingInterval = 4000;\n this._fastQueryDate = 0;\n }\n _ready() {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._network == null) {\n let network = null;\n if (this._networkPromise) {\n try {\n network = yield this._networkPromise;\n }\n catch (error) { }\n }\n // Try the Provider's network detection (this MUST throw if it cannot)\n if (network == null) {\n network = yield this.detectNetwork();\n }\n // This should never happen; every Provider sub-class should have\n // suggested a network by here (or have thrown).\n if (!network) {\n logger.throwError(\"no network detected\", Logger.errors.UNKNOWN_ERROR, {});\n }\n // Possible this call stacked so do not call defineReadOnly again\n if (this._network == null) {\n if (this.anyNetwork) {\n this._network = network;\n }\n else {\n defineReadOnly(this, \"_network\", network);\n }\n this.emit(\"network\", network, null);\n }\n }\n return this._network;\n });\n }\n // This will always return the most recently established network.\n // For \"any\", this can change (a \"network\" event is emitted before\n // any change is reflected); otherwise this cannot change\n get ready() {\n return poll(() => {\n return this._ready().then((network) => {\n return network;\n }, (error) => {\n // If the network isn't running yet, we will wait\n if (error.code === Logger.errors.NETWORK_ERROR && error.event === \"noNetwork\") {\n return undefined;\n }\n throw error;\n });\n });\n }\n // @TODO: Remove this and just create a singleton formatter\n static getFormatter() {\n if (defaultFormatter == null) {\n defaultFormatter = new Formatter();\n }\n return defaultFormatter;\n }\n // @TODO: Remove this and just use getNetwork\n static getNetwork(network) {\n return getNetwork((network == null) ? \"homestead\" : network);\n }\n ccipReadFetch(tx, calldata, urls) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this.disableCcipRead || urls.length === 0) {\n return null;\n }\n const sender = tx.to.toLowerCase();\n const data = calldata.toLowerCase();\n const errorMessages = [];\n for (let i = 0; i < urls.length; i++) {\n const url = urls[i];\n // URL expansion\n const href = url.replace(\"{sender}\", sender).replace(\"{data}\", data);\n // If no {data} is present, use POST; otherwise GET\n const json = (url.indexOf(\"{data}\") >= 0) ? null : JSON.stringify({ data, sender });\n const result = yield fetchJson({ url: href, errorPassThrough: true }, json, (value, response) => {\n value.status = response.statusCode;\n return value;\n });\n if (result.data) {\n return result.data;\n }\n const errorMessage = (result.message || \"unknown error\");\n // 4xx indicates the result is not present; stop\n if (result.status >= 400 && result.status < 500) {\n return logger.throwError(`response not found during CCIP fetch: ${errorMessage}`, Logger.errors.SERVER_ERROR, { url, errorMessage });\n }\n // 5xx indicates server issue; try the next url\n errorMessages.push(errorMessage);\n }\n return logger.throwError(`error encountered during CCIP fetch: ${errorMessages.map((m) => JSON.stringify(m)).join(\", \")}`, Logger.errors.SERVER_ERROR, {\n urls, errorMessages\n });\n });\n }\n // Fetches the blockNumber, but will reuse any result that is less\n // than maxAge old or has been requested since the last request\n _getInternalBlockNumber(maxAge) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this._ready();\n // Allowing stale data up to maxAge old\n if (maxAge > 0) {\n // While there are pending internal block requests...\n while (this._internalBlockNumber) {\n // ...\"remember\" which fetch we started with\n const internalBlockNumber = this._internalBlockNumber;\n try {\n // Check the result is not too stale\n const result = yield internalBlockNumber;\n if ((getTime() - result.respTime) <= maxAge) {\n return result.blockNumber;\n }\n // Too old; fetch a new value\n break;\n }\n catch (error) {\n // The fetch rejected; if we are the first to get the\n // rejection, drop through so we replace it with a new\n // fetch; all others blocked will then get that fetch\n // which won't match the one they \"remembered\" and loop\n if (this._internalBlockNumber === internalBlockNumber) {\n break;\n }\n }\n }\n }\n const reqTime = getTime();\n const checkInternalBlockNumber = resolveProperties({\n blockNumber: this.perform(\"getBlockNumber\", {}),\n networkError: this.getNetwork().then((network) => (null), (error) => (error))\n }).then(({ blockNumber, networkError }) => {\n if (networkError) {\n // Unremember this bad internal block number\n if (this._internalBlockNumber === checkInternalBlockNumber) {\n this._internalBlockNumber = null;\n }\n throw networkError;\n }\n const respTime = getTime();\n blockNumber = BigNumber.from(blockNumber).toNumber();\n if (blockNumber < this._maxInternalBlockNumber) {\n blockNumber = this._maxInternalBlockNumber;\n }\n this._maxInternalBlockNumber = blockNumber;\n this._setFastBlockNumber(blockNumber); // @TODO: Still need this?\n return { blockNumber, reqTime, respTime };\n });\n this._internalBlockNumber = checkInternalBlockNumber;\n // Swallow unhandled exceptions; if needed they are handled else where\n checkInternalBlockNumber.catch((error) => {\n // Don't null the dead (rejected) fetch, if it has already been updated\n if (this._internalBlockNumber === checkInternalBlockNumber) {\n this._internalBlockNumber = null;\n }\n });\n return (yield checkInternalBlockNumber).blockNumber;\n });\n }\n poll() {\n return __awaiter(this, void 0, void 0, function* () {\n const pollId = nextPollId++;\n // Track all running promises, so we can trigger a post-poll once they are complete\n const runners = [];\n let blockNumber = null;\n try {\n blockNumber = yield this._getInternalBlockNumber(100 + this.pollingInterval / 2);\n }\n catch (error) {\n this.emit(\"error\", error);\n return;\n }\n this._setFastBlockNumber(blockNumber);\n // Emit a poll event after we have the latest (fast) block number\n this.emit(\"poll\", pollId, blockNumber);\n // If the block has not changed, meh.\n if (blockNumber === this._lastBlockNumber) {\n this.emit(\"didPoll\", pollId);\n return;\n }\n // First polling cycle, trigger a \"block\" events\n if (this._emitted.block === -2) {\n this._emitted.block = blockNumber - 1;\n }\n if (Math.abs((this._emitted.block) - blockNumber) > 1000) {\n logger.warn(`network block skew detected; skipping block events (emitted=${this._emitted.block} blockNumber${blockNumber})`);\n this.emit(\"error\", logger.makeError(\"network block skew detected\", Logger.errors.NETWORK_ERROR, {\n blockNumber: blockNumber,\n event: \"blockSkew\",\n previousBlockNumber: this._emitted.block\n }));\n this.emit(\"block\", blockNumber);\n }\n else {\n // Notify all listener for each block that has passed\n for (let i = this._emitted.block + 1; i <= blockNumber; i++) {\n this.emit(\"block\", i);\n }\n }\n // The emitted block was updated, check for obsolete events\n if (this._emitted.block !== blockNumber) {\n this._emitted.block = blockNumber;\n Object.keys(this._emitted).forEach((key) => {\n // The block event does not expire\n if (key === \"block\") {\n return;\n }\n // The block we were at when we emitted this event\n const eventBlockNumber = this._emitted[key];\n // We cannot garbage collect pending transactions or blocks here\n // They should be garbage collected by the Provider when setting\n // \"pending\" events\n if (eventBlockNumber === \"pending\") {\n return;\n }\n // Evict any transaction hashes or block hashes over 12 blocks\n // old, since they should not return null anyways\n if (blockNumber - eventBlockNumber > 12) {\n delete this._emitted[key];\n }\n });\n }\n // First polling cycle\n if (this._lastBlockNumber === -2) {\n this._lastBlockNumber = blockNumber - 1;\n }\n // Find all transaction hashes we are waiting on\n this._events.forEach((event) => {\n switch (event.type) {\n case \"tx\": {\n const hash = event.hash;\n let runner = this.getTransactionReceipt(hash).then((receipt) => {\n if (!receipt || receipt.blockNumber == null) {\n return null;\n }\n this._emitted[\"t:\" + hash] = receipt.blockNumber;\n this.emit(hash, receipt);\n return null;\n }).catch((error) => { this.emit(\"error\", error); });\n runners.push(runner);\n break;\n }\n case \"filter\": {\n // We only allow a single getLogs to be in-flight at a time\n if (!event._inflight) {\n event._inflight = true;\n // Filter from the last known event; due to load-balancing\n // and some nodes returning updated block numbers before\n // indexing events, a logs result with 0 entries cannot be\n // trusted and we must retry a range which includes it again\n const filter = event.filter;\n filter.fromBlock = event._lastBlockNumber + 1;\n filter.toBlock = blockNumber;\n // Prevent fitler ranges from growing too wild\n if (filter.toBlock - this._maxFilterBlockRange > filter.fromBlock) {\n filter.fromBlock = filter.toBlock - this._maxFilterBlockRange;\n }\n const runner = this.getLogs(filter).then((logs) => {\n // Allow the next getLogs\n event._inflight = false;\n if (logs.length === 0) {\n return;\n }\n logs.forEach((log) => {\n // Only when we get an event for a given block number\n // can we trust the events are indexed\n if (log.blockNumber > event._lastBlockNumber) {\n event._lastBlockNumber = log.blockNumber;\n }\n // Make sure we stall requests to fetch blocks and txs\n this._emitted[\"b:\" + log.blockHash] = log.blockNumber;\n this._emitted[\"t:\" + log.transactionHash] = log.blockNumber;\n this.emit(filter, log);\n });\n }).catch((error) => {\n this.emit(\"error\", error);\n // Allow another getLogs (the range was not updated)\n event._inflight = false;\n });\n runners.push(runner);\n }\n break;\n }\n }\n });\n this._lastBlockNumber = blockNumber;\n // Once all events for this loop have been processed, emit \"didPoll\"\n Promise.all(runners).then(() => {\n this.emit(\"didPoll\", pollId);\n }).catch((error) => { this.emit(\"error\", error); });\n return;\n });\n }\n // Deprecated; do not use this\n resetEventsBlock(blockNumber) {\n this._lastBlockNumber = blockNumber - 1;\n if (this.polling) {\n this.poll();\n }\n }\n get network() {\n return this._network;\n }\n // This method should query the network if the underlying network\n // can change, such as when connected to a JSON-RPC backend\n detectNetwork() {\n return __awaiter(this, void 0, void 0, function* () {\n return logger.throwError(\"provider does not support network detection\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"provider.detectNetwork\"\n });\n });\n }\n getNetwork() {\n return __awaiter(this, void 0, void 0, function* () {\n const network = yield this._ready();\n // Make sure we are still connected to the same network; this is\n // only an external call for backends which can have the underlying\n // network change spontaneously\n const currentNetwork = yield this.detectNetwork();\n if (network.chainId !== currentNetwork.chainId) {\n // We are allowing network changes, things can get complex fast;\n // make sure you know what you are doing if you use \"any\"\n if (this.anyNetwork) {\n this._network = currentNetwork;\n // Reset all internal block number guards and caches\n this._lastBlockNumber = -2;\n this._fastBlockNumber = null;\n this._fastBlockNumberPromise = null;\n this._fastQueryDate = 0;\n this._emitted.block = -2;\n this._maxInternalBlockNumber = -1024;\n this._internalBlockNumber = null;\n // The \"network\" event MUST happen before this method resolves\n // so any events have a chance to unregister, so we stall an\n // additional event loop before returning from /this/ call\n this.emit(\"network\", currentNetwork, network);\n yield stall(0);\n return this._network;\n }\n const error = logger.makeError(\"underlying network changed\", Logger.errors.NETWORK_ERROR, {\n event: \"changed\",\n network: network,\n detectedNetwork: currentNetwork\n });\n this.emit(\"error\", error);\n throw error;\n }\n return network;\n });\n }\n get blockNumber() {\n this._getInternalBlockNumber(100 + this.pollingInterval / 2).then((blockNumber) => {\n this._setFastBlockNumber(blockNumber);\n }, (error) => { });\n return (this._fastBlockNumber != null) ? this._fastBlockNumber : -1;\n }\n get polling() {\n return (this._poller != null);\n }\n set polling(value) {\n if (value && !this._poller) {\n this._poller = setInterval(() => { this.poll(); }, this.pollingInterval);\n if (!this._bootstrapPoll) {\n this._bootstrapPoll = setTimeout(() => {\n this.poll();\n // We block additional polls until the polling interval\n // is done, to prevent overwhelming the poll function\n this._bootstrapPoll = setTimeout(() => {\n // If polling was disabled, something may require a poke\n // since starting the bootstrap poll and it was disabled\n if (!this._poller) {\n this.poll();\n }\n // Clear out the bootstrap so we can do another\n this._bootstrapPoll = null;\n }, this.pollingInterval);\n }, 0);\n }\n }\n else if (!value && this._poller) {\n clearInterval(this._poller);\n this._poller = null;\n }\n }\n get pollingInterval() {\n return this._pollingInterval;\n }\n set pollingInterval(value) {\n if (typeof (value) !== \"number\" || value <= 0 || parseInt(String(value)) != value) {\n throw new Error(\"invalid polling interval\");\n }\n this._pollingInterval = value;\n if (this._poller) {\n clearInterval(this._poller);\n this._poller = setInterval(() => { this.poll(); }, this._pollingInterval);\n }\n }\n _getFastBlockNumber() {\n const now = getTime();\n // Stale block number, request a newer value\n if ((now - this._fastQueryDate) > 2 * this._pollingInterval) {\n this._fastQueryDate = now;\n this._fastBlockNumberPromise = this.getBlockNumber().then((blockNumber) => {\n if (this._fastBlockNumber == null || blockNumber > this._fastBlockNumber) {\n this._fastBlockNumber = blockNumber;\n }\n return this._fastBlockNumber;\n });\n }\n return this._fastBlockNumberPromise;\n }\n _setFastBlockNumber(blockNumber) {\n // Older block, maybe a stale request\n if (this._fastBlockNumber != null && blockNumber < this._fastBlockNumber) {\n return;\n }\n // Update the time we updated the blocknumber\n this._fastQueryDate = getTime();\n // Newer block number, use it\n if (this._fastBlockNumber == null || blockNumber > this._fastBlockNumber) {\n this._fastBlockNumber = blockNumber;\n this._fastBlockNumberPromise = Promise.resolve(blockNumber);\n }\n }\n waitForTransaction(transactionHash, confirmations, timeout) {\n return __awaiter(this, void 0, void 0, function* () {\n return this._waitForTransaction(transactionHash, (confirmations == null) ? 1 : confirmations, timeout || 0, null);\n });\n }\n _waitForTransaction(transactionHash, confirmations, timeout, replaceable) {\n return __awaiter(this, void 0, void 0, function* () {\n const receipt = yield this.getTransactionReceipt(transactionHash);\n // Receipt is already good\n if ((receipt ? receipt.confirmations : 0) >= confirmations) {\n return receipt;\n }\n // Poll until the receipt is good...\n return new Promise((resolve, reject) => {\n const cancelFuncs = [];\n let done = false;\n const alreadyDone = function () {\n if (done) {\n return true;\n }\n done = true;\n cancelFuncs.forEach((func) => { func(); });\n return false;\n };\n const minedHandler = (receipt) => {\n if (receipt.confirmations < confirmations) {\n return;\n }\n if (alreadyDone()) {\n return;\n }\n resolve(receipt);\n };\n this.on(transactionHash, minedHandler);\n cancelFuncs.push(() => { this.removeListener(transactionHash, minedHandler); });\n if (replaceable) {\n let lastBlockNumber = replaceable.startBlock;\n let scannedBlock = null;\n const replaceHandler = (blockNumber) => __awaiter(this, void 0, void 0, function* () {\n if (done) {\n return;\n }\n // Wait 1 second; this is only used in the case of a fault, so\n // we will trade off a little bit of latency for more consistent\n // results and fewer JSON-RPC calls\n yield stall(1000);\n this.getTransactionCount(replaceable.from).then((nonce) => __awaiter(this, void 0, void 0, function* () {\n if (done) {\n return;\n }\n if (nonce <= replaceable.nonce) {\n lastBlockNumber = blockNumber;\n }\n else {\n // First check if the transaction was mined\n {\n const mined = yield this.getTransaction(transactionHash);\n if (mined && mined.blockNumber != null) {\n return;\n }\n }\n // First time scanning. We start a little earlier for some\n // wiggle room here to handle the eventually consistent nature\n // of blockchain (e.g. the getTransactionCount was for a\n // different block)\n if (scannedBlock == null) {\n scannedBlock = lastBlockNumber - 3;\n if (scannedBlock < replaceable.startBlock) {\n scannedBlock = replaceable.startBlock;\n }\n }\n while (scannedBlock <= blockNumber) {\n if (done) {\n return;\n }\n const block = yield this.getBlockWithTransactions(scannedBlock);\n for (let ti = 0; ti < block.transactions.length; ti++) {\n const tx = block.transactions[ti];\n // Successfully mined!\n if (tx.hash === transactionHash) {\n return;\n }\n // Matches our transaction from and nonce; its a replacement\n if (tx.from === replaceable.from && tx.nonce === replaceable.nonce) {\n if (done) {\n return;\n }\n // Get the receipt of the replacement\n const receipt = yield this.waitForTransaction(tx.hash, confirmations);\n // Already resolved or rejected (prolly a timeout)\n if (alreadyDone()) {\n return;\n }\n // The reason we were replaced\n let reason = \"replaced\";\n if (tx.data === replaceable.data && tx.to === replaceable.to && tx.value.eq(replaceable.value)) {\n reason = \"repriced\";\n }\n else if (tx.data === \"0x\" && tx.from === tx.to && tx.value.isZero()) {\n reason = \"cancelled\";\n }\n // Explain why we were replaced\n reject(logger.makeError(\"transaction was replaced\", Logger.errors.TRANSACTION_REPLACED, {\n cancelled: (reason === \"replaced\" || reason === \"cancelled\"),\n reason,\n replacement: this._wrapTransaction(tx),\n hash: transactionHash,\n receipt\n }));\n return;\n }\n }\n scannedBlock++;\n }\n }\n if (done) {\n return;\n }\n this.once(\"block\", replaceHandler);\n }), (error) => {\n if (done) {\n return;\n }\n this.once(\"block\", replaceHandler);\n });\n });\n if (done) {\n return;\n }\n this.once(\"block\", replaceHandler);\n cancelFuncs.push(() => {\n this.removeListener(\"block\", replaceHandler);\n });\n }\n if (typeof (timeout) === \"number\" && timeout > 0) {\n const timer = setTimeout(() => {\n if (alreadyDone()) {\n return;\n }\n reject(logger.makeError(\"timeout exceeded\", Logger.errors.TIMEOUT, { timeout: timeout }));\n }, timeout);\n if (timer.unref) {\n timer.unref();\n }\n cancelFuncs.push(() => { clearTimeout(timer); });\n }\n });\n });\n }\n getBlockNumber() {\n return __awaiter(this, void 0, void 0, function* () {\n return this._getInternalBlockNumber(0);\n });\n }\n getGasPrice() {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n const result = yield this.perform(\"getGasPrice\", {});\n try {\n return BigNumber.from(result);\n }\n catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getGasPrice\",\n result, error\n });\n }\n });\n }\n getBalance(addressOrName, blockTag) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n const params = yield resolveProperties({\n address: this._getAddress(addressOrName),\n blockTag: this._getBlockTag(blockTag)\n });\n const result = yield this.perform(\"getBalance\", params);\n try {\n return BigNumber.from(result);\n }\n catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getBalance\",\n params, result, error\n });\n }\n });\n }\n getTransactionCount(addressOrName, blockTag) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n const params = yield resolveProperties({\n address: this._getAddress(addressOrName),\n blockTag: this._getBlockTag(blockTag)\n });\n const result = yield this.perform(\"getTransactionCount\", params);\n try {\n return BigNumber.from(result).toNumber();\n }\n catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getTransactionCount\",\n params, result, error\n });\n }\n });\n }\n getCode(addressOrName, blockTag) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n const params = yield resolveProperties({\n address: this._getAddress(addressOrName),\n blockTag: this._getBlockTag(blockTag)\n });\n const result = yield this.perform(\"getCode\", params);\n try {\n return hexlify(result);\n }\n catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getCode\",\n params, result, error\n });\n }\n });\n }\n getStorageAt(addressOrName, position, blockTag) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n const params = yield resolveProperties({\n address: this._getAddress(addressOrName),\n blockTag: this._getBlockTag(blockTag),\n position: Promise.resolve(position).then((p) => hexValue(p))\n });\n const result = yield this.perform(\"getStorageAt\", params);\n try {\n return hexlify(result);\n }\n catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getStorageAt\",\n params, result, error\n });\n }\n });\n }\n // This should be called by any subclass wrapping a TransactionResponse\n _wrapTransaction(tx, hash, startBlock) {\n if (hash != null && hexDataLength(hash) !== 32) {\n throw new Error(\"invalid response - sendTransaction\");\n }\n const result = tx;\n // Check the hash we expect is the same as the hash the server reported\n if (hash != null && tx.hash !== hash) {\n logger.throwError(\"Transaction hash mismatch from Provider.sendTransaction.\", Logger.errors.UNKNOWN_ERROR, { expectedHash: tx.hash, returnedHash: hash });\n }\n result.wait = (confirms, timeout) => __awaiter(this, void 0, void 0, function* () {\n if (confirms == null) {\n confirms = 1;\n }\n if (timeout == null) {\n timeout = 0;\n }\n // Get the details to detect replacement\n let replacement = undefined;\n if (confirms !== 0 && startBlock != null) {\n replacement = {\n data: tx.data,\n from: tx.from,\n nonce: tx.nonce,\n to: tx.to,\n value: tx.value,\n startBlock\n };\n }\n const receipt = yield this._waitForTransaction(tx.hash, confirms, timeout, replacement);\n if (receipt == null && confirms === 0) {\n return null;\n }\n // No longer pending, allow the polling loop to garbage collect this\n this._emitted[\"t:\" + tx.hash] = receipt.blockNumber;\n if (receipt.status === 0) {\n logger.throwError(\"transaction failed\", Logger.errors.CALL_EXCEPTION, {\n transactionHash: tx.hash,\n transaction: tx,\n receipt: receipt\n });\n }\n return receipt;\n });\n return result;\n }\n sendTransaction(signedTransaction) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n const hexTx = yield Promise.resolve(signedTransaction).then(t => hexlify(t));\n const tx = this.formatter.transaction(signedTransaction);\n if (tx.confirmations == null) {\n tx.confirmations = 0;\n }\n const blockNumber = yield this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n try {\n const hash = yield this.perform(\"sendTransaction\", { signedTransaction: hexTx });\n return this._wrapTransaction(tx, hash, blockNumber);\n }\n catch (error) {\n error.transaction = tx;\n error.transactionHash = tx.hash;\n throw error;\n }\n });\n }\n _getTransactionRequest(transaction) {\n return __awaiter(this, void 0, void 0, function* () {\n const values = yield transaction;\n const tx = {};\n [\"from\", \"to\"].forEach((key) => {\n if (values[key] == null) {\n return;\n }\n tx[key] = Promise.resolve(values[key]).then((v) => (v ? this._getAddress(v) : null));\n });\n [\"gasLimit\", \"gasPrice\", \"maxFeePerGas\", \"maxPriorityFeePerGas\", \"value\"].forEach((key) => {\n if (values[key] == null) {\n return;\n }\n tx[key] = Promise.resolve(values[key]).then((v) => (v ? BigNumber.from(v) : null));\n });\n [\"type\"].forEach((key) => {\n if (values[key] == null) {\n return;\n }\n tx[key] = Promise.resolve(values[key]).then((v) => ((v != null) ? v : null));\n });\n if (values.accessList) {\n tx.accessList = this.formatter.accessList(values.accessList);\n }\n [\"data\"].forEach((key) => {\n if (values[key] == null) {\n return;\n }\n tx[key] = Promise.resolve(values[key]).then((v) => (v ? hexlify(v) : null));\n });\n return this.formatter.transactionRequest(yield resolveProperties(tx));\n });\n }\n _getFilter(filter) {\n return __awaiter(this, void 0, void 0, function* () {\n filter = yield filter;\n const result = {};\n if (filter.address != null) {\n result.address = this._getAddress(filter.address);\n }\n [\"blockHash\", \"topics\"].forEach((key) => {\n if (filter[key] == null) {\n return;\n }\n result[key] = filter[key];\n });\n [\"fromBlock\", \"toBlock\"].forEach((key) => {\n if (filter[key] == null) {\n return;\n }\n result[key] = this._getBlockTag(filter[key]);\n });\n return this.formatter.filter(yield resolveProperties(result));\n });\n }\n _call(transaction, blockTag, attempt) {\n return __awaiter(this, void 0, void 0, function* () {\n if (attempt >= MAX_CCIP_REDIRECTS) {\n logger.throwError(\"CCIP read exceeded maximum redirections\", Logger.errors.SERVER_ERROR, {\n redirects: attempt, transaction\n });\n }\n const txSender = transaction.to;\n const result = yield this.perform(\"call\", { transaction, blockTag });\n // CCIP Read request via OffchainLookup(address,string[],bytes,bytes4,bytes)\n if (attempt >= 0 && blockTag === \"latest\" && txSender != null && result.substring(0, 10) === \"0x556f1830\" && (hexDataLength(result) % 32 === 4)) {\n try {\n const data = hexDataSlice(result, 4);\n // Check the sender of the OffchainLookup matches the transaction\n const sender = hexDataSlice(data, 0, 32);\n if (!BigNumber.from(sender).eq(txSender)) {\n logger.throwError(\"CCIP Read sender did not match\", Logger.errors.CALL_EXCEPTION, {\n name: \"OffchainLookup\",\n signature: \"OffchainLookup(address,string[],bytes,bytes4,bytes)\",\n transaction, data: result\n });\n }\n // Read the URLs from the response\n const urls = [];\n const urlsOffset = BigNumber.from(hexDataSlice(data, 32, 64)).toNumber();\n const urlsLength = BigNumber.from(hexDataSlice(data, urlsOffset, urlsOffset + 32)).toNumber();\n const urlsData = hexDataSlice(data, urlsOffset + 32);\n for (let u = 0; u < urlsLength; u++) {\n const url = _parseString(urlsData, u * 32);\n if (url == null) {\n logger.throwError(\"CCIP Read contained corrupt URL string\", Logger.errors.CALL_EXCEPTION, {\n name: \"OffchainLookup\",\n signature: \"OffchainLookup(address,string[],bytes,bytes4,bytes)\",\n transaction, data: result\n });\n }\n urls.push(url);\n }\n // Get the CCIP calldata to forward\n const calldata = _parseBytes(data, 64);\n // Get the callbackSelector (bytes4)\n if (!BigNumber.from(hexDataSlice(data, 100, 128)).isZero()) {\n logger.throwError(\"CCIP Read callback selector included junk\", Logger.errors.CALL_EXCEPTION, {\n name: \"OffchainLookup\",\n signature: \"OffchainLookup(address,string[],bytes,bytes4,bytes)\",\n transaction, data: result\n });\n }\n const callbackSelector = hexDataSlice(data, 96, 100);\n // Get the extra data to send back to the contract as context\n const extraData = _parseBytes(data, 128);\n const ccipResult = yield this.ccipReadFetch(transaction, calldata, urls);\n if (ccipResult == null) {\n logger.throwError(\"CCIP Read disabled or provided no URLs\", Logger.errors.CALL_EXCEPTION, {\n name: \"OffchainLookup\",\n signature: \"OffchainLookup(address,string[],bytes,bytes4,bytes)\",\n transaction, data: result\n });\n }\n const tx = {\n to: txSender,\n data: hexConcat([callbackSelector, encodeBytes([ccipResult, extraData])])\n };\n return this._call(tx, blockTag, attempt + 1);\n }\n catch (error) {\n if (error.code === Logger.errors.SERVER_ERROR) {\n throw error;\n }\n }\n }\n try {\n return hexlify(result);\n }\n catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"call\",\n params: { transaction, blockTag }, result, error\n });\n }\n });\n }\n call(transaction, blockTag) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n const resolved = yield resolveProperties({\n transaction: this._getTransactionRequest(transaction),\n blockTag: this._getBlockTag(blockTag),\n ccipReadEnabled: Promise.resolve(transaction.ccipReadEnabled)\n });\n return this._call(resolved.transaction, resolved.blockTag, resolved.ccipReadEnabled ? 0 : -1);\n });\n }\n estimateGas(transaction) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n const params = yield resolveProperties({\n transaction: this._getTransactionRequest(transaction)\n });\n const result = yield this.perform(\"estimateGas\", params);\n try {\n return BigNumber.from(result);\n }\n catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"estimateGas\",\n params, result, error\n });\n }\n });\n }\n _getAddress(addressOrName) {\n return __awaiter(this, void 0, void 0, function* () {\n addressOrName = yield addressOrName;\n if (typeof (addressOrName) !== \"string\") {\n logger.throwArgumentError(\"invalid address or ENS name\", \"name\", addressOrName);\n }\n const address = yield this.resolveName(addressOrName);\n if (address == null) {\n logger.throwError(\"ENS name not configured\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: `resolveName(${JSON.stringify(addressOrName)})`\n });\n }\n return address;\n });\n }\n _getBlock(blockHashOrBlockTag, includeTransactions) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n blockHashOrBlockTag = yield blockHashOrBlockTag;\n // If blockTag is a number (not \"latest\", etc), this is the block number\n let blockNumber = -128;\n const params = {\n includeTransactions: !!includeTransactions\n };\n if (isHexString(blockHashOrBlockTag, 32)) {\n params.blockHash = blockHashOrBlockTag;\n }\n else {\n try {\n params.blockTag = yield this._getBlockTag(blockHashOrBlockTag);\n if (isHexString(params.blockTag)) {\n blockNumber = parseInt(params.blockTag.substring(2), 16);\n }\n }\n catch (error) {\n logger.throwArgumentError(\"invalid block hash or block tag\", \"blockHashOrBlockTag\", blockHashOrBlockTag);\n }\n }\n return poll(() => __awaiter(this, void 0, void 0, function* () {\n const block = yield this.perform(\"getBlock\", params);\n // Block was not found\n if (block == null) {\n // For blockhashes, if we didn't say it existed, that blockhash may\n // not exist. If we did see it though, perhaps from a log, we know\n // it exists, and this node is just not caught up yet.\n if (params.blockHash != null) {\n if (this._emitted[\"b:\" + params.blockHash] == null) {\n return null;\n }\n }\n // For block tags, if we are asking for a future block, we return null\n if (params.blockTag != null) {\n if (blockNumber > this._emitted.block) {\n return null;\n }\n }\n // Retry on the next block\n return undefined;\n }\n // Add transactions\n if (includeTransactions) {\n let blockNumber = null;\n for (let i = 0; i < block.transactions.length; i++) {\n const tx = block.transactions[i];\n if (tx.blockNumber == null) {\n tx.confirmations = 0;\n }\n else if (tx.confirmations == null) {\n if (blockNumber == null) {\n blockNumber = yield this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n }\n // Add the confirmations using the fast block number (pessimistic)\n let confirmations = (blockNumber - tx.blockNumber) + 1;\n if (confirmations <= 0) {\n confirmations = 1;\n }\n tx.confirmations = confirmations;\n }\n }\n const blockWithTxs = this.formatter.blockWithTransactions(block);\n blockWithTxs.transactions = blockWithTxs.transactions.map((tx) => this._wrapTransaction(tx));\n return blockWithTxs;\n }\n return this.formatter.block(block);\n }), { oncePoll: this });\n });\n }\n getBlock(blockHashOrBlockTag) {\n return (this._getBlock(blockHashOrBlockTag, false));\n }\n getBlockWithTransactions(blockHashOrBlockTag) {\n return (this._getBlock(blockHashOrBlockTag, true));\n }\n getTransaction(transactionHash) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n transactionHash = yield transactionHash;\n const params = { transactionHash: this.formatter.hash(transactionHash, true) };\n return poll(() => __awaiter(this, void 0, void 0, function* () {\n const result = yield this.perform(\"getTransaction\", params);\n if (result == null) {\n if (this._emitted[\"t:\" + transactionHash] == null) {\n return null;\n }\n return undefined;\n }\n const tx = this.formatter.transactionResponse(result);\n if (tx.blockNumber == null) {\n tx.confirmations = 0;\n }\n else if (tx.confirmations == null) {\n const blockNumber = yield this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n // Add the confirmations using the fast block number (pessimistic)\n let confirmations = (blockNumber - tx.blockNumber) + 1;\n if (confirmations <= 0) {\n confirmations = 1;\n }\n tx.confirmations = confirmations;\n }\n return this._wrapTransaction(tx);\n }), { oncePoll: this });\n });\n }\n getTransactionReceipt(transactionHash) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n transactionHash = yield transactionHash;\n const params = { transactionHash: this.formatter.hash(transactionHash, true) };\n return poll(() => __awaiter(this, void 0, void 0, function* () {\n const result = yield this.perform(\"getTransactionReceipt\", params);\n if (result == null) {\n if (this._emitted[\"t:\" + transactionHash] == null) {\n return null;\n }\n return undefined;\n }\n // \"geth-etc\" returns receipts before they are ready\n if (result.blockHash == null) {\n return undefined;\n }\n const receipt = this.formatter.receipt(result);\n if (receipt.blockNumber == null) {\n receipt.confirmations = 0;\n }\n else if (receipt.confirmations == null) {\n const blockNumber = yield this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n // Add the confirmations using the fast block number (pessimistic)\n let confirmations = (blockNumber - receipt.blockNumber) + 1;\n if (confirmations <= 0) {\n confirmations = 1;\n }\n receipt.confirmations = confirmations;\n }\n return receipt;\n }), { oncePoll: this });\n });\n }\n getLogs(filter) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n const params = yield resolveProperties({ filter: this._getFilter(filter) });\n const logs = yield this.perform(\"getLogs\", params);\n logs.forEach((log) => {\n if (log.removed == null) {\n log.removed = false;\n }\n });\n return Formatter.arrayOf(this.formatter.filterLog.bind(this.formatter))(logs);\n });\n }\n getEtherPrice() {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n return this.perform(\"getEtherPrice\", {});\n });\n }\n _getBlockTag(blockTag) {\n return __awaiter(this, void 0, void 0, function* () {\n blockTag = yield blockTag;\n if (typeof (blockTag) === \"number\" && blockTag < 0) {\n if (blockTag % 1) {\n logger.throwArgumentError(\"invalid BlockTag\", \"blockTag\", blockTag);\n }\n let blockNumber = yield this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n blockNumber += blockTag;\n if (blockNumber < 0) {\n blockNumber = 0;\n }\n return this.formatter.blockTag(blockNumber);\n }\n return this.formatter.blockTag(blockTag);\n });\n }\n getResolver(name) {\n return __awaiter(this, void 0, void 0, function* () {\n let currentName = name;\n while (true) {\n if (currentName === \"\" || currentName === \".\") {\n return null;\n }\n // Optimization since the eth node cannot change and does\n // not have a wildcard resolver\n if (name !== \"eth\" && currentName === \"eth\") {\n return null;\n }\n // Check the current node for a resolver\n const addr = yield this._getResolver(currentName, \"getResolver\");\n // Found a resolver!\n if (addr != null) {\n const resolver = new Resolver(this, addr, name);\n // Legacy resolver found, using EIP-2544 so it isn't safe to use\n if (currentName !== name && !(yield resolver.supportsWildcard())) {\n return null;\n }\n return resolver;\n }\n // Get the parent node\n currentName = currentName.split(\".\").slice(1).join(\".\");\n }\n });\n }\n _getResolver(name, operation) {\n return __awaiter(this, void 0, void 0, function* () {\n if (operation == null) {\n operation = \"ENS\";\n }\n const network = yield this.getNetwork();\n // No ENS...\n if (!network.ensAddress) {\n logger.throwError(\"network does not support ENS\", Logger.errors.UNSUPPORTED_OPERATION, { operation, network: network.name });\n }\n try {\n // keccak256(\"resolver(bytes32)\")\n const addrData = yield this.call({\n to: network.ensAddress,\n data: (\"0x0178b8bf\" + namehash(name).substring(2))\n });\n return this.formatter.callAddress(addrData);\n }\n catch (error) {\n // ENS registry cannot throw errors on resolver(bytes32)\n }\n return null;\n });\n }\n resolveName(name) {\n return __awaiter(this, void 0, void 0, function* () {\n name = yield name;\n // If it is already an address, nothing to resolve\n try {\n return Promise.resolve(this.formatter.address(name));\n }\n catch (error) {\n // If is is a hexstring, the address is bad (See #694)\n if (isHexString(name)) {\n throw error;\n }\n }\n if (typeof (name) !== \"string\") {\n logger.throwArgumentError(\"invalid ENS name\", \"name\", name);\n }\n // Get the addr from the resolver\n const resolver = yield this.getResolver(name);\n if (!resolver) {\n return null;\n }\n return yield resolver.getAddress();\n });\n }\n lookupAddress(address) {\n return __awaiter(this, void 0, void 0, function* () {\n address = yield address;\n address = this.formatter.address(address);\n const node = address.substring(2).toLowerCase() + \".addr.reverse\";\n const resolverAddr = yield this._getResolver(node, \"lookupAddress\");\n if (resolverAddr == null) {\n return null;\n }\n // keccak(\"name(bytes32)\")\n const name = _parseString(yield this.call({\n to: resolverAddr,\n data: (\"0x691f3431\" + namehash(node).substring(2))\n }), 0);\n const addr = yield this.resolveName(name);\n if (addr != address) {\n return null;\n }\n return name;\n });\n }\n getAvatar(nameOrAddress) {\n return __awaiter(this, void 0, void 0, function* () {\n let resolver = null;\n if (isHexString(nameOrAddress)) {\n // Address; reverse lookup\n const address = this.formatter.address(nameOrAddress);\n const node = address.substring(2).toLowerCase() + \".addr.reverse\";\n const resolverAddress = yield this._getResolver(node, \"getAvatar\");\n if (!resolverAddress) {\n return null;\n }\n // Try resolving the avatar against the addr.reverse resolver\n resolver = new Resolver(this, resolverAddress, node);\n try {\n const avatar = yield resolver.getAvatar();\n if (avatar) {\n return avatar.url;\n }\n }\n catch (error) {\n if (error.code !== Logger.errors.CALL_EXCEPTION) {\n throw error;\n }\n }\n // Try getting the name and performing forward lookup; allowing wildcards\n try {\n // keccak(\"name(bytes32)\")\n const name = _parseString(yield this.call({\n to: resolverAddress,\n data: (\"0x691f3431\" + namehash(node).substring(2))\n }), 0);\n resolver = yield this.getResolver(name);\n }\n catch (error) {\n if (error.code !== Logger.errors.CALL_EXCEPTION) {\n throw error;\n }\n return null;\n }\n }\n else {\n // ENS name; forward lookup with wildcard\n resolver = yield this.getResolver(nameOrAddress);\n if (!resolver) {\n return null;\n }\n }\n const avatar = yield resolver.getAvatar();\n if (avatar == null) {\n return null;\n }\n return avatar.url;\n });\n }\n perform(method, params) {\n return logger.throwError(method + \" not implemented\", Logger.errors.NOT_IMPLEMENTED, { operation: method });\n }\n _startEvent(event) {\n this.polling = (this._events.filter((e) => e.pollable()).length > 0);\n }\n _stopEvent(event) {\n this.polling = (this._events.filter((e) => e.pollable()).length > 0);\n }\n _addEventListener(eventName, listener, once) {\n const event = new Event(getEventTag(eventName), listener, once);\n this._events.push(event);\n this._startEvent(event);\n return this;\n }\n on(eventName, listener) {\n return this._addEventListener(eventName, listener, false);\n }\n once(eventName, listener) {\n return this._addEventListener(eventName, listener, true);\n }\n emit(eventName, ...args) {\n let result = false;\n let stopped = [];\n let eventTag = getEventTag(eventName);\n this._events = this._events.filter((event) => {\n if (event.tag !== eventTag) {\n return true;\n }\n setTimeout(() => {\n event.listener.apply(this, args);\n }, 0);\n result = true;\n if (event.once) {\n stopped.push(event);\n return false;\n }\n return true;\n });\n stopped.forEach((event) => { this._stopEvent(event); });\n return result;\n }\n listenerCount(eventName) {\n if (!eventName) {\n return this._events.length;\n }\n let eventTag = getEventTag(eventName);\n return this._events.filter((event) => {\n return (event.tag === eventTag);\n }).length;\n }\n listeners(eventName) {\n if (eventName == null) {\n return this._events.map((event) => event.listener);\n }\n let eventTag = getEventTag(eventName);\n return this._events\n .filter((event) => (event.tag === eventTag))\n .map((event) => event.listener);\n }\n off(eventName, listener) {\n if (listener == null) {\n return this.removeAllListeners(eventName);\n }\n const stopped = [];\n let found = false;\n let eventTag = getEventTag(eventName);\n this._events = this._events.filter((event) => {\n if (event.tag !== eventTag || event.listener != listener) {\n return true;\n }\n if (found) {\n return true;\n }\n found = true;\n stopped.push(event);\n return false;\n });\n stopped.forEach((event) => { this._stopEvent(event); });\n return this;\n }\n removeAllListeners(eventName) {\n let stopped = [];\n if (eventName == null) {\n stopped = this._events;\n this._events = [];\n }\n else {\n const eventTag = getEventTag(eventName);\n this._events = this._events.filter((event) => {\n if (event.tag !== eventTag) {\n return true;\n }\n stopped.push(event);\n return false;\n });\n }\n stopped.forEach((event) => { this._stopEvent(event); });\n return this;\n }\n}\n//# sourceMappingURL=base-provider.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { Signer } from \"@ethersproject/abstract-signer\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { hexlify, hexValue, hexZeroPad, isHexString } from \"@ethersproject/bytes\";\nimport { _TypedDataEncoder } from \"@ethersproject/hash\";\nimport { checkProperties, deepCopy, defineReadOnly, getStatic, resolveProperties, shallowCopy } from \"@ethersproject/properties\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\nimport { accessListify } from \"@ethersproject/transactions\";\nimport { fetchJson, poll } from \"@ethersproject/web\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { BaseProvider } from \"./base-provider\";\nconst errorGas = [\"call\", \"estimateGas\"];\nfunction spelunk(value, requireData) {\n if (value == null) {\n return null;\n }\n // These *are* the droids we're looking for.\n if (typeof (value.message) === \"string\" && value.message.match(\"reverted\")) {\n const data = isHexString(value.data) ? value.data : null;\n if (!requireData || data) {\n return { message: value.message, data };\n }\n }\n // Spelunk further...\n if (typeof (value) === \"object\") {\n for (const key in value) {\n const result = spelunk(value[key], requireData);\n if (result) {\n return result;\n }\n }\n return null;\n }\n // Might be a JSON string we can further descend...\n if (typeof (value) === \"string\") {\n try {\n return spelunk(JSON.parse(value), requireData);\n }\n catch (error) { }\n }\n return null;\n}\nfunction checkError(method, error, params) {\n const transaction = params.transaction || params.signedTransaction;\n // Undo the \"convenience\" some nodes are attempting to prevent backwards\n // incompatibility; maybe for v6 consider forwarding reverts as errors\n if (method === \"call\") {\n const result = spelunk(error, true);\n if (result) {\n return result.data;\n }\n // Nothing descriptive..\n logger.throwError(\"missing revert data in call exception; Transaction reverted without a reason string\", Logger.errors.CALL_EXCEPTION, {\n data: \"0x\", transaction, error\n });\n }\n if (method === \"estimateGas\") {\n // Try to find something, with a preference on SERVER_ERROR body\n let result = spelunk(error.body, false);\n if (result == null) {\n result = spelunk(error, false);\n }\n // Found \"reverted\", this is a CALL_EXCEPTION\n if (result) {\n logger.throwError(\"cannot estimate gas; transaction may fail or may require manual gas limit\", Logger.errors.UNPREDICTABLE_GAS_LIMIT, {\n reason: result.message, method, transaction, error\n });\n }\n }\n // @TODO: Should we spelunk for message too?\n let message = error.message;\n if (error.code === Logger.errors.SERVER_ERROR && error.error && typeof (error.error.message) === \"string\") {\n message = error.error.message;\n }\n else if (typeof (error.body) === \"string\") {\n message = error.body;\n }\n else if (typeof (error.responseText) === \"string\") {\n message = error.responseText;\n }\n message = (message || \"\").toLowerCase();\n // \"insufficient funds for gas * price + value + cost(data)\"\n if (message.match(/insufficient funds|base fee exceeds gas limit/i)) {\n logger.throwError(\"insufficient funds for intrinsic transaction cost\", Logger.errors.INSUFFICIENT_FUNDS, {\n error, method, transaction\n });\n }\n // \"nonce too low\"\n if (message.match(/nonce (is )?too low/i)) {\n logger.throwError(\"nonce has already been used\", Logger.errors.NONCE_EXPIRED, {\n error, method, transaction\n });\n }\n // \"replacement transaction underpriced\"\n if (message.match(/replacement transaction underpriced|transaction gas price.*too low/i)) {\n logger.throwError(\"replacement fee too low\", Logger.errors.REPLACEMENT_UNDERPRICED, {\n error, method, transaction\n });\n }\n // \"replacement transaction underpriced\"\n if (message.match(/only replay-protected/i)) {\n logger.throwError(\"legacy pre-eip-155 transactions not supported\", Logger.errors.UNSUPPORTED_OPERATION, {\n error, method, transaction\n });\n }\n if (errorGas.indexOf(method) >= 0 && message.match(/gas required exceeds allowance|always failing transaction|execution reverted/)) {\n logger.throwError(\"cannot estimate gas; transaction may fail or may require manual gas limit\", Logger.errors.UNPREDICTABLE_GAS_LIMIT, {\n error, method, transaction\n });\n }\n throw error;\n}\nfunction timer(timeout) {\n return new Promise(function (resolve) {\n setTimeout(resolve, timeout);\n });\n}\nfunction getResult(payload) {\n if (payload.error) {\n // @TODO: not any\n const error = new Error(payload.error.message);\n error.code = payload.error.code;\n error.data = payload.error.data;\n throw error;\n }\n return payload.result;\n}\nfunction getLowerCase(value) {\n if (value) {\n return value.toLowerCase();\n }\n return value;\n}\nconst _constructorGuard = {};\nexport class JsonRpcSigner extends Signer {\n constructor(constructorGuard, provider, addressOrIndex) {\n super();\n if (constructorGuard !== _constructorGuard) {\n throw new Error(\"do not call the JsonRpcSigner constructor directly; use provider.getSigner\");\n }\n defineReadOnly(this, \"provider\", provider);\n if (addressOrIndex == null) {\n addressOrIndex = 0;\n }\n if (typeof (addressOrIndex) === \"string\") {\n defineReadOnly(this, \"_address\", this.provider.formatter.address(addressOrIndex));\n defineReadOnly(this, \"_index\", null);\n }\n else if (typeof (addressOrIndex) === \"number\") {\n defineReadOnly(this, \"_index\", addressOrIndex);\n defineReadOnly(this, \"_address\", null);\n }\n else {\n logger.throwArgumentError(\"invalid address or index\", \"addressOrIndex\", addressOrIndex);\n }\n }\n connect(provider) {\n return logger.throwError(\"cannot alter JSON-RPC Signer connection\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"connect\"\n });\n }\n connectUnchecked() {\n return new UncheckedJsonRpcSigner(_constructorGuard, this.provider, this._address || this._index);\n }\n getAddress() {\n if (this._address) {\n return Promise.resolve(this._address);\n }\n return this.provider.send(\"eth_accounts\", []).then((accounts) => {\n if (accounts.length <= this._index) {\n logger.throwError(\"unknown account #\" + this._index, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"getAddress\"\n });\n }\n return this.provider.formatter.address(accounts[this._index]);\n });\n }\n sendUncheckedTransaction(transaction) {\n transaction = shallowCopy(transaction);\n const fromAddress = this.getAddress().then((address) => {\n if (address) {\n address = address.toLowerCase();\n }\n return address;\n });\n // The JSON-RPC for eth_sendTransaction uses 90000 gas; if the user\n // wishes to use this, it is easy to specify explicitly, otherwise\n // we look it up for them.\n if (transaction.gasLimit == null) {\n const estimate = shallowCopy(transaction);\n estimate.from = fromAddress;\n transaction.gasLimit = this.provider.estimateGas(estimate);\n }\n if (transaction.to != null) {\n transaction.to = Promise.resolve(transaction.to).then((to) => __awaiter(this, void 0, void 0, function* () {\n if (to == null) {\n return null;\n }\n const address = yield this.provider.resolveName(to);\n if (address == null) {\n logger.throwArgumentError(\"provided ENS name resolves to null\", \"tx.to\", to);\n }\n return address;\n }));\n }\n return resolveProperties({\n tx: resolveProperties(transaction),\n sender: fromAddress\n }).then(({ tx, sender }) => {\n if (tx.from != null) {\n if (tx.from.toLowerCase() !== sender) {\n logger.throwArgumentError(\"from address mismatch\", \"transaction\", transaction);\n }\n }\n else {\n tx.from = sender;\n }\n const hexTx = this.provider.constructor.hexlifyTransaction(tx, { from: true });\n return this.provider.send(\"eth_sendTransaction\", [hexTx]).then((hash) => {\n return hash;\n }, (error) => {\n return checkError(\"sendTransaction\", error, hexTx);\n });\n });\n }\n signTransaction(transaction) {\n return logger.throwError(\"signing transactions is unsupported\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"signTransaction\"\n });\n }\n sendTransaction(transaction) {\n return __awaiter(this, void 0, void 0, function* () {\n // This cannot be mined any earlier than any recent block\n const blockNumber = yield this.provider._getInternalBlockNumber(100 + 2 * this.provider.pollingInterval);\n // Send the transaction\n const hash = yield this.sendUncheckedTransaction(transaction);\n try {\n // Unfortunately, JSON-RPC only provides and opaque transaction hash\n // for a response, and we need the actual transaction, so we poll\n // for it; it should show up very quickly\n return yield poll(() => __awaiter(this, void 0, void 0, function* () {\n const tx = yield this.provider.getTransaction(hash);\n if (tx === null) {\n return undefined;\n }\n return this.provider._wrapTransaction(tx, hash, blockNumber);\n }), { oncePoll: this.provider });\n }\n catch (error) {\n error.transactionHash = hash;\n throw error;\n }\n });\n }\n signMessage(message) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = ((typeof (message) === \"string\") ? toUtf8Bytes(message) : message);\n const address = yield this.getAddress();\n return yield this.provider.send(\"personal_sign\", [hexlify(data), address.toLowerCase()]);\n });\n }\n _legacySignMessage(message) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = ((typeof (message) === \"string\") ? toUtf8Bytes(message) : message);\n const address = yield this.getAddress();\n // https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign\n return yield this.provider.send(\"eth_sign\", [address.toLowerCase(), hexlify(data)]);\n });\n }\n _signTypedData(domain, types, value) {\n return __awaiter(this, void 0, void 0, function* () {\n // Populate any ENS names (in-place)\n const populated = yield _TypedDataEncoder.resolveNames(domain, types, value, (name) => {\n return this.provider.resolveName(name);\n });\n const address = yield this.getAddress();\n return yield this.provider.send(\"eth_signTypedData_v4\", [\n address.toLowerCase(),\n JSON.stringify(_TypedDataEncoder.getPayload(populated.domain, types, populated.value))\n ]);\n });\n }\n unlock(password) {\n return __awaiter(this, void 0, void 0, function* () {\n const provider = this.provider;\n const address = yield this.getAddress();\n return provider.send(\"personal_unlockAccount\", [address.toLowerCase(), password, null]);\n });\n }\n}\nclass UncheckedJsonRpcSigner extends JsonRpcSigner {\n sendTransaction(transaction) {\n return this.sendUncheckedTransaction(transaction).then((hash) => {\n return {\n hash: hash,\n nonce: null,\n gasLimit: null,\n gasPrice: null,\n data: null,\n value: null,\n chainId: null,\n confirmations: 0,\n from: null,\n wait: (confirmations) => { return this.provider.waitForTransaction(hash, confirmations); }\n };\n });\n }\n}\nconst allowedTransactionKeys = {\n chainId: true, data: true, gasLimit: true, gasPrice: true, nonce: true, to: true, value: true,\n type: true, accessList: true,\n maxFeePerGas: true, maxPriorityFeePerGas: true\n};\nexport class JsonRpcProvider extends BaseProvider {\n constructor(url, network) {\n let networkOrReady = network;\n // The network is unknown, query the JSON-RPC for it\n if (networkOrReady == null) {\n networkOrReady = new Promise((resolve, reject) => {\n setTimeout(() => {\n this.detectNetwork().then((network) => {\n resolve(network);\n }, (error) => {\n reject(error);\n });\n }, 0);\n });\n }\n super(networkOrReady);\n // Default URL\n if (!url) {\n url = getStatic(this.constructor, \"defaultUrl\")();\n }\n if (typeof (url) === \"string\") {\n defineReadOnly(this, \"connection\", Object.freeze({\n url: url\n }));\n }\n else {\n defineReadOnly(this, \"connection\", Object.freeze(shallowCopy(url)));\n }\n this._nextId = 42;\n }\n get _cache() {\n if (this._eventLoopCache == null) {\n this._eventLoopCache = {};\n }\n return this._eventLoopCache;\n }\n static defaultUrl() {\n return \"http:/\\/localhost:8545\";\n }\n detectNetwork() {\n if (!this._cache[\"detectNetwork\"]) {\n this._cache[\"detectNetwork\"] = this._uncachedDetectNetwork();\n // Clear this cache at the beginning of the next event loop\n setTimeout(() => {\n this._cache[\"detectNetwork\"] = null;\n }, 0);\n }\n return this._cache[\"detectNetwork\"];\n }\n _uncachedDetectNetwork() {\n return __awaiter(this, void 0, void 0, function* () {\n yield timer(0);\n let chainId = null;\n try {\n chainId = yield this.send(\"eth_chainId\", []);\n }\n catch (error) {\n try {\n chainId = yield this.send(\"net_version\", []);\n }\n catch (error) { }\n }\n if (chainId != null) {\n const getNetwork = getStatic(this.constructor, \"getNetwork\");\n try {\n return getNetwork(BigNumber.from(chainId).toNumber());\n }\n catch (error) {\n return logger.throwError(\"could not detect network\", Logger.errors.NETWORK_ERROR, {\n chainId: chainId,\n event: \"invalidNetwork\",\n serverError: error\n });\n }\n }\n return logger.throwError(\"could not detect network\", Logger.errors.NETWORK_ERROR, {\n event: \"noNetwork\"\n });\n });\n }\n getSigner(addressOrIndex) {\n return new JsonRpcSigner(_constructorGuard, this, addressOrIndex);\n }\n getUncheckedSigner(addressOrIndex) {\n return this.getSigner(addressOrIndex).connectUnchecked();\n }\n listAccounts() {\n return this.send(\"eth_accounts\", []).then((accounts) => {\n return accounts.map((a) => this.formatter.address(a));\n });\n }\n send(method, params) {\n const request = {\n method: method,\n params: params,\n id: (this._nextId++),\n jsonrpc: \"2.0\"\n };\n this.emit(\"debug\", {\n action: \"request\",\n request: deepCopy(request),\n provider: this\n });\n // We can expand this in the future to any call, but for now these\n // are the biggest wins and do not require any serializing parameters.\n const cache = ([\"eth_chainId\", \"eth_blockNumber\"].indexOf(method) >= 0);\n if (cache && this._cache[method]) {\n return this._cache[method];\n }\n const result = fetchJson(this.connection, JSON.stringify(request), getResult).then((result) => {\n this.emit(\"debug\", {\n action: \"response\",\n request: request,\n response: result,\n provider: this\n });\n return result;\n }, (error) => {\n this.emit(\"debug\", {\n action: \"response\",\n error: error,\n request: request,\n provider: this\n });\n throw error;\n });\n // Cache the fetch, but clear it on the next event loop\n if (cache) {\n this._cache[method] = result;\n setTimeout(() => {\n this._cache[method] = null;\n }, 0);\n }\n return result;\n }\n prepareRequest(method, params) {\n switch (method) {\n case \"getBlockNumber\":\n return [\"eth_blockNumber\", []];\n case \"getGasPrice\":\n return [\"eth_gasPrice\", []];\n case \"getBalance\":\n return [\"eth_getBalance\", [getLowerCase(params.address), params.blockTag]];\n case \"getTransactionCount\":\n return [\"eth_getTransactionCount\", [getLowerCase(params.address), params.blockTag]];\n case \"getCode\":\n return [\"eth_getCode\", [getLowerCase(params.address), params.blockTag]];\n case \"getStorageAt\":\n return [\"eth_getStorageAt\", [getLowerCase(params.address), hexZeroPad(params.position, 32), params.blockTag]];\n case \"sendTransaction\":\n return [\"eth_sendRawTransaction\", [params.signedTransaction]];\n case \"getBlock\":\n if (params.blockTag) {\n return [\"eth_getBlockByNumber\", [params.blockTag, !!params.includeTransactions]];\n }\n else if (params.blockHash) {\n return [\"eth_getBlockByHash\", [params.blockHash, !!params.includeTransactions]];\n }\n return null;\n case \"getTransaction\":\n return [\"eth_getTransactionByHash\", [params.transactionHash]];\n case \"getTransactionReceipt\":\n return [\"eth_getTransactionReceipt\", [params.transactionHash]];\n case \"call\": {\n const hexlifyTransaction = getStatic(this.constructor, \"hexlifyTransaction\");\n return [\"eth_call\", [hexlifyTransaction(params.transaction, { from: true }), params.blockTag]];\n }\n case \"estimateGas\": {\n const hexlifyTransaction = getStatic(this.constructor, \"hexlifyTransaction\");\n return [\"eth_estimateGas\", [hexlifyTransaction(params.transaction, { from: true })]];\n }\n case \"getLogs\":\n if (params.filter && params.filter.address != null) {\n params.filter.address = getLowerCase(params.filter.address);\n }\n return [\"eth_getLogs\", [params.filter]];\n default:\n break;\n }\n return null;\n }\n perform(method, params) {\n return __awaiter(this, void 0, void 0, function* () {\n // Legacy networks do not like the type field being passed along (which\n // is fair), so we delete type if it is 0 and a non-EIP-1559 network\n if (method === \"call\" || method === \"estimateGas\") {\n const tx = params.transaction;\n if (tx && tx.type != null && BigNumber.from(tx.type).isZero()) {\n // If there are no EIP-1559 properties, it might be non-EIP-1559\n if (tx.maxFeePerGas == null && tx.maxPriorityFeePerGas == null) {\n const feeData = yield this.getFeeData();\n if (feeData.maxFeePerGas == null && feeData.maxPriorityFeePerGas == null) {\n // Network doesn't know about EIP-1559 (and hence type)\n params = shallowCopy(params);\n params.transaction = shallowCopy(tx);\n delete params.transaction.type;\n }\n }\n }\n }\n const args = this.prepareRequest(method, params);\n if (args == null) {\n logger.throwError(method + \" not implemented\", Logger.errors.NOT_IMPLEMENTED, { operation: method });\n }\n try {\n return yield this.send(args[0], args[1]);\n }\n catch (error) {\n return checkError(method, error, params);\n }\n });\n }\n _startEvent(event) {\n if (event.tag === \"pending\") {\n this._startPending();\n }\n super._startEvent(event);\n }\n _startPending() {\n if (this._pendingFilter != null) {\n return;\n }\n const self = this;\n const pendingFilter = this.send(\"eth_newPendingTransactionFilter\", []);\n this._pendingFilter = pendingFilter;\n pendingFilter.then(function (filterId) {\n function poll() {\n self.send(\"eth_getFilterChanges\", [filterId]).then(function (hashes) {\n if (self._pendingFilter != pendingFilter) {\n return null;\n }\n let seq = Promise.resolve();\n hashes.forEach(function (hash) {\n // @TODO: This should be garbage collected at some point... How? When?\n self._emitted[\"t:\" + hash.toLowerCase()] = \"pending\";\n seq = seq.then(function () {\n return self.getTransaction(hash).then(function (tx) {\n self.emit(\"pending\", tx);\n return null;\n });\n });\n });\n return seq.then(function () {\n return timer(1000);\n });\n }).then(function () {\n if (self._pendingFilter != pendingFilter) {\n self.send(\"eth_uninstallFilter\", [filterId]);\n return;\n }\n setTimeout(function () { poll(); }, 0);\n return null;\n }).catch((error) => { });\n }\n poll();\n return filterId;\n }).catch((error) => { });\n }\n _stopEvent(event) {\n if (event.tag === \"pending\" && this.listenerCount(\"pending\") === 0) {\n this._pendingFilter = null;\n }\n super._stopEvent(event);\n }\n // Convert an ethers.js transaction into a JSON-RPC transaction\n // - gasLimit => gas\n // - All values hexlified\n // - All numeric values zero-striped\n // - All addresses are lowercased\n // NOTE: This allows a TransactionRequest, but all values should be resolved\n // before this is called\n // @TODO: This will likely be removed in future versions and prepareRequest\n // will be the preferred method for this.\n static hexlifyTransaction(transaction, allowExtra) {\n // Check only allowed properties are given\n const allowed = shallowCopy(allowedTransactionKeys);\n if (allowExtra) {\n for (const key in allowExtra) {\n if (allowExtra[key]) {\n allowed[key] = true;\n }\n }\n }\n checkProperties(transaction, allowed);\n const result = {};\n // JSON-RPC now requires numeric values to be \"quantity\" values\n [\"chainId\", \"gasLimit\", \"gasPrice\", \"type\", \"maxFeePerGas\", \"maxPriorityFeePerGas\", \"nonce\", \"value\"].forEach(function (key) {\n if (transaction[key] == null) {\n return;\n }\n const value = hexValue(BigNumber.from(transaction[key]));\n if (key === \"gasLimit\") {\n key = \"gas\";\n }\n result[key] = value;\n });\n [\"from\", \"to\", \"data\"].forEach(function (key) {\n if (transaction[key] == null) {\n return;\n }\n result[key] = hexlify(transaction[key]);\n });\n if (transaction.accessList) {\n result[\"accessList\"] = accessListify(transaction.accessList);\n }\n return result;\n }\n}\n//# sourceMappingURL=json-rpc-provider.js.map","\"use strict\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nlet WS = null;\ntry {\n WS = WebSocket;\n if (WS == null) {\n throw new Error(\"inject please\");\n }\n}\ncatch (error) {\n const logger = new Logger(version);\n WS = function () {\n logger.throwError(\"WebSockets not supported in this environment\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new WebSocket()\"\n });\n };\n}\n//export default WS;\n//module.exports = WS;\nexport { WS as WebSocket };\n//# sourceMappingURL=ws.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { JsonRpcProvider } from \"./json-rpc-provider\";\nimport { WebSocket } from \"./ws\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n/**\n * Notes:\n *\n * This provider differs a bit from the polling providers. One main\n * difference is how it handles consistency. The polling providers\n * will stall responses to ensure a consistent state, while this\n * WebSocket provider assumes the connected backend will manage this.\n *\n * For example, if a polling provider emits an event which indicates\n * the event occurred in blockhash XXX, a call to fetch that block by\n * its hash XXX, if not present will retry until it is present. This\n * can occur when querying a pool of nodes that are mildly out of sync\n * with each other.\n */\nlet NextId = 1;\n// For more info about the Real-time Event API see:\n// https://geth.ethereum.org/docs/rpc/pubsub\nexport class WebSocketProvider extends JsonRpcProvider {\n constructor(url, network) {\n // This will be added in the future; please open an issue to expedite\n if (network === \"any\") {\n logger.throwError(\"WebSocketProvider does not support 'any' network yet\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"network:any\"\n });\n }\n if (typeof (url) === \"string\") {\n super(url, network);\n }\n else {\n super(\"_websocket\", network);\n }\n this._pollingInterval = -1;\n this._wsReady = false;\n if (typeof (url) === \"string\") {\n defineReadOnly(this, \"_websocket\", new WebSocket(this.connection.url));\n }\n else {\n defineReadOnly(this, \"_websocket\", url);\n }\n defineReadOnly(this, \"_requests\", {});\n defineReadOnly(this, \"_subs\", {});\n defineReadOnly(this, \"_subIds\", {});\n defineReadOnly(this, \"_detectNetwork\", super.detectNetwork());\n // Stall sending requests until the socket is open...\n this.websocket.onopen = () => {\n this._wsReady = true;\n Object.keys(this._requests).forEach((id) => {\n this.websocket.send(this._requests[id].payload);\n });\n };\n this.websocket.onmessage = (messageEvent) => {\n const data = messageEvent.data;\n const result = JSON.parse(data);\n if (result.id != null) {\n const id = String(result.id);\n const request = this._requests[id];\n delete this._requests[id];\n if (result.result !== undefined) {\n request.callback(null, result.result);\n this.emit(\"debug\", {\n action: \"response\",\n request: JSON.parse(request.payload),\n response: result.result,\n provider: this\n });\n }\n else {\n let error = null;\n if (result.error) {\n error = new Error(result.error.message || \"unknown error\");\n defineReadOnly(error, \"code\", result.error.code || null);\n defineReadOnly(error, \"response\", data);\n }\n else {\n error = new Error(\"unknown error\");\n }\n request.callback(error, undefined);\n this.emit(\"debug\", {\n action: \"response\",\n error: error,\n request: JSON.parse(request.payload),\n provider: this\n });\n }\n }\n else if (result.method === \"eth_subscription\") {\n // Subscription...\n const sub = this._subs[result.params.subscription];\n if (sub) {\n //this.emit.apply(this, );\n sub.processFunc(result.params.result);\n }\n }\n else {\n console.warn(\"this should not happen\");\n }\n };\n // This Provider does not actually poll, but we want to trigger\n // poll events for things that depend on them (like stalling for\n // block and transaction lookups)\n const fauxPoll = setInterval(() => {\n this.emit(\"poll\");\n }, 1000);\n if (fauxPoll.unref) {\n fauxPoll.unref();\n }\n }\n // Cannot narrow the type of _websocket, as that is not backwards compatible\n // so we add a getter and let the WebSocket be a public API.\n get websocket() { return this._websocket; }\n detectNetwork() {\n return this._detectNetwork;\n }\n get pollingInterval() {\n return 0;\n }\n resetEventsBlock(blockNumber) {\n logger.throwError(\"cannot reset events block on WebSocketProvider\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"resetEventBlock\"\n });\n }\n set pollingInterval(value) {\n logger.throwError(\"cannot set polling interval on WebSocketProvider\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"setPollingInterval\"\n });\n }\n poll() {\n return __awaiter(this, void 0, void 0, function* () {\n return null;\n });\n }\n set polling(value) {\n if (!value) {\n return;\n }\n logger.throwError(\"cannot set polling on WebSocketProvider\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"setPolling\"\n });\n }\n send(method, params) {\n const rid = NextId++;\n return new Promise((resolve, reject) => {\n function callback(error, result) {\n if (error) {\n return reject(error);\n }\n return resolve(result);\n }\n const payload = JSON.stringify({\n method: method,\n params: params,\n id: rid,\n jsonrpc: \"2.0\"\n });\n this.emit(\"debug\", {\n action: \"request\",\n request: JSON.parse(payload),\n provider: this\n });\n this._requests[String(rid)] = { callback, payload };\n if (this._wsReady) {\n this.websocket.send(payload);\n }\n });\n }\n static defaultUrl() {\n return \"ws:/\\/localhost:8546\";\n }\n _subscribe(tag, param, processFunc) {\n return __awaiter(this, void 0, void 0, function* () {\n let subIdPromise = this._subIds[tag];\n if (subIdPromise == null) {\n subIdPromise = Promise.all(param).then((param) => {\n return this.send(\"eth_subscribe\", param);\n });\n this._subIds[tag] = subIdPromise;\n }\n const subId = yield subIdPromise;\n this._subs[subId] = { tag, processFunc };\n });\n }\n _startEvent(event) {\n switch (event.type) {\n case \"block\":\n this._subscribe(\"block\", [\"newHeads\"], (result) => {\n const blockNumber = BigNumber.from(result.number).toNumber();\n this._emitted.block = blockNumber;\n this.emit(\"block\", blockNumber);\n });\n break;\n case \"pending\":\n this._subscribe(\"pending\", [\"newPendingTransactions\"], (result) => {\n this.emit(\"pending\", result);\n });\n break;\n case \"filter\":\n this._subscribe(event.tag, [\"logs\", this._getFilter(event.filter)], (result) => {\n if (result.removed == null) {\n result.removed = false;\n }\n this.emit(event.filter, this.formatter.filterLog(result));\n });\n break;\n case \"tx\": {\n const emitReceipt = (event) => {\n const hash = event.hash;\n this.getTransactionReceipt(hash).then((receipt) => {\n if (!receipt) {\n return;\n }\n this.emit(hash, receipt);\n });\n };\n // In case it is already mined\n emitReceipt(event);\n // To keep things simple, we start up a single newHeads subscription\n // to keep an eye out for transactions we are watching for.\n // Starting a subscription for an event (i.e. \"tx\") that is already\n // running is (basically) a nop.\n this._subscribe(\"tx\", [\"newHeads\"], (result) => {\n this._events.filter((e) => (e.type === \"tx\")).forEach(emitReceipt);\n });\n break;\n }\n // Nothing is needed\n case \"debug\":\n case \"poll\":\n case \"willPoll\":\n case \"didPoll\":\n case \"error\":\n break;\n default:\n console.log(\"unhandled:\", event);\n break;\n }\n }\n _stopEvent(event) {\n let tag = event.tag;\n if (event.type === \"tx\") {\n // There are remaining transaction event listeners\n if (this._events.filter((e) => (e.type === \"tx\")).length) {\n return;\n }\n tag = \"tx\";\n }\n else if (this.listenerCount(event.event)) {\n // There are remaining event listeners\n return;\n }\n const subId = this._subIds[tag];\n if (!subId) {\n return;\n }\n delete this._subIds[tag];\n subId.then((subId) => {\n if (!this._subs[subId]) {\n return;\n }\n delete this._subs[subId];\n this.send(\"eth_unsubscribe\", [subId]);\n });\n }\n destroy() {\n return __awaiter(this, void 0, void 0, function* () {\n // Wait until we have connected before trying to disconnect\n if (this.websocket.readyState === WebSocket.CONNECTING) {\n yield (new Promise((resolve) => {\n this.websocket.onopen = function () {\n resolve(true);\n };\n this.websocket.onerror = function () {\n resolve(false);\n };\n }));\n }\n // Hangup\n // See: https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent#Status_codes\n this.websocket.close(1000);\n });\n }\n}\n//# sourceMappingURL=websocket-provider.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { defineReadOnly, getStatic } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { JsonRpcProvider } from \"./json-rpc-provider\";\n// A StaticJsonRpcProvider is useful when you *know* for certain that\n// the backend will never change, as it never calls eth_chainId to\n// verify its backend. However, if the backend does change, the effects\n// are undefined and may include:\n// - inconsistent results\n// - locking up the UI\n// - block skew warnings\n// - wrong results\n// If the network is not explicit (i.e. auto-detection is expected), the\n// node MUST be running and available to respond to requests BEFORE this\n// is instantiated.\nexport class StaticJsonRpcProvider extends JsonRpcProvider {\n detectNetwork() {\n const _super = Object.create(null, {\n detectNetwork: { get: () => super.detectNetwork }\n });\n return __awaiter(this, void 0, void 0, function* () {\n let network = this.network;\n if (network == null) {\n network = yield _super.detectNetwork.call(this);\n if (!network) {\n logger.throwError(\"no network detected\", Logger.errors.UNKNOWN_ERROR, {});\n }\n // If still not set, set it\n if (this._network == null) {\n // A static network does not support \"any\"\n defineReadOnly(this, \"_network\", network);\n this.emit(\"network\", network, null);\n }\n }\n return network;\n });\n }\n}\nexport class UrlJsonRpcProvider extends StaticJsonRpcProvider {\n constructor(network, apiKey) {\n logger.checkAbstract(new.target, UrlJsonRpcProvider);\n // Normalize the Network and API Key\n network = getStatic(new.target, \"getNetwork\")(network);\n apiKey = getStatic(new.target, \"getApiKey\")(apiKey);\n const connection = getStatic(new.target, \"getUrl\")(network, apiKey);\n super(connection, network);\n if (typeof (apiKey) === \"string\") {\n defineReadOnly(this, \"apiKey\", apiKey);\n }\n else if (apiKey != null) {\n Object.keys(apiKey).forEach((key) => {\n defineReadOnly(this, key, apiKey[key]);\n });\n }\n }\n _startPending() {\n logger.warn(\"WARNING: API provider does not support pending filters\");\n }\n isCommunityResource() {\n return false;\n }\n getSigner(address) {\n return logger.throwError(\"API provider does not support signing\", Logger.errors.UNSUPPORTED_OPERATION, { operation: \"getSigner\" });\n }\n listAccounts() {\n return Promise.resolve([]);\n }\n // Return a defaultApiKey if null, otherwise validate the API key\n static getApiKey(apiKey) {\n return apiKey;\n }\n // Returns the url or connection for the given network and API key. The\n // API key will have been sanitized by the getApiKey first, so any validation\n // or transformations can be done there.\n static getUrl(network, apiKey) {\n return logger.throwError(\"not implemented; sub-classes must override getUrl\", Logger.errors.NOT_IMPLEMENTED, {\n operation: \"getUrl\"\n });\n }\n}\n//# sourceMappingURL=url-json-rpc-provider.js.map","\"use strict\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { showThrottleMessage } from \"./formatter\";\nimport { WebSocketProvider } from \"./websocket-provider\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\n// This key was provided to ethers.js by Alchemy to be used by the\n// default provider, but it is recommended that for your own\n// production environments, that you acquire your own API key at:\n// https://dashboard.alchemyapi.io\nconst defaultApiKey = \"_gg7wSSi0KMBsdKnGVfHDueq6xMB9EkC\";\nexport class AlchemyWebSocketProvider extends WebSocketProvider {\n constructor(network, apiKey) {\n const provider = new AlchemyProvider(network, apiKey);\n const url = provider.connection.url.replace(/^http/i, \"ws\")\n .replace(\".alchemyapi.\", \".ws.alchemyapi.\");\n super(url, provider.network);\n defineReadOnly(this, \"apiKey\", provider.apiKey);\n }\n isCommunityResource() {\n return (this.apiKey === defaultApiKey);\n }\n}\nexport class AlchemyProvider extends UrlJsonRpcProvider {\n static getWebSocketProvider(network, apiKey) {\n return new AlchemyWebSocketProvider(network, apiKey);\n }\n static getApiKey(apiKey) {\n if (apiKey == null) {\n return defaultApiKey;\n }\n if (apiKey && typeof (apiKey) !== \"string\") {\n logger.throwArgumentError(\"invalid apiKey\", \"apiKey\", apiKey);\n }\n return apiKey;\n }\n static getUrl(network, apiKey) {\n let host = null;\n switch (network.name) {\n case \"homestead\":\n host = \"eth-mainnet.alchemyapi.io/v2/\";\n break;\n case \"ropsten\":\n host = \"eth-ropsten.alchemyapi.io/v2/\";\n break;\n case \"rinkeby\":\n host = \"eth-rinkeby.alchemyapi.io/v2/\";\n break;\n case \"goerli\":\n host = \"eth-goerli.alchemyapi.io/v2/\";\n break;\n case \"kovan\":\n host = \"eth-kovan.alchemyapi.io/v2/\";\n break;\n case \"matic\":\n host = \"polygon-mainnet.g.alchemy.com/v2/\";\n break;\n case \"maticmum\":\n host = \"polygon-mumbai.g.alchemy.com/v2/\";\n break;\n case \"arbitrum\":\n host = \"arb-mainnet.g.alchemy.com/v2/\";\n break;\n case \"arbitrum-rinkeby\":\n host = \"arb-rinkeby.g.alchemy.com/v2/\";\n break;\n case \"optimism\":\n host = \"opt-mainnet.g.alchemy.com/v2/\";\n break;\n case \"optimism-kovan\":\n host = \"opt-kovan.g.alchemy.com/v2/\";\n break;\n default:\n logger.throwArgumentError(\"unsupported network\", \"network\", arguments[0]);\n }\n return {\n allowGzip: true,\n url: (\"https:/\" + \"/\" + host + apiKey),\n throttleCallback: (attempt, url) => {\n if (apiKey === defaultApiKey) {\n showThrottleMessage();\n }\n return Promise.resolve(true);\n }\n };\n }\n isCommunityResource() {\n return (this.apiKey === defaultApiKey);\n }\n}\n//# sourceMappingURL=alchemy-provider.js.map","import { showThrottleMessage } from \"./formatter\";\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nconst defaultApiKey = \"9f7d929b018cdffb338517efa06f58359e86ff1ffd350bc889738523659e7972\";\nfunction getHost(name) {\n switch (name) {\n case \"homestead\":\n return \"rpc.ankr.com/eth/\";\n case \"ropsten\":\n return \"rpc.ankr.com/eth_ropsten/\";\n case \"rinkeby\":\n return \"rpc.ankr.com/eth_rinkeby/\";\n case \"goerli\":\n return \"rpc.ankr.com/eth_goerli/\";\n case \"matic\":\n return \"rpc.ankr.com/polygon/\";\n case \"arbitrum\":\n return \"rpc.ankr.com/arbitrum/\";\n }\n return logger.throwArgumentError(\"unsupported network\", \"name\", name);\n}\nexport class AnkrProvider extends UrlJsonRpcProvider {\n isCommunityResource() {\n return (this.apiKey === defaultApiKey);\n }\n static getApiKey(apiKey) {\n if (apiKey == null) {\n return defaultApiKey;\n }\n return apiKey;\n }\n static getUrl(network, apiKey) {\n if (apiKey == null) {\n apiKey = defaultApiKey;\n }\n const connection = {\n allowGzip: true,\n url: (\"https:/\\/\" + getHost(network.name) + apiKey),\n throttleCallback: (attempt, url) => {\n if (apiKey.apiKey === defaultApiKey) {\n showThrottleMessage();\n }\n return Promise.resolve(true);\n }\n };\n if (apiKey.projectSecret != null) {\n connection.user = \"\";\n connection.password = apiKey.projectSecret;\n }\n return connection;\n }\n}\n//# sourceMappingURL=ankr-provider.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nexport class CloudflareProvider extends UrlJsonRpcProvider {\n static getApiKey(apiKey) {\n if (apiKey != null) {\n logger.throwArgumentError(\"apiKey not supported for cloudflare\", \"apiKey\", apiKey);\n }\n return null;\n }\n static getUrl(network, apiKey) {\n let host = null;\n switch (network.name) {\n case \"homestead\":\n host = \"https://cloudflare-eth.com/\";\n break;\n default:\n logger.throwArgumentError(\"unsupported network\", \"network\", arguments[0]);\n }\n return host;\n }\n perform(method, params) {\n const _super = Object.create(null, {\n perform: { get: () => super.perform }\n });\n return __awaiter(this, void 0, void 0, function* () {\n // The Cloudflare provider does not support eth_blockNumber,\n // so we get the latest block and pull it from that\n if (method === \"getBlockNumber\") {\n const block = yield _super.perform.call(this, \"getBlock\", { blockTag: \"latest\" });\n return block.number;\n }\n return _super.perform.call(this, method, params);\n });\n }\n}\n//# sourceMappingURL=cloudflare-provider.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { hexlify, hexValue, isHexString } from \"@ethersproject/bytes\";\nimport { deepCopy, defineReadOnly } from \"@ethersproject/properties\";\nimport { accessListify } from \"@ethersproject/transactions\";\nimport { fetchJson } from \"@ethersproject/web\";\nimport { showThrottleMessage } from \"./formatter\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { BaseProvider } from \"./base-provider\";\n// The transaction has already been sanitized by the calls in Provider\nfunction getTransactionPostData(transaction) {\n const result = {};\n for (let key in transaction) {\n if (transaction[key] == null) {\n continue;\n }\n let value = transaction[key];\n if (key === \"type\" && value === 0) {\n continue;\n }\n // Quantity-types require no leading zero, unless 0\n if ({ type: true, gasLimit: true, gasPrice: true, maxFeePerGs: true, maxPriorityFeePerGas: true, nonce: true, value: true }[key]) {\n value = hexValue(hexlify(value));\n }\n else if (key === \"accessList\") {\n value = \"[\" + accessListify(value).map((set) => {\n return `{address:\"${set.address}\",storageKeys:[\"${set.storageKeys.join('\",\"')}\"]}`;\n }).join(\",\") + \"]\";\n }\n else {\n value = hexlify(value);\n }\n result[key] = value;\n }\n return result;\n}\nfunction getResult(result) {\n // getLogs, getHistory have weird success responses\n if (result.status == 0 && (result.message === \"No records found\" || result.message === \"No transactions found\")) {\n return result.result;\n }\n if (result.status != 1 || result.message != \"OK\") {\n const error = new Error(\"invalid response\");\n error.result = JSON.stringify(result);\n if ((result.result || \"\").toLowerCase().indexOf(\"rate limit\") >= 0) {\n error.throttleRetry = true;\n }\n throw error;\n }\n return result.result;\n}\nfunction getJsonResult(result) {\n // This response indicates we are being throttled\n if (result && result.status == 0 && result.message == \"NOTOK\" && (result.result || \"\").toLowerCase().indexOf(\"rate limit\") >= 0) {\n const error = new Error(\"throttled response\");\n error.result = JSON.stringify(result);\n error.throttleRetry = true;\n throw error;\n }\n if (result.jsonrpc != \"2.0\") {\n // @TODO: not any\n const error = new Error(\"invalid response\");\n error.result = JSON.stringify(result);\n throw error;\n }\n if (result.error) {\n // @TODO: not any\n const error = new Error(result.error.message || \"unknown error\");\n if (result.error.code) {\n error.code = result.error.code;\n }\n if (result.error.data) {\n error.data = result.error.data;\n }\n throw error;\n }\n return result.result;\n}\n// The blockTag was normalized as a string by the Provider pre-perform operations\nfunction checkLogTag(blockTag) {\n if (blockTag === \"pending\") {\n throw new Error(\"pending not supported\");\n }\n if (blockTag === \"latest\") {\n return blockTag;\n }\n return parseInt(blockTag.substring(2), 16);\n}\nconst defaultApiKey = \"9D13ZE7XSBTJ94N9BNJ2MA33VMAY2YPIRB\";\nfunction checkError(method, error, transaction) {\n // Undo the \"convenience\" some nodes are attempting to prevent backwards\n // incompatibility; maybe for v6 consider forwarding reverts as errors\n if (method === \"call\" && error.code === Logger.errors.SERVER_ERROR) {\n const e = error.error;\n // Etherscan keeps changing their string\n if (e && (e.message.match(/reverted/i) || e.message.match(/VM execution error/i))) {\n // Etherscan prefixes the data like \"Reverted 0x1234\"\n let data = e.data;\n if (data) {\n data = \"0x\" + data.replace(/^.*0x/i, \"\");\n }\n if (isHexString(data)) {\n return data;\n }\n logger.throwError(\"missing revert data in call exception\", Logger.errors.CALL_EXCEPTION, {\n error, data: \"0x\"\n });\n }\n }\n // Get the message from any nested error structure\n let message = error.message;\n if (error.code === Logger.errors.SERVER_ERROR) {\n if (error.error && typeof (error.error.message) === \"string\") {\n message = error.error.message;\n }\n else if (typeof (error.body) === \"string\") {\n message = error.body;\n }\n else if (typeof (error.responseText) === \"string\") {\n message = error.responseText;\n }\n }\n message = (message || \"\").toLowerCase();\n // \"Insufficient funds. The account you tried to send transaction from does not have enough funds. Required 21464000000000 and got: 0\"\n if (message.match(/insufficient funds/)) {\n logger.throwError(\"insufficient funds for intrinsic transaction cost\", Logger.errors.INSUFFICIENT_FUNDS, {\n error, method, transaction\n });\n }\n // \"Transaction with the same hash was already imported.\"\n if (message.match(/same hash was already imported|transaction nonce is too low|nonce too low/)) {\n logger.throwError(\"nonce has already been used\", Logger.errors.NONCE_EXPIRED, {\n error, method, transaction\n });\n }\n // \"Transaction gas price is too low. There is another transaction with same nonce in the queue. Try increasing the gas price or incrementing the nonce.\"\n if (message.match(/another transaction with same nonce/)) {\n logger.throwError(\"replacement fee too low\", Logger.errors.REPLACEMENT_UNDERPRICED, {\n error, method, transaction\n });\n }\n if (message.match(/execution failed due to an exception|execution reverted/)) {\n logger.throwError(\"cannot estimate gas; transaction may fail or may require manual gas limit\", Logger.errors.UNPREDICTABLE_GAS_LIMIT, {\n error, method, transaction\n });\n }\n throw error;\n}\nexport class EtherscanProvider extends BaseProvider {\n constructor(network, apiKey) {\n super(network);\n defineReadOnly(this, \"baseUrl\", this.getBaseUrl());\n defineReadOnly(this, \"apiKey\", apiKey || defaultApiKey);\n }\n getBaseUrl() {\n switch (this.network ? this.network.name : \"invalid\") {\n case \"homestead\":\n return \"https:/\\/api.etherscan.io\";\n case \"ropsten\":\n return \"https:/\\/api-ropsten.etherscan.io\";\n case \"rinkeby\":\n return \"https:/\\/api-rinkeby.etherscan.io\";\n case \"kovan\":\n return \"https:/\\/api-kovan.etherscan.io\";\n case \"goerli\":\n return \"https:/\\/api-goerli.etherscan.io\";\n case \"optimism\":\n return \"https:/\\/api-optimistic.etherscan.io\";\n default:\n }\n return logger.throwArgumentError(\"unsupported network\", \"network\", this.network.name);\n }\n getUrl(module, params) {\n const query = Object.keys(params).reduce((accum, key) => {\n const value = params[key];\n if (value != null) {\n accum += `&${key}=${value}`;\n }\n return accum;\n }, \"\");\n const apiKey = ((this.apiKey) ? `&apikey=${this.apiKey}` : \"\");\n return `${this.baseUrl}/api?module=${module}${query}${apiKey}`;\n }\n getPostUrl() {\n return `${this.baseUrl}/api`;\n }\n getPostData(module, params) {\n params.module = module;\n params.apikey = this.apiKey;\n return params;\n }\n fetch(module, params, post) {\n return __awaiter(this, void 0, void 0, function* () {\n const url = (post ? this.getPostUrl() : this.getUrl(module, params));\n const payload = (post ? this.getPostData(module, params) : null);\n const procFunc = (module === \"proxy\") ? getJsonResult : getResult;\n this.emit(\"debug\", {\n action: \"request\",\n request: url,\n provider: this\n });\n const connection = {\n url: url,\n throttleSlotInterval: 1000,\n throttleCallback: (attempt, url) => {\n if (this.isCommunityResource()) {\n showThrottleMessage();\n }\n return Promise.resolve(true);\n }\n };\n let payloadStr = null;\n if (payload) {\n connection.headers = { \"content-type\": \"application/x-www-form-urlencoded; charset=UTF-8\" };\n payloadStr = Object.keys(payload).map((key) => {\n return `${key}=${payload[key]}`;\n }).join(\"&\");\n }\n const result = yield fetchJson(connection, payloadStr, procFunc || getJsonResult);\n this.emit(\"debug\", {\n action: \"response\",\n request: url,\n response: deepCopy(result),\n provider: this\n });\n return result;\n });\n }\n detectNetwork() {\n return __awaiter(this, void 0, void 0, function* () {\n return this.network;\n });\n }\n perform(method, params) {\n const _super = Object.create(null, {\n perform: { get: () => super.perform }\n });\n return __awaiter(this, void 0, void 0, function* () {\n switch (method) {\n case \"getBlockNumber\":\n return this.fetch(\"proxy\", { action: \"eth_blockNumber\" });\n case \"getGasPrice\":\n return this.fetch(\"proxy\", { action: \"eth_gasPrice\" });\n case \"getBalance\":\n // Returns base-10 result\n return this.fetch(\"account\", {\n action: \"balance\",\n address: params.address,\n tag: params.blockTag\n });\n case \"getTransactionCount\":\n return this.fetch(\"proxy\", {\n action: \"eth_getTransactionCount\",\n address: params.address,\n tag: params.blockTag\n });\n case \"getCode\":\n return this.fetch(\"proxy\", {\n action: \"eth_getCode\",\n address: params.address,\n tag: params.blockTag\n });\n case \"getStorageAt\":\n return this.fetch(\"proxy\", {\n action: \"eth_getStorageAt\",\n address: params.address,\n position: params.position,\n tag: params.blockTag\n });\n case \"sendTransaction\":\n return this.fetch(\"proxy\", {\n action: \"eth_sendRawTransaction\",\n hex: params.signedTransaction\n }, true).catch((error) => {\n return checkError(\"sendTransaction\", error, params.signedTransaction);\n });\n case \"getBlock\":\n if (params.blockTag) {\n return this.fetch(\"proxy\", {\n action: \"eth_getBlockByNumber\",\n tag: params.blockTag,\n boolean: (params.includeTransactions ? \"true\" : \"false\")\n });\n }\n throw new Error(\"getBlock by blockHash not implemented\");\n case \"getTransaction\":\n return this.fetch(\"proxy\", {\n action: \"eth_getTransactionByHash\",\n txhash: params.transactionHash\n });\n case \"getTransactionReceipt\":\n return this.fetch(\"proxy\", {\n action: \"eth_getTransactionReceipt\",\n txhash: params.transactionHash\n });\n case \"call\": {\n if (params.blockTag !== \"latest\") {\n throw new Error(\"EtherscanProvider does not support blockTag for call\");\n }\n const postData = getTransactionPostData(params.transaction);\n postData.module = \"proxy\";\n postData.action = \"eth_call\";\n try {\n return yield this.fetch(\"proxy\", postData, true);\n }\n catch (error) {\n return checkError(\"call\", error, params.transaction);\n }\n }\n case \"estimateGas\": {\n const postData = getTransactionPostData(params.transaction);\n postData.module = \"proxy\";\n postData.action = \"eth_estimateGas\";\n try {\n return yield this.fetch(\"proxy\", postData, true);\n }\n catch (error) {\n return checkError(\"estimateGas\", error, params.transaction);\n }\n }\n case \"getLogs\": {\n const args = { action: \"getLogs\" };\n if (params.filter.fromBlock) {\n args.fromBlock = checkLogTag(params.filter.fromBlock);\n }\n if (params.filter.toBlock) {\n args.toBlock = checkLogTag(params.filter.toBlock);\n }\n if (params.filter.address) {\n args.address = params.filter.address;\n }\n // @TODO: We can handle slightly more complicated logs using the logs API\n if (params.filter.topics && params.filter.topics.length > 0) {\n if (params.filter.topics.length > 1) {\n logger.throwError(\"unsupported topic count\", Logger.errors.UNSUPPORTED_OPERATION, { topics: params.filter.topics });\n }\n if (params.filter.topics.length === 1) {\n const topic0 = params.filter.topics[0];\n if (typeof (topic0) !== \"string\" || topic0.length !== 66) {\n logger.throwError(\"unsupported topic format\", Logger.errors.UNSUPPORTED_OPERATION, { topic0: topic0 });\n }\n args.topic0 = topic0;\n }\n }\n const logs = yield this.fetch(\"logs\", args);\n // Cache txHash => blockHash\n let blocks = {};\n // Add any missing blockHash to the logs\n for (let i = 0; i < logs.length; i++) {\n const log = logs[i];\n if (log.blockHash != null) {\n continue;\n }\n if (blocks[log.blockNumber] == null) {\n const block = yield this.getBlock(log.blockNumber);\n if (block) {\n blocks[log.blockNumber] = block.hash;\n }\n }\n log.blockHash = blocks[log.blockNumber];\n }\n return logs;\n }\n case \"getEtherPrice\":\n if (this.network.name !== \"homestead\") {\n return 0.0;\n }\n return parseFloat((yield this.fetch(\"stats\", { action: \"ethprice\" })).ethusd);\n default:\n break;\n }\n return _super.perform.call(this, method, params);\n });\n }\n // Note: The `page` page parameter only allows pagination within the\n // 10,000 window available without a page and offset parameter\n // Error: Result window is too large, PageNo x Offset size must\n // be less than or equal to 10000\n getHistory(addressOrName, startBlock, endBlock) {\n return __awaiter(this, void 0, void 0, function* () {\n const params = {\n action: \"txlist\",\n address: (yield this.resolveName(addressOrName)),\n startblock: ((startBlock == null) ? 0 : startBlock),\n endblock: ((endBlock == null) ? 99999999 : endBlock),\n sort: \"asc\"\n };\n const result = yield this.fetch(\"account\", params);\n return result.map((tx) => {\n [\"contractAddress\", \"to\"].forEach(function (key) {\n if (tx[key] == \"\") {\n delete tx[key];\n }\n });\n if (tx.creates == null && tx.contractAddress != null) {\n tx.creates = tx.contractAddress;\n }\n const item = this.formatter.transactionResponse(tx);\n if (tx.timeStamp) {\n item.timestamp = parseInt(tx.timeStamp);\n }\n return item;\n });\n });\n }\n isCommunityResource() {\n return (this.apiKey === defaultApiKey);\n }\n}\n//# sourceMappingURL=etherscan-provider.js.map","\"use strict\";\nexport function shuffled(array) {\n array = array.slice();\n for (let i = array.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n const tmp = array[i];\n array[i] = array[j];\n array[j] = tmp;\n }\n return array;\n}\n//# sourceMappingURL=shuffle.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { Provider } from \"@ethersproject/abstract-provider\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { isHexString } from \"@ethersproject/bytes\";\nimport { deepCopy, defineReadOnly, shallowCopy } from \"@ethersproject/properties\";\nimport { shuffled } from \"@ethersproject/random\";\nimport { poll } from \"@ethersproject/web\";\nimport { BaseProvider } from \"./base-provider\";\nimport { isCommunityResource } from \"./formatter\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nfunction now() { return (new Date()).getTime(); }\n// Returns to network as long as all agree, or null if any is null.\n// Throws an error if any two networks do not match.\nfunction checkNetworks(networks) {\n let result = null;\n for (let i = 0; i < networks.length; i++) {\n const network = networks[i];\n // Null! We do not know our network; bail.\n if (network == null) {\n return null;\n }\n if (result) {\n // Make sure the network matches the previous networks\n if (!(result.name === network.name && result.chainId === network.chainId &&\n ((result.ensAddress === network.ensAddress) || (result.ensAddress == null && network.ensAddress == null)))) {\n logger.throwArgumentError(\"provider mismatch\", \"networks\", networks);\n }\n }\n else {\n result = network;\n }\n }\n return result;\n}\nfunction median(values, maxDelta) {\n values = values.slice().sort();\n const middle = Math.floor(values.length / 2);\n // Odd length; take the middle\n if (values.length % 2) {\n return values[middle];\n }\n // Even length; take the average of the two middle\n const a = values[middle - 1], b = values[middle];\n if (maxDelta != null && Math.abs(a - b) > maxDelta) {\n return null;\n }\n return (a + b) / 2;\n}\nfunction serialize(value) {\n if (value === null) {\n return \"null\";\n }\n else if (typeof (value) === \"number\" || typeof (value) === \"boolean\") {\n return JSON.stringify(value);\n }\n else if (typeof (value) === \"string\") {\n return value;\n }\n else if (BigNumber.isBigNumber(value)) {\n return value.toString();\n }\n else if (Array.isArray(value)) {\n return JSON.stringify(value.map((i) => serialize(i)));\n }\n else if (typeof (value) === \"object\") {\n const keys = Object.keys(value);\n keys.sort();\n return \"{\" + keys.map((key) => {\n let v = value[key];\n if (typeof (v) === \"function\") {\n v = \"[function]\";\n }\n else {\n v = serialize(v);\n }\n return JSON.stringify(key) + \":\" + v;\n }).join(\",\") + \"}\";\n }\n throw new Error(\"unknown value type: \" + typeof (value));\n}\n// Next request ID to use for emitting debug info\nlet nextRid = 1;\n;\nfunction stall(duration) {\n let cancel = null;\n let timer = null;\n let promise = (new Promise((resolve) => {\n cancel = function () {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n resolve();\n };\n timer = setTimeout(cancel, duration);\n }));\n const wait = (func) => {\n promise = promise.then(func);\n return promise;\n };\n function getPromise() {\n return promise;\n }\n return { cancel, getPromise, wait };\n}\nconst ForwardErrors = [\n Logger.errors.CALL_EXCEPTION,\n Logger.errors.INSUFFICIENT_FUNDS,\n Logger.errors.NONCE_EXPIRED,\n Logger.errors.REPLACEMENT_UNDERPRICED,\n Logger.errors.UNPREDICTABLE_GAS_LIMIT\n];\nconst ForwardProperties = [\n \"address\",\n \"args\",\n \"errorArgs\",\n \"errorSignature\",\n \"method\",\n \"transaction\",\n];\n;\nfunction exposeDebugConfig(config, now) {\n const result = {\n weight: config.weight\n };\n Object.defineProperty(result, \"provider\", { get: () => config.provider });\n if (config.start) {\n result.start = config.start;\n }\n if (now) {\n result.duration = (now - config.start);\n }\n if (config.done) {\n if (config.error) {\n result.error = config.error;\n }\n else {\n result.result = config.result || null;\n }\n }\n return result;\n}\nfunction normalizedTally(normalize, quorum) {\n return function (configs) {\n // Count the votes for each result\n const tally = {};\n configs.forEach((c) => {\n const value = normalize(c.result);\n if (!tally[value]) {\n tally[value] = { count: 0, result: c.result };\n }\n tally[value].count++;\n });\n // Check for a quorum on any given result\n const keys = Object.keys(tally);\n for (let i = 0; i < keys.length; i++) {\n const check = tally[keys[i]];\n if (check.count >= quorum) {\n return check.result;\n }\n }\n // No quroum\n return undefined;\n };\n}\nfunction getProcessFunc(provider, method, params) {\n let normalize = serialize;\n switch (method) {\n case \"getBlockNumber\":\n // Return the median value, unless there is (median + 1) is also\n // present, in which case that is probably true and the median\n // is going to be stale soon. In the event of a malicious node,\n // the lie will be true soon enough.\n return function (configs) {\n const values = configs.map((c) => c.result);\n // Get the median block number\n let blockNumber = median(configs.map((c) => c.result), 2);\n if (blockNumber == null) {\n return undefined;\n }\n blockNumber = Math.ceil(blockNumber);\n // If the next block height is present, its prolly safe to use\n if (values.indexOf(blockNumber + 1) >= 0) {\n blockNumber++;\n }\n // Don't ever roll back the blockNumber\n if (blockNumber >= provider._highestBlockNumber) {\n provider._highestBlockNumber = blockNumber;\n }\n return provider._highestBlockNumber;\n };\n case \"getGasPrice\":\n // Return the middle (round index up) value, similar to median\n // but do not average even entries and choose the higher.\n // Malicious actors must compromise 50% of the nodes to lie.\n return function (configs) {\n const values = configs.map((c) => c.result);\n values.sort();\n return values[Math.floor(values.length / 2)];\n };\n case \"getEtherPrice\":\n // Returns the median price. Malicious actors must compromise at\n // least 50% of the nodes to lie (in a meaningful way).\n return function (configs) {\n return median(configs.map((c) => c.result));\n };\n // No additional normalizing required; serialize is enough\n case \"getBalance\":\n case \"getTransactionCount\":\n case \"getCode\":\n case \"getStorageAt\":\n case \"call\":\n case \"estimateGas\":\n case \"getLogs\":\n break;\n // We drop the confirmations from transactions as it is approximate\n case \"getTransaction\":\n case \"getTransactionReceipt\":\n normalize = function (tx) {\n if (tx == null) {\n return null;\n }\n tx = shallowCopy(tx);\n tx.confirmations = -1;\n return serialize(tx);\n };\n break;\n // We drop the confirmations from transactions as it is approximate\n case \"getBlock\":\n // We drop the confirmations from transactions as it is approximate\n if (params.includeTransactions) {\n normalize = function (block) {\n if (block == null) {\n return null;\n }\n block = shallowCopy(block);\n block.transactions = block.transactions.map((tx) => {\n tx = shallowCopy(tx);\n tx.confirmations = -1;\n return tx;\n });\n return serialize(block);\n };\n }\n else {\n normalize = function (block) {\n if (block == null) {\n return null;\n }\n return serialize(block);\n };\n }\n break;\n default:\n throw new Error(\"unknown method: \" + method);\n }\n // Return the result if and only if the expected quorum is\n // satisfied and agreed upon for the final result.\n return normalizedTally(normalize, provider.quorum);\n}\n// If we are doing a blockTag query, we need to make sure the backend is\n// caught up to the FallbackProvider, before sending a request to it.\nfunction waitForSync(config, blockNumber) {\n return __awaiter(this, void 0, void 0, function* () {\n const provider = (config.provider);\n if ((provider.blockNumber != null && provider.blockNumber >= blockNumber) || blockNumber === -1) {\n return provider;\n }\n return poll(() => {\n return new Promise((resolve, reject) => {\n setTimeout(function () {\n // We are synced\n if (provider.blockNumber >= blockNumber) {\n return resolve(provider);\n }\n // We're done; just quit\n if (config.cancelled) {\n return resolve(null);\n }\n // Try again, next block\n return resolve(undefined);\n }, 0);\n });\n }, { oncePoll: provider });\n });\n}\nfunction getRunner(config, currentBlockNumber, method, params) {\n return __awaiter(this, void 0, void 0, function* () {\n let provider = config.provider;\n switch (method) {\n case \"getBlockNumber\":\n case \"getGasPrice\":\n return provider[method]();\n case \"getEtherPrice\":\n if (provider.getEtherPrice) {\n return provider.getEtherPrice();\n }\n break;\n case \"getBalance\":\n case \"getTransactionCount\":\n case \"getCode\":\n if (params.blockTag && isHexString(params.blockTag)) {\n provider = yield waitForSync(config, currentBlockNumber);\n }\n return provider[method](params.address, params.blockTag || \"latest\");\n case \"getStorageAt\":\n if (params.blockTag && isHexString(params.blockTag)) {\n provider = yield waitForSync(config, currentBlockNumber);\n }\n return provider.getStorageAt(params.address, params.position, params.blockTag || \"latest\");\n case \"getBlock\":\n if (params.blockTag && isHexString(params.blockTag)) {\n provider = yield waitForSync(config, currentBlockNumber);\n }\n return provider[(params.includeTransactions ? \"getBlockWithTransactions\" : \"getBlock\")](params.blockTag || params.blockHash);\n case \"call\":\n case \"estimateGas\":\n if (params.blockTag && isHexString(params.blockTag)) {\n provider = yield waitForSync(config, currentBlockNumber);\n }\n return provider[method](params.transaction);\n case \"getTransaction\":\n case \"getTransactionReceipt\":\n return provider[method](params.transactionHash);\n case \"getLogs\": {\n let filter = params.filter;\n if ((filter.fromBlock && isHexString(filter.fromBlock)) || (filter.toBlock && isHexString(filter.toBlock))) {\n provider = yield waitForSync(config, currentBlockNumber);\n }\n return provider.getLogs(filter);\n }\n }\n return logger.throwError(\"unknown method error\", Logger.errors.UNKNOWN_ERROR, {\n method: method,\n params: params\n });\n });\n}\nexport class FallbackProvider extends BaseProvider {\n constructor(providers, quorum) {\n if (providers.length === 0) {\n logger.throwArgumentError(\"missing providers\", \"providers\", providers);\n }\n const providerConfigs = providers.map((configOrProvider, index) => {\n if (Provider.isProvider(configOrProvider)) {\n const stallTimeout = isCommunityResource(configOrProvider) ? 2000 : 750;\n const priority = 1;\n return Object.freeze({ provider: configOrProvider, weight: 1, stallTimeout, priority });\n }\n const config = shallowCopy(configOrProvider);\n if (config.priority == null) {\n config.priority = 1;\n }\n if (config.stallTimeout == null) {\n config.stallTimeout = isCommunityResource(configOrProvider) ? 2000 : 750;\n }\n if (config.weight == null) {\n config.weight = 1;\n }\n const weight = config.weight;\n if (weight % 1 || weight > 512 || weight < 1) {\n logger.throwArgumentError(\"invalid weight; must be integer in [1, 512]\", `providers[${index}].weight`, weight);\n }\n return Object.freeze(config);\n });\n const total = providerConfigs.reduce((accum, c) => (accum + c.weight), 0);\n if (quorum == null) {\n quorum = total / 2;\n }\n else if (quorum > total) {\n logger.throwArgumentError(\"quorum will always fail; larger than total weight\", \"quorum\", quorum);\n }\n // Are all providers' networks are known\n let networkOrReady = checkNetworks(providerConfigs.map((c) => (c.provider).network));\n // Not all networks are known; we must stall\n if (networkOrReady == null) {\n networkOrReady = new Promise((resolve, reject) => {\n setTimeout(() => {\n this.detectNetwork().then(resolve, reject);\n }, 0);\n });\n }\n super(networkOrReady);\n // Preserve a copy, so we do not get mutated\n defineReadOnly(this, \"providerConfigs\", Object.freeze(providerConfigs));\n defineReadOnly(this, \"quorum\", quorum);\n this._highestBlockNumber = -1;\n }\n detectNetwork() {\n return __awaiter(this, void 0, void 0, function* () {\n const networks = yield Promise.all(this.providerConfigs.map((c) => c.provider.getNetwork()));\n return checkNetworks(networks);\n });\n }\n perform(method, params) {\n return __awaiter(this, void 0, void 0, function* () {\n // Sending transactions is special; always broadcast it to all backends\n if (method === \"sendTransaction\") {\n const results = yield Promise.all(this.providerConfigs.map((c) => {\n return c.provider.sendTransaction(params.signedTransaction).then((result) => {\n return result.hash;\n }, (error) => {\n return error;\n });\n }));\n // Any success is good enough (other errors are likely \"already seen\" errors\n for (let i = 0; i < results.length; i++) {\n const result = results[i];\n if (typeof (result) === \"string\") {\n return result;\n }\n }\n // They were all an error; pick the first error\n throw results[0];\n }\n // We need to make sure we are in sync with our backends, so we need\n // to know this before we can make a lot of calls\n if (this._highestBlockNumber === -1 && method !== \"getBlockNumber\") {\n yield this.getBlockNumber();\n }\n const processFunc = getProcessFunc(this, method, params);\n // Shuffle the providers and then sort them by their priority; we\n // shallowCopy them since we will store the result in them too\n const configs = shuffled(this.providerConfigs.map(shallowCopy));\n configs.sort((a, b) => (a.priority - b.priority));\n const currentBlockNumber = this._highestBlockNumber;\n let i = 0;\n let first = true;\n while (true) {\n const t0 = now();\n // Compute the inflight weight (exclude anything past)\n let inflightWeight = configs.filter((c) => (c.runner && ((t0 - c.start) < c.stallTimeout)))\n .reduce((accum, c) => (accum + c.weight), 0);\n // Start running enough to meet quorum\n while (inflightWeight < this.quorum && i < configs.length) {\n const config = configs[i++];\n const rid = nextRid++;\n config.start = now();\n config.staller = stall(config.stallTimeout);\n config.staller.wait(() => { config.staller = null; });\n config.runner = getRunner(config, currentBlockNumber, method, params).then((result) => {\n config.done = true;\n config.result = result;\n if (this.listenerCount(\"debug\")) {\n this.emit(\"debug\", {\n action: \"request\",\n rid: rid,\n backend: exposeDebugConfig(config, now()),\n request: { method: method, params: deepCopy(params) },\n provider: this\n });\n }\n }, (error) => {\n config.done = true;\n config.error = error;\n if (this.listenerCount(\"debug\")) {\n this.emit(\"debug\", {\n action: \"request\",\n rid: rid,\n backend: exposeDebugConfig(config, now()),\n request: { method: method, params: deepCopy(params) },\n provider: this\n });\n }\n });\n if (this.listenerCount(\"debug\")) {\n this.emit(\"debug\", {\n action: \"request\",\n rid: rid,\n backend: exposeDebugConfig(config, null),\n request: { method: method, params: deepCopy(params) },\n provider: this\n });\n }\n inflightWeight += config.weight;\n }\n // Wait for anything meaningful to finish or stall out\n const waiting = [];\n configs.forEach((c) => {\n if (c.done || !c.runner) {\n return;\n }\n waiting.push(c.runner);\n if (c.staller) {\n waiting.push(c.staller.getPromise());\n }\n });\n if (waiting.length) {\n yield Promise.race(waiting);\n }\n // Check the quorum and process the results; the process function\n // may additionally decide the quorum is not met\n const results = configs.filter((c) => (c.done && c.error == null));\n if (results.length >= this.quorum) {\n const result = processFunc(results);\n if (result !== undefined) {\n // Shut down any stallers\n configs.forEach(c => {\n if (c.staller) {\n c.staller.cancel();\n }\n c.cancelled = true;\n });\n return result;\n }\n if (!first) {\n yield stall(100).getPromise();\n }\n first = false;\n }\n // No result, check for errors that should be forwarded\n const errors = configs.reduce((accum, c) => {\n if (!c.done || c.error == null) {\n return accum;\n }\n const code = (c.error).code;\n if (ForwardErrors.indexOf(code) >= 0) {\n if (!accum[code]) {\n accum[code] = { error: c.error, weight: 0 };\n }\n accum[code].weight += c.weight;\n }\n return accum;\n }, ({}));\n Object.keys(errors).forEach((errorCode) => {\n const tally = errors[errorCode];\n if (tally.weight < this.quorum) {\n return;\n }\n // Shut down any stallers\n configs.forEach(c => {\n if (c.staller) {\n c.staller.cancel();\n }\n c.cancelled = true;\n });\n const e = (tally.error);\n const props = {};\n ForwardProperties.forEach((name) => {\n if (e[name] == null) {\n return;\n }\n props[name] = e[name];\n });\n logger.throwError(e.reason || e.message, errorCode, props);\n });\n // All configs have run to completion; we will never get more data\n if (configs.filter((c) => !c.done).length === 0) {\n break;\n }\n }\n // Shut down any stallers; shouldn't be any\n configs.forEach(c => {\n if (c.staller) {\n c.staller.cancel();\n }\n c.cancelled = true;\n });\n return logger.throwError(\"failed to meet quorum\", Logger.errors.SERVER_ERROR, {\n method: method,\n params: params,\n //results: configs.map((c) => c.result),\n //errors: configs.map((c) => c.error),\n results: configs.map((c) => exposeDebugConfig(c)),\n provider: this\n });\n });\n }\n}\n//# sourceMappingURL=fallback-provider.js.map","\"use strict\";\nconst IpcProvider = null;\nexport { IpcProvider };\n//# sourceMappingURL=ipc-provider.js.map","\"use strict\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { WebSocketProvider } from \"./websocket-provider\";\nimport { showThrottleMessage } from \"./formatter\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\nconst defaultProjectId = \"84842078b09946638c03157f83405213\";\nexport class InfuraWebSocketProvider extends WebSocketProvider {\n constructor(network, apiKey) {\n const provider = new InfuraProvider(network, apiKey);\n const connection = provider.connection;\n if (connection.password) {\n logger.throwError(\"INFURA WebSocket project secrets unsupported\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"InfuraProvider.getWebSocketProvider()\"\n });\n }\n const url = connection.url.replace(/^http/i, \"ws\").replace(\"/v3/\", \"/ws/v3/\");\n super(url, network);\n defineReadOnly(this, \"apiKey\", provider.projectId);\n defineReadOnly(this, \"projectId\", provider.projectId);\n defineReadOnly(this, \"projectSecret\", provider.projectSecret);\n }\n isCommunityResource() {\n return (this.projectId === defaultProjectId);\n }\n}\nexport class InfuraProvider extends UrlJsonRpcProvider {\n static getWebSocketProvider(network, apiKey) {\n return new InfuraWebSocketProvider(network, apiKey);\n }\n static getApiKey(apiKey) {\n const apiKeyObj = {\n apiKey: defaultProjectId,\n projectId: defaultProjectId,\n projectSecret: null\n };\n if (apiKey == null) {\n return apiKeyObj;\n }\n if (typeof (apiKey) === \"string\") {\n apiKeyObj.projectId = apiKey;\n }\n else if (apiKey.projectSecret != null) {\n logger.assertArgument((typeof (apiKey.projectId) === \"string\"), \"projectSecret requires a projectId\", \"projectId\", apiKey.projectId);\n logger.assertArgument((typeof (apiKey.projectSecret) === \"string\"), \"invalid projectSecret\", \"projectSecret\", \"[REDACTED]\");\n apiKeyObj.projectId = apiKey.projectId;\n apiKeyObj.projectSecret = apiKey.projectSecret;\n }\n else if (apiKey.projectId) {\n apiKeyObj.projectId = apiKey.projectId;\n }\n apiKeyObj.apiKey = apiKeyObj.projectId;\n return apiKeyObj;\n }\n static getUrl(network, apiKey) {\n let host = null;\n switch (network ? network.name : \"unknown\") {\n case \"homestead\":\n host = \"mainnet.infura.io\";\n break;\n case \"ropsten\":\n host = \"ropsten.infura.io\";\n break;\n case \"rinkeby\":\n host = \"rinkeby.infura.io\";\n break;\n case \"kovan\":\n host = \"kovan.infura.io\";\n break;\n case \"goerli\":\n host = \"goerli.infura.io\";\n break;\n case \"matic\":\n host = \"polygon-mainnet.infura.io\";\n break;\n case \"maticmum\":\n host = \"polygon-mumbai.infura.io\";\n break;\n case \"optimism\":\n host = \"optimism-mainnet.infura.io\";\n break;\n case \"optimism-kovan\":\n host = \"optimism-kovan.infura.io\";\n break;\n case \"arbitrum\":\n host = \"arbitrum-mainnet.infura.io\";\n break;\n case \"arbitrum-rinkeby\":\n host = \"arbitrum-rinkeby.infura.io\";\n break;\n default:\n logger.throwError(\"unsupported network\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"network\",\n value: network\n });\n }\n const connection = {\n allowGzip: true,\n url: (\"https:/\" + \"/\" + host + \"/v3/\" + apiKey.projectId),\n throttleCallback: (attempt, url) => {\n if (apiKey.projectId === defaultProjectId) {\n showThrottleMessage();\n }\n return Promise.resolve(true);\n }\n };\n if (apiKey.projectSecret != null) {\n connection.user = \"\";\n connection.password = apiKey.projectSecret;\n }\n return connection;\n }\n isCommunityResource() {\n return (this.projectId === defaultProjectId);\n }\n}\n//# sourceMappingURL=infura-provider.js.map","import { deepCopy } from \"@ethersproject/properties\";\nimport { fetchJson } from \"@ethersproject/web\";\nimport { JsonRpcProvider } from \"./json-rpc-provider\";\n// Experimental\nexport class JsonRpcBatchProvider extends JsonRpcProvider {\n send(method, params) {\n const request = {\n method: method,\n params: params,\n id: (this._nextId++),\n jsonrpc: \"2.0\"\n };\n if (this._pendingBatch == null) {\n this._pendingBatch = [];\n }\n const inflightRequest = { request, resolve: null, reject: null };\n const promise = new Promise((resolve, reject) => {\n inflightRequest.resolve = resolve;\n inflightRequest.reject = reject;\n });\n this._pendingBatch.push(inflightRequest);\n if (!this._pendingBatchAggregator) {\n // Schedule batch for next event loop + short duration\n this._pendingBatchAggregator = setTimeout(() => {\n // Get teh current batch and clear it, so new requests\n // go into the next batch\n const batch = this._pendingBatch;\n this._pendingBatch = null;\n this._pendingBatchAggregator = null;\n // Get the request as an array of requests\n const request = batch.map((inflight) => inflight.request);\n this.emit(\"debug\", {\n action: \"requestBatch\",\n request: deepCopy(request),\n provider: this\n });\n return fetchJson(this.connection, JSON.stringify(request)).then((result) => {\n this.emit(\"debug\", {\n action: \"response\",\n request: request,\n response: result,\n provider: this\n });\n // For each result, feed it to the correct Promise, depending\n // on whether it was a success or error\n batch.forEach((inflightRequest, index) => {\n const payload = result[index];\n if (payload.error) {\n const error = new Error(payload.error.message);\n error.code = payload.error.code;\n error.data = payload.error.data;\n inflightRequest.reject(error);\n }\n else {\n inflightRequest.resolve(payload.result);\n }\n });\n }, (error) => {\n this.emit(\"debug\", {\n action: \"response\",\n error: error,\n request: request,\n provider: this\n });\n batch.forEach((inflightRequest) => {\n inflightRequest.reject(error);\n });\n });\n }, 10);\n }\n return promise;\n }\n}\n//# sourceMappingURL=json-rpc-batch-provider.js.map","/* istanbul ignore file */\n\"use strict\";\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n// Special API key provided by Nodesmith for ethers.js\nconst defaultApiKey = \"ETHERS_JS_SHARED\";\nexport class NodesmithProvider extends UrlJsonRpcProvider {\n static getApiKey(apiKey) {\n if (apiKey && typeof (apiKey) !== \"string\") {\n logger.throwArgumentError(\"invalid apiKey\", \"apiKey\", apiKey);\n }\n return apiKey || defaultApiKey;\n }\n static getUrl(network, apiKey) {\n logger.warn(\"NodeSmith will be discontinued on 2019-12-20; please migrate to another platform.\");\n let host = null;\n switch (network.name) {\n case \"homestead\":\n host = \"https://ethereum.api.nodesmith.io/v1/mainnet/jsonrpc\";\n break;\n case \"ropsten\":\n host = \"https://ethereum.api.nodesmith.io/v1/ropsten/jsonrpc\";\n break;\n case \"rinkeby\":\n host = \"https://ethereum.api.nodesmith.io/v1/rinkeby/jsonrpc\";\n break;\n case \"goerli\":\n host = \"https://ethereum.api.nodesmith.io/v1/goerli/jsonrpc\";\n break;\n case \"kovan\":\n host = \"https://ethereum.api.nodesmith.io/v1/kovan/jsonrpc\";\n break;\n default:\n logger.throwArgumentError(\"unsupported network\", \"network\", arguments[0]);\n }\n return (host + \"?apiKey=\" + apiKey);\n }\n}\n//# sourceMappingURL=nodesmith-provider.js.map","\"use strict\";\nimport { getStatic } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\n// These are load-balancer-based application IDs\nconst defaultApplicationIds = {\n homestead: \"6004bcd10040261633ade990\",\n ropsten: \"6004bd4d0040261633ade991\",\n rinkeby: \"6004bda20040261633ade994\",\n goerli: \"6004bd860040261633ade992\",\n};\nexport class PocketProvider extends UrlJsonRpcProvider {\n constructor(network, apiKey) {\n // We need a bit of creativity in the constructor because\n // Pocket uses different default API keys based on the network\n if (apiKey == null) {\n const n = getStatic(new.target, \"getNetwork\")(network);\n if (n) {\n const applicationId = defaultApplicationIds[n.name];\n if (applicationId) {\n apiKey = {\n applicationId: applicationId,\n loadBalancer: true\n };\n }\n }\n // If there was any issue above, we don't know this network\n if (apiKey == null) {\n logger.throwError(\"unsupported network\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"network\",\n value: network\n });\n }\n }\n super(network, apiKey);\n }\n static getApiKey(apiKey) {\n // Most API Providers allow null to get the default configuration, but\n // Pocket requires the network to decide the default provider, so we\n // rely on hijacking the constructor to add a sensible default for us\n if (apiKey == null) {\n logger.throwArgumentError(\"PocketProvider.getApiKey does not support null apiKey\", \"apiKey\", apiKey);\n }\n const apiKeyObj = {\n applicationId: null,\n loadBalancer: false,\n applicationSecretKey: null\n };\n // Parse applicationId and applicationSecretKey\n if (typeof (apiKey) === \"string\") {\n apiKeyObj.applicationId = apiKey;\n }\n else if (apiKey.applicationSecretKey != null) {\n logger.assertArgument((typeof (apiKey.applicationId) === \"string\"), \"applicationSecretKey requires an applicationId\", \"applicationId\", apiKey.applicationId);\n logger.assertArgument((typeof (apiKey.applicationSecretKey) === \"string\"), \"invalid applicationSecretKey\", \"applicationSecretKey\", \"[REDACTED]\");\n apiKeyObj.applicationId = apiKey.applicationId;\n apiKeyObj.applicationSecretKey = apiKey.applicationSecretKey;\n apiKeyObj.loadBalancer = !!apiKey.loadBalancer;\n }\n else if (apiKey.applicationId) {\n logger.assertArgument((typeof (apiKey.applicationId) === \"string\"), \"apiKey.applicationId must be a string\", \"apiKey.applicationId\", apiKey.applicationId);\n apiKeyObj.applicationId = apiKey.applicationId;\n apiKeyObj.loadBalancer = !!apiKey.loadBalancer;\n }\n else {\n logger.throwArgumentError(\"unsupported PocketProvider apiKey\", \"apiKey\", apiKey);\n }\n return apiKeyObj;\n }\n static getUrl(network, apiKey) {\n let host = null;\n switch (network ? network.name : \"unknown\") {\n case \"homestead\":\n host = \"eth-mainnet.gateway.pokt.network\";\n break;\n case \"ropsten\":\n host = \"eth-ropsten.gateway.pokt.network\";\n break;\n case \"rinkeby\":\n host = \"eth-rinkeby.gateway.pokt.network\";\n break;\n case \"goerli\":\n host = \"eth-goerli.gateway.pokt.network\";\n break;\n default:\n logger.throwError(\"unsupported network\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"network\",\n value: network\n });\n }\n let url = null;\n if (apiKey.loadBalancer) {\n url = `https:/\\/${host}/v1/lb/${apiKey.applicationId}`;\n }\n else {\n url = `https:/\\/${host}/v1/${apiKey.applicationId}`;\n }\n const connection = { url };\n // Initialize empty headers\n connection.headers = {};\n // Apply application secret key\n if (apiKey.applicationSecretKey != null) {\n connection.user = \"\";\n connection.password = apiKey.applicationSecretKey;\n }\n return connection;\n }\n isCommunityResource() {\n return (this.applicationId === defaultApplicationIds[this.network.name]);\n }\n}\n//# sourceMappingURL=pocket-provider.js.map","\"use strict\";\nimport { deepCopy, defineReadOnly } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { JsonRpcProvider } from \"./json-rpc-provider\";\nlet _nextId = 1;\nfunction buildWeb3LegacyFetcher(provider, sendFunc) {\n const fetcher = \"Web3LegacyFetcher\";\n return function (method, params) {\n const request = {\n method: method,\n params: params,\n id: (_nextId++),\n jsonrpc: \"2.0\"\n };\n return new Promise((resolve, reject) => {\n this.emit(\"debug\", {\n action: \"request\",\n fetcher,\n request: deepCopy(request),\n provider: this\n });\n sendFunc(request, (error, response) => {\n if (error) {\n this.emit(\"debug\", {\n action: \"response\",\n fetcher,\n error,\n request,\n provider: this\n });\n return reject(error);\n }\n this.emit(\"debug\", {\n action: \"response\",\n fetcher,\n request,\n response,\n provider: this\n });\n if (response.error) {\n const error = new Error(response.error.message);\n error.code = response.error.code;\n error.data = response.error.data;\n return reject(error);\n }\n resolve(response.result);\n });\n });\n };\n}\nfunction buildEip1193Fetcher(provider) {\n return function (method, params) {\n if (params == null) {\n params = [];\n }\n const request = { method, params };\n this.emit(\"debug\", {\n action: \"request\",\n fetcher: \"Eip1193Fetcher\",\n request: deepCopy(request),\n provider: this\n });\n return provider.request(request).then((response) => {\n this.emit(\"debug\", {\n action: \"response\",\n fetcher: \"Eip1193Fetcher\",\n request,\n response,\n provider: this\n });\n return response;\n }, (error) => {\n this.emit(\"debug\", {\n action: \"response\",\n fetcher: \"Eip1193Fetcher\",\n request,\n error,\n provider: this\n });\n throw error;\n });\n };\n}\nexport class Web3Provider extends JsonRpcProvider {\n constructor(provider, network) {\n if (provider == null) {\n logger.throwArgumentError(\"missing provider\", \"provider\", provider);\n }\n let path = null;\n let jsonRpcFetchFunc = null;\n let subprovider = null;\n if (typeof (provider) === \"function\") {\n path = \"unknown:\";\n jsonRpcFetchFunc = provider;\n }\n else {\n path = provider.host || provider.path || \"\";\n if (!path && provider.isMetaMask) {\n path = \"metamask\";\n }\n subprovider = provider;\n if (provider.request) {\n if (path === \"\") {\n path = \"eip-1193:\";\n }\n jsonRpcFetchFunc = buildEip1193Fetcher(provider);\n }\n else if (provider.sendAsync) {\n jsonRpcFetchFunc = buildWeb3LegacyFetcher(provider, provider.sendAsync.bind(provider));\n }\n else if (provider.send) {\n jsonRpcFetchFunc = buildWeb3LegacyFetcher(provider, provider.send.bind(provider));\n }\n else {\n logger.throwArgumentError(\"unsupported provider\", \"provider\", provider);\n }\n if (!path) {\n path = \"unknown:\";\n }\n }\n super(path, network);\n defineReadOnly(this, \"jsonRpcFetchFunc\", jsonRpcFetchFunc);\n defineReadOnly(this, \"provider\", subprovider);\n }\n send(method, params) {\n return this.jsonRpcFetchFunc(method, params);\n }\n}\n//# sourceMappingURL=web3-provider.js.map","\"use strict\";\nimport { Provider } from \"@ethersproject/abstract-provider\";\nimport { getNetwork } from \"@ethersproject/networks\";\nimport { BaseProvider, Resolver } from \"./base-provider\";\nimport { AlchemyProvider, AlchemyWebSocketProvider } from \"./alchemy-provider\";\nimport { AnkrProvider } from \"./ankr-provider\";\nimport { CloudflareProvider } from \"./cloudflare-provider\";\nimport { EtherscanProvider } from \"./etherscan-provider\";\nimport { FallbackProvider } from \"./fallback-provider\";\nimport { IpcProvider } from \"./ipc-provider\";\nimport { InfuraProvider, InfuraWebSocketProvider } from \"./infura-provider\";\nimport { JsonRpcProvider, JsonRpcSigner } from \"./json-rpc-provider\";\nimport { JsonRpcBatchProvider } from \"./json-rpc-batch-provider\";\nimport { NodesmithProvider } from \"./nodesmith-provider\";\nimport { PocketProvider } from \"./pocket-provider\";\nimport { StaticJsonRpcProvider, UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\nimport { Web3Provider } from \"./web3-provider\";\nimport { WebSocketProvider } from \"./websocket-provider\";\nimport { Formatter, isCommunityResourcable, isCommunityResource, showThrottleMessage } from \"./formatter\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n////////////////////////\n// Helper Functions\nfunction getDefaultProvider(network, options) {\n if (network == null) {\n network = \"homestead\";\n }\n // If passed a URL, figure out the right type of provider based on the scheme\n if (typeof (network) === \"string\") {\n // @TODO: Add support for IpcProvider; maybe if it ends in \".ipc\"?\n // Handle http and ws (and their secure variants)\n const match = network.match(/^(ws|http)s?:/i);\n if (match) {\n switch (match[1].toLowerCase()) {\n case \"http\":\n case \"https\":\n return new JsonRpcProvider(network);\n case \"ws\":\n case \"wss\":\n return new WebSocketProvider(network);\n default:\n logger.throwArgumentError(\"unsupported URL scheme\", \"network\", network);\n }\n }\n }\n const n = getNetwork(network);\n if (!n || !n._defaultProvider) {\n logger.throwError(\"unsupported getDefaultProvider network\", Logger.errors.NETWORK_ERROR, {\n operation: \"getDefaultProvider\",\n network: network\n });\n }\n return n._defaultProvider({\n FallbackProvider,\n AlchemyProvider,\n AnkrProvider,\n CloudflareProvider,\n EtherscanProvider,\n InfuraProvider,\n JsonRpcProvider,\n NodesmithProvider,\n PocketProvider,\n Web3Provider,\n IpcProvider,\n }, options);\n}\n////////////////////////\n// Exports\nexport { \n// Abstract Providers (or Abstract-ish)\nProvider, BaseProvider, Resolver, UrlJsonRpcProvider, \n///////////////////////\n// Concrete Providers\nFallbackProvider, AlchemyProvider, AlchemyWebSocketProvider, AnkrProvider, CloudflareProvider, EtherscanProvider, InfuraProvider, InfuraWebSocketProvider, JsonRpcProvider, JsonRpcBatchProvider, NodesmithProvider, PocketProvider, StaticJsonRpcProvider, Web3Provider, WebSocketProvider, IpcProvider, \n///////////////////////\n// Signer\nJsonRpcSigner, \n///////////////////////\n// Functions\ngetDefaultProvider, getNetwork, isCommunityResource, isCommunityResourcable, showThrottleMessage, \n///////////////////////\n// Objects\nFormatter };\n//# sourceMappingURL=index.js.map","export const version = \"solidity/5.6.1\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { arrayify, concat, hexlify, zeroPad } from \"@ethersproject/bytes\";\nimport { keccak256 as hashKeccak256 } from \"@ethersproject/keccak256\";\nimport { sha256 as hashSha256 } from \"@ethersproject/sha2\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\nconst regexBytes = new RegExp(\"^bytes([0-9]+)$\");\nconst regexNumber = new RegExp(\"^(u?int)([0-9]*)$\");\nconst regexArray = new RegExp(\"^(.*)\\\\[([0-9]*)\\\\]$\");\nconst Zeros = \"0000000000000000000000000000000000000000000000000000000000000000\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nfunction _pack(type, value, isArray) {\n switch (type) {\n case \"address\":\n if (isArray) {\n return zeroPad(value, 32);\n }\n return arrayify(value);\n case \"string\":\n return toUtf8Bytes(value);\n case \"bytes\":\n return arrayify(value);\n case \"bool\":\n value = (value ? \"0x01\" : \"0x00\");\n if (isArray) {\n return zeroPad(value, 32);\n }\n return arrayify(value);\n }\n let match = type.match(regexNumber);\n if (match) {\n //let signed = (match[1] === \"int\")\n let size = parseInt(match[2] || \"256\");\n if ((match[2] && String(size) !== match[2]) || (size % 8 !== 0) || size === 0 || size > 256) {\n logger.throwArgumentError(\"invalid number type\", \"type\", type);\n }\n if (isArray) {\n size = 256;\n }\n value = BigNumber.from(value).toTwos(size);\n return zeroPad(value, size / 8);\n }\n match = type.match(regexBytes);\n if (match) {\n const size = parseInt(match[1]);\n if (String(size) !== match[1] || size === 0 || size > 32) {\n logger.throwArgumentError(\"invalid bytes type\", \"type\", type);\n }\n if (arrayify(value).byteLength !== size) {\n logger.throwArgumentError(`invalid value for ${type}`, \"value\", value);\n }\n if (isArray) {\n return arrayify((value + Zeros).substring(0, 66));\n }\n return value;\n }\n match = type.match(regexArray);\n if (match && Array.isArray(value)) {\n const baseType = match[1];\n const count = parseInt(match[2] || String(value.length));\n if (count != value.length) {\n logger.throwArgumentError(`invalid array length for ${type}`, \"value\", value);\n }\n const result = [];\n value.forEach(function (value) {\n result.push(_pack(baseType, value, true));\n });\n return concat(result);\n }\n return logger.throwArgumentError(\"invalid type\", \"type\", type);\n}\n// @TODO: Array Enum\nexport function pack(types, values) {\n if (types.length != values.length) {\n logger.throwArgumentError(\"wrong number of values; expected ${ types.length }\", \"values\", values);\n }\n const tight = [];\n types.forEach(function (type, index) {\n tight.push(_pack(type, values[index]));\n });\n return hexlify(concat(tight));\n}\nexport function keccak256(types, values) {\n return hashKeccak256(pack(types, values));\n}\nexport function sha256(types, values) {\n return hashSha256(pack(types, values));\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\nimport { HashZero } from \"@ethersproject/constants\";\nimport { arrayify, concat, hexlify } from \"@ethersproject/bytes\";\nimport { toUtf8Bytes, toUtf8String } from \"./utf8\";\nexport function formatBytes32String(text) {\n // Get the bytes\n const bytes = toUtf8Bytes(text);\n // Check we have room for null-termination\n if (bytes.length > 31) {\n throw new Error(\"bytes32 string must be less than 32 bytes\");\n }\n // Zero-pad (implicitly null-terminates)\n return hexlify(concat([bytes, HashZero]).slice(0, 32));\n}\nexport function parseBytes32String(bytes) {\n const data = arrayify(bytes);\n // Must be 32 bytes with a null-termination\n if (data.length !== 32) {\n throw new Error(\"invalid bytes32 - not 32 bytes long\");\n }\n if (data[31] !== 0) {\n throw new Error(\"invalid bytes32 string - no null terminator\");\n }\n // Find the null termination\n let length = 31;\n while (data[length - 1] === 0) {\n length--;\n }\n // Determine the string value\n return toUtf8String(data.slice(0, length));\n}\n//# sourceMappingURL=bytes32.js.map","export const version = \"units/5.6.1\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nimport { formatFixed, parseFixed } from \"@ethersproject/bignumber\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nconst names = [\n \"wei\",\n \"kwei\",\n \"mwei\",\n \"gwei\",\n \"szabo\",\n \"finney\",\n \"ether\",\n];\n// Some environments have issues with RegEx that contain back-tracking, so we cannot\n// use them.\nexport function commify(value) {\n const comps = String(value).split(\".\");\n if (comps.length > 2 || !comps[0].match(/^-?[0-9]*$/) || (comps[1] && !comps[1].match(/^[0-9]*$/)) || value === \".\" || value === \"-.\") {\n logger.throwArgumentError(\"invalid value\", \"value\", value);\n }\n // Make sure we have at least one whole digit (0 if none)\n let whole = comps[0];\n let negative = \"\";\n if (whole.substring(0, 1) === \"-\") {\n negative = \"-\";\n whole = whole.substring(1);\n }\n // Make sure we have at least 1 whole digit with no leading zeros\n while (whole.substring(0, 1) === \"0\") {\n whole = whole.substring(1);\n }\n if (whole === \"\") {\n whole = \"0\";\n }\n let suffix = \"\";\n if (comps.length === 2) {\n suffix = \".\" + (comps[1] || \"0\");\n }\n while (suffix.length > 2 && suffix[suffix.length - 1] === \"0\") {\n suffix = suffix.substring(0, suffix.length - 1);\n }\n const formatted = [];\n while (whole.length) {\n if (whole.length <= 3) {\n formatted.unshift(whole);\n break;\n }\n else {\n const index = whole.length - 3;\n formatted.unshift(whole.substring(index));\n whole = whole.substring(0, index);\n }\n }\n return negative + formatted.join(\",\") + suffix;\n}\nexport function formatUnits(value, unitName) {\n if (typeof (unitName) === \"string\") {\n const index = names.indexOf(unitName);\n if (index !== -1) {\n unitName = 3 * index;\n }\n }\n return formatFixed(value, (unitName != null) ? unitName : 18);\n}\nexport function parseUnits(value, unitName) {\n if (typeof (value) !== \"string\") {\n logger.throwArgumentError(\"value must be a string\", \"value\", value);\n }\n if (typeof (unitName) === \"string\") {\n const index = names.indexOf(unitName);\n if (index !== -1) {\n unitName = 3 * index;\n }\n }\n return parseFixed(value, (unitName != null) ? unitName : 18);\n}\nexport function formatEther(wei) {\n return formatUnits(wei, 18);\n}\nexport function parseEther(ether) {\n return parseUnits(ether, 18);\n}\n//# sourceMappingURL=index.js.map","export const version = \"ethers/5.6.9\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nimport { BaseContract, Contract, ContractFactory } from \"@ethersproject/contracts\";\nimport { BigNumber, FixedNumber } from \"@ethersproject/bignumber\";\nimport { Signer, VoidSigner } from \"@ethersproject/abstract-signer\";\nimport { Wallet } from \"@ethersproject/wallet\";\nimport * as constants from \"@ethersproject/constants\";\nimport * as providers from \"@ethersproject/providers\";\nimport { getDefaultProvider } from \"@ethersproject/providers\";\nimport { Wordlist, wordlists } from \"@ethersproject/wordlists\";\nimport * as utils from \"./utils\";\nimport { ErrorCode as errors, Logger } from \"@ethersproject/logger\";\n////////////////////////\n// Compile-Time Constants\n// This is generated by \"npm run dist\"\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n////////////////////////\n// Exports\nexport { Signer, Wallet, VoidSigner, getDefaultProvider, providers, BaseContract, Contract, ContractFactory, BigNumber, FixedNumber, constants, errors, logger, utils, wordlists, \n////////////////////////\n// Compile-Time Constants\nversion, Wordlist };\n//# sourceMappingURL=ethers.js.map","\"use strict\";\n// To modify this file, you must update ./misc/admin/lib/cmds/update-exports.js\nimport * as ethers from \"./ethers\";\ntry {\n const anyGlobal = window;\n if (anyGlobal._ethers == null) {\n anyGlobal._ethers = ethers;\n }\n}\ncatch (error) { }\nexport { ethers };\nexport { Signer, Wallet, VoidSigner, getDefaultProvider, providers, BaseContract, Contract, ContractFactory, BigNumber, FixedNumber, constants, errors, logger, utils, wordlists, \n////////////////////////\n// Compile-Time Constants\nversion, Wordlist } from \"./ethers\";\n//# sourceMappingURL=index.js.map","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","var Buffer = require('safe-buffer').Buffer\nvar MD5 = require('md5.js')\n\n/* eslint-disable camelcase */\nfunction EVP_BytesToKey (password, salt, keyBits, ivLen) {\n if (!Buffer.isBuffer(password)) password = Buffer.from(password, 'binary')\n if (salt) {\n if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, 'binary')\n if (salt.length !== 8) throw new RangeError('salt should be Buffer with 8 byte length')\n }\n\n var keyLen = keyBits / 8\n var key = Buffer.alloc(keyLen)\n var iv = Buffer.alloc(ivLen || 0)\n var tmp = Buffer.alloc(0)\n\n while (keyLen > 0 || ivLen > 0) {\n var hash = new MD5()\n hash.update(tmp)\n hash.update(password)\n if (salt) hash.update(salt)\n tmp = hash.digest()\n\n var used = 0\n\n if (keyLen > 0) {\n var keyStart = key.length - keyLen\n used = Math.min(keyLen, tmp.length)\n tmp.copy(key, keyStart, 0, used)\n keyLen -= used\n }\n\n if (used < tmp.length && ivLen > 0) {\n var ivStart = iv.length - ivLen\n var length = Math.min(ivLen, tmp.length - used)\n tmp.copy(iv, ivStart, used, used + length)\n ivLen -= length\n }\n }\n\n tmp.fill(0)\n return { key: key, iv: iv }\n}\n\nmodule.exports = EVP_BytesToKey\n","/* eslint-env browser */\nmodule.exports = typeof self == 'object' ? self.FormData : window.FormData;\n","'use strict'\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('readable-stream').Transform\nvar inherits = require('inherits')\n\nfunction throwIfNotStringOrBuffer (val, prefix) {\n if (!Buffer.isBuffer(val) && typeof val !== 'string') {\n throw new TypeError(prefix + ' must be a string or a buffer')\n }\n}\n\nfunction HashBase (blockSize) {\n Transform.call(this)\n\n this._block = Buffer.allocUnsafe(blockSize)\n this._blockSize = blockSize\n this._blockOffset = 0\n this._length = [0, 0, 0, 0]\n\n this._finalized = false\n}\n\ninherits(HashBase, Transform)\n\nHashBase.prototype._transform = function (chunk, encoding, callback) {\n var error = null\n try {\n this.update(chunk, encoding)\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype._flush = function (callback) {\n var error = null\n try {\n this.push(this.digest())\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype.update = function (data, encoding) {\n throwIfNotStringOrBuffer(data, 'Data')\n if (this._finalized) throw new Error('Digest already called')\n if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)\n\n // consume data\n var block = this._block\n var offset = 0\n while (this._blockOffset + data.length - offset >= this._blockSize) {\n for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++]\n this._update()\n this._blockOffset = 0\n }\n while (offset < data.length) block[this._blockOffset++] = data[offset++]\n\n // update length\n for (var j = 0, carry = data.length * 8; carry > 0; ++j) {\n this._length[j] += carry\n carry = (this._length[j] / 0x0100000000) | 0\n if (carry > 0) this._length[j] -= 0x0100000000 * carry\n }\n\n return this\n}\n\nHashBase.prototype._update = function () {\n throw new Error('_update is not implemented')\n}\n\nHashBase.prototype.digest = function (encoding) {\n if (this._finalized) throw new Error('Digest already called')\n this._finalized = true\n\n var digest = this._digest()\n if (encoding !== undefined) digest = digest.toString(encoding)\n\n // reset state\n this._block.fill(0)\n this._blockOffset = 0\n for (var i = 0; i < 4; ++i) this._length[i] = 0\n\n return digest\n}\n\nHashBase.prototype._digest = function () {\n throw new Error('_digest is not implemented')\n}\n\nmodule.exports = HashBase\n","var hash = exports;\n\nhash.utils = require('./hash/utils');\nhash.common = require('./hash/common');\nhash.sha = require('./hash/sha');\nhash.ripemd = require('./hash/ripemd');\nhash.hmac = require('./hash/hmac');\n\n// Proxy hash functions to the main object\nhash.sha1 = hash.sha.sha1;\nhash.sha256 = hash.sha.sha256;\nhash.sha224 = hash.sha.sha224;\nhash.sha384 = hash.sha.sha384;\nhash.sha512 = hash.sha.sha512;\nhash.ripemd160 = hash.ripemd.ripemd160;\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction BlockHash() {\n this.pending = null;\n this.pendingTotal = 0;\n this.blockSize = this.constructor.blockSize;\n this.outSize = this.constructor.outSize;\n this.hmacStrength = this.constructor.hmacStrength;\n this.padLength = this.constructor.padLength / 8;\n this.endian = 'big';\n\n this._delta8 = this.blockSize / 8;\n this._delta32 = this.blockSize / 32;\n}\nexports.BlockHash = BlockHash;\n\nBlockHash.prototype.update = function update(msg, enc) {\n // Convert message to array, pad it, and join into 32bit blocks\n msg = utils.toArray(msg, enc);\n if (!this.pending)\n this.pending = msg;\n else\n this.pending = this.pending.concat(msg);\n this.pendingTotal += msg.length;\n\n // Enough data, try updating\n if (this.pending.length >= this._delta8) {\n msg = this.pending;\n\n // Process pending data in blocks\n var r = msg.length % this._delta8;\n this.pending = msg.slice(msg.length - r, msg.length);\n if (this.pending.length === 0)\n this.pending = null;\n\n msg = utils.join32(msg, 0, msg.length - r, this.endian);\n for (var i = 0; i < msg.length; i += this._delta32)\n this._update(msg, i, i + this._delta32);\n }\n\n return this;\n};\n\nBlockHash.prototype.digest = function digest(enc) {\n this.update(this._pad());\n assert(this.pending === null);\n\n return this._digest(enc);\n};\n\nBlockHash.prototype._pad = function pad() {\n var len = this.pendingTotal;\n var bytes = this._delta8;\n var k = bytes - ((len + this.padLength) % bytes);\n var res = new Array(k + this.padLength);\n res[0] = 0x80;\n for (var i = 1; i < k; i++)\n res[i] = 0;\n\n // Append length\n len <<= 3;\n if (this.endian === 'big') {\n for (var t = 8; t < this.padLength; t++)\n res[i++] = 0;\n\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = len & 0xff;\n } else {\n res[i++] = len & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n\n for (t = 8; t < this.padLength; t++)\n res[i++] = 0;\n }\n\n return res;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction Hmac(hash, key, enc) {\n if (!(this instanceof Hmac))\n return new Hmac(hash, key, enc);\n this.Hash = hash;\n this.blockSize = hash.blockSize / 8;\n this.outSize = hash.outSize / 8;\n this.inner = null;\n this.outer = null;\n\n this._init(utils.toArray(key, enc));\n}\nmodule.exports = Hmac;\n\nHmac.prototype._init = function init(key) {\n // Shorten key, if needed\n if (key.length > this.blockSize)\n key = new this.Hash().update(key).digest();\n assert(key.length <= this.blockSize);\n\n // Add padding to key\n for (var i = key.length; i < this.blockSize; i++)\n key.push(0);\n\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x36;\n this.inner = new this.Hash().update(key);\n\n // 0x36 ^ 0x5c = 0x6a\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x6a;\n this.outer = new this.Hash().update(key);\n};\n\nHmac.prototype.update = function update(msg, enc) {\n this.inner.update(msg, enc);\n return this;\n};\n\nHmac.prototype.digest = function digest(enc) {\n this.outer.update(this.inner.digest());\n return this.outer.digest(enc);\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar common = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_3 = utils.sum32_3;\nvar sum32_4 = utils.sum32_4;\nvar BlockHash = common.BlockHash;\n\nfunction RIPEMD160() {\n if (!(this instanceof RIPEMD160))\n return new RIPEMD160();\n\n BlockHash.call(this);\n\n this.h = [ 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0 ];\n this.endian = 'little';\n}\nutils.inherits(RIPEMD160, BlockHash);\nexports.ripemd160 = RIPEMD160;\n\nRIPEMD160.blockSize = 512;\nRIPEMD160.outSize = 160;\nRIPEMD160.hmacStrength = 192;\nRIPEMD160.padLength = 64;\n\nRIPEMD160.prototype._update = function update(msg, start) {\n var A = this.h[0];\n var B = this.h[1];\n var C = this.h[2];\n var D = this.h[3];\n var E = this.h[4];\n var Ah = A;\n var Bh = B;\n var Ch = C;\n var Dh = D;\n var Eh = E;\n for (var j = 0; j < 80; j++) {\n var T = sum32(\n rotl32(\n sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),\n s[j]),\n E);\n A = E;\n E = D;\n D = rotl32(C, 10);\n C = B;\n B = T;\n T = sum32(\n rotl32(\n sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),\n sh[j]),\n Eh);\n Ah = Eh;\n Eh = Dh;\n Dh = rotl32(Ch, 10);\n Ch = Bh;\n Bh = T;\n }\n T = sum32_3(this.h[1], C, Dh);\n this.h[1] = sum32_3(this.h[2], D, Eh);\n this.h[2] = sum32_3(this.h[3], E, Ah);\n this.h[3] = sum32_3(this.h[4], A, Bh);\n this.h[4] = sum32_3(this.h[0], B, Ch);\n this.h[0] = T;\n};\n\nRIPEMD160.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'little');\n else\n return utils.split32(this.h, 'little');\n};\n\nfunction f(j, x, y, z) {\n if (j <= 15)\n return x ^ y ^ z;\n else if (j <= 31)\n return (x & y) | ((~x) & z);\n else if (j <= 47)\n return (x | (~y)) ^ z;\n else if (j <= 63)\n return (x & z) | (y & (~z));\n else\n return x ^ (y | (~z));\n}\n\nfunction K(j) {\n if (j <= 15)\n return 0x00000000;\n else if (j <= 31)\n return 0x5a827999;\n else if (j <= 47)\n return 0x6ed9eba1;\n else if (j <= 63)\n return 0x8f1bbcdc;\n else\n return 0xa953fd4e;\n}\n\nfunction Kh(j) {\n if (j <= 15)\n return 0x50a28be6;\n else if (j <= 31)\n return 0x5c4dd124;\n else if (j <= 47)\n return 0x6d703ef3;\n else if (j <= 63)\n return 0x7a6d76e9;\n else\n return 0x00000000;\n}\n\nvar r = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n];\n\nvar rh = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n];\n\nvar s = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n];\n\nvar sh = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n];\n","'use strict';\n\nexports.sha1 = require('./sha/1');\nexports.sha224 = require('./sha/224');\nexports.sha256 = require('./sha/256');\nexports.sha384 = require('./sha/384');\nexports.sha512 = require('./sha/512');\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_5 = utils.sum32_5;\nvar ft_1 = shaCommon.ft_1;\nvar BlockHash = common.BlockHash;\n\nvar sha1_K = [\n 0x5A827999, 0x6ED9EBA1,\n 0x8F1BBCDC, 0xCA62C1D6\n];\n\nfunction SHA1() {\n if (!(this instanceof SHA1))\n return new SHA1();\n\n BlockHash.call(this);\n this.h = [\n 0x67452301, 0xefcdab89, 0x98badcfe,\n 0x10325476, 0xc3d2e1f0 ];\n this.W = new Array(80);\n}\n\nutils.inherits(SHA1, BlockHash);\nmodule.exports = SHA1;\n\nSHA1.blockSize = 512;\nSHA1.outSize = 160;\nSHA1.hmacStrength = 80;\nSHA1.padLength = 64;\n\nSHA1.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n\n for(; i < W.length; i++)\n W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n\n for (i = 0; i < W.length; i++) {\n var s = ~~(i / 20);\n var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);\n e = d;\n d = c;\n c = rotl32(b, 30);\n b = a;\n a = t;\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n};\n\nSHA1.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar SHA256 = require('./256');\n\nfunction SHA224() {\n if (!(this instanceof SHA224))\n return new SHA224();\n\n SHA256.call(this);\n this.h = [\n 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 ];\n}\nutils.inherits(SHA224, SHA256);\nmodule.exports = SHA224;\n\nSHA224.blockSize = 512;\nSHA224.outSize = 224;\nSHA224.hmacStrength = 192;\nSHA224.padLength = 64;\n\nSHA224.prototype._digest = function digest(enc) {\n // Just truncate output\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 7), 'big');\n else\n return utils.split32(this.h.slice(0, 7), 'big');\n};\n\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\nvar assert = require('minimalistic-assert');\n\nvar sum32 = utils.sum32;\nvar sum32_4 = utils.sum32_4;\nvar sum32_5 = utils.sum32_5;\nvar ch32 = shaCommon.ch32;\nvar maj32 = shaCommon.maj32;\nvar s0_256 = shaCommon.s0_256;\nvar s1_256 = shaCommon.s1_256;\nvar g0_256 = shaCommon.g0_256;\nvar g1_256 = shaCommon.g1_256;\n\nvar BlockHash = common.BlockHash;\n\nvar sha256_K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,\n 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,\n 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,\n 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,\n 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n];\n\nfunction SHA256() {\n if (!(this instanceof SHA256))\n return new SHA256();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,\n 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n ];\n this.k = sha256_K;\n this.W = new Array(64);\n}\nutils.inherits(SHA256, BlockHash);\nmodule.exports = SHA256;\n\nSHA256.blockSize = 512;\nSHA256.outSize = 256;\nSHA256.hmacStrength = 192;\nSHA256.padLength = 64;\n\nSHA256.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i++)\n W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n var f = this.h[5];\n var g = this.h[6];\n var h = this.h[7];\n\n assert(this.k.length === W.length);\n for (i = 0; i < W.length; i++) {\n var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);\n var T2 = sum32(s0_256(a), maj32(a, b, c));\n h = g;\n g = f;\n f = e;\n e = sum32(d, T1);\n d = c;\n c = b;\n b = a;\n a = sum32(T1, T2);\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n this.h[5] = sum32(this.h[5], f);\n this.h[6] = sum32(this.h[6], g);\n this.h[7] = sum32(this.h[7], h);\n};\n\nSHA256.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\n\nvar SHA512 = require('./512');\n\nfunction SHA384() {\n if (!(this instanceof SHA384))\n return new SHA384();\n\n SHA512.call(this);\n this.h = [\n 0xcbbb9d5d, 0xc1059ed8,\n 0x629a292a, 0x367cd507,\n 0x9159015a, 0x3070dd17,\n 0x152fecd8, 0xf70e5939,\n 0x67332667, 0xffc00b31,\n 0x8eb44a87, 0x68581511,\n 0xdb0c2e0d, 0x64f98fa7,\n 0x47b5481d, 0xbefa4fa4 ];\n}\nutils.inherits(SHA384, SHA512);\nmodule.exports = SHA384;\n\nSHA384.blockSize = 1024;\nSHA384.outSize = 384;\nSHA384.hmacStrength = 192;\nSHA384.padLength = 128;\n\nSHA384.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 12), 'big');\n else\n return utils.split32(this.h.slice(0, 12), 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar assert = require('minimalistic-assert');\n\nvar rotr64_hi = utils.rotr64_hi;\nvar rotr64_lo = utils.rotr64_lo;\nvar shr64_hi = utils.shr64_hi;\nvar shr64_lo = utils.shr64_lo;\nvar sum64 = utils.sum64;\nvar sum64_hi = utils.sum64_hi;\nvar sum64_lo = utils.sum64_lo;\nvar sum64_4_hi = utils.sum64_4_hi;\nvar sum64_4_lo = utils.sum64_4_lo;\nvar sum64_5_hi = utils.sum64_5_hi;\nvar sum64_5_lo = utils.sum64_5_lo;\n\nvar BlockHash = common.BlockHash;\n\nvar sha512_K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction SHA512() {\n if (!(this instanceof SHA512))\n return new SHA512();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xf3bcc908,\n 0xbb67ae85, 0x84caa73b,\n 0x3c6ef372, 0xfe94f82b,\n 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1,\n 0x9b05688c, 0x2b3e6c1f,\n 0x1f83d9ab, 0xfb41bd6b,\n 0x5be0cd19, 0x137e2179 ];\n this.k = sha512_K;\n this.W = new Array(160);\n}\nutils.inherits(SHA512, BlockHash);\nmodule.exports = SHA512;\n\nSHA512.blockSize = 1024;\nSHA512.outSize = 512;\nSHA512.hmacStrength = 192;\nSHA512.padLength = 128;\n\nSHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {\n var W = this.W;\n\n // 32 x 32bit words\n for (var i = 0; i < 32; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i += 2) {\n var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2\n var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);\n var c1_hi = W[i - 14]; // i - 7\n var c1_lo = W[i - 13];\n var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15\n var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);\n var c3_hi = W[i - 32]; // i - 16\n var c3_lo = W[i - 31];\n\n W[i] = sum64_4_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n W[i + 1] = sum64_4_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n }\n};\n\nSHA512.prototype._update = function _update(msg, start) {\n this._prepareBlock(msg, start);\n\n var W = this.W;\n\n var ah = this.h[0];\n var al = this.h[1];\n var bh = this.h[2];\n var bl = this.h[3];\n var ch = this.h[4];\n var cl = this.h[5];\n var dh = this.h[6];\n var dl = this.h[7];\n var eh = this.h[8];\n var el = this.h[9];\n var fh = this.h[10];\n var fl = this.h[11];\n var gh = this.h[12];\n var gl = this.h[13];\n var hh = this.h[14];\n var hl = this.h[15];\n\n assert(this.k.length === W.length);\n for (var i = 0; i < W.length; i += 2) {\n var c0_hi = hh;\n var c0_lo = hl;\n var c1_hi = s1_512_hi(eh, el);\n var c1_lo = s1_512_lo(eh, el);\n var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);\n var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);\n var c3_hi = this.k[i];\n var c3_lo = this.k[i + 1];\n var c4_hi = W[i];\n var c4_lo = W[i + 1];\n\n var T1_hi = sum64_5_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n var T1_lo = sum64_5_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n\n c0_hi = s0_512_hi(ah, al);\n c0_lo = s0_512_lo(ah, al);\n c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);\n c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);\n\n var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);\n var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);\n\n hh = gh;\n hl = gl;\n\n gh = fh;\n gl = fl;\n\n fh = eh;\n fl = el;\n\n eh = sum64_hi(dh, dl, T1_hi, T1_lo);\n el = sum64_lo(dl, dl, T1_hi, T1_lo);\n\n dh = ch;\n dl = cl;\n\n ch = bh;\n cl = bl;\n\n bh = ah;\n bl = al;\n\n ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);\n al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);\n }\n\n sum64(this.h, 0, ah, al);\n sum64(this.h, 2, bh, bl);\n sum64(this.h, 4, ch, cl);\n sum64(this.h, 6, dh, dl);\n sum64(this.h, 8, eh, el);\n sum64(this.h, 10, fh, fl);\n sum64(this.h, 12, gh, gl);\n sum64(this.h, 14, hh, hl);\n};\n\nSHA512.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n\nfunction ch64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ ((~xh) & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction ch64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ ((~xl) & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 28);\n var c1_hi = rotr64_hi(xl, xh, 2); // 34\n var c2_hi = rotr64_hi(xl, xh, 7); // 39\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 28);\n var c1_lo = rotr64_lo(xl, xh, 2); // 34\n var c2_lo = rotr64_lo(xl, xh, 7); // 39\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 14);\n var c1_hi = rotr64_hi(xh, xl, 18);\n var c2_hi = rotr64_hi(xl, xh, 9); // 41\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 14);\n var c1_lo = rotr64_lo(xh, xl, 18);\n var c2_lo = rotr64_lo(xl, xh, 9); // 41\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 1);\n var c1_hi = rotr64_hi(xh, xl, 8);\n var c2_hi = shr64_hi(xh, xl, 7);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 1);\n var c1_lo = rotr64_lo(xh, xl, 8);\n var c2_lo = shr64_lo(xh, xl, 7);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 19);\n var c1_hi = rotr64_hi(xl, xh, 29); // 61\n var c2_hi = shr64_hi(xh, xl, 6);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 19);\n var c1_lo = rotr64_lo(xl, xh, 29); // 61\n var c2_lo = shr64_lo(xh, xl, 6);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n","'use strict';\n\nvar utils = require('../utils');\nvar rotr32 = utils.rotr32;\n\nfunction ft_1(s, x, y, z) {\n if (s === 0)\n return ch32(x, y, z);\n if (s === 1 || s === 3)\n return p32(x, y, z);\n if (s === 2)\n return maj32(x, y, z);\n}\nexports.ft_1 = ft_1;\n\nfunction ch32(x, y, z) {\n return (x & y) ^ ((~x) & z);\n}\nexports.ch32 = ch32;\n\nfunction maj32(x, y, z) {\n return (x & y) ^ (x & z) ^ (y & z);\n}\nexports.maj32 = maj32;\n\nfunction p32(x, y, z) {\n return x ^ y ^ z;\n}\nexports.p32 = p32;\n\nfunction s0_256(x) {\n return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);\n}\nexports.s0_256 = s0_256;\n\nfunction s1_256(x) {\n return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);\n}\nexports.s1_256 = s1_256;\n\nfunction g0_256(x) {\n return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3);\n}\nexports.g0_256 = g0_256;\n\nfunction g1_256(x) {\n return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10);\n}\nexports.g1_256 = g1_256;\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nexports.inherits = inherits;\n\nfunction isSurrogatePair(msg, i) {\n if ((msg.charCodeAt(i) & 0xFC00) !== 0xD800) {\n return false;\n }\n if (i < 0 || i + 1 >= msg.length) {\n return false;\n }\n return (msg.charCodeAt(i + 1) & 0xFC00) === 0xDC00;\n}\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg === 'string') {\n if (!enc) {\n // Inspired by stringToUtf8ByteArray() in closure-library by Google\n // https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt.js#L117-L143\n // Apache License 2.0\n // https://github.com/google/closure-library/blob/master/LICENSE\n var p = 0;\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n if (c < 128) {\n res[p++] = c;\n } else if (c < 2048) {\n res[p++] = (c >> 6) | 192;\n res[p++] = (c & 63) | 128;\n } else if (isSurrogatePair(msg, i)) {\n c = 0x10000 + ((c & 0x03FF) << 10) + (msg.charCodeAt(++i) & 0x03FF);\n res[p++] = (c >> 18) | 240;\n res[p++] = ((c >> 12) & 63) | 128;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n } else {\n res[p++] = (c >> 12) | 224;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n }\n }\n } else if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n }\n } else {\n for (i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n }\n return res;\n}\nexports.toArray = toArray;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nexports.toHex = toHex;\n\nfunction htonl(w) {\n var res = (w >>> 24) |\n ((w >>> 8) & 0xff00) |\n ((w << 8) & 0xff0000) |\n ((w & 0xff) << 24);\n return res >>> 0;\n}\nexports.htonl = htonl;\n\nfunction toHex32(msg, endian) {\n var res = '';\n for (var i = 0; i < msg.length; i++) {\n var w = msg[i];\n if (endian === 'little')\n w = htonl(w);\n res += zero8(w.toString(16));\n }\n return res;\n}\nexports.toHex32 = toHex32;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nexports.zero2 = zero2;\n\nfunction zero8(word) {\n if (word.length === 7)\n return '0' + word;\n else if (word.length === 6)\n return '00' + word;\n else if (word.length === 5)\n return '000' + word;\n else if (word.length === 4)\n return '0000' + word;\n else if (word.length === 3)\n return '00000' + word;\n else if (word.length === 2)\n return '000000' + word;\n else if (word.length === 1)\n return '0000000' + word;\n else\n return word;\n}\nexports.zero8 = zero8;\n\nfunction join32(msg, start, end, endian) {\n var len = end - start;\n assert(len % 4 === 0);\n var res = new Array(len / 4);\n for (var i = 0, k = start; i < res.length; i++, k += 4) {\n var w;\n if (endian === 'big')\n w = (msg[k] << 24) | (msg[k + 1] << 16) | (msg[k + 2] << 8) | msg[k + 3];\n else\n w = (msg[k + 3] << 24) | (msg[k + 2] << 16) | (msg[k + 1] << 8) | msg[k];\n res[i] = w >>> 0;\n }\n return res;\n}\nexports.join32 = join32;\n\nfunction split32(msg, endian) {\n var res = new Array(msg.length * 4);\n for (var i = 0, k = 0; i < msg.length; i++, k += 4) {\n var m = msg[i];\n if (endian === 'big') {\n res[k] = m >>> 24;\n res[k + 1] = (m >>> 16) & 0xff;\n res[k + 2] = (m >>> 8) & 0xff;\n res[k + 3] = m & 0xff;\n } else {\n res[k + 3] = m >>> 24;\n res[k + 2] = (m >>> 16) & 0xff;\n res[k + 1] = (m >>> 8) & 0xff;\n res[k] = m & 0xff;\n }\n }\n return res;\n}\nexports.split32 = split32;\n\nfunction rotr32(w, b) {\n return (w >>> b) | (w << (32 - b));\n}\nexports.rotr32 = rotr32;\n\nfunction rotl32(w, b) {\n return (w << b) | (w >>> (32 - b));\n}\nexports.rotl32 = rotl32;\n\nfunction sum32(a, b) {\n return (a + b) >>> 0;\n}\nexports.sum32 = sum32;\n\nfunction sum32_3(a, b, c) {\n return (a + b + c) >>> 0;\n}\nexports.sum32_3 = sum32_3;\n\nfunction sum32_4(a, b, c, d) {\n return (a + b + c + d) >>> 0;\n}\nexports.sum32_4 = sum32_4;\n\nfunction sum32_5(a, b, c, d, e) {\n return (a + b + c + d + e) >>> 0;\n}\nexports.sum32_5 = sum32_5;\n\nfunction sum64(buf, pos, ah, al) {\n var bh = buf[pos];\n var bl = buf[pos + 1];\n\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n buf[pos] = hi >>> 0;\n buf[pos + 1] = lo;\n}\nexports.sum64 = sum64;\n\nfunction sum64_hi(ah, al, bh, bl) {\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n return hi >>> 0;\n}\nexports.sum64_hi = sum64_hi;\n\nfunction sum64_lo(ah, al, bh, bl) {\n var lo = al + bl;\n return lo >>> 0;\n}\nexports.sum64_lo = sum64_lo;\n\nfunction sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n\n var hi = ah + bh + ch + dh + carry;\n return hi >>> 0;\n}\nexports.sum64_4_hi = sum64_4_hi;\n\nfunction sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {\n var lo = al + bl + cl + dl;\n return lo >>> 0;\n}\nexports.sum64_4_lo = sum64_4_lo;\n\nfunction sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n lo = (lo + el) >>> 0;\n carry += lo < el ? 1 : 0;\n\n var hi = ah + bh + ch + dh + eh + carry;\n return hi >>> 0;\n}\nexports.sum64_5_hi = sum64_5_hi;\n\nfunction sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var lo = al + bl + cl + dl + el;\n\n return lo >>> 0;\n}\nexports.sum64_5_lo = sum64_5_lo;\n\nfunction rotr64_hi(ah, al, num) {\n var r = (al << (32 - num)) | (ah >>> num);\n return r >>> 0;\n}\nexports.rotr64_hi = rotr64_hi;\n\nfunction rotr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.rotr64_lo = rotr64_lo;\n\nfunction shr64_hi(ah, al, num) {\n return ah >>> num;\n}\nexports.shr64_hi = shr64_hi;\n\nfunction shr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.shr64_lo = shr64_lo;\n","'use strict';\n\nvar hash = require('hash.js');\nvar utils = require('minimalistic-crypto-utils');\nvar assert = require('minimalistic-assert');\n\nfunction HmacDRBG(options) {\n if (!(this instanceof HmacDRBG))\n return new HmacDRBG(options);\n this.hash = options.hash;\n this.predResist = !!options.predResist;\n\n this.outLen = this.hash.outSize;\n this.minEntropy = options.minEntropy || this.hash.hmacStrength;\n\n this._reseed = null;\n this.reseedInterval = null;\n this.K = null;\n this.V = null;\n\n var entropy = utils.toArray(options.entropy, options.entropyEnc || 'hex');\n var nonce = utils.toArray(options.nonce, options.nonceEnc || 'hex');\n var pers = utils.toArray(options.pers, options.persEnc || 'hex');\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n this._init(entropy, nonce, pers);\n}\nmodule.exports = HmacDRBG;\n\nHmacDRBG.prototype._init = function init(entropy, nonce, pers) {\n var seed = entropy.concat(nonce).concat(pers);\n\n this.K = new Array(this.outLen / 8);\n this.V = new Array(this.outLen / 8);\n for (var i = 0; i < this.V.length; i++) {\n this.K[i] = 0x00;\n this.V[i] = 0x01;\n }\n\n this._update(seed);\n this._reseed = 1;\n this.reseedInterval = 0x1000000000000; // 2^48\n};\n\nHmacDRBG.prototype._hmac = function hmac() {\n return new hash.hmac(this.hash, this.K);\n};\n\nHmacDRBG.prototype._update = function update(seed) {\n var kmac = this._hmac()\n .update(this.V)\n .update([ 0x00 ]);\n if (seed)\n kmac = kmac.update(seed);\n this.K = kmac.digest();\n this.V = this._hmac().update(this.V).digest();\n if (!seed)\n return;\n\n this.K = this._hmac()\n .update(this.V)\n .update([ 0x01 ])\n .update(seed)\n .digest();\n this.V = this._hmac().update(this.V).digest();\n};\n\nHmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {\n // Optional entropy enc\n if (typeof entropyEnc !== 'string') {\n addEnc = add;\n add = entropyEnc;\n entropyEnc = null;\n }\n\n entropy = utils.toArray(entropy, entropyEnc);\n add = utils.toArray(add, addEnc);\n\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n\n this._update(entropy.concat(add || []));\n this._reseed = 1;\n};\n\nHmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {\n if (this._reseed > this.reseedInterval)\n throw new Error('Reseed is required');\n\n // Optional encoding\n if (typeof enc !== 'string') {\n addEnc = add;\n add = enc;\n enc = null;\n }\n\n // Optional additional data\n if (add) {\n add = utils.toArray(add, addEnc || 'hex');\n this._update(add);\n }\n\n var temp = [];\n while (temp.length < len) {\n this.V = this._hmac().update(this.V).digest();\n temp = temp.concat(this.V);\n }\n\n var res = temp.slice(0, len);\n this._update(add);\n this._reseed++;\n return utils.encode(res, enc);\n};\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","/**\n * [js-sha3]{@link https://github.com/emn178/js-sha3}\n *\n * @version 0.8.0\n * @author Chen, Yi-Cyuan [emn178@gmail.com]\n * @copyright Chen, Yi-Cyuan 2015-2018\n * @license MIT\n */\n/*jslint bitwise: true */\n(function () {\n 'use strict';\n\n var INPUT_ERROR = 'input is invalid type';\n var FINALIZE_ERROR = 'finalize already called';\n var WINDOW = typeof window === 'object';\n var root = WINDOW ? window : {};\n if (root.JS_SHA3_NO_WINDOW) {\n WINDOW = false;\n }\n var WEB_WORKER = !WINDOW && typeof self === 'object';\n var NODE_JS = !root.JS_SHA3_NO_NODE_JS && typeof process === 'object' && process.versions && process.versions.node;\n if (NODE_JS) {\n root = global;\n } else if (WEB_WORKER) {\n root = self;\n }\n var COMMON_JS = !root.JS_SHA3_NO_COMMON_JS && typeof module === 'object' && module.exports;\n var AMD = typeof define === 'function' && define.amd;\n var ARRAY_BUFFER = !root.JS_SHA3_NO_ARRAY_BUFFER && typeof ArrayBuffer !== 'undefined';\n var HEX_CHARS = '0123456789abcdef'.split('');\n var SHAKE_PADDING = [31, 7936, 2031616, 520093696];\n var CSHAKE_PADDING = [4, 1024, 262144, 67108864];\n var KECCAK_PADDING = [1, 256, 65536, 16777216];\n var PADDING = [6, 1536, 393216, 100663296];\n var SHIFT = [0, 8, 16, 24];\n var RC = [1, 0, 32898, 0, 32906, 2147483648, 2147516416, 2147483648, 32907, 0, 2147483649,\n 0, 2147516545, 2147483648, 32777, 2147483648, 138, 0, 136, 0, 2147516425, 0,\n 2147483658, 0, 2147516555, 0, 139, 2147483648, 32905, 2147483648, 32771,\n 2147483648, 32770, 2147483648, 128, 2147483648, 32778, 0, 2147483658, 2147483648,\n 2147516545, 2147483648, 32896, 2147483648, 2147483649, 0, 2147516424, 2147483648];\n var BITS = [224, 256, 384, 512];\n var SHAKE_BITS = [128, 256];\n var OUTPUT_TYPES = ['hex', 'buffer', 'arrayBuffer', 'array', 'digest'];\n var CSHAKE_BYTEPAD = {\n '128': 168,\n '256': 136\n };\n\n if (root.JS_SHA3_NO_NODE_JS || !Array.isArray) {\n Array.isArray = function (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n };\n }\n\n if (ARRAY_BUFFER && (root.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView)) {\n ArrayBuffer.isView = function (obj) {\n return typeof obj === 'object' && obj.buffer && obj.buffer.constructor === ArrayBuffer;\n };\n }\n\n var createOutputMethod = function (bits, padding, outputType) {\n return function (message) {\n return new Keccak(bits, padding, bits).update(message)[outputType]();\n };\n };\n\n var createShakeOutputMethod = function (bits, padding, outputType) {\n return function (message, outputBits) {\n return new Keccak(bits, padding, outputBits).update(message)[outputType]();\n };\n };\n\n var createCshakeOutputMethod = function (bits, padding, outputType) {\n return function (message, outputBits, n, s) {\n return methods['cshake' + bits].update(message, outputBits, n, s)[outputType]();\n };\n };\n\n var createKmacOutputMethod = function (bits, padding, outputType) {\n return function (key, message, outputBits, s) {\n return methods['kmac' + bits].update(key, message, outputBits, s)[outputType]();\n };\n };\n\n var createOutputMethods = function (method, createMethod, bits, padding) {\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createMethod(bits, padding, type);\n }\n return method;\n };\n\n var createMethod = function (bits, padding) {\n var method = createOutputMethod(bits, padding, 'hex');\n method.create = function () {\n return new Keccak(bits, padding, bits);\n };\n method.update = function (message) {\n return method.create().update(message);\n };\n return createOutputMethods(method, createOutputMethod, bits, padding);\n };\n\n var createShakeMethod = function (bits, padding) {\n var method = createShakeOutputMethod(bits, padding, 'hex');\n method.create = function (outputBits) {\n return new Keccak(bits, padding, outputBits);\n };\n method.update = function (message, outputBits) {\n return method.create(outputBits).update(message);\n };\n return createOutputMethods(method, createShakeOutputMethod, bits, padding);\n };\n\n var createCshakeMethod = function (bits, padding) {\n var w = CSHAKE_BYTEPAD[bits];\n var method = createCshakeOutputMethod(bits, padding, 'hex');\n method.create = function (outputBits, n, s) {\n if (!n && !s) {\n return methods['shake' + bits].create(outputBits);\n } else {\n return new Keccak(bits, padding, outputBits).bytepad([n, s], w);\n }\n };\n method.update = function (message, outputBits, n, s) {\n return method.create(outputBits, n, s).update(message);\n };\n return createOutputMethods(method, createCshakeOutputMethod, bits, padding);\n };\n\n var createKmacMethod = function (bits, padding) {\n var w = CSHAKE_BYTEPAD[bits];\n var method = createKmacOutputMethod(bits, padding, 'hex');\n method.create = function (key, outputBits, s) {\n return new Kmac(bits, padding, outputBits).bytepad(['KMAC', s], w).bytepad([key], w);\n };\n method.update = function (key, message, outputBits, s) {\n return method.create(key, outputBits, s).update(message);\n };\n return createOutputMethods(method, createKmacOutputMethod, bits, padding);\n };\n\n var algorithms = [\n { name: 'keccak', padding: KECCAK_PADDING, bits: BITS, createMethod: createMethod },\n { name: 'sha3', padding: PADDING, bits: BITS, createMethod: createMethod },\n { name: 'shake', padding: SHAKE_PADDING, bits: SHAKE_BITS, createMethod: createShakeMethod },\n { name: 'cshake', padding: CSHAKE_PADDING, bits: SHAKE_BITS, createMethod: createCshakeMethod },\n { name: 'kmac', padding: CSHAKE_PADDING, bits: SHAKE_BITS, createMethod: createKmacMethod }\n ];\n\n var methods = {}, methodNames = [];\n\n for (var i = 0; i < algorithms.length; ++i) {\n var algorithm = algorithms[i];\n var bits = algorithm.bits;\n for (var j = 0; j < bits.length; ++j) {\n var methodName = algorithm.name + '_' + bits[j];\n methodNames.push(methodName);\n methods[methodName] = algorithm.createMethod(bits[j], algorithm.padding);\n if (algorithm.name !== 'sha3') {\n var newMethodName = algorithm.name + bits[j];\n methodNames.push(newMethodName);\n methods[newMethodName] = methods[methodName];\n }\n }\n }\n\n function Keccak(bits, padding, outputBits) {\n this.blocks = [];\n this.s = [];\n this.padding = padding;\n this.outputBits = outputBits;\n this.reset = true;\n this.finalized = false;\n this.block = 0;\n this.start = 0;\n this.blockCount = (1600 - (bits << 1)) >> 5;\n this.byteCount = this.blockCount << 2;\n this.outputBlocks = outputBits >> 5;\n this.extraBytes = (outputBits & 31) >> 3;\n\n for (var i = 0; i < 50; ++i) {\n this.s[i] = 0;\n }\n }\n\n Keccak.prototype.update = function (message) {\n if (this.finalized) {\n throw new Error(FINALIZE_ERROR);\n }\n var notString, type = typeof message;\n if (type !== 'string') {\n if (type === 'object') {\n if (message === null) {\n throw new Error(INPUT_ERROR);\n } else if (ARRAY_BUFFER && message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n } else if (!Array.isArray(message)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(message)) {\n throw new Error(INPUT_ERROR);\n }\n }\n } else {\n throw new Error(INPUT_ERROR);\n }\n notString = true;\n }\n var blocks = this.blocks, byteCount = this.byteCount, length = message.length,\n blockCount = this.blockCount, index = 0, s = this.s, i, code;\n\n while (index < length) {\n if (this.reset) {\n this.reset = false;\n blocks[0] = this.block;\n for (i = 1; i < blockCount + 1; ++i) {\n blocks[i] = 0;\n }\n }\n if (notString) {\n for (i = this.start; index < length && i < byteCount; ++index) {\n blocks[i >> 2] |= message[index] << SHIFT[i++ & 3];\n }\n } else {\n for (i = this.start; index < length && i < byteCount; ++index) {\n code = message.charCodeAt(index);\n if (code < 0x80) {\n blocks[i >> 2] |= code << SHIFT[i++ & 3];\n } else if (code < 0x800) {\n blocks[i >> 2] |= (0xc0 | (code >> 6)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else if (code < 0xd800 || code >= 0xe000) {\n blocks[i >> 2] |= (0xe0 | (code >> 12)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff));\n blocks[i >> 2] |= (0xf0 | (code >> 18)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 12) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n }\n }\n }\n this.lastByteIndex = i;\n if (i >= byteCount) {\n this.start = i - byteCount;\n this.block = blocks[blockCount];\n for (i = 0; i < blockCount; ++i) {\n s[i] ^= blocks[i];\n }\n f(s);\n this.reset = true;\n } else {\n this.start = i;\n }\n }\n return this;\n };\n\n Keccak.prototype.encode = function (x, right) {\n var o = x & 255, n = 1;\n var bytes = [o];\n x = x >> 8;\n o = x & 255;\n while (o > 0) {\n bytes.unshift(o);\n x = x >> 8;\n o = x & 255;\n ++n;\n }\n if (right) {\n bytes.push(n);\n } else {\n bytes.unshift(n);\n }\n this.update(bytes);\n return bytes.length;\n };\n\n Keccak.prototype.encodeString = function (str) {\n var notString, type = typeof str;\n if (type !== 'string') {\n if (type === 'object') {\n if (str === null) {\n throw new Error(INPUT_ERROR);\n } else if (ARRAY_BUFFER && str.constructor === ArrayBuffer) {\n str = new Uint8Array(str);\n } else if (!Array.isArray(str)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(str)) {\n throw new Error(INPUT_ERROR);\n }\n }\n } else {\n throw new Error(INPUT_ERROR);\n }\n notString = true;\n }\n var bytes = 0, length = str.length;\n if (notString) {\n bytes = length;\n } else {\n for (var i = 0; i < str.length; ++i) {\n var code = str.charCodeAt(i);\n if (code < 0x80) {\n bytes += 1;\n } else if (code < 0x800) {\n bytes += 2;\n } else if (code < 0xd800 || code >= 0xe000) {\n bytes += 3;\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (str.charCodeAt(++i) & 0x3ff));\n bytes += 4;\n }\n }\n }\n bytes += this.encode(bytes * 8);\n this.update(str);\n return bytes;\n };\n\n Keccak.prototype.bytepad = function (strs, w) {\n var bytes = this.encode(w);\n for (var i = 0; i < strs.length; ++i) {\n bytes += this.encodeString(strs[i]);\n }\n var paddingBytes = w - bytes % w;\n var zeros = [];\n zeros.length = paddingBytes;\n this.update(zeros);\n return this;\n };\n\n Keccak.prototype.finalize = function () {\n if (this.finalized) {\n return;\n }\n this.finalized = true;\n var blocks = this.blocks, i = this.lastByteIndex, blockCount = this.blockCount, s = this.s;\n blocks[i >> 2] |= this.padding[i & 3];\n if (this.lastByteIndex === this.byteCount) {\n blocks[0] = blocks[blockCount];\n for (i = 1; i < blockCount + 1; ++i) {\n blocks[i] = 0;\n }\n }\n blocks[blockCount - 1] |= 0x80000000;\n for (i = 0; i < blockCount; ++i) {\n s[i] ^= blocks[i];\n }\n f(s);\n };\n\n Keccak.prototype.toString = Keccak.prototype.hex = function () {\n this.finalize();\n\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks,\n extraBytes = this.extraBytes, i = 0, j = 0;\n var hex = '', block;\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n block = s[i];\n hex += HEX_CHARS[(block >> 4) & 0x0F] + HEX_CHARS[block & 0x0F] +\n HEX_CHARS[(block >> 12) & 0x0F] + HEX_CHARS[(block >> 8) & 0x0F] +\n HEX_CHARS[(block >> 20) & 0x0F] + HEX_CHARS[(block >> 16) & 0x0F] +\n HEX_CHARS[(block >> 28) & 0x0F] + HEX_CHARS[(block >> 24) & 0x0F];\n }\n if (j % blockCount === 0) {\n f(s);\n i = 0;\n }\n }\n if (extraBytes) {\n block = s[i];\n hex += HEX_CHARS[(block >> 4) & 0x0F] + HEX_CHARS[block & 0x0F];\n if (extraBytes > 1) {\n hex += HEX_CHARS[(block >> 12) & 0x0F] + HEX_CHARS[(block >> 8) & 0x0F];\n }\n if (extraBytes > 2) {\n hex += HEX_CHARS[(block >> 20) & 0x0F] + HEX_CHARS[(block >> 16) & 0x0F];\n }\n }\n return hex;\n };\n\n Keccak.prototype.arrayBuffer = function () {\n this.finalize();\n\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks,\n extraBytes = this.extraBytes, i = 0, j = 0;\n var bytes = this.outputBits >> 3;\n var buffer;\n if (extraBytes) {\n buffer = new ArrayBuffer((outputBlocks + 1) << 2);\n } else {\n buffer = new ArrayBuffer(bytes);\n }\n var array = new Uint32Array(buffer);\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n array[j] = s[i];\n }\n if (j % blockCount === 0) {\n f(s);\n }\n }\n if (extraBytes) {\n array[i] = s[i];\n buffer = buffer.slice(0, bytes);\n }\n return buffer;\n };\n\n Keccak.prototype.buffer = Keccak.prototype.arrayBuffer;\n\n Keccak.prototype.digest = Keccak.prototype.array = function () {\n this.finalize();\n\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks,\n extraBytes = this.extraBytes, i = 0, j = 0;\n var array = [], offset, block;\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n offset = j << 2;\n block = s[i];\n array[offset] = block & 0xFF;\n array[offset + 1] = (block >> 8) & 0xFF;\n array[offset + 2] = (block >> 16) & 0xFF;\n array[offset + 3] = (block >> 24) & 0xFF;\n }\n if (j % blockCount === 0) {\n f(s);\n }\n }\n if (extraBytes) {\n offset = j << 2;\n block = s[i];\n array[offset] = block & 0xFF;\n if (extraBytes > 1) {\n array[offset + 1] = (block >> 8) & 0xFF;\n }\n if (extraBytes > 2) {\n array[offset + 2] = (block >> 16) & 0xFF;\n }\n }\n return array;\n };\n\n function Kmac(bits, padding, outputBits) {\n Keccak.call(this, bits, padding, outputBits);\n }\n\n Kmac.prototype = new Keccak();\n\n Kmac.prototype.finalize = function () {\n this.encode(this.outputBits, true);\n return Keccak.prototype.finalize.call(this);\n };\n\n var f = function (s) {\n var h, l, n, c0, c1, c2, c3, c4, c5, c6, c7, c8, c9,\n b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15, b16, b17,\n b18, b19, b20, b21, b22, b23, b24, b25, b26, b27, b28, b29, b30, b31, b32, b33,\n b34, b35, b36, b37, b38, b39, b40, b41, b42, b43, b44, b45, b46, b47, b48, b49;\n for (n = 0; n < 48; n += 2) {\n c0 = s[0] ^ s[10] ^ s[20] ^ s[30] ^ s[40];\n c1 = s[1] ^ s[11] ^ s[21] ^ s[31] ^ s[41];\n c2 = s[2] ^ s[12] ^ s[22] ^ s[32] ^ s[42];\n c3 = s[3] ^ s[13] ^ s[23] ^ s[33] ^ s[43];\n c4 = s[4] ^ s[14] ^ s[24] ^ s[34] ^ s[44];\n c5 = s[5] ^ s[15] ^ s[25] ^ s[35] ^ s[45];\n c6 = s[6] ^ s[16] ^ s[26] ^ s[36] ^ s[46];\n c7 = s[7] ^ s[17] ^ s[27] ^ s[37] ^ s[47];\n c8 = s[8] ^ s[18] ^ s[28] ^ s[38] ^ s[48];\n c9 = s[9] ^ s[19] ^ s[29] ^ s[39] ^ s[49];\n\n h = c8 ^ ((c2 << 1) | (c3 >>> 31));\n l = c9 ^ ((c3 << 1) | (c2 >>> 31));\n s[0] ^= h;\n s[1] ^= l;\n s[10] ^= h;\n s[11] ^= l;\n s[20] ^= h;\n s[21] ^= l;\n s[30] ^= h;\n s[31] ^= l;\n s[40] ^= h;\n s[41] ^= l;\n h = c0 ^ ((c4 << 1) | (c5 >>> 31));\n l = c1 ^ ((c5 << 1) | (c4 >>> 31));\n s[2] ^= h;\n s[3] ^= l;\n s[12] ^= h;\n s[13] ^= l;\n s[22] ^= h;\n s[23] ^= l;\n s[32] ^= h;\n s[33] ^= l;\n s[42] ^= h;\n s[43] ^= l;\n h = c2 ^ ((c6 << 1) | (c7 >>> 31));\n l = c3 ^ ((c7 << 1) | (c6 >>> 31));\n s[4] ^= h;\n s[5] ^= l;\n s[14] ^= h;\n s[15] ^= l;\n s[24] ^= h;\n s[25] ^= l;\n s[34] ^= h;\n s[35] ^= l;\n s[44] ^= h;\n s[45] ^= l;\n h = c4 ^ ((c8 << 1) | (c9 >>> 31));\n l = c5 ^ ((c9 << 1) | (c8 >>> 31));\n s[6] ^= h;\n s[7] ^= l;\n s[16] ^= h;\n s[17] ^= l;\n s[26] ^= h;\n s[27] ^= l;\n s[36] ^= h;\n s[37] ^= l;\n s[46] ^= h;\n s[47] ^= l;\n h = c6 ^ ((c0 << 1) | (c1 >>> 31));\n l = c7 ^ ((c1 << 1) | (c0 >>> 31));\n s[8] ^= h;\n s[9] ^= l;\n s[18] ^= h;\n s[19] ^= l;\n s[28] ^= h;\n s[29] ^= l;\n s[38] ^= h;\n s[39] ^= l;\n s[48] ^= h;\n s[49] ^= l;\n\n b0 = s[0];\n b1 = s[1];\n b32 = (s[11] << 4) | (s[10] >>> 28);\n b33 = (s[10] << 4) | (s[11] >>> 28);\n b14 = (s[20] << 3) | (s[21] >>> 29);\n b15 = (s[21] << 3) | (s[20] >>> 29);\n b46 = (s[31] << 9) | (s[30] >>> 23);\n b47 = (s[30] << 9) | (s[31] >>> 23);\n b28 = (s[40] << 18) | (s[41] >>> 14);\n b29 = (s[41] << 18) | (s[40] >>> 14);\n b20 = (s[2] << 1) | (s[3] >>> 31);\n b21 = (s[3] << 1) | (s[2] >>> 31);\n b2 = (s[13] << 12) | (s[12] >>> 20);\n b3 = (s[12] << 12) | (s[13] >>> 20);\n b34 = (s[22] << 10) | (s[23] >>> 22);\n b35 = (s[23] << 10) | (s[22] >>> 22);\n b16 = (s[33] << 13) | (s[32] >>> 19);\n b17 = (s[32] << 13) | (s[33] >>> 19);\n b48 = (s[42] << 2) | (s[43] >>> 30);\n b49 = (s[43] << 2) | (s[42] >>> 30);\n b40 = (s[5] << 30) | (s[4] >>> 2);\n b41 = (s[4] << 30) | (s[5] >>> 2);\n b22 = (s[14] << 6) | (s[15] >>> 26);\n b23 = (s[15] << 6) | (s[14] >>> 26);\n b4 = (s[25] << 11) | (s[24] >>> 21);\n b5 = (s[24] << 11) | (s[25] >>> 21);\n b36 = (s[34] << 15) | (s[35] >>> 17);\n b37 = (s[35] << 15) | (s[34] >>> 17);\n b18 = (s[45] << 29) | (s[44] >>> 3);\n b19 = (s[44] << 29) | (s[45] >>> 3);\n b10 = (s[6] << 28) | (s[7] >>> 4);\n b11 = (s[7] << 28) | (s[6] >>> 4);\n b42 = (s[17] << 23) | (s[16] >>> 9);\n b43 = (s[16] << 23) | (s[17] >>> 9);\n b24 = (s[26] << 25) | (s[27] >>> 7);\n b25 = (s[27] << 25) | (s[26] >>> 7);\n b6 = (s[36] << 21) | (s[37] >>> 11);\n b7 = (s[37] << 21) | (s[36] >>> 11);\n b38 = (s[47] << 24) | (s[46] >>> 8);\n b39 = (s[46] << 24) | (s[47] >>> 8);\n b30 = (s[8] << 27) | (s[9] >>> 5);\n b31 = (s[9] << 27) | (s[8] >>> 5);\n b12 = (s[18] << 20) | (s[19] >>> 12);\n b13 = (s[19] << 20) | (s[18] >>> 12);\n b44 = (s[29] << 7) | (s[28] >>> 25);\n b45 = (s[28] << 7) | (s[29] >>> 25);\n b26 = (s[38] << 8) | (s[39] >>> 24);\n b27 = (s[39] << 8) | (s[38] >>> 24);\n b8 = (s[48] << 14) | (s[49] >>> 18);\n b9 = (s[49] << 14) | (s[48] >>> 18);\n\n s[0] = b0 ^ (~b2 & b4);\n s[1] = b1 ^ (~b3 & b5);\n s[10] = b10 ^ (~b12 & b14);\n s[11] = b11 ^ (~b13 & b15);\n s[20] = b20 ^ (~b22 & b24);\n s[21] = b21 ^ (~b23 & b25);\n s[30] = b30 ^ (~b32 & b34);\n s[31] = b31 ^ (~b33 & b35);\n s[40] = b40 ^ (~b42 & b44);\n s[41] = b41 ^ (~b43 & b45);\n s[2] = b2 ^ (~b4 & b6);\n s[3] = b3 ^ (~b5 & b7);\n s[12] = b12 ^ (~b14 & b16);\n s[13] = b13 ^ (~b15 & b17);\n s[22] = b22 ^ (~b24 & b26);\n s[23] = b23 ^ (~b25 & b27);\n s[32] = b32 ^ (~b34 & b36);\n s[33] = b33 ^ (~b35 & b37);\n s[42] = b42 ^ (~b44 & b46);\n s[43] = b43 ^ (~b45 & b47);\n s[4] = b4 ^ (~b6 & b8);\n s[5] = b5 ^ (~b7 & b9);\n s[14] = b14 ^ (~b16 & b18);\n s[15] = b15 ^ (~b17 & b19);\n s[24] = b24 ^ (~b26 & b28);\n s[25] = b25 ^ (~b27 & b29);\n s[34] = b34 ^ (~b36 & b38);\n s[35] = b35 ^ (~b37 & b39);\n s[44] = b44 ^ (~b46 & b48);\n s[45] = b45 ^ (~b47 & b49);\n s[6] = b6 ^ (~b8 & b0);\n s[7] = b7 ^ (~b9 & b1);\n s[16] = b16 ^ (~b18 & b10);\n s[17] = b17 ^ (~b19 & b11);\n s[26] = b26 ^ (~b28 & b20);\n s[27] = b27 ^ (~b29 & b21);\n s[36] = b36 ^ (~b38 & b30);\n s[37] = b37 ^ (~b39 & b31);\n s[46] = b46 ^ (~b48 & b40);\n s[47] = b47 ^ (~b49 & b41);\n s[8] = b8 ^ (~b0 & b2);\n s[9] = b9 ^ (~b1 & b3);\n s[18] = b18 ^ (~b10 & b12);\n s[19] = b19 ^ (~b11 & b13);\n s[28] = b28 ^ (~b20 & b22);\n s[29] = b29 ^ (~b21 & b23);\n s[38] = b38 ^ (~b30 & b32);\n s[39] = b39 ^ (~b31 & b33);\n s[48] = b48 ^ (~b40 & b42);\n s[49] = b49 ^ (~b41 & b43);\n\n s[0] ^= RC[n];\n s[1] ^= RC[n + 1];\n }\n };\n\n if (COMMON_JS) {\n module.exports = methods;\n } else {\n for (i = 0; i < methodNames.length; ++i) {\n root[methodNames[i]] = methods[methodNames[i]];\n }\n if (AMD) {\n define(function () {\n return methods;\n });\n }\n }\n})();\n","!function(r,n){if(\"object\"==typeof exports&&\"object\"==typeof module)module.exports=n();else if(\"function\"==typeof define&&define.amd)define([],n);else if(\"object\"==typeof exports)exports.JsCrypto=n();else{var t=n();for(var e in r.JsCrypto=r.JsCrypto||{},t)r.JsCrypto[e]=t[e]}}(this,(function(){return function(){\"use strict\";var r={d:function(n,t){for(var e in t)r.o(t,e)&&!r.o(n,e)&&Object.defineProperty(n,e,{enumerable:!0,get:t[e]})}};r.g=function(){if(\"object\"==typeof globalThis)return globalThis;try{return this||new Function(\"return this\")()}catch(r){if(\"object\"==typeof window)return window}}(),r.o=function(r,n){return Object.prototype.hasOwnProperty.call(r,n)},r.r=function(r){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(r,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(r,\"t\",{value:!0})};var n={};r.r(n),r.d(n,{Base64:function(){return h}});var t,e=function(r){for(var n=r.nSigBytes,t=r.words,e=[],i=0;i>>2]>>>24-i%4*8&255;e.push((o>>>4).toString(16)),e.push((15&o).toString(16))}return e.join(\"\")},i=\"undefined\"!=typeof navigator&&navigator.userAgent?navigator.userAgent.toLowerCase():\"\",o=(t=parseInt((/msie (\\d+)/.exec(i)||[])[1],10),isNaN(t)?(t=parseInt((/trident\\/.*; rv:(\\d+)/.exec(i)||[])[1],10),!isNaN(t)&&t):t);for(var a=function(){if(\"undefined\"!=typeof window){var n=window.crypto||window.msCrypto;if(!n){if(function(r,n){return!1!==o&&(!n||(\"<\"===r?o\"===r?o>n:\">=\"===r?o>=n:o===n))}(\"<\",11))return console.warn(\"IE <= 10 uses insecure random generator. Please consider to use IE11 or another modern browser\"),function(){return Math.floor(512*Math.random())%256};throw new Error(\"Crypto module not found\")}return function(){return n.getRandomValues(new Uint32Array(1))[0]}}return void 0!==r.g&&r.g.crypto?function(){return r.g.crypto.randomBytes(4).readInt32LE()}:function(){return require(\"crypto\").randomBytes(4).readInt32LE()}}(),f=function(){function r(n,t){if(Array.isArray(n)||!n)return this.i=Array.isArray(n)?n:[],void(this.u=\"number\"==typeof t?t:4*this.i.length);if(n instanceof r)return this.i=n.words.slice(),void(this.u=n.nSigBytes);var e;try{n instanceof ArrayBuffer?e=new Uint8Array(n):(n instanceof Uint8Array||n instanceof Int8Array||n instanceof Uint8ClampedArray||n instanceof Int16Array||n instanceof Uint16Array||n instanceof Int32Array||n instanceof Uint32Array||n instanceof Float32Array||n instanceof Float64Array)&&(e=new Uint8Array(n.buffer,n.byteOffset,n.byteLength))}catch(r){throw new Error(\"Invalid argument\")}if(!e)throw new Error(\"Invalid argument\");for(var i=e.byteLength,o=[],a=0;a>>2]|=e[a]<<24-a%4*8;this.i=o,this.u=i}return Object.defineProperty(r.prototype,\"nSigBytes\",{get:function(){return this.u},set:function(r){this.u=r},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,\"words\",{get:function(){return this.i},enumerable:!1,configurable:!0}),r.prototype.toString=function(r){return r?r.stringify(this):e(this)},r.prototype.toUint8Array=function(){for(var r=this.i,n=this.u,t=new Uint8Array(n),e=0;e>>2]>>>24-e%4*8&255;return t},r.prototype.concat=function(r){var n=r.words.slice(),t=r.nSigBytes;if(this.clamp(),this.u%4)for(var e=0;e>>2]>>>24-e%4*8&255;this.i[this.u+e>>>2]|=i<<24-(this.u+e)%4*8}else for(e=0;e>>2]=n[e>>>2];return this.u+=t,this},r.prototype.clamp=function(){var r=this.u;this.i[r>>>2]&=4294967295<<32-r%4*8,this.i.length=Math.ceil(r/4)},r.prototype.clone=function(){return new r(this.i.slice(),this.u)},r.random=function(n){for(var t=[],e=0;e>>2]>>>24-i%4*8&255)<<16|(n[i+1>>>2]>>>24-(i+1)%4*8&255)<<8|n[i+2>>>2]>>>24-(i+2)%4*8&255,a=0;a<4&&i+.75*a>>6*(3-a)&63));var f=u.charAt(64);if(f)for(;e.length%4;)e.push(f);return e.join(\"\")},parse:function(r){var n=r.length,t=u.charAt(64);if(t){var e=r.indexOf(t);-1!==e&&(n=e)}for(var i=[],o=0,a=0;a>>6-a%4*2;i[o>>>2]|=c<<24-o%4*8,o++}return new f(i,o)}};return n}()}));","!function(n,t){if(\"object\"==typeof exports&&\"object\"==typeof module)module.exports=t();else if(\"function\"==typeof define&&define.amd)define([],t);else if(\"object\"==typeof exports)exports.JsCrypto=t();else{var r=t();for(var e in n.JsCrypto=n.JsCrypto||{},r)n.JsCrypto[e]=r[e]}}(this,(function(){return function(){\"use strict\";var n={3354:function(n,t,r){r.d(t,{e:function(){return o}});var e=r(5720),i=r(9054),o=function(){function n(t,r){if(Array.isArray(t)||!t)return this.t=Array.isArray(t)?t:[],void(this.i=\"number\"==typeof r?r:4*this.t.length);if(t instanceof n)return this.t=t.words.slice(),void(this.i=t.nSigBytes);var e;try{t instanceof ArrayBuffer?e=new Uint8Array(t):(t instanceof Uint8Array||t instanceof Int8Array||t instanceof Uint8ClampedArray||t instanceof Int16Array||t instanceof Uint16Array||t instanceof Int32Array||t instanceof Uint32Array||t instanceof Float32Array||t instanceof Float64Array)&&(e=new Uint8Array(t.buffer,t.byteOffset,t.byteLength))}catch(n){throw new Error(\"Invalid argument\")}if(!e)throw new Error(\"Invalid argument\");for(var i=e.byteLength,o=[],u=0;u>>2]|=e[u]<<24-u%4*8;this.t=o,this.i=i}return Object.defineProperty(n.prototype,\"nSigBytes\",{get:function(){return this.i},set:function(n){this.i=n},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,\"words\",{get:function(){return this.t},enumerable:!1,configurable:!0}),n.prototype.toString=function(n){return n?n.stringify(this):e.p.stringify(this)},n.prototype.toUint8Array=function(){for(var n=this.t,t=this.i,r=new Uint8Array(t),e=0;e>>2]>>>24-e%4*8&255;return r},n.prototype.concat=function(n){var t=n.words.slice(),r=n.nSigBytes;if(this.clamp(),this.i%4)for(var e=0;e>>2]>>>24-e%4*8&255;this.t[this.i+e>>>2]|=i<<24-(this.i+e)%4*8}else for(e=0;e>>2]=t[e>>>2];return this.i+=r,this},n.prototype.clamp=function(){var n=this.i;this.t[n>>>2]&=4294967295<<32-n%4*8,this.t.length=Math.ceil(n/4)},n.prototype.clone=function(){return new n(this.t.slice(),this.i)},n.random=function(t){for(var r=[],e=0;e\"===n?o>t:\">=\"===n?o>=t:o===t))}},5720:function(n,t,r){r.d(t,{p:function(){return i}});var e=r(3354),i={stringify:function(n){for(var t=n.nSigBytes,r=n.words,e=[],i=0;i>>2]>>>24-i%4*8&255;e.push((o>>>4).toString(16)),e.push((15&o).toString(16))}return e.join(\"\")},parse:function(n){var t=n.length;if(t%2!=0)throw new Error(\"Hex string count must be even\");if(!/^[a-fA-F0-9]+$/.test(n))throw new Error(\"Invalid Hex string: \"+n);for(var r=[],i=0;i>>3]|=parseInt(n.substr(i,2),16)<<24-i%8*4;return new e.e(r,t/2)}}},8702:function(n,t,r){r.d(t,{m:function(){return i}});var e=r(3354),i={stringify:function(n){for(var t=n.nSigBytes,r=n.words,e=[],i=0;i>>2]>>>24-i%4*8&255;e.push(String.fromCharCode(o))}return e.join(\"\")},parse:function(n){for(var t=n.length,r=[],i=0;i>>2]|=(255&n.charCodeAt(i))<<24-i%4*8;return new e.e(r,t)}}},4768:function(n,t,r){r.d(t,{d:function(){return i}});var e=r(8702),i={stringify:function(n){try{return decodeURIComponent(escape(e.m.stringify(n)))}catch(n){throw new Error(\"Malformed UTF-8 data\")}},parse:function(n){return e.m.parse(unescape(encodeURIComponent(n)))}}},9054:function(n,t,r){r.d(t,{M:function(){return i}});var e=r(1756);var i=function(){if(\"undefined\"!=typeof window){var n=window.crypto||window.msCrypto;if(!n){if((0,e.w)(\"<\",11))return console.warn(\"IE <= 10 uses insecure random generator. Please consider to use IE11 or another modern browser\"),function(){return Math.floor(512*Math.random())%256};throw new Error(\"Crypto module not found\")}return function(){return n.getRandomValues(new Uint32Array(1))[0]}}return void 0!==r.g&&r.g.crypto?function(){return r.g.crypto.randomBytes(4).readInt32LE()}:function(){return require(\"crypto\").randomBytes(4).readInt32LE()}}()}},t={};function r(e){var i=t[e];if(void 0!==i)return i.exports;var o=t[e]={exports:{}};return n[e](o,o.exports,r),o.exports}r.d=function(n,t){for(var e in t)r.o(t,e)&&!r.o(n,e)&&Object.defineProperty(n,e,{enumerable:!0,get:t[e]})},r.g=function(){if(\"object\"==typeof globalThis)return globalThis;try{return this||new Function(\"return this\")()}catch(n){if(\"object\"==typeof window)return window}}(),r.o=function(n,t){return Object.prototype.hasOwnProperty.call(n,t)},r.r=function(n){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(n,\"S\",{value:!0})};var e={};return function(){r.r(e),r.d(e,{RIPEMD160:function(){return p}});var n,t=r(1868),i=r(3354),o=(n=function(t,r){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,t){n.__proto__=t}||function(n,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r])})(t,r)},function(t,r){function e(){this.constructor=t}n(t,r),t.prototype=null===r?Object.create(r):(e.prototype=r.prototype,new e)}),u=new i.e([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),f=new i.e([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),c=new i.e([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),a=new i.e([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),s=new i.e([0,1518500249,1859775393,2400959708,2840853838]),h=new i.e([1352829926,1548603684,1836072691,2053994217,0]);function v(n,t,r){return n^t^r}function w(n,t,r){return n&t|~n&r}function d(n,t,r){return(n|~t)^r}function l(n,t,r){return n&r|t&~r}function y(n,t,r){return n^(t|~r)}function b(n,t){return n<>>32-t}var p=function(n){function t(t){var r=n.call(this,t)||this;return r.N=new i.e([1732584193,4023233417,2562383102,271733878,3285377520]),r.v=t,t&&void 0!==t.hash&&(r.N=t.hash.clone()),r}return o(t,n),t.prototype.U=function(){this.N=new i.e([1732584193,4023233417,2562383102,271733878,3285377520])},t.prototype.O=function(n,t){for(var r=0;r<16;r++){var e=t+r,i=n[e];n[e]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8)}var o,p,m,g,j,A,I,O,E,M,U,_=this.N.words,S=s.words,N=h.words,x=u.words,C=f.words,F=c.words,k=a.words;A=o=_[0],I=p=_[1],O=m=_[2],E=g=_[3],M=j=_[4];for(r=0;r<80;r+=1)U=o+n[t+x[r]]|0,U+=r<16?v(p,m,g)+S[0]:r<32?w(p,m,g)+S[1]:r<48?d(p,m,g)+S[2]:r<64?l(p,m,g)+S[3]:y(p,m,g)+S[4],U=(U=b(U|=0,F[r]))+j|0,o=j,j=g,g=b(m,10),m=p,p=U,U=A+n[t+C[r]]|0,U+=r<16?y(I,O,E)+N[0]:r<32?l(I,O,E)+N[1]:r<48?d(I,O,E)+N[2]:r<64?w(I,O,E)+N[3]:v(I,O,E)+N[4],U=(U=b(U|=0,k[r]))+M|0,A=M,M=E,E=b(O,10),O=I,I=U;U=_[1]+m+E|0,_[1]=_[2]+g+M|0,_[2]=_[3]+j+A|0,_[3]=_[4]+o+I|0,_[4]=_[0]+p+O|0,_[0]=U},t.prototype._=function(){var n=this.l,t=n.words,r=8*this.j,e=8*n.nSigBytes;t[e>>>5]|=128<<24-e%32,t[14+(e+64>>>9<<4)]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),n.nSigBytes=4*(t.length+1),this.I();for(var i=this.N,o=i.words,u=0;u<5;u++){var f=o[u];o[u]=16711935&(f<<8|f>>>24)|4278255360&(f<<24|f>>>8)}return i},t.prototype.clone=function(){return new t({hash:this.N,blockSize:this.h,data:this.l,nBytes:this.j})},t.hash=function(n,r){return new t(r).finalize(n)},t}(t.P)}(),e}()}));","!function(n,t){if(\"object\"==typeof exports&&\"object\"==typeof module)module.exports=t();else if(\"function\"==typeof define&&define.amd)define([],t);else if(\"object\"==typeof exports)exports.JsCrypto=t();else{var r=t();for(var i in n.JsCrypto=n.JsCrypto||{},r)n.JsCrypto[i]=r[i]}}(this,(function(){return function(){\"use strict\";var n={3354:function(n,t,r){r.d(t,{e:function(){return o}});var i=r(5720),e=r(9054),o=function(){function n(t,r){if(Array.isArray(t)||!t)return this.t=Array.isArray(t)?t:[],void(this.i=\"number\"==typeof r?r:4*this.t.length);if(t instanceof n)return this.t=t.words.slice(),void(this.i=t.nSigBytes);var i;try{t instanceof ArrayBuffer?i=new Uint8Array(t):(t instanceof Uint8Array||t instanceof Int8Array||t instanceof Uint8ClampedArray||t instanceof Int16Array||t instanceof Uint16Array||t instanceof Int32Array||t instanceof Uint32Array||t instanceof Float32Array||t instanceof Float64Array)&&(i=new Uint8Array(t.buffer,t.byteOffset,t.byteLength))}catch(n){throw new Error(\"Invalid argument\")}if(!i)throw new Error(\"Invalid argument\");for(var e=i.byteLength,o=[],u=0;u>>2]|=i[u]<<24-u%4*8;this.t=o,this.i=e}return Object.defineProperty(n.prototype,\"nSigBytes\",{get:function(){return this.i},set:function(n){this.i=n},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,\"words\",{get:function(){return this.t},enumerable:!1,configurable:!0}),n.prototype.toString=function(n){return n?n.stringify(this):i.p.stringify(this)},n.prototype.toUint8Array=function(){for(var n=this.t,t=this.i,r=new Uint8Array(t),i=0;i>>2]>>>24-i%4*8&255;return r},n.prototype.concat=function(n){var t=n.words.slice(),r=n.nSigBytes;if(this.clamp(),this.i%4)for(var i=0;i>>2]>>>24-i%4*8&255;this.t[this.i+i>>>2]|=e<<24-(this.i+i)%4*8}else for(i=0;i>>2]=t[i>>>2];return this.i+=r,this},n.prototype.clamp=function(){var n=this.i;this.t[n>>>2]&=4294967295<<32-n%4*8,this.t.length=Math.ceil(n/4)},n.prototype.clone=function(){return new n(this.t.slice(),this.i)},n.random=function(t){for(var r=[],i=0;i\"===n?o>t:\">=\"===n?o>=t:o===t))}},5720:function(n,t,r){r.d(t,{p:function(){return e}});var i=r(3354),e={stringify:function(n){for(var t=n.nSigBytes,r=n.words,i=[],e=0;e>>2]>>>24-e%4*8&255;i.push((o>>>4).toString(16)),i.push((15&o).toString(16))}return i.join(\"\")},parse:function(n){var t=n.length;if(t%2!=0)throw new Error(\"Hex string count must be even\");if(!/^[a-fA-F0-9]+$/.test(n))throw new Error(\"Invalid Hex string: \"+n);for(var r=[],e=0;e>>3]|=parseInt(n.substr(e,2),16)<<24-e%8*4;return new i.e(r,t/2)}}},8702:function(n,t,r){r.d(t,{m:function(){return e}});var i=r(3354),e={stringify:function(n){for(var t=n.nSigBytes,r=n.words,i=[],e=0;e>>2]>>>24-e%4*8&255;i.push(String.fromCharCode(o))}return i.join(\"\")},parse:function(n){for(var t=n.length,r=[],e=0;e>>2]|=(255&n.charCodeAt(e))<<24-e%4*8;return new i.e(r,t)}}},4768:function(n,t,r){r.d(t,{d:function(){return e}});var i=r(8702),e={stringify:function(n){try{return decodeURIComponent(escape(i.m.stringify(n)))}catch(n){throw new Error(\"Malformed UTF-8 data\")}},parse:function(n){return i.m.parse(unescape(encodeURIComponent(n)))}}},9054:function(n,t,r){r.d(t,{M:function(){return e}});var i=r(1756);var e=function(){if(\"undefined\"!=typeof window){var n=window.crypto||window.msCrypto;if(!n){if((0,i.w)(\"<\",11))return console.warn(\"IE <= 10 uses insecure random generator. Please consider to use IE11 or another modern browser\"),function(){return Math.floor(512*Math.random())%256};throw new Error(\"Crypto module not found\")}return function(){return n.getRandomValues(new Uint32Array(1))[0]}}return void 0!==r.g&&r.g.crypto?function(){return r.g.crypto.randomBytes(4).readInt32LE()}:function(){return require(\"crypto\").randomBytes(4).readInt32LE()}}()}},t={};function r(i){var e=t[i];if(void 0!==e)return e.exports;var o=t[i]={exports:{}};return n[i](o,o.exports,r),o.exports}r.d=function(n,t){for(var i in t)r.o(t,i)&&!r.o(n,i)&&Object.defineProperty(n,i,{enumerable:!0,get:t[i]})},r.g=function(){if(\"object\"==typeof globalThis)return globalThis;try{return this||new Function(\"return this\")()}catch(n){if(\"object\"==typeof window)return window}}(),r.o=function(n,t){return Object.prototype.hasOwnProperty.call(n,t)},r.r=function(n){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(n,\"S\",{value:!0})};var i={};return function(){r.r(i),r.d(i,{SHA256:function(){return h}});var n,t=r(1868),e=r(3354),o=(n=function(t,r){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,t){n.__proto__=t}||function(n,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r])})(t,r)},function(t,r){function i(){this.constructor=t}n(t,r),t.prototype=null===r?Object.create(r):(i.prototype=r.prototype,new i)}),u=[],f=[];function c(n){for(var t=Math.sqrt(n),r=2;r<=t;r++)if(!(n%r))return!1;return!0}function a(n){return 4294967296*(n-(0|n))|0}!function(){for(var n=2,t=0;t<64;)c(n)&&(t<8&&(u[t]=a(Math.pow(n,.5))),f[t]=a(Math.pow(n,1/3)),t++),n++}();var s=[],h=function(n){function t(t){var r=n.call(this,t)||this;return r.N=new e.e(u.slice(0)),r.v=t,t&&void 0!==t.hash&&(r.N=t.hash.clone()),r}return o(t,n),t.prototype.U=function(){this.N=new e.e(u.slice(0))},t.prototype.I=function(n,t){for(var r=this.N.words,i=r[0],e=r[1],o=r[2],u=r[3],c=r[4],a=r[5],h=r[6],v=r[7],d=0;d<64;d++){if(d<16)s[d]=0|n[t+d];else{var w=s[d-15],l=(w<<25|w>>>7)^(w<<14|w>>>18)^w>>>3,y=s[d-2],b=(y<<15|y>>>17)^(y<<13|y>>>19)^y>>>10;s[d]=l+s[d-7]+b+s[d-16]}var p=i&e^i&o^e&o,m=(i<<30|i>>>2)^(i<<19|i>>>13)^(i<<10|i>>>22),g=v+((c<<26|c>>>6)^(c<<21|c>>>11)^(c<<7|c>>>25))+(c&a^~c&h)+f[d]+s[d];v=h,h=a,a=c,c=u+g|0,u=o,o=e,e=i,i=g+(m+p)|0}r[0]=r[0]+i|0,r[1]=r[1]+e|0,r[2]=r[2]+o|0,r[3]=r[3]+u|0,r[4]=r[4]+c|0,r[5]=r[5]+a|0,r[6]=r[6]+h|0,r[7]=r[7]+v|0},t.prototype._=function(){var n=this.l.words,t=8*this.A,r=8*this.l.nSigBytes;return n[r>>>5]|=128<<24-r%32,n[14+(r+64>>>9<<4)]=Math.floor(t/4294967296),n[15+(r+64>>>9<<4)]=t,this.l.nSigBytes=4*n.length,this.O(),this.N},t.prototype.clone=function(){return new t({hash:this.N,blockSize:this.h,data:this.l,nBytes:this.A})},t.hash=function(n,r){return new t(r).finalize(n)},t}(t.P)}(),i}()}));","!function(n,t){if(\"object\"==typeof exports&&\"object\"==typeof module)module.exports=t();else if(\"function\"==typeof define&&define.amd)define([],t);else if(\"object\"==typeof exports)exports.JsCrypto=t();else{var r=t();for(var i in n.JsCrypto=n.JsCrypto||{},r)n.JsCrypto[i]=r[i]}}(this,(function(){return function(){\"use strict\";var n={9691:function(n,t,r){r.d(t,{AES:function(){return _}});var i,e=r(9456),o=r(787),u=r(5693),f=r(9109),c=(i=function(n,t){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,t){n.__proto__=t}||function(n,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r])})(n,t)},function(n,t){function r(){this.constructor=n}i(n,t),n.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),s=function(){return(s=Object.assign||function(n){for(var t,r=1,i=arguments.length;r>>8^255&e^99,a[r]=e,h[e]=r;var o=n[r],u=n[o],f=n[u],c=257*n[e]^16843008*e;v[r]=c<<24|c>>>8,w[r]=c<<16|c>>>16,l[r]=c<<8|c>>>24,b[r]=c,c=16843009*f^65537*u^257*o^16843008*r,d[e]=c<<24|c>>>8,y[e]=c<<16|c>>>16,p[e]=c<<8|c>>>24,O[e]=c,r?(r=o^n[n[n[f^o]]],i^=n[n[i]]):r=i=1}}();var j=[0,1,2,4,8,16,32,64,128,27,54],_=function(n){function t(t){var r=n.call(this,t)||this;return r.u=0,r.h=[],r.v=[],r.O=t,r.A(),r}return c(t,n),t.prototype.A=function(){var n;if(!this.u||this.k!==this.H){for(var t=this.k=this.H,r=t.words,i=t.nSigBytes/4,e=4*((this.u=i+6)+1),o=this.h=[],u=0;u6&&u%i==4&&(n=a[n>>>24]<<24|a[n>>>16&255]<<16|a[n>>>8&255]<<8|a[255&n]):(n=a[(n=n<<8|n>>>24)>>>24]<<24|a[n>>>16&255]<<16|a[n>>>8&255]<<8|a[255&n],n^=j[u/i|0]<<24),o[u]=o[u-i]^n);this.v=[];for(var f=0;f>>24]]^y[a[n>>>16&255]]^p[a[n>>>8&255]]^O[a[255&n]]}}},t.prototype.encryptBlock=function(n,t){this.B(n,t,this.h,v,w,l,b,a)},t.prototype.decryptBlock=function(n,t){var r=n[t+1];n[t+1]=n[t+3],n[t+3]=r,this.B(n,t,this.v,d,y,p,O,h),r=n[t+1],n[t+1]=n[t+3],n[t+3]=r},t.prototype.B=function(n,t,r,i,e,o,u,f){for(var c=this.u,s=n[t]^r[0],a=n[t+1]^r[1],h=n[t+2]^r[2],v=n[t+3]^r[3],w=4,l=1;l>>24]^e[a>>>16&255]^o[h>>>8&255]^u[255&v]^r[w++],d=i[a>>>24]^e[h>>>16&255]^o[v>>>8&255]^u[255&s]^r[w++],y=i[h>>>24]^e[v>>>16&255]^o[s>>>8&255]^u[255&a]^r[w++],p=i[v>>>24]^e[s>>>16&255]^o[a>>>8&255]^u[255&h]^r[w++];s=b,a=d,h=y,v=p}var O=(f[s>>>24]<<24|f[a>>>16&255]<<16|f[h>>>8&255]<<8|f[255&v])^r[w++],j=(f[a>>>24]<<24|f[h>>>16&255]<<16|f[v>>>8&255]<<8|f[255&s])^r[w++],_=(f[h>>>24]<<24|f[v>>>16&255]<<16|f[s>>>8&255]<<8|f[255&a])^r[w++],m=(f[v>>>24]<<24|f[s>>>16&255]<<16|f[a>>>8&255]<<8|f[255&h])^r[w++];n[t]=O,n[t+1]=j,n[t+2]=_,n[t+3]=m},t.createEncryptor=function(n,r){return new t(s(s({},r=void 0===r?{}:r),{key:n,transformMode:e.t.ENC_TRANSFORM_MODE}))},t.createDecryptor=function(n,r){return new t(s(s({},r=void 0===r?{}:r),{key:n,transformMode:e.t.DEC_TRANSFORM_MODE}))},t.encrypt=function(n,r,i){if(\"string\"==typeof r)return u.E.encrypt(t,n,r,i);if(r.nSigBytes%4!=0)throw new Error(\"Key size must be multiple of 32bit/4byte/1word\");return f.D.encrypt(t,n,r,i)},t.decrypt=function(n,r,i){if(\"string\"==typeof r)return u.E.decrypt(t,n,r,i);if(r.nSigBytes%4!=0)throw new Error(\"Key size must be multiple of 32bit/4byte/1word\");return f.D.decrypt(t,n,r,i)},t.keySize=8,t}(o.G)},3967:function(n,t,r){r.d(t,{CBCMAC:function(){return f}});var i=r(4768),e=r(3354),o=r(9691),u=r(3664);function f(n,t,r,f,c,s){var a=s&&s.Cipher?s.Cipher:o.AES,h=\"string\"==typeof r?i.d.parse(r):r,v=f||new e.e([0,0]),w=\"string\"==typeof t?i.d.parse(t):t,l=\"string\"==typeof n?i.d.parse(n):n,b=c||16;return u.K.mac(a,h,v,w,l,b)}},9910:function(n,t,r){r.d(t,{DES:function(){return b}});var i,e=r(787),o=r(9456),u=r(5693),f=r(9109),c=(i=function(n,t){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,t){n.__proto__=t}||function(n,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r])})(n,t)},function(n,t){function r(){this.constructor=n}i(n,t),n.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),s=function(){return(s=Object.assign||function(n){for(var t,r=1,i=arguments.length;r>>5]>>>31-i%32&1}for(var e=this.I=[],o=0;o<16;o++){var u=e[o]=[],f=v[o];for(r=0;r<24;r++)u[r/6|0]|=t[(h[r]-1+f)%28]<<31-r%6,u[4+(r/6|0)]|=t[28+(h[r+24]-1+f)%28]<<31-r%6;u[0]=u[0]<<1|u[0]>>>31;for(r=1;r<7;r++)u[r]=u[r]>>>4*(r-1)+3;u[7]=u[7]<<5|u[7]>>>27}this.U=[];for(r=0;r<16;r++)this.U[r]=e[15-r]},t.prototype.encryptBlock=function(n,t){this.R(n,t,this.I)},t.prototype.decryptBlock=function(n,t){this.R(n,t,this.U)},t.prototype.R=function(n,t,r){this.L=n[t],this.F=n[t+1],this.X(4,252645135),this.X(16,65535),this.Z(2,858993459),this.Z(8,16711935),this.X(1,1431655765);for(var i=0;i<16;i++){for(var e=r[i],o=this.L,u=this.F,f=0,c=0;c<8;c++){var s=(u^e[c])&l[c];f|=w[c][s>>>0]}this.L=u,this.F=o^f}var a=this.L;this.L=this.F,this.F=a,this.X(1,1431655765),this.Z(8,16711935),this.Z(2,858993459),this.X(16,65535),this.X(4,252645135),n[t]=this.L,n[t+1]=this.F},t.prototype.X=function(n,t){var r=(this.L>>>n^this.F)&t;this.F^=r,this.L^=r<>>n^this.L)&t;this.L^=r,this.F^=r<192.\");var t=n.slice(0,2),r=n.length<4?n.slice(0,2):n.slice(2,4),i=n.length<6?n.slice(0,2):n.slice(4,6);return[f.DES.createEncryptor(new c.e(t)),f.DES.createEncryptor(new c.e(r)),f.DES.createEncryptor(new c.e(i))]},t.prototype.A=function(){var n=this.J();this.Y=n[0],this.$=n[1],this.nn=n[2]},t.prototype.encryptBlock=function(n,t){this.Y.encryptBlock(n,t),this.$.decryptBlock(n,t),this.nn.encryptBlock(n,t)},t.prototype.decryptBlock=function(n,t){this.nn.decryptBlock(n,t),this.$.encryptBlock(n,t),this.Y.decryptBlock(n,t)},t.createEncryptor=function(n,r){return new t(h(h({},r=void 0===r?{}:r),{key:n,transformMode:u.t.ENC_TRANSFORM_MODE}))},t.createDecryptor=function(n,r){return new t(h(h({},r=void 0===r?{}:r),{key:n,transformMode:u.t.DEC_TRANSFORM_MODE}))},t.encrypt=function(n,r,i){return\"string\"==typeof r?s.E.encrypt(t,n,r,i):e.D.encrypt(t,n,r,i)},t.decrypt=function(n,r,i){return\"string\"==typeof r?s.E.decrypt(t,n,r,i):e.D.decrypt(t,n,r,i)},t.keySize=6,t.ivSize=2,t}(o.G)},7753:function(n,t,r){r.d(t,{GMAC:function(){return f}});var i=r(4768),e=r(3354),o=r(9691),u=r(5607);function f(n,t,r,f,c){var s=\"string\"==typeof n?i.d.parse(n):n,a=r||new e.e([0,0,0,0]),h=c&&c.Cipher?c.Cipher:o.AES,v=\"string\"==typeof t?i.d.parse(t):t,w=f||16;return u.V.mac(h,v,a,s,void 0,w)}},6367:function(n,t,r){r.d(t,{Hmac:function(){return e}});var i=r(4768),e=function(){function n(n,t){this.tn=n,\"string\"==typeof t&&(t=i.d.parse(t));var r=n.blockSize,e=4*r;t.nSigBytes>e&&(t=n.finalize(t)),t.clamp();for(var o=this.rn=t.clone(),u=this.en=t.clone(),f=o.words,c=u.words,s=0;s>>32-o)+t}function s(n,t,r,i,e,o,u){var f=n+(t&i|r&~i)+e+u;return(f<>>32-o)+t}function a(n,t,r,i,e,o,u){var f=n+(t^r^i)+e+u;return(f<>>32-o)+t}function h(n,t,r,i,e,o,u){var f=n+(r^(t|~i))+e+u;return(f<>>32-o)+t}!function(){for(var n=0;n<64;n++)f[n]=4294967296*Math.abs(Math.sin(n+1))|0}();var v=function(n){function t(t){var r=n.call(this,t)||this;return r.on=new e.e([1732584193,4023233417,2562383102,271733878]),t&&void 0!==t.hash&&(r.on=t.hash.clone()),r}return u(t,n),t.prototype.A=function(){this.on=new e.e([1732584193,4023233417,2562383102,271733878])},t.prototype.un=function(n,t){for(var r=0;r<16;r++){var i=t+r,e=n[i];n[i]=16711935&(e<<8|e>>>24)|4278255360&(e<<24|e>>>8)}var o=this.on.words,u=n[t],v=n[t+1],w=n[t+2],l=n[t+3],b=n[t+4],d=n[t+5],y=n[t+6],p=n[t+7],O=n[t+8],j=n[t+9],_=n[t+10],m=n[t+11],A=n[t+12],g=n[t+13],E=n[t+14],S=n[t+15],M=o[0],k=o[1],H=o[2],C=o[3];M=c(M,k,H,C,u,7,f[0]),C=c(C,M,k,H,v,12,f[1]),H=c(H,C,M,k,w,17,f[2]),k=c(k,H,C,M,l,22,f[3]),M=c(M,k,H,C,b,7,f[4]),C=c(C,M,k,H,d,12,f[5]),H=c(H,C,M,k,y,17,f[6]),k=c(k,H,C,M,p,22,f[7]),M=c(M,k,H,C,O,7,f[8]),C=c(C,M,k,H,j,12,f[9]),H=c(H,C,M,k,_,17,f[10]),k=c(k,H,C,M,m,22,f[11]),M=c(M,k,H,C,A,7,f[12]),C=c(C,M,k,H,g,12,f[13]),H=c(H,C,M,k,E,17,f[14]),M=s(M,k=c(k,H,C,M,S,22,f[15]),H,C,v,5,f[16]),C=s(C,M,k,H,y,9,f[17]),H=s(H,C,M,k,m,14,f[18]),k=s(k,H,C,M,u,20,f[19]),M=s(M,k,H,C,d,5,f[20]),C=s(C,M,k,H,_,9,f[21]),H=s(H,C,M,k,S,14,f[22]),k=s(k,H,C,M,b,20,f[23]),M=s(M,k,H,C,j,5,f[24]),C=s(C,M,k,H,E,9,f[25]),H=s(H,C,M,k,l,14,f[26]),k=s(k,H,C,M,O,20,f[27]),M=s(M,k,H,C,g,5,f[28]),C=s(C,M,k,H,w,9,f[29]),H=s(H,C,M,k,p,14,f[30]),M=a(M,k=s(k,H,C,M,A,20,f[31]),H,C,d,4,f[32]),C=a(C,M,k,H,O,11,f[33]),H=a(H,C,M,k,m,16,f[34]),k=a(k,H,C,M,E,23,f[35]),M=a(M,k,H,C,v,4,f[36]),C=a(C,M,k,H,b,11,f[37]),H=a(H,C,M,k,p,16,f[38]),k=a(k,H,C,M,_,23,f[39]),M=a(M,k,H,C,g,4,f[40]),C=a(C,M,k,H,u,11,f[41]),H=a(H,C,M,k,l,16,f[42]),k=a(k,H,C,M,y,23,f[43]),M=a(M,k,H,C,j,4,f[44]),C=a(C,M,k,H,A,11,f[45]),H=a(H,C,M,k,S,16,f[46]),M=h(M,k=a(k,H,C,M,w,23,f[47]),H,C,u,6,f[48]),C=h(C,M,k,H,p,10,f[49]),H=h(H,C,M,k,E,15,f[50]),k=h(k,H,C,M,d,21,f[51]),M=h(M,k,H,C,A,6,f[52]),C=h(C,M,k,H,l,10,f[53]),H=h(H,C,M,k,_,15,f[54]),k=h(k,H,C,M,v,21,f[55]),M=h(M,k,H,C,O,6,f[56]),C=h(C,M,k,H,S,10,f[57]),H=h(H,C,M,k,y,15,f[58]),k=h(k,H,C,M,g,21,f[59]),M=h(M,k,H,C,b,6,f[60]),C=h(C,M,k,H,m,10,f[61]),H=h(H,C,M,k,w,15,f[62]),k=h(k,H,C,M,j,21,f[63]),o[0]=o[0]+M|0,o[1]=o[1]+k|0,o[2]=o[2]+H|0,o[3]=o[3]+C|0},t.prototype.fn=function(){var n=this.cn,t=n.words,r=8*this.sn,i=8*n.nSigBytes;t[i>>>5]|=128<<24-i%32;var e=Math.floor(r/4294967296),o=r;t[15+(i+64>>>9<<4)]=16711935&(e<<8|e>>>24)|4278255360&(e<<24|e>>>8),t[14+(i+64>>>9<<4)]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),n.nSigBytes=4*(t.length+1),this.an();for(var u=this.on,f=u.words,c=0;c<4;c++){var s=f[c];f[c]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8)}return u},t.prototype.clone=function(){return new t({hash:this.on,blockSize:this.N,data:this.cn,nBytes:this.sn})},t.hash=function(n){return(new t).finalize(n)},t}(o.P)},4615:function(n,t,r){r.d(t,{RC4:function(){return s}});var i,e=r(30),o=r(5693),u=r(9109),f=(i=function(n,t){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,t){n.__proto__=t}||function(n,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r])})(n,t)},function(n,t){function r(){this.constructor=n}i(n,t),n.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),c=function(){return(c=Object.assign||function(n){for(var t,r=1,i=arguments.length;r>>2]>>>24-o%4*8&255;e=(e+this.S[i]+u)%256;var f=this.S[i];this.S[i]=this.S[e],this.S[e]=f}this.i=this.j=0},t.prototype.un=function(n,t){n[t]^=this.generateKeyStreamWord()},t.prototype.generateKeyStreamWord=function(){for(var n=this.S,t=this.i,r=this.j,i=0,e=0;e<4;e++){r=(r+n[t=(t+1)%256])%256;var o=n[t];n[t]=n[r],n[r]=o,i|=n[(n[t]+n[r])%256]<<24-8*e}return this.i=t,this.j=r,i},t.createEncryptor=function(n,r){return new t(c(c({},r=void 0===r?{}:r),{key:n}))},t.createDecryptor=function(n,r){return new t(c(c({},r=void 0===r?{}:r),{key:n}))},t.encrypt=function(n,r,i){return\"string\"==typeof r?o.E.encrypt(t,n,r,i):u.D.encrypt(t,n,r,i)},t.decrypt=function(n,r,i){return\"string\"==typeof r?o.E.decrypt(t,n,r,i):u.D.decrypt(t,n,r,i)},t.ivSize=0,t.keySize=8,t}(e.q)},9639:function(n,t,r){r.d(t,{RC4Drop:function(){return s}});var i,e=r(5693),o=r(9109),u=r(4615),f=(i=function(n,t){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,t){n.__proto__=t}||function(n,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r])})(n,t)},function(n,t){function r(){this.constructor=n}i(n,t),n.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),c=function(){return(c=Object.assign||function(n){for(var t,r=1,i=arguments.length;r0;t--)this.generateKeyStreamWord()},t.createEncryptor=function(n,r){return new t(c(c({},r=void 0===r?{}:r),{key:n}))},t.createDecryptor=function(n,r){return new t(c(c({},r=void 0===r?{}:r),{key:n}))},t.encrypt=function(n,r,i){return\"string\"==typeof r?e.E.encrypt(t,n,r,i):o.D.encrypt(t,n,r,i)},t.decrypt=function(n,r,i){return\"string\"==typeof r?e.E.decrypt(t,n,r,i):o.D.decrypt(t,n,r,i)},t}(u.RC4)},7104:function(n,t,r){r.d(t,{RIPEMD160:function(){return O}});var i,e=r(1868),o=r(3354),u=(i=function(n,t){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,t){n.__proto__=t}||function(n,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r])})(n,t)},function(n,t){function r(){this.constructor=n}i(n,t),n.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),f=new o.e([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),c=new o.e([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),s=new o.e([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),a=new o.e([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),h=new o.e([0,1518500249,1859775393,2400959708,2840853838]),v=new o.e([1352829926,1548603684,1836072691,2053994217,0]);function w(n,t,r){return n^t^r}function l(n,t,r){return n&t|~n&r}function b(n,t,r){return(n|~t)^r}function d(n,t,r){return n&r|t&~r}function y(n,t,r){return n^(t|~r)}function p(n,t){return n<>>32-t}var O=function(n){function t(t){var r=n.call(this,t)||this;return r.on=new o.e([1732584193,4023233417,2562383102,271733878,3285377520]),r.O=t,t&&void 0!==t.hash&&(r.on=t.hash.clone()),r}return u(t,n),t.prototype.A=function(){this.on=new o.e([1732584193,4023233417,2562383102,271733878,3285377520])},t.prototype.un=function(n,t){for(var r=0;r<16;r++){var i=t+r,e=n[i];n[i]=16711935&(e<<8|e>>>24)|4278255360&(e<<24|e>>>8)}var o,u,O,j,_,m,A,g,E,S,M,k=this.on.words,H=h.words,C=v.words,B=f.words,N=c.words,I=s.words,z=a.words;m=o=k[0],A=u=k[1],g=O=k[2],E=j=k[3],S=_=k[4];for(r=0;r<80;r+=1)M=o+n[t+B[r]]|0,M+=r<16?w(u,O,j)+H[0]:r<32?l(u,O,j)+H[1]:r<48?b(u,O,j)+H[2]:r<64?d(u,O,j)+H[3]:y(u,O,j)+H[4],M=(M=p(M|=0,I[r]))+_|0,o=_,_=j,j=p(O,10),O=u,u=M,M=m+n[t+N[r]]|0,M+=r<16?y(A,g,E)+C[0]:r<32?d(A,g,E)+C[1]:r<48?b(A,g,E)+C[2]:r<64?l(A,g,E)+C[3]:w(A,g,E)+C[4],M=(M=p(M|=0,z[r]))+S|0,m=S,S=E,E=p(g,10),g=A,A=M;M=k[1]+O+E|0,k[1]=k[2]+j+S|0,k[2]=k[3]+_+m|0,k[3]=k[4]+o+A|0,k[4]=k[0]+u+g|0,k[0]=M},t.prototype.fn=function(){var n=this.cn,t=n.words,r=8*this.sn,i=8*n.nSigBytes;t[i>>>5]|=128<<24-i%32,t[14+(i+64>>>9<<4)]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),n.nSigBytes=4*(t.length+1),this.an();for(var e=this.on,o=e.words,u=0;u<5;u++){var f=o[u];o[u]=16711935&(f<<8|f>>>24)|4278255360&(f<<24|f>>>8)}return e},t.prototype.clone=function(){return new t({hash:this.on,blockSize:this.N,data:this.cn,nBytes:this.sn})},t.hash=function(n,r){return new t(r).finalize(n)},t}(e.P)},5187:function(n,t,r){r.d(t,{Rabbit:function(){return s}});var i,e=r(30),o=r(5693),u=r(9109),f=(i=function(n,t){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,t){n.__proto__=t}||function(n,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r])})(n,t)},function(n,t){function r(){this.constructor=n}i(n,t),n.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),c=function(){return(c=Object.assign||function(n){for(var t,r=1,i=arguments.length;r>>24)|4278255360&(n[r]<<24|n[r]>>>8);var i=this.hn=[n[0],n[3]<<16|n[2]>>>16,n[1],n[0]<<16|n[3]>>>16,n[2],n[1]<<16|n[0]>>>16,n[3],n[2]<<16|n[1]>>>16],e=this.vn=[n[2]<<16|n[2]>>>16,4294901760&n[0]|65535&n[1],n[3]<<16|n[3]>>>16,4294901760&n[1]|65535&n[2],n[0]<<16|n[0]>>>16,4294901760&n[2]|65535&n[3],n[1]<<16|n[1]>>>16,4294901760&n[3]|65535&n[0]];this.wn=0;for(r=0;r<4;r++)this.nextState();for(r=0;r<8;r++)e[r]^=i[r+4&7];if(t){var o=t.words,u=o[0],f=o[1],c=16711935&(u<<8|u>>>24)|4278255360&(u<<24|u>>>8),s=16711935&(f<<8|f>>>24)|4278255360&(f<<24|f>>>8),a=c>>>16|4294901760&s,h=s<<16|65535&c;e[0]^=c,e[1]^=a,e[2]^=s,e[3]^=h,e[4]^=c,e[5]^=a,e[6]^=s,e[7]^=h;for(r=0;r<4;r++)this.nextState()}},t.prototype.un=function(n,t){var r=this.hn;this.nextState(),this.S[0]=r[0]^r[5]>>>16^r[3]<<16,this.S[1]=r[2]^r[7]>>>16^r[5]<<16,this.S[2]=r[4]^r[1]>>>16^r[7]<<16,this.S[3]=r[6]^r[3]>>>16^r[1]<<16;for(var i=0;i<4;i++)this.S[i]=16711935&(this.S[i]<<8|this.S[i]>>>24)|4278255360&(this.S[i]<<24|this.S[i]>>>8),n[t+i]^=this.S[i]},t.prototype.nextState=function(){for(var n=this.hn,t=this.vn,r=0;r<8;r++)this.C[r]=t[r];t[0]=t[0]+1295307597+this.wn|0,t[1]=t[1]+3545052371+(t[0]>>>0>>0?1:0)|0,t[2]=t[2]+886263092+(t[1]>>>0>>0?1:0)|0,t[3]=t[3]+1295307597+(t[2]>>>0>>0?1:0)|0,t[4]=t[4]+3545052371+(t[3]>>>0>>0?1:0)|0,t[5]=t[5]+886263092+(t[4]>>>0>>0?1:0)|0,t[6]=t[6]+1295307597+(t[5]>>>0>>0?1:0)|0,t[7]=t[7]+3545052371+(t[6]>>>0>>0?1:0)|0,this.wn=t[7]>>>0>>0?1:0;for(r=0;r<8;r++){var i=n[r]+t[r],e=65535&i,o=i>>>16,u=((e*e>>>17)+e*o>>>15)+o*o,f=((4294901760&i)*i|0)+((65535&i)*i|0);this.G[r]=u^f}var c=this.G;n[0]=c[0]+(c[7]<<16|c[7]>>>16)+(c[6]<<16|c[6]>>>16)|0,n[1]=c[1]+(c[0]<<8|c[0]>>>24)+c[7]|0,n[2]=c[2]+(c[1]<<16|c[1]>>>16)+(c[0]<<16|c[0]>>>16)|0,n[3]=c[3]+(c[2]<<8|c[2]>>>24)+c[1]|0,n[4]=c[4]+(c[3]<<16|c[3]>>>16)+(c[2]<<16|c[2]>>>16)|0,n[5]=c[5]+(c[4]<<8|c[4]>>>24)+c[3]|0,n[6]=c[6]+(c[5]<<16|c[5]>>>16)+(c[4]<<16|c[4]>>>16)|0,n[7]=c[7]+(c[6]<<8|c[6]>>>24)+c[5]|0},t.createEncryptor=function(n,r){return new t(c(c({},r=void 0===r?{}:r),{key:n}))},t.createDecryptor=function(n,r){return new t(c(c({},r=void 0===r?{}:r),{key:n}))},t.encrypt=function(n,r,i){return\"string\"==typeof r?o.E.encrypt(t,n,r,i):u.D.encrypt(t,n,r,i)},t.decrypt=function(n,r,i){return\"string\"==typeof r?o.E.decrypt(t,n,r,i):u.D.decrypt(t,n,r,i)},t.ivSize=4,t}(e.q)},3173:function(n,t,r){r.d(t,{SHA1:function(){return c}});var i,e=r(1868),o=r(3354),u=(i=function(n,t){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,t){n.__proto__=t}||function(n,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r])})(n,t)},function(n,t){function r(){this.constructor=n}i(n,t),n.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),f=[],c=function(n){function t(t){var r=n.call(this,t)||this;return r.on=new o.e([1732584193,4023233417,2562383102,271733878,3285377520]),r.O=t,t&&void 0!==t.hash&&(r.on=t.hash.clone()),r}return u(t,n),t.prototype.A=function(){this.on=new o.e([1732584193,4023233417,2562383102,271733878,3285377520])},t.prototype.un=function(n,t){for(var r=this.on.words,i=r[0],e=r[1],o=r[2],u=r[3],c=r[4],s=0;s<80;s++){if(s<16)f[s]=0|n[t+s];else{var a=f[s-3]^f[s-8]^f[s-14]^f[s-16];f[s]=a<<1|a>>>31}var h=(i<<5|i>>>27)+c+f[s];h+=s<20?1518500249+(e&o|~e&u):s<40?1859775393+(e^o^u):s<60?(e&o|e&u|o&u)-1894007588:(e^o^u)-899497514,c=u,u=o,o=e<<30|e>>>2,e=i,i=h}r[0]=r[0]+i|0,r[1]=r[1]+e|0,r[2]=r[2]+o|0,r[3]=r[3]+u|0,r[4]=r[4]+c|0},t.prototype.fn=function(){var n=this.cn.words,t=8*this.sn,r=8*this.cn.nSigBytes;return n[r>>>5]|=128<<24-r%32,n[14+(r+64>>>9<<4)]=Math.floor(t/4294967296),n[15+(r+64>>>9<<4)]=t,this.cn.nSigBytes=4*n.length,this.an(),this.on},t.prototype.clone=function(){return new t({hash:this.on,blockSize:this.N,data:this.cn,nBytes:this.sn})},t.hash=function(n,r){return new t(r).finalize(n)},t}(e.P)},766:function(n,t,r){r.d(t,{SHA224:function(){return f}});var i,e=r(3354),o=r(5561),u=(i=function(n,t){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,t){n.__proto__=t}||function(n,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r])})(n,t)},function(n,t){function r(){this.constructor=n}i(n,t),n.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),f=function(n){function t(t){var r=n.call(this,t)||this;return r.on=new e.e([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]),r.O=t,t&&void 0!==t.hash&&(r.on=t.hash.clone()),r}return u(t,n),t.prototype.A=function(){this.on=new e.e([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},t.prototype.fn=function(){var t=n.prototype.fn.call(this);return t.nSigBytes-=4,t},t.prototype.clone=function(){return new t({hash:this.on,blockSize:this.N,data:this.cn,nBytes:this.sn})},t.hash=function(n,r){return new t(r).finalize(n)},t}(o.SHA256)},5561:function(n,t,r){r.d(t,{SHA256:function(){return v}});var i,e=r(1868),o=r(3354),u=(i=function(n,t){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,t){n.__proto__=t}||function(n,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r])})(n,t)},function(n,t){function r(){this.constructor=n}i(n,t),n.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),f=[],c=[];function s(n){for(var t=Math.sqrt(n),r=2;r<=t;r++)if(!(n%r))return!1;return!0}function a(n){return 4294967296*(n-(0|n))|0}!function(){for(var n=2,t=0;t<64;)s(n)&&(t<8&&(f[t]=a(Math.pow(n,.5))),c[t]=a(Math.pow(n,1/3)),t++),n++}();var h=[],v=function(n){function t(t){var r=n.call(this,t)||this;return r.on=new o.e(f.slice(0)),r.O=t,t&&void 0!==t.hash&&(r.on=t.hash.clone()),r}return u(t,n),t.prototype.A=function(){this.on=new o.e(f.slice(0))},t.prototype.un=function(n,t){for(var r=this.on.words,i=r[0],e=r[1],o=r[2],u=r[3],f=r[4],s=r[5],a=r[6],v=r[7],w=0;w<64;w++){if(w<16)h[w]=0|n[t+w];else{var l=h[w-15],b=(l<<25|l>>>7)^(l<<14|l>>>18)^l>>>3,d=h[w-2],y=(d<<15|d>>>17)^(d<<13|d>>>19)^d>>>10;h[w]=b+h[w-7]+y+h[w-16]}var p=i&e^i&o^e&o,O=(i<<30|i>>>2)^(i<<19|i>>>13)^(i<<10|i>>>22),j=v+((f<<26|f>>>6)^(f<<21|f>>>11)^(f<<7|f>>>25))+(f&s^~f&a)+c[w]+h[w];v=a,a=s,s=f,f=u+j|0,u=o,o=e,e=i,i=j+(O+p)|0}r[0]=r[0]+i|0,r[1]=r[1]+e|0,r[2]=r[2]+o|0,r[3]=r[3]+u|0,r[4]=r[4]+f|0,r[5]=r[5]+s|0,r[6]=r[6]+a|0,r[7]=r[7]+v|0},t.prototype.fn=function(){var n=this.cn.words,t=8*this.sn,r=8*this.cn.nSigBytes;return n[r>>>5]|=128<<24-r%32,n[14+(r+64>>>9<<4)]=Math.floor(t/4294967296),n[15+(r+64>>>9<<4)]=t,this.cn.nSigBytes=4*n.length,this.an(),this.on},t.prototype.clone=function(){return new t({hash:this.on,blockSize:this.N,data:this.cn,nBytes:this.sn})},t.hash=function(n,r){return new t(r).finalize(n)},t}(e.P)},3408:function(n,t,r){r.d(t,{SHA3:function(){return v}});var i,e=r(6957),o=r(1868),u=r(3354),f=(i=function(n,t){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,t){n.__proto__=t}||function(n,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r])})(n,t)},function(n,t){function r(){this.constructor=n}i(n,t),n.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),c=[],s=[],a=[];!function(){for(var n=1,t=0,r=0;r<24;r++){c[n+5*t]=(r+1)*(r+2)/2%64;var i=(2*n+3*t)%5;n=t%5,t=i}for(var o=0;o<5;o++)for(var u=0;u<5;u++)s[o+5*u]=u+(2*o+3*u)%5*5;for(var f=1,h=0;h<24;h++){for(var v=0,w=0,l=0;l<7;l++){if(1&f){var b=(1<>>24)|4278255360&(o<<24|o>>>8),u=16711935&(u<<8|u>>>24)|4278255360&(u<<24|u>>>8),r[e].high^=u,r[e].low^=o}for(var f=0;f<24;f++){for(var v=0;v<5;v++){for(var w=0,l=0,b=0;b<5;b++){w^=(k=r[v+5*b]).high,l^=k.low}var d=h[v];d.high=w,d.low=l}for(v=0;v<5;v++){var y=h[(v+4)%5],p=h[(v+1)%5],O=p.high,j=p.low;for(w=y.high^(O<<1|j>>>31),l=y.low^(j<<1|O>>>31),b=0;b<5;b++){(k=r[v+5*b]).high^=w,k.low^=l}}for(var _=1;_<25;_++){w=void 0,l=void 0;var m=r[_].high,A=r[_].low,g=c[_];g<32?(w=m<>>32-g,l=A<>>32-g):(w=A<>>64-g,l=m<>>64-g);var E=h[s[_]];E.high=w,E.low=l}var S=h[0],M=r[0];S.high=M.high,S.low=M.low;for(v=0;v<5;v++)for(b=0;b<5;b++){var k=r[_=v+5*b],H=h[_],C=h[(v+1)%5+5*b],B=h[(v+2)%5+5*b];k.high=H.high^~C.high&B.high,k.low=H.low^~C.low&B.low}var N=r[0],I=a[f];N.high^=I.high,N.low^=I.low}},t.prototype.fn=function(){var n=this.cn,t=n.words,r=8*n.nSigBytes,i=32*this.blockSize;t[r>>>5]|=1<<24-r%32,t[(Math.ceil((r+1)/i)*i>>>5)-1]|=128,n.nSigBytes=4*t.length,this.an();for(var e=this.bn,o=this.dn/8,f=o/8,c=[],s=0;s>>24)|4278255360&(h<<24|h>>>8),v=16711935&(v<<8|v>>>24)|4278255360&(v<<24|v>>>8),c.push(v),c.push(h)}return new u.e(c,o)},t.prototype.clone=function(){return new t({outputLength:this.dn,state:this.bn,blockSize:this.N,data:this.cn,nBytes:this.sn})},t.hash=function(n,r){return new t(r).finalize(n)},t}(o.P)},6324:function(n,t,r){r.d(t,{SHA384:function(){return f}});var i,e=r(6957),o=r(7491),u=(i=function(n,t){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,t){n.__proto__=t}||function(n,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r])})(n,t)},function(n,t){function r(){this.constructor=n}i(n,t),n.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),f=function(n){function t(t){var r=n.call(this,t)||this;return r.on=new e.m([new e.r(3418070365,3238371032),new e.r(1654270250,914150663),new e.r(2438529370,812702999),new e.r(355462360,4144912697),new e.r(1731405415,4290775857),new e.r(2394180231,1750603025),new e.r(3675008525,1694076839),new e.r(1203062813,3204075428)]),r.O=t,t&&void 0!==t.hash&&(r.on=t.hash.clone()),r}return u(t,n),t.prototype.A=function(){this.on=new e.m([new e.r(3418070365,3238371032),new e.r(1654270250,914150663),new e.r(2438529370,812702999),new e.r(355462360,4144912697),new e.r(1731405415,4290775857),new e.r(2394180231,1750603025),new e.r(3675008525,1694076839),new e.r(1203062813,3204075428)])},t.prototype.fn=function(){var t=n.prototype.fn.call(this);return t.nSigBytes-=16,t},t.prototype.clone=function(){return new t({hash:this.on,blockSize:this.N,data:this.cn,nBytes:this.sn})},t.hash=function(n,r){return new t(r).finalize(n)},t}(o.SHA512)},7491:function(n,t,r){r.d(t,{SHA512:function(){return s}});var i,e=r(1868),o=r(6957),u=(i=function(n,t){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,t){n.__proto__=t}||function(n,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r])})(n,t)},function(n,t){function r(){this.constructor=n}i(n,t),n.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),f=[new o.r(1116352408,3609767458),new o.r(1899447441,602891725),new o.r(3049323471,3964484399),new o.r(3921009573,2173295548),new o.r(961987163,4081628472),new o.r(1508970993,3053834265),new o.r(2453635748,2937671579),new o.r(2870763221,3664609560),new o.r(3624381080,2734883394),new o.r(310598401,1164996542),new o.r(607225278,1323610764),new o.r(1426881987,3590304994),new o.r(1925078388,4068182383),new o.r(2162078206,991336113),new o.r(2614888103,633803317),new o.r(3248222580,3479774868),new o.r(3835390401,2666613458),new o.r(4022224774,944711139),new o.r(264347078,2341262773),new o.r(604807628,2007800933),new o.r(770255983,1495990901),new o.r(1249150122,1856431235),new o.r(1555081692,3175218132),new o.r(1996064986,2198950837),new o.r(2554220882,3999719339),new o.r(2821834349,766784016),new o.r(2952996808,2566594879),new o.r(3210313671,3203337956),new o.r(3336571891,1034457026),new o.r(3584528711,2466948901),new o.r(113926993,3758326383),new o.r(338241895,168717936),new o.r(666307205,1188179964),new o.r(773529912,1546045734),new o.r(1294757372,1522805485),new o.r(1396182291,2643833823),new o.r(1695183700,2343527390),new o.r(1986661051,1014477480),new o.r(2177026350,1206759142),new o.r(2456956037,344077627),new o.r(2730485921,1290863460),new o.r(2820302411,3158454273),new o.r(3259730800,3505952657),new o.r(3345764771,106217008),new o.r(3516065817,3606008344),new o.r(3600352804,1432725776),new o.r(4094571909,1467031594),new o.r(275423344,851169720),new o.r(430227734,3100823752),new o.r(506948616,1363258195),new o.r(659060556,3750685593),new o.r(883997877,3785050280),new o.r(958139571,3318307427),new o.r(1322822218,3812723403),new o.r(1537002063,2003034995),new o.r(1747873779,3602036899),new o.r(1955562222,1575990012),new o.r(2024104815,1125592928),new o.r(2227730452,2716904306),new o.r(2361852424,442776044),new o.r(2428436474,593698344),new o.r(2756734187,3733110249),new o.r(3204031479,2999351573),new o.r(3329325298,3815920427),new o.r(3391569614,3928383900),new o.r(3515267271,566280711),new o.r(3940187606,3454069534),new o.r(4118630271,4000239992),new o.r(116418474,1914138554),new o.r(174292421,2731055270),new o.r(289380356,3203993006),new o.r(460393269,320620315),new o.r(685471733,587496836),new o.r(852142971,1086792851),new o.r(1017036298,365543100),new o.r(1126000580,2618297676),new o.r(1288033470,3409855158),new o.r(1501505948,4234509866),new o.r(1607167915,987167468),new o.r(1816402316,1246189591)],c=[];!function(){for(var n=0;n<80;n++)c[n]=new o.r(0,0)}();var s=function(n){function t(t){var r=n.call(this,t)||this;return r.N=32,r.on=new o.m([new o.r(1779033703,4089235720),new o.r(3144134277,2227873595),new o.r(1013904242,4271175723),new o.r(2773480762,1595750129),new o.r(1359893119,2917565137),new o.r(2600822924,725511199),new o.r(528734635,4215389547),new o.r(1541459225,327033209)]),r.O=t,t&&void 0!==t.hash&&(r.on=t.hash.clone()),r}return u(t,n),t.prototype.A=function(){this.on=new o.m([new o.r(1779033703,4089235720),new o.r(3144134277,2227873595),new o.r(1013904242,4271175723),new o.r(2773480762,1595750129),new o.r(1359893119,2917565137),new o.r(2600822924,725511199),new o.r(528734635,4215389547),new o.r(1541459225,327033209)])},t.prototype.un=function(n,t){for(var r=this.on.words,i=r[0],e=r[1],o=r[2],u=r[3],s=r[4],a=r[5],h=r[6],v=r[7],w=i.high,l=i.low,b=e.high,d=e.low,y=o.high,p=o.low,O=u.high,j=u.low,_=s.high,m=s.low,A=a.high,g=a.low,E=h.high,S=h.low,M=v.high,k=v.low,H=w,C=l,B=b,N=d,I=y,z=p,D=O,U=j,L=_,F=m,x=A,P=g,R=E,T=S,K=M,W=k,G=0;G<80;G++){var q=void 0,Q=void 0,X=c[G];if(G<16)Q=X.high=0|n[t+2*G],q=X.low=0|n[t+2*G+1];else{var V=c[G-15],Z=V.high,J=V.low,Y=(Z>>>1|J<<31)^(Z>>>8|J<<24)^Z>>>7,$=(J>>>1|Z<<31)^(J>>>8|Z<<24)^(J>>>7|Z<<25),nn=c[G-2],tn=nn.high,rn=nn.low,en=(tn>>>19|rn<<13)^(tn<<3|rn>>>29)^tn>>>6,on=(rn>>>19|tn<<13)^(rn<<3|tn>>>29)^(rn>>>6|tn<<26),un=c[G-7],fn=un.high,cn=un.low,sn=c[G-16],an=sn.high,hn=sn.low;Q=(Q=(Q=Y+fn+((q=$+cn)>>>0<$>>>0?1:0))+en+((q+=on)>>>0>>0?1:0))+an+((q+=hn)>>>0>>0?1:0),X.high=Q,X.low=q}var vn=L&x^~L&R,wn=F&P^~F&T,ln=H&B^H&I^B&I,bn=C&N^C&z^N&z,dn=(H>>>28|C<<4)^(H<<30|C>>>2)^(H<<25|C>>>7),yn=(C>>>28|H<<4)^(C<<30|H>>>2)^(C<<25|H>>>7),pn=(L>>>14|F<<18)^(L>>>18|F<<14)^(L<<23|F>>>9),On=(F>>>14|L<<18)^(F>>>18|L<<14)^(F<<23|L>>>9),jn=f[G],_n=jn.high,mn=jn.low,An=W+On,gn=K+pn+(An>>>0>>0?1:0),En=yn+bn;K=R,W=T,R=x,T=P,x=L,P=F,L=D+(gn=(gn=(gn=gn+vn+((An+=wn)>>>0>>0?1:0))+_n+((An+=mn)>>>0>>0?1:0))+Q+((An+=q)>>>0>>0?1:0))+((F=U+An|0)>>>0>>0?1:0)|0,D=I,U=z,I=B,z=N,B=H,N=C,H=gn+(dn+ln+(En>>>0>>0?1:0))+((C=An+En|0)>>>0>>0?1:0)|0}l=i.low=l+C,i.high=w+H+(l>>>0>>0?1:0),d=e.low=d+N,e.high=b+B+(d>>>0>>0?1:0),p=o.low=p+z,o.high=y+I+(p>>>0>>0?1:0),j=u.low=j+U,u.high=O+D+(j>>>0>>0?1:0),m=s.low=m+F,s.high=_+L+(m>>>0>>0?1:0),g=a.low=g+P,a.high=A+x+(g>>>0

>>0?1:0),S=h.low=S+T,h.high=E+R+(S>>>0>>0?1:0),k=v.low=k+W,v.high=M+K+(k>>>0>>0?1:0)},t.prototype.fn=function(){var n=this.cn,t=n.words,r=8*this.sn,i=8*n.nSigBytes;return t[i>>>5]|=128<<24-i%32,t[30+(i+128>>>10<<5)]=Math.floor(r/4294967296),t[31+(i+128>>>10<<5)]=r,n.nSigBytes=4*t.length,this.an(),this.on.to32()},t.prototype.clone=function(){return new t({hash:this.on,blockSize:this.N,data:this.cn,nBytes:this.sn})},t.hash=function(n,r){return new t(r).finalize(n)},t}(e.P)},3354:function(n,t,r){r.d(t,{e:function(){return o}});var i=r(5720),e=r(9054),o=function(){function n(t,r){if(Array.isArray(t)||!t)return this.yn=Array.isArray(t)?t:[],void(this.pn=\"number\"==typeof r?r:4*this.yn.length);if(t instanceof n)return this.yn=t.words.slice(),void(this.pn=t.nSigBytes);var i;try{t instanceof ArrayBuffer?i=new Uint8Array(t):(t instanceof Uint8Array||t instanceof Int8Array||t instanceof Uint8ClampedArray||t instanceof Int16Array||t instanceof Uint16Array||t instanceof Int32Array||t instanceof Uint32Array||t instanceof Float32Array||t instanceof Float64Array)&&(i=new Uint8Array(t.buffer,t.byteOffset,t.byteLength))}catch(n){throw new Error(\"Invalid argument\")}if(!i)throw new Error(\"Invalid argument\");for(var e=i.byteLength,o=[],u=0;u>>2]|=i[u]<<24-u%4*8;this.yn=o,this.pn=e}return Object.defineProperty(n.prototype,\"nSigBytes\",{get:function(){return this.pn},set:function(n){this.pn=n},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,\"words\",{get:function(){return this.yn},enumerable:!1,configurable:!0}),n.prototype.toString=function(n){return n?n.stringify(this):i.p.stringify(this)},n.prototype.toUint8Array=function(){for(var n=this.yn,t=this.pn,r=new Uint8Array(t),i=0;i>>2]>>>24-i%4*8&255;return r},n.prototype.concat=function(n){var t=n.words.slice(),r=n.nSigBytes;if(this.clamp(),this.pn%4)for(var i=0;i>>2]>>>24-i%4*8&255;this.yn[this.pn+i>>>2]|=e<<24-(this.pn+i)%4*8}else for(i=0;i>>2]=t[i>>>2];return this.pn+=r,this},n.prototype.clamp=function(){var n=this.pn;this.yn[n>>>2]&=4294967295<<32-n%4*8,this.yn.length=Math.ceil(n/4)},n.prototype.clone=function(){return new n(this.yn.slice(),this.pn)},n.random=function(t){for(var r=[],i=0;i0&&e.push(0),n.concat(new i.e(e,r))}}function o(n,t){return new i.e(n.words.slice(),t)}function u(n,t){for(var r=n.nSigBytes-t,e=[],o=0;o>>2,f=r+o,c=f>>>2,s=n.words[c]>>>24-f%4*8&255;e[u]=0|e[u]|s<<24-o%4*8}var a=new i.e(e,t);return a.clamp(),a}},7919:function(n,t,r){r.d(t,{l:function(){return e}});var i=r(3354);var e={pad:function(n,t){for(var r=4*t,e=r-n.nSigBytes%r,o=e<<24|e<<16|e<<8|e,u=[],f=0;f>>2];n.nSigBytes-=t}}},1756:function(n,t,r){r.d(t,{w:function(){return u}});var i,e=\"undefined\"!=typeof navigator&&navigator.userAgent?navigator.userAgent.toLowerCase():\"\",o=(i=parseInt((/msie (\\d+)/.exec(e)||[])[1],10),isNaN(i)?(i=parseInt((/trident\\/.*; rv:(\\d+)/.exec(e)||[])[1],10),!isNaN(i)&&i):i);function u(n,t){return!1!==o&&(!t||(\"<\"===n?o\"===n?o>t:\">=\"===n?o>=t:o===t))}},1773:function(n,t,r){r.d(t,{D:function(){return f}});for(var i=r(3354),e=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\",o=[],u=0;u>>2]>>>24-o%4*8&255)<<16|(t[o+1>>>2]>>>24-(o+1)%4*8&255)<<8|t[o+2>>>2]>>>24-(o+2)%4*8&255,f=0;f<4&&o+.75*f>>6*(3-f)&63));var c=e.charAt(64);if(c)for(;i.length%4;)i.push(c);return i.join(\"\")},parse:function(n){var t=n.length,r=e.charAt(64);if(r){var u=n.indexOf(r);-1!==u&&(t=u)}for(var f=[],c=0,s=0;s>>6-s%4*2;f[c>>>2]|=a<<24-c%4*8,c++}return new i.e(f,c)}}},5720:function(n,t,r){r.d(t,{p:function(){return e}});var i=r(3354),e={stringify:function(n){for(var t=n.nSigBytes,r=n.words,i=[],e=0;e>>2]>>>24-e%4*8&255;i.push((o>>>4).toString(16)),i.push((15&o).toString(16))}return i.join(\"\")},parse:function(n){var t=n.length;if(t%2!=0)throw new Error(\"Hex string count must be even\");if(!/^[a-fA-F0-9]+$/.test(n))throw new Error(\"Invalid Hex string: \"+n);for(var r=[],e=0;e>>3]|=parseInt(n.substr(e,2),16)<<24-e%8*4;return new i.e(r,t/2)}}},8702:function(n,t,r){r.d(t,{m:function(){return e}});var i=r(3354),e={stringify:function(n){for(var t=n.nSigBytes,r=n.words,i=[],e=0;e>>2]>>>24-e%4*8&255;i.push(String.fromCharCode(o))}return i.join(\"\")},parse:function(n){for(var t=n.length,r=[],e=0;e>>2]|=(255&n.charCodeAt(e))<<24-e%4*8;return new i.e(r,t)}}},4768:function(n,t,r){r.d(t,{d:function(){return e}});var i=r(8702),e={stringify:function(n){try{return decodeURIComponent(escape(i.m.stringify(n)))}catch(n){throw new Error(\"Malformed UTF-8 data\")}},parse:function(n){return i.m.parse(unescape(encodeURIComponent(n)))}}},2688:function(n,t,r){r.d(t,{Base64:function(){return o.D},EvpKDF:function(){return O},Hex:function(){return c.p},Latin1:function(){return f.m},OpenSSLKDF:function(){return l.s},PBKDF2:function(){return b.E},Utf16:function(){return w},Utf16BE:function(){return s},Utf16LE:function(){return v},Utf8:function(){return u.d},Word32Array:function(){return i.e},Word64:function(){return e.r},Word64Array:function(){return e.m}});r(9054);var i=r(3354),e=r(6957),o=(r(1756),r(1773)),u=r(4768),f=r(8702),c=r(5720),s={stringify:function(n){for(var t=n.words,r=n.nSigBytes,i=[],e=0;e>>2]>>>16-e%4*8&65535;i.push(String.fromCharCode(o))}return i.join(\"\")},parse:function(n){for(var t=n.length,r=[],e=0;e>>1]|=n.charCodeAt(e)<<16-e%2*16;return new i.e(r,2*t)}};function a(n){return n<<8&4278255360|n>>>8&16711935}var h,v={stringify:function(n){for(var t=n.words,r=n.nSigBytes,i=[],e=0;e>>2]>>>16-e%4*8&65535);i.push(String.fromCharCode(o))}return i.join(\"\")},parse:function(n){for(var t=n.length,r=[],e=0;e>>1]|=a(n.charCodeAt(e)<<16-e%2*16);return new i.e(r,2*t)}},w=s,l=r(2214),b=r(7008),d=r(670),y=r(9541),p=(h=function(n,t){return(h=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,t){n.__proto__=t}||function(n,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r])})(n,t)},function(n,t){function r(){this.constructor=n}h(n,t),n.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),O=function(n){function t(t){var r=n.call(this,t)||this;return r.Sn=4,r.Mn=d.MD5,r.kn=1,t&&(r.Sn=void 0!==t.keySize?t.keySize:r.Sn,r.Mn=void 0!==t.Hasher?t.Hasher:r.Mn,r.kn=void 0!==t.iterations?t.iterations:r.kn),r}return p(t,n),t.prototype.compute=function(n,t){for(var r,e=new this.Mn,o=new i.e,u=o.words,f=this.Sn,c=this.kn;u.length13||e.nSigBytes<7))throw new Error(\"Byte size of iv must be between 7 and 13\");return r.Nn=e||new o.e([0,0],8),r.In=15-r.Nn.nSigBytes,r}return f(t,n),t.getB0=function(n,t,r,i){if(r.nSigBytes+i.nSigBytes!==15)throw new Error(\"LEN(Q)+LEN(N) must be 15\");var e=255&(0|(n?1:0)<<6|(t-2)/2<<3|r.nSigBytes-1),u=i.clone().concat(r);return new o.e([e<<24],1).concat(u)},t.formatAssociatedDataAndPayload=function(n,t){var r,i=n.nSigBytes;if(0===i)r=new o.e([0],0);else if(i4?(e.concat(new o.e([0],n%4)),e.concat(new o.e([r],4))):e.concat(new o.e([r<<32-8*n],n)):e.concat(new o.e([r],4)),i.concat(t).concat(e)},t.mac=function(n,r,i,e,f,c){var s=new n({key:r,iv:i});if(4!==s.blockSize)throw new Error(\"In CCM, cipher block size must be 128bit\");if(i&&(i.nSigBytes>13||i.nSigBytes<7))throw new Error(\"Byte size of iv must be between 7 and 13\");var a=i||new o.e([0,0],8),h=(null==e?void 0:e.clone())||new o.e,v=h.nSigBytes,w=(null==f?void 0:f.clone())||new o.e,l=w.nSigBytes;if(l>>>0>4294967295)throw new Error(\"Byte length of Payload(plainText) larger than 2^32-1 (4,294,967,295byte) is not supported at this time.\");var b=15-a.nSigBytes,d=(0,u.ur)(new o.e([0,l],8),b),y=c||16,p=t.getB0(Boolean(v),y,d,a),O=t.formatAssociatedDataAndPayload(h,w),j=p.words.slice();s.encryptBlock(j,0);for(var _=O.nSigBytes/16,m=O.words,A=j,g=0;g<_;g++){var E=[m[4*g]^A[0],m[4*g+1]^A[1],m[4*g+2]^A[2],m[4*g+3]^A[3]];s.encryptBlock(E,0),A=E}var S=new o.e(A,y),M=t.genCtr(b,a,0);s.encryptBlock(M.words,0);for(g=0;g<4;g++)S.words[g]^=M.words[g];return S.clamp(),S},t.combineCipherTextAndAuthTag=function(n,t){return n.clone().concat(t)},t.splitCipherTextAndAuthTag=function(n,t){var r=t||16;return{cipherText:(0,u.z6)(n,n.nSigBytes-r),authTag:(0,u.ur)(n,r)}},t.createEncryptor=function(n){return new t.Encryptor(n)},t.createDecryptor=function(n){return new t.Decryptor(n)},t.Encryptor=function(n){function r(){return null!==n&&n.apply(this,arguments)||this}return f(r,n),r.prototype.processBlock=function(n,r){var i=this.Hn,e=i.blockSize,o=t.genCtr(this.In,this.Nn,this.Bn);i.encryptBlock(o.words,0);for(var u=0;u0?4-r.length%4:0,o=r.slice(),u=0;u>>0,i=r+1>>>0>>0,o=e+1>>>0>>5]>>>31-o%32&1)>0&&(i[0]=i[0]^e[0],i[1]=i[1]^e[1],i[2]=i[2]^e[2],i[3]=i[3]^e[3]);var u=(1&e[3])>>>0,f=(1&e[0])>>>0,c=(1&e[1])>>>0,s=(1&e[2])>>>0;e[0]=e[0]>>>1,e[1]=e[1]>>>1|(f?2147483648:0),e[2]=e[2]>>>1|(c?2147483648:0),e[3]=e[3]>>>1|(s?2147483648:0),u>0&&(e[0]^=r[0],e[1]^=r[1],e[2]^=r[2],e[3]^=r[3])}return i},t.GHASH=function(n,r){if(n.length%4!=0)throw new Error(\"Length of 32bit word array 'H' must be multiple of 4(128bit)\");if(r.length%4!=0)throw new Error(\"Length of 32bit word array 'X' must be multiple of 4(128bit)\");for(var i=r.length,e=[0,0,0,0],o=0;o0){var A=e[4*c+O]<<32-8*m^f[c][O];y.push(A),p+=m}var g=new o.e(y,p);a.concat(g)}}return a.nSigBytes=i.nSigBytes,a.clamp(),a},t.mac=function(n,r,i,e,f,c){var s=new n({key:r,iv:i}),a=[0,0,0,0];s.encryptBlock(a,0);var h=t.getJ0(a,i.words),v=(null==e?void 0:e.clone())||new o.e,w=[0,8*v.nSigBytes],l=(null==f?void 0:f.clone())||new o.e,b=[0,8*l.nSigBytes],d=c||16;(0,u.I4)(v),(0,u.I4)(l);var y=v.words.concat(l.words).concat(w).concat(b),p=t.GHASH(a,y),O=t.GCTR(s,h,new o.e(p));return(0,u.z6)(O,d)},t.createEncryptor=function(n){return new t.Encryptor(n)},t.createDecryptor=function(n){return new t.Decryptor(n)},t.Encryptor=function(n){function r(){return null!==n&&n.apply(this,arguments)||this}return f(r,n),r.prototype.processBlock=function(n,r){var i=this.Hn.blockSize;this.Un=t.inc32(this.Un);for(var e=new o.e(n.slice(r,r+i)),u=t.GCTR(this.Hn,this.Un,e),f=0;f>>2]|=e<<24-o%4*8,n.nSigBytes+=e},unpad:function(n){var t=255&n.words[n.nSigBytes-1>>>2];n.nSigBytes-=t}},K=r(3354);var W={pad:function(n,t){var r=4*t,i=r-n.nSigBytes%r;n.concat(K.e.random(i-1)).concat(new K.e([i<<24],1))},unpad:function(n){var t=255&n.words[n.nSigBytes-1>>>2];n.nSigBytes-=t}};var G={pad:function(n,t){var r=4*t;n.clamp(),n.nSigBytes+=r-(n.nSigBytes%r||r)},unpad:function(n){for(var t=n.words,r=n.nSigBytes-1;r>=0;r--)if(t[r>>>2]>>>24-r%4*8&255){n.nSigBytes=r+1;break}}};var q={pad:function(n,t){n.concat(new K.e([2147483648],1)),G.pad(n,t)},unpad:function(n){G.unpad(n),n.nSigBytes-=1}},Q=r(7919);var X={pad:function(n,t){},unpad:function(n){}},V=r(1232),Z={CBC:C.n,CFB:I,CTR:D,ECB:L,OFB:x,GCM:P.V,CCM:R.K},J={AnsiX923:T,ISO10126:W,ISO97971:q,Pkcs7:Q.l,NoPadding:X,Zero:G},Y={OpenSSLFormatter:V.w}}(),i}()}));","module.exports = Long;\r\n\r\n/**\r\n * wasm optimizations, to do native i64 multiplication and divide\r\n */\r\nvar wasm = null;\r\n\r\ntry {\r\n wasm = new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([\r\n 0, 97, 115, 109, 1, 0, 0, 0, 1, 13, 2, 96, 0, 1, 127, 96, 4, 127, 127, 127, 127, 1, 127, 3, 7, 6, 0, 1, 1, 1, 1, 1, 6, 6, 1, 127, 1, 65, 0, 11, 7, 50, 6, 3, 109, 117, 108, 0, 1, 5, 100, 105, 118, 95, 115, 0, 2, 5, 100, 105, 118, 95, 117, 0, 3, 5, 114, 101, 109, 95, 115, 0, 4, 5, 114, 101, 109, 95, 117, 0, 5, 8, 103, 101, 116, 95, 104, 105, 103, 104, 0, 0, 10, 191, 1, 6, 4, 0, 35, 0, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 126, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 127, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 128, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 129, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 130, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11\r\n ])), {}).exports;\r\n} catch (e) {\r\n // no wasm support :(\r\n}\r\n\r\n/**\r\n * Constructs a 64 bit two's-complement integer, given its low and high 32 bit values as *signed* integers.\r\n * See the from* functions below for more convenient ways of constructing Longs.\r\n * @exports Long\r\n * @class A Long class for representing a 64 bit two's-complement integer value.\r\n * @param {number} low The low (signed) 32 bits of the long\r\n * @param {number} high The high (signed) 32 bits of the long\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @constructor\r\n */\r\nfunction Long(low, high, unsigned) {\r\n\r\n /**\r\n * The low 32 bits as a signed value.\r\n * @type {number}\r\n */\r\n this.low = low | 0;\r\n\r\n /**\r\n * The high 32 bits as a signed value.\r\n * @type {number}\r\n */\r\n this.high = high | 0;\r\n\r\n /**\r\n * Whether unsigned or not.\r\n * @type {boolean}\r\n */\r\n this.unsigned = !!unsigned;\r\n}\r\n\r\n// The internal representation of a long is the two given signed, 32-bit values.\r\n// We use 32-bit pieces because these are the size of integers on which\r\n// Javascript performs bit-operations. For operations like addition and\r\n// multiplication, we split each number into 16 bit pieces, which can easily be\r\n// multiplied within Javascript's floating-point representation without overflow\r\n// or change in sign.\r\n//\r\n// In the algorithms below, we frequently reduce the negative case to the\r\n// positive case by negating the input(s) and then post-processing the result.\r\n// Note that we must ALWAYS check specially whether those values are MIN_VALUE\r\n// (-2^63) because -MIN_VALUE == MIN_VALUE (since 2^63 cannot be represented as\r\n// a positive number, it overflows back into a negative). Not handling this\r\n// case would often result in infinite recursion.\r\n//\r\n// Common constant values ZERO, ONE, NEG_ONE, etc. are defined below the from*\r\n// methods on which they depend.\r\n\r\n/**\r\n * An indicator used to reliably determine if an object is a Long or not.\r\n * @type {boolean}\r\n * @const\r\n * @private\r\n */\r\nLong.prototype.__isLong__;\r\n\r\nObject.defineProperty(Long.prototype, \"__isLong__\", { value: true });\r\n\r\n/**\r\n * @function\r\n * @param {*} obj Object\r\n * @returns {boolean}\r\n * @inner\r\n */\r\nfunction isLong(obj) {\r\n return (obj && obj[\"__isLong__\"]) === true;\r\n}\r\n\r\n/**\r\n * Tests if the specified object is a Long.\r\n * @function\r\n * @param {*} obj Object\r\n * @returns {boolean}\r\n */\r\nLong.isLong = isLong;\r\n\r\n/**\r\n * A cache of the Long representations of small integer values.\r\n * @type {!Object}\r\n * @inner\r\n */\r\nvar INT_CACHE = {};\r\n\r\n/**\r\n * A cache of the Long representations of small unsigned integer values.\r\n * @type {!Object}\r\n * @inner\r\n */\r\nvar UINT_CACHE = {};\r\n\r\n/**\r\n * @param {number} value\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromInt(value, unsigned) {\r\n var obj, cachedObj, cache;\r\n if (unsigned) {\r\n value >>>= 0;\r\n if (cache = (0 <= value && value < 256)) {\r\n cachedObj = UINT_CACHE[value];\r\n if (cachedObj)\r\n return cachedObj;\r\n }\r\n obj = fromBits(value, (value | 0) < 0 ? -1 : 0, true);\r\n if (cache)\r\n UINT_CACHE[value] = obj;\r\n return obj;\r\n } else {\r\n value |= 0;\r\n if (cache = (-128 <= value && value < 128)) {\r\n cachedObj = INT_CACHE[value];\r\n if (cachedObj)\r\n return cachedObj;\r\n }\r\n obj = fromBits(value, value < 0 ? -1 : 0, false);\r\n if (cache)\r\n INT_CACHE[value] = obj;\r\n return obj;\r\n }\r\n}\r\n\r\n/**\r\n * Returns a Long representing the given 32 bit integer value.\r\n * @function\r\n * @param {number} value The 32 bit integer in question\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromInt = fromInt;\r\n\r\n/**\r\n * @param {number} value\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromNumber(value, unsigned) {\r\n if (isNaN(value))\r\n return unsigned ? UZERO : ZERO;\r\n if (unsigned) {\r\n if (value < 0)\r\n return UZERO;\r\n if (value >= TWO_PWR_64_DBL)\r\n return MAX_UNSIGNED_VALUE;\r\n } else {\r\n if (value <= -TWO_PWR_63_DBL)\r\n return MIN_VALUE;\r\n if (value + 1 >= TWO_PWR_63_DBL)\r\n return MAX_VALUE;\r\n }\r\n if (value < 0)\r\n return fromNumber(-value, unsigned).neg();\r\n return fromBits((value % TWO_PWR_32_DBL) | 0, (value / TWO_PWR_32_DBL) | 0, unsigned);\r\n}\r\n\r\n/**\r\n * Returns a Long representing the given value, provided that it is a finite number. Otherwise, zero is returned.\r\n * @function\r\n * @param {number} value The number in question\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromNumber = fromNumber;\r\n\r\n/**\r\n * @param {number} lowBits\r\n * @param {number} highBits\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromBits(lowBits, highBits, unsigned) {\r\n return new Long(lowBits, highBits, unsigned);\r\n}\r\n\r\n/**\r\n * Returns a Long representing the 64 bit integer that comes by concatenating the given low and high bits. Each is\r\n * assumed to use 32 bits.\r\n * @function\r\n * @param {number} lowBits The low 32 bits\r\n * @param {number} highBits The high 32 bits\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromBits = fromBits;\r\n\r\n/**\r\n * @function\r\n * @param {number} base\r\n * @param {number} exponent\r\n * @returns {number}\r\n * @inner\r\n */\r\nvar pow_dbl = Math.pow; // Used 4 times (4*8 to 15+4)\r\n\r\n/**\r\n * @param {string} str\r\n * @param {(boolean|number)=} unsigned\r\n * @param {number=} radix\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromString(str, unsigned, radix) {\r\n if (str.length === 0)\r\n throw Error('empty string');\r\n if (str === \"NaN\" || str === \"Infinity\" || str === \"+Infinity\" || str === \"-Infinity\")\r\n return ZERO;\r\n if (typeof unsigned === 'number') {\r\n // For goog.math.long compatibility\r\n radix = unsigned,\r\n unsigned = false;\r\n } else {\r\n unsigned = !! unsigned;\r\n }\r\n radix = radix || 10;\r\n if (radix < 2 || 36 < radix)\r\n throw RangeError('radix');\r\n\r\n var p;\r\n if ((p = str.indexOf('-')) > 0)\r\n throw Error('interior hyphen');\r\n else if (p === 0) {\r\n return fromString(str.substring(1), unsigned, radix).neg();\r\n }\r\n\r\n // Do several (8) digits each time through the loop, so as to\r\n // minimize the calls to the very expensive emulated div.\r\n var radixToPower = fromNumber(pow_dbl(radix, 8));\r\n\r\n var result = ZERO;\r\n for (var i = 0; i < str.length; i += 8) {\r\n var size = Math.min(8, str.length - i),\r\n value = parseInt(str.substring(i, i + size), radix);\r\n if (size < 8) {\r\n var power = fromNumber(pow_dbl(radix, size));\r\n result = result.mul(power).add(fromNumber(value));\r\n } else {\r\n result = result.mul(radixToPower);\r\n result = result.add(fromNumber(value));\r\n }\r\n }\r\n result.unsigned = unsigned;\r\n return result;\r\n}\r\n\r\n/**\r\n * Returns a Long representation of the given string, written using the specified radix.\r\n * @function\r\n * @param {string} str The textual representation of the Long\r\n * @param {(boolean|number)=} unsigned Whether unsigned or not, defaults to signed\r\n * @param {number=} radix The radix in which the text is written (2-36), defaults to 10\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromString = fromString;\r\n\r\n/**\r\n * @function\r\n * @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromValue(val, unsigned) {\r\n if (typeof val === 'number')\r\n return fromNumber(val, unsigned);\r\n if (typeof val === 'string')\r\n return fromString(val, unsigned);\r\n // Throws for non-objects, converts non-instanceof Long:\r\n return fromBits(val.low, val.high, typeof unsigned === 'boolean' ? unsigned : val.unsigned);\r\n}\r\n\r\n/**\r\n * Converts the specified value to a Long using the appropriate from* function for its type.\r\n * @function\r\n * @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val Value\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long}\r\n */\r\nLong.fromValue = fromValue;\r\n\r\n// NOTE: the compiler should inline these constant values below and then remove these variables, so there should be\r\n// no runtime penalty for these.\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_16_DBL = 1 << 16;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_24_DBL = 1 << 24;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_32_DBL = TWO_PWR_16_DBL * TWO_PWR_16_DBL;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_64_DBL = TWO_PWR_32_DBL * TWO_PWR_32_DBL;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_63_DBL = TWO_PWR_64_DBL / 2;\r\n\r\n/**\r\n * @type {!Long}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_24 = fromInt(TWO_PWR_24_DBL);\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar ZERO = fromInt(0);\r\n\r\n/**\r\n * Signed zero.\r\n * @type {!Long}\r\n */\r\nLong.ZERO = ZERO;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar UZERO = fromInt(0, true);\r\n\r\n/**\r\n * Unsigned zero.\r\n * @type {!Long}\r\n */\r\nLong.UZERO = UZERO;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar ONE = fromInt(1);\r\n\r\n/**\r\n * Signed one.\r\n * @type {!Long}\r\n */\r\nLong.ONE = ONE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar UONE = fromInt(1, true);\r\n\r\n/**\r\n * Unsigned one.\r\n * @type {!Long}\r\n */\r\nLong.UONE = UONE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar NEG_ONE = fromInt(-1);\r\n\r\n/**\r\n * Signed negative one.\r\n * @type {!Long}\r\n */\r\nLong.NEG_ONE = NEG_ONE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar MAX_VALUE = fromBits(0xFFFFFFFF|0, 0x7FFFFFFF|0, false);\r\n\r\n/**\r\n * Maximum signed value.\r\n * @type {!Long}\r\n */\r\nLong.MAX_VALUE = MAX_VALUE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar MAX_UNSIGNED_VALUE = fromBits(0xFFFFFFFF|0, 0xFFFFFFFF|0, true);\r\n\r\n/**\r\n * Maximum unsigned value.\r\n * @type {!Long}\r\n */\r\nLong.MAX_UNSIGNED_VALUE = MAX_UNSIGNED_VALUE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar MIN_VALUE = fromBits(0, 0x80000000|0, false);\r\n\r\n/**\r\n * Minimum signed value.\r\n * @type {!Long}\r\n */\r\nLong.MIN_VALUE = MIN_VALUE;\r\n\r\n/**\r\n * @alias Long.prototype\r\n * @inner\r\n */\r\nvar LongPrototype = Long.prototype;\r\n\r\n/**\r\n * Converts the Long to a 32 bit integer, assuming it is a 32 bit integer.\r\n * @returns {number}\r\n */\r\nLongPrototype.toInt = function toInt() {\r\n return this.unsigned ? this.low >>> 0 : this.low;\r\n};\r\n\r\n/**\r\n * Converts the Long to a the nearest floating-point representation of this value (double, 53 bit mantissa).\r\n * @returns {number}\r\n */\r\nLongPrototype.toNumber = function toNumber() {\r\n if (this.unsigned)\r\n return ((this.high >>> 0) * TWO_PWR_32_DBL) + (this.low >>> 0);\r\n return this.high * TWO_PWR_32_DBL + (this.low >>> 0);\r\n};\r\n\r\n/**\r\n * Converts the Long to a string written in the specified radix.\r\n * @param {number=} radix Radix (2-36), defaults to 10\r\n * @returns {string}\r\n * @override\r\n * @throws {RangeError} If `radix` is out of range\r\n */\r\nLongPrototype.toString = function toString(radix) {\r\n radix = radix || 10;\r\n if (radix < 2 || 36 < radix)\r\n throw RangeError('radix');\r\n if (this.isZero())\r\n return '0';\r\n if (this.isNegative()) { // Unsigned Longs are never negative\r\n if (this.eq(MIN_VALUE)) {\r\n // We need to change the Long value before it can be negated, so we remove\r\n // the bottom-most digit in this base and then recurse to do the rest.\r\n var radixLong = fromNumber(radix),\r\n div = this.div(radixLong),\r\n rem1 = div.mul(radixLong).sub(this);\r\n return div.toString(radix) + rem1.toInt().toString(radix);\r\n } else\r\n return '-' + this.neg().toString(radix);\r\n }\r\n\r\n // Do several (6) digits each time through the loop, so as to\r\n // minimize the calls to the very expensive emulated div.\r\n var radixToPower = fromNumber(pow_dbl(radix, 6), this.unsigned),\r\n rem = this;\r\n var result = '';\r\n while (true) {\r\n var remDiv = rem.div(radixToPower),\r\n intval = rem.sub(remDiv.mul(radixToPower)).toInt() >>> 0,\r\n digits = intval.toString(radix);\r\n rem = remDiv;\r\n if (rem.isZero())\r\n return digits + result;\r\n else {\r\n while (digits.length < 6)\r\n digits = '0' + digits;\r\n result = '' + digits + result;\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * Gets the high 32 bits as a signed integer.\r\n * @returns {number} Signed high bits\r\n */\r\nLongPrototype.getHighBits = function getHighBits() {\r\n return this.high;\r\n};\r\n\r\n/**\r\n * Gets the high 32 bits as an unsigned integer.\r\n * @returns {number} Unsigned high bits\r\n */\r\nLongPrototype.getHighBitsUnsigned = function getHighBitsUnsigned() {\r\n return this.high >>> 0;\r\n};\r\n\r\n/**\r\n * Gets the low 32 bits as a signed integer.\r\n * @returns {number} Signed low bits\r\n */\r\nLongPrototype.getLowBits = function getLowBits() {\r\n return this.low;\r\n};\r\n\r\n/**\r\n * Gets the low 32 bits as an unsigned integer.\r\n * @returns {number} Unsigned low bits\r\n */\r\nLongPrototype.getLowBitsUnsigned = function getLowBitsUnsigned() {\r\n return this.low >>> 0;\r\n};\r\n\r\n/**\r\n * Gets the number of bits needed to represent the absolute value of this Long.\r\n * @returns {number}\r\n */\r\nLongPrototype.getNumBitsAbs = function getNumBitsAbs() {\r\n if (this.isNegative()) // Unsigned Longs are never negative\r\n return this.eq(MIN_VALUE) ? 64 : this.neg().getNumBitsAbs();\r\n var val = this.high != 0 ? this.high : this.low;\r\n for (var bit = 31; bit > 0; bit--)\r\n if ((val & (1 << bit)) != 0)\r\n break;\r\n return this.high != 0 ? bit + 33 : bit + 1;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals zero.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isZero = function isZero() {\r\n return this.high === 0 && this.low === 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals zero. This is an alias of {@link Long#isZero}.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.eqz = LongPrototype.isZero;\r\n\r\n/**\r\n * Tests if this Long's value is negative.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isNegative = function isNegative() {\r\n return !this.unsigned && this.high < 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is positive.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isPositive = function isPositive() {\r\n return this.unsigned || this.high >= 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is odd.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isOdd = function isOdd() {\r\n return (this.low & 1) === 1;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is even.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isEven = function isEven() {\r\n return (this.low & 1) === 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.equals = function equals(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n if (this.unsigned !== other.unsigned && (this.high >>> 31) === 1 && (other.high >>> 31) === 1)\r\n return false;\r\n return this.high === other.high && this.low === other.low;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals the specified's. This is an alias of {@link Long#equals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.eq = LongPrototype.equals;\r\n\r\n/**\r\n * Tests if this Long's value differs from the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.notEquals = function notEquals(other) {\r\n return !this.eq(/* validates */ other);\r\n};\r\n\r\n/**\r\n * Tests if this Long's value differs from the specified's. This is an alias of {@link Long#notEquals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.neq = LongPrototype.notEquals;\r\n\r\n/**\r\n * Tests if this Long's value differs from the specified's. This is an alias of {@link Long#notEquals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.ne = LongPrototype.notEquals;\r\n\r\n/**\r\n * Tests if this Long's value is less than the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lessThan = function lessThan(other) {\r\n return this.comp(/* validates */ other) < 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is less than the specified's. This is an alias of {@link Long#lessThan}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lt = LongPrototype.lessThan;\r\n\r\n/**\r\n * Tests if this Long's value is less than or equal the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lessThanOrEqual = function lessThanOrEqual(other) {\r\n return this.comp(/* validates */ other) <= 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is less than or equal the specified's. This is an alias of {@link Long#lessThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lte = LongPrototype.lessThanOrEqual;\r\n\r\n/**\r\n * Tests if this Long's value is less than or equal the specified's. This is an alias of {@link Long#lessThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.le = LongPrototype.lessThanOrEqual;\r\n\r\n/**\r\n * Tests if this Long's value is greater than the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.greaterThan = function greaterThan(other) {\r\n return this.comp(/* validates */ other) > 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is greater than the specified's. This is an alias of {@link Long#greaterThan}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.gt = LongPrototype.greaterThan;\r\n\r\n/**\r\n * Tests if this Long's value is greater than or equal the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.greaterThanOrEqual = function greaterThanOrEqual(other) {\r\n return this.comp(/* validates */ other) >= 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is greater than or equal the specified's. This is an alias of {@link Long#greaterThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.gte = LongPrototype.greaterThanOrEqual;\r\n\r\n/**\r\n * Tests if this Long's value is greater than or equal the specified's. This is an alias of {@link Long#greaterThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.ge = LongPrototype.greaterThanOrEqual;\r\n\r\n/**\r\n * Compares this Long's value with the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {number} 0 if they are the same, 1 if the this is greater and -1\r\n * if the given one is greater\r\n */\r\nLongPrototype.compare = function compare(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n if (this.eq(other))\r\n return 0;\r\n var thisNeg = this.isNegative(),\r\n otherNeg = other.isNegative();\r\n if (thisNeg && !otherNeg)\r\n return -1;\r\n if (!thisNeg && otherNeg)\r\n return 1;\r\n // At this point the sign bits are the same\r\n if (!this.unsigned)\r\n return this.sub(other).isNegative() ? -1 : 1;\r\n // Both are positive if at least one is unsigned\r\n return (other.high >>> 0) > (this.high >>> 0) || (other.high === this.high && (other.low >>> 0) > (this.low >>> 0)) ? -1 : 1;\r\n};\r\n\r\n/**\r\n * Compares this Long's value with the specified's. This is an alias of {@link Long#compare}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {number} 0 if they are the same, 1 if the this is greater and -1\r\n * if the given one is greater\r\n */\r\nLongPrototype.comp = LongPrototype.compare;\r\n\r\n/**\r\n * Negates this Long's value.\r\n * @returns {!Long} Negated Long\r\n */\r\nLongPrototype.negate = function negate() {\r\n if (!this.unsigned && this.eq(MIN_VALUE))\r\n return MIN_VALUE;\r\n return this.not().add(ONE);\r\n};\r\n\r\n/**\r\n * Negates this Long's value. This is an alias of {@link Long#negate}.\r\n * @function\r\n * @returns {!Long} Negated Long\r\n */\r\nLongPrototype.neg = LongPrototype.negate;\r\n\r\n/**\r\n * Returns the sum of this and the specified Long.\r\n * @param {!Long|number|string} addend Addend\r\n * @returns {!Long} Sum\r\n */\r\nLongPrototype.add = function add(addend) {\r\n if (!isLong(addend))\r\n addend = fromValue(addend);\r\n\r\n // Divide each number into 4 chunks of 16 bits, and then sum the chunks.\r\n\r\n var a48 = this.high >>> 16;\r\n var a32 = this.high & 0xFFFF;\r\n var a16 = this.low >>> 16;\r\n var a00 = this.low & 0xFFFF;\r\n\r\n var b48 = addend.high >>> 16;\r\n var b32 = addend.high & 0xFFFF;\r\n var b16 = addend.low >>> 16;\r\n var b00 = addend.low & 0xFFFF;\r\n\r\n var c48 = 0, c32 = 0, c16 = 0, c00 = 0;\r\n c00 += a00 + b00;\r\n c16 += c00 >>> 16;\r\n c00 &= 0xFFFF;\r\n c16 += a16 + b16;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c32 += a32 + b32;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c48 += a48 + b48;\r\n c48 &= 0xFFFF;\r\n return fromBits((c16 << 16) | c00, (c48 << 16) | c32, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the difference of this and the specified Long.\r\n * @param {!Long|number|string} subtrahend Subtrahend\r\n * @returns {!Long} Difference\r\n */\r\nLongPrototype.subtract = function subtract(subtrahend) {\r\n if (!isLong(subtrahend))\r\n subtrahend = fromValue(subtrahend);\r\n return this.add(subtrahend.neg());\r\n};\r\n\r\n/**\r\n * Returns the difference of this and the specified Long. This is an alias of {@link Long#subtract}.\r\n * @function\r\n * @param {!Long|number|string} subtrahend Subtrahend\r\n * @returns {!Long} Difference\r\n */\r\nLongPrototype.sub = LongPrototype.subtract;\r\n\r\n/**\r\n * Returns the product of this and the specified Long.\r\n * @param {!Long|number|string} multiplier Multiplier\r\n * @returns {!Long} Product\r\n */\r\nLongPrototype.multiply = function multiply(multiplier) {\r\n if (this.isZero())\r\n return ZERO;\r\n if (!isLong(multiplier))\r\n multiplier = fromValue(multiplier);\r\n\r\n // use wasm support if present\r\n if (wasm) {\r\n var low = wasm.mul(this.low,\r\n this.high,\r\n multiplier.low,\r\n multiplier.high);\r\n return fromBits(low, wasm.get_high(), this.unsigned);\r\n }\r\n\r\n if (multiplier.isZero())\r\n return ZERO;\r\n if (this.eq(MIN_VALUE))\r\n return multiplier.isOdd() ? MIN_VALUE : ZERO;\r\n if (multiplier.eq(MIN_VALUE))\r\n return this.isOdd() ? MIN_VALUE : ZERO;\r\n\r\n if (this.isNegative()) {\r\n if (multiplier.isNegative())\r\n return this.neg().mul(multiplier.neg());\r\n else\r\n return this.neg().mul(multiplier).neg();\r\n } else if (multiplier.isNegative())\r\n return this.mul(multiplier.neg()).neg();\r\n\r\n // If both longs are small, use float multiplication\r\n if (this.lt(TWO_PWR_24) && multiplier.lt(TWO_PWR_24))\r\n return fromNumber(this.toNumber() * multiplier.toNumber(), this.unsigned);\r\n\r\n // Divide each long into 4 chunks of 16 bits, and then add up 4x4 products.\r\n // We can skip products that would overflow.\r\n\r\n var a48 = this.high >>> 16;\r\n var a32 = this.high & 0xFFFF;\r\n var a16 = this.low >>> 16;\r\n var a00 = this.low & 0xFFFF;\r\n\r\n var b48 = multiplier.high >>> 16;\r\n var b32 = multiplier.high & 0xFFFF;\r\n var b16 = multiplier.low >>> 16;\r\n var b00 = multiplier.low & 0xFFFF;\r\n\r\n var c48 = 0, c32 = 0, c16 = 0, c00 = 0;\r\n c00 += a00 * b00;\r\n c16 += c00 >>> 16;\r\n c00 &= 0xFFFF;\r\n c16 += a16 * b00;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c16 += a00 * b16;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c32 += a32 * b00;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c32 += a16 * b16;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c32 += a00 * b32;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48;\r\n c48 &= 0xFFFF;\r\n return fromBits((c16 << 16) | c00, (c48 << 16) | c32, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the product of this and the specified Long. This is an alias of {@link Long#multiply}.\r\n * @function\r\n * @param {!Long|number|string} multiplier Multiplier\r\n * @returns {!Long} Product\r\n */\r\nLongPrototype.mul = LongPrototype.multiply;\r\n\r\n/**\r\n * Returns this Long divided by the specified. The result is signed if this Long is signed or\r\n * unsigned if this Long is unsigned.\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Quotient\r\n */\r\nLongPrototype.divide = function divide(divisor) {\r\n if (!isLong(divisor))\r\n divisor = fromValue(divisor);\r\n if (divisor.isZero())\r\n throw Error('division by zero');\r\n\r\n // use wasm support if present\r\n if (wasm) {\r\n // guard against signed division overflow: the largest\r\n // negative number / -1 would be 1 larger than the largest\r\n // positive number, due to two's complement.\r\n if (!this.unsigned &&\r\n this.high === -0x80000000 &&\r\n divisor.low === -1 && divisor.high === -1) {\r\n // be consistent with non-wasm code path\r\n return this;\r\n }\r\n var low = (this.unsigned ? wasm.div_u : wasm.div_s)(\r\n this.low,\r\n this.high,\r\n divisor.low,\r\n divisor.high\r\n );\r\n return fromBits(low, wasm.get_high(), this.unsigned);\r\n }\r\n\r\n if (this.isZero())\r\n return this.unsigned ? UZERO : ZERO;\r\n var approx, rem, res;\r\n if (!this.unsigned) {\r\n // This section is only relevant for signed longs and is derived from the\r\n // closure library as a whole.\r\n if (this.eq(MIN_VALUE)) {\r\n if (divisor.eq(ONE) || divisor.eq(NEG_ONE))\r\n return MIN_VALUE; // recall that -MIN_VALUE == MIN_VALUE\r\n else if (divisor.eq(MIN_VALUE))\r\n return ONE;\r\n else {\r\n // At this point, we have |other| >= 2, so |this/other| < |MIN_VALUE|.\r\n var halfThis = this.shr(1);\r\n approx = halfThis.div(divisor).shl(1);\r\n if (approx.eq(ZERO)) {\r\n return divisor.isNegative() ? ONE : NEG_ONE;\r\n } else {\r\n rem = this.sub(divisor.mul(approx));\r\n res = approx.add(rem.div(divisor));\r\n return res;\r\n }\r\n }\r\n } else if (divisor.eq(MIN_VALUE))\r\n return this.unsigned ? UZERO : ZERO;\r\n if (this.isNegative()) {\r\n if (divisor.isNegative())\r\n return this.neg().div(divisor.neg());\r\n return this.neg().div(divisor).neg();\r\n } else if (divisor.isNegative())\r\n return this.div(divisor.neg()).neg();\r\n res = ZERO;\r\n } else {\r\n // The algorithm below has not been made for unsigned longs. It's therefore\r\n // required to take special care of the MSB prior to running it.\r\n if (!divisor.unsigned)\r\n divisor = divisor.toUnsigned();\r\n if (divisor.gt(this))\r\n return UZERO;\r\n if (divisor.gt(this.shru(1))) // 15 >>> 1 = 7 ; with divisor = 8 ; true\r\n return UONE;\r\n res = UZERO;\r\n }\r\n\r\n // Repeat the following until the remainder is less than other: find a\r\n // floating-point that approximates remainder / other *from below*, add this\r\n // into the result, and subtract it from the remainder. It is critical that\r\n // the approximate value is less than or equal to the real value so that the\r\n // remainder never becomes negative.\r\n rem = this;\r\n while (rem.gte(divisor)) {\r\n // Approximate the result of division. This may be a little greater or\r\n // smaller than the actual value.\r\n approx = Math.max(1, Math.floor(rem.toNumber() / divisor.toNumber()));\r\n\r\n // We will tweak the approximate result by changing it in the 48-th digit or\r\n // the smallest non-fractional digit, whichever is larger.\r\n var log2 = Math.ceil(Math.log(approx) / Math.LN2),\r\n delta = (log2 <= 48) ? 1 : pow_dbl(2, log2 - 48),\r\n\r\n // Decrease the approximation until it is smaller than the remainder. Note\r\n // that if it is too large, the product overflows and is negative.\r\n approxRes = fromNumber(approx),\r\n approxRem = approxRes.mul(divisor);\r\n while (approxRem.isNegative() || approxRem.gt(rem)) {\r\n approx -= delta;\r\n approxRes = fromNumber(approx, this.unsigned);\r\n approxRem = approxRes.mul(divisor);\r\n }\r\n\r\n // We know the answer can't be zero... and actually, zero would cause\r\n // infinite recursion since we would make no progress.\r\n if (approxRes.isZero())\r\n approxRes = ONE;\r\n\r\n res = res.add(approxRes);\r\n rem = rem.sub(approxRem);\r\n }\r\n return res;\r\n};\r\n\r\n/**\r\n * Returns this Long divided by the specified. This is an alias of {@link Long#divide}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Quotient\r\n */\r\nLongPrototype.div = LongPrototype.divide;\r\n\r\n/**\r\n * Returns this Long modulo the specified.\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\nLongPrototype.modulo = function modulo(divisor) {\r\n if (!isLong(divisor))\r\n divisor = fromValue(divisor);\r\n\r\n // use wasm support if present\r\n if (wasm) {\r\n var low = (this.unsigned ? wasm.rem_u : wasm.rem_s)(\r\n this.low,\r\n this.high,\r\n divisor.low,\r\n divisor.high\r\n );\r\n return fromBits(low, wasm.get_high(), this.unsigned);\r\n }\r\n\r\n return this.sub(this.div(divisor).mul(divisor));\r\n};\r\n\r\n/**\r\n * Returns this Long modulo the specified. This is an alias of {@link Long#modulo}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\nLongPrototype.mod = LongPrototype.modulo;\r\n\r\n/**\r\n * Returns this Long modulo the specified. This is an alias of {@link Long#modulo}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\nLongPrototype.rem = LongPrototype.modulo;\r\n\r\n/**\r\n * Returns the bitwise NOT of this Long.\r\n * @returns {!Long}\r\n */\r\nLongPrototype.not = function not() {\r\n return fromBits(~this.low, ~this.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the bitwise AND of this Long and the specified.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\nLongPrototype.and = function and(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low & other.low, this.high & other.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the bitwise OR of this Long and the specified.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\nLongPrototype.or = function or(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low | other.low, this.high | other.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the bitwise XOR of this Long and the given one.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\nLongPrototype.xor = function xor(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low ^ other.low, this.high ^ other.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns this Long with bits shifted to the left by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shiftLeft = function shiftLeft(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n if ((numBits &= 63) === 0)\r\n return this;\r\n else if (numBits < 32)\r\n return fromBits(this.low << numBits, (this.high << numBits) | (this.low >>> (32 - numBits)), this.unsigned);\r\n else\r\n return fromBits(0, this.low << (numBits - 32), this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns this Long with bits shifted to the left by the given amount. This is an alias of {@link Long#shiftLeft}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shl = LongPrototype.shiftLeft;\r\n\r\n/**\r\n * Returns this Long with bits arithmetically shifted to the right by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shiftRight = function shiftRight(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n if ((numBits &= 63) === 0)\r\n return this;\r\n else if (numBits < 32)\r\n return fromBits((this.low >>> numBits) | (this.high << (32 - numBits)), this.high >> numBits, this.unsigned);\r\n else\r\n return fromBits(this.high >> (numBits - 32), this.high >= 0 ? 0 : -1, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns this Long with bits arithmetically shifted to the right by the given amount. This is an alias of {@link Long#shiftRight}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shr = LongPrototype.shiftRight;\r\n\r\n/**\r\n * Returns this Long with bits logically shifted to the right by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shiftRightUnsigned = function shiftRightUnsigned(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n numBits &= 63;\r\n if (numBits === 0)\r\n return this;\r\n else {\r\n var high = this.high;\r\n if (numBits < 32) {\r\n var low = this.low;\r\n return fromBits((low >>> numBits) | (high << (32 - numBits)), high >>> numBits, this.unsigned);\r\n } else if (numBits === 32)\r\n return fromBits(high, 0, this.unsigned);\r\n else\r\n return fromBits(high >>> (numBits - 32), 0, this.unsigned);\r\n }\r\n};\r\n\r\n/**\r\n * Returns this Long with bits logically shifted to the right by the given amount. This is an alias of {@link Long#shiftRightUnsigned}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shru = LongPrototype.shiftRightUnsigned;\r\n\r\n/**\r\n * Returns this Long with bits logically shifted to the right by the given amount. This is an alias of {@link Long#shiftRightUnsigned}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shr_u = LongPrototype.shiftRightUnsigned;\r\n\r\n/**\r\n * Converts this Long to signed.\r\n * @returns {!Long} Signed long\r\n */\r\nLongPrototype.toSigned = function toSigned() {\r\n if (!this.unsigned)\r\n return this;\r\n return fromBits(this.low, this.high, false);\r\n};\r\n\r\n/**\r\n * Converts this Long to unsigned.\r\n * @returns {!Long} Unsigned long\r\n */\r\nLongPrototype.toUnsigned = function toUnsigned() {\r\n if (this.unsigned)\r\n return this;\r\n return fromBits(this.low, this.high, true);\r\n};\r\n\r\n/**\r\n * Converts this Long to its byte representation.\r\n * @param {boolean=} le Whether little or big endian, defaults to big endian\r\n * @returns {!Array.} Byte representation\r\n */\r\nLongPrototype.toBytes = function toBytes(le) {\r\n return le ? this.toBytesLE() : this.toBytesBE();\r\n};\r\n\r\n/**\r\n * Converts this Long to its little endian byte representation.\r\n * @returns {!Array.} Little endian byte representation\r\n */\r\nLongPrototype.toBytesLE = function toBytesLE() {\r\n var hi = this.high,\r\n lo = this.low;\r\n return [\r\n lo & 0xff,\r\n lo >>> 8 & 0xff,\r\n lo >>> 16 & 0xff,\r\n lo >>> 24 ,\r\n hi & 0xff,\r\n hi >>> 8 & 0xff,\r\n hi >>> 16 & 0xff,\r\n hi >>> 24\r\n ];\r\n};\r\n\r\n/**\r\n * Converts this Long to its big endian byte representation.\r\n * @returns {!Array.} Big endian byte representation\r\n */\r\nLongPrototype.toBytesBE = function toBytesBE() {\r\n var hi = this.high,\r\n lo = this.low;\r\n return [\r\n hi >>> 24 ,\r\n hi >>> 16 & 0xff,\r\n hi >>> 8 & 0xff,\r\n hi & 0xff,\r\n lo >>> 24 ,\r\n lo >>> 16 & 0xff,\r\n lo >>> 8 & 0xff,\r\n lo & 0xff\r\n ];\r\n};\r\n\r\n/**\r\n * Creates a Long from its byte representation.\r\n * @param {!Array.} bytes Byte representation\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @param {boolean=} le Whether little or big endian, defaults to big endian\r\n * @returns {Long} The corresponding Long value\r\n */\r\nLong.fromBytes = function fromBytes(bytes, unsigned, le) {\r\n return le ? Long.fromBytesLE(bytes, unsigned) : Long.fromBytesBE(bytes, unsigned);\r\n};\r\n\r\n/**\r\n * Creates a Long from its little endian byte representation.\r\n * @param {!Array.} bytes Little endian byte representation\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {Long} The corresponding Long value\r\n */\r\nLong.fromBytesLE = function fromBytesLE(bytes, unsigned) {\r\n return new Long(\r\n bytes[0] |\r\n bytes[1] << 8 |\r\n bytes[2] << 16 |\r\n bytes[3] << 24,\r\n bytes[4] |\r\n bytes[5] << 8 |\r\n bytes[6] << 16 |\r\n bytes[7] << 24,\r\n unsigned\r\n );\r\n};\r\n\r\n/**\r\n * Creates a Long from its big endian byte representation.\r\n * @param {!Array.} bytes Big endian byte representation\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {Long} The corresponding Long value\r\n */\r\nLong.fromBytesBE = function fromBytesBE(bytes, unsigned) {\r\n return new Long(\r\n bytes[4] << 24 |\r\n bytes[5] << 16 |\r\n bytes[6] << 8 |\r\n bytes[7],\r\n bytes[0] << 24 |\r\n bytes[1] << 16 |\r\n bytes[2] << 8 |\r\n bytes[3],\r\n unsigned\r\n );\r\n};\r\n","'use strict'\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\nvar Buffer = require('safe-buffer').Buffer\n\nvar ARRAY16 = new Array(16)\n\nfunction MD5 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n}\n\ninherits(MD5, HashBase)\n\nMD5.prototype._update = function () {\n var M = ARRAY16\n for (var i = 0; i < 16; ++i) M[i] = this._block.readInt32LE(i * 4)\n\n var a = this._a\n var b = this._b\n var c = this._c\n var d = this._d\n\n a = fnF(a, b, c, d, M[0], 0xd76aa478, 7)\n d = fnF(d, a, b, c, M[1], 0xe8c7b756, 12)\n c = fnF(c, d, a, b, M[2], 0x242070db, 17)\n b = fnF(b, c, d, a, M[3], 0xc1bdceee, 22)\n a = fnF(a, b, c, d, M[4], 0xf57c0faf, 7)\n d = fnF(d, a, b, c, M[5], 0x4787c62a, 12)\n c = fnF(c, d, a, b, M[6], 0xa8304613, 17)\n b = fnF(b, c, d, a, M[7], 0xfd469501, 22)\n a = fnF(a, b, c, d, M[8], 0x698098d8, 7)\n d = fnF(d, a, b, c, M[9], 0x8b44f7af, 12)\n c = fnF(c, d, a, b, M[10], 0xffff5bb1, 17)\n b = fnF(b, c, d, a, M[11], 0x895cd7be, 22)\n a = fnF(a, b, c, d, M[12], 0x6b901122, 7)\n d = fnF(d, a, b, c, M[13], 0xfd987193, 12)\n c = fnF(c, d, a, b, M[14], 0xa679438e, 17)\n b = fnF(b, c, d, a, M[15], 0x49b40821, 22)\n\n a = fnG(a, b, c, d, M[1], 0xf61e2562, 5)\n d = fnG(d, a, b, c, M[6], 0xc040b340, 9)\n c = fnG(c, d, a, b, M[11], 0x265e5a51, 14)\n b = fnG(b, c, d, a, M[0], 0xe9b6c7aa, 20)\n a = fnG(a, b, c, d, M[5], 0xd62f105d, 5)\n d = fnG(d, a, b, c, M[10], 0x02441453, 9)\n c = fnG(c, d, a, b, M[15], 0xd8a1e681, 14)\n b = fnG(b, c, d, a, M[4], 0xe7d3fbc8, 20)\n a = fnG(a, b, c, d, M[9], 0x21e1cde6, 5)\n d = fnG(d, a, b, c, M[14], 0xc33707d6, 9)\n c = fnG(c, d, a, b, M[3], 0xf4d50d87, 14)\n b = fnG(b, c, d, a, M[8], 0x455a14ed, 20)\n a = fnG(a, b, c, d, M[13], 0xa9e3e905, 5)\n d = fnG(d, a, b, c, M[2], 0xfcefa3f8, 9)\n c = fnG(c, d, a, b, M[7], 0x676f02d9, 14)\n b = fnG(b, c, d, a, M[12], 0x8d2a4c8a, 20)\n\n a = fnH(a, b, c, d, M[5], 0xfffa3942, 4)\n d = fnH(d, a, b, c, M[8], 0x8771f681, 11)\n c = fnH(c, d, a, b, M[11], 0x6d9d6122, 16)\n b = fnH(b, c, d, a, M[14], 0xfde5380c, 23)\n a = fnH(a, b, c, d, M[1], 0xa4beea44, 4)\n d = fnH(d, a, b, c, M[4], 0x4bdecfa9, 11)\n c = fnH(c, d, a, b, M[7], 0xf6bb4b60, 16)\n b = fnH(b, c, d, a, M[10], 0xbebfbc70, 23)\n a = fnH(a, b, c, d, M[13], 0x289b7ec6, 4)\n d = fnH(d, a, b, c, M[0], 0xeaa127fa, 11)\n c = fnH(c, d, a, b, M[3], 0xd4ef3085, 16)\n b = fnH(b, c, d, a, M[6], 0x04881d05, 23)\n a = fnH(a, b, c, d, M[9], 0xd9d4d039, 4)\n d = fnH(d, a, b, c, M[12], 0xe6db99e5, 11)\n c = fnH(c, d, a, b, M[15], 0x1fa27cf8, 16)\n b = fnH(b, c, d, a, M[2], 0xc4ac5665, 23)\n\n a = fnI(a, b, c, d, M[0], 0xf4292244, 6)\n d = fnI(d, a, b, c, M[7], 0x432aff97, 10)\n c = fnI(c, d, a, b, M[14], 0xab9423a7, 15)\n b = fnI(b, c, d, a, M[5], 0xfc93a039, 21)\n a = fnI(a, b, c, d, M[12], 0x655b59c3, 6)\n d = fnI(d, a, b, c, M[3], 0x8f0ccc92, 10)\n c = fnI(c, d, a, b, M[10], 0xffeff47d, 15)\n b = fnI(b, c, d, a, M[1], 0x85845dd1, 21)\n a = fnI(a, b, c, d, M[8], 0x6fa87e4f, 6)\n d = fnI(d, a, b, c, M[15], 0xfe2ce6e0, 10)\n c = fnI(c, d, a, b, M[6], 0xa3014314, 15)\n b = fnI(b, c, d, a, M[13], 0x4e0811a1, 21)\n a = fnI(a, b, c, d, M[4], 0xf7537e82, 6)\n d = fnI(d, a, b, c, M[11], 0xbd3af235, 10)\n c = fnI(c, d, a, b, M[2], 0x2ad7d2bb, 15)\n b = fnI(b, c, d, a, M[9], 0xeb86d391, 21)\n\n this._a = (this._a + a) | 0\n this._b = (this._b + b) | 0\n this._c = (this._c + c) | 0\n this._d = (this._d + d) | 0\n}\n\nMD5.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.allocUnsafe(16)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fnF (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnG (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnH (a, b, c, d, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnI (a, b, c, d, m, k, s) {\n return (rotl((a + ((c ^ (b | (~d)))) + m + k) | 0, s) + b) | 0\n}\n\nmodule.exports = MD5\n","var bn = require('bn.js');\nvar brorand = require('brorand');\n\nfunction MillerRabin(rand) {\n this.rand = rand || new brorand.Rand();\n}\nmodule.exports = MillerRabin;\n\nMillerRabin.create = function create(rand) {\n return new MillerRabin(rand);\n};\n\nMillerRabin.prototype._randbelow = function _randbelow(n) {\n var len = n.bitLength();\n var min_bytes = Math.ceil(len / 8);\n\n // Generage random bytes until a number less than n is found.\n // This ensures that 0..n-1 have an equal probability of being selected.\n do\n var a = new bn(this.rand.generate(min_bytes));\n while (a.cmp(n) >= 0);\n\n return a;\n};\n\nMillerRabin.prototype._randrange = function _randrange(start, stop) {\n // Generate a random number greater than or equal to start and less than stop.\n var size = stop.sub(start);\n return start.add(this._randbelow(size));\n};\n\nMillerRabin.prototype.test = function test(n, k, cb) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n var prime = true;\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n if (cb)\n cb(a);\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return false;\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s)\n return false;\n }\n\n return prime;\n};\n\nMillerRabin.prototype.getDivisor = function getDivisor(n, k) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n\n var g = n.gcd(a);\n if (g.cmpn(1) !== 0)\n return g;\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return x.fromRed().subn(1).gcd(n);\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s) {\n x = x.redSqr();\n return x.fromRed().subn(1).gcd(n);\n }\n }\n\n return false;\n};\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","module.exports = assert;\n\nfunction assert(val, msg) {\n if (!val)\n throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r)\n throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));\n};\n","'use strict';\n\nvar utils = exports;\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg !== 'string') {\n for (var i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n return res;\n }\n if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (var i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n } else {\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n var hi = c >> 8;\n var lo = c & 0xff;\n if (hi)\n res.push(hi, lo);\n else\n res.push(lo);\n }\n }\n return res;\n}\nutils.toArray = toArray;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nutils.zero2 = zero2;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nutils.toHex = toHex;\n\nutils.encode = function encode(arr, enc) {\n if (enc === 'hex')\n return toHex(arr);\n else\n return arr;\n};\n","// from https://github.com/indutny/self-signed/blob/gh-pages/lib/asn1.js\n// Fedor, you are amazing.\n'use strict'\n\nvar asn1 = require('asn1.js')\n\nexports.certificate = require('./certificate')\n\nvar RSAPrivateKey = asn1.define('RSAPrivateKey', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('modulus').int(),\n this.key('publicExponent').int(),\n this.key('privateExponent').int(),\n this.key('prime1').int(),\n this.key('prime2').int(),\n this.key('exponent1').int(),\n this.key('exponent2').int(),\n this.key('coefficient').int()\n )\n})\nexports.RSAPrivateKey = RSAPrivateKey\n\nvar RSAPublicKey = asn1.define('RSAPublicKey', function () {\n this.seq().obj(\n this.key('modulus').int(),\n this.key('publicExponent').int()\n )\n})\nexports.RSAPublicKey = RSAPublicKey\n\nvar PublicKey = asn1.define('SubjectPublicKeyInfo', function () {\n this.seq().obj(\n this.key('algorithm').use(AlgorithmIdentifier),\n this.key('subjectPublicKey').bitstr()\n )\n})\nexports.PublicKey = PublicKey\n\nvar AlgorithmIdentifier = asn1.define('AlgorithmIdentifier', function () {\n this.seq().obj(\n this.key('algorithm').objid(),\n this.key('none').null_().optional(),\n this.key('curve').objid().optional(),\n this.key('params').seq().obj(\n this.key('p').int(),\n this.key('q').int(),\n this.key('g').int()\n ).optional()\n )\n})\n\nvar PrivateKeyInfo = asn1.define('PrivateKeyInfo', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('algorithm').use(AlgorithmIdentifier),\n this.key('subjectPrivateKey').octstr()\n )\n})\nexports.PrivateKey = PrivateKeyInfo\nvar EncryptedPrivateKeyInfo = asn1.define('EncryptedPrivateKeyInfo', function () {\n this.seq().obj(\n this.key('algorithm').seq().obj(\n this.key('id').objid(),\n this.key('decrypt').seq().obj(\n this.key('kde').seq().obj(\n this.key('id').objid(),\n this.key('kdeparams').seq().obj(\n this.key('salt').octstr(),\n this.key('iters').int()\n )\n ),\n this.key('cipher').seq().obj(\n this.key('algo').objid(),\n this.key('iv').octstr()\n )\n )\n ),\n this.key('subjectPrivateKey').octstr()\n )\n})\n\nexports.EncryptedPrivateKey = EncryptedPrivateKeyInfo\n\nvar DSAPrivateKey = asn1.define('DSAPrivateKey', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('p').int(),\n this.key('q').int(),\n this.key('g').int(),\n this.key('pub_key').int(),\n this.key('priv_key').int()\n )\n})\nexports.DSAPrivateKey = DSAPrivateKey\n\nexports.DSAparam = asn1.define('DSAparam', function () {\n this.int()\n})\n\nvar ECPrivateKey = asn1.define('ECPrivateKey', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('privateKey').octstr(),\n this.key('parameters').optional().explicit(0).use(ECParameters),\n this.key('publicKey').optional().explicit(1).bitstr()\n )\n})\nexports.ECPrivateKey = ECPrivateKey\n\nvar ECParameters = asn1.define('ECParameters', function () {\n this.choice({\n namedCurve: this.objid()\n })\n})\n\nexports.signature = asn1.define('signature', function () {\n this.seq().obj(\n this.key('r').int(),\n this.key('s').int()\n )\n})\n","// from https://github.com/Rantanen/node-dtls/blob/25a7dc861bda38cfeac93a723500eea4f0ac2e86/Certificate.js\n// thanks to @Rantanen\n\n'use strict'\n\nvar asn = require('asn1.js')\n\nvar Time = asn.define('Time', function () {\n this.choice({\n utcTime: this.utctime(),\n generalTime: this.gentime()\n })\n})\n\nvar AttributeTypeValue = asn.define('AttributeTypeValue', function () {\n this.seq().obj(\n this.key('type').objid(),\n this.key('value').any()\n )\n})\n\nvar AlgorithmIdentifier = asn.define('AlgorithmIdentifier', function () {\n this.seq().obj(\n this.key('algorithm').objid(),\n this.key('parameters').optional(),\n this.key('curve').objid().optional()\n )\n})\n\nvar SubjectPublicKeyInfo = asn.define('SubjectPublicKeyInfo', function () {\n this.seq().obj(\n this.key('algorithm').use(AlgorithmIdentifier),\n this.key('subjectPublicKey').bitstr()\n )\n})\n\nvar RelativeDistinguishedName = asn.define('RelativeDistinguishedName', function () {\n this.setof(AttributeTypeValue)\n})\n\nvar RDNSequence = asn.define('RDNSequence', function () {\n this.seqof(RelativeDistinguishedName)\n})\n\nvar Name = asn.define('Name', function () {\n this.choice({\n rdnSequence: this.use(RDNSequence)\n })\n})\n\nvar Validity = asn.define('Validity', function () {\n this.seq().obj(\n this.key('notBefore').use(Time),\n this.key('notAfter').use(Time)\n )\n})\n\nvar Extension = asn.define('Extension', function () {\n this.seq().obj(\n this.key('extnID').objid(),\n this.key('critical').bool().def(false),\n this.key('extnValue').octstr()\n )\n})\n\nvar TBSCertificate = asn.define('TBSCertificate', function () {\n this.seq().obj(\n this.key('version').explicit(0).int().optional(),\n this.key('serialNumber').int(),\n this.key('signature').use(AlgorithmIdentifier),\n this.key('issuer').use(Name),\n this.key('validity').use(Validity),\n this.key('subject').use(Name),\n this.key('subjectPublicKeyInfo').use(SubjectPublicKeyInfo),\n this.key('issuerUniqueID').implicit(1).bitstr().optional(),\n this.key('subjectUniqueID').implicit(2).bitstr().optional(),\n this.key('extensions').explicit(3).seqof(Extension).optional()\n )\n})\n\nvar X509Certificate = asn.define('X509Certificate', function () {\n this.seq().obj(\n this.key('tbsCertificate').use(TBSCertificate),\n this.key('signatureAlgorithm').use(AlgorithmIdentifier),\n this.key('signatureValue').bitstr()\n )\n})\n\nmodule.exports = X509Certificate\n","// adapted from https://github.com/apatil/pemstrip\nvar findProc = /Proc-Type: 4,ENCRYPTED[\\n\\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\\n\\r]+([0-9A-z\\n\\r+/=]+)[\\n\\r]+/m\nvar startRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m\nvar fullRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\\n\\r+/=]+)-----END \\1-----$/m\nvar evp = require('evp_bytestokey')\nvar ciphers = require('browserify-aes')\nvar Buffer = require('safe-buffer').Buffer\nmodule.exports = function (okey, password) {\n var key = okey.toString()\n var match = key.match(findProc)\n var decrypted\n if (!match) {\n var match2 = key.match(fullRegex)\n decrypted = Buffer.from(match2[2].replace(/[\\r\\n]/g, ''), 'base64')\n } else {\n var suite = 'aes' + match[1]\n var iv = Buffer.from(match[2], 'hex')\n var cipherText = Buffer.from(match[3].replace(/[\\r\\n]/g, ''), 'base64')\n var cipherKey = evp(password, iv.slice(0, 8), parseInt(match[1], 10)).key\n var out = []\n var cipher = ciphers.createDecipheriv(suite, cipherKey, iv)\n out.push(cipher.update(cipherText))\n out.push(cipher.final())\n decrypted = Buffer.concat(out)\n }\n var tag = key.match(startRegex)[1]\n return {\n tag: tag,\n data: decrypted\n }\n}\n","var asn1 = require('./asn1')\nvar aesid = require('./aesid.json')\nvar fixProc = require('./fixProc')\nvar ciphers = require('browserify-aes')\nvar compat = require('pbkdf2')\nvar Buffer = require('safe-buffer').Buffer\nmodule.exports = parseKeys\n\nfunction parseKeys (buffer) {\n var password\n if (typeof buffer === 'object' && !Buffer.isBuffer(buffer)) {\n password = buffer.passphrase\n buffer = buffer.key\n }\n if (typeof buffer === 'string') {\n buffer = Buffer.from(buffer)\n }\n\n var stripped = fixProc(buffer, password)\n\n var type = stripped.tag\n var data = stripped.data\n var subtype, ndata\n switch (type) {\n case 'CERTIFICATE':\n ndata = asn1.certificate.decode(data, 'der').tbsCertificate.subjectPublicKeyInfo\n // falls through\n case 'PUBLIC KEY':\n if (!ndata) {\n ndata = asn1.PublicKey.decode(data, 'der')\n }\n subtype = ndata.algorithm.algorithm.join('.')\n switch (subtype) {\n case '1.2.840.113549.1.1.1':\n return asn1.RSAPublicKey.decode(ndata.subjectPublicKey.data, 'der')\n case '1.2.840.10045.2.1':\n ndata.subjectPrivateKey = ndata.subjectPublicKey\n return {\n type: 'ec',\n data: ndata\n }\n case '1.2.840.10040.4.1':\n ndata.algorithm.params.pub_key = asn1.DSAparam.decode(ndata.subjectPublicKey.data, 'der')\n return {\n type: 'dsa',\n data: ndata.algorithm.params\n }\n default: throw new Error('unknown key id ' + subtype)\n }\n // throw new Error('unknown key type ' + type)\n case 'ENCRYPTED PRIVATE KEY':\n data = asn1.EncryptedPrivateKey.decode(data, 'der')\n data = decrypt(data, password)\n // falls through\n case 'PRIVATE KEY':\n ndata = asn1.PrivateKey.decode(data, 'der')\n subtype = ndata.algorithm.algorithm.join('.')\n switch (subtype) {\n case '1.2.840.113549.1.1.1':\n return asn1.RSAPrivateKey.decode(ndata.subjectPrivateKey, 'der')\n case '1.2.840.10045.2.1':\n return {\n curve: ndata.algorithm.curve,\n privateKey: asn1.ECPrivateKey.decode(ndata.subjectPrivateKey, 'der').privateKey\n }\n case '1.2.840.10040.4.1':\n ndata.algorithm.params.priv_key = asn1.DSAparam.decode(ndata.subjectPrivateKey, 'der')\n return {\n type: 'dsa',\n params: ndata.algorithm.params\n }\n default: throw new Error('unknown key id ' + subtype)\n }\n // throw new Error('unknown key type ' + type)\n case 'RSA PUBLIC KEY':\n return asn1.RSAPublicKey.decode(data, 'der')\n case 'RSA PRIVATE KEY':\n return asn1.RSAPrivateKey.decode(data, 'der')\n case 'DSA PRIVATE KEY':\n return {\n type: 'dsa',\n params: asn1.DSAPrivateKey.decode(data, 'der')\n }\n case 'EC PRIVATE KEY':\n data = asn1.ECPrivateKey.decode(data, 'der')\n return {\n curve: data.parameters.value,\n privateKey: data.privateKey\n }\n default: throw new Error('unknown key type ' + type)\n }\n}\nparseKeys.signature = asn1.signature\nfunction decrypt (data, password) {\n var salt = data.algorithm.decrypt.kde.kdeparams.salt\n var iters = parseInt(data.algorithm.decrypt.kde.kdeparams.iters.toString(), 10)\n var algo = aesid[data.algorithm.decrypt.cipher.algo.join('.')]\n var iv = data.algorithm.decrypt.cipher.iv\n var cipherText = data.subjectPrivateKey\n var keylen = parseInt(algo.split('-')[1], 10) / 8\n var key = compat.pbkdf2Sync(password, salt, iters, keylen, 'sha1')\n var cipher = ciphers.createDecipheriv(algo, key, iv)\n var out = []\n out.push(cipher.update(cipherText))\n out.push(cipher.final())\n return Buffer.concat(out)\n}\n","exports.pbkdf2 = require('./lib/async')\nexports.pbkdf2Sync = require('./lib/sync')\n","var Buffer = require('safe-buffer').Buffer\n\nvar checkParameters = require('./precondition')\nvar defaultEncoding = require('./default-encoding')\nvar sync = require('./sync')\nvar toBuffer = require('./to-buffer')\n\nvar ZERO_BUF\nvar subtle = global.crypto && global.crypto.subtle\nvar toBrowser = {\n sha: 'SHA-1',\n 'sha-1': 'SHA-1',\n sha1: 'SHA-1',\n sha256: 'SHA-256',\n 'sha-256': 'SHA-256',\n sha384: 'SHA-384',\n 'sha-384': 'SHA-384',\n 'sha-512': 'SHA-512',\n sha512: 'SHA-512'\n}\nvar checks = []\nfunction checkNative (algo) {\n if (global.process && !global.process.browser) {\n return Promise.resolve(false)\n }\n if (!subtle || !subtle.importKey || !subtle.deriveBits) {\n return Promise.resolve(false)\n }\n if (checks[algo] !== undefined) {\n return checks[algo]\n }\n ZERO_BUF = ZERO_BUF || Buffer.alloc(8)\n var prom = browserPbkdf2(ZERO_BUF, ZERO_BUF, 10, 128, algo)\n .then(function () {\n return true\n }).catch(function () {\n return false\n })\n checks[algo] = prom\n return prom\n}\nvar nextTick\nfunction getNextTick () {\n if (nextTick) {\n return nextTick\n }\n if (global.process && global.process.nextTick) {\n nextTick = global.process.nextTick\n } else if (global.queueMicrotask) {\n nextTick = global.queueMicrotask\n } else if (global.setImmediate) {\n nextTick = global.setImmediate\n } else {\n nextTick = global.setTimeout\n }\n return nextTick\n}\nfunction browserPbkdf2 (password, salt, iterations, length, algo) {\n return subtle.importKey(\n 'raw', password, { name: 'PBKDF2' }, false, ['deriveBits']\n ).then(function (key) {\n return subtle.deriveBits({\n name: 'PBKDF2',\n salt: salt,\n iterations: iterations,\n hash: {\n name: algo\n }\n }, key, length << 3)\n }).then(function (res) {\n return Buffer.from(res)\n })\n}\n\nfunction resolvePromise (promise, callback) {\n promise.then(function (out) {\n getNextTick()(function () {\n callback(null, out)\n })\n }, function (e) {\n getNextTick()(function () {\n callback(e)\n })\n })\n}\nmodule.exports = function (password, salt, iterations, keylen, digest, callback) {\n if (typeof digest === 'function') {\n callback = digest\n digest = undefined\n }\n\n digest = digest || 'sha1'\n var algo = toBrowser[digest.toLowerCase()]\n\n if (!algo || typeof global.Promise !== 'function') {\n getNextTick()(function () {\n var out\n try {\n out = sync(password, salt, iterations, keylen, digest)\n } catch (e) {\n return callback(e)\n }\n callback(null, out)\n })\n return\n }\n\n checkParameters(iterations, keylen)\n password = toBuffer(password, defaultEncoding, 'Password')\n salt = toBuffer(salt, defaultEncoding, 'Salt')\n if (typeof callback !== 'function') throw new Error('No callback provided to pbkdf2')\n\n resolvePromise(checkNative(algo).then(function (resp) {\n if (resp) return browserPbkdf2(password, salt, iterations, keylen, algo)\n\n return sync(password, salt, iterations, keylen, digest)\n }), callback)\n}\n","var defaultEncoding\n/* istanbul ignore next */\nif (global.process && global.process.browser) {\n defaultEncoding = 'utf-8'\n} else if (global.process && global.process.version) {\n var pVersionMajor = parseInt(process.version.split('.')[0].slice(1), 10)\n\n defaultEncoding = pVersionMajor >= 6 ? 'utf-8' : 'binary'\n} else {\n defaultEncoding = 'utf-8'\n}\nmodule.exports = defaultEncoding\n","var MAX_ALLOC = Math.pow(2, 30) - 1 // default in iojs\n\nmodule.exports = function (iterations, keylen) {\n if (typeof iterations !== 'number') {\n throw new TypeError('Iterations not a number')\n }\n\n if (iterations < 0) {\n throw new TypeError('Bad iterations')\n }\n\n if (typeof keylen !== 'number') {\n throw new TypeError('Key length not a number')\n }\n\n if (keylen < 0 || keylen > MAX_ALLOC || keylen !== keylen) { /* eslint no-self-compare: 0 */\n throw new TypeError('Bad key length')\n }\n}\n","var md5 = require('create-hash/md5')\nvar RIPEMD160 = require('ripemd160')\nvar sha = require('sha.js')\nvar Buffer = require('safe-buffer').Buffer\n\nvar checkParameters = require('./precondition')\nvar defaultEncoding = require('./default-encoding')\nvar toBuffer = require('./to-buffer')\n\nvar ZEROS = Buffer.alloc(128)\nvar sizes = {\n md5: 16,\n sha1: 20,\n sha224: 28,\n sha256: 32,\n sha384: 48,\n sha512: 64,\n rmd160: 20,\n ripemd160: 20\n}\n\nfunction Hmac (alg, key, saltLen) {\n var hash = getDigest(alg)\n var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64\n\n if (key.length > blocksize) {\n key = hash(key)\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = Buffer.allocUnsafe(blocksize + sizes[alg])\n var opad = Buffer.allocUnsafe(blocksize + sizes[alg])\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n\n var ipad1 = Buffer.allocUnsafe(blocksize + saltLen + 4)\n ipad.copy(ipad1, 0, 0, blocksize)\n this.ipad1 = ipad1\n this.ipad2 = ipad\n this.opad = opad\n this.alg = alg\n this.blocksize = blocksize\n this.hash = hash\n this.size = sizes[alg]\n}\n\nHmac.prototype.run = function (data, ipad) {\n data.copy(ipad, this.blocksize)\n var h = this.hash(ipad)\n h.copy(this.opad, this.blocksize)\n return this.hash(this.opad)\n}\n\nfunction getDigest (alg) {\n function shaFunc (data) {\n return sha(alg).update(data).digest()\n }\n function rmd160Func (data) {\n return new RIPEMD160().update(data).digest()\n }\n\n if (alg === 'rmd160' || alg === 'ripemd160') return rmd160Func\n if (alg === 'md5') return md5\n return shaFunc\n}\n\nfunction pbkdf2 (password, salt, iterations, keylen, digest) {\n checkParameters(iterations, keylen)\n password = toBuffer(password, defaultEncoding, 'Password')\n salt = toBuffer(salt, defaultEncoding, 'Salt')\n\n digest = digest || 'sha1'\n\n var hmac = new Hmac(digest, password, salt.length)\n\n var DK = Buffer.allocUnsafe(keylen)\n var block1 = Buffer.allocUnsafe(salt.length + 4)\n salt.copy(block1, 0, 0, salt.length)\n\n var destPos = 0\n var hLen = sizes[digest]\n var l = Math.ceil(keylen / hLen)\n\n for (var i = 1; i <= l; i++) {\n block1.writeUInt32BE(i, salt.length)\n\n var T = hmac.run(block1, hmac.ipad1)\n var U = T\n\n for (var j = 1; j < iterations; j++) {\n U = hmac.run(U, hmac.ipad2)\n for (var k = 0; k < hLen; k++) T[k] ^= U[k]\n }\n\n T.copy(DK, destPos)\n destPos += hLen\n }\n\n return DK\n}\n\nmodule.exports = pbkdf2\n","var Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function (thing, encoding, name) {\n if (Buffer.isBuffer(thing)) {\n return thing\n } else if (typeof thing === 'string') {\n return Buffer.from(thing, encoding)\n } else if (ArrayBuffer.isView(thing)) {\n return Buffer.from(thing.buffer)\n } else {\n throw new TypeError(name + ' must be a string, a Buffer, a typed array or a DataView')\n }\n}\n","// minimal library entry point.\n\n\"use strict\";\nmodule.exports = require(\"./src/index-minimal\");\n","\"use strict\";\nvar protobuf = exports;\n\n/**\n * Build type, one of `\"full\"`, `\"light\"` or `\"minimal\"`.\n * @name build\n * @type {string}\n * @const\n */\nprotobuf.build = \"minimal\";\n\n// Serialization\nprotobuf.Writer = require(\"./writer\");\nprotobuf.BufferWriter = require(\"./writer_buffer\");\nprotobuf.Reader = require(\"./reader\");\nprotobuf.BufferReader = require(\"./reader_buffer\");\n\n// Utility\nprotobuf.util = require(\"./util/minimal\");\nprotobuf.rpc = require(\"./rpc\");\nprotobuf.roots = require(\"./roots\");\nprotobuf.configure = configure;\n\n/* istanbul ignore next */\n/**\n * Reconfigures the library according to the environment.\n * @returns {undefined}\n */\nfunction configure() {\n protobuf.util._configure();\n protobuf.Writer._configure(protobuf.BufferWriter);\n protobuf.Reader._configure(protobuf.BufferReader);\n}\n\n// Set up buffer utility according to the environment\nconfigure();\n","\"use strict\";\nmodule.exports = Reader;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferReader; // cyclic\n\nvar LongBits = util.LongBits,\n utf8 = util.utf8;\n\n/* istanbul ignore next */\nfunction indexOutOfRange(reader, writeLength) {\n return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\n}\n\n/**\n * Constructs a new reader instance using the specified buffer.\n * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n * @param {Uint8Array} buffer Buffer to read from\n */\nfunction Reader(buffer) {\n\n /**\n * Read buffer.\n * @type {Uint8Array}\n */\n this.buf = buffer;\n\n /**\n * Read buffer position.\n * @type {number}\n */\n this.pos = 0;\n\n /**\n * Read buffer length.\n * @type {number}\n */\n this.len = buffer.length;\n}\n\nvar create_array = typeof Uint8Array !== \"undefined\"\n ? function create_typed_array(buffer) {\n if (buffer instanceof Uint8Array || Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n }\n /* istanbul ignore next */\n : function create_array(buffer) {\n if (Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n };\n\nvar create = function create() {\n return util.Buffer\n ? function create_buffer_setup(buffer) {\n return (Reader.create = function create_buffer(buffer) {\n return util.Buffer.isBuffer(buffer)\n ? new BufferReader(buffer)\n /* istanbul ignore next */\n : create_array(buffer);\n })(buffer);\n }\n /* istanbul ignore next */\n : create_array;\n};\n\n/**\n * Creates a new reader using the specified buffer.\n * @function\n * @param {Uint8Array|Buffer} buffer Buffer to read from\n * @returns {Reader|BufferReader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader}\n * @throws {Error} If `buffer` is not a valid buffer\n */\nReader.create = create();\n\nReader.prototype._slice = util.Array.prototype.subarray || /* istanbul ignore next */ util.Array.prototype.slice;\n\n/**\n * Reads a varint as an unsigned 32 bit value.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.uint32 = (function read_uint32_setup() {\n var value = 4294967295; // optimizer type-hint, tends to deopt otherwise (?!)\n return function read_uint32() {\n value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value;\n\n /* istanbul ignore if */\n if ((this.pos += 5) > this.len) {\n this.pos = this.len;\n throw indexOutOfRange(this, 10);\n }\n return value;\n };\n})();\n\n/**\n * Reads a varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.int32 = function read_int32() {\n return this.uint32() | 0;\n};\n\n/**\n * Reads a zig-zag encoded varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.sint32 = function read_sint32() {\n var value = this.uint32();\n return value >>> 1 ^ -(value & 1) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readLongVarint() {\n // tends to deopt with local vars for octet etc.\n var bits = new LongBits(0, 0);\n var i = 0;\n if (this.len - this.pos > 4) { // fast route (lo)\n for (; i < 4; ++i) {\n // 1st..4th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 5th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n i = 0;\n } else {\n for (; i < 3; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 1st..3th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 4th\n bits.lo = (bits.lo | (this.buf[this.pos++] & 127) << i * 7) >>> 0;\n return bits;\n }\n if (this.len - this.pos > 4) { // fast route (hi)\n for (; i < 5; ++i) {\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n } else {\n for (; i < 5; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n }\n /* istanbul ignore next */\n throw Error(\"invalid varint encoding\");\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads a varint as a signed 64 bit value.\n * @name Reader#int64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as an unsigned 64 bit value.\n * @name Reader#uint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a zig-zag encoded varint as a signed 64 bit value.\n * @name Reader#sint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as a boolean.\n * @returns {boolean} Value read\n */\nReader.prototype.bool = function read_bool() {\n return this.uint32() !== 0;\n};\n\nfunction readFixed32_end(buf, end) { // note that this uses `end`, not `pos`\n return (buf[end - 4]\n | buf[end - 3] << 8\n | buf[end - 2] << 16\n | buf[end - 1] << 24) >>> 0;\n}\n\n/**\n * Reads fixed 32 bits as an unsigned 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.fixed32 = function read_fixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4);\n};\n\n/**\n * Reads fixed 32 bits as a signed 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.sfixed32 = function read_sfixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readFixed64(/* this: Reader */) {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 8);\n\n return new LongBits(readFixed32_end(this.buf, this.pos += 4), readFixed32_end(this.buf, this.pos += 4));\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads fixed 64 bits.\n * @name Reader#fixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads zig-zag encoded fixed 64 bits.\n * @name Reader#sfixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a float (32 bit) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.float = function read_float() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readFloatLE(this.buf, this.pos);\n this.pos += 4;\n return value;\n};\n\n/**\n * Reads a double (64 bit float) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.double = function read_double() {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readDoubleLE(this.buf, this.pos);\n this.pos += 8;\n return value;\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @returns {Uint8Array} Value read\n */\nReader.prototype.bytes = function read_bytes() {\n var length = this.uint32(),\n start = this.pos,\n end = this.pos + length;\n\n /* istanbul ignore if */\n if (end > this.len)\n throw indexOutOfRange(this, length);\n\n this.pos += length;\n if (Array.isArray(this.buf)) // plain array\n return this.buf.slice(start, end);\n return start === end // fix for IE 10/Win8 and others' subarray returning array of size 1\n ? new this.buf.constructor(0)\n : this._slice.call(this.buf, start, end);\n};\n\n/**\n * Reads a string preceeded by its byte length as a varint.\n * @returns {string} Value read\n */\nReader.prototype.string = function read_string() {\n var bytes = this.bytes();\n return utf8.read(bytes, 0, bytes.length);\n};\n\n/**\n * Skips the specified number of bytes if specified, otherwise skips a varint.\n * @param {number} [length] Length if known, otherwise a varint is assumed\n * @returns {Reader} `this`\n */\nReader.prototype.skip = function skip(length) {\n if (typeof length === \"number\") {\n /* istanbul ignore if */\n if (this.pos + length > this.len)\n throw indexOutOfRange(this, length);\n this.pos += length;\n } else {\n do {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n } while (this.buf[this.pos++] & 128);\n }\n return this;\n};\n\n/**\n * Skips the next element of the specified wire type.\n * @param {number} wireType Wire type received\n * @returns {Reader} `this`\n */\nReader.prototype.skipType = function(wireType) {\n switch (wireType) {\n case 0:\n this.skip();\n break;\n case 1:\n this.skip(8);\n break;\n case 2:\n this.skip(this.uint32());\n break;\n case 3:\n while ((wireType = this.uint32() & 7) !== 4) {\n this.skipType(wireType);\n }\n break;\n case 5:\n this.skip(4);\n break;\n\n /* istanbul ignore next */\n default:\n throw Error(\"invalid wire type \" + wireType + \" at offset \" + this.pos);\n }\n return this;\n};\n\nReader._configure = function(BufferReader_) {\n BufferReader = BufferReader_;\n Reader.create = create();\n BufferReader._configure();\n\n var fn = util.Long ? \"toLong\" : /* istanbul ignore next */ \"toNumber\";\n util.merge(Reader.prototype, {\n\n int64: function read_int64() {\n return readLongVarint.call(this)[fn](false);\n },\n\n uint64: function read_uint64() {\n return readLongVarint.call(this)[fn](true);\n },\n\n sint64: function read_sint64() {\n return readLongVarint.call(this).zzDecode()[fn](false);\n },\n\n fixed64: function read_fixed64() {\n return readFixed64.call(this)[fn](true);\n },\n\n sfixed64: function read_sfixed64() {\n return readFixed64.call(this)[fn](false);\n }\n\n });\n};\n","\"use strict\";\nmodule.exports = BufferReader;\n\n// extends Reader\nvar Reader = require(\"./reader\");\n(BufferReader.prototype = Object.create(Reader.prototype)).constructor = BufferReader;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new buffer reader instance.\n * @classdesc Wire format reader using node buffers.\n * @extends Reader\n * @constructor\n * @param {Buffer} buffer Buffer to read from\n */\nfunction BufferReader(buffer) {\n Reader.call(this, buffer);\n\n /**\n * Read buffer.\n * @name BufferReader#buf\n * @type {Buffer}\n */\n}\n\nBufferReader._configure = function () {\n /* istanbul ignore else */\n if (util.Buffer)\n BufferReader.prototype._slice = util.Buffer.prototype.slice;\n};\n\n\n/**\n * @override\n */\nBufferReader.prototype.string = function read_string_buffer() {\n var len = this.uint32(); // modifies pos\n return this.buf.utf8Slice\n ? this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + len, this.len))\n : this.buf.toString(\"utf-8\", this.pos, this.pos = Math.min(this.pos + len, this.len));\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @name BufferReader#bytes\n * @function\n * @returns {Buffer} Value read\n */\n\nBufferReader._configure();\n","\"use strict\";\nmodule.exports = {};\n\n/**\n * Named roots.\n * This is where pbjs stores generated structures (the option `-r, --root` specifies a name).\n * Can also be used manually to make roots available accross modules.\n * @name roots\n * @type {Object.}\n * @example\n * // pbjs -r myroot -o compiled.js ...\n *\n * // in another module:\n * require(\"./compiled.js\");\n *\n * // in any subsequent module:\n * var root = protobuf.roots[\"myroot\"];\n */\n","\"use strict\";\n\n/**\n * Streaming RPC helpers.\n * @namespace\n */\nvar rpc = exports;\n\n/**\n * RPC implementation passed to {@link Service#create} performing a service request on network level, i.e. by utilizing http requests or websockets.\n * @typedef RPCImpl\n * @type {function}\n * @param {Method|rpc.ServiceMethod,Message<{}>>} method Reflected or static method being called\n * @param {Uint8Array} requestData Request data\n * @param {RPCImplCallback} callback Callback function\n * @returns {undefined}\n * @example\n * function rpcImpl(method, requestData, callback) {\n * if (protobuf.util.lcFirst(method.name) !== \"myMethod\") // compatible with static code\n * throw Error(\"no such method\");\n * asynchronouslyObtainAResponse(requestData, function(err, responseData) {\n * callback(err, responseData);\n * });\n * }\n */\n\n/**\n * Node-style callback as used by {@link RPCImpl}.\n * @typedef RPCImplCallback\n * @type {function}\n * @param {Error|null} error Error, if any, otherwise `null`\n * @param {Uint8Array|null} [response] Response data or `null` to signal end of stream, if there hasn't been an error\n * @returns {undefined}\n */\n\nrpc.Service = require(\"./rpc/service\");\n","\"use strict\";\nmodule.exports = Service;\n\nvar util = require(\"../util/minimal\");\n\n// Extends EventEmitter\n(Service.prototype = Object.create(util.EventEmitter.prototype)).constructor = Service;\n\n/**\n * A service method callback as used by {@link rpc.ServiceMethod|ServiceMethod}.\n *\n * Differs from {@link RPCImplCallback} in that it is an actual callback of a service method which may not return `response = null`.\n * @typedef rpc.ServiceMethodCallback\n * @template TRes extends Message\n * @type {function}\n * @param {Error|null} error Error, if any\n * @param {TRes} [response] Response message\n * @returns {undefined}\n */\n\n/**\n * A service method part of a {@link rpc.Service} as created by {@link Service.create}.\n * @typedef rpc.ServiceMethod\n * @template TReq extends Message\n * @template TRes extends Message\n * @type {function}\n * @param {TReq|Properties} request Request message or plain object\n * @param {rpc.ServiceMethodCallback} [callback] Node-style callback called with the error, if any, and the response message\n * @returns {Promise>} Promise if `callback` has been omitted, otherwise `undefined`\n */\n\n/**\n * Constructs a new RPC service instance.\n * @classdesc An RPC service as returned by {@link Service#create}.\n * @exports rpc.Service\n * @extends util.EventEmitter\n * @constructor\n * @param {RPCImpl} rpcImpl RPC implementation\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\n */\nfunction Service(rpcImpl, requestDelimited, responseDelimited) {\n\n if (typeof rpcImpl !== \"function\")\n throw TypeError(\"rpcImpl must be a function\");\n\n util.EventEmitter.call(this);\n\n /**\n * RPC implementation. Becomes `null` once the service is ended.\n * @type {RPCImpl|null}\n */\n this.rpcImpl = rpcImpl;\n\n /**\n * Whether requests are length-delimited.\n * @type {boolean}\n */\n this.requestDelimited = Boolean(requestDelimited);\n\n /**\n * Whether responses are length-delimited.\n * @type {boolean}\n */\n this.responseDelimited = Boolean(responseDelimited);\n}\n\n/**\n * Calls a service method through {@link rpc.Service#rpcImpl|rpcImpl}.\n * @param {Method|rpc.ServiceMethod} method Reflected or static method\n * @param {Constructor} requestCtor Request constructor\n * @param {Constructor} responseCtor Response constructor\n * @param {TReq|Properties} request Request message or plain object\n * @param {rpc.ServiceMethodCallback} callback Service callback\n * @returns {undefined}\n * @template TReq extends Message\n * @template TRes extends Message\n */\nService.prototype.rpcCall = function rpcCall(method, requestCtor, responseCtor, request, callback) {\n\n if (!request)\n throw TypeError(\"request must be specified\");\n\n var self = this;\n if (!callback)\n return util.asPromise(rpcCall, self, method, requestCtor, responseCtor, request);\n\n if (!self.rpcImpl) {\n setTimeout(function() { callback(Error(\"already ended\")); }, 0);\n return undefined;\n }\n\n try {\n return self.rpcImpl(\n method,\n requestCtor[self.requestDelimited ? \"encodeDelimited\" : \"encode\"](request).finish(),\n function rpcCallback(err, response) {\n\n if (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n\n if (response === null) {\n self.end(/* endedByRPC */ true);\n return undefined;\n }\n\n if (!(response instanceof responseCtor)) {\n try {\n response = responseCtor[self.responseDelimited ? \"decodeDelimited\" : \"decode\"](response);\n } catch (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n }\n\n self.emit(\"data\", response, method);\n return callback(null, response);\n }\n );\n } catch (err) {\n self.emit(\"error\", err, method);\n setTimeout(function() { callback(err); }, 0);\n return undefined;\n }\n};\n\n/**\n * Ends this service and emits the `end` event.\n * @param {boolean} [endedByRPC=false] Whether the service has been ended by the RPC implementation.\n * @returns {rpc.Service} `this`\n */\nService.prototype.end = function end(endedByRPC) {\n if (this.rpcImpl) {\n if (!endedByRPC) // signal end to rpcImpl\n this.rpcImpl(null, null, null);\n this.rpcImpl = null;\n this.emit(\"end\").off();\n }\n return this;\n};\n","\"use strict\";\nmodule.exports = LongBits;\n\nvar util = require(\"../util/minimal\");\n\n/**\n * Constructs new long bits.\n * @classdesc Helper class for working with the low and high bits of a 64 bit value.\n * @memberof util\n * @constructor\n * @param {number} lo Low 32 bits, unsigned\n * @param {number} hi High 32 bits, unsigned\n */\nfunction LongBits(lo, hi) {\n\n // note that the casts below are theoretically unnecessary as of today, but older statically\n // generated converter code might still call the ctor with signed 32bits. kept for compat.\n\n /**\n * Low bits.\n * @type {number}\n */\n this.lo = lo >>> 0;\n\n /**\n * High bits.\n * @type {number}\n */\n this.hi = hi >>> 0;\n}\n\n/**\n * Zero bits.\n * @memberof util.LongBits\n * @type {util.LongBits}\n */\nvar zero = LongBits.zero = new LongBits(0, 0);\n\nzero.toNumber = function() { return 0; };\nzero.zzEncode = zero.zzDecode = function() { return this; };\nzero.length = function() { return 1; };\n\n/**\n * Zero hash.\n * @memberof util.LongBits\n * @type {string}\n */\nvar zeroHash = LongBits.zeroHash = \"\\0\\0\\0\\0\\0\\0\\0\\0\";\n\n/**\n * Constructs new long bits from the specified number.\n * @param {number} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.fromNumber = function fromNumber(value) {\n if (value === 0)\n return zero;\n var sign = value < 0;\n if (sign)\n value = -value;\n var lo = value >>> 0,\n hi = (value - lo) / 4294967296 >>> 0;\n if (sign) {\n hi = ~hi >>> 0;\n lo = ~lo >>> 0;\n if (++lo > 4294967295) {\n lo = 0;\n if (++hi > 4294967295)\n hi = 0;\n }\n }\n return new LongBits(lo, hi);\n};\n\n/**\n * Constructs new long bits from a number, long or string.\n * @param {Long|number|string} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.from = function from(value) {\n if (typeof value === \"number\")\n return LongBits.fromNumber(value);\n if (util.isString(value)) {\n /* istanbul ignore else */\n if (util.Long)\n value = util.Long.fromString(value);\n else\n return LongBits.fromNumber(parseInt(value, 10));\n }\n return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero;\n};\n\n/**\n * Converts this long bits to a possibly unsafe JavaScript number.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {number} Possibly unsafe number\n */\nLongBits.prototype.toNumber = function toNumber(unsigned) {\n if (!unsigned && this.hi >>> 31) {\n var lo = ~this.lo + 1 >>> 0,\n hi = ~this.hi >>> 0;\n if (!lo)\n hi = hi + 1 >>> 0;\n return -(lo + hi * 4294967296);\n }\n return this.lo + this.hi * 4294967296;\n};\n\n/**\n * Converts this long bits to a long.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long} Long\n */\nLongBits.prototype.toLong = function toLong(unsigned) {\n return util.Long\n ? new util.Long(this.lo | 0, this.hi | 0, Boolean(unsigned))\n /* istanbul ignore next */\n : { low: this.lo | 0, high: this.hi | 0, unsigned: Boolean(unsigned) };\n};\n\nvar charCodeAt = String.prototype.charCodeAt;\n\n/**\n * Constructs new long bits from the specified 8 characters long hash.\n * @param {string} hash Hash\n * @returns {util.LongBits} Bits\n */\nLongBits.fromHash = function fromHash(hash) {\n if (hash === zeroHash)\n return zero;\n return new LongBits(\n ( charCodeAt.call(hash, 0)\n | charCodeAt.call(hash, 1) << 8\n | charCodeAt.call(hash, 2) << 16\n | charCodeAt.call(hash, 3) << 24) >>> 0\n ,\n ( charCodeAt.call(hash, 4)\n | charCodeAt.call(hash, 5) << 8\n | charCodeAt.call(hash, 6) << 16\n | charCodeAt.call(hash, 7) << 24) >>> 0\n );\n};\n\n/**\n * Converts this long bits to a 8 characters long hash.\n * @returns {string} Hash\n */\nLongBits.prototype.toHash = function toHash() {\n return String.fromCharCode(\n this.lo & 255,\n this.lo >>> 8 & 255,\n this.lo >>> 16 & 255,\n this.lo >>> 24 ,\n this.hi & 255,\n this.hi >>> 8 & 255,\n this.hi >>> 16 & 255,\n this.hi >>> 24\n );\n};\n\n/**\n * Zig-zag encodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzEncode = function zzEncode() {\n var mask = this.hi >> 31;\n this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0;\n this.lo = ( this.lo << 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Zig-zag decodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzDecode = function zzDecode() {\n var mask = -(this.lo & 1);\n this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0;\n this.hi = ( this.hi >>> 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Calculates the length of this longbits when encoded as a varint.\n * @returns {number} Length\n */\nLongBits.prototype.length = function length() {\n var part0 = this.lo,\n part1 = (this.lo >>> 28 | this.hi << 4) >>> 0,\n part2 = this.hi >>> 24;\n return part2 === 0\n ? part1 === 0\n ? part0 < 16384\n ? part0 < 128 ? 1 : 2\n : part0 < 2097152 ? 3 : 4\n : part1 < 16384\n ? part1 < 128 ? 5 : 6\n : part1 < 2097152 ? 7 : 8\n : part2 < 128 ? 9 : 10;\n};\n","\"use strict\";\nvar util = exports;\n\n// used to return a Promise where callback is omitted\nutil.asPromise = require(\"@protobufjs/aspromise\");\n\n// converts to / from base64 encoded strings\nutil.base64 = require(\"@protobufjs/base64\");\n\n// base class of rpc.Service\nutil.EventEmitter = require(\"@protobufjs/eventemitter\");\n\n// float handling accross browsers\nutil.float = require(\"@protobufjs/float\");\n\n// requires modules optionally and hides the call from bundlers\nutil.inquire = require(\"@protobufjs/inquire\");\n\n// converts to / from utf8 encoded strings\nutil.utf8 = require(\"@protobufjs/utf8\");\n\n// provides a node-like buffer pool in the browser\nutil.pool = require(\"@protobufjs/pool\");\n\n// utility to work with the low and high bits of a 64 bit value\nutil.LongBits = require(\"./longbits\");\n\n/**\n * Whether running within node or not.\n * @memberof util\n * @type {boolean}\n */\nutil.isNode = Boolean(typeof global !== \"undefined\"\n && global\n && global.process\n && global.process.versions\n && global.process.versions.node);\n\n/**\n * Global object reference.\n * @memberof util\n * @type {Object}\n */\nutil.global = util.isNode && global\n || typeof window !== \"undefined\" && window\n || typeof self !== \"undefined\" && self\n || this; // eslint-disable-line no-invalid-this\n\n/**\n * An immuable empty array.\n * @memberof util\n * @type {Array.<*>}\n * @const\n */\nutil.emptyArray = Object.freeze ? Object.freeze([]) : /* istanbul ignore next */ []; // used on prototypes\n\n/**\n * An immutable empty object.\n * @type {Object}\n * @const\n */\nutil.emptyObject = Object.freeze ? Object.freeze({}) : /* istanbul ignore next */ {}; // used on prototypes\n\n/**\n * Tests if the specified value is an integer.\n * @function\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is an integer\n */\nutil.isInteger = Number.isInteger || /* istanbul ignore next */ function isInteger(value) {\n return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\n};\n\n/**\n * Tests if the specified value is a string.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a string\n */\nutil.isString = function isString(value) {\n return typeof value === \"string\" || value instanceof String;\n};\n\n/**\n * Tests if the specified value is a non-null object.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a non-null object\n */\nutil.isObject = function isObject(value) {\n return value && typeof value === \"object\";\n};\n\n/**\n * Checks if a property on a message is considered to be present.\n * This is an alias of {@link util.isSet}.\n * @function\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isset =\n\n/**\n * Checks if a property on a message is considered to be present.\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isSet = function isSet(obj, prop) {\n var value = obj[prop];\n if (value != null && obj.hasOwnProperty(prop)) // eslint-disable-line eqeqeq, no-prototype-builtins\n return typeof value !== \"object\" || (Array.isArray(value) ? value.length : Object.keys(value).length) > 0;\n return false;\n};\n\n/**\n * Any compatible Buffer instance.\n * This is a minimal stand-alone definition of a Buffer instance. The actual type is that exported by node's typings.\n * @interface Buffer\n * @extends Uint8Array\n */\n\n/**\n * Node's Buffer class if available.\n * @type {Constructor}\n */\nutil.Buffer = (function() {\n try {\n var Buffer = util.inquire(\"buffer\").Buffer;\n // refuse to use non-node buffers if not explicitly assigned (perf reasons):\n return Buffer.prototype.utf8Write ? Buffer : /* istanbul ignore next */ null;\n } catch (e) {\n /* istanbul ignore next */\n return null;\n }\n})();\n\n// Internal alias of or polyfull for Buffer.from.\nutil._Buffer_from = null;\n\n// Internal alias of or polyfill for Buffer.allocUnsafe.\nutil._Buffer_allocUnsafe = null;\n\n/**\n * Creates a new buffer of whatever type supported by the environment.\n * @param {number|number[]} [sizeOrArray=0] Buffer size or number array\n * @returns {Uint8Array|Buffer} Buffer\n */\nutil.newBuffer = function newBuffer(sizeOrArray) {\n /* istanbul ignore next */\n return typeof sizeOrArray === \"number\"\n ? util.Buffer\n ? util._Buffer_allocUnsafe(sizeOrArray)\n : new util.Array(sizeOrArray)\n : util.Buffer\n ? util._Buffer_from(sizeOrArray)\n : typeof Uint8Array === \"undefined\"\n ? sizeOrArray\n : new Uint8Array(sizeOrArray);\n};\n\n/**\n * Array implementation used in the browser. `Uint8Array` if supported, otherwise `Array`.\n * @type {Constructor}\n */\nutil.Array = typeof Uint8Array !== \"undefined\" ? Uint8Array /* istanbul ignore next */ : Array;\n\n/**\n * Any compatible Long instance.\n * This is a minimal stand-alone definition of a Long instance. The actual type is that exported by long.js.\n * @interface Long\n * @property {number} low Low bits\n * @property {number} high High bits\n * @property {boolean} unsigned Whether unsigned or not\n */\n\n/**\n * Long.js's Long class if available.\n * @type {Constructor}\n */\nutil.Long = /* istanbul ignore next */ util.global.dcodeIO && /* istanbul ignore next */ util.global.dcodeIO.Long\n || /* istanbul ignore next */ util.global.Long\n || util.inquire(\"long\");\n\n/**\n * Regular expression used to verify 2 bit (`bool`) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key2Re = /^true|false|0|1$/;\n\n/**\n * Regular expression used to verify 32 bit (`int32` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key32Re = /^-?(?:0|[1-9][0-9]*)$/;\n\n/**\n * Regular expression used to verify 64 bit (`int64` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key64Re = /^(?:[\\\\x00-\\\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;\n\n/**\n * Converts a number or long to an 8 characters long hash string.\n * @param {Long|number} value Value to convert\n * @returns {string} Hash\n */\nutil.longToHash = function longToHash(value) {\n return value\n ? util.LongBits.from(value).toHash()\n : util.LongBits.zeroHash;\n};\n\n/**\n * Converts an 8 characters long hash string to a long or number.\n * @param {string} hash Hash\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long|number} Original value\n */\nutil.longFromHash = function longFromHash(hash, unsigned) {\n var bits = util.LongBits.fromHash(hash);\n if (util.Long)\n return util.Long.fromBits(bits.lo, bits.hi, unsigned);\n return bits.toNumber(Boolean(unsigned));\n};\n\n/**\n * Merges the properties of the source object into the destination object.\n * @memberof util\n * @param {Object.} dst Destination object\n * @param {Object.} src Source object\n * @param {boolean} [ifNotSet=false] Merges only if the key is not already set\n * @returns {Object.} Destination object\n */\nfunction merge(dst, src, ifNotSet) { // used by converters\n for (var keys = Object.keys(src), i = 0; i < keys.length; ++i)\n if (dst[keys[i]] === undefined || !ifNotSet)\n dst[keys[i]] = src[keys[i]];\n return dst;\n}\n\nutil.merge = merge;\n\n/**\n * Converts the first character of a string to lower case.\n * @param {string} str String to convert\n * @returns {string} Converted string\n */\nutil.lcFirst = function lcFirst(str) {\n return str.charAt(0).toLowerCase() + str.substring(1);\n};\n\n/**\n * Creates a custom error constructor.\n * @memberof util\n * @param {string} name Error name\n * @returns {Constructor} Custom error constructor\n */\nfunction newError(name) {\n\n function CustomError(message, properties) {\n\n if (!(this instanceof CustomError))\n return new CustomError(message, properties);\n\n // Error.call(this, message);\n // ^ just returns a new error instance because the ctor can be called as a function\n\n Object.defineProperty(this, \"message\", { get: function() { return message; } });\n\n /* istanbul ignore next */\n if (Error.captureStackTrace) // node\n Error.captureStackTrace(this, CustomError);\n else\n Object.defineProperty(this, \"stack\", { value: new Error().stack || \"\" });\n\n if (properties)\n merge(this, properties);\n }\n\n (CustomError.prototype = Object.create(Error.prototype)).constructor = CustomError;\n\n Object.defineProperty(CustomError.prototype, \"name\", { get: function() { return name; } });\n\n CustomError.prototype.toString = function toString() {\n return this.name + \": \" + this.message;\n };\n\n return CustomError;\n}\n\nutil.newError = newError;\n\n/**\n * Constructs a new protocol error.\n * @classdesc Error subclass indicating a protocol specifc error.\n * @memberof util\n * @extends Error\n * @template T extends Message\n * @constructor\n * @param {string} message Error message\n * @param {Object.} [properties] Additional properties\n * @example\n * try {\n * MyMessage.decode(someBuffer); // throws if required fields are missing\n * } catch (e) {\n * if (e instanceof ProtocolError && e.instance)\n * console.log(\"decoded so far: \" + JSON.stringify(e.instance));\n * }\n */\nutil.ProtocolError = newError(\"ProtocolError\");\n\n/**\n * So far decoded message instance.\n * @name util.ProtocolError#instance\n * @type {Message}\n */\n\n/**\n * A OneOf getter as returned by {@link util.oneOfGetter}.\n * @typedef OneOfGetter\n * @type {function}\n * @returns {string|undefined} Set field name, if any\n */\n\n/**\n * Builds a getter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfGetter} Unbound getter\n */\nutil.oneOfGetter = function getOneOf(fieldNames) {\n var fieldMap = {};\n for (var i = 0; i < fieldNames.length; ++i)\n fieldMap[fieldNames[i]] = 1;\n\n /**\n * @returns {string|undefined} Set field name, if any\n * @this Object\n * @ignore\n */\n return function() { // eslint-disable-line consistent-return\n for (var keys = Object.keys(this), i = keys.length - 1; i > -1; --i)\n if (fieldMap[keys[i]] === 1 && this[keys[i]] !== undefined && this[keys[i]] !== null)\n return keys[i];\n };\n};\n\n/**\n * A OneOf setter as returned by {@link util.oneOfSetter}.\n * @typedef OneOfSetter\n * @type {function}\n * @param {string|undefined} value Field name\n * @returns {undefined}\n */\n\n/**\n * Builds a setter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfSetter} Unbound setter\n */\nutil.oneOfSetter = function setOneOf(fieldNames) {\n\n /**\n * @param {string} name Field name\n * @returns {undefined}\n * @this Object\n * @ignore\n */\n return function(name) {\n for (var i = 0; i < fieldNames.length; ++i)\n if (fieldNames[i] !== name)\n delete this[fieldNames[i]];\n };\n};\n\n/**\n * Default conversion options used for {@link Message#toJSON} implementations.\n *\n * These options are close to proto3's JSON mapping with the exception that internal types like Any are handled just like messages. More precisely:\n *\n * - Longs become strings\n * - Enums become string keys\n * - Bytes become base64 encoded strings\n * - (Sub-)Messages become plain objects\n * - Maps become plain objects with all string keys\n * - Repeated fields become arrays\n * - NaN and Infinity for float and double fields become strings\n *\n * @type {IConversionOptions}\n * @see https://developers.google.com/protocol-buffers/docs/proto3?hl=en#json\n */\nutil.toJSONOptions = {\n longs: String,\n enums: String,\n bytes: String,\n json: true\n};\n\n// Sets up buffer utility according to the environment (called in index-minimal)\nutil._configure = function() {\n var Buffer = util.Buffer;\n /* istanbul ignore if */\n if (!Buffer) {\n util._Buffer_from = util._Buffer_allocUnsafe = null;\n return;\n }\n // because node 4.x buffers are incompatible & immutable\n // see: https://github.com/dcodeIO/protobuf.js/pull/665\n util._Buffer_from = Buffer.from !== Uint8Array.from && Buffer.from ||\n /* istanbul ignore next */\n function Buffer_from(value, encoding) {\n return new Buffer(value, encoding);\n };\n util._Buffer_allocUnsafe = Buffer.allocUnsafe ||\n /* istanbul ignore next */\n function Buffer_allocUnsafe(size) {\n return new Buffer(size);\n };\n};\n","\"use strict\";\nmodule.exports = Writer;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferWriter; // cyclic\n\nvar LongBits = util.LongBits,\n base64 = util.base64,\n utf8 = util.utf8;\n\n/**\n * Constructs a new writer operation instance.\n * @classdesc Scheduled writer operation.\n * @constructor\n * @param {function(*, Uint8Array, number)} fn Function to call\n * @param {number} len Value byte length\n * @param {*} val Value to write\n * @ignore\n */\nfunction Op(fn, len, val) {\n\n /**\n * Function to call.\n * @type {function(Uint8Array, number, *)}\n */\n this.fn = fn;\n\n /**\n * Value byte length.\n * @type {number}\n */\n this.len = len;\n\n /**\n * Next operation.\n * @type {Writer.Op|undefined}\n */\n this.next = undefined;\n\n /**\n * Value to write.\n * @type {*}\n */\n this.val = val; // type varies\n}\n\n/* istanbul ignore next */\nfunction noop() {} // eslint-disable-line no-empty-function\n\n/**\n * Constructs a new writer state instance.\n * @classdesc Copied writer state.\n * @memberof Writer\n * @constructor\n * @param {Writer} writer Writer to copy state from\n * @ignore\n */\nfunction State(writer) {\n\n /**\n * Current head.\n * @type {Writer.Op}\n */\n this.head = writer.head;\n\n /**\n * Current tail.\n * @type {Writer.Op}\n */\n this.tail = writer.tail;\n\n /**\n * Current buffer length.\n * @type {number}\n */\n this.len = writer.len;\n\n /**\n * Next state.\n * @type {State|null}\n */\n this.next = writer.states;\n}\n\n/**\n * Constructs a new writer instance.\n * @classdesc Wire format writer using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n */\nfunction Writer() {\n\n /**\n * Current length.\n * @type {number}\n */\n this.len = 0;\n\n /**\n * Operations head.\n * @type {Object}\n */\n this.head = new Op(noop, 0, 0);\n\n /**\n * Operations tail\n * @type {Object}\n */\n this.tail = this.head;\n\n /**\n * Linked forked states.\n * @type {Object|null}\n */\n this.states = null;\n\n // When a value is written, the writer calculates its byte length and puts it into a linked\n // list of operations to perform when finish() is called. This both allows us to allocate\n // buffers of the exact required size and reduces the amount of work we have to do compared\n // to first calculating over objects and then encoding over objects. In our case, the encoding\n // part is just a linked list walk calling operations with already prepared values.\n}\n\nvar create = function create() {\n return util.Buffer\n ? function create_buffer_setup() {\n return (Writer.create = function create_buffer() {\n return new BufferWriter();\n })();\n }\n /* istanbul ignore next */\n : function create_array() {\n return new Writer();\n };\n};\n\n/**\n * Creates a new writer.\n * @function\n * @returns {BufferWriter|Writer} A {@link BufferWriter} when Buffers are supported, otherwise a {@link Writer}\n */\nWriter.create = create();\n\n/**\n * Allocates a buffer of the specified size.\n * @param {number} size Buffer size\n * @returns {Uint8Array} Buffer\n */\nWriter.alloc = function alloc(size) {\n return new util.Array(size);\n};\n\n// Use Uint8Array buffer pool in the browser, just like node does with buffers\n/* istanbul ignore else */\nif (util.Array !== Array)\n Writer.alloc = util.pool(Writer.alloc, util.Array.prototype.subarray);\n\n/**\n * Pushes a new operation to the queue.\n * @param {function(Uint8Array, number, *)} fn Function to call\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @returns {Writer} `this`\n * @private\n */\nWriter.prototype._push = function push(fn, len, val) {\n this.tail = this.tail.next = new Op(fn, len, val);\n this.len += len;\n return this;\n};\n\nfunction writeByte(val, buf, pos) {\n buf[pos] = val & 255;\n}\n\nfunction writeVarint32(val, buf, pos) {\n while (val > 127) {\n buf[pos++] = val & 127 | 128;\n val >>>= 7;\n }\n buf[pos] = val;\n}\n\n/**\n * Constructs a new varint writer operation instance.\n * @classdesc Scheduled varint writer operation.\n * @extends Op\n * @constructor\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @ignore\n */\nfunction VarintOp(len, val) {\n this.len = len;\n this.next = undefined;\n this.val = val;\n}\n\nVarintOp.prototype = Object.create(Op.prototype);\nVarintOp.prototype.fn = writeVarint32;\n\n/**\n * Writes an unsigned 32 bit value as a varint.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.uint32 = function write_uint32(value) {\n // here, the call to this.push has been inlined and a varint specific Op subclass is used.\n // uint32 is by far the most frequently used operation and benefits significantly from this.\n this.len += (this.tail = this.tail.next = new VarintOp(\n (value = value >>> 0)\n < 128 ? 1\n : value < 16384 ? 2\n : value < 2097152 ? 3\n : value < 268435456 ? 4\n : 5,\n value)).len;\n return this;\n};\n\n/**\n * Writes a signed 32 bit value as a varint.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.int32 = function write_int32(value) {\n return value < 0\n ? this._push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec\n : this.uint32(value);\n};\n\n/**\n * Writes a 32 bit value as a varint, zig-zag encoded.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sint32 = function write_sint32(value) {\n return this.uint32((value << 1 ^ value >> 31) >>> 0);\n};\n\nfunction writeVarint64(val, buf, pos) {\n while (val.hi) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0;\n val.hi >>>= 7;\n }\n while (val.lo > 127) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = val.lo >>> 7;\n }\n buf[pos++] = val.lo;\n}\n\n/**\n * Writes an unsigned 64 bit value as a varint.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.uint64 = function write_uint64(value) {\n var bits = LongBits.from(value);\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a signed 64 bit value as a varint.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.int64 = Writer.prototype.uint64;\n\n/**\n * Writes a signed 64 bit value as a varint, zig-zag encoded.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sint64 = function write_sint64(value) {\n var bits = LongBits.from(value).zzEncode();\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a boolish value as a varint.\n * @param {boolean} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bool = function write_bool(value) {\n return this._push(writeByte, 1, value ? 1 : 0);\n};\n\nfunction writeFixed32(val, buf, pos) {\n buf[pos ] = val & 255;\n buf[pos + 1] = val >>> 8 & 255;\n buf[pos + 2] = val >>> 16 & 255;\n buf[pos + 3] = val >>> 24;\n}\n\n/**\n * Writes an unsigned 32 bit value as fixed 32 bits.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.fixed32 = function write_fixed32(value) {\n return this._push(writeFixed32, 4, value >>> 0);\n};\n\n/**\n * Writes a signed 32 bit value as fixed 32 bits.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sfixed32 = Writer.prototype.fixed32;\n\n/**\n * Writes an unsigned 64 bit value as fixed 64 bits.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.fixed64 = function write_fixed64(value) {\n var bits = LongBits.from(value);\n return this._push(writeFixed32, 4, bits.lo)._push(writeFixed32, 4, bits.hi);\n};\n\n/**\n * Writes a signed 64 bit value as fixed 64 bits.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sfixed64 = Writer.prototype.fixed64;\n\n/**\n * Writes a float (32 bit).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.float = function write_float(value) {\n return this._push(util.float.writeFloatLE, 4, value);\n};\n\n/**\n * Writes a double (64 bit float).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.double = function write_double(value) {\n return this._push(util.float.writeDoubleLE, 8, value);\n};\n\nvar writeBytes = util.Array.prototype.set\n ? function writeBytes_set(val, buf, pos) {\n buf.set(val, pos); // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytes_for(val, buf, pos) {\n for (var i = 0; i < val.length; ++i)\n buf[pos + i] = val[i];\n };\n\n/**\n * Writes a sequence of bytes.\n * @param {Uint8Array|string} value Buffer or base64 encoded string to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bytes = function write_bytes(value) {\n var len = value.length >>> 0;\n if (!len)\n return this._push(writeByte, 1, 0);\n if (util.isString(value)) {\n var buf = Writer.alloc(len = base64.length(value));\n base64.decode(value, buf, 0);\n value = buf;\n }\n return this.uint32(len)._push(writeBytes, len, value);\n};\n\n/**\n * Writes a string.\n * @param {string} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.string = function write_string(value) {\n var len = utf8.length(value);\n return len\n ? this.uint32(len)._push(utf8.write, len, value)\n : this._push(writeByte, 1, 0);\n};\n\n/**\n * Forks this writer's state by pushing it to a stack.\n * Calling {@link Writer#reset|reset} or {@link Writer#ldelim|ldelim} resets the writer to the previous state.\n * @returns {Writer} `this`\n */\nWriter.prototype.fork = function fork() {\n this.states = new State(this);\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n return this;\n};\n\n/**\n * Resets this instance to the last state.\n * @returns {Writer} `this`\n */\nWriter.prototype.reset = function reset() {\n if (this.states) {\n this.head = this.states.head;\n this.tail = this.states.tail;\n this.len = this.states.len;\n this.states = this.states.next;\n } else {\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n }\n return this;\n};\n\n/**\n * Resets to the last state and appends the fork state's current write length as a varint followed by its operations.\n * @returns {Writer} `this`\n */\nWriter.prototype.ldelim = function ldelim() {\n var head = this.head,\n tail = this.tail,\n len = this.len;\n this.reset().uint32(len);\n if (len) {\n this.tail.next = head.next; // skip noop\n this.tail = tail;\n this.len += len;\n }\n return this;\n};\n\n/**\n * Finishes the write operation.\n * @returns {Uint8Array} Finished buffer\n */\nWriter.prototype.finish = function finish() {\n var head = this.head.next, // skip noop\n buf = this.constructor.alloc(this.len),\n pos = 0;\n while (head) {\n head.fn(head.val, buf, pos);\n pos += head.len;\n head = head.next;\n }\n // this.head = this.tail = null;\n return buf;\n};\n\nWriter._configure = function(BufferWriter_) {\n BufferWriter = BufferWriter_;\n Writer.create = create();\n BufferWriter._configure();\n};\n","\"use strict\";\nmodule.exports = BufferWriter;\n\n// extends Writer\nvar Writer = require(\"./writer\");\n(BufferWriter.prototype = Object.create(Writer.prototype)).constructor = BufferWriter;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new buffer writer instance.\n * @classdesc Wire format writer using node buffers.\n * @extends Writer\n * @constructor\n */\nfunction BufferWriter() {\n Writer.call(this);\n}\n\nBufferWriter._configure = function () {\n /**\n * Allocates a buffer of the specified size.\n * @function\n * @param {number} size Buffer size\n * @returns {Buffer} Buffer\n */\n BufferWriter.alloc = util._Buffer_allocUnsafe;\n\n BufferWriter.writeBytesBuffer = util.Buffer && util.Buffer.prototype instanceof Uint8Array && util.Buffer.prototype.set.name === \"set\"\n ? function writeBytesBuffer_set(val, buf, pos) {\n buf.set(val, pos); // faster than copy (requires node >= 4 where Buffers extend Uint8Array and set is properly inherited)\n // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytesBuffer_copy(val, buf, pos) {\n if (val.copy) // Buffer values\n val.copy(buf, pos, 0, val.length);\n else for (var i = 0; i < val.length;) // plain array values\n buf[pos++] = val[i++];\n };\n};\n\n\n/**\n * @override\n */\nBufferWriter.prototype.bytes = function write_bytes_buffer(value) {\n if (util.isString(value))\n value = util._Buffer_from(value, \"base64\");\n var len = value.length >>> 0;\n this.uint32(len);\n if (len)\n this._push(BufferWriter.writeBytesBuffer, len, value);\n return this;\n};\n\nfunction writeStringBuffer(val, buf, pos) {\n if (val.length < 40) // plain js is faster for short strings (probably due to redundant assertions)\n util.utf8.write(val, buf, pos);\n else if (buf.utf8Write)\n buf.utf8Write(val, pos);\n else\n buf.write(val, pos);\n}\n\n/**\n * @override\n */\nBufferWriter.prototype.string = function write_string_buffer(value) {\n var len = util.Buffer.byteLength(value);\n this.uint32(len);\n if (len)\n this._push(writeStringBuffer, len, value);\n return this;\n};\n\n\n/**\n * Finishes the write operation.\n * @name BufferWriter#finish\n * @function\n * @returns {Buffer} Finished buffer\n */\n\nBufferWriter._configure();\n","exports.publicEncrypt = require('./publicEncrypt')\nexports.privateDecrypt = require('./privateDecrypt')\n\nexports.privateEncrypt = function privateEncrypt (key, buf) {\n return exports.publicEncrypt(key, buf, true)\n}\n\nexports.publicDecrypt = function publicDecrypt (key, buf) {\n return exports.privateDecrypt(key, buf, true)\n}\n","var createHash = require('create-hash')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function (seed, len) {\n var t = Buffer.alloc(0)\n var i = 0\n var c\n while (t.length < len) {\n c = i2ops(i++)\n t = Buffer.concat([t, createHash('sha1').update(seed).update(c).digest()])\n }\n return t.slice(0, len)\n}\n\nfunction i2ops (c) {\n var out = Buffer.allocUnsafe(4)\n out.writeUInt32BE(c, 0)\n return out\n}\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","var parseKeys = require('parse-asn1')\nvar mgf = require('./mgf')\nvar xor = require('./xor')\nvar BN = require('bn.js')\nvar crt = require('browserify-rsa')\nvar createHash = require('create-hash')\nvar withPublic = require('./withPublic')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function privateDecrypt (privateKey, enc, reverse) {\n var padding\n if (privateKey.padding) {\n padding = privateKey.padding\n } else if (reverse) {\n padding = 1\n } else {\n padding = 4\n }\n\n var key = parseKeys(privateKey)\n var k = key.modulus.byteLength()\n if (enc.length > k || new BN(enc).cmp(key.modulus) >= 0) {\n throw new Error('decryption error')\n }\n var msg\n if (reverse) {\n msg = withPublic(new BN(enc), key)\n } else {\n msg = crt(enc, key)\n }\n var zBuffer = Buffer.alloc(k - msg.length)\n msg = Buffer.concat([zBuffer, msg], k)\n if (padding === 4) {\n return oaep(key, msg)\n } else if (padding === 1) {\n return pkcs1(key, msg, reverse)\n } else if (padding === 3) {\n return msg\n } else {\n throw new Error('unknown padding')\n }\n}\n\nfunction oaep (key, msg) {\n var k = key.modulus.byteLength()\n var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()\n var hLen = iHash.length\n if (msg[0] !== 0) {\n throw new Error('decryption error')\n }\n var maskedSeed = msg.slice(1, hLen + 1)\n var maskedDb = msg.slice(hLen + 1)\n var seed = xor(maskedSeed, mgf(maskedDb, hLen))\n var db = xor(maskedDb, mgf(seed, k - hLen - 1))\n if (compare(iHash, db.slice(0, hLen))) {\n throw new Error('decryption error')\n }\n var i = hLen\n while (db[i] === 0) {\n i++\n }\n if (db[i++] !== 1) {\n throw new Error('decryption error')\n }\n return db.slice(i)\n}\n\nfunction pkcs1 (key, msg, reverse) {\n var p1 = msg.slice(0, 2)\n var i = 2\n var status = 0\n while (msg[i++] !== 0) {\n if (i >= msg.length) {\n status++\n break\n }\n }\n var ps = msg.slice(2, i - 1)\n\n if ((p1.toString('hex') !== '0002' && !reverse) || (p1.toString('hex') !== '0001' && reverse)) {\n status++\n }\n if (ps.length < 8) {\n status++\n }\n if (status) {\n throw new Error('decryption error')\n }\n return msg.slice(i)\n}\nfunction compare (a, b) {\n a = Buffer.from(a)\n b = Buffer.from(b)\n var dif = 0\n var len = a.length\n if (a.length !== b.length) {\n dif++\n len = Math.min(a.length, b.length)\n }\n var i = -1\n while (++i < len) {\n dif += (a[i] ^ b[i])\n }\n return dif\n}\n","var parseKeys = require('parse-asn1')\nvar randomBytes = require('randombytes')\nvar createHash = require('create-hash')\nvar mgf = require('./mgf')\nvar xor = require('./xor')\nvar BN = require('bn.js')\nvar withPublic = require('./withPublic')\nvar crt = require('browserify-rsa')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function publicEncrypt (publicKey, msg, reverse) {\n var padding\n if (publicKey.padding) {\n padding = publicKey.padding\n } else if (reverse) {\n padding = 1\n } else {\n padding = 4\n }\n var key = parseKeys(publicKey)\n var paddedMsg\n if (padding === 4) {\n paddedMsg = oaep(key, msg)\n } else if (padding === 1) {\n paddedMsg = pkcs1(key, msg, reverse)\n } else if (padding === 3) {\n paddedMsg = new BN(msg)\n if (paddedMsg.cmp(key.modulus) >= 0) {\n throw new Error('data too long for modulus')\n }\n } else {\n throw new Error('unknown padding')\n }\n if (reverse) {\n return crt(paddedMsg, key)\n } else {\n return withPublic(paddedMsg, key)\n }\n}\n\nfunction oaep (key, msg) {\n var k = key.modulus.byteLength()\n var mLen = msg.length\n var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()\n var hLen = iHash.length\n var hLen2 = 2 * hLen\n if (mLen > k - hLen2 - 2) {\n throw new Error('message too long')\n }\n var ps = Buffer.alloc(k - mLen - hLen2 - 2)\n var dblen = k - hLen - 1\n var seed = randomBytes(hLen)\n var maskedDb = xor(Buffer.concat([iHash, ps, Buffer.alloc(1, 1), msg], dblen), mgf(seed, dblen))\n var maskedSeed = xor(seed, mgf(maskedDb, hLen))\n return new BN(Buffer.concat([Buffer.alloc(1), maskedSeed, maskedDb], k))\n}\nfunction pkcs1 (key, msg, reverse) {\n var mLen = msg.length\n var k = key.modulus.byteLength()\n if (mLen > k - 11) {\n throw new Error('message too long')\n }\n var ps\n if (reverse) {\n ps = Buffer.alloc(k - mLen - 3, 0xff)\n } else {\n ps = nonZero(k - mLen - 3)\n }\n return new BN(Buffer.concat([Buffer.from([0, reverse ? 1 : 2]), ps, Buffer.alloc(1), msg], k))\n}\nfunction nonZero (len) {\n var out = Buffer.allocUnsafe(len)\n var i = 0\n var cache = randomBytes(len * 2)\n var cur = 0\n var num\n while (i < len) {\n if (cur === cache.length) {\n cache = randomBytes(len * 2)\n cur = 0\n }\n num = cache[cur++]\n if (num) {\n out[i++] = num\n }\n }\n return out\n}\n","var BN = require('bn.js')\nvar Buffer = require('safe-buffer').Buffer\n\nfunction withPublic (paddedMsg, key) {\n return Buffer.from(paddedMsg\n .toRed(BN.mont(key.modulus))\n .redPow(new BN(key.publicExponent))\n .fromRed()\n .toArray())\n}\n\nmodule.exports = withPublic\n","module.exports = function xor (a, b) {\n var len = a.length\n var i = -1\n while (++i < len) {\n a[i] ^= b[i]\n }\n return a\n}\n","'use strict'\n\n// limit of Crypto.getRandomValues()\n// https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues\nvar MAX_BYTES = 65536\n\n// Node supports requesting up to this number of bytes\n// https://github.com/nodejs/node/blob/master/lib/internal/crypto/random.js#L48\nvar MAX_UINT32 = 4294967295\n\nfunction oldBrowser () {\n throw new Error('Secure random number generation is not supported by this browser.\\nUse Chrome, Firefox or Internet Explorer 11')\n}\n\nvar Buffer = require('safe-buffer').Buffer\nvar crypto = global.crypto || global.msCrypto\n\nif (crypto && crypto.getRandomValues) {\n module.exports = randomBytes\n} else {\n module.exports = oldBrowser\n}\n\nfunction randomBytes (size, cb) {\n // phantomjs needs to throw\n if (size > MAX_UINT32) throw new RangeError('requested too many random bytes')\n\n var bytes = Buffer.allocUnsafe(size)\n\n if (size > 0) { // getRandomValues fails on IE if size == 0\n if (size > MAX_BYTES) { // this is the max bytes crypto.getRandomValues\n // can do at once see https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues\n for (var generated = 0; generated < size; generated += MAX_BYTES) {\n // buffer.slice automatically checks if the end is past the end of\n // the buffer so we don't have to here\n crypto.getRandomValues(bytes.slice(generated, generated + MAX_BYTES))\n }\n } else {\n crypto.getRandomValues(bytes)\n }\n }\n\n if (typeof cb === 'function') {\n return process.nextTick(function () {\n cb(null, bytes)\n })\n }\n\n return bytes\n}\n","'use strict'\n\nfunction oldBrowser () {\n throw new Error('secure random number generation not supported by this browser\\nuse chrome, FireFox or Internet Explorer 11')\n}\nvar safeBuffer = require('safe-buffer')\nvar randombytes = require('randombytes')\nvar Buffer = safeBuffer.Buffer\nvar kBufferMaxLength = safeBuffer.kMaxLength\nvar crypto = global.crypto || global.msCrypto\nvar kMaxUint32 = Math.pow(2, 32) - 1\nfunction assertOffset (offset, length) {\n if (typeof offset !== 'number' || offset !== offset) { // eslint-disable-line no-self-compare\n throw new TypeError('offset must be a number')\n }\n\n if (offset > kMaxUint32 || offset < 0) {\n throw new TypeError('offset must be a uint32')\n }\n\n if (offset > kBufferMaxLength || offset > length) {\n throw new RangeError('offset out of range')\n }\n}\n\nfunction assertSize (size, offset, length) {\n if (typeof size !== 'number' || size !== size) { // eslint-disable-line no-self-compare\n throw new TypeError('size must be a number')\n }\n\n if (size > kMaxUint32 || size < 0) {\n throw new TypeError('size must be a uint32')\n }\n\n if (size + offset > length || size > kBufferMaxLength) {\n throw new RangeError('buffer too small')\n }\n}\nif ((crypto && crypto.getRandomValues) || !process.browser) {\n exports.randomFill = randomFill\n exports.randomFillSync = randomFillSync\n} else {\n exports.randomFill = oldBrowser\n exports.randomFillSync = oldBrowser\n}\nfunction randomFill (buf, offset, size, cb) {\n if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')\n }\n\n if (typeof offset === 'function') {\n cb = offset\n offset = 0\n size = buf.length\n } else if (typeof size === 'function') {\n cb = size\n size = buf.length - offset\n } else if (typeof cb !== 'function') {\n throw new TypeError('\"cb\" argument must be a function')\n }\n assertOffset(offset, buf.length)\n assertSize(size, offset, buf.length)\n return actualFill(buf, offset, size, cb)\n}\n\nfunction actualFill (buf, offset, size, cb) {\n if (process.browser) {\n var ourBuf = buf.buffer\n var uint = new Uint8Array(ourBuf, offset, size)\n crypto.getRandomValues(uint)\n if (cb) {\n process.nextTick(function () {\n cb(null, buf)\n })\n return\n }\n return buf\n }\n if (cb) {\n randombytes(size, function (err, bytes) {\n if (err) {\n return cb(err)\n }\n bytes.copy(buf, offset)\n cb(null, buf)\n })\n return\n }\n var bytes = randombytes(size)\n bytes.copy(buf, offset)\n return buf\n}\nfunction randomFillSync (buf, offset, size) {\n if (typeof offset === 'undefined') {\n offset = 0\n }\n if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')\n }\n\n assertOffset(offset, buf.length)\n\n if (size === undefined) size = buf.length - offset\n\n assertSize(size, offset, buf.length)\n\n return actualFill(buf, offset, size)\n}\n","'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inheritsLoose(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n\n return NodeError;\n }(Base);\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n'use strict';\n/**/\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n\n for (var key in obj) {\n keys.push(key);\n }\n\n return keys;\n};\n/**/\n\n\nmodule.exports = Duplex;\n\nvar Readable = require('./_stream_readable');\n\nvar Writable = require('./_stream_writable');\n\nrequire('inherits')(Duplex, Readable);\n\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n}); // the no-half-open enforcer\n\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return; // no more data can be written.\n // But allow more writes to happen in this tick.\n\n process.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\nrequire('inherits')(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n\nmodule.exports = Readable;\n/**/\n\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n/**/\n\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\n\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n/**/\n\n\nvar debugUtil = require('util');\n\nvar debug;\n\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\n\nvar BufferList = require('./internal/streams/buffer_list');\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; // Lazy loaded to improve the startup performance.\n\n\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\n\nrequire('inherits')(Readable, Stream);\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n\n this.sync = true; // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'end' (and potentially 'finish')\n\n this.autoDestroy = !!options.autoDestroy; // has it been destroyed\n\n this.destroyed = false; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s\n\n this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled\n\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options); // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex); // legacy\n\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\n\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n}; // Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\n\n\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n}; // Unshift should *always* be something directly out of read()\n\n\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n } // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n\n\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n\n return er;\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n}; // backwards compatibility.\n\n\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder; // If setEncoding(null), decoder.encoding equals utf8\n\n this._readableState.encoding = this._readableState.decoder.encoding; // Iterate over current buffer to convert already stored Buffers:\n\n var p = this._readableState.buffer.head;\n var content = '';\n\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n\n this._readableState.buffer.clear();\n\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n}; // Don't raise the hwm > 1GB\n\n\nvar MAX_HWM = 0x40000000;\n\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n\n return n;\n} // This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\n\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n } // If we're asking for more than the current hwm, then raise the hwm.\n\n\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n; // Don't have enough\n\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n\n return state.length;\n} // you can override either this method, or the async _read(n) below.\n\n\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up.\n\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n } // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n // if we need a readable event, then we need to do some reading.\n\n\n var doRead = state.needReadable;\n debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some\n\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n } // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n\n\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true; // if the length is currently zero, then we *need* a readable event.\n\n if (state.length === 0) state.needReadable = true; // call internal read method\n\n this._read(state.highWaterMark);\n\n state.sync = false; // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick.\n\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n\n if (state.decoder) {\n var chunk = state.decoder.end();\n\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n\n state.ended = true;\n\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n} // Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\n\n\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\n\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n } // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n\n\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n} // at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\n\n\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length) // didn't get any data, stop spinning.\n break;\n }\n\n state.readingMore = false;\n} // abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\n\n\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n\n default:\n state.pipes.push(dest);\n break;\n }\n\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n } // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n\n\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n\n function cleanup() {\n debug('cleanup'); // cleanup event handlers once the pipe is broken\n\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true; // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n src.on('data', ondata);\n\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n\n src.pause();\n }\n } // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n\n\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n } // Make sure our error handler is attached before userland ones.\n\n\n prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once.\n\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n\n dest.once('close', onclose);\n\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n } // tell the dest that it's being piped to\n\n\n dest.emit('pipe', src); // start the flow if it hasn't been started already.\n\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n }; // if we're not piping anywhere, then do nothing.\n\n if (state.pipesCount === 0) return this; // just one destination. most common case.\n\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes; // got a match.\n\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n } // slow case. multiple pipe destinations.\n\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n }\n\n return this;\n } // try to find the right one.\n\n\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n}; // set up data events if they are asked for\n// Ensure readable listeners eventually get something\n\n\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0; // Try start flowing on next tick if stream isn't explicitly paused\n\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n\n return res;\n};\n\nReadable.prototype.addListener = Readable.prototype.on;\n\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true; // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n} // pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\n\n\nReadable.prototype.resume = function () {\n var state = this._readableState;\n\n if (!state.flowing) {\n debug('resume'); // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n\n state.paused = false;\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n\n if (!state.reading) {\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n\n this._readableState.paused = true;\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n\n while (state.flowing && stream.read() !== null) {\n ;\n }\n} // wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\n\n\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode\n\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n\n if (!ret) {\n paused = true;\n stream.pause();\n }\n }); // proxy all the other methods.\n // important when wrapping filters and duplexes.\n\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n } // proxy certain important events.\n\n\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n } // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n\n\n this._read = function (n) {\n debug('wrapped _read', n);\n\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n\n return createReadableStreamAsyncIterator(this);\n };\n}\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n}); // exposed for testing purposes only.\n\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n}); // Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length); // Check that we didn't get one last unshift.\n\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\n\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n\n return from(Readable, iterable, opts);\n };\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n\n return -1;\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n'use strict';\n\nmodule.exports = Transform;\n\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n\nvar Duplex = require('./_stream_duplex');\n\nrequire('inherits')(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n }; // start out asking for a readable event once data is transformed.\n\n this._readableState.needReadable = true; // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n } // When the writable side finishes, then flush out anything remaining.\n\n\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n}; // This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\n\n\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n}; // Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\n\n\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data); // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n'use strict';\n\nmodule.exports = Writable;\n/* */\n\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n} // It seems a linked list but it is not\n// there will be only 2 of these for each stream\n\n\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\n\n\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n/**/\n\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\n\nrequire('inherits')(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called\n\n this.finalCalled = false; // drain event flag.\n\n this.needDrain = false; // at the start of calling end()\n\n this.ending = false; // when end() has been called, and returned\n\n this.ended = false; // when 'finish' is emitted\n\n this.finished = false; // has it been destroyed\n\n this.destroyed = false; // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n\n this.length = 0; // a flag to see when we're in the middle of a write.\n\n this.writing = false; // when true all writes will be buffered until .uncork() call\n\n this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n\n this.sync = true; // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n\n this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb)\n\n this.onwrite = function (er) {\n onwrite(stream, er);\n }; // the callback that the user supplies to write(chunk,encoding,cb)\n\n\n this.writecb = null; // the amount that is being written when _write is called.\n\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null; // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n\n this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n\n this.prefinished = false; // True if the error was already emitted and should not be thrown again\n\n this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end')\n\n this.autoDestroy = !!options.autoDestroy; // count buffered requests\n\n this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n\n while (current) {\n out.push(current);\n current = current.next;\n }\n\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})(); // Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\n\n\nvar realHasInstance;\n\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex'); // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex); // legacy.\n\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n} // Otherwise people can pipe Writable streams, which is just wrong.\n\n\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb\n\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n} // Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\n\n\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n\n return true;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\n\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n}); // if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\n\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false.\n\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er); // this can emit finish, and it will always happen\n // after error\n\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er); // this can emit finish, but finish must\n // always follow error\n\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n} // Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\n\n\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n} // if there's something in the buffer waiting, then process it\n\n\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n\n state.pendingcb++;\n state.lastBufferedRequest = null;\n\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks\n\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n } // ignore unnecessary end() calls.\n\n\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n\n if (err) {\n errorOrDestroy(stream, err);\n }\n\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n\n if (need) {\n prefinish(stream, state);\n\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n } // reuse the free corkReq.\n\n\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\n\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","'use strict';\n\nvar _Object$setPrototypeO;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar finished = require('./end-of-stream');\n\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\n\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\n\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n\n if (resolve !== null) {\n var data = iter[kStream].read(); // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\n\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\n\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\n\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n\n next: function next() {\n var _this = this;\n\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n\n if (error !== null) {\n return Promise.reject(error);\n }\n\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n } // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n\n\n var lastPromise = this[kLastPromise];\n var promise;\n\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n\n promise = new Promise(this[kHandlePromise]);\n }\n\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\n\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject]; // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n\n iterator[kError] = err;\n return;\n }\n\n var resolve = iterator[kLastResolve];\n\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\n\nmodule.exports = createReadableStreamAsyncIterator;","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\n\nvar _require2 = require('util'),\n inspect = _require2.inspect;\n\nvar custom = inspect && inspect.custom || 'inspect';\n\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\n\nmodule.exports =\n/*#__PURE__*/\nfunction () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n\n while (p = p.next) {\n ret += s + p.data;\n }\n\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n\n return ret;\n } // Consumes a specified amount of bytes or characters from the buffered data.\n\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n } // Consumes a specified amount of characters from the buffered data.\n\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Consumes a specified amount of bytes from the buffered data.\n\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Make sure the linked list only shows the minimal necessary information.\n\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n\n return BufferList;\n}();","'use strict'; // undocumented cb() API, needed for core, not for public API\n\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n } // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n } // if this is a duplex stream mark the writable part as destroyed as well\n\n\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n\n return this;\n}\n\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\n\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n callback.apply(this, args);\n };\n}\n\nfunction noop() {}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n\n var writableEnded = stream._writableState && stream._writableState.finished;\n\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n\n var onclose = function onclose() {\n var err;\n\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\n\nmodule.exports = eos;","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\n","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar eos;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\n\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true; // request.destroy just do .end - .abort is what we want\n\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\n\nfunction call(fn) {\n fn();\n}\n\nfunction pipe(from, to) {\n return from.pipe(to);\n}\n\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\n\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\n\nmodule.exports = pipeline;","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\n\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\n\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n\n return Math.floor(hwm);\n } // Default value\n\n\n return state.objectMode ? 16 : 16 * 1024;\n}\n\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","module.exports = require('events').EventEmitter;\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\nexports.finished = require('./lib/internal/streams/end-of-stream.js');\nexports.pipeline = require('./lib/internal/streams/pipeline.js');\n","'use strict'\nvar Buffer = require('buffer').Buffer\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\n\nvar ARRAY16 = new Array(16)\n\nvar zl = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n]\n\nvar zr = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n]\n\nvar sl = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n]\n\nvar sr = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n]\n\nvar hl = [0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e]\nvar hr = [0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000]\n\nfunction RIPEMD160 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n}\n\ninherits(RIPEMD160, HashBase)\n\nRIPEMD160.prototype._update = function () {\n var words = ARRAY16\n for (var j = 0; j < 16; ++j) words[j] = this._block.readInt32LE(j * 4)\n\n var al = this._a | 0\n var bl = this._b | 0\n var cl = this._c | 0\n var dl = this._d | 0\n var el = this._e | 0\n\n var ar = this._a | 0\n var br = this._b | 0\n var cr = this._c | 0\n var dr = this._d | 0\n var er = this._e | 0\n\n // computation\n for (var i = 0; i < 80; i += 1) {\n var tl\n var tr\n if (i < 16) {\n tl = fn1(al, bl, cl, dl, el, words[zl[i]], hl[0], sl[i])\n tr = fn5(ar, br, cr, dr, er, words[zr[i]], hr[0], sr[i])\n } else if (i < 32) {\n tl = fn2(al, bl, cl, dl, el, words[zl[i]], hl[1], sl[i])\n tr = fn4(ar, br, cr, dr, er, words[zr[i]], hr[1], sr[i])\n } else if (i < 48) {\n tl = fn3(al, bl, cl, dl, el, words[zl[i]], hl[2], sl[i])\n tr = fn3(ar, br, cr, dr, er, words[zr[i]], hr[2], sr[i])\n } else if (i < 64) {\n tl = fn4(al, bl, cl, dl, el, words[zl[i]], hl[3], sl[i])\n tr = fn2(ar, br, cr, dr, er, words[zr[i]], hr[3], sr[i])\n } else { // if (i<80) {\n tl = fn5(al, bl, cl, dl, el, words[zl[i]], hl[4], sl[i])\n tr = fn1(ar, br, cr, dr, er, words[zr[i]], hr[4], sr[i])\n }\n\n al = el\n el = dl\n dl = rotl(cl, 10)\n cl = bl\n bl = tl\n\n ar = er\n er = dr\n dr = rotl(cr, 10)\n cr = br\n br = tr\n }\n\n // update state\n var t = (this._b + cl + dr) | 0\n this._b = (this._c + dl + er) | 0\n this._c = (this._d + el + ar) | 0\n this._d = (this._e + al + br) | 0\n this._e = (this._a + bl + cr) | 0\n this._a = t\n}\n\nRIPEMD160.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.alloc ? Buffer.alloc(20) : new Buffer(20)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n buffer.writeInt32LE(this._e, 16)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fn1 (a, b, c, d, e, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn2 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn3 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b | (~c)) ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn4 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn5 (a, b, c, d, e, m, k, s) {\n return (rotl((a + (b ^ (c | (~d))) + m + k) | 0, s) + e) | 0\n}\n\nmodule.exports = RIPEMD160\n","/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","/* eslint-disable node/no-deprecated-api */\n\n'use strict'\n\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\nvar safer = {}\n\nvar key\n\nfor (key in buffer) {\n if (!buffer.hasOwnProperty(key)) continue\n if (key === 'SlowBuffer' || key === 'Buffer') continue\n safer[key] = buffer[key]\n}\n\nvar Safer = safer.Buffer = {}\nfor (key in Buffer) {\n if (!Buffer.hasOwnProperty(key)) continue\n if (key === 'allocUnsafe' || key === 'allocUnsafeSlow') continue\n Safer[key] = Buffer[key]\n}\n\nsafer.Buffer.prototype = Buffer.prototype\n\nif (!Safer.from || Safer.from === Uint8Array.from) {\n Safer.from = function (value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('The \"value\" argument must not be of type number. Received type ' + typeof value)\n }\n if (value && typeof value.length === 'undefined') {\n throw new TypeError('The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type ' + typeof value)\n }\n return Buffer(value, encodingOrOffset, length)\n }\n}\n\nif (!Safer.alloc) {\n Safer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('The \"size\" argument must be of type number. Received type ' + typeof size)\n }\n if (size < 0 || size >= 2 * (1 << 30)) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n var buf = Buffer(size)\n if (!fill || fill.length === 0) {\n buf.fill(0)\n } else if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n return buf\n }\n}\n\nif (!safer.kStringMaxLength) {\n try {\n safer.kStringMaxLength = process.binding('buffer').kStringMaxLength\n } catch (e) {\n // we can't determine kStringMaxLength in environments where process.binding\n // is unsupported, so let's not set it\n }\n}\n\nif (!safer.constants) {\n safer.constants = {\n MAX_LENGTH: safer.kMaxLength\n }\n if (safer.kStringMaxLength) {\n safer.constants.MAX_STRING_LENGTH = safer.kStringMaxLength\n }\n}\n\nmodule.exports = safer\n","\"use strict\";\n\n(function(root) {\n const MAX_VALUE = 0x7fffffff;\n\n // The SHA256 and PBKDF2 implementation are from scrypt-async-js:\n // See: https://github.com/dchest/scrypt-async-js\n function SHA256(m) {\n const K = new Uint32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b,\n 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01,\n 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7,\n 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152,\n 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147,\n 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc,\n 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819,\n 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08,\n 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f,\n 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n ]);\n\n let h0 = 0x6a09e667, h1 = 0xbb67ae85, h2 = 0x3c6ef372, h3 = 0xa54ff53a;\n let h4 = 0x510e527f, h5 = 0x9b05688c, h6 = 0x1f83d9ab, h7 = 0x5be0cd19;\n const w = new Uint32Array(64);\n\n function blocks(p) {\n let off = 0, len = p.length;\n while (len >= 64) {\n let a = h0, b = h1, c = h2, d = h3, e = h4, f = h5, g = h6, h = h7, u, i, j, t1, t2;\n\n for (i = 0; i < 16; i++) {\n j = off + i*4;\n w[i] = ((p[j] & 0xff)<<24) | ((p[j+1] & 0xff)<<16) |\n ((p[j+2] & 0xff)<<8) | (p[j+3] & 0xff);\n }\n\n for (i = 16; i < 64; i++) {\n u = w[i-2];\n t1 = ((u>>>17) | (u<<(32-17))) ^ ((u>>>19) | (u<<(32-19))) ^ (u>>>10);\n\n u = w[i-15];\n t2 = ((u>>>7) | (u<<(32-7))) ^ ((u>>>18) | (u<<(32-18))) ^ (u>>>3);\n\n w[i] = (((t1 + w[i-7]) | 0) + ((t2 + w[i-16]) | 0)) | 0;\n }\n\n for (i = 0; i < 64; i++) {\n t1 = ((((((e>>>6) | (e<<(32-6))) ^ ((e>>>11) | (e<<(32-11))) ^\n ((e>>>25) | (e<<(32-25)))) + ((e & f) ^ (~e & g))) | 0) +\n ((h + ((K[i] + w[i]) | 0)) | 0)) | 0;\n\n t2 = ((((a>>>2) | (a<<(32-2))) ^ ((a>>>13) | (a<<(32-13))) ^\n ((a>>>22) | (a<<(32-22)))) + ((a & b) ^ (a & c) ^ (b & c))) | 0;\n\n h = g;\n g = f;\n f = e;\n e = (d + t1) | 0;\n d = c;\n c = b;\n b = a;\n a = (t1 + t2) | 0;\n }\n\n h0 = (h0 + a) | 0;\n h1 = (h1 + b) | 0;\n h2 = (h2 + c) | 0;\n h3 = (h3 + d) | 0;\n h4 = (h4 + e) | 0;\n h5 = (h5 + f) | 0;\n h6 = (h6 + g) | 0;\n h7 = (h7 + h) | 0;\n\n off += 64;\n len -= 64;\n }\n }\n\n blocks(m);\n\n let i, bytesLeft = m.length % 64,\n bitLenHi = (m.length / 0x20000000) | 0,\n bitLenLo = m.length << 3,\n numZeros = (bytesLeft < 56) ? 56 : 120,\n p = m.slice(m.length - bytesLeft, m.length);\n\n p.push(0x80);\n for (i = bytesLeft + 1; i < numZeros; i++) { p.push(0); }\n p.push((bitLenHi >>> 24) & 0xff);\n p.push((bitLenHi >>> 16) & 0xff);\n p.push((bitLenHi >>> 8) & 0xff);\n p.push((bitLenHi >>> 0) & 0xff);\n p.push((bitLenLo >>> 24) & 0xff);\n p.push((bitLenLo >>> 16) & 0xff);\n p.push((bitLenLo >>> 8) & 0xff);\n p.push((bitLenLo >>> 0) & 0xff);\n\n blocks(p);\n\n return [\n (h0 >>> 24) & 0xff, (h0 >>> 16) & 0xff, (h0 >>> 8) & 0xff, (h0 >>> 0) & 0xff,\n (h1 >>> 24) & 0xff, (h1 >>> 16) & 0xff, (h1 >>> 8) & 0xff, (h1 >>> 0) & 0xff,\n (h2 >>> 24) & 0xff, (h2 >>> 16) & 0xff, (h2 >>> 8) & 0xff, (h2 >>> 0) & 0xff,\n (h3 >>> 24) & 0xff, (h3 >>> 16) & 0xff, (h3 >>> 8) & 0xff, (h3 >>> 0) & 0xff,\n (h4 >>> 24) & 0xff, (h4 >>> 16) & 0xff, (h4 >>> 8) & 0xff, (h4 >>> 0) & 0xff,\n (h5 >>> 24) & 0xff, (h5 >>> 16) & 0xff, (h5 >>> 8) & 0xff, (h5 >>> 0) & 0xff,\n (h6 >>> 24) & 0xff, (h6 >>> 16) & 0xff, (h6 >>> 8) & 0xff, (h6 >>> 0) & 0xff,\n (h7 >>> 24) & 0xff, (h7 >>> 16) & 0xff, (h7 >>> 8) & 0xff, (h7 >>> 0) & 0xff\n ];\n }\n\n function PBKDF2_HMAC_SHA256_OneIter(password, salt, dkLen) {\n // compress password if it's longer than hash block length\n password = (password.length <= 64) ? password : SHA256(password);\n\n const innerLen = 64 + salt.length + 4;\n const inner = new Array(innerLen);\n const outerKey = new Array(64);\n\n let i;\n let dk = [];\n\n // inner = (password ^ ipad) || salt || counter\n for (i = 0; i < 64; i++) { inner[i] = 0x36; }\n for (i = 0; i < password.length; i++) { inner[i] ^= password[i]; }\n for (i = 0; i < salt.length; i++) { inner[64 + i] = salt[i]; }\n for (i = innerLen - 4; i < innerLen; i++) { inner[i] = 0; }\n\n // outerKey = password ^ opad\n for (i = 0; i < 64; i++) outerKey[i] = 0x5c;\n for (i = 0; i < password.length; i++) outerKey[i] ^= password[i];\n\n // increments counter inside inner\n function incrementCounter() {\n for (let i = innerLen - 1; i >= innerLen - 4; i--) {\n inner[i]++;\n if (inner[i] <= 0xff) return;\n inner[i] = 0;\n }\n }\n\n // output blocks = SHA256(outerKey || SHA256(inner)) ...\n while (dkLen >= 32) {\n incrementCounter();\n dk = dk.concat(SHA256(outerKey.concat(SHA256(inner))));\n dkLen -= 32;\n }\n if (dkLen > 0) {\n incrementCounter();\n dk = dk.concat(SHA256(outerKey.concat(SHA256(inner))).slice(0, dkLen));\n }\n\n return dk;\n }\n\n // The following is an adaptation of scryptsy\n // See: https://www.npmjs.com/package/scryptsy\n function blockmix_salsa8(BY, Yi, r, x, _X) {\n let i;\n\n arraycopy(BY, (2 * r - 1) * 16, _X, 0, 16);\n for (i = 0; i < 2 * r; i++) {\n blockxor(BY, i * 16, _X, 16);\n salsa20_8(_X, x);\n arraycopy(_X, 0, BY, Yi + (i * 16), 16);\n }\n\n for (i = 0; i < r; i++) {\n arraycopy(BY, Yi + (i * 2) * 16, BY, (i * 16), 16);\n }\n\n for (i = 0; i < r; i++) {\n arraycopy(BY, Yi + (i * 2 + 1) * 16, BY, (i + r) * 16, 16);\n }\n }\n\n function R(a, b) {\n return (a << b) | (a >>> (32 - b));\n }\n\n function salsa20_8(B, x) {\n arraycopy(B, 0, x, 0, 16);\n\n for (let i = 8; i > 0; i -= 2) {\n x[ 4] ^= R(x[ 0] + x[12], 7);\n x[ 8] ^= R(x[ 4] + x[ 0], 9);\n x[12] ^= R(x[ 8] + x[ 4], 13);\n x[ 0] ^= R(x[12] + x[ 8], 18);\n x[ 9] ^= R(x[ 5] + x[ 1], 7);\n x[13] ^= R(x[ 9] + x[ 5], 9);\n x[ 1] ^= R(x[13] + x[ 9], 13);\n x[ 5] ^= R(x[ 1] + x[13], 18);\n x[14] ^= R(x[10] + x[ 6], 7);\n x[ 2] ^= R(x[14] + x[10], 9);\n x[ 6] ^= R(x[ 2] + x[14], 13);\n x[10] ^= R(x[ 6] + x[ 2], 18);\n x[ 3] ^= R(x[15] + x[11], 7);\n x[ 7] ^= R(x[ 3] + x[15], 9);\n x[11] ^= R(x[ 7] + x[ 3], 13);\n x[15] ^= R(x[11] + x[ 7], 18);\n x[ 1] ^= R(x[ 0] + x[ 3], 7);\n x[ 2] ^= R(x[ 1] + x[ 0], 9);\n x[ 3] ^= R(x[ 2] + x[ 1], 13);\n x[ 0] ^= R(x[ 3] + x[ 2], 18);\n x[ 6] ^= R(x[ 5] + x[ 4], 7);\n x[ 7] ^= R(x[ 6] + x[ 5], 9);\n x[ 4] ^= R(x[ 7] + x[ 6], 13);\n x[ 5] ^= R(x[ 4] + x[ 7], 18);\n x[11] ^= R(x[10] + x[ 9], 7);\n x[ 8] ^= R(x[11] + x[10], 9);\n x[ 9] ^= R(x[ 8] + x[11], 13);\n x[10] ^= R(x[ 9] + x[ 8], 18);\n x[12] ^= R(x[15] + x[14], 7);\n x[13] ^= R(x[12] + x[15], 9);\n x[14] ^= R(x[13] + x[12], 13);\n x[15] ^= R(x[14] + x[13], 18);\n }\n\n for (let i = 0; i < 16; ++i) {\n B[i] += x[i];\n }\n }\n\n // naive approach... going back to loop unrolling may yield additional performance\n function blockxor(S, Si, D, len) {\n for (let i = 0; i < len; i++) {\n D[i] ^= S[Si + i]\n }\n }\n\n function arraycopy(src, srcPos, dest, destPos, length) {\n while (length--) {\n dest[destPos++] = src[srcPos++];\n }\n }\n\n function checkBufferish(o) {\n if (!o || typeof(o.length) !== 'number') { return false; }\n\n for (let i = 0; i < o.length; i++) {\n const v = o[i];\n if (typeof(v) !== 'number' || v % 1 || v < 0 || v >= 256) {\n return false;\n }\n }\n\n return true;\n }\n\n function ensureInteger(value, name) {\n if (typeof(value) !== \"number\" || (value % 1)) { throw new Error('invalid ' + name); }\n return value;\n }\n\n // N = Cpu cost, r = Memory cost, p = parallelization cost\n // callback(error, progress, key)\n function _scrypt(password, salt, N, r, p, dkLen, callback) {\n\n N = ensureInteger(N, 'N');\n r = ensureInteger(r, 'r');\n p = ensureInteger(p, 'p');\n\n dkLen = ensureInteger(dkLen, 'dkLen');\n\n if (N === 0 || (N & (N - 1)) !== 0) { throw new Error('N must be power of 2'); }\n\n if (N > MAX_VALUE / 128 / r) { throw new Error('N too large'); }\n if (r > MAX_VALUE / 128 / p) { throw new Error('r too large'); }\n\n if (!checkBufferish(password)) {\n throw new Error('password must be an array or buffer');\n }\n password = Array.prototype.slice.call(password);\n\n if (!checkBufferish(salt)) {\n throw new Error('salt must be an array or buffer');\n }\n salt = Array.prototype.slice.call(salt);\n\n let b = PBKDF2_HMAC_SHA256_OneIter(password, salt, p * 128 * r);\n const B = new Uint32Array(p * 32 * r)\n for (let i = 0; i < B.length; i++) {\n const j = i * 4;\n B[i] = ((b[j + 3] & 0xff) << 24) |\n ((b[j + 2] & 0xff) << 16) |\n ((b[j + 1] & 0xff) << 8) |\n ((b[j + 0] & 0xff) << 0);\n }\n\n const XY = new Uint32Array(64 * r);\n const V = new Uint32Array(32 * r * N);\n\n const Yi = 32 * r;\n\n // scratch space\n const x = new Uint32Array(16); // salsa20_8\n const _X = new Uint32Array(16); // blockmix_salsa8\n\n const totalOps = p * N * 2;\n let currentOp = 0;\n let lastPercent10 = null;\n\n // Set this to true to abandon the scrypt on the next step\n let stop = false;\n\n // State information\n let state = 0;\n let i0 = 0, i1;\n let Bi;\n\n // How many blockmix_salsa8 can we do per step?\n const limit = callback ? parseInt(1000 / r): 0xffffffff;\n\n // Trick from scrypt-async; if there is a setImmediate shim in place, use it\n const nextTick = (typeof(setImmediate) !== 'undefined') ? setImmediate : setTimeout;\n\n // This is really all I changed; making scryptsy a state machine so we occasionally\n // stop and give other evnts on the evnt loop a chance to run. ~RicMoo\n const incrementalSMix = function() {\n if (stop) {\n return callback(new Error('cancelled'), currentOp / totalOps);\n }\n\n let steps;\n\n switch (state) {\n case 0:\n // for (var i = 0; i < p; i++)...\n Bi = i0 * 32 * r;\n\n arraycopy(B, Bi, XY, 0, Yi); // ROMix - 1\n\n state = 1; // Move to ROMix 2\n i1 = 0;\n\n // Fall through\n\n case 1:\n\n // Run up to 1000 steps of the first inner smix loop\n steps = N - i1;\n if (steps > limit) { steps = limit; }\n for (let i = 0; i < steps; i++) { // ROMix - 2\n arraycopy(XY, 0, V, (i1 + i) * Yi, Yi) // ROMix - 3\n blockmix_salsa8(XY, Yi, r, x, _X); // ROMix - 4\n }\n\n // for (var i = 0; i < N; i++)\n i1 += steps;\n currentOp += steps;\n\n if (callback) {\n // Call the callback with the progress (optionally stopping us)\n const percent10 = parseInt(1000 * currentOp / totalOps);\n if (percent10 !== lastPercent10) {\n stop = callback(null, currentOp / totalOps);\n if (stop) { break; }\n lastPercent10 = percent10;\n }\n }\n\n if (i1 < N) { break; }\n\n i1 = 0; // Move to ROMix 6\n state = 2;\n\n // Fall through\n\n case 2:\n\n // Run up to 1000 steps of the second inner smix loop\n steps = N - i1;\n if (steps > limit) { steps = limit; }\n for (let i = 0; i < steps; i++) { // ROMix - 6\n const offset = (2 * r - 1) * 16; // ROMix - 7\n const j = XY[offset] & (N - 1);\n blockxor(V, j * Yi, XY, Yi); // ROMix - 8 (inner)\n blockmix_salsa8(XY, Yi, r, x, _X); // ROMix - 9 (outer)\n }\n\n // for (var i = 0; i < N; i++)...\n i1 += steps;\n currentOp += steps;\n\n // Call the callback with the progress (optionally stopping us)\n if (callback) {\n const percent10 = parseInt(1000 * currentOp / totalOps);\n if (percent10 !== lastPercent10) {\n stop = callback(null, currentOp / totalOps);\n if (stop) { break; }\n lastPercent10 = percent10;\n }\n }\n\n if (i1 < N) { break; }\n\n arraycopy(XY, 0, B, Bi, Yi); // ROMix - 10\n\n // for (var i = 0; i < p; i++)...\n i0++;\n if (i0 < p) {\n state = 0;\n break;\n }\n\n b = [];\n for (let i = 0; i < B.length; i++) {\n b.push((B[i] >> 0) & 0xff);\n b.push((B[i] >> 8) & 0xff);\n b.push((B[i] >> 16) & 0xff);\n b.push((B[i] >> 24) & 0xff);\n }\n\n const derivedKey = PBKDF2_HMAC_SHA256_OneIter(password, b, dkLen);\n\n // Send the result to the callback\n if (callback) { callback(null, 1.0, derivedKey); }\n\n // Done; don't break (which would reschedule)\n return derivedKey;\n }\n\n // Schedule the next steps\n if (callback) { nextTick(incrementalSMix); }\n }\n\n // Run the smix state machine until completion\n if (!callback) {\n while (true) {\n const derivedKey = incrementalSMix();\n if (derivedKey != undefined) { return derivedKey; }\n }\n }\n\n // Bootstrap the async incremental smix\n incrementalSMix();\n }\n\n const lib = {\n scrypt: function(password, salt, N, r, p, dkLen, progressCallback) {\n return new Promise(function(resolve, reject) {\n let lastProgress = 0;\n if (progressCallback) { progressCallback(0); }\n _scrypt(password, salt, N, r, p, dkLen, function(error, progress, key) {\n if (error) {\n reject(error);\n } else if (key) {\n if (progressCallback && lastProgress !== 1) {\n progressCallback(1);\n }\n resolve(new Uint8Array(key));\n } else if (progressCallback && progress !== lastProgress) {\n lastProgress = progress;\n return progressCallback(progress);\n }\n });\n });\n },\n syncScrypt: function(password, salt, N, r, p, dkLen) {\n return new Uint8Array(_scrypt(password, salt, N, r, p, dkLen));\n }\n };\n\n // node.js\n if (typeof(exports) !== 'undefined') {\n module.exports = lib;\n\n // RequireJS/AMD\n // http://www.requirejs.org/docs/api.html\n // https://github.com/amdjs/amdjs-api/wiki/AMD\n } else if (typeof(define) === 'function' && define.amd) {\n define(lib);\n\n // Web Browsers\n } else if (root) {\n\n // If there was an existing library \"scrypt\", make sure it is still available\n if (root.scrypt) {\n root._scrypt = root.scrypt;\n }\n\n root.scrypt = lib;\n }\n\n})(this);\n","var Buffer = require('safe-buffer').Buffer\n\n// prototype class for hash functions\nfunction Hash (blockSize, finalSize) {\n this._block = Buffer.alloc(blockSize)\n this._finalSize = finalSize\n this._blockSize = blockSize\n this._len = 0\n}\n\nHash.prototype.update = function (data, enc) {\n if (typeof data === 'string') {\n enc = enc || 'utf8'\n data = Buffer.from(data, enc)\n }\n\n var block = this._block\n var blockSize = this._blockSize\n var length = data.length\n var accum = this._len\n\n for (var offset = 0; offset < length;) {\n var assigned = accum % blockSize\n var remainder = Math.min(length - offset, blockSize - assigned)\n\n for (var i = 0; i < remainder; i++) {\n block[assigned + i] = data[offset + i]\n }\n\n accum += remainder\n offset += remainder\n\n if ((accum % blockSize) === 0) {\n this._update(block)\n }\n }\n\n this._len += length\n return this\n}\n\nHash.prototype.digest = function (enc) {\n var rem = this._len % this._blockSize\n\n this._block[rem] = 0x80\n\n // zero (rem + 1) trailing bits, where (rem + 1) is the smallest\n // non-negative solution to the equation (length + 1 + (rem + 1)) === finalSize mod blockSize\n this._block.fill(0, rem + 1)\n\n if (rem >= this._finalSize) {\n this._update(this._block)\n this._block.fill(0)\n }\n\n var bits = this._len * 8\n\n // uint32\n if (bits <= 0xffffffff) {\n this._block.writeUInt32BE(bits, this._blockSize - 4)\n\n // uint64\n } else {\n var lowBits = (bits & 0xffffffff) >>> 0\n var highBits = (bits - lowBits) / 0x100000000\n\n this._block.writeUInt32BE(highBits, this._blockSize - 8)\n this._block.writeUInt32BE(lowBits, this._blockSize - 4)\n }\n\n this._update(this._block)\n var hash = this._hash()\n\n return enc ? hash.toString(enc) : hash\n}\n\nHash.prototype._update = function () {\n throw new Error('_update must be implemented by subclass')\n}\n\nmodule.exports = Hash\n","var exports = module.exports = function SHA (algorithm) {\n algorithm = algorithm.toLowerCase()\n\n var Algorithm = exports[algorithm]\n if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')\n\n return new Algorithm()\n}\n\nexports.sha = require('./sha')\nexports.sha1 = require('./sha1')\nexports.sha224 = require('./sha224')\nexports.sha256 = require('./sha256')\nexports.sha384 = require('./sha384')\nexports.sha512 = require('./sha512')\n","/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-0, as defined\n * in FIPS PUB 180-1\n * This source code is derived from sha1.js of the same repository.\n * The difference between SHA-0 and SHA-1 is just a bitwise rotate left\n * operation was added.\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha, Hash)\n\nSha.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha\n","/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined\n * in FIPS PUB 180-1\n * Version 2.1a Copyright Paul Johnston 2000 - 2002.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for details.\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha1 () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha1, Hash)\n\nSha1.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl1 (num) {\n return (num << 1) | (num >>> 31)\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha1.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = rotl1(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16])\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha1.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha1\n","/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Sha256 = require('./sha256')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar W = new Array(64)\n\nfunction Sha224 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha224, Sha256)\n\nSha224.prototype.init = function () {\n this._a = 0xc1059ed8\n this._b = 0x367cd507\n this._c = 0x3070dd17\n this._d = 0xf70e5939\n this._e = 0xffc00b31\n this._f = 0x68581511\n this._g = 0x64f98fa7\n this._h = 0xbefa4fa4\n\n return this\n}\n\nSha224.prototype._hash = function () {\n var H = Buffer.allocUnsafe(28)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n\n return H\n}\n\nmodule.exports = Sha224\n","/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5,\n 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5,\n 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3,\n 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174,\n 0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC,\n 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA,\n 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7,\n 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967,\n 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13,\n 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85,\n 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3,\n 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070,\n 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5,\n 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3,\n 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208,\n 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2\n]\n\nvar W = new Array(64)\n\nfunction Sha256 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha256, Hash)\n\nSha256.prototype.init = function () {\n this._a = 0x6a09e667\n this._b = 0xbb67ae85\n this._c = 0x3c6ef372\n this._d = 0xa54ff53a\n this._e = 0x510e527f\n this._f = 0x9b05688c\n this._g = 0x1f83d9ab\n this._h = 0x5be0cd19\n\n return this\n}\n\nfunction ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x) {\n return (x >>> 2 | x << 30) ^ (x >>> 13 | x << 19) ^ (x >>> 22 | x << 10)\n}\n\nfunction sigma1 (x) {\n return (x >>> 6 | x << 26) ^ (x >>> 11 | x << 21) ^ (x >>> 25 | x << 7)\n}\n\nfunction gamma0 (x) {\n return (x >>> 7 | x << 25) ^ (x >>> 18 | x << 14) ^ (x >>> 3)\n}\n\nfunction gamma1 (x) {\n return (x >>> 17 | x << 15) ^ (x >>> 19 | x << 13) ^ (x >>> 10)\n}\n\nSha256.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n var f = this._f | 0\n var g = this._g | 0\n var h = this._h | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 64; ++i) W[i] = (gamma1(W[i - 2]) + W[i - 7] + gamma0(W[i - 15]) + W[i - 16]) | 0\n\n for (var j = 0; j < 64; ++j) {\n var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) | 0\n var T2 = (sigma0(a) + maj(a, b, c)) | 0\n\n h = g\n g = f\n f = e\n e = (d + T1) | 0\n d = c\n c = b\n b = a\n a = (T1 + T2) | 0\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n this._f = (f + this._f) | 0\n this._g = (g + this._g) | 0\n this._h = (h + this._h) | 0\n}\n\nSha256.prototype._hash = function () {\n var H = Buffer.allocUnsafe(32)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n H.writeInt32BE(this._h, 28)\n\n return H\n}\n\nmodule.exports = Sha256\n","var inherits = require('inherits')\nvar SHA512 = require('./sha512')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar W = new Array(160)\n\nfunction Sha384 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha384, SHA512)\n\nSha384.prototype.init = function () {\n this._ah = 0xcbbb9d5d\n this._bh = 0x629a292a\n this._ch = 0x9159015a\n this._dh = 0x152fecd8\n this._eh = 0x67332667\n this._fh = 0x8eb44a87\n this._gh = 0xdb0c2e0d\n this._hh = 0x47b5481d\n\n this._al = 0xc1059ed8\n this._bl = 0x367cd507\n this._cl = 0x3070dd17\n this._dl = 0xf70e5939\n this._el = 0xffc00b31\n this._fl = 0x68581511\n this._gl = 0x64f98fa7\n this._hl = 0xbefa4fa4\n\n return this\n}\n\nSha384.prototype._hash = function () {\n var H = Buffer.allocUnsafe(48)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n\n return H\n}\n\nmodule.exports = Sha384\n","var inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n]\n\nvar W = new Array(160)\n\nfunction Sha512 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha512, Hash)\n\nSha512.prototype.init = function () {\n this._ah = 0x6a09e667\n this._bh = 0xbb67ae85\n this._ch = 0x3c6ef372\n this._dh = 0xa54ff53a\n this._eh = 0x510e527f\n this._fh = 0x9b05688c\n this._gh = 0x1f83d9ab\n this._hh = 0x5be0cd19\n\n this._al = 0xf3bcc908\n this._bl = 0x84caa73b\n this._cl = 0xfe94f82b\n this._dl = 0x5f1d36f1\n this._el = 0xade682d1\n this._fl = 0x2b3e6c1f\n this._gl = 0xfb41bd6b\n this._hl = 0x137e2179\n\n return this\n}\n\nfunction Ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x, xl) {\n return (x >>> 28 | xl << 4) ^ (xl >>> 2 | x << 30) ^ (xl >>> 7 | x << 25)\n}\n\nfunction sigma1 (x, xl) {\n return (x >>> 14 | xl << 18) ^ (x >>> 18 | xl << 14) ^ (xl >>> 9 | x << 23)\n}\n\nfunction Gamma0 (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7)\n}\n\nfunction Gamma0l (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7 | xl << 25)\n}\n\nfunction Gamma1 (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6)\n}\n\nfunction Gamma1l (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6 | xl << 26)\n}\n\nfunction getCarry (a, b) {\n return (a >>> 0) < (b >>> 0) ? 1 : 0\n}\n\nSha512.prototype._update = function (M) {\n var W = this._w\n\n var ah = this._ah | 0\n var bh = this._bh | 0\n var ch = this._ch | 0\n var dh = this._dh | 0\n var eh = this._eh | 0\n var fh = this._fh | 0\n var gh = this._gh | 0\n var hh = this._hh | 0\n\n var al = this._al | 0\n var bl = this._bl | 0\n var cl = this._cl | 0\n var dl = this._dl | 0\n var el = this._el | 0\n var fl = this._fl | 0\n var gl = this._gl | 0\n var hl = this._hl | 0\n\n for (var i = 0; i < 32; i += 2) {\n W[i] = M.readInt32BE(i * 4)\n W[i + 1] = M.readInt32BE(i * 4 + 4)\n }\n for (; i < 160; i += 2) {\n var xh = W[i - 15 * 2]\n var xl = W[i - 15 * 2 + 1]\n var gamma0 = Gamma0(xh, xl)\n var gamma0l = Gamma0l(xl, xh)\n\n xh = W[i - 2 * 2]\n xl = W[i - 2 * 2 + 1]\n var gamma1 = Gamma1(xh, xl)\n var gamma1l = Gamma1l(xl, xh)\n\n // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]\n var Wi7h = W[i - 7 * 2]\n var Wi7l = W[i - 7 * 2 + 1]\n\n var Wi16h = W[i - 16 * 2]\n var Wi16l = W[i - 16 * 2 + 1]\n\n var Wil = (gamma0l + Wi7l) | 0\n var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) | 0\n Wil = (Wil + gamma1l) | 0\n Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) | 0\n Wil = (Wil + Wi16l) | 0\n Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) | 0\n\n W[i] = Wih\n W[i + 1] = Wil\n }\n\n for (var j = 0; j < 160; j += 2) {\n Wih = W[j]\n Wil = W[j + 1]\n\n var majh = maj(ah, bh, ch)\n var majl = maj(al, bl, cl)\n\n var sigma0h = sigma0(ah, al)\n var sigma0l = sigma0(al, ah)\n var sigma1h = sigma1(eh, el)\n var sigma1l = sigma1(el, eh)\n\n // t1 = h + sigma1 + ch + K[j] + W[j]\n var Kih = K[j]\n var Kil = K[j + 1]\n\n var chh = Ch(eh, fh, gh)\n var chl = Ch(el, fl, gl)\n\n var t1l = (hl + sigma1l) | 0\n var t1h = (hh + sigma1h + getCarry(t1l, hl)) | 0\n t1l = (t1l + chl) | 0\n t1h = (t1h + chh + getCarry(t1l, chl)) | 0\n t1l = (t1l + Kil) | 0\n t1h = (t1h + Kih + getCarry(t1l, Kil)) | 0\n t1l = (t1l + Wil) | 0\n t1h = (t1h + Wih + getCarry(t1l, Wil)) | 0\n\n // t2 = sigma0 + maj\n var t2l = (sigma0l + majl) | 0\n var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) | 0\n\n hh = gh\n hl = gl\n gh = fh\n gl = fl\n fh = eh\n fl = el\n el = (dl + t1l) | 0\n eh = (dh + t1h + getCarry(el, dl)) | 0\n dh = ch\n dl = cl\n ch = bh\n cl = bl\n bh = ah\n bl = al\n al = (t1l + t2l) | 0\n ah = (t1h + t2h + getCarry(al, t1l)) | 0\n }\n\n this._al = (this._al + al) | 0\n this._bl = (this._bl + bl) | 0\n this._cl = (this._cl + cl) | 0\n this._dl = (this._dl + dl) | 0\n this._el = (this._el + el) | 0\n this._fl = (this._fl + fl) | 0\n this._gl = (this._gl + gl) | 0\n this._hl = (this._hl + hl) | 0\n\n this._ah = (this._ah + ah + getCarry(this._al, al)) | 0\n this._bh = (this._bh + bh + getCarry(this._bl, bl)) | 0\n this._ch = (this._ch + ch + getCarry(this._cl, cl)) | 0\n this._dh = (this._dh + dh + getCarry(this._dl, dl)) | 0\n this._eh = (this._eh + eh + getCarry(this._el, el)) | 0\n this._fh = (this._fh + fh + getCarry(this._fl, fl)) | 0\n this._gh = (this._gh + gh + getCarry(this._gl, gl)) | 0\n this._hh = (this._hh + hh + getCarry(this._hl, hl)) | 0\n}\n\nSha512.prototype._hash = function () {\n var H = Buffer.allocUnsafe(64)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n writeInt64BE(this._gh, this._gl, 48)\n writeInt64BE(this._hh, this._hl, 56)\n\n return H\n}\n\nmodule.exports = Sha512\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nmodule.exports = Stream;\n\nvar EE = require('events').EventEmitter;\nvar inherits = require('inherits');\n\ninherits(Stream, EE);\nStream.Readable = require('readable-stream/lib/_stream_readable.js');\nStream.Writable = require('readable-stream/lib/_stream_writable.js');\nStream.Duplex = require('readable-stream/lib/_stream_duplex.js');\nStream.Transform = require('readable-stream/lib/_stream_transform.js');\nStream.PassThrough = require('readable-stream/lib/_stream_passthrough.js');\nStream.finished = require('readable-stream/lib/internal/streams/end-of-stream.js')\nStream.pipeline = require('readable-stream/lib/internal/streams/pipeline.js')\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\n\n\n// old-style streams. Note that the pipe method (the only relevant\n// part of this class) is overridden in the Readable class.\n\nfunction Stream() {\n EE.call(this);\n}\n\nStream.prototype.pipe = function(dest, options) {\n var source = this;\n\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n\n source.on('data', ondata);\n\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n\n dest.on('drain', ondrain);\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend);\n source.on('close', onclose);\n }\n\n var didOnEnd = false;\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n dest.end();\n }\n\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n if (typeof dest.destroy === 'function') dest.destroy();\n }\n\n // don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup();\n if (EE.listenerCount(this, 'error') === 0) {\n throw er; // Unhandled stream error in pipe.\n }\n }\n\n source.on('error', onerror);\n dest.on('error', onerror);\n\n // remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata);\n dest.removeListener('drain', ondrain);\n\n source.removeListener('end', onend);\n source.removeListener('close', onclose);\n\n source.removeListener('error', onerror);\n dest.removeListener('error', onerror);\n\n source.removeListener('end', cleanup);\n source.removeListener('close', cleanup);\n\n dest.removeListener('close', cleanup);\n }\n\n source.on('end', cleanup);\n source.on('close', cleanup);\n\n dest.on('close', cleanup);\n\n dest.emit('pipe', source);\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","\n/**\n * Module exports.\n */\n\nmodule.exports = deprecate;\n\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate (fn, msg) {\n if (config('noDeprecation')) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config('throwDeprecation')) {\n throw new Error(msg);\n } else if (config('traceDeprecation')) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\nfunction config (name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!global.localStorage) return false;\n } catch (_) {\n return false;\n }\n var val = global.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === 'true';\n}\n","!function(e,t){if(\"object\"==typeof exports&&\"object\"==typeof module)module.exports=t();else if(\"function\"==typeof define&&define.amd)define([],t);else{var r=t();for(var n in r)(\"object\"==typeof exports?exports:e)[n]=r[n]}}(this,(function(){return e={418:function(e,t){!function(e,t){for(var r in t)e[r]=t[r]}(t,function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.i=function(e){return e},r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:n})},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,\"a\",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p=\"\",r(r.s=1)}([function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=r(3),o=function(){function e(e,t){void 0===e&&(e={}),void 0===t&&(t={splitValues:!1});var r,o=this;this.headersMap={},e&&(\"undefined\"!=typeof Headers&&e instanceof Headers?n.getHeaderKeys(e).forEach((function(r){n.getHeaderValues(e,r).forEach((function(e){t.splitValues?o.append(r,n.splitHeaderValue(e)):o.append(r,e)}))})):\"object\"==typeof(r=e)&&\"object\"==typeof r.headersMap&&\"function\"==typeof r.forEach?e.forEach((function(e,t){o.append(e,t)})):\"undefined\"!=typeof Map&&e instanceof Map?e.forEach((function(e,t){o.append(t,e)})):\"string\"==typeof e?this.appendFromString(e):\"object\"==typeof e&&Object.getOwnPropertyNames(e).forEach((function(t){var r=e[t];Array.isArray(r)?r.forEach((function(e){o.append(t,e)})):o.append(t,r)})))}return e.prototype.appendFromString=function(e){for(var t=e.split(\"\\r\\n\"),r=0;r0){var s=n.substring(0,o).trim(),i=n.substring(o+1).trim();this.append(s,i)}}},e.prototype.delete=function(e,t){var r=n.normalizeName(e);if(void 0===t)delete this.headersMap[r];else{var o=this.headersMap[r];if(o){var s=o.indexOf(t);s>=0&&o.splice(s,1),0===o.length&&delete this.headersMap[r]}}},e.prototype.append=function(e,t){var r=this,o=n.normalizeName(e);Array.isArray(this.headersMap[o])||(this.headersMap[o]=[]),Array.isArray(t)?t.forEach((function(e){r.headersMap[o].push(n.normalizeValue(e))})):this.headersMap[o].push(n.normalizeValue(t))},e.prototype.set=function(e,t){var r=n.normalizeName(e);if(Array.isArray(t)){var o=[];t.forEach((function(e){o.push(n.normalizeValue(e))})),this.headersMap[r]=o}else this.headersMap[r]=[n.normalizeValue(t)]},e.prototype.has=function(e,t){var r=this.headersMap[n.normalizeName(e)];if(!Array.isArray(r))return!1;if(void 0!==t){var o=n.normalizeValue(t);return r.indexOf(o)>=0}return!0},e.prototype.get=function(e){var t=this.headersMap[n.normalizeName(e)];return void 0!==t?t.concat():[]},e.prototype.forEach=function(e){var t=this;Object.getOwnPropertyNames(this.headersMap).forEach((function(r){e(r,t.headersMap[r])}),this)},e.prototype.toHeaders=function(){if(\"undefined\"!=typeof Headers){var e=new Headers;return this.forEach((function(t,r){r.forEach((function(r){e.append(t,r)}))})),e}throw new Error(\"Headers class is not defined\")},e}();t.BrowserHeaders=o},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=r(0);t.BrowserHeaders=n.BrowserHeaders},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.iterateHeaders=function(e,t){for(var r=e[Symbol.iterator](),n=r.next();!n.done;)t(n.value[0]),n=r.next()},t.iterateHeadersKeys=function(e,t){for(var r=e.keys(),n=r.next();!n.done;)t(n.value),n=r.next()}},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=r(2);t.normalizeName=function(e){if(\"string\"!=typeof e&&(e=String(e)),/[^a-z0-9\\-#$%&'*+.\\^_`|~]/i.test(e))throw new TypeError(\"Invalid character in header field name\");return e.toLowerCase()},t.normalizeValue=function(e){return\"string\"!=typeof e&&(e=String(e)),e},t.getHeaderValues=function(e,t){var r=e;if(r instanceof Headers&&r.getAll)return r.getAll(t);var n=r.get(t);return n&&\"string\"==typeof n?[n]:n},t.getHeaderKeys=function(e){var t=e,r={},o=[];return t.keys?n.iterateHeadersKeys(t,(function(e){r[e]||(r[e]=!0,o.push(e))})):t.forEach?t.forEach((function(e,t){r[t]||(r[t]=!0,o.push(t))})):n.iterateHeaders(t,(function(e){var t=e[0];r[t]||(r[t]=!0,o.push(t))})),o},t.splitHeaderValue=function(e){var t=[];return e.split(\", \").forEach((function(e){e.split(\",\").forEach((function(e){t.push(e)}))})),t}}]))},617:function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.ChunkParser=t.ChunkType=t.encodeASCII=t.decodeASCII=void 0;var n,o=r(65);function s(e){return 9===(t=e)||10===t||13===t||e>=32&&e<=126;var t}function i(e){for(var t=0;t!==e.length;++t)if(!s(e[t]))throw new Error(\"Metadata is not valid (printable) ASCII\");return String.fromCharCode.apply(String,Array.prototype.slice.call(e))}function a(e){return 128==(128&e.getUint8(0))}function u(e){return e.getUint32(1,!1)}function d(e,t,r){return e.byteLength-t>=r}function c(e,t,r){if(e.slice)return e.slice(t,r);var n=e.length;void 0!==r&&(n=r);for(var o=new Uint8Array(n-t),s=0,i=t;i=0?r:s.httpStatusToCode(t);this.props.debug&&i.debug(\"onHeaders.code\",n);var o=e.get(\"grpc-message\")||[];if(this.props.debug&&i.debug(\"onHeaders.gRPCMessage\",o),this.rawOnHeaders(e),n!==s.Code.OK){var a=this.decodeGRPCStatus(o[0]);this.rawOnError(n,a,e)}}},e.prototype.onTransportChunk=function(e){var t=this;if(this.closed)this.props.debug&&i.debug(\"grpc.onChunk received after request was closed - ignoring\");else{var r=[];try{r=this.parser.parse(e)}catch(e){return this.props.debug&&i.debug(\"onChunk.parsing error\",e,e.message),void this.rawOnError(s.Code.Internal,\"parsing error: \"+e.message)}r.forEach((function(e){if(e.chunkType===o.ChunkType.MESSAGE){var r=t.methodDefinition.responseType.deserializeBinary(e.data);t.rawOnMessage(r)}else e.chunkType===o.ChunkType.TRAILERS&&(t.responseHeaders?(t.responseTrailers=new n.Metadata(e.trailers),t.props.debug&&i.debug(\"onChunk.trailers\",t.responseTrailers)):(t.responseHeaders=new n.Metadata(e.trailers),t.rawOnHeaders(t.responseHeaders)))}))}},e.prototype.onTransportEnd=function(){if(this.props.debug&&i.debug(\"grpc.onEnd\"),this.closed)this.props.debug&&i.debug(\"grpc.onEnd received after request was closed - ignoring\");else if(void 0!==this.responseTrailers){var e=c(this.responseTrailers);if(null!==e){var t=this.responseTrailers.get(\"grpc-message\"),r=this.decodeGRPCStatus(t[0]);this.rawOnEnd(e,r,this.responseTrailers)}else this.rawOnError(s.Code.Internal,\"Response closed without grpc-status (Trailers provided)\")}else{if(void 0===this.responseHeaders)return void this.rawOnError(s.Code.Unknown,\"Response closed without headers\");var n=c(this.responseHeaders),o=this.responseHeaders.get(\"grpc-message\");if(this.props.debug&&i.debug(\"grpc.headers only response \",n,o),null===n)return void this.rawOnEnd(s.Code.Unknown,\"Response closed without grpc-status (Headers only)\",this.responseHeaders);var a=this.decodeGRPCStatus(o[0]);this.rawOnEnd(n,a,this.responseHeaders)}},e.prototype.decodeGRPCStatus=function(e){if(!e)return\"\";try{return decodeURIComponent(e)}catch(t){return e}},e.prototype.rawOnEnd=function(e,t,r){var n=this;this.props.debug&&i.debug(\"rawOnEnd\",e,t,r),this.completed||(this.completed=!0,this.onEndCallbacks.forEach((function(o){if(!n.closed)try{o(e,t,r)}catch(e){setTimeout((function(){throw e}),0)}})))},e.prototype.rawOnHeaders=function(e){this.props.debug&&i.debug(\"rawOnHeaders\",e),this.completed||this.onHeadersCallbacks.forEach((function(t){try{t(e)}catch(e){setTimeout((function(){throw e}),0)}}))},e.prototype.rawOnError=function(e,t,r){var o=this;void 0===r&&(r=new n.Metadata),this.props.debug&&i.debug(\"rawOnError\",e,t),this.completed||(this.completed=!0,this.onEndCallbacks.forEach((function(n){if(!o.closed)try{n(e,t,r)}catch(e){setTimeout((function(){throw e}),0)}})))},e.prototype.rawOnMessage=function(e){var t=this;this.props.debug&&i.debug(\"rawOnMessage\",e.toObject()),this.completed||this.closed||this.onMessageCallbacks.forEach((function(r){if(!t.closed)try{r(e)}catch(e){setTimeout((function(){throw e}),0)}}))},e.prototype.onHeaders=function(e){this.onHeadersCallbacks.push(e)},e.prototype.onMessage=function(e){this.onMessageCallbacks.push(e)},e.prototype.onEnd=function(e){this.onEndCallbacks.push(e)},e.prototype.start=function(e){if(this.started)throw new Error(\"Client already started - cannot .start()\");this.started=!0;var t=new n.Metadata(e||{});t.set(\"content-type\",\"application/grpc-web+proto\"),t.set(\"x-grpc-web\",\"1\"),this.transport.start(t)},e.prototype.send=function(e){if(!this.started)throw new Error(\"Client not started - .start() must be called before .send()\");if(this.closed)throw new Error(\"Client already closed - cannot .send()\");if(this.finishedSending)throw new Error(\"Client already finished sending - cannot .send()\");if(!this.methodDefinition.requestStream&&this.sentFirstMessage)throw new Error(\"Message already sent for non-client-streaming method - cannot .send()\");this.sentFirstMessage=!0;var t=u.frameRequest(e);this.transport.sendMessage(t)},e.prototype.finishSend=function(){if(!this.started)throw new Error(\"Client not started - .finishSend() must be called before .close()\");if(this.closed)throw new Error(\"Client already closed - cannot .send()\");if(this.finishedSending)throw new Error(\"Client already finished sending - cannot .finishSend()\");this.finishedSending=!0,this.transport.finishSend()},e.prototype.close=function(){if(!this.started)throw new Error(\"Client not started - .start() must be called before .close()\");if(this.closed)throw new Error(\"Client already closed - cannot .close()\");this.closed=!0,this.props.debug&&i.debug(\"request.abort aborting request\"),this.transport.cancel()},e}();function c(e){var t=e.get(\"grpc-status\")||[];if(t.length>0)try{var r=t[0];return parseInt(r,10)}catch(e){return null}return null}},346:function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.debug=void 0,t.debug=function(){for(var e=[],t=0;t=55296&&r<=56319){var n=e.charCodeAt(t+1);n>=56320&&n<=57343&&(r=65536+(r-55296<<10)+(n-56320))}return r}function p(e){for(var t=new Uint8Array(e.length),r=0,n=0;n} Promisified function\r\n */\r\nfunction asPromise(fn, ctx/*, varargs */) {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0,\r\n index = 2,\r\n pending = true;\r\n while (index < arguments.length)\r\n params[offset++] = arguments[index++];\r\n return new Promise(function executor(resolve, reject) {\r\n params[offset] = function callback(err/*, varargs */) {\r\n if (pending) {\r\n pending = false;\r\n if (err)\r\n reject(err);\r\n else {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0;\r\n while (offset < params.length)\r\n params[offset++] = arguments[offset];\r\n resolve.apply(null, params);\r\n }\r\n }\r\n };\r\n try {\r\n fn.apply(ctx || null, params);\r\n } catch (err) {\r\n if (pending) {\r\n pending = false;\r\n reject(err);\r\n }\r\n }\r\n });\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal base64 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar base64 = exports;\r\n\r\n/**\r\n * Calculates the byte length of a base64 encoded string.\r\n * @param {string} string Base64 encoded string\r\n * @returns {number} Byte length\r\n */\r\nbase64.length = function length(string) {\r\n var p = string.length;\r\n if (!p)\r\n return 0;\r\n var n = 0;\r\n while (--p % 4 > 1 && string.charAt(p) === \"=\")\r\n ++n;\r\n return Math.ceil(string.length * 3) / 4 - n;\r\n};\r\n\r\n// Base64 encoding table\r\nvar b64 = new Array(64);\r\n\r\n// Base64 decoding table\r\nvar s64 = new Array(123);\r\n\r\n// 65..90, 97..122, 48..57, 43, 47\r\nfor (var i = 0; i < 64;)\r\n s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;\r\n\r\n/**\r\n * Encodes a buffer to a base64 encoded string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} Base64 encoded string\r\n */\r\nbase64.encode = function encode(buffer, start, end) {\r\n var parts = null,\r\n chunk = [];\r\n var i = 0, // output index\r\n j = 0, // goto index\r\n t; // temporary\r\n while (start < end) {\r\n var b = buffer[start++];\r\n switch (j) {\r\n case 0:\r\n chunk[i++] = b64[b >> 2];\r\n t = (b & 3) << 4;\r\n j = 1;\r\n break;\r\n case 1:\r\n chunk[i++] = b64[t | b >> 4];\r\n t = (b & 15) << 2;\r\n j = 2;\r\n break;\r\n case 2:\r\n chunk[i++] = b64[t | b >> 6];\r\n chunk[i++] = b64[b & 63];\r\n j = 0;\r\n break;\r\n }\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (j) {\r\n chunk[i++] = b64[t];\r\n chunk[i++] = 61;\r\n if (j === 1)\r\n chunk[i++] = 61;\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\nvar invalidEncoding = \"invalid encoding\";\r\n\r\n/**\r\n * Decodes a base64 encoded string to a buffer.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Number of bytes written\r\n * @throws {Error} If encoding is invalid\r\n */\r\nbase64.decode = function decode(string, buffer, offset) {\r\n var start = offset;\r\n var j = 0, // goto index\r\n t; // temporary\r\n for (var i = 0; i < string.length;) {\r\n var c = string.charCodeAt(i++);\r\n if (c === 61 && j > 1)\r\n break;\r\n if ((c = s64[c]) === undefined)\r\n throw Error(invalidEncoding);\r\n switch (j) {\r\n case 0:\r\n t = c;\r\n j = 1;\r\n break;\r\n case 1:\r\n buffer[offset++] = t << 2 | (c & 48) >> 4;\r\n t = c;\r\n j = 2;\r\n break;\r\n case 2:\r\n buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;\r\n t = c;\r\n j = 3;\r\n break;\r\n case 3:\r\n buffer[offset++] = (t & 3) << 6 | c;\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j === 1)\r\n throw Error(invalidEncoding);\r\n return offset - start;\r\n};\r\n\r\n/**\r\n * Tests if the specified string appears to be base64 encoded.\r\n * @param {string} string String to test\r\n * @returns {boolean} `true` if probably base64 encoded, otherwise false\r\n */\r\nbase64.test = function test(string) {\r\n return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(string);\r\n};\r\n","\"use strict\";\r\nmodule.exports = EventEmitter;\r\n\r\n/**\r\n * Constructs a new event emitter instance.\r\n * @classdesc A minimal event emitter.\r\n * @memberof util\r\n * @constructor\r\n */\r\nfunction EventEmitter() {\r\n\r\n /**\r\n * Registered listeners.\r\n * @type {Object.}\r\n * @private\r\n */\r\n this._listeners = {};\r\n}\r\n\r\n/**\r\n * Registers an event listener.\r\n * @param {string} evt Event name\r\n * @param {function} fn Listener\r\n * @param {*} [ctx] Listener context\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.on = function on(evt, fn, ctx) {\r\n (this._listeners[evt] || (this._listeners[evt] = [])).push({\r\n fn : fn,\r\n ctx : ctx || this\r\n });\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes an event listener or any matching listeners if arguments are omitted.\r\n * @param {string} [evt] Event name. Removes all listeners if omitted.\r\n * @param {function} [fn] Listener to remove. Removes all listeners of `evt` if omitted.\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.off = function off(evt, fn) {\r\n if (evt === undefined)\r\n this._listeners = {};\r\n else {\r\n if (fn === undefined)\r\n this._listeners[evt] = [];\r\n else {\r\n var listeners = this._listeners[evt];\r\n for (var i = 0; i < listeners.length;)\r\n if (listeners[i].fn === fn)\r\n listeners.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Emits an event by calling its listeners with the specified arguments.\r\n * @param {string} evt Event name\r\n * @param {...*} args Arguments\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.emit = function emit(evt) {\r\n var listeners = this._listeners[evt];\r\n if (listeners) {\r\n var args = [],\r\n i = 1;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n for (i = 0; i < listeners.length;)\r\n listeners[i].fn.apply(listeners[i++].ctx, args);\r\n }\r\n return this;\r\n};\r\n","\"use strict\";\r\n\r\nmodule.exports = factory(factory);\r\n\r\n/**\r\n * Reads / writes floats / doubles from / to buffers.\r\n * @name util.float\r\n * @namespace\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using little endian byte order.\r\n * @name util.float.writeFloatLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using big endian byte order.\r\n * @name util.float.writeFloatBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using little endian byte order.\r\n * @name util.float.readFloatLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using big endian byte order.\r\n * @name util.float.readFloatBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using little endian byte order.\r\n * @name util.float.writeDoubleLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using big endian byte order.\r\n * @name util.float.writeDoubleBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using little endian byte order.\r\n * @name util.float.readDoubleLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using big endian byte order.\r\n * @name util.float.readDoubleBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n// Factory function for the purpose of node-based testing in modified global environments\r\nfunction factory(exports) {\r\n\r\n // float: typed array\r\n if (typeof Float32Array !== \"undefined\") (function() {\r\n\r\n var f32 = new Float32Array([ -0 ]),\r\n f8b = new Uint8Array(f32.buffer),\r\n le = f8b[3] === 128;\r\n\r\n function writeFloat_f32_cpy(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n }\r\n\r\n function writeFloat_f32_rev(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[3];\r\n buf[pos + 1] = f8b[2];\r\n buf[pos + 2] = f8b[1];\r\n buf[pos + 3] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeFloatLE = le ? writeFloat_f32_cpy : writeFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.writeFloatBE = le ? writeFloat_f32_rev : writeFloat_f32_cpy;\r\n\r\n function readFloat_f32_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n function readFloat_f32_rev(buf, pos) {\r\n f8b[3] = buf[pos ];\r\n f8b[2] = buf[pos + 1];\r\n f8b[1] = buf[pos + 2];\r\n f8b[0] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readFloatLE = le ? readFloat_f32_cpy : readFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.readFloatBE = le ? readFloat_f32_rev : readFloat_f32_cpy;\r\n\r\n // float: ieee754\r\n })(); else (function() {\r\n\r\n function writeFloat_ieee754(writeUint, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0)\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos);\r\n else if (isNaN(val))\r\n writeUint(2143289344, buf, pos);\r\n else if (val > 3.4028234663852886e+38) // +-Infinity\r\n writeUint((sign << 31 | 2139095040) >>> 0, buf, pos);\r\n else if (val < 1.1754943508222875e-38) // denormal\r\n writeUint((sign << 31 | Math.round(val / 1.401298464324817e-45)) >>> 0, buf, pos);\r\n else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2),\r\n mantissa = Math.round(val * Math.pow(2, -exponent) * 8388608) & 8388607;\r\n writeUint((sign << 31 | exponent + 127 << 23 | mantissa) >>> 0, buf, pos);\r\n }\r\n }\r\n\r\n exports.writeFloatLE = writeFloat_ieee754.bind(null, writeUintLE);\r\n exports.writeFloatBE = writeFloat_ieee754.bind(null, writeUintBE);\r\n\r\n function readFloat_ieee754(readUint, buf, pos) {\r\n var uint = readUint(buf, pos),\r\n sign = (uint >> 31) * 2 + 1,\r\n exponent = uint >>> 23 & 255,\r\n mantissa = uint & 8388607;\r\n return exponent === 255\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 1.401298464324817e-45 * mantissa\r\n : sign * Math.pow(2, exponent - 150) * (mantissa + 8388608);\r\n }\r\n\r\n exports.readFloatLE = readFloat_ieee754.bind(null, readUintLE);\r\n exports.readFloatBE = readFloat_ieee754.bind(null, readUintBE);\r\n\r\n })();\r\n\r\n // double: typed array\r\n if (typeof Float64Array !== \"undefined\") (function() {\r\n\r\n var f64 = new Float64Array([-0]),\r\n f8b = new Uint8Array(f64.buffer),\r\n le = f8b[7] === 128;\r\n\r\n function writeDouble_f64_cpy(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n buf[pos + 4] = f8b[4];\r\n buf[pos + 5] = f8b[5];\r\n buf[pos + 6] = f8b[6];\r\n buf[pos + 7] = f8b[7];\r\n }\r\n\r\n function writeDouble_f64_rev(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[7];\r\n buf[pos + 1] = f8b[6];\r\n buf[pos + 2] = f8b[5];\r\n buf[pos + 3] = f8b[4];\r\n buf[pos + 4] = f8b[3];\r\n buf[pos + 5] = f8b[2];\r\n buf[pos + 6] = f8b[1];\r\n buf[pos + 7] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeDoubleLE = le ? writeDouble_f64_cpy : writeDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.writeDoubleBE = le ? writeDouble_f64_rev : writeDouble_f64_cpy;\r\n\r\n function readDouble_f64_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n f8b[4] = buf[pos + 4];\r\n f8b[5] = buf[pos + 5];\r\n f8b[6] = buf[pos + 6];\r\n f8b[7] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n function readDouble_f64_rev(buf, pos) {\r\n f8b[7] = buf[pos ];\r\n f8b[6] = buf[pos + 1];\r\n f8b[5] = buf[pos + 2];\r\n f8b[4] = buf[pos + 3];\r\n f8b[3] = buf[pos + 4];\r\n f8b[2] = buf[pos + 5];\r\n f8b[1] = buf[pos + 6];\r\n f8b[0] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readDoubleLE = le ? readDouble_f64_cpy : readDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.readDoubleBE = le ? readDouble_f64_rev : readDouble_f64_cpy;\r\n\r\n // double: ieee754\r\n })(); else (function() {\r\n\r\n function writeDouble_ieee754(writeUint, off0, off1, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos + off1);\r\n } else if (isNaN(val)) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(2146959360, buf, pos + off1);\r\n } else if (val > 1.7976931348623157e+308) { // +-Infinity\r\n writeUint(0, buf, pos + off0);\r\n writeUint((sign << 31 | 2146435072) >>> 0, buf, pos + off1);\r\n } else {\r\n var mantissa;\r\n if (val < 2.2250738585072014e-308) { // denormal\r\n mantissa = val / 5e-324;\r\n writeUint(mantissa >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | mantissa / 4294967296) >>> 0, buf, pos + off1);\r\n } else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2);\r\n if (exponent === 1024)\r\n exponent = 1023;\r\n mantissa = val * Math.pow(2, -exponent);\r\n writeUint(mantissa * 4503599627370496 >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | exponent + 1023 << 20 | mantissa * 1048576 & 1048575) >>> 0, buf, pos + off1);\r\n }\r\n }\r\n }\r\n\r\n exports.writeDoubleLE = writeDouble_ieee754.bind(null, writeUintLE, 0, 4);\r\n exports.writeDoubleBE = writeDouble_ieee754.bind(null, writeUintBE, 4, 0);\r\n\r\n function readDouble_ieee754(readUint, off0, off1, buf, pos) {\r\n var lo = readUint(buf, pos + off0),\r\n hi = readUint(buf, pos + off1);\r\n var sign = (hi >> 31) * 2 + 1,\r\n exponent = hi >>> 20 & 2047,\r\n mantissa = 4294967296 * (hi & 1048575) + lo;\r\n return exponent === 2047\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 5e-324 * mantissa\r\n : sign * Math.pow(2, exponent - 1075) * (mantissa + 4503599627370496);\r\n }\r\n\r\n exports.readDoubleLE = readDouble_ieee754.bind(null, readUintLE, 0, 4);\r\n exports.readDoubleBE = readDouble_ieee754.bind(null, readUintBE, 4, 0);\r\n\r\n })();\r\n\r\n return exports;\r\n}\r\n\r\n// uint helpers\r\n\r\nfunction writeUintLE(val, buf, pos) {\r\n buf[pos ] = val & 255;\r\n buf[pos + 1] = val >>> 8 & 255;\r\n buf[pos + 2] = val >>> 16 & 255;\r\n buf[pos + 3] = val >>> 24;\r\n}\r\n\r\nfunction writeUintBE(val, buf, pos) {\r\n buf[pos ] = val >>> 24;\r\n buf[pos + 1] = val >>> 16 & 255;\r\n buf[pos + 2] = val >>> 8 & 255;\r\n buf[pos + 3] = val & 255;\r\n}\r\n\r\nfunction readUintLE(buf, pos) {\r\n return (buf[pos ]\r\n | buf[pos + 1] << 8\r\n | buf[pos + 2] << 16\r\n | buf[pos + 3] << 24) >>> 0;\r\n}\r\n\r\nfunction readUintBE(buf, pos) {\r\n return (buf[pos ] << 24\r\n | buf[pos + 1] << 16\r\n | buf[pos + 2] << 8\r\n | buf[pos + 3]) >>> 0;\r\n}\r\n","\"use strict\";\r\nmodule.exports = inquire;\r\n\r\n/**\r\n * Requires a module only if available.\r\n * @memberof util\r\n * @param {string} moduleName Module to require\r\n * @returns {?Object} Required module if available and not empty, otherwise `null`\r\n */\r\nfunction inquire(moduleName) {\r\n try {\r\n var mod = eval(\"quire\".replace(/^/,\"re\"))(moduleName); // eslint-disable-line no-eval\r\n if (mod && (mod.length || Object.keys(mod).length))\r\n return mod;\r\n } catch (e) {} // eslint-disable-line no-empty\r\n return null;\r\n}\r\n","\"use strict\";\r\nmodule.exports = pool;\r\n\r\n/**\r\n * An allocator as used by {@link util.pool}.\r\n * @typedef PoolAllocator\r\n * @type {function}\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\n\r\n/**\r\n * A slicer as used by {@link util.pool}.\r\n * @typedef PoolSlicer\r\n * @type {function}\r\n * @param {number} start Start offset\r\n * @param {number} end End offset\r\n * @returns {Uint8Array} Buffer slice\r\n * @this {Uint8Array}\r\n */\r\n\r\n/**\r\n * A general purpose buffer pool.\r\n * @memberof util\r\n * @function\r\n * @param {PoolAllocator} alloc Allocator\r\n * @param {PoolSlicer} slice Slicer\r\n * @param {number} [size=8192] Slab size\r\n * @returns {PoolAllocator} Pooled allocator\r\n */\r\nfunction pool(alloc, slice, size) {\r\n var SIZE = size || 8192;\r\n var MAX = SIZE >>> 1;\r\n var slab = null;\r\n var offset = SIZE;\r\n return function pool_alloc(size) {\r\n if (size < 1 || size > MAX)\r\n return alloc(size);\r\n if (offset + size > SIZE) {\r\n slab = alloc(SIZE);\r\n offset = 0;\r\n }\r\n var buf = slice.call(slab, offset, offset += size);\r\n if (offset & 7) // align to 32 bit\r\n offset = (offset | 7) + 1;\r\n return buf;\r\n };\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal UTF8 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar utf8 = exports;\r\n\r\n/**\r\n * Calculates the UTF8 byte length of a string.\r\n * @param {string} string String\r\n * @returns {number} Byte length\r\n */\r\nutf8.length = function utf8_length(string) {\r\n var len = 0,\r\n c = 0;\r\n for (var i = 0; i < string.length; ++i) {\r\n c = string.charCodeAt(i);\r\n if (c < 128)\r\n len += 1;\r\n else if (c < 2048)\r\n len += 2;\r\n else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) {\r\n ++i;\r\n len += 4;\r\n } else\r\n len += 3;\r\n }\r\n return len;\r\n};\r\n\r\n/**\r\n * Reads UTF8 bytes as a string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} String read\r\n */\r\nutf8.read = function utf8_read(buffer, start, end) {\r\n var len = end - start;\r\n if (len < 1)\r\n return \"\";\r\n var parts = null,\r\n chunk = [],\r\n i = 0, // char offset\r\n t; // temporary\r\n while (start < end) {\r\n t = buffer[start++];\r\n if (t < 128)\r\n chunk[i++] = t;\r\n else if (t > 191 && t < 224)\r\n chunk[i++] = (t & 31) << 6 | buffer[start++] & 63;\r\n else if (t > 239 && t < 365) {\r\n t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 0x10000;\r\n chunk[i++] = 0xD800 + (t >> 10);\r\n chunk[i++] = 0xDC00 + (t & 1023);\r\n } else\r\n chunk[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63;\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\n/**\r\n * Writes a string as UTF8 bytes.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Bytes written\r\n */\r\nutf8.write = function utf8_write(string, buffer, offset) {\r\n var start = offset,\r\n c1, // character 1\r\n c2; // character 2\r\n for (var i = 0; i < string.length; ++i) {\r\n c1 = string.charCodeAt(i);\r\n if (c1 < 128) {\r\n buffer[offset++] = c1;\r\n } else if (c1 < 2048) {\r\n buffer[offset++] = c1 >> 6 | 192;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) {\r\n c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF);\r\n ++i;\r\n buffer[offset++] = c1 >> 18 | 240;\r\n buffer[offset++] = c1 >> 12 & 63 | 128;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else {\r\n buffer[offset++] = c1 >> 12 | 224;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n }\r\n }\r\n return offset - start;\r\n};\r\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CompressedNonExistenceProof = exports.CompressedExistenceProof = exports.CompressedBatchEntry = exports.CompressedBatchProof = exports.BatchEntry = exports.BatchProof = exports.InnerSpec = exports.ProofSpec = exports.InnerOp = exports.LeafOp = exports.CommitmentProof = exports.NonExistenceProof = exports.ExistenceProof = exports.lengthOpToJSON = exports.lengthOpFromJSON = exports.LengthOp = exports.hashOpToJSON = exports.hashOpFromJSON = exports.HashOp = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nexports.protobufPackage = \"ics23\";\nvar HashOp;\n(function (HashOp) {\n /** NO_HASH - NO_HASH is the default if no data passed. Note this is an illegal argument some places. */\n HashOp[HashOp[\"NO_HASH\"] = 0] = \"NO_HASH\";\n HashOp[HashOp[\"SHA256\"] = 1] = \"SHA256\";\n HashOp[HashOp[\"SHA512\"] = 2] = \"SHA512\";\n HashOp[HashOp[\"KECCAK\"] = 3] = \"KECCAK\";\n HashOp[HashOp[\"RIPEMD160\"] = 4] = \"RIPEMD160\";\n /** BITCOIN - ripemd160(sha256(x)) */\n HashOp[HashOp[\"BITCOIN\"] = 5] = \"BITCOIN\";\n HashOp[HashOp[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(HashOp = exports.HashOp || (exports.HashOp = {}));\nfunction hashOpFromJSON(object) {\n switch (object) {\n case 0:\n case \"NO_HASH\":\n return HashOp.NO_HASH;\n case 1:\n case \"SHA256\":\n return HashOp.SHA256;\n case 2:\n case \"SHA512\":\n return HashOp.SHA512;\n case 3:\n case \"KECCAK\":\n return HashOp.KECCAK;\n case 4:\n case \"RIPEMD160\":\n return HashOp.RIPEMD160;\n case 5:\n case \"BITCOIN\":\n return HashOp.BITCOIN;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return HashOp.UNRECOGNIZED;\n }\n}\nexports.hashOpFromJSON = hashOpFromJSON;\nfunction hashOpToJSON(object) {\n switch (object) {\n case HashOp.NO_HASH:\n return \"NO_HASH\";\n case HashOp.SHA256:\n return \"SHA256\";\n case HashOp.SHA512:\n return \"SHA512\";\n case HashOp.KECCAK:\n return \"KECCAK\";\n case HashOp.RIPEMD160:\n return \"RIPEMD160\";\n case HashOp.BITCOIN:\n return \"BITCOIN\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.hashOpToJSON = hashOpToJSON;\n/**\n * LengthOp defines how to process the key and value of the LeafOp\n * to include length information. After encoding the length with the given\n * algorithm, the length will be prepended to the key and value bytes.\n * (Each one with it's own encoded length)\n */\nvar LengthOp;\n(function (LengthOp) {\n /** NO_PREFIX - NO_PREFIX don't include any length info */\n LengthOp[LengthOp[\"NO_PREFIX\"] = 0] = \"NO_PREFIX\";\n /** VAR_PROTO - VAR_PROTO uses protobuf (and go-amino) varint encoding of the length */\n LengthOp[LengthOp[\"VAR_PROTO\"] = 1] = \"VAR_PROTO\";\n /** VAR_RLP - VAR_RLP uses rlp int encoding of the length */\n LengthOp[LengthOp[\"VAR_RLP\"] = 2] = \"VAR_RLP\";\n /** FIXED32_BIG - FIXED32_BIG uses big-endian encoding of the length as a 32 bit integer */\n LengthOp[LengthOp[\"FIXED32_BIG\"] = 3] = \"FIXED32_BIG\";\n /** FIXED32_LITTLE - FIXED32_LITTLE uses little-endian encoding of the length as a 32 bit integer */\n LengthOp[LengthOp[\"FIXED32_LITTLE\"] = 4] = \"FIXED32_LITTLE\";\n /** FIXED64_BIG - FIXED64_BIG uses big-endian encoding of the length as a 64 bit integer */\n LengthOp[LengthOp[\"FIXED64_BIG\"] = 5] = \"FIXED64_BIG\";\n /** FIXED64_LITTLE - FIXED64_LITTLE uses little-endian encoding of the length as a 64 bit integer */\n LengthOp[LengthOp[\"FIXED64_LITTLE\"] = 6] = \"FIXED64_LITTLE\";\n /** REQUIRE_32_BYTES - REQUIRE_32_BYTES is like NONE, but will fail if the input is not exactly 32 bytes (sha256 output) */\n LengthOp[LengthOp[\"REQUIRE_32_BYTES\"] = 7] = \"REQUIRE_32_BYTES\";\n /** REQUIRE_64_BYTES - REQUIRE_64_BYTES is like NONE, but will fail if the input is not exactly 64 bytes (sha512 output) */\n LengthOp[LengthOp[\"REQUIRE_64_BYTES\"] = 8] = \"REQUIRE_64_BYTES\";\n LengthOp[LengthOp[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(LengthOp = exports.LengthOp || (exports.LengthOp = {}));\nfunction lengthOpFromJSON(object) {\n switch (object) {\n case 0:\n case \"NO_PREFIX\":\n return LengthOp.NO_PREFIX;\n case 1:\n case \"VAR_PROTO\":\n return LengthOp.VAR_PROTO;\n case 2:\n case \"VAR_RLP\":\n return LengthOp.VAR_RLP;\n case 3:\n case \"FIXED32_BIG\":\n return LengthOp.FIXED32_BIG;\n case 4:\n case \"FIXED32_LITTLE\":\n return LengthOp.FIXED32_LITTLE;\n case 5:\n case \"FIXED64_BIG\":\n return LengthOp.FIXED64_BIG;\n case 6:\n case \"FIXED64_LITTLE\":\n return LengthOp.FIXED64_LITTLE;\n case 7:\n case \"REQUIRE_32_BYTES\":\n return LengthOp.REQUIRE_32_BYTES;\n case 8:\n case \"REQUIRE_64_BYTES\":\n return LengthOp.REQUIRE_64_BYTES;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return LengthOp.UNRECOGNIZED;\n }\n}\nexports.lengthOpFromJSON = lengthOpFromJSON;\nfunction lengthOpToJSON(object) {\n switch (object) {\n case LengthOp.NO_PREFIX:\n return \"NO_PREFIX\";\n case LengthOp.VAR_PROTO:\n return \"VAR_PROTO\";\n case LengthOp.VAR_RLP:\n return \"VAR_RLP\";\n case LengthOp.FIXED32_BIG:\n return \"FIXED32_BIG\";\n case LengthOp.FIXED32_LITTLE:\n return \"FIXED32_LITTLE\";\n case LengthOp.FIXED64_BIG:\n return \"FIXED64_BIG\";\n case LengthOp.FIXED64_LITTLE:\n return \"FIXED64_LITTLE\";\n case LengthOp.REQUIRE_32_BYTES:\n return \"REQUIRE_32_BYTES\";\n case LengthOp.REQUIRE_64_BYTES:\n return \"REQUIRE_64_BYTES\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.lengthOpToJSON = lengthOpToJSON;\nconst baseExistenceProof = {};\nexports.ExistenceProof = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n if (message.value.length !== 0) {\n writer.uint32(18).bytes(message.value);\n }\n if (message.leaf !== undefined) {\n exports.LeafOp.encode(message.leaf, writer.uint32(26).fork()).ldelim();\n }\n for (const v of message.path) {\n exports.InnerOp.encode(v, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseExistenceProof);\n message.path = [];\n message.key = new Uint8Array();\n message.value = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n case 2:\n message.value = reader.bytes();\n break;\n case 3:\n message.leaf = exports.LeafOp.decode(reader, reader.uint32());\n break;\n case 4:\n message.path.push(exports.InnerOp.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseExistenceProof);\n message.path = [];\n message.key = new Uint8Array();\n message.value = new Uint8Array();\n if (object.key !== undefined && object.key !== null) {\n message.key = bytesFromBase64(object.key);\n }\n if (object.value !== undefined && object.value !== null) {\n message.value = bytesFromBase64(object.value);\n }\n if (object.leaf !== undefined && object.leaf !== null) {\n message.leaf = exports.LeafOp.fromJSON(object.leaf);\n }\n else {\n message.leaf = undefined;\n }\n if (object.path !== undefined && object.path !== null) {\n for (const e of object.path) {\n message.path.push(exports.InnerOp.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined &&\n (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));\n message.value !== undefined &&\n (obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array()));\n message.leaf !== undefined && (obj.leaf = message.leaf ? exports.LeafOp.toJSON(message.leaf) : undefined);\n if (message.path) {\n obj.path = message.path.map((e) => (e ? exports.InnerOp.toJSON(e) : undefined));\n }\n else {\n obj.path = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseExistenceProof);\n message.path = [];\n if (object.key !== undefined && object.key !== null) {\n message.key = object.key;\n }\n else {\n message.key = new Uint8Array();\n }\n if (object.value !== undefined && object.value !== null) {\n message.value = object.value;\n }\n else {\n message.value = new Uint8Array();\n }\n if (object.leaf !== undefined && object.leaf !== null) {\n message.leaf = exports.LeafOp.fromPartial(object.leaf);\n }\n else {\n message.leaf = undefined;\n }\n if (object.path !== undefined && object.path !== null) {\n for (const e of object.path) {\n message.path.push(exports.InnerOp.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseNonExistenceProof = {};\nexports.NonExistenceProof = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n if (message.left !== undefined) {\n exports.ExistenceProof.encode(message.left, writer.uint32(18).fork()).ldelim();\n }\n if (message.right !== undefined) {\n exports.ExistenceProof.encode(message.right, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseNonExistenceProof);\n message.key = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n case 2:\n message.left = exports.ExistenceProof.decode(reader, reader.uint32());\n break;\n case 3:\n message.right = exports.ExistenceProof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseNonExistenceProof);\n message.key = new Uint8Array();\n if (object.key !== undefined && object.key !== null) {\n message.key = bytesFromBase64(object.key);\n }\n if (object.left !== undefined && object.left !== null) {\n message.left = exports.ExistenceProof.fromJSON(object.left);\n }\n else {\n message.left = undefined;\n }\n if (object.right !== undefined && object.right !== null) {\n message.right = exports.ExistenceProof.fromJSON(object.right);\n }\n else {\n message.right = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined &&\n (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));\n message.left !== undefined && (obj.left = message.left ? exports.ExistenceProof.toJSON(message.left) : undefined);\n message.right !== undefined &&\n (obj.right = message.right ? exports.ExistenceProof.toJSON(message.right) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseNonExistenceProof);\n if (object.key !== undefined && object.key !== null) {\n message.key = object.key;\n }\n else {\n message.key = new Uint8Array();\n }\n if (object.left !== undefined && object.left !== null) {\n message.left = exports.ExistenceProof.fromPartial(object.left);\n }\n else {\n message.left = undefined;\n }\n if (object.right !== undefined && object.right !== null) {\n message.right = exports.ExistenceProof.fromPartial(object.right);\n }\n else {\n message.right = undefined;\n }\n return message;\n },\n};\nconst baseCommitmentProof = {};\nexports.CommitmentProof = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.exist !== undefined) {\n exports.ExistenceProof.encode(message.exist, writer.uint32(10).fork()).ldelim();\n }\n if (message.nonexist !== undefined) {\n exports.NonExistenceProof.encode(message.nonexist, writer.uint32(18).fork()).ldelim();\n }\n if (message.batch !== undefined) {\n exports.BatchProof.encode(message.batch, writer.uint32(26).fork()).ldelim();\n }\n if (message.compressed !== undefined) {\n exports.CompressedBatchProof.encode(message.compressed, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseCommitmentProof);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.exist = exports.ExistenceProof.decode(reader, reader.uint32());\n break;\n case 2:\n message.nonexist = exports.NonExistenceProof.decode(reader, reader.uint32());\n break;\n case 3:\n message.batch = exports.BatchProof.decode(reader, reader.uint32());\n break;\n case 4:\n message.compressed = exports.CompressedBatchProof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseCommitmentProof);\n if (object.exist !== undefined && object.exist !== null) {\n message.exist = exports.ExistenceProof.fromJSON(object.exist);\n }\n else {\n message.exist = undefined;\n }\n if (object.nonexist !== undefined && object.nonexist !== null) {\n message.nonexist = exports.NonExistenceProof.fromJSON(object.nonexist);\n }\n else {\n message.nonexist = undefined;\n }\n if (object.batch !== undefined && object.batch !== null) {\n message.batch = exports.BatchProof.fromJSON(object.batch);\n }\n else {\n message.batch = undefined;\n }\n if (object.compressed !== undefined && object.compressed !== null) {\n message.compressed = exports.CompressedBatchProof.fromJSON(object.compressed);\n }\n else {\n message.compressed = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.exist !== undefined &&\n (obj.exist = message.exist ? exports.ExistenceProof.toJSON(message.exist) : undefined);\n message.nonexist !== undefined &&\n (obj.nonexist = message.nonexist ? exports.NonExistenceProof.toJSON(message.nonexist) : undefined);\n message.batch !== undefined && (obj.batch = message.batch ? exports.BatchProof.toJSON(message.batch) : undefined);\n message.compressed !== undefined &&\n (obj.compressed = message.compressed ? exports.CompressedBatchProof.toJSON(message.compressed) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseCommitmentProof);\n if (object.exist !== undefined && object.exist !== null) {\n message.exist = exports.ExistenceProof.fromPartial(object.exist);\n }\n else {\n message.exist = undefined;\n }\n if (object.nonexist !== undefined && object.nonexist !== null) {\n message.nonexist = exports.NonExistenceProof.fromPartial(object.nonexist);\n }\n else {\n message.nonexist = undefined;\n }\n if (object.batch !== undefined && object.batch !== null) {\n message.batch = exports.BatchProof.fromPartial(object.batch);\n }\n else {\n message.batch = undefined;\n }\n if (object.compressed !== undefined && object.compressed !== null) {\n message.compressed = exports.CompressedBatchProof.fromPartial(object.compressed);\n }\n else {\n message.compressed = undefined;\n }\n return message;\n },\n};\nconst baseLeafOp = { hash: 0, prehashKey: 0, prehashValue: 0, length: 0 };\nexports.LeafOp = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.hash !== 0) {\n writer.uint32(8).int32(message.hash);\n }\n if (message.prehashKey !== 0) {\n writer.uint32(16).int32(message.prehashKey);\n }\n if (message.prehashValue !== 0) {\n writer.uint32(24).int32(message.prehashValue);\n }\n if (message.length !== 0) {\n writer.uint32(32).int32(message.length);\n }\n if (message.prefix.length !== 0) {\n writer.uint32(42).bytes(message.prefix);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseLeafOp);\n message.prefix = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hash = reader.int32();\n break;\n case 2:\n message.prehashKey = reader.int32();\n break;\n case 3:\n message.prehashValue = reader.int32();\n break;\n case 4:\n message.length = reader.int32();\n break;\n case 5:\n message.prefix = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseLeafOp);\n message.prefix = new Uint8Array();\n if (object.hash !== undefined && object.hash !== null) {\n message.hash = hashOpFromJSON(object.hash);\n }\n else {\n message.hash = 0;\n }\n if (object.prehashKey !== undefined && object.prehashKey !== null) {\n message.prehashKey = hashOpFromJSON(object.prehashKey);\n }\n else {\n message.prehashKey = 0;\n }\n if (object.prehashValue !== undefined && object.prehashValue !== null) {\n message.prehashValue = hashOpFromJSON(object.prehashValue);\n }\n else {\n message.prehashValue = 0;\n }\n if (object.length !== undefined && object.length !== null) {\n message.length = lengthOpFromJSON(object.length);\n }\n else {\n message.length = 0;\n }\n if (object.prefix !== undefined && object.prefix !== null) {\n message.prefix = bytesFromBase64(object.prefix);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.hash !== undefined && (obj.hash = hashOpToJSON(message.hash));\n message.prehashKey !== undefined && (obj.prehashKey = hashOpToJSON(message.prehashKey));\n message.prehashValue !== undefined && (obj.prehashValue = hashOpToJSON(message.prehashValue));\n message.length !== undefined && (obj.length = lengthOpToJSON(message.length));\n message.prefix !== undefined &&\n (obj.prefix = base64FromBytes(message.prefix !== undefined ? message.prefix : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseLeafOp);\n if (object.hash !== undefined && object.hash !== null) {\n message.hash = object.hash;\n }\n else {\n message.hash = 0;\n }\n if (object.prehashKey !== undefined && object.prehashKey !== null) {\n message.prehashKey = object.prehashKey;\n }\n else {\n message.prehashKey = 0;\n }\n if (object.prehashValue !== undefined && object.prehashValue !== null) {\n message.prehashValue = object.prehashValue;\n }\n else {\n message.prehashValue = 0;\n }\n if (object.length !== undefined && object.length !== null) {\n message.length = object.length;\n }\n else {\n message.length = 0;\n }\n if (object.prefix !== undefined && object.prefix !== null) {\n message.prefix = object.prefix;\n }\n else {\n message.prefix = new Uint8Array();\n }\n return message;\n },\n};\nconst baseInnerOp = { hash: 0 };\nexports.InnerOp = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.hash !== 0) {\n writer.uint32(8).int32(message.hash);\n }\n if (message.prefix.length !== 0) {\n writer.uint32(18).bytes(message.prefix);\n }\n if (message.suffix.length !== 0) {\n writer.uint32(26).bytes(message.suffix);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseInnerOp);\n message.prefix = new Uint8Array();\n message.suffix = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hash = reader.int32();\n break;\n case 2:\n message.prefix = reader.bytes();\n break;\n case 3:\n message.suffix = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseInnerOp);\n message.prefix = new Uint8Array();\n message.suffix = new Uint8Array();\n if (object.hash !== undefined && object.hash !== null) {\n message.hash = hashOpFromJSON(object.hash);\n }\n else {\n message.hash = 0;\n }\n if (object.prefix !== undefined && object.prefix !== null) {\n message.prefix = bytesFromBase64(object.prefix);\n }\n if (object.suffix !== undefined && object.suffix !== null) {\n message.suffix = bytesFromBase64(object.suffix);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.hash !== undefined && (obj.hash = hashOpToJSON(message.hash));\n message.prefix !== undefined &&\n (obj.prefix = base64FromBytes(message.prefix !== undefined ? message.prefix : new Uint8Array()));\n message.suffix !== undefined &&\n (obj.suffix = base64FromBytes(message.suffix !== undefined ? message.suffix : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseInnerOp);\n if (object.hash !== undefined && object.hash !== null) {\n message.hash = object.hash;\n }\n else {\n message.hash = 0;\n }\n if (object.prefix !== undefined && object.prefix !== null) {\n message.prefix = object.prefix;\n }\n else {\n message.prefix = new Uint8Array();\n }\n if (object.suffix !== undefined && object.suffix !== null) {\n message.suffix = object.suffix;\n }\n else {\n message.suffix = new Uint8Array();\n }\n return message;\n },\n};\nconst baseProofSpec = { maxDepth: 0, minDepth: 0 };\nexports.ProofSpec = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.leafSpec !== undefined) {\n exports.LeafOp.encode(message.leafSpec, writer.uint32(10).fork()).ldelim();\n }\n if (message.innerSpec !== undefined) {\n exports.InnerSpec.encode(message.innerSpec, writer.uint32(18).fork()).ldelim();\n }\n if (message.maxDepth !== 0) {\n writer.uint32(24).int32(message.maxDepth);\n }\n if (message.minDepth !== 0) {\n writer.uint32(32).int32(message.minDepth);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseProofSpec);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.leafSpec = exports.LeafOp.decode(reader, reader.uint32());\n break;\n case 2:\n message.innerSpec = exports.InnerSpec.decode(reader, reader.uint32());\n break;\n case 3:\n message.maxDepth = reader.int32();\n break;\n case 4:\n message.minDepth = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseProofSpec);\n if (object.leafSpec !== undefined && object.leafSpec !== null) {\n message.leafSpec = exports.LeafOp.fromJSON(object.leafSpec);\n }\n else {\n message.leafSpec = undefined;\n }\n if (object.innerSpec !== undefined && object.innerSpec !== null) {\n message.innerSpec = exports.InnerSpec.fromJSON(object.innerSpec);\n }\n else {\n message.innerSpec = undefined;\n }\n if (object.maxDepth !== undefined && object.maxDepth !== null) {\n message.maxDepth = Number(object.maxDepth);\n }\n else {\n message.maxDepth = 0;\n }\n if (object.minDepth !== undefined && object.minDepth !== null) {\n message.minDepth = Number(object.minDepth);\n }\n else {\n message.minDepth = 0;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.leafSpec !== undefined &&\n (obj.leafSpec = message.leafSpec ? exports.LeafOp.toJSON(message.leafSpec) : undefined);\n message.innerSpec !== undefined &&\n (obj.innerSpec = message.innerSpec ? exports.InnerSpec.toJSON(message.innerSpec) : undefined);\n message.maxDepth !== undefined && (obj.maxDepth = message.maxDepth);\n message.minDepth !== undefined && (obj.minDepth = message.minDepth);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseProofSpec);\n if (object.leafSpec !== undefined && object.leafSpec !== null) {\n message.leafSpec = exports.LeafOp.fromPartial(object.leafSpec);\n }\n else {\n message.leafSpec = undefined;\n }\n if (object.innerSpec !== undefined && object.innerSpec !== null) {\n message.innerSpec = exports.InnerSpec.fromPartial(object.innerSpec);\n }\n else {\n message.innerSpec = undefined;\n }\n if (object.maxDepth !== undefined && object.maxDepth !== null) {\n message.maxDepth = object.maxDepth;\n }\n else {\n message.maxDepth = 0;\n }\n if (object.minDepth !== undefined && object.minDepth !== null) {\n message.minDepth = object.minDepth;\n }\n else {\n message.minDepth = 0;\n }\n return message;\n },\n};\nconst baseInnerSpec = {\n childOrder: 0,\n childSize: 0,\n minPrefixLength: 0,\n maxPrefixLength: 0,\n hash: 0,\n};\nexports.InnerSpec = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n writer.uint32(10).fork();\n for (const v of message.childOrder) {\n writer.int32(v);\n }\n writer.ldelim();\n if (message.childSize !== 0) {\n writer.uint32(16).int32(message.childSize);\n }\n if (message.minPrefixLength !== 0) {\n writer.uint32(24).int32(message.minPrefixLength);\n }\n if (message.maxPrefixLength !== 0) {\n writer.uint32(32).int32(message.maxPrefixLength);\n }\n if (message.emptyChild.length !== 0) {\n writer.uint32(42).bytes(message.emptyChild);\n }\n if (message.hash !== 0) {\n writer.uint32(48).int32(message.hash);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseInnerSpec);\n message.childOrder = [];\n message.emptyChild = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if ((tag & 7) === 2) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.childOrder.push(reader.int32());\n }\n }\n else {\n message.childOrder.push(reader.int32());\n }\n break;\n case 2:\n message.childSize = reader.int32();\n break;\n case 3:\n message.minPrefixLength = reader.int32();\n break;\n case 4:\n message.maxPrefixLength = reader.int32();\n break;\n case 5:\n message.emptyChild = reader.bytes();\n break;\n case 6:\n message.hash = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseInnerSpec);\n message.childOrder = [];\n message.emptyChild = new Uint8Array();\n if (object.childOrder !== undefined && object.childOrder !== null) {\n for (const e of object.childOrder) {\n message.childOrder.push(Number(e));\n }\n }\n if (object.childSize !== undefined && object.childSize !== null) {\n message.childSize = Number(object.childSize);\n }\n else {\n message.childSize = 0;\n }\n if (object.minPrefixLength !== undefined && object.minPrefixLength !== null) {\n message.minPrefixLength = Number(object.minPrefixLength);\n }\n else {\n message.minPrefixLength = 0;\n }\n if (object.maxPrefixLength !== undefined && object.maxPrefixLength !== null) {\n message.maxPrefixLength = Number(object.maxPrefixLength);\n }\n else {\n message.maxPrefixLength = 0;\n }\n if (object.emptyChild !== undefined && object.emptyChild !== null) {\n message.emptyChild = bytesFromBase64(object.emptyChild);\n }\n if (object.hash !== undefined && object.hash !== null) {\n message.hash = hashOpFromJSON(object.hash);\n }\n else {\n message.hash = 0;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.childOrder) {\n obj.childOrder = message.childOrder.map((e) => e);\n }\n else {\n obj.childOrder = [];\n }\n message.childSize !== undefined && (obj.childSize = message.childSize);\n message.minPrefixLength !== undefined && (obj.minPrefixLength = message.minPrefixLength);\n message.maxPrefixLength !== undefined && (obj.maxPrefixLength = message.maxPrefixLength);\n message.emptyChild !== undefined &&\n (obj.emptyChild = base64FromBytes(message.emptyChild !== undefined ? message.emptyChild : new Uint8Array()));\n message.hash !== undefined && (obj.hash = hashOpToJSON(message.hash));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseInnerSpec);\n message.childOrder = [];\n if (object.childOrder !== undefined && object.childOrder !== null) {\n for (const e of object.childOrder) {\n message.childOrder.push(e);\n }\n }\n if (object.childSize !== undefined && object.childSize !== null) {\n message.childSize = object.childSize;\n }\n else {\n message.childSize = 0;\n }\n if (object.minPrefixLength !== undefined && object.minPrefixLength !== null) {\n message.minPrefixLength = object.minPrefixLength;\n }\n else {\n message.minPrefixLength = 0;\n }\n if (object.maxPrefixLength !== undefined && object.maxPrefixLength !== null) {\n message.maxPrefixLength = object.maxPrefixLength;\n }\n else {\n message.maxPrefixLength = 0;\n }\n if (object.emptyChild !== undefined && object.emptyChild !== null) {\n message.emptyChild = object.emptyChild;\n }\n else {\n message.emptyChild = new Uint8Array();\n }\n if (object.hash !== undefined && object.hash !== null) {\n message.hash = object.hash;\n }\n else {\n message.hash = 0;\n }\n return message;\n },\n};\nconst baseBatchProof = {};\nexports.BatchProof = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.entries) {\n exports.BatchEntry.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseBatchProof);\n message.entries = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.entries.push(exports.BatchEntry.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseBatchProof);\n message.entries = [];\n if (object.entries !== undefined && object.entries !== null) {\n for (const e of object.entries) {\n message.entries.push(exports.BatchEntry.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.entries) {\n obj.entries = message.entries.map((e) => (e ? exports.BatchEntry.toJSON(e) : undefined));\n }\n else {\n obj.entries = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseBatchProof);\n message.entries = [];\n if (object.entries !== undefined && object.entries !== null) {\n for (const e of object.entries) {\n message.entries.push(exports.BatchEntry.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseBatchEntry = {};\nexports.BatchEntry = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.exist !== undefined) {\n exports.ExistenceProof.encode(message.exist, writer.uint32(10).fork()).ldelim();\n }\n if (message.nonexist !== undefined) {\n exports.NonExistenceProof.encode(message.nonexist, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseBatchEntry);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.exist = exports.ExistenceProof.decode(reader, reader.uint32());\n break;\n case 2:\n message.nonexist = exports.NonExistenceProof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseBatchEntry);\n if (object.exist !== undefined && object.exist !== null) {\n message.exist = exports.ExistenceProof.fromJSON(object.exist);\n }\n else {\n message.exist = undefined;\n }\n if (object.nonexist !== undefined && object.nonexist !== null) {\n message.nonexist = exports.NonExistenceProof.fromJSON(object.nonexist);\n }\n else {\n message.nonexist = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.exist !== undefined &&\n (obj.exist = message.exist ? exports.ExistenceProof.toJSON(message.exist) : undefined);\n message.nonexist !== undefined &&\n (obj.nonexist = message.nonexist ? exports.NonExistenceProof.toJSON(message.nonexist) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseBatchEntry);\n if (object.exist !== undefined && object.exist !== null) {\n message.exist = exports.ExistenceProof.fromPartial(object.exist);\n }\n else {\n message.exist = undefined;\n }\n if (object.nonexist !== undefined && object.nonexist !== null) {\n message.nonexist = exports.NonExistenceProof.fromPartial(object.nonexist);\n }\n else {\n message.nonexist = undefined;\n }\n return message;\n },\n};\nconst baseCompressedBatchProof = {};\nexports.CompressedBatchProof = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.entries) {\n exports.CompressedBatchEntry.encode(v, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.lookupInners) {\n exports.InnerOp.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseCompressedBatchProof);\n message.entries = [];\n message.lookupInners = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.entries.push(exports.CompressedBatchEntry.decode(reader, reader.uint32()));\n break;\n case 2:\n message.lookupInners.push(exports.InnerOp.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseCompressedBatchProof);\n message.entries = [];\n message.lookupInners = [];\n if (object.entries !== undefined && object.entries !== null) {\n for (const e of object.entries) {\n message.entries.push(exports.CompressedBatchEntry.fromJSON(e));\n }\n }\n if (object.lookupInners !== undefined && object.lookupInners !== null) {\n for (const e of object.lookupInners) {\n message.lookupInners.push(exports.InnerOp.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.entries) {\n obj.entries = message.entries.map((e) => (e ? exports.CompressedBatchEntry.toJSON(e) : undefined));\n }\n else {\n obj.entries = [];\n }\n if (message.lookupInners) {\n obj.lookupInners = message.lookupInners.map((e) => (e ? exports.InnerOp.toJSON(e) : undefined));\n }\n else {\n obj.lookupInners = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseCompressedBatchProof);\n message.entries = [];\n message.lookupInners = [];\n if (object.entries !== undefined && object.entries !== null) {\n for (const e of object.entries) {\n message.entries.push(exports.CompressedBatchEntry.fromPartial(e));\n }\n }\n if (object.lookupInners !== undefined && object.lookupInners !== null) {\n for (const e of object.lookupInners) {\n message.lookupInners.push(exports.InnerOp.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseCompressedBatchEntry = {};\nexports.CompressedBatchEntry = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.exist !== undefined) {\n exports.CompressedExistenceProof.encode(message.exist, writer.uint32(10).fork()).ldelim();\n }\n if (message.nonexist !== undefined) {\n exports.CompressedNonExistenceProof.encode(message.nonexist, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseCompressedBatchEntry);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.exist = exports.CompressedExistenceProof.decode(reader, reader.uint32());\n break;\n case 2:\n message.nonexist = exports.CompressedNonExistenceProof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseCompressedBatchEntry);\n if (object.exist !== undefined && object.exist !== null) {\n message.exist = exports.CompressedExistenceProof.fromJSON(object.exist);\n }\n else {\n message.exist = undefined;\n }\n if (object.nonexist !== undefined && object.nonexist !== null) {\n message.nonexist = exports.CompressedNonExistenceProof.fromJSON(object.nonexist);\n }\n else {\n message.nonexist = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.exist !== undefined &&\n (obj.exist = message.exist ? exports.CompressedExistenceProof.toJSON(message.exist) : undefined);\n message.nonexist !== undefined &&\n (obj.nonexist = message.nonexist ? exports.CompressedNonExistenceProof.toJSON(message.nonexist) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseCompressedBatchEntry);\n if (object.exist !== undefined && object.exist !== null) {\n message.exist = exports.CompressedExistenceProof.fromPartial(object.exist);\n }\n else {\n message.exist = undefined;\n }\n if (object.nonexist !== undefined && object.nonexist !== null) {\n message.nonexist = exports.CompressedNonExistenceProof.fromPartial(object.nonexist);\n }\n else {\n message.nonexist = undefined;\n }\n return message;\n },\n};\nconst baseCompressedExistenceProof = { path: 0 };\nexports.CompressedExistenceProof = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n if (message.value.length !== 0) {\n writer.uint32(18).bytes(message.value);\n }\n if (message.leaf !== undefined) {\n exports.LeafOp.encode(message.leaf, writer.uint32(26).fork()).ldelim();\n }\n writer.uint32(34).fork();\n for (const v of message.path) {\n writer.int32(v);\n }\n writer.ldelim();\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseCompressedExistenceProof);\n message.path = [];\n message.key = new Uint8Array();\n message.value = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n case 2:\n message.value = reader.bytes();\n break;\n case 3:\n message.leaf = exports.LeafOp.decode(reader, reader.uint32());\n break;\n case 4:\n if ((tag & 7) === 2) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.path.push(reader.int32());\n }\n }\n else {\n message.path.push(reader.int32());\n }\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseCompressedExistenceProof);\n message.path = [];\n message.key = new Uint8Array();\n message.value = new Uint8Array();\n if (object.key !== undefined && object.key !== null) {\n message.key = bytesFromBase64(object.key);\n }\n if (object.value !== undefined && object.value !== null) {\n message.value = bytesFromBase64(object.value);\n }\n if (object.leaf !== undefined && object.leaf !== null) {\n message.leaf = exports.LeafOp.fromJSON(object.leaf);\n }\n else {\n message.leaf = undefined;\n }\n if (object.path !== undefined && object.path !== null) {\n for (const e of object.path) {\n message.path.push(Number(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined &&\n (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));\n message.value !== undefined &&\n (obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array()));\n message.leaf !== undefined && (obj.leaf = message.leaf ? exports.LeafOp.toJSON(message.leaf) : undefined);\n if (message.path) {\n obj.path = message.path.map((e) => e);\n }\n else {\n obj.path = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseCompressedExistenceProof);\n message.path = [];\n if (object.key !== undefined && object.key !== null) {\n message.key = object.key;\n }\n else {\n message.key = new Uint8Array();\n }\n if (object.value !== undefined && object.value !== null) {\n message.value = object.value;\n }\n else {\n message.value = new Uint8Array();\n }\n if (object.leaf !== undefined && object.leaf !== null) {\n message.leaf = exports.LeafOp.fromPartial(object.leaf);\n }\n else {\n message.leaf = undefined;\n }\n if (object.path !== undefined && object.path !== null) {\n for (const e of object.path) {\n message.path.push(e);\n }\n }\n return message;\n },\n};\nconst baseCompressedNonExistenceProof = {};\nexports.CompressedNonExistenceProof = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n if (message.left !== undefined) {\n exports.CompressedExistenceProof.encode(message.left, writer.uint32(18).fork()).ldelim();\n }\n if (message.right !== undefined) {\n exports.CompressedExistenceProof.encode(message.right, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseCompressedNonExistenceProof);\n message.key = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n case 2:\n message.left = exports.CompressedExistenceProof.decode(reader, reader.uint32());\n break;\n case 3:\n message.right = exports.CompressedExistenceProof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseCompressedNonExistenceProof);\n message.key = new Uint8Array();\n if (object.key !== undefined && object.key !== null) {\n message.key = bytesFromBase64(object.key);\n }\n if (object.left !== undefined && object.left !== null) {\n message.left = exports.CompressedExistenceProof.fromJSON(object.left);\n }\n else {\n message.left = undefined;\n }\n if (object.right !== undefined && object.right !== null) {\n message.right = exports.CompressedExistenceProof.fromJSON(object.right);\n }\n else {\n message.right = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined &&\n (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));\n message.left !== undefined &&\n (obj.left = message.left ? exports.CompressedExistenceProof.toJSON(message.left) : undefined);\n message.right !== undefined &&\n (obj.right = message.right ? exports.CompressedExistenceProof.toJSON(message.right) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseCompressedNonExistenceProof);\n if (object.key !== undefined && object.key !== null) {\n message.key = object.key;\n }\n else {\n message.key = new Uint8Array();\n }\n if (object.left !== undefined && object.left !== null) {\n message.left = exports.CompressedExistenceProof.fromPartial(object.left);\n }\n else {\n message.left = undefined;\n }\n if (object.right !== undefined && object.right !== null) {\n message.right = exports.CompressedExistenceProof.fromPartial(object.right);\n }\n else {\n message.right = undefined;\n }\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=proofs.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Params = exports.ModuleAccount = exports.BaseAccount = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst any_1 = require(\"../../../google/protobuf/any\");\nexports.protobufPackage = \"cosmos.auth.v1beta1\";\nconst baseBaseAccount = { address: \"\", accountNumber: long_1.default.UZERO, sequence: long_1.default.UZERO };\nexports.BaseAccount = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.pubKey !== undefined) {\n any_1.Any.encode(message.pubKey, writer.uint32(18).fork()).ldelim();\n }\n if (!message.accountNumber.isZero()) {\n writer.uint32(24).uint64(message.accountNumber);\n }\n if (!message.sequence.isZero()) {\n writer.uint32(32).uint64(message.sequence);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseBaseAccount);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.pubKey = any_1.Any.decode(reader, reader.uint32());\n break;\n case 3:\n message.accountNumber = reader.uint64();\n break;\n case 4:\n message.sequence = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseBaseAccount);\n if (object.address !== undefined && object.address !== null) {\n message.address = String(object.address);\n }\n else {\n message.address = \"\";\n }\n if (object.pubKey !== undefined && object.pubKey !== null) {\n message.pubKey = any_1.Any.fromJSON(object.pubKey);\n }\n else {\n message.pubKey = undefined;\n }\n if (object.accountNumber !== undefined && object.accountNumber !== null) {\n message.accountNumber = long_1.default.fromString(object.accountNumber);\n }\n else {\n message.accountNumber = long_1.default.UZERO;\n }\n if (object.sequence !== undefined && object.sequence !== null) {\n message.sequence = long_1.default.fromString(object.sequence);\n }\n else {\n message.sequence = long_1.default.UZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n message.pubKey !== undefined && (obj.pubKey = message.pubKey ? any_1.Any.toJSON(message.pubKey) : undefined);\n message.accountNumber !== undefined &&\n (obj.accountNumber = (message.accountNumber || long_1.default.UZERO).toString());\n message.sequence !== undefined && (obj.sequence = (message.sequence || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseBaseAccount);\n if (object.address !== undefined && object.address !== null) {\n message.address = object.address;\n }\n else {\n message.address = \"\";\n }\n if (object.pubKey !== undefined && object.pubKey !== null) {\n message.pubKey = any_1.Any.fromPartial(object.pubKey);\n }\n else {\n message.pubKey = undefined;\n }\n if (object.accountNumber !== undefined && object.accountNumber !== null) {\n message.accountNumber = object.accountNumber;\n }\n else {\n message.accountNumber = long_1.default.UZERO;\n }\n if (object.sequence !== undefined && object.sequence !== null) {\n message.sequence = object.sequence;\n }\n else {\n message.sequence = long_1.default.UZERO;\n }\n return message;\n },\n};\nconst baseModuleAccount = { name: \"\", permissions: \"\" };\nexports.ModuleAccount = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.baseAccount !== undefined) {\n exports.BaseAccount.encode(message.baseAccount, writer.uint32(10).fork()).ldelim();\n }\n if (message.name !== \"\") {\n writer.uint32(18).string(message.name);\n }\n for (const v of message.permissions) {\n writer.uint32(26).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseModuleAccount);\n message.permissions = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.baseAccount = exports.BaseAccount.decode(reader, reader.uint32());\n break;\n case 2:\n message.name = reader.string();\n break;\n case 3:\n message.permissions.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseModuleAccount);\n message.permissions = [];\n if (object.baseAccount !== undefined && object.baseAccount !== null) {\n message.baseAccount = exports.BaseAccount.fromJSON(object.baseAccount);\n }\n else {\n message.baseAccount = undefined;\n }\n if (object.name !== undefined && object.name !== null) {\n message.name = String(object.name);\n }\n else {\n message.name = \"\";\n }\n if (object.permissions !== undefined && object.permissions !== null) {\n for (const e of object.permissions) {\n message.permissions.push(String(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.baseAccount !== undefined &&\n (obj.baseAccount = message.baseAccount ? exports.BaseAccount.toJSON(message.baseAccount) : undefined);\n message.name !== undefined && (obj.name = message.name);\n if (message.permissions) {\n obj.permissions = message.permissions.map((e) => e);\n }\n else {\n obj.permissions = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseModuleAccount);\n message.permissions = [];\n if (object.baseAccount !== undefined && object.baseAccount !== null) {\n message.baseAccount = exports.BaseAccount.fromPartial(object.baseAccount);\n }\n else {\n message.baseAccount = undefined;\n }\n if (object.name !== undefined && object.name !== null) {\n message.name = object.name;\n }\n else {\n message.name = \"\";\n }\n if (object.permissions !== undefined && object.permissions !== null) {\n for (const e of object.permissions) {\n message.permissions.push(e);\n }\n }\n return message;\n },\n};\nconst baseParams = {\n maxMemoCharacters: long_1.default.UZERO,\n txSigLimit: long_1.default.UZERO,\n txSizeCostPerByte: long_1.default.UZERO,\n sigVerifyCostEd25519: long_1.default.UZERO,\n sigVerifyCostSecp256k1: long_1.default.UZERO,\n};\nexports.Params = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.maxMemoCharacters.isZero()) {\n writer.uint32(8).uint64(message.maxMemoCharacters);\n }\n if (!message.txSigLimit.isZero()) {\n writer.uint32(16).uint64(message.txSigLimit);\n }\n if (!message.txSizeCostPerByte.isZero()) {\n writer.uint32(24).uint64(message.txSizeCostPerByte);\n }\n if (!message.sigVerifyCostEd25519.isZero()) {\n writer.uint32(32).uint64(message.sigVerifyCostEd25519);\n }\n if (!message.sigVerifyCostSecp256k1.isZero()) {\n writer.uint32(40).uint64(message.sigVerifyCostSecp256k1);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseParams);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.maxMemoCharacters = reader.uint64();\n break;\n case 2:\n message.txSigLimit = reader.uint64();\n break;\n case 3:\n message.txSizeCostPerByte = reader.uint64();\n break;\n case 4:\n message.sigVerifyCostEd25519 = reader.uint64();\n break;\n case 5:\n message.sigVerifyCostSecp256k1 = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseParams);\n if (object.maxMemoCharacters !== undefined && object.maxMemoCharacters !== null) {\n message.maxMemoCharacters = long_1.default.fromString(object.maxMemoCharacters);\n }\n else {\n message.maxMemoCharacters = long_1.default.UZERO;\n }\n if (object.txSigLimit !== undefined && object.txSigLimit !== null) {\n message.txSigLimit = long_1.default.fromString(object.txSigLimit);\n }\n else {\n message.txSigLimit = long_1.default.UZERO;\n }\n if (object.txSizeCostPerByte !== undefined && object.txSizeCostPerByte !== null) {\n message.txSizeCostPerByte = long_1.default.fromString(object.txSizeCostPerByte);\n }\n else {\n message.txSizeCostPerByte = long_1.default.UZERO;\n }\n if (object.sigVerifyCostEd25519 !== undefined && object.sigVerifyCostEd25519 !== null) {\n message.sigVerifyCostEd25519 = long_1.default.fromString(object.sigVerifyCostEd25519);\n }\n else {\n message.sigVerifyCostEd25519 = long_1.default.UZERO;\n }\n if (object.sigVerifyCostSecp256k1 !== undefined && object.sigVerifyCostSecp256k1 !== null) {\n message.sigVerifyCostSecp256k1 = long_1.default.fromString(object.sigVerifyCostSecp256k1);\n }\n else {\n message.sigVerifyCostSecp256k1 = long_1.default.UZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.maxMemoCharacters !== undefined &&\n (obj.maxMemoCharacters = (message.maxMemoCharacters || long_1.default.UZERO).toString());\n message.txSigLimit !== undefined && (obj.txSigLimit = (message.txSigLimit || long_1.default.UZERO).toString());\n message.txSizeCostPerByte !== undefined &&\n (obj.txSizeCostPerByte = (message.txSizeCostPerByte || long_1.default.UZERO).toString());\n message.sigVerifyCostEd25519 !== undefined &&\n (obj.sigVerifyCostEd25519 = (message.sigVerifyCostEd25519 || long_1.default.UZERO).toString());\n message.sigVerifyCostSecp256k1 !== undefined &&\n (obj.sigVerifyCostSecp256k1 = (message.sigVerifyCostSecp256k1 || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseParams);\n if (object.maxMemoCharacters !== undefined && object.maxMemoCharacters !== null) {\n message.maxMemoCharacters = object.maxMemoCharacters;\n }\n else {\n message.maxMemoCharacters = long_1.default.UZERO;\n }\n if (object.txSigLimit !== undefined && object.txSigLimit !== null) {\n message.txSigLimit = object.txSigLimit;\n }\n else {\n message.txSigLimit = long_1.default.UZERO;\n }\n if (object.txSizeCostPerByte !== undefined && object.txSizeCostPerByte !== null) {\n message.txSizeCostPerByte = object.txSizeCostPerByte;\n }\n else {\n message.txSizeCostPerByte = long_1.default.UZERO;\n }\n if (object.sigVerifyCostEd25519 !== undefined && object.sigVerifyCostEd25519 !== null) {\n message.sigVerifyCostEd25519 = object.sigVerifyCostEd25519;\n }\n else {\n message.sigVerifyCostEd25519 = long_1.default.UZERO;\n }\n if (object.sigVerifyCostSecp256k1 !== undefined && object.sigVerifyCostSecp256k1 !== null) {\n message.sigVerifyCostSecp256k1 = object.sigVerifyCostSecp256k1;\n }\n else {\n message.sigVerifyCostSecp256k1 = long_1.default.UZERO;\n }\n return message;\n },\n};\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=auth.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GrantAuthorization = exports.Grant = exports.GenericAuthorization = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst timestamp_1 = require(\"../../../google/protobuf/timestamp\");\nexports.protobufPackage = \"cosmos.authz.v1beta1\";\nconst baseGenericAuthorization = { msg: \"\" };\nexports.GenericAuthorization = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.msg !== \"\") {\n writer.uint32(10).string(message.msg);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseGenericAuthorization);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.msg = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseGenericAuthorization);\n if (object.msg !== undefined && object.msg !== null) {\n message.msg = String(object.msg);\n }\n else {\n message.msg = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.msg !== undefined && (obj.msg = message.msg);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseGenericAuthorization);\n if (object.msg !== undefined && object.msg !== null) {\n message.msg = object.msg;\n }\n else {\n message.msg = \"\";\n }\n return message;\n },\n};\nconst baseGrant = {};\nexports.Grant = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.authorization !== undefined) {\n any_1.Any.encode(message.authorization, writer.uint32(10).fork()).ldelim();\n }\n if (message.expiration !== undefined) {\n timestamp_1.Timestamp.encode(toTimestamp(message.expiration), writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseGrant);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.authorization = any_1.Any.decode(reader, reader.uint32());\n break;\n case 2:\n message.expiration = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseGrant);\n if (object.authorization !== undefined && object.authorization !== null) {\n message.authorization = any_1.Any.fromJSON(object.authorization);\n }\n else {\n message.authorization = undefined;\n }\n if (object.expiration !== undefined && object.expiration !== null) {\n message.expiration = fromJsonTimestamp(object.expiration);\n }\n else {\n message.expiration = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.authorization !== undefined &&\n (obj.authorization = message.authorization ? any_1.Any.toJSON(message.authorization) : undefined);\n message.expiration !== undefined && (obj.expiration = message.expiration.toISOString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseGrant);\n if (object.authorization !== undefined && object.authorization !== null) {\n message.authorization = any_1.Any.fromPartial(object.authorization);\n }\n else {\n message.authorization = undefined;\n }\n if (object.expiration !== undefined && object.expiration !== null) {\n message.expiration = object.expiration;\n }\n else {\n message.expiration = undefined;\n }\n return message;\n },\n};\nconst baseGrantAuthorization = { granter: \"\", grantee: \"\" };\nexports.GrantAuthorization = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.granter !== \"\") {\n writer.uint32(10).string(message.granter);\n }\n if (message.grantee !== \"\") {\n writer.uint32(18).string(message.grantee);\n }\n if (message.authorization !== undefined) {\n any_1.Any.encode(message.authorization, writer.uint32(26).fork()).ldelim();\n }\n if (message.expiration !== undefined) {\n timestamp_1.Timestamp.encode(toTimestamp(message.expiration), writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseGrantAuthorization);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.granter = reader.string();\n break;\n case 2:\n message.grantee = reader.string();\n break;\n case 3:\n message.authorization = any_1.Any.decode(reader, reader.uint32());\n break;\n case 4:\n message.expiration = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseGrantAuthorization);\n if (object.granter !== undefined && object.granter !== null) {\n message.granter = String(object.granter);\n }\n else {\n message.granter = \"\";\n }\n if (object.grantee !== undefined && object.grantee !== null) {\n message.grantee = String(object.grantee);\n }\n else {\n message.grantee = \"\";\n }\n if (object.authorization !== undefined && object.authorization !== null) {\n message.authorization = any_1.Any.fromJSON(object.authorization);\n }\n else {\n message.authorization = undefined;\n }\n if (object.expiration !== undefined && object.expiration !== null) {\n message.expiration = fromJsonTimestamp(object.expiration);\n }\n else {\n message.expiration = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.granter !== undefined && (obj.granter = message.granter);\n message.grantee !== undefined && (obj.grantee = message.grantee);\n message.authorization !== undefined &&\n (obj.authorization = message.authorization ? any_1.Any.toJSON(message.authorization) : undefined);\n message.expiration !== undefined && (obj.expiration = message.expiration.toISOString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseGrantAuthorization);\n if (object.granter !== undefined && object.granter !== null) {\n message.granter = object.granter;\n }\n else {\n message.granter = \"\";\n }\n if (object.grantee !== undefined && object.grantee !== null) {\n message.grantee = object.grantee;\n }\n else {\n message.grantee = \"\";\n }\n if (object.authorization !== undefined && object.authorization !== null) {\n message.authorization = any_1.Any.fromPartial(object.authorization);\n }\n else {\n message.authorization = undefined;\n }\n if (object.expiration !== undefined && object.expiration !== null) {\n message.expiration = object.expiration;\n }\n else {\n message.expiration = undefined;\n }\n return message;\n },\n};\nfunction toTimestamp(date) {\n const seconds = numberToLong(date.getTime() / 1000);\n const nanos = (date.getTime() % 1000) * 1000000;\n return { seconds, nanos };\n}\nfunction fromTimestamp(t) {\n let millis = t.seconds.toNumber() * 1000;\n millis += t.nanos / 1000000;\n return new Date(millis);\n}\nfunction fromJsonTimestamp(o) {\n if (o instanceof Date) {\n return o;\n }\n else if (typeof o === \"string\") {\n return new Date(o);\n }\n else {\n return fromTimestamp(timestamp_1.Timestamp.fromJSON(o));\n }\n}\nfunction numberToLong(number) {\n return long_1.default.fromNumber(number);\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=authz.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GrpcWebImpl = exports.MsgRevokeDesc = exports.MsgExecDesc = exports.MsgGrantDesc = exports.MsgDesc = exports.MsgClientImpl = exports.MsgRevokeResponse = exports.MsgRevoke = exports.MsgGrantResponse = exports.MsgExec = exports.MsgExecResponse = exports.MsgGrant = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst grpc_web_1 = require(\"@improbable-eng/grpc-web\");\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst authz_1 = require(\"../../../cosmos/authz/v1beta1/authz\");\nconst browser_headers_1 = require(\"browser-headers\");\nconst any_1 = require(\"../../../google/protobuf/any\");\nexports.protobufPackage = \"cosmos.authz.v1beta1\";\nconst baseMsgGrant = { granter: \"\", grantee: \"\" };\nexports.MsgGrant = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.granter !== \"\") {\n writer.uint32(10).string(message.granter);\n }\n if (message.grantee !== \"\") {\n writer.uint32(18).string(message.grantee);\n }\n if (message.grant !== undefined) {\n authz_1.Grant.encode(message.grant, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgGrant);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.granter = reader.string();\n break;\n case 2:\n message.grantee = reader.string();\n break;\n case 3:\n message.grant = authz_1.Grant.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgGrant);\n if (object.granter !== undefined && object.granter !== null) {\n message.granter = String(object.granter);\n }\n else {\n message.granter = \"\";\n }\n if (object.grantee !== undefined && object.grantee !== null) {\n message.grantee = String(object.grantee);\n }\n else {\n message.grantee = \"\";\n }\n if (object.grant !== undefined && object.grant !== null) {\n message.grant = authz_1.Grant.fromJSON(object.grant);\n }\n else {\n message.grant = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.granter !== undefined && (obj.granter = message.granter);\n message.grantee !== undefined && (obj.grantee = message.grantee);\n message.grant !== undefined && (obj.grant = message.grant ? authz_1.Grant.toJSON(message.grant) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgGrant);\n if (object.granter !== undefined && object.granter !== null) {\n message.granter = object.granter;\n }\n else {\n message.granter = \"\";\n }\n if (object.grantee !== undefined && object.grantee !== null) {\n message.grantee = object.grantee;\n }\n else {\n message.grantee = \"\";\n }\n if (object.grant !== undefined && object.grant !== null) {\n message.grant = authz_1.Grant.fromPartial(object.grant);\n }\n else {\n message.grant = undefined;\n }\n return message;\n },\n};\nconst baseMsgExecResponse = {};\nexports.MsgExecResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.results) {\n writer.uint32(10).bytes(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgExecResponse);\n message.results = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.results.push(reader.bytes());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgExecResponse);\n message.results = [];\n if (object.results !== undefined && object.results !== null) {\n for (const e of object.results) {\n message.results.push(bytesFromBase64(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.results) {\n obj.results = message.results.map((e) => base64FromBytes(e !== undefined ? e : new Uint8Array()));\n }\n else {\n obj.results = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgExecResponse);\n message.results = [];\n if (object.results !== undefined && object.results !== null) {\n for (const e of object.results) {\n message.results.push(e);\n }\n }\n return message;\n },\n};\nconst baseMsgExec = { grantee: \"\" };\nexports.MsgExec = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.grantee !== \"\") {\n writer.uint32(10).string(message.grantee);\n }\n for (const v of message.msgs) {\n any_1.Any.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgExec);\n message.msgs = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.grantee = reader.string();\n break;\n case 2:\n message.msgs.push(any_1.Any.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgExec);\n message.msgs = [];\n if (object.grantee !== undefined && object.grantee !== null) {\n message.grantee = String(object.grantee);\n }\n else {\n message.grantee = \"\";\n }\n if (object.msgs !== undefined && object.msgs !== null) {\n for (const e of object.msgs) {\n message.msgs.push(any_1.Any.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.grantee !== undefined && (obj.grantee = message.grantee);\n if (message.msgs) {\n obj.msgs = message.msgs.map((e) => (e ? any_1.Any.toJSON(e) : undefined));\n }\n else {\n obj.msgs = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgExec);\n message.msgs = [];\n if (object.grantee !== undefined && object.grantee !== null) {\n message.grantee = object.grantee;\n }\n else {\n message.grantee = \"\";\n }\n if (object.msgs !== undefined && object.msgs !== null) {\n for (const e of object.msgs) {\n message.msgs.push(any_1.Any.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseMsgGrantResponse = {};\nexports.MsgGrantResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgGrantResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgGrantResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgGrantResponse);\n return message;\n },\n};\nconst baseMsgRevoke = { granter: \"\", grantee: \"\", msgTypeUrl: \"\" };\nexports.MsgRevoke = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.granter !== \"\") {\n writer.uint32(10).string(message.granter);\n }\n if (message.grantee !== \"\") {\n writer.uint32(18).string(message.grantee);\n }\n if (message.msgTypeUrl !== \"\") {\n writer.uint32(26).string(message.msgTypeUrl);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgRevoke);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.granter = reader.string();\n break;\n case 2:\n message.grantee = reader.string();\n break;\n case 3:\n message.msgTypeUrl = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgRevoke);\n if (object.granter !== undefined && object.granter !== null) {\n message.granter = String(object.granter);\n }\n else {\n message.granter = \"\";\n }\n if (object.grantee !== undefined && object.grantee !== null) {\n message.grantee = String(object.grantee);\n }\n else {\n message.grantee = \"\";\n }\n if (object.msgTypeUrl !== undefined && object.msgTypeUrl !== null) {\n message.msgTypeUrl = String(object.msgTypeUrl);\n }\n else {\n message.msgTypeUrl = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.granter !== undefined && (obj.granter = message.granter);\n message.grantee !== undefined && (obj.grantee = message.grantee);\n message.msgTypeUrl !== undefined && (obj.msgTypeUrl = message.msgTypeUrl);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgRevoke);\n if (object.granter !== undefined && object.granter !== null) {\n message.granter = object.granter;\n }\n else {\n message.granter = \"\";\n }\n if (object.grantee !== undefined && object.grantee !== null) {\n message.grantee = object.grantee;\n }\n else {\n message.grantee = \"\";\n }\n if (object.msgTypeUrl !== undefined && object.msgTypeUrl !== null) {\n message.msgTypeUrl = object.msgTypeUrl;\n }\n else {\n message.msgTypeUrl = \"\";\n }\n return message;\n },\n};\nconst baseMsgRevokeResponse = {};\nexports.MsgRevokeResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgRevokeResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgRevokeResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgRevokeResponse);\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Grant = this.Grant.bind(this);\n this.Exec = this.Exec.bind(this);\n this.Revoke = this.Revoke.bind(this);\n }\n Grant(request, metadata) {\n return this.rpc.unary(exports.MsgGrantDesc, exports.MsgGrant.fromPartial(request), metadata);\n }\n Exec(request, metadata) {\n return this.rpc.unary(exports.MsgExecDesc, exports.MsgExec.fromPartial(request), metadata);\n }\n Revoke(request, metadata) {\n return this.rpc.unary(exports.MsgRevokeDesc, exports.MsgRevoke.fromPartial(request), metadata);\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\nexports.MsgDesc = {\n serviceName: \"cosmos.authz.v1beta1.Msg\",\n};\nexports.MsgGrantDesc = {\n methodName: \"Grant\",\n service: exports.MsgDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.MsgGrant.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.MsgGrantResponse.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nexports.MsgExecDesc = {\n methodName: \"Exec\",\n service: exports.MsgDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.MsgExec.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.MsgExecResponse.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nexports.MsgRevokeDesc = {\n methodName: \"Revoke\",\n service: exports.MsgDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.MsgRevoke.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.MsgRevokeResponse.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nclass GrpcWebImpl {\n constructor(host, options) {\n this.host = host;\n this.options = options;\n }\n unary(methodDesc, _request, metadata) {\n var _a;\n const request = Object.assign(Object.assign({}, _request), methodDesc.requestType);\n const maybeCombinedMetadata = metadata && this.options.metadata\n ? new browser_headers_1.BrowserHeaders(Object.assign(Object.assign({}, (_a = this.options) === null || _a === void 0 ? void 0 : _a.metadata.headersMap), metadata === null || metadata === void 0 ? void 0 : metadata.headersMap))\n : metadata || this.options.metadata;\n return new Promise((resolve, reject) => {\n grpc_web_1.grpc.unary(methodDesc, {\n request,\n host: this.host,\n metadata: maybeCombinedMetadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (response.status === grpc_web_1.grpc.Code.OK) {\n resolve(response.message);\n }\n else {\n const err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n reject(err);\n }\n },\n });\n });\n }\n}\nexports.GrpcWebImpl = GrpcWebImpl;\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=tx.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SendAuthorization = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst coin_1 = require(\"../../../cosmos/base/v1beta1/coin\");\nexports.protobufPackage = \"cosmos.bank.v1beta1\";\nconst baseSendAuthorization = {};\nexports.SendAuthorization = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.spendLimit) {\n coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSendAuthorization);\n message.spendLimit = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.spendLimit.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseSendAuthorization);\n message.spendLimit = [];\n if (object.spendLimit !== undefined && object.spendLimit !== null) {\n for (const e of object.spendLimit) {\n message.spendLimit.push(coin_1.Coin.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.spendLimit) {\n obj.spendLimit = message.spendLimit.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.spendLimit = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseSendAuthorization);\n message.spendLimit = [];\n if (object.spendLimit !== undefined && object.spendLimit !== null) {\n for (const e of object.spendLimit) {\n message.spendLimit.push(coin_1.Coin.fromPartial(e));\n }\n }\n return message;\n },\n};\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=authz.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Metadata = exports.DenomUnit = exports.Supply = exports.Output = exports.Input = exports.SendEnabled = exports.Params = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst coin_1 = require(\"../../../cosmos/base/v1beta1/coin\");\nexports.protobufPackage = \"cosmos.bank.v1beta1\";\nconst baseParams = { defaultSendEnabled: false };\nexports.Params = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.sendEnabled) {\n exports.SendEnabled.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.defaultSendEnabled === true) {\n writer.uint32(16).bool(message.defaultSendEnabled);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseParams);\n message.sendEnabled = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sendEnabled.push(exports.SendEnabled.decode(reader, reader.uint32()));\n break;\n case 2:\n message.defaultSendEnabled = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseParams);\n message.sendEnabled = [];\n if (object.sendEnabled !== undefined && object.sendEnabled !== null) {\n for (const e of object.sendEnabled) {\n message.sendEnabled.push(exports.SendEnabled.fromJSON(e));\n }\n }\n if (object.defaultSendEnabled !== undefined && object.defaultSendEnabled !== null) {\n message.defaultSendEnabled = Boolean(object.defaultSendEnabled);\n }\n else {\n message.defaultSendEnabled = false;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.sendEnabled) {\n obj.sendEnabled = message.sendEnabled.map((e) => (e ? exports.SendEnabled.toJSON(e) : undefined));\n }\n else {\n obj.sendEnabled = [];\n }\n message.defaultSendEnabled !== undefined && (obj.defaultSendEnabled = message.defaultSendEnabled);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseParams);\n message.sendEnabled = [];\n if (object.sendEnabled !== undefined && object.sendEnabled !== null) {\n for (const e of object.sendEnabled) {\n message.sendEnabled.push(exports.SendEnabled.fromPartial(e));\n }\n }\n if (object.defaultSendEnabled !== undefined && object.defaultSendEnabled !== null) {\n message.defaultSendEnabled = object.defaultSendEnabled;\n }\n else {\n message.defaultSendEnabled = false;\n }\n return message;\n },\n};\nconst baseSendEnabled = { denom: \"\", enabled: false };\nexports.SendEnabled = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.denom !== \"\") {\n writer.uint32(10).string(message.denom);\n }\n if (message.enabled === true) {\n writer.uint32(16).bool(message.enabled);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSendEnabled);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.denom = reader.string();\n break;\n case 2:\n message.enabled = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseSendEnabled);\n if (object.denom !== undefined && object.denom !== null) {\n message.denom = String(object.denom);\n }\n else {\n message.denom = \"\";\n }\n if (object.enabled !== undefined && object.enabled !== null) {\n message.enabled = Boolean(object.enabled);\n }\n else {\n message.enabled = false;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.denom !== undefined && (obj.denom = message.denom);\n message.enabled !== undefined && (obj.enabled = message.enabled);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseSendEnabled);\n if (object.denom !== undefined && object.denom !== null) {\n message.denom = object.denom;\n }\n else {\n message.denom = \"\";\n }\n if (object.enabled !== undefined && object.enabled !== null) {\n message.enabled = object.enabled;\n }\n else {\n message.enabled = false;\n }\n return message;\n },\n};\nconst baseInput = { address: \"\" };\nexports.Input = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n for (const v of message.coins) {\n coin_1.Coin.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseInput);\n message.coins = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.coins.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseInput);\n message.coins = [];\n if (object.address !== undefined && object.address !== null) {\n message.address = String(object.address);\n }\n else {\n message.address = \"\";\n }\n if (object.coins !== undefined && object.coins !== null) {\n for (const e of object.coins) {\n message.coins.push(coin_1.Coin.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n if (message.coins) {\n obj.coins = message.coins.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.coins = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseInput);\n message.coins = [];\n if (object.address !== undefined && object.address !== null) {\n message.address = object.address;\n }\n else {\n message.address = \"\";\n }\n if (object.coins !== undefined && object.coins !== null) {\n for (const e of object.coins) {\n message.coins.push(coin_1.Coin.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseOutput = { address: \"\" };\nexports.Output = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n for (const v of message.coins) {\n coin_1.Coin.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseOutput);\n message.coins = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.coins.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseOutput);\n message.coins = [];\n if (object.address !== undefined && object.address !== null) {\n message.address = String(object.address);\n }\n else {\n message.address = \"\";\n }\n if (object.coins !== undefined && object.coins !== null) {\n for (const e of object.coins) {\n message.coins.push(coin_1.Coin.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n if (message.coins) {\n obj.coins = message.coins.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.coins = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseOutput);\n message.coins = [];\n if (object.address !== undefined && object.address !== null) {\n message.address = object.address;\n }\n else {\n message.address = \"\";\n }\n if (object.coins !== undefined && object.coins !== null) {\n for (const e of object.coins) {\n message.coins.push(coin_1.Coin.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseSupply = {};\nexports.Supply = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.total) {\n coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSupply);\n message.total = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.total.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseSupply);\n message.total = [];\n if (object.total !== undefined && object.total !== null) {\n for (const e of object.total) {\n message.total.push(coin_1.Coin.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.total) {\n obj.total = message.total.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.total = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseSupply);\n message.total = [];\n if (object.total !== undefined && object.total !== null) {\n for (const e of object.total) {\n message.total.push(coin_1.Coin.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseDenomUnit = { denom: \"\", exponent: 0, aliases: \"\" };\nexports.DenomUnit = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.denom !== \"\") {\n writer.uint32(10).string(message.denom);\n }\n if (message.exponent !== 0) {\n writer.uint32(16).uint32(message.exponent);\n }\n for (const v of message.aliases) {\n writer.uint32(26).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDenomUnit);\n message.aliases = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.denom = reader.string();\n break;\n case 2:\n message.exponent = reader.uint32();\n break;\n case 3:\n message.aliases.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseDenomUnit);\n message.aliases = [];\n if (object.denom !== undefined && object.denom !== null) {\n message.denom = String(object.denom);\n }\n else {\n message.denom = \"\";\n }\n if (object.exponent !== undefined && object.exponent !== null) {\n message.exponent = Number(object.exponent);\n }\n else {\n message.exponent = 0;\n }\n if (object.aliases !== undefined && object.aliases !== null) {\n for (const e of object.aliases) {\n message.aliases.push(String(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.denom !== undefined && (obj.denom = message.denom);\n message.exponent !== undefined && (obj.exponent = message.exponent);\n if (message.aliases) {\n obj.aliases = message.aliases.map((e) => e);\n }\n else {\n obj.aliases = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseDenomUnit);\n message.aliases = [];\n if (object.denom !== undefined && object.denom !== null) {\n message.denom = object.denom;\n }\n else {\n message.denom = \"\";\n }\n if (object.exponent !== undefined && object.exponent !== null) {\n message.exponent = object.exponent;\n }\n else {\n message.exponent = 0;\n }\n if (object.aliases !== undefined && object.aliases !== null) {\n for (const e of object.aliases) {\n message.aliases.push(e);\n }\n }\n return message;\n },\n};\nconst baseMetadata = { description: \"\", base: \"\", display: \"\", name: \"\", symbol: \"\" };\nexports.Metadata = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.description !== \"\") {\n writer.uint32(10).string(message.description);\n }\n for (const v of message.denomUnits) {\n exports.DenomUnit.encode(v, writer.uint32(18).fork()).ldelim();\n }\n if (message.base !== \"\") {\n writer.uint32(26).string(message.base);\n }\n if (message.display !== \"\") {\n writer.uint32(34).string(message.display);\n }\n if (message.name !== \"\") {\n writer.uint32(42).string(message.name);\n }\n if (message.symbol !== \"\") {\n writer.uint32(50).string(message.symbol);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMetadata);\n message.denomUnits = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.description = reader.string();\n break;\n case 2:\n message.denomUnits.push(exports.DenomUnit.decode(reader, reader.uint32()));\n break;\n case 3:\n message.base = reader.string();\n break;\n case 4:\n message.display = reader.string();\n break;\n case 5:\n message.name = reader.string();\n break;\n case 6:\n message.symbol = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMetadata);\n message.denomUnits = [];\n if (object.description !== undefined && object.description !== null) {\n message.description = String(object.description);\n }\n else {\n message.description = \"\";\n }\n if (object.denomUnits !== undefined && object.denomUnits !== null) {\n for (const e of object.denomUnits) {\n message.denomUnits.push(exports.DenomUnit.fromJSON(e));\n }\n }\n if (object.base !== undefined && object.base !== null) {\n message.base = String(object.base);\n }\n else {\n message.base = \"\";\n }\n if (object.display !== undefined && object.display !== null) {\n message.display = String(object.display);\n }\n else {\n message.display = \"\";\n }\n if (object.name !== undefined && object.name !== null) {\n message.name = String(object.name);\n }\n else {\n message.name = \"\";\n }\n if (object.symbol !== undefined && object.symbol !== null) {\n message.symbol = String(object.symbol);\n }\n else {\n message.symbol = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.description !== undefined && (obj.description = message.description);\n if (message.denomUnits) {\n obj.denomUnits = message.denomUnits.map((e) => (e ? exports.DenomUnit.toJSON(e) : undefined));\n }\n else {\n obj.denomUnits = [];\n }\n message.base !== undefined && (obj.base = message.base);\n message.display !== undefined && (obj.display = message.display);\n message.name !== undefined && (obj.name = message.name);\n message.symbol !== undefined && (obj.symbol = message.symbol);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMetadata);\n message.denomUnits = [];\n if (object.description !== undefined && object.description !== null) {\n message.description = object.description;\n }\n else {\n message.description = \"\";\n }\n if (object.denomUnits !== undefined && object.denomUnits !== null) {\n for (const e of object.denomUnits) {\n message.denomUnits.push(exports.DenomUnit.fromPartial(e));\n }\n }\n if (object.base !== undefined && object.base !== null) {\n message.base = object.base;\n }\n else {\n message.base = \"\";\n }\n if (object.display !== undefined && object.display !== null) {\n message.display = object.display;\n }\n else {\n message.display = \"\";\n }\n if (object.name !== undefined && object.name !== null) {\n message.name = object.name;\n }\n else {\n message.name = \"\";\n }\n if (object.symbol !== undefined && object.symbol !== null) {\n message.symbol = object.symbol;\n }\n else {\n message.symbol = \"\";\n }\n return message;\n },\n};\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=bank.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GrpcWebImpl = exports.MsgMultiSendDesc = exports.MsgSendDesc = exports.MsgDesc = exports.MsgClientImpl = exports.MsgMultiSendResponse = exports.MsgMultiSend = exports.MsgSendResponse = exports.MsgSend = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst grpc_web_1 = require(\"@improbable-eng/grpc-web\");\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst browser_headers_1 = require(\"browser-headers\");\nconst coin_1 = require(\"../../../cosmos/base/v1beta1/coin\");\nconst bank_1 = require(\"../../../cosmos/bank/v1beta1/bank\");\nexports.protobufPackage = \"cosmos.bank.v1beta1\";\nconst baseMsgSend = { fromAddress: \"\", toAddress: \"\" };\nexports.MsgSend = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.fromAddress !== \"\") {\n writer.uint32(10).string(message.fromAddress);\n }\n if (message.toAddress !== \"\") {\n writer.uint32(18).string(message.toAddress);\n }\n for (const v of message.amount) {\n coin_1.Coin.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgSend);\n message.amount = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.fromAddress = reader.string();\n break;\n case 2:\n message.toAddress = reader.string();\n break;\n case 3:\n message.amount.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgSend);\n message.amount = [];\n if (object.fromAddress !== undefined && object.fromAddress !== null) {\n message.fromAddress = String(object.fromAddress);\n }\n else {\n message.fromAddress = \"\";\n }\n if (object.toAddress !== undefined && object.toAddress !== null) {\n message.toAddress = String(object.toAddress);\n }\n else {\n message.toAddress = \"\";\n }\n if (object.amount !== undefined && object.amount !== null) {\n for (const e of object.amount) {\n message.amount.push(coin_1.Coin.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.fromAddress !== undefined && (obj.fromAddress = message.fromAddress);\n message.toAddress !== undefined && (obj.toAddress = message.toAddress);\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.amount = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgSend);\n message.amount = [];\n if (object.fromAddress !== undefined && object.fromAddress !== null) {\n message.fromAddress = object.fromAddress;\n }\n else {\n message.fromAddress = \"\";\n }\n if (object.toAddress !== undefined && object.toAddress !== null) {\n message.toAddress = object.toAddress;\n }\n else {\n message.toAddress = \"\";\n }\n if (object.amount !== undefined && object.amount !== null) {\n for (const e of object.amount) {\n message.amount.push(coin_1.Coin.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseMsgSendResponse = {};\nexports.MsgSendResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgSendResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgSendResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgSendResponse);\n return message;\n },\n};\nconst baseMsgMultiSend = {};\nexports.MsgMultiSend = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.inputs) {\n bank_1.Input.encode(v, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.outputs) {\n bank_1.Output.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgMultiSend);\n message.inputs = [];\n message.outputs = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.inputs.push(bank_1.Input.decode(reader, reader.uint32()));\n break;\n case 2:\n message.outputs.push(bank_1.Output.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgMultiSend);\n message.inputs = [];\n message.outputs = [];\n if (object.inputs !== undefined && object.inputs !== null) {\n for (const e of object.inputs) {\n message.inputs.push(bank_1.Input.fromJSON(e));\n }\n }\n if (object.outputs !== undefined && object.outputs !== null) {\n for (const e of object.outputs) {\n message.outputs.push(bank_1.Output.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.inputs) {\n obj.inputs = message.inputs.map((e) => (e ? bank_1.Input.toJSON(e) : undefined));\n }\n else {\n obj.inputs = [];\n }\n if (message.outputs) {\n obj.outputs = message.outputs.map((e) => (e ? bank_1.Output.toJSON(e) : undefined));\n }\n else {\n obj.outputs = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgMultiSend);\n message.inputs = [];\n message.outputs = [];\n if (object.inputs !== undefined && object.inputs !== null) {\n for (const e of object.inputs) {\n message.inputs.push(bank_1.Input.fromPartial(e));\n }\n }\n if (object.outputs !== undefined && object.outputs !== null) {\n for (const e of object.outputs) {\n message.outputs.push(bank_1.Output.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseMsgMultiSendResponse = {};\nexports.MsgMultiSendResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgMultiSendResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgMultiSendResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgMultiSendResponse);\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Send = this.Send.bind(this);\n this.MultiSend = this.MultiSend.bind(this);\n }\n Send(request, metadata) {\n return this.rpc.unary(exports.MsgSendDesc, exports.MsgSend.fromPartial(request), metadata);\n }\n MultiSend(request, metadata) {\n return this.rpc.unary(exports.MsgMultiSendDesc, exports.MsgMultiSend.fromPartial(request), metadata);\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\nexports.MsgDesc = {\n serviceName: \"cosmos.bank.v1beta1.Msg\",\n};\nexports.MsgSendDesc = {\n methodName: \"Send\",\n service: exports.MsgDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.MsgSend.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.MsgSendResponse.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nexports.MsgMultiSendDesc = {\n methodName: \"MultiSend\",\n service: exports.MsgDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.MsgMultiSend.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.MsgMultiSendResponse.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nclass GrpcWebImpl {\n constructor(host, options) {\n this.host = host;\n this.options = options;\n }\n unary(methodDesc, _request, metadata) {\n var _a;\n const request = Object.assign(Object.assign({}, _request), methodDesc.requestType);\n const maybeCombinedMetadata = metadata && this.options.metadata\n ? new browser_headers_1.BrowserHeaders(Object.assign(Object.assign({}, (_a = this.options) === null || _a === void 0 ? void 0 : _a.metadata.headersMap), metadata === null || metadata === void 0 ? void 0 : metadata.headersMap))\n : metadata || this.options.metadata;\n return new Promise((resolve, reject) => {\n grpc_web_1.grpc.unary(methodDesc, {\n request,\n host: this.host,\n metadata: maybeCombinedMetadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (response.status === grpc_web_1.grpc.Code.OK) {\n resolve(response.message);\n }\n else {\n const err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n reject(err);\n }\n },\n });\n });\n }\n}\nexports.GrpcWebImpl = GrpcWebImpl;\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=tx.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SearchTxsResult = exports.TxMsgData = exports.MsgData = exports.SimulationResponse = exports.Result = exports.GasInfo = exports.Attribute = exports.StringEvent = exports.ABCIMessageLog = exports.TxResponse = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst any_1 = require(\"../../../../google/protobuf/any\");\nconst types_1 = require(\"../../../../tendermint/abci/types\");\nexports.protobufPackage = \"cosmos.base.abci.v1beta1\";\nconst baseTxResponse = {\n height: long_1.default.ZERO,\n txhash: \"\",\n codespace: \"\",\n code: 0,\n data: \"\",\n rawLog: \"\",\n info: \"\",\n gasWanted: long_1.default.ZERO,\n gasUsed: long_1.default.ZERO,\n timestamp: \"\",\n};\nexports.TxResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.height.isZero()) {\n writer.uint32(8).int64(message.height);\n }\n if (message.txhash !== \"\") {\n writer.uint32(18).string(message.txhash);\n }\n if (message.codespace !== \"\") {\n writer.uint32(26).string(message.codespace);\n }\n if (message.code !== 0) {\n writer.uint32(32).uint32(message.code);\n }\n if (message.data !== \"\") {\n writer.uint32(42).string(message.data);\n }\n if (message.rawLog !== \"\") {\n writer.uint32(50).string(message.rawLog);\n }\n for (const v of message.logs) {\n exports.ABCIMessageLog.encode(v, writer.uint32(58).fork()).ldelim();\n }\n if (message.info !== \"\") {\n writer.uint32(66).string(message.info);\n }\n if (!message.gasWanted.isZero()) {\n writer.uint32(72).int64(message.gasWanted);\n }\n if (!message.gasUsed.isZero()) {\n writer.uint32(80).int64(message.gasUsed);\n }\n if (message.tx !== undefined) {\n any_1.Any.encode(message.tx, writer.uint32(90).fork()).ldelim();\n }\n if (message.timestamp !== \"\") {\n writer.uint32(98).string(message.timestamp);\n }\n for (const v of message.events) {\n types_1.Event.encode(v, writer.uint32(106).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseTxResponse);\n message.logs = [];\n message.events = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.height = reader.int64();\n break;\n case 2:\n message.txhash = reader.string();\n break;\n case 3:\n message.codespace = reader.string();\n break;\n case 4:\n message.code = reader.uint32();\n break;\n case 5:\n message.data = reader.string();\n break;\n case 6:\n message.rawLog = reader.string();\n break;\n case 7:\n message.logs.push(exports.ABCIMessageLog.decode(reader, reader.uint32()));\n break;\n case 8:\n message.info = reader.string();\n break;\n case 9:\n message.gasWanted = reader.int64();\n break;\n case 10:\n message.gasUsed = reader.int64();\n break;\n case 11:\n message.tx = any_1.Any.decode(reader, reader.uint32());\n break;\n case 12:\n message.timestamp = reader.string();\n break;\n case 13:\n message.events.push(types_1.Event.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseTxResponse);\n message.logs = [];\n message.events = [];\n if (object.height !== undefined && object.height !== null) {\n message.height = long_1.default.fromString(object.height);\n }\n else {\n message.height = long_1.default.ZERO;\n }\n if (object.txhash !== undefined && object.txhash !== null) {\n message.txhash = String(object.txhash);\n }\n else {\n message.txhash = \"\";\n }\n if (object.codespace !== undefined && object.codespace !== null) {\n message.codespace = String(object.codespace);\n }\n else {\n message.codespace = \"\";\n }\n if (object.code !== undefined && object.code !== null) {\n message.code = Number(object.code);\n }\n else {\n message.code = 0;\n }\n if (object.data !== undefined && object.data !== null) {\n message.data = String(object.data);\n }\n else {\n message.data = \"\";\n }\n if (object.rawLog !== undefined && object.rawLog !== null) {\n message.rawLog = String(object.rawLog);\n }\n else {\n message.rawLog = \"\";\n }\n if (object.logs !== undefined && object.logs !== null) {\n for (const e of object.logs) {\n message.logs.push(exports.ABCIMessageLog.fromJSON(e));\n }\n }\n if (object.info !== undefined && object.info !== null) {\n message.info = String(object.info);\n }\n else {\n message.info = \"\";\n }\n if (object.gasWanted !== undefined && object.gasWanted !== null) {\n message.gasWanted = long_1.default.fromString(object.gasWanted);\n }\n else {\n message.gasWanted = long_1.default.ZERO;\n }\n if (object.gasUsed !== undefined && object.gasUsed !== null) {\n message.gasUsed = long_1.default.fromString(object.gasUsed);\n }\n else {\n message.gasUsed = long_1.default.ZERO;\n }\n if (object.tx !== undefined && object.tx !== null) {\n message.tx = any_1.Any.fromJSON(object.tx);\n }\n else {\n message.tx = undefined;\n }\n if (object.timestamp !== undefined && object.timestamp !== null) {\n message.timestamp = String(object.timestamp);\n }\n else {\n message.timestamp = \"\";\n }\n if (object.events !== undefined && object.events !== null) {\n for (const e of object.events) {\n message.events.push(types_1.Event.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.height !== undefined && (obj.height = (message.height || long_1.default.ZERO).toString());\n message.txhash !== undefined && (obj.txhash = message.txhash);\n message.codespace !== undefined && (obj.codespace = message.codespace);\n message.code !== undefined && (obj.code = message.code);\n message.data !== undefined && (obj.data = message.data);\n message.rawLog !== undefined && (obj.rawLog = message.rawLog);\n if (message.logs) {\n obj.logs = message.logs.map((e) => (e ? exports.ABCIMessageLog.toJSON(e) : undefined));\n }\n else {\n obj.logs = [];\n }\n message.info !== undefined && (obj.info = message.info);\n message.gasWanted !== undefined && (obj.gasWanted = (message.gasWanted || long_1.default.ZERO).toString());\n message.gasUsed !== undefined && (obj.gasUsed = (message.gasUsed || long_1.default.ZERO).toString());\n message.tx !== undefined && (obj.tx = message.tx ? any_1.Any.toJSON(message.tx) : undefined);\n message.timestamp !== undefined && (obj.timestamp = message.timestamp);\n if (message.events) {\n obj.events = message.events.map((e) => (e ? types_1.Event.toJSON(e) : undefined));\n }\n else {\n obj.events = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseTxResponse);\n message.logs = [];\n message.events = [];\n if (object.height !== undefined && object.height !== null) {\n message.height = object.height;\n }\n else {\n message.height = long_1.default.ZERO;\n }\n if (object.txhash !== undefined && object.txhash !== null) {\n message.txhash = object.txhash;\n }\n else {\n message.txhash = \"\";\n }\n if (object.codespace !== undefined && object.codespace !== null) {\n message.codespace = object.codespace;\n }\n else {\n message.codespace = \"\";\n }\n if (object.code !== undefined && object.code !== null) {\n message.code = object.code;\n }\n else {\n message.code = 0;\n }\n if (object.data !== undefined && object.data !== null) {\n message.data = object.data;\n }\n else {\n message.data = \"\";\n }\n if (object.rawLog !== undefined && object.rawLog !== null) {\n message.rawLog = object.rawLog;\n }\n else {\n message.rawLog = \"\";\n }\n if (object.logs !== undefined && object.logs !== null) {\n for (const e of object.logs) {\n message.logs.push(exports.ABCIMessageLog.fromPartial(e));\n }\n }\n if (object.info !== undefined && object.info !== null) {\n message.info = object.info;\n }\n else {\n message.info = \"\";\n }\n if (object.gasWanted !== undefined && object.gasWanted !== null) {\n message.gasWanted = object.gasWanted;\n }\n else {\n message.gasWanted = long_1.default.ZERO;\n }\n if (object.gasUsed !== undefined && object.gasUsed !== null) {\n message.gasUsed = object.gasUsed;\n }\n else {\n message.gasUsed = long_1.default.ZERO;\n }\n if (object.tx !== undefined && object.tx !== null) {\n message.tx = any_1.Any.fromPartial(object.tx);\n }\n else {\n message.tx = undefined;\n }\n if (object.timestamp !== undefined && object.timestamp !== null) {\n message.timestamp = object.timestamp;\n }\n else {\n message.timestamp = \"\";\n }\n if (object.events !== undefined && object.events !== null) {\n for (const e of object.events) {\n message.events.push(types_1.Event.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseABCIMessageLog = { msgIndex: 0, log: \"\" };\nexports.ABCIMessageLog = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.msgIndex !== 0) {\n writer.uint32(8).uint32(message.msgIndex);\n }\n if (message.log !== \"\") {\n writer.uint32(18).string(message.log);\n }\n for (const v of message.events) {\n exports.StringEvent.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseABCIMessageLog);\n message.events = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.msgIndex = reader.uint32();\n break;\n case 2:\n message.log = reader.string();\n break;\n case 3:\n message.events.push(exports.StringEvent.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseABCIMessageLog);\n message.events = [];\n if (object.msgIndex !== undefined && object.msgIndex !== null) {\n message.msgIndex = Number(object.msgIndex);\n }\n else {\n message.msgIndex = 0;\n }\n if (object.log !== undefined && object.log !== null) {\n message.log = String(object.log);\n }\n else {\n message.log = \"\";\n }\n if (object.events !== undefined && object.events !== null) {\n for (const e of object.events) {\n message.events.push(exports.StringEvent.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.msgIndex !== undefined && (obj.msgIndex = message.msgIndex);\n message.log !== undefined && (obj.log = message.log);\n if (message.events) {\n obj.events = message.events.map((e) => (e ? exports.StringEvent.toJSON(e) : undefined));\n }\n else {\n obj.events = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseABCIMessageLog);\n message.events = [];\n if (object.msgIndex !== undefined && object.msgIndex !== null) {\n message.msgIndex = object.msgIndex;\n }\n else {\n message.msgIndex = 0;\n }\n if (object.log !== undefined && object.log !== null) {\n message.log = object.log;\n }\n else {\n message.log = \"\";\n }\n if (object.events !== undefined && object.events !== null) {\n for (const e of object.events) {\n message.events.push(exports.StringEvent.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseStringEvent = { type: \"\" };\nexports.StringEvent = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.type !== \"\") {\n writer.uint32(10).string(message.type);\n }\n for (const v of message.attributes) {\n exports.Attribute.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseStringEvent);\n message.attributes = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.type = reader.string();\n break;\n case 2:\n message.attributes.push(exports.Attribute.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseStringEvent);\n message.attributes = [];\n if (object.type !== undefined && object.type !== null) {\n message.type = String(object.type);\n }\n else {\n message.type = \"\";\n }\n if (object.attributes !== undefined && object.attributes !== null) {\n for (const e of object.attributes) {\n message.attributes.push(exports.Attribute.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.type !== undefined && (obj.type = message.type);\n if (message.attributes) {\n obj.attributes = message.attributes.map((e) => (e ? exports.Attribute.toJSON(e) : undefined));\n }\n else {\n obj.attributes = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseStringEvent);\n message.attributes = [];\n if (object.type !== undefined && object.type !== null) {\n message.type = object.type;\n }\n else {\n message.type = \"\";\n }\n if (object.attributes !== undefined && object.attributes !== null) {\n for (const e of object.attributes) {\n message.attributes.push(exports.Attribute.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseAttribute = { key: \"\", value: \"\" };\nexports.Attribute = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.key !== \"\") {\n writer.uint32(10).string(message.key);\n }\n if (message.value !== \"\") {\n writer.uint32(18).string(message.value);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseAttribute);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.string();\n break;\n case 2:\n message.value = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseAttribute);\n if (object.key !== undefined && object.key !== null) {\n message.key = String(object.key);\n }\n else {\n message.key = \"\";\n }\n if (object.value !== undefined && object.value !== null) {\n message.value = String(object.value);\n }\n else {\n message.value = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined && (obj.key = message.key);\n message.value !== undefined && (obj.value = message.value);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseAttribute);\n if (object.key !== undefined && object.key !== null) {\n message.key = object.key;\n }\n else {\n message.key = \"\";\n }\n if (object.value !== undefined && object.value !== null) {\n message.value = object.value;\n }\n else {\n message.value = \"\";\n }\n return message;\n },\n};\nconst baseGasInfo = { gasWanted: long_1.default.UZERO, gasUsed: long_1.default.UZERO };\nexports.GasInfo = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.gasWanted.isZero()) {\n writer.uint32(8).uint64(message.gasWanted);\n }\n if (!message.gasUsed.isZero()) {\n writer.uint32(16).uint64(message.gasUsed);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseGasInfo);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.gasWanted = reader.uint64();\n break;\n case 2:\n message.gasUsed = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseGasInfo);\n if (object.gasWanted !== undefined && object.gasWanted !== null) {\n message.gasWanted = long_1.default.fromString(object.gasWanted);\n }\n else {\n message.gasWanted = long_1.default.UZERO;\n }\n if (object.gasUsed !== undefined && object.gasUsed !== null) {\n message.gasUsed = long_1.default.fromString(object.gasUsed);\n }\n else {\n message.gasUsed = long_1.default.UZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.gasWanted !== undefined && (obj.gasWanted = (message.gasWanted || long_1.default.UZERO).toString());\n message.gasUsed !== undefined && (obj.gasUsed = (message.gasUsed || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseGasInfo);\n if (object.gasWanted !== undefined && object.gasWanted !== null) {\n message.gasWanted = object.gasWanted;\n }\n else {\n message.gasWanted = long_1.default.UZERO;\n }\n if (object.gasUsed !== undefined && object.gasUsed !== null) {\n message.gasUsed = object.gasUsed;\n }\n else {\n message.gasUsed = long_1.default.UZERO;\n }\n return message;\n },\n};\nconst baseResult = { log: \"\" };\nexports.Result = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.data.length !== 0) {\n writer.uint32(10).bytes(message.data);\n }\n if (message.log !== \"\") {\n writer.uint32(18).string(message.log);\n }\n for (const v of message.events) {\n types_1.Event.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResult);\n message.events = [];\n message.data = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.data = reader.bytes();\n break;\n case 2:\n message.log = reader.string();\n break;\n case 3:\n message.events.push(types_1.Event.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseResult);\n message.events = [];\n message.data = new Uint8Array();\n if (object.data !== undefined && object.data !== null) {\n message.data = bytesFromBase64(object.data);\n }\n if (object.log !== undefined && object.log !== null) {\n message.log = String(object.log);\n }\n else {\n message.log = \"\";\n }\n if (object.events !== undefined && object.events !== null) {\n for (const e of object.events) {\n message.events.push(types_1.Event.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.data !== undefined &&\n (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));\n message.log !== undefined && (obj.log = message.log);\n if (message.events) {\n obj.events = message.events.map((e) => (e ? types_1.Event.toJSON(e) : undefined));\n }\n else {\n obj.events = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseResult);\n message.events = [];\n if (object.data !== undefined && object.data !== null) {\n message.data = object.data;\n }\n else {\n message.data = new Uint8Array();\n }\n if (object.log !== undefined && object.log !== null) {\n message.log = object.log;\n }\n else {\n message.log = \"\";\n }\n if (object.events !== undefined && object.events !== null) {\n for (const e of object.events) {\n message.events.push(types_1.Event.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseSimulationResponse = {};\nexports.SimulationResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.gasInfo !== undefined) {\n exports.GasInfo.encode(message.gasInfo, writer.uint32(10).fork()).ldelim();\n }\n if (message.result !== undefined) {\n exports.Result.encode(message.result, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSimulationResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.gasInfo = exports.GasInfo.decode(reader, reader.uint32());\n break;\n case 2:\n message.result = exports.Result.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseSimulationResponse);\n if (object.gasInfo !== undefined && object.gasInfo !== null) {\n message.gasInfo = exports.GasInfo.fromJSON(object.gasInfo);\n }\n else {\n message.gasInfo = undefined;\n }\n if (object.result !== undefined && object.result !== null) {\n message.result = exports.Result.fromJSON(object.result);\n }\n else {\n message.result = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.gasInfo !== undefined &&\n (obj.gasInfo = message.gasInfo ? exports.GasInfo.toJSON(message.gasInfo) : undefined);\n message.result !== undefined && (obj.result = message.result ? exports.Result.toJSON(message.result) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseSimulationResponse);\n if (object.gasInfo !== undefined && object.gasInfo !== null) {\n message.gasInfo = exports.GasInfo.fromPartial(object.gasInfo);\n }\n else {\n message.gasInfo = undefined;\n }\n if (object.result !== undefined && object.result !== null) {\n message.result = exports.Result.fromPartial(object.result);\n }\n else {\n message.result = undefined;\n }\n return message;\n },\n};\nconst baseMsgData = { msgType: \"\" };\nexports.MsgData = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.msgType !== \"\") {\n writer.uint32(10).string(message.msgType);\n }\n if (message.data.length !== 0) {\n writer.uint32(18).bytes(message.data);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgData);\n message.data = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.msgType = reader.string();\n break;\n case 2:\n message.data = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgData);\n message.data = new Uint8Array();\n if (object.msgType !== undefined && object.msgType !== null) {\n message.msgType = String(object.msgType);\n }\n else {\n message.msgType = \"\";\n }\n if (object.data !== undefined && object.data !== null) {\n message.data = bytesFromBase64(object.data);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.msgType !== undefined && (obj.msgType = message.msgType);\n message.data !== undefined &&\n (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgData);\n if (object.msgType !== undefined && object.msgType !== null) {\n message.msgType = object.msgType;\n }\n else {\n message.msgType = \"\";\n }\n if (object.data !== undefined && object.data !== null) {\n message.data = object.data;\n }\n else {\n message.data = new Uint8Array();\n }\n return message;\n },\n};\nconst baseTxMsgData = {};\nexports.TxMsgData = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.data) {\n exports.MsgData.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseTxMsgData);\n message.data = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.data.push(exports.MsgData.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseTxMsgData);\n message.data = [];\n if (object.data !== undefined && object.data !== null) {\n for (const e of object.data) {\n message.data.push(exports.MsgData.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.data) {\n obj.data = message.data.map((e) => (e ? exports.MsgData.toJSON(e) : undefined));\n }\n else {\n obj.data = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseTxMsgData);\n message.data = [];\n if (object.data !== undefined && object.data !== null) {\n for (const e of object.data) {\n message.data.push(exports.MsgData.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseSearchTxsResult = {\n totalCount: long_1.default.UZERO,\n count: long_1.default.UZERO,\n pageNumber: long_1.default.UZERO,\n pageTotal: long_1.default.UZERO,\n limit: long_1.default.UZERO,\n};\nexports.SearchTxsResult = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.totalCount.isZero()) {\n writer.uint32(8).uint64(message.totalCount);\n }\n if (!message.count.isZero()) {\n writer.uint32(16).uint64(message.count);\n }\n if (!message.pageNumber.isZero()) {\n writer.uint32(24).uint64(message.pageNumber);\n }\n if (!message.pageTotal.isZero()) {\n writer.uint32(32).uint64(message.pageTotal);\n }\n if (!message.limit.isZero()) {\n writer.uint32(40).uint64(message.limit);\n }\n for (const v of message.txs) {\n exports.TxResponse.encode(v, writer.uint32(50).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSearchTxsResult);\n message.txs = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.totalCount = reader.uint64();\n break;\n case 2:\n message.count = reader.uint64();\n break;\n case 3:\n message.pageNumber = reader.uint64();\n break;\n case 4:\n message.pageTotal = reader.uint64();\n break;\n case 5:\n message.limit = reader.uint64();\n break;\n case 6:\n message.txs.push(exports.TxResponse.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseSearchTxsResult);\n message.txs = [];\n if (object.totalCount !== undefined && object.totalCount !== null) {\n message.totalCount = long_1.default.fromString(object.totalCount);\n }\n else {\n message.totalCount = long_1.default.UZERO;\n }\n if (object.count !== undefined && object.count !== null) {\n message.count = long_1.default.fromString(object.count);\n }\n else {\n message.count = long_1.default.UZERO;\n }\n if (object.pageNumber !== undefined && object.pageNumber !== null) {\n message.pageNumber = long_1.default.fromString(object.pageNumber);\n }\n else {\n message.pageNumber = long_1.default.UZERO;\n }\n if (object.pageTotal !== undefined && object.pageTotal !== null) {\n message.pageTotal = long_1.default.fromString(object.pageTotal);\n }\n else {\n message.pageTotal = long_1.default.UZERO;\n }\n if (object.limit !== undefined && object.limit !== null) {\n message.limit = long_1.default.fromString(object.limit);\n }\n else {\n message.limit = long_1.default.UZERO;\n }\n if (object.txs !== undefined && object.txs !== null) {\n for (const e of object.txs) {\n message.txs.push(exports.TxResponse.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.totalCount !== undefined && (obj.totalCount = (message.totalCount || long_1.default.UZERO).toString());\n message.count !== undefined && (obj.count = (message.count || long_1.default.UZERO).toString());\n message.pageNumber !== undefined && (obj.pageNumber = (message.pageNumber || long_1.default.UZERO).toString());\n message.pageTotal !== undefined && (obj.pageTotal = (message.pageTotal || long_1.default.UZERO).toString());\n message.limit !== undefined && (obj.limit = (message.limit || long_1.default.UZERO).toString());\n if (message.txs) {\n obj.txs = message.txs.map((e) => (e ? exports.TxResponse.toJSON(e) : undefined));\n }\n else {\n obj.txs = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseSearchTxsResult);\n message.txs = [];\n if (object.totalCount !== undefined && object.totalCount !== null) {\n message.totalCount = object.totalCount;\n }\n else {\n message.totalCount = long_1.default.UZERO;\n }\n if (object.count !== undefined && object.count !== null) {\n message.count = object.count;\n }\n else {\n message.count = long_1.default.UZERO;\n }\n if (object.pageNumber !== undefined && object.pageNumber !== null) {\n message.pageNumber = object.pageNumber;\n }\n else {\n message.pageNumber = long_1.default.UZERO;\n }\n if (object.pageTotal !== undefined && object.pageTotal !== null) {\n message.pageTotal = object.pageTotal;\n }\n else {\n message.pageTotal = long_1.default.UZERO;\n }\n if (object.limit !== undefined && object.limit !== null) {\n message.limit = object.limit;\n }\n else {\n message.limit = long_1.default.UZERO;\n }\n if (object.txs !== undefined && object.txs !== null) {\n for (const e of object.txs) {\n message.txs.push(exports.TxResponse.fromPartial(e));\n }\n }\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=abci.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DecProto = exports.IntProto = exports.DecCoin = exports.Coin = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nexports.protobufPackage = \"cosmos.base.v1beta1\";\nconst baseCoin = { denom: \"\", amount: \"\" };\nexports.Coin = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.denom !== \"\") {\n writer.uint32(10).string(message.denom);\n }\n if (message.amount !== \"\") {\n writer.uint32(18).string(message.amount);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseCoin);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.denom = reader.string();\n break;\n case 2:\n message.amount = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseCoin);\n if (object.denom !== undefined && object.denom !== null) {\n message.denom = String(object.denom);\n }\n else {\n message.denom = \"\";\n }\n if (object.amount !== undefined && object.amount !== null) {\n message.amount = String(object.amount);\n }\n else {\n message.amount = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.denom !== undefined && (obj.denom = message.denom);\n message.amount !== undefined && (obj.amount = message.amount);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseCoin);\n if (object.denom !== undefined && object.denom !== null) {\n message.denom = object.denom;\n }\n else {\n message.denom = \"\";\n }\n if (object.amount !== undefined && object.amount !== null) {\n message.amount = object.amount;\n }\n else {\n message.amount = \"\";\n }\n return message;\n },\n};\nconst baseDecCoin = { denom: \"\", amount: \"\" };\nexports.DecCoin = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.denom !== \"\") {\n writer.uint32(10).string(message.denom);\n }\n if (message.amount !== \"\") {\n writer.uint32(18).string(message.amount);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDecCoin);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.denom = reader.string();\n break;\n case 2:\n message.amount = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseDecCoin);\n if (object.denom !== undefined && object.denom !== null) {\n message.denom = String(object.denom);\n }\n else {\n message.denom = \"\";\n }\n if (object.amount !== undefined && object.amount !== null) {\n message.amount = String(object.amount);\n }\n else {\n message.amount = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.denom !== undefined && (obj.denom = message.denom);\n message.amount !== undefined && (obj.amount = message.amount);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseDecCoin);\n if (object.denom !== undefined && object.denom !== null) {\n message.denom = object.denom;\n }\n else {\n message.denom = \"\";\n }\n if (object.amount !== undefined && object.amount !== null) {\n message.amount = object.amount;\n }\n else {\n message.amount = \"\";\n }\n return message;\n },\n};\nconst baseIntProto = { int: \"\" };\nexports.IntProto = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.int !== \"\") {\n writer.uint32(10).string(message.int);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseIntProto);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.int = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseIntProto);\n if (object.int !== undefined && object.int !== null) {\n message.int = String(object.int);\n }\n else {\n message.int = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.int !== undefined && (obj.int = message.int);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseIntProto);\n if (object.int !== undefined && object.int !== null) {\n message.int = object.int;\n }\n else {\n message.int = \"\";\n }\n return message;\n },\n};\nconst baseDecProto = { dec: \"\" };\nexports.DecProto = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.dec !== \"\") {\n writer.uint32(10).string(message.dec);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDecProto);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.dec = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseDecProto);\n if (object.dec !== undefined && object.dec !== null) {\n message.dec = String(object.dec);\n }\n else {\n message.dec = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.dec !== undefined && (obj.dec = message.dec);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseDecProto);\n if (object.dec !== undefined && object.dec !== null) {\n message.dec = object.dec;\n }\n else {\n message.dec = \"\";\n }\n return message;\n },\n};\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=coin.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GrpcWebImpl = exports.MsgVerifyInvariantDesc = exports.MsgDesc = exports.MsgClientImpl = exports.MsgVerifyInvariantResponse = exports.MsgVerifyInvariant = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst grpc_web_1 = require(\"@improbable-eng/grpc-web\");\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst browser_headers_1 = require(\"browser-headers\");\nexports.protobufPackage = \"cosmos.crisis.v1beta1\";\nconst baseMsgVerifyInvariant = { sender: \"\", invariantModuleName: \"\", invariantRoute: \"\" };\nexports.MsgVerifyInvariant = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.sender !== \"\") {\n writer.uint32(10).string(message.sender);\n }\n if (message.invariantModuleName !== \"\") {\n writer.uint32(18).string(message.invariantModuleName);\n }\n if (message.invariantRoute !== \"\") {\n writer.uint32(26).string(message.invariantRoute);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgVerifyInvariant);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sender = reader.string();\n break;\n case 2:\n message.invariantModuleName = reader.string();\n break;\n case 3:\n message.invariantRoute = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgVerifyInvariant);\n if (object.sender !== undefined && object.sender !== null) {\n message.sender = String(object.sender);\n }\n else {\n message.sender = \"\";\n }\n if (object.invariantModuleName !== undefined && object.invariantModuleName !== null) {\n message.invariantModuleName = String(object.invariantModuleName);\n }\n else {\n message.invariantModuleName = \"\";\n }\n if (object.invariantRoute !== undefined && object.invariantRoute !== null) {\n message.invariantRoute = String(object.invariantRoute);\n }\n else {\n message.invariantRoute = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.sender !== undefined && (obj.sender = message.sender);\n message.invariantModuleName !== undefined && (obj.invariantModuleName = message.invariantModuleName);\n message.invariantRoute !== undefined && (obj.invariantRoute = message.invariantRoute);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgVerifyInvariant);\n if (object.sender !== undefined && object.sender !== null) {\n message.sender = object.sender;\n }\n else {\n message.sender = \"\";\n }\n if (object.invariantModuleName !== undefined && object.invariantModuleName !== null) {\n message.invariantModuleName = object.invariantModuleName;\n }\n else {\n message.invariantModuleName = \"\";\n }\n if (object.invariantRoute !== undefined && object.invariantRoute !== null) {\n message.invariantRoute = object.invariantRoute;\n }\n else {\n message.invariantRoute = \"\";\n }\n return message;\n },\n};\nconst baseMsgVerifyInvariantResponse = {};\nexports.MsgVerifyInvariantResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgVerifyInvariantResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgVerifyInvariantResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgVerifyInvariantResponse);\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.VerifyInvariant = this.VerifyInvariant.bind(this);\n }\n VerifyInvariant(request, metadata) {\n return this.rpc.unary(exports.MsgVerifyInvariantDesc, exports.MsgVerifyInvariant.fromPartial(request), metadata);\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\nexports.MsgDesc = {\n serviceName: \"cosmos.crisis.v1beta1.Msg\",\n};\nexports.MsgVerifyInvariantDesc = {\n methodName: \"VerifyInvariant\",\n service: exports.MsgDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.MsgVerifyInvariant.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.MsgVerifyInvariantResponse.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nclass GrpcWebImpl {\n constructor(host, options) {\n this.host = host;\n this.options = options;\n }\n unary(methodDesc, _request, metadata) {\n var _a;\n const request = Object.assign(Object.assign({}, _request), methodDesc.requestType);\n const maybeCombinedMetadata = metadata && this.options.metadata\n ? new browser_headers_1.BrowserHeaders(Object.assign(Object.assign({}, (_a = this.options) === null || _a === void 0 ? void 0 : _a.metadata.headersMap), metadata === null || metadata === void 0 ? void 0 : metadata.headersMap))\n : metadata || this.options.metadata;\n return new Promise((resolve, reject) => {\n grpc_web_1.grpc.unary(methodDesc, {\n request,\n host: this.host,\n metadata: maybeCombinedMetadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (response.status === grpc_web_1.grpc.Code.OK) {\n resolve(response.message);\n }\n else {\n const err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n reject(err);\n }\n },\n });\n });\n }\n}\nexports.GrpcWebImpl = GrpcWebImpl;\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=tx.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PrivKey = exports.PubKey = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nexports.protobufPackage = \"cosmos.crypto.ed25519\";\nconst basePubKey = {};\nexports.PubKey = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, basePubKey);\n message.key = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, basePubKey);\n message.key = new Uint8Array();\n if (object.key !== undefined && object.key !== null) {\n message.key = bytesFromBase64(object.key);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined &&\n (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, basePubKey);\n if (object.key !== undefined && object.key !== null) {\n message.key = object.key;\n }\n else {\n message.key = new Uint8Array();\n }\n return message;\n },\n};\nconst basePrivKey = {};\nexports.PrivKey = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, basePrivKey);\n message.key = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, basePrivKey);\n message.key = new Uint8Array();\n if (object.key !== undefined && object.key !== null) {\n message.key = bytesFromBase64(object.key);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined &&\n (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, basePrivKey);\n if (object.key !== undefined && object.key !== null) {\n message.key = object.key;\n }\n else {\n message.key = new Uint8Array();\n }\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=keys.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LegacyAminoPubKey = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst any_1 = require(\"../../../google/protobuf/any\");\nexports.protobufPackage = \"cosmos.crypto.multisig\";\nconst baseLegacyAminoPubKey = { threshold: 0 };\nexports.LegacyAminoPubKey = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.threshold !== 0) {\n writer.uint32(8).uint32(message.threshold);\n }\n for (const v of message.publicKeys) {\n any_1.Any.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseLegacyAminoPubKey);\n message.publicKeys = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.threshold = reader.uint32();\n break;\n case 2:\n message.publicKeys.push(any_1.Any.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseLegacyAminoPubKey);\n message.publicKeys = [];\n if (object.threshold !== undefined && object.threshold !== null) {\n message.threshold = Number(object.threshold);\n }\n else {\n message.threshold = 0;\n }\n if (object.publicKeys !== undefined && object.publicKeys !== null) {\n for (const e of object.publicKeys) {\n message.publicKeys.push(any_1.Any.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.threshold !== undefined && (obj.threshold = message.threshold);\n if (message.publicKeys) {\n obj.publicKeys = message.publicKeys.map((e) => (e ? any_1.Any.toJSON(e) : undefined));\n }\n else {\n obj.publicKeys = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseLegacyAminoPubKey);\n message.publicKeys = [];\n if (object.threshold !== undefined && object.threshold !== null) {\n message.threshold = object.threshold;\n }\n else {\n message.threshold = 0;\n }\n if (object.publicKeys !== undefined && object.publicKeys !== null) {\n for (const e of object.publicKeys) {\n message.publicKeys.push(any_1.Any.fromPartial(e));\n }\n }\n return message;\n },\n};\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=keys.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CompactBitArray = exports.MultiSignature = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nexports.protobufPackage = \"cosmos.crypto.multisig.v1beta1\";\nconst baseMultiSignature = {};\nexports.MultiSignature = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.signatures) {\n writer.uint32(10).bytes(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMultiSignature);\n message.signatures = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.signatures.push(reader.bytes());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMultiSignature);\n message.signatures = [];\n if (object.signatures !== undefined && object.signatures !== null) {\n for (const e of object.signatures) {\n message.signatures.push(bytesFromBase64(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.signatures) {\n obj.signatures = message.signatures.map((e) => base64FromBytes(e !== undefined ? e : new Uint8Array()));\n }\n else {\n obj.signatures = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMultiSignature);\n message.signatures = [];\n if (object.signatures !== undefined && object.signatures !== null) {\n for (const e of object.signatures) {\n message.signatures.push(e);\n }\n }\n return message;\n },\n};\nconst baseCompactBitArray = { extraBitsStored: 0 };\nexports.CompactBitArray = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.extraBitsStored !== 0) {\n writer.uint32(8).uint32(message.extraBitsStored);\n }\n if (message.elems.length !== 0) {\n writer.uint32(18).bytes(message.elems);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseCompactBitArray);\n message.elems = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.extraBitsStored = reader.uint32();\n break;\n case 2:\n message.elems = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseCompactBitArray);\n message.elems = new Uint8Array();\n if (object.extraBitsStored !== undefined && object.extraBitsStored !== null) {\n message.extraBitsStored = Number(object.extraBitsStored);\n }\n else {\n message.extraBitsStored = 0;\n }\n if (object.elems !== undefined && object.elems !== null) {\n message.elems = bytesFromBase64(object.elems);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.extraBitsStored !== undefined && (obj.extraBitsStored = message.extraBitsStored);\n message.elems !== undefined &&\n (obj.elems = base64FromBytes(message.elems !== undefined ? message.elems : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseCompactBitArray);\n if (object.extraBitsStored !== undefined && object.extraBitsStored !== null) {\n message.extraBitsStored = object.extraBitsStored;\n }\n else {\n message.extraBitsStored = 0;\n }\n if (object.elems !== undefined && object.elems !== null) {\n message.elems = object.elems;\n }\n else {\n message.elems = new Uint8Array();\n }\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=multisig.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PrivKey = exports.PubKey = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nexports.protobufPackage = \"cosmos.crypto.secp256k1\";\nconst basePubKey = {};\nexports.PubKey = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, basePubKey);\n message.key = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, basePubKey);\n message.key = new Uint8Array();\n if (object.key !== undefined && object.key !== null) {\n message.key = bytesFromBase64(object.key);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined &&\n (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, basePubKey);\n if (object.key !== undefined && object.key !== null) {\n message.key = object.key;\n }\n else {\n message.key = new Uint8Array();\n }\n return message;\n },\n};\nconst basePrivKey = {};\nexports.PrivKey = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, basePrivKey);\n message.key = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, basePrivKey);\n message.key = new Uint8Array();\n if (object.key !== undefined && object.key !== null) {\n message.key = bytesFromBase64(object.key);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined &&\n (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, basePrivKey);\n if (object.key !== undefined && object.key !== null) {\n message.key = object.key;\n }\n else {\n message.key = new Uint8Array();\n }\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=keys.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CommunityPoolSpendProposalWithDeposit = exports.DelegationDelegatorReward = exports.DelegatorStartingInfo = exports.CommunityPoolSpendProposal = exports.FeePool = exports.ValidatorSlashEvents = exports.ValidatorSlashEvent = exports.ValidatorOutstandingRewards = exports.ValidatorAccumulatedCommission = exports.ValidatorCurrentRewards = exports.ValidatorHistoricalRewards = exports.Params = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst coin_1 = require(\"../../../cosmos/base/v1beta1/coin\");\nexports.protobufPackage = \"cosmos.distribution.v1beta1\";\nconst baseParams = {\n communityTax: \"\",\n baseProposerReward: \"\",\n bonusProposerReward: \"\",\n withdrawAddrEnabled: false,\n};\nexports.Params = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.communityTax !== \"\") {\n writer.uint32(10).string(message.communityTax);\n }\n if (message.baseProposerReward !== \"\") {\n writer.uint32(18).string(message.baseProposerReward);\n }\n if (message.bonusProposerReward !== \"\") {\n writer.uint32(26).string(message.bonusProposerReward);\n }\n if (message.withdrawAddrEnabled === true) {\n writer.uint32(32).bool(message.withdrawAddrEnabled);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseParams);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.communityTax = reader.string();\n break;\n case 2:\n message.baseProposerReward = reader.string();\n break;\n case 3:\n message.bonusProposerReward = reader.string();\n break;\n case 4:\n message.withdrawAddrEnabled = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseParams);\n if (object.communityTax !== undefined && object.communityTax !== null) {\n message.communityTax = String(object.communityTax);\n }\n else {\n message.communityTax = \"\";\n }\n if (object.baseProposerReward !== undefined && object.baseProposerReward !== null) {\n message.baseProposerReward = String(object.baseProposerReward);\n }\n else {\n message.baseProposerReward = \"\";\n }\n if (object.bonusProposerReward !== undefined && object.bonusProposerReward !== null) {\n message.bonusProposerReward = String(object.bonusProposerReward);\n }\n else {\n message.bonusProposerReward = \"\";\n }\n if (object.withdrawAddrEnabled !== undefined && object.withdrawAddrEnabled !== null) {\n message.withdrawAddrEnabled = Boolean(object.withdrawAddrEnabled);\n }\n else {\n message.withdrawAddrEnabled = false;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.communityTax !== undefined && (obj.communityTax = message.communityTax);\n message.baseProposerReward !== undefined && (obj.baseProposerReward = message.baseProposerReward);\n message.bonusProposerReward !== undefined && (obj.bonusProposerReward = message.bonusProposerReward);\n message.withdrawAddrEnabled !== undefined && (obj.withdrawAddrEnabled = message.withdrawAddrEnabled);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseParams);\n if (object.communityTax !== undefined && object.communityTax !== null) {\n message.communityTax = object.communityTax;\n }\n else {\n message.communityTax = \"\";\n }\n if (object.baseProposerReward !== undefined && object.baseProposerReward !== null) {\n message.baseProposerReward = object.baseProposerReward;\n }\n else {\n message.baseProposerReward = \"\";\n }\n if (object.bonusProposerReward !== undefined && object.bonusProposerReward !== null) {\n message.bonusProposerReward = object.bonusProposerReward;\n }\n else {\n message.bonusProposerReward = \"\";\n }\n if (object.withdrawAddrEnabled !== undefined && object.withdrawAddrEnabled !== null) {\n message.withdrawAddrEnabled = object.withdrawAddrEnabled;\n }\n else {\n message.withdrawAddrEnabled = false;\n }\n return message;\n },\n};\nconst baseValidatorHistoricalRewards = { referenceCount: 0 };\nexports.ValidatorHistoricalRewards = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.cumulativeRewardRatio) {\n coin_1.DecCoin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.referenceCount !== 0) {\n writer.uint32(16).uint32(message.referenceCount);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseValidatorHistoricalRewards);\n message.cumulativeRewardRatio = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.cumulativeRewardRatio.push(coin_1.DecCoin.decode(reader, reader.uint32()));\n break;\n case 2:\n message.referenceCount = reader.uint32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseValidatorHistoricalRewards);\n message.cumulativeRewardRatio = [];\n if (object.cumulativeRewardRatio !== undefined && object.cumulativeRewardRatio !== null) {\n for (const e of object.cumulativeRewardRatio) {\n message.cumulativeRewardRatio.push(coin_1.DecCoin.fromJSON(e));\n }\n }\n if (object.referenceCount !== undefined && object.referenceCount !== null) {\n message.referenceCount = Number(object.referenceCount);\n }\n else {\n message.referenceCount = 0;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.cumulativeRewardRatio) {\n obj.cumulativeRewardRatio = message.cumulativeRewardRatio.map((e) => e ? coin_1.DecCoin.toJSON(e) : undefined);\n }\n else {\n obj.cumulativeRewardRatio = [];\n }\n message.referenceCount !== undefined && (obj.referenceCount = message.referenceCount);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseValidatorHistoricalRewards);\n message.cumulativeRewardRatio = [];\n if (object.cumulativeRewardRatio !== undefined && object.cumulativeRewardRatio !== null) {\n for (const e of object.cumulativeRewardRatio) {\n message.cumulativeRewardRatio.push(coin_1.DecCoin.fromPartial(e));\n }\n }\n if (object.referenceCount !== undefined && object.referenceCount !== null) {\n message.referenceCount = object.referenceCount;\n }\n else {\n message.referenceCount = 0;\n }\n return message;\n },\n};\nconst baseValidatorCurrentRewards = { period: long_1.default.UZERO };\nexports.ValidatorCurrentRewards = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.rewards) {\n coin_1.DecCoin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (!message.period.isZero()) {\n writer.uint32(16).uint64(message.period);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseValidatorCurrentRewards);\n message.rewards = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.rewards.push(coin_1.DecCoin.decode(reader, reader.uint32()));\n break;\n case 2:\n message.period = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseValidatorCurrentRewards);\n message.rewards = [];\n if (object.rewards !== undefined && object.rewards !== null) {\n for (const e of object.rewards) {\n message.rewards.push(coin_1.DecCoin.fromJSON(e));\n }\n }\n if (object.period !== undefined && object.period !== null) {\n message.period = long_1.default.fromString(object.period);\n }\n else {\n message.period = long_1.default.UZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.rewards) {\n obj.rewards = message.rewards.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined));\n }\n else {\n obj.rewards = [];\n }\n message.period !== undefined && (obj.period = (message.period || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseValidatorCurrentRewards);\n message.rewards = [];\n if (object.rewards !== undefined && object.rewards !== null) {\n for (const e of object.rewards) {\n message.rewards.push(coin_1.DecCoin.fromPartial(e));\n }\n }\n if (object.period !== undefined && object.period !== null) {\n message.period = object.period;\n }\n else {\n message.period = long_1.default.UZERO;\n }\n return message;\n },\n};\nconst baseValidatorAccumulatedCommission = {};\nexports.ValidatorAccumulatedCommission = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.commission) {\n coin_1.DecCoin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseValidatorAccumulatedCommission);\n message.commission = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.commission.push(coin_1.DecCoin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseValidatorAccumulatedCommission);\n message.commission = [];\n if (object.commission !== undefined && object.commission !== null) {\n for (const e of object.commission) {\n message.commission.push(coin_1.DecCoin.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.commission) {\n obj.commission = message.commission.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined));\n }\n else {\n obj.commission = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseValidatorAccumulatedCommission);\n message.commission = [];\n if (object.commission !== undefined && object.commission !== null) {\n for (const e of object.commission) {\n message.commission.push(coin_1.DecCoin.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseValidatorOutstandingRewards = {};\nexports.ValidatorOutstandingRewards = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.rewards) {\n coin_1.DecCoin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseValidatorOutstandingRewards);\n message.rewards = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.rewards.push(coin_1.DecCoin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseValidatorOutstandingRewards);\n message.rewards = [];\n if (object.rewards !== undefined && object.rewards !== null) {\n for (const e of object.rewards) {\n message.rewards.push(coin_1.DecCoin.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.rewards) {\n obj.rewards = message.rewards.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined));\n }\n else {\n obj.rewards = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseValidatorOutstandingRewards);\n message.rewards = [];\n if (object.rewards !== undefined && object.rewards !== null) {\n for (const e of object.rewards) {\n message.rewards.push(coin_1.DecCoin.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseValidatorSlashEvent = { validatorPeriod: long_1.default.UZERO, fraction: \"\" };\nexports.ValidatorSlashEvent = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.validatorPeriod.isZero()) {\n writer.uint32(8).uint64(message.validatorPeriod);\n }\n if (message.fraction !== \"\") {\n writer.uint32(18).string(message.fraction);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseValidatorSlashEvent);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validatorPeriod = reader.uint64();\n break;\n case 2:\n message.fraction = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseValidatorSlashEvent);\n if (object.validatorPeriod !== undefined && object.validatorPeriod !== null) {\n message.validatorPeriod = long_1.default.fromString(object.validatorPeriod);\n }\n else {\n message.validatorPeriod = long_1.default.UZERO;\n }\n if (object.fraction !== undefined && object.fraction !== null) {\n message.fraction = String(object.fraction);\n }\n else {\n message.fraction = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.validatorPeriod !== undefined &&\n (obj.validatorPeriod = (message.validatorPeriod || long_1.default.UZERO).toString());\n message.fraction !== undefined && (obj.fraction = message.fraction);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseValidatorSlashEvent);\n if (object.validatorPeriod !== undefined && object.validatorPeriod !== null) {\n message.validatorPeriod = object.validatorPeriod;\n }\n else {\n message.validatorPeriod = long_1.default.UZERO;\n }\n if (object.fraction !== undefined && object.fraction !== null) {\n message.fraction = object.fraction;\n }\n else {\n message.fraction = \"\";\n }\n return message;\n },\n};\nconst baseValidatorSlashEvents = {};\nexports.ValidatorSlashEvents = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.validatorSlashEvents) {\n exports.ValidatorSlashEvent.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseValidatorSlashEvents);\n message.validatorSlashEvents = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validatorSlashEvents.push(exports.ValidatorSlashEvent.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseValidatorSlashEvents);\n message.validatorSlashEvents = [];\n if (object.validatorSlashEvents !== undefined && object.validatorSlashEvents !== null) {\n for (const e of object.validatorSlashEvents) {\n message.validatorSlashEvents.push(exports.ValidatorSlashEvent.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.validatorSlashEvents) {\n obj.validatorSlashEvents = message.validatorSlashEvents.map((e) => e ? exports.ValidatorSlashEvent.toJSON(e) : undefined);\n }\n else {\n obj.validatorSlashEvents = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseValidatorSlashEvents);\n message.validatorSlashEvents = [];\n if (object.validatorSlashEvents !== undefined && object.validatorSlashEvents !== null) {\n for (const e of object.validatorSlashEvents) {\n message.validatorSlashEvents.push(exports.ValidatorSlashEvent.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseFeePool = {};\nexports.FeePool = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.communityPool) {\n coin_1.DecCoin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseFeePool);\n message.communityPool = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.communityPool.push(coin_1.DecCoin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseFeePool);\n message.communityPool = [];\n if (object.communityPool !== undefined && object.communityPool !== null) {\n for (const e of object.communityPool) {\n message.communityPool.push(coin_1.DecCoin.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.communityPool) {\n obj.communityPool = message.communityPool.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined));\n }\n else {\n obj.communityPool = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseFeePool);\n message.communityPool = [];\n if (object.communityPool !== undefined && object.communityPool !== null) {\n for (const e of object.communityPool) {\n message.communityPool.push(coin_1.DecCoin.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseCommunityPoolSpendProposal = { title: \"\", description: \"\", recipient: \"\" };\nexports.CommunityPoolSpendProposal = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.title !== \"\") {\n writer.uint32(10).string(message.title);\n }\n if (message.description !== \"\") {\n writer.uint32(18).string(message.description);\n }\n if (message.recipient !== \"\") {\n writer.uint32(26).string(message.recipient);\n }\n for (const v of message.amount) {\n coin_1.Coin.encode(v, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseCommunityPoolSpendProposal);\n message.amount = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.title = reader.string();\n break;\n case 2:\n message.description = reader.string();\n break;\n case 3:\n message.recipient = reader.string();\n break;\n case 4:\n message.amount.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseCommunityPoolSpendProposal);\n message.amount = [];\n if (object.title !== undefined && object.title !== null) {\n message.title = String(object.title);\n }\n else {\n message.title = \"\";\n }\n if (object.description !== undefined && object.description !== null) {\n message.description = String(object.description);\n }\n else {\n message.description = \"\";\n }\n if (object.recipient !== undefined && object.recipient !== null) {\n message.recipient = String(object.recipient);\n }\n else {\n message.recipient = \"\";\n }\n if (object.amount !== undefined && object.amount !== null) {\n for (const e of object.amount) {\n message.amount.push(coin_1.Coin.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.title !== undefined && (obj.title = message.title);\n message.description !== undefined && (obj.description = message.description);\n message.recipient !== undefined && (obj.recipient = message.recipient);\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.amount = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseCommunityPoolSpendProposal);\n message.amount = [];\n if (object.title !== undefined && object.title !== null) {\n message.title = object.title;\n }\n else {\n message.title = \"\";\n }\n if (object.description !== undefined && object.description !== null) {\n message.description = object.description;\n }\n else {\n message.description = \"\";\n }\n if (object.recipient !== undefined && object.recipient !== null) {\n message.recipient = object.recipient;\n }\n else {\n message.recipient = \"\";\n }\n if (object.amount !== undefined && object.amount !== null) {\n for (const e of object.amount) {\n message.amount.push(coin_1.Coin.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseDelegatorStartingInfo = { previousPeriod: long_1.default.UZERO, stake: \"\", height: long_1.default.UZERO };\nexports.DelegatorStartingInfo = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.previousPeriod.isZero()) {\n writer.uint32(8).uint64(message.previousPeriod);\n }\n if (message.stake !== \"\") {\n writer.uint32(18).string(message.stake);\n }\n if (!message.height.isZero()) {\n writer.uint32(24).uint64(message.height);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDelegatorStartingInfo);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.previousPeriod = reader.uint64();\n break;\n case 2:\n message.stake = reader.string();\n break;\n case 3:\n message.height = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseDelegatorStartingInfo);\n if (object.previousPeriod !== undefined && object.previousPeriod !== null) {\n message.previousPeriod = long_1.default.fromString(object.previousPeriod);\n }\n else {\n message.previousPeriod = long_1.default.UZERO;\n }\n if (object.stake !== undefined && object.stake !== null) {\n message.stake = String(object.stake);\n }\n else {\n message.stake = \"\";\n }\n if (object.height !== undefined && object.height !== null) {\n message.height = long_1.default.fromString(object.height);\n }\n else {\n message.height = long_1.default.UZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.previousPeriod !== undefined &&\n (obj.previousPeriod = (message.previousPeriod || long_1.default.UZERO).toString());\n message.stake !== undefined && (obj.stake = message.stake);\n message.height !== undefined && (obj.height = (message.height || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseDelegatorStartingInfo);\n if (object.previousPeriod !== undefined && object.previousPeriod !== null) {\n message.previousPeriod = object.previousPeriod;\n }\n else {\n message.previousPeriod = long_1.default.UZERO;\n }\n if (object.stake !== undefined && object.stake !== null) {\n message.stake = object.stake;\n }\n else {\n message.stake = \"\";\n }\n if (object.height !== undefined && object.height !== null) {\n message.height = object.height;\n }\n else {\n message.height = long_1.default.UZERO;\n }\n return message;\n },\n};\nconst baseDelegationDelegatorReward = { validatorAddress: \"\" };\nexports.DelegationDelegatorReward = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.validatorAddress !== \"\") {\n writer.uint32(10).string(message.validatorAddress);\n }\n for (const v of message.reward) {\n coin_1.DecCoin.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDelegationDelegatorReward);\n message.reward = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validatorAddress = reader.string();\n break;\n case 2:\n message.reward.push(coin_1.DecCoin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseDelegationDelegatorReward);\n message.reward = [];\n if (object.validatorAddress !== undefined && object.validatorAddress !== null) {\n message.validatorAddress = String(object.validatorAddress);\n }\n else {\n message.validatorAddress = \"\";\n }\n if (object.reward !== undefined && object.reward !== null) {\n for (const e of object.reward) {\n message.reward.push(coin_1.DecCoin.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n if (message.reward) {\n obj.reward = message.reward.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined));\n }\n else {\n obj.reward = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseDelegationDelegatorReward);\n message.reward = [];\n if (object.validatorAddress !== undefined && object.validatorAddress !== null) {\n message.validatorAddress = object.validatorAddress;\n }\n else {\n message.validatorAddress = \"\";\n }\n if (object.reward !== undefined && object.reward !== null) {\n for (const e of object.reward) {\n message.reward.push(coin_1.DecCoin.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseCommunityPoolSpendProposalWithDeposit = {\n title: \"\",\n description: \"\",\n recipient: \"\",\n amount: \"\",\n deposit: \"\",\n};\nexports.CommunityPoolSpendProposalWithDeposit = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.title !== \"\") {\n writer.uint32(10).string(message.title);\n }\n if (message.description !== \"\") {\n writer.uint32(18).string(message.description);\n }\n if (message.recipient !== \"\") {\n writer.uint32(26).string(message.recipient);\n }\n if (message.amount !== \"\") {\n writer.uint32(34).string(message.amount);\n }\n if (message.deposit !== \"\") {\n writer.uint32(42).string(message.deposit);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseCommunityPoolSpendProposalWithDeposit);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.title = reader.string();\n break;\n case 2:\n message.description = reader.string();\n break;\n case 3:\n message.recipient = reader.string();\n break;\n case 4:\n message.amount = reader.string();\n break;\n case 5:\n message.deposit = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseCommunityPoolSpendProposalWithDeposit);\n if (object.title !== undefined && object.title !== null) {\n message.title = String(object.title);\n }\n else {\n message.title = \"\";\n }\n if (object.description !== undefined && object.description !== null) {\n message.description = String(object.description);\n }\n else {\n message.description = \"\";\n }\n if (object.recipient !== undefined && object.recipient !== null) {\n message.recipient = String(object.recipient);\n }\n else {\n message.recipient = \"\";\n }\n if (object.amount !== undefined && object.amount !== null) {\n message.amount = String(object.amount);\n }\n else {\n message.amount = \"\";\n }\n if (object.deposit !== undefined && object.deposit !== null) {\n message.deposit = String(object.deposit);\n }\n else {\n message.deposit = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.title !== undefined && (obj.title = message.title);\n message.description !== undefined && (obj.description = message.description);\n message.recipient !== undefined && (obj.recipient = message.recipient);\n message.amount !== undefined && (obj.amount = message.amount);\n message.deposit !== undefined && (obj.deposit = message.deposit);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseCommunityPoolSpendProposalWithDeposit);\n if (object.title !== undefined && object.title !== null) {\n message.title = object.title;\n }\n else {\n message.title = \"\";\n }\n if (object.description !== undefined && object.description !== null) {\n message.description = object.description;\n }\n else {\n message.description = \"\";\n }\n if (object.recipient !== undefined && object.recipient !== null) {\n message.recipient = object.recipient;\n }\n else {\n message.recipient = \"\";\n }\n if (object.amount !== undefined && object.amount !== null) {\n message.amount = object.amount;\n }\n else {\n message.amount = \"\";\n }\n if (object.deposit !== undefined && object.deposit !== null) {\n message.deposit = object.deposit;\n }\n else {\n message.deposit = \"\";\n }\n return message;\n },\n};\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=distribution.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GrpcWebImpl = exports.MsgFundCommunityPoolDesc = exports.MsgWithdrawValidatorCommissionDesc = exports.MsgWithdrawDelegatorRewardDesc = exports.MsgSetWithdrawAddressDesc = exports.MsgDesc = exports.MsgClientImpl = exports.MsgFundCommunityPoolResponse = exports.MsgFundCommunityPool = exports.MsgWithdrawValidatorCommissionResponse = exports.MsgWithdrawValidatorCommission = exports.MsgWithdrawDelegatorRewardResponse = exports.MsgWithdrawDelegatorReward = exports.MsgSetWithdrawAddressResponse = exports.MsgSetWithdrawAddress = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst grpc_web_1 = require(\"@improbable-eng/grpc-web\");\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst browser_headers_1 = require(\"browser-headers\");\nconst coin_1 = require(\"../../../cosmos/base/v1beta1/coin\");\nexports.protobufPackage = \"cosmos.distribution.v1beta1\";\nconst baseMsgSetWithdrawAddress = { delegatorAddress: \"\", withdrawAddress: \"\" };\nexports.MsgSetWithdrawAddress = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.withdrawAddress !== \"\") {\n writer.uint32(18).string(message.withdrawAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgSetWithdrawAddress);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.withdrawAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgSetWithdrawAddress);\n if (object.delegatorAddress !== undefined && object.delegatorAddress !== null) {\n message.delegatorAddress = String(object.delegatorAddress);\n }\n else {\n message.delegatorAddress = \"\";\n }\n if (object.withdrawAddress !== undefined && object.withdrawAddress !== null) {\n message.withdrawAddress = String(object.withdrawAddress);\n }\n else {\n message.withdrawAddress = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.withdrawAddress !== undefined && (obj.withdrawAddress = message.withdrawAddress);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgSetWithdrawAddress);\n if (object.delegatorAddress !== undefined && object.delegatorAddress !== null) {\n message.delegatorAddress = object.delegatorAddress;\n }\n else {\n message.delegatorAddress = \"\";\n }\n if (object.withdrawAddress !== undefined && object.withdrawAddress !== null) {\n message.withdrawAddress = object.withdrawAddress;\n }\n else {\n message.withdrawAddress = \"\";\n }\n return message;\n },\n};\nconst baseMsgSetWithdrawAddressResponse = {};\nexports.MsgSetWithdrawAddressResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgSetWithdrawAddressResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgSetWithdrawAddressResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgSetWithdrawAddressResponse);\n return message;\n },\n};\nconst baseMsgWithdrawDelegatorReward = { delegatorAddress: \"\", validatorAddress: \"\" };\nexports.MsgWithdrawDelegatorReward = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.validatorAddress !== \"\") {\n writer.uint32(18).string(message.validatorAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgWithdrawDelegatorReward);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.validatorAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgWithdrawDelegatorReward);\n if (object.delegatorAddress !== undefined && object.delegatorAddress !== null) {\n message.delegatorAddress = String(object.delegatorAddress);\n }\n else {\n message.delegatorAddress = \"\";\n }\n if (object.validatorAddress !== undefined && object.validatorAddress !== null) {\n message.validatorAddress = String(object.validatorAddress);\n }\n else {\n message.validatorAddress = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgWithdrawDelegatorReward);\n if (object.delegatorAddress !== undefined && object.delegatorAddress !== null) {\n message.delegatorAddress = object.delegatorAddress;\n }\n else {\n message.delegatorAddress = \"\";\n }\n if (object.validatorAddress !== undefined && object.validatorAddress !== null) {\n message.validatorAddress = object.validatorAddress;\n }\n else {\n message.validatorAddress = \"\";\n }\n return message;\n },\n};\nconst baseMsgWithdrawDelegatorRewardResponse = {};\nexports.MsgWithdrawDelegatorRewardResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgWithdrawDelegatorRewardResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgWithdrawDelegatorRewardResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgWithdrawDelegatorRewardResponse);\n return message;\n },\n};\nconst baseMsgWithdrawValidatorCommission = { validatorAddress: \"\" };\nexports.MsgWithdrawValidatorCommission = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.validatorAddress !== \"\") {\n writer.uint32(10).string(message.validatorAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgWithdrawValidatorCommission);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validatorAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgWithdrawValidatorCommission);\n if (object.validatorAddress !== undefined && object.validatorAddress !== null) {\n message.validatorAddress = String(object.validatorAddress);\n }\n else {\n message.validatorAddress = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgWithdrawValidatorCommission);\n if (object.validatorAddress !== undefined && object.validatorAddress !== null) {\n message.validatorAddress = object.validatorAddress;\n }\n else {\n message.validatorAddress = \"\";\n }\n return message;\n },\n};\nconst baseMsgWithdrawValidatorCommissionResponse = {};\nexports.MsgWithdrawValidatorCommissionResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgWithdrawValidatorCommissionResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgWithdrawValidatorCommissionResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgWithdrawValidatorCommissionResponse);\n return message;\n },\n};\nconst baseMsgFundCommunityPool = { depositor: \"\" };\nexports.MsgFundCommunityPool = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.amount) {\n coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.depositor !== \"\") {\n writer.uint32(18).string(message.depositor);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgFundCommunityPool);\n message.amount = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.amount.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 2:\n message.depositor = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgFundCommunityPool);\n message.amount = [];\n if (object.amount !== undefined && object.amount !== null) {\n for (const e of object.amount) {\n message.amount.push(coin_1.Coin.fromJSON(e));\n }\n }\n if (object.depositor !== undefined && object.depositor !== null) {\n message.depositor = String(object.depositor);\n }\n else {\n message.depositor = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.amount = [];\n }\n message.depositor !== undefined && (obj.depositor = message.depositor);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgFundCommunityPool);\n message.amount = [];\n if (object.amount !== undefined && object.amount !== null) {\n for (const e of object.amount) {\n message.amount.push(coin_1.Coin.fromPartial(e));\n }\n }\n if (object.depositor !== undefined && object.depositor !== null) {\n message.depositor = object.depositor;\n }\n else {\n message.depositor = \"\";\n }\n return message;\n },\n};\nconst baseMsgFundCommunityPoolResponse = {};\nexports.MsgFundCommunityPoolResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgFundCommunityPoolResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgFundCommunityPoolResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgFundCommunityPoolResponse);\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.SetWithdrawAddress = this.SetWithdrawAddress.bind(this);\n this.WithdrawDelegatorReward = this.WithdrawDelegatorReward.bind(this);\n this.WithdrawValidatorCommission = this.WithdrawValidatorCommission.bind(this);\n this.FundCommunityPool = this.FundCommunityPool.bind(this);\n }\n SetWithdrawAddress(request, metadata) {\n return this.rpc.unary(exports.MsgSetWithdrawAddressDesc, exports.MsgSetWithdrawAddress.fromPartial(request), metadata);\n }\n WithdrawDelegatorReward(request, metadata) {\n return this.rpc.unary(exports.MsgWithdrawDelegatorRewardDesc, exports.MsgWithdrawDelegatorReward.fromPartial(request), metadata);\n }\n WithdrawValidatorCommission(request, metadata) {\n return this.rpc.unary(exports.MsgWithdrawValidatorCommissionDesc, exports.MsgWithdrawValidatorCommission.fromPartial(request), metadata);\n }\n FundCommunityPool(request, metadata) {\n return this.rpc.unary(exports.MsgFundCommunityPoolDesc, exports.MsgFundCommunityPool.fromPartial(request), metadata);\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\nexports.MsgDesc = {\n serviceName: \"cosmos.distribution.v1beta1.Msg\",\n};\nexports.MsgSetWithdrawAddressDesc = {\n methodName: \"SetWithdrawAddress\",\n service: exports.MsgDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.MsgSetWithdrawAddress.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.MsgSetWithdrawAddressResponse.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nexports.MsgWithdrawDelegatorRewardDesc = {\n methodName: \"WithdrawDelegatorReward\",\n service: exports.MsgDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.MsgWithdrawDelegatorReward.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.MsgWithdrawDelegatorRewardResponse.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nexports.MsgWithdrawValidatorCommissionDesc = {\n methodName: \"WithdrawValidatorCommission\",\n service: exports.MsgDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.MsgWithdrawValidatorCommission.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.MsgWithdrawValidatorCommissionResponse.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nexports.MsgFundCommunityPoolDesc = {\n methodName: \"FundCommunityPool\",\n service: exports.MsgDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.MsgFundCommunityPool.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.MsgFundCommunityPoolResponse.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nclass GrpcWebImpl {\n constructor(host, options) {\n this.host = host;\n this.options = options;\n }\n unary(methodDesc, _request, metadata) {\n var _a;\n const request = Object.assign(Object.assign({}, _request), methodDesc.requestType);\n const maybeCombinedMetadata = metadata && this.options.metadata\n ? new browser_headers_1.BrowserHeaders(Object.assign(Object.assign({}, (_a = this.options) === null || _a === void 0 ? void 0 : _a.metadata.headersMap), metadata === null || metadata === void 0 ? void 0 : metadata.headersMap))\n : metadata || this.options.metadata;\n return new Promise((resolve, reject) => {\n grpc_web_1.grpc.unary(methodDesc, {\n request,\n host: this.host,\n metadata: maybeCombinedMetadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (response.status === grpc_web_1.grpc.Code.OK) {\n resolve(response.message);\n }\n else {\n const err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n reject(err);\n }\n },\n });\n });\n }\n}\nexports.GrpcWebImpl = GrpcWebImpl;\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=tx.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Grant = exports.AllowedMsgAllowance = exports.PeriodicAllowance = exports.BasicAllowance = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst duration_1 = require(\"../../../google/protobuf/duration\");\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst timestamp_1 = require(\"../../../google/protobuf/timestamp\");\nconst coin_1 = require(\"../../../cosmos/base/v1beta1/coin\");\nexports.protobufPackage = \"cosmos.feegrant.v1beta1\";\nconst baseBasicAllowance = {};\nexports.BasicAllowance = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.spendLimit) {\n coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.expiration !== undefined) {\n timestamp_1.Timestamp.encode(toTimestamp(message.expiration), writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseBasicAllowance);\n message.spendLimit = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.spendLimit.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 2:\n message.expiration = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseBasicAllowance);\n message.spendLimit = [];\n if (object.spendLimit !== undefined && object.spendLimit !== null) {\n for (const e of object.spendLimit) {\n message.spendLimit.push(coin_1.Coin.fromJSON(e));\n }\n }\n if (object.expiration !== undefined && object.expiration !== null) {\n message.expiration = fromJsonTimestamp(object.expiration);\n }\n else {\n message.expiration = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.spendLimit) {\n obj.spendLimit = message.spendLimit.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.spendLimit = [];\n }\n message.expiration !== undefined && (obj.expiration = message.expiration.toISOString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseBasicAllowance);\n message.spendLimit = [];\n if (object.spendLimit !== undefined && object.spendLimit !== null) {\n for (const e of object.spendLimit) {\n message.spendLimit.push(coin_1.Coin.fromPartial(e));\n }\n }\n if (object.expiration !== undefined && object.expiration !== null) {\n message.expiration = object.expiration;\n }\n else {\n message.expiration = undefined;\n }\n return message;\n },\n};\nconst basePeriodicAllowance = {};\nexports.PeriodicAllowance = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.basic !== undefined) {\n exports.BasicAllowance.encode(message.basic, writer.uint32(10).fork()).ldelim();\n }\n if (message.period !== undefined) {\n duration_1.Duration.encode(message.period, writer.uint32(18).fork()).ldelim();\n }\n for (const v of message.periodSpendLimit) {\n coin_1.Coin.encode(v, writer.uint32(26).fork()).ldelim();\n }\n for (const v of message.periodCanSpend) {\n coin_1.Coin.encode(v, writer.uint32(34).fork()).ldelim();\n }\n if (message.periodReset !== undefined) {\n timestamp_1.Timestamp.encode(toTimestamp(message.periodReset), writer.uint32(42).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, basePeriodicAllowance);\n message.periodSpendLimit = [];\n message.periodCanSpend = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.basic = exports.BasicAllowance.decode(reader, reader.uint32());\n break;\n case 2:\n message.period = duration_1.Duration.decode(reader, reader.uint32());\n break;\n case 3:\n message.periodSpendLimit.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 4:\n message.periodCanSpend.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 5:\n message.periodReset = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, basePeriodicAllowance);\n message.periodSpendLimit = [];\n message.periodCanSpend = [];\n if (object.basic !== undefined && object.basic !== null) {\n message.basic = exports.BasicAllowance.fromJSON(object.basic);\n }\n else {\n message.basic = undefined;\n }\n if (object.period !== undefined && object.period !== null) {\n message.period = duration_1.Duration.fromJSON(object.period);\n }\n else {\n message.period = undefined;\n }\n if (object.periodSpendLimit !== undefined && object.periodSpendLimit !== null) {\n for (const e of object.periodSpendLimit) {\n message.periodSpendLimit.push(coin_1.Coin.fromJSON(e));\n }\n }\n if (object.periodCanSpend !== undefined && object.periodCanSpend !== null) {\n for (const e of object.periodCanSpend) {\n message.periodCanSpend.push(coin_1.Coin.fromJSON(e));\n }\n }\n if (object.periodReset !== undefined && object.periodReset !== null) {\n message.periodReset = fromJsonTimestamp(object.periodReset);\n }\n else {\n message.periodReset = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.basic !== undefined &&\n (obj.basic = message.basic ? exports.BasicAllowance.toJSON(message.basic) : undefined);\n message.period !== undefined &&\n (obj.period = message.period ? duration_1.Duration.toJSON(message.period) : undefined);\n if (message.periodSpendLimit) {\n obj.periodSpendLimit = message.periodSpendLimit.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.periodSpendLimit = [];\n }\n if (message.periodCanSpend) {\n obj.periodCanSpend = message.periodCanSpend.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.periodCanSpend = [];\n }\n message.periodReset !== undefined && (obj.periodReset = message.periodReset.toISOString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, basePeriodicAllowance);\n message.periodSpendLimit = [];\n message.periodCanSpend = [];\n if (object.basic !== undefined && object.basic !== null) {\n message.basic = exports.BasicAllowance.fromPartial(object.basic);\n }\n else {\n message.basic = undefined;\n }\n if (object.period !== undefined && object.period !== null) {\n message.period = duration_1.Duration.fromPartial(object.period);\n }\n else {\n message.period = undefined;\n }\n if (object.periodSpendLimit !== undefined && object.periodSpendLimit !== null) {\n for (const e of object.periodSpendLimit) {\n message.periodSpendLimit.push(coin_1.Coin.fromPartial(e));\n }\n }\n if (object.periodCanSpend !== undefined && object.periodCanSpend !== null) {\n for (const e of object.periodCanSpend) {\n message.periodCanSpend.push(coin_1.Coin.fromPartial(e));\n }\n }\n if (object.periodReset !== undefined && object.periodReset !== null) {\n message.periodReset = object.periodReset;\n }\n else {\n message.periodReset = undefined;\n }\n return message;\n },\n};\nconst baseAllowedMsgAllowance = { allowedMessages: \"\" };\nexports.AllowedMsgAllowance = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.allowance !== undefined) {\n any_1.Any.encode(message.allowance, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.allowedMessages) {\n writer.uint32(18).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseAllowedMsgAllowance);\n message.allowedMessages = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.allowance = any_1.Any.decode(reader, reader.uint32());\n break;\n case 2:\n message.allowedMessages.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseAllowedMsgAllowance);\n message.allowedMessages = [];\n if (object.allowance !== undefined && object.allowance !== null) {\n message.allowance = any_1.Any.fromJSON(object.allowance);\n }\n else {\n message.allowance = undefined;\n }\n if (object.allowedMessages !== undefined && object.allowedMessages !== null) {\n for (const e of object.allowedMessages) {\n message.allowedMessages.push(String(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.allowance !== undefined &&\n (obj.allowance = message.allowance ? any_1.Any.toJSON(message.allowance) : undefined);\n if (message.allowedMessages) {\n obj.allowedMessages = message.allowedMessages.map((e) => e);\n }\n else {\n obj.allowedMessages = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseAllowedMsgAllowance);\n message.allowedMessages = [];\n if (object.allowance !== undefined && object.allowance !== null) {\n message.allowance = any_1.Any.fromPartial(object.allowance);\n }\n else {\n message.allowance = undefined;\n }\n if (object.allowedMessages !== undefined && object.allowedMessages !== null) {\n for (const e of object.allowedMessages) {\n message.allowedMessages.push(e);\n }\n }\n return message;\n },\n};\nconst baseGrant = { granter: \"\", grantee: \"\" };\nexports.Grant = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.granter !== \"\") {\n writer.uint32(10).string(message.granter);\n }\n if (message.grantee !== \"\") {\n writer.uint32(18).string(message.grantee);\n }\n if (message.allowance !== undefined) {\n any_1.Any.encode(message.allowance, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseGrant);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.granter = reader.string();\n break;\n case 2:\n message.grantee = reader.string();\n break;\n case 3:\n message.allowance = any_1.Any.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseGrant);\n if (object.granter !== undefined && object.granter !== null) {\n message.granter = String(object.granter);\n }\n else {\n message.granter = \"\";\n }\n if (object.grantee !== undefined && object.grantee !== null) {\n message.grantee = String(object.grantee);\n }\n else {\n message.grantee = \"\";\n }\n if (object.allowance !== undefined && object.allowance !== null) {\n message.allowance = any_1.Any.fromJSON(object.allowance);\n }\n else {\n message.allowance = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.granter !== undefined && (obj.granter = message.granter);\n message.grantee !== undefined && (obj.grantee = message.grantee);\n message.allowance !== undefined &&\n (obj.allowance = message.allowance ? any_1.Any.toJSON(message.allowance) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseGrant);\n if (object.granter !== undefined && object.granter !== null) {\n message.granter = object.granter;\n }\n else {\n message.granter = \"\";\n }\n if (object.grantee !== undefined && object.grantee !== null) {\n message.grantee = object.grantee;\n }\n else {\n message.grantee = \"\";\n }\n if (object.allowance !== undefined && object.allowance !== null) {\n message.allowance = any_1.Any.fromPartial(object.allowance);\n }\n else {\n message.allowance = undefined;\n }\n return message;\n },\n};\nfunction toTimestamp(date) {\n const seconds = numberToLong(date.getTime() / 1000);\n const nanos = (date.getTime() % 1000) * 1000000;\n return { seconds, nanos };\n}\nfunction fromTimestamp(t) {\n let millis = t.seconds.toNumber() * 1000;\n millis += t.nanos / 1000000;\n return new Date(millis);\n}\nfunction fromJsonTimestamp(o) {\n if (o instanceof Date) {\n return o;\n }\n else if (typeof o === \"string\") {\n return new Date(o);\n }\n else {\n return fromTimestamp(timestamp_1.Timestamp.fromJSON(o));\n }\n}\nfunction numberToLong(number) {\n return long_1.default.fromNumber(number);\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=feegrant.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GrpcWebImpl = exports.MsgRevokeAllowanceDesc = exports.MsgGrantAllowanceDesc = exports.MsgDesc = exports.MsgClientImpl = exports.MsgRevokeAllowanceResponse = exports.MsgRevokeAllowance = exports.MsgGrantAllowanceResponse = exports.MsgGrantAllowance = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst grpc_web_1 = require(\"@improbable-eng/grpc-web\");\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst browser_headers_1 = require(\"browser-headers\");\nexports.protobufPackage = \"cosmos.feegrant.v1beta1\";\nconst baseMsgGrantAllowance = { granter: \"\", grantee: \"\" };\nexports.MsgGrantAllowance = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.granter !== \"\") {\n writer.uint32(10).string(message.granter);\n }\n if (message.grantee !== \"\") {\n writer.uint32(18).string(message.grantee);\n }\n if (message.allowance !== undefined) {\n any_1.Any.encode(message.allowance, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgGrantAllowance);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.granter = reader.string();\n break;\n case 2:\n message.grantee = reader.string();\n break;\n case 3:\n message.allowance = any_1.Any.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgGrantAllowance);\n if (object.granter !== undefined && object.granter !== null) {\n message.granter = String(object.granter);\n }\n else {\n message.granter = \"\";\n }\n if (object.grantee !== undefined && object.grantee !== null) {\n message.grantee = String(object.grantee);\n }\n else {\n message.grantee = \"\";\n }\n if (object.allowance !== undefined && object.allowance !== null) {\n message.allowance = any_1.Any.fromJSON(object.allowance);\n }\n else {\n message.allowance = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.granter !== undefined && (obj.granter = message.granter);\n message.grantee !== undefined && (obj.grantee = message.grantee);\n message.allowance !== undefined &&\n (obj.allowance = message.allowance ? any_1.Any.toJSON(message.allowance) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgGrantAllowance);\n if (object.granter !== undefined && object.granter !== null) {\n message.granter = object.granter;\n }\n else {\n message.granter = \"\";\n }\n if (object.grantee !== undefined && object.grantee !== null) {\n message.grantee = object.grantee;\n }\n else {\n message.grantee = \"\";\n }\n if (object.allowance !== undefined && object.allowance !== null) {\n message.allowance = any_1.Any.fromPartial(object.allowance);\n }\n else {\n message.allowance = undefined;\n }\n return message;\n },\n};\nconst baseMsgGrantAllowanceResponse = {};\nexports.MsgGrantAllowanceResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgGrantAllowanceResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgGrantAllowanceResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgGrantAllowanceResponse);\n return message;\n },\n};\nconst baseMsgRevokeAllowance = { granter: \"\", grantee: \"\" };\nexports.MsgRevokeAllowance = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.granter !== \"\") {\n writer.uint32(10).string(message.granter);\n }\n if (message.grantee !== \"\") {\n writer.uint32(18).string(message.grantee);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgRevokeAllowance);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.granter = reader.string();\n break;\n case 2:\n message.grantee = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgRevokeAllowance);\n if (object.granter !== undefined && object.granter !== null) {\n message.granter = String(object.granter);\n }\n else {\n message.granter = \"\";\n }\n if (object.grantee !== undefined && object.grantee !== null) {\n message.grantee = String(object.grantee);\n }\n else {\n message.grantee = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.granter !== undefined && (obj.granter = message.granter);\n message.grantee !== undefined && (obj.grantee = message.grantee);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgRevokeAllowance);\n if (object.granter !== undefined && object.granter !== null) {\n message.granter = object.granter;\n }\n else {\n message.granter = \"\";\n }\n if (object.grantee !== undefined && object.grantee !== null) {\n message.grantee = object.grantee;\n }\n else {\n message.grantee = \"\";\n }\n return message;\n },\n};\nconst baseMsgRevokeAllowanceResponse = {};\nexports.MsgRevokeAllowanceResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgRevokeAllowanceResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgRevokeAllowanceResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgRevokeAllowanceResponse);\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.GrantAllowance = this.GrantAllowance.bind(this);\n this.RevokeAllowance = this.RevokeAllowance.bind(this);\n }\n GrantAllowance(request, metadata) {\n return this.rpc.unary(exports.MsgGrantAllowanceDesc, exports.MsgGrantAllowance.fromPartial(request), metadata);\n }\n RevokeAllowance(request, metadata) {\n return this.rpc.unary(exports.MsgRevokeAllowanceDesc, exports.MsgRevokeAllowance.fromPartial(request), metadata);\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\nexports.MsgDesc = {\n serviceName: \"cosmos.feegrant.v1beta1.Msg\",\n};\nexports.MsgGrantAllowanceDesc = {\n methodName: \"GrantAllowance\",\n service: exports.MsgDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.MsgGrantAllowance.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.MsgGrantAllowanceResponse.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nexports.MsgRevokeAllowanceDesc = {\n methodName: \"RevokeAllowance\",\n service: exports.MsgDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.MsgRevokeAllowance.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.MsgRevokeAllowanceResponse.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nclass GrpcWebImpl {\n constructor(host, options) {\n this.host = host;\n this.options = options;\n }\n unary(methodDesc, _request, metadata) {\n var _a;\n const request = Object.assign(Object.assign({}, _request), methodDesc.requestType);\n const maybeCombinedMetadata = metadata && this.options.metadata\n ? new browser_headers_1.BrowserHeaders(Object.assign(Object.assign({}, (_a = this.options) === null || _a === void 0 ? void 0 : _a.metadata.headersMap), metadata === null || metadata === void 0 ? void 0 : metadata.headersMap))\n : metadata || this.options.metadata;\n return new Promise((resolve, reject) => {\n grpc_web_1.grpc.unary(methodDesc, {\n request,\n host: this.host,\n metadata: maybeCombinedMetadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (response.status === grpc_web_1.grpc.Code.OK) {\n resolve(response.message);\n }\n else {\n const err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n reject(err);\n }\n },\n });\n });\n }\n}\nexports.GrpcWebImpl = GrpcWebImpl;\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=tx.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TallyParams = exports.VotingParams = exports.DepositParams = exports.Vote = exports.TallyResult = exports.Proposal = exports.Deposit = exports.TextProposal = exports.WeightedVoteOption = exports.proposalStatusToJSON = exports.proposalStatusFromJSON = exports.ProposalStatus = exports.voteOptionToJSON = exports.voteOptionFromJSON = exports.VoteOption = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst duration_1 = require(\"../../../google/protobuf/duration\");\nconst timestamp_1 = require(\"../../../google/protobuf/timestamp\");\nconst coin_1 = require(\"../../../cosmos/base/v1beta1/coin\");\nexports.protobufPackage = \"cosmos.gov.v1beta1\";\n/** VoteOption enumerates the valid vote options for a given governance proposal. */\nvar VoteOption;\n(function (VoteOption) {\n /** VOTE_OPTION_UNSPECIFIED - VOTE_OPTION_UNSPECIFIED defines a no-op vote option. */\n VoteOption[VoteOption[\"VOTE_OPTION_UNSPECIFIED\"] = 0] = \"VOTE_OPTION_UNSPECIFIED\";\n /** VOTE_OPTION_YES - VOTE_OPTION_YES defines a yes vote option. */\n VoteOption[VoteOption[\"VOTE_OPTION_YES\"] = 1] = \"VOTE_OPTION_YES\";\n /** VOTE_OPTION_ABSTAIN - VOTE_OPTION_ABSTAIN defines an abstain vote option. */\n VoteOption[VoteOption[\"VOTE_OPTION_ABSTAIN\"] = 2] = \"VOTE_OPTION_ABSTAIN\";\n /** VOTE_OPTION_NO - VOTE_OPTION_NO defines a no vote option. */\n VoteOption[VoteOption[\"VOTE_OPTION_NO\"] = 3] = \"VOTE_OPTION_NO\";\n /** VOTE_OPTION_NO_WITH_VETO - VOTE_OPTION_NO_WITH_VETO defines a no with veto vote option. */\n VoteOption[VoteOption[\"VOTE_OPTION_NO_WITH_VETO\"] = 4] = \"VOTE_OPTION_NO_WITH_VETO\";\n VoteOption[VoteOption[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(VoteOption = exports.VoteOption || (exports.VoteOption = {}));\nfunction voteOptionFromJSON(object) {\n switch (object) {\n case 0:\n case \"VOTE_OPTION_UNSPECIFIED\":\n return VoteOption.VOTE_OPTION_UNSPECIFIED;\n case 1:\n case \"VOTE_OPTION_YES\":\n return VoteOption.VOTE_OPTION_YES;\n case 2:\n case \"VOTE_OPTION_ABSTAIN\":\n return VoteOption.VOTE_OPTION_ABSTAIN;\n case 3:\n case \"VOTE_OPTION_NO\":\n return VoteOption.VOTE_OPTION_NO;\n case 4:\n case \"VOTE_OPTION_NO_WITH_VETO\":\n return VoteOption.VOTE_OPTION_NO_WITH_VETO;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return VoteOption.UNRECOGNIZED;\n }\n}\nexports.voteOptionFromJSON = voteOptionFromJSON;\nfunction voteOptionToJSON(object) {\n switch (object) {\n case VoteOption.VOTE_OPTION_UNSPECIFIED:\n return \"VOTE_OPTION_UNSPECIFIED\";\n case VoteOption.VOTE_OPTION_YES:\n return \"VOTE_OPTION_YES\";\n case VoteOption.VOTE_OPTION_ABSTAIN:\n return \"VOTE_OPTION_ABSTAIN\";\n case VoteOption.VOTE_OPTION_NO:\n return \"VOTE_OPTION_NO\";\n case VoteOption.VOTE_OPTION_NO_WITH_VETO:\n return \"VOTE_OPTION_NO_WITH_VETO\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.voteOptionToJSON = voteOptionToJSON;\n/** ProposalStatus enumerates the valid statuses of a proposal. */\nvar ProposalStatus;\n(function (ProposalStatus) {\n /** PROPOSAL_STATUS_UNSPECIFIED - PROPOSAL_STATUS_UNSPECIFIED defines the default propopsal status. */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_UNSPECIFIED\"] = 0] = \"PROPOSAL_STATUS_UNSPECIFIED\";\n /**\n * PROPOSAL_STATUS_DEPOSIT_PERIOD - PROPOSAL_STATUS_DEPOSIT_PERIOD defines a proposal status during the deposit\n * period.\n */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_DEPOSIT_PERIOD\"] = 1] = \"PROPOSAL_STATUS_DEPOSIT_PERIOD\";\n /**\n * PROPOSAL_STATUS_VOTING_PERIOD - PROPOSAL_STATUS_VOTING_PERIOD defines a proposal status during the voting\n * period.\n */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_VOTING_PERIOD\"] = 2] = \"PROPOSAL_STATUS_VOTING_PERIOD\";\n /**\n * PROPOSAL_STATUS_PASSED - PROPOSAL_STATUS_PASSED defines a proposal status of a proposal that has\n * passed.\n */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_PASSED\"] = 3] = \"PROPOSAL_STATUS_PASSED\";\n /**\n * PROPOSAL_STATUS_REJECTED - PROPOSAL_STATUS_REJECTED defines a proposal status of a proposal that has\n * been rejected.\n */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_REJECTED\"] = 4] = \"PROPOSAL_STATUS_REJECTED\";\n /**\n * PROPOSAL_STATUS_FAILED - PROPOSAL_STATUS_FAILED defines a proposal status of a proposal that has\n * failed.\n */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_FAILED\"] = 5] = \"PROPOSAL_STATUS_FAILED\";\n ProposalStatus[ProposalStatus[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(ProposalStatus = exports.ProposalStatus || (exports.ProposalStatus = {}));\nfunction proposalStatusFromJSON(object) {\n switch (object) {\n case 0:\n case \"PROPOSAL_STATUS_UNSPECIFIED\":\n return ProposalStatus.PROPOSAL_STATUS_UNSPECIFIED;\n case 1:\n case \"PROPOSAL_STATUS_DEPOSIT_PERIOD\":\n return ProposalStatus.PROPOSAL_STATUS_DEPOSIT_PERIOD;\n case 2:\n case \"PROPOSAL_STATUS_VOTING_PERIOD\":\n return ProposalStatus.PROPOSAL_STATUS_VOTING_PERIOD;\n case 3:\n case \"PROPOSAL_STATUS_PASSED\":\n return ProposalStatus.PROPOSAL_STATUS_PASSED;\n case 4:\n case \"PROPOSAL_STATUS_REJECTED\":\n return ProposalStatus.PROPOSAL_STATUS_REJECTED;\n case 5:\n case \"PROPOSAL_STATUS_FAILED\":\n return ProposalStatus.PROPOSAL_STATUS_FAILED;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return ProposalStatus.UNRECOGNIZED;\n }\n}\nexports.proposalStatusFromJSON = proposalStatusFromJSON;\nfunction proposalStatusToJSON(object) {\n switch (object) {\n case ProposalStatus.PROPOSAL_STATUS_UNSPECIFIED:\n return \"PROPOSAL_STATUS_UNSPECIFIED\";\n case ProposalStatus.PROPOSAL_STATUS_DEPOSIT_PERIOD:\n return \"PROPOSAL_STATUS_DEPOSIT_PERIOD\";\n case ProposalStatus.PROPOSAL_STATUS_VOTING_PERIOD:\n return \"PROPOSAL_STATUS_VOTING_PERIOD\";\n case ProposalStatus.PROPOSAL_STATUS_PASSED:\n return \"PROPOSAL_STATUS_PASSED\";\n case ProposalStatus.PROPOSAL_STATUS_REJECTED:\n return \"PROPOSAL_STATUS_REJECTED\";\n case ProposalStatus.PROPOSAL_STATUS_FAILED:\n return \"PROPOSAL_STATUS_FAILED\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.proposalStatusToJSON = proposalStatusToJSON;\nconst baseWeightedVoteOption = { option: 0, weight: \"\" };\nexports.WeightedVoteOption = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.option !== 0) {\n writer.uint32(8).int32(message.option);\n }\n if (message.weight !== \"\") {\n writer.uint32(18).string(message.weight);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseWeightedVoteOption);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.option = reader.int32();\n break;\n case 2:\n message.weight = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseWeightedVoteOption);\n if (object.option !== undefined && object.option !== null) {\n message.option = voteOptionFromJSON(object.option);\n }\n else {\n message.option = 0;\n }\n if (object.weight !== undefined && object.weight !== null) {\n message.weight = String(object.weight);\n }\n else {\n message.weight = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.option !== undefined && (obj.option = voteOptionToJSON(message.option));\n message.weight !== undefined && (obj.weight = message.weight);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseWeightedVoteOption);\n if (object.option !== undefined && object.option !== null) {\n message.option = object.option;\n }\n else {\n message.option = 0;\n }\n if (object.weight !== undefined && object.weight !== null) {\n message.weight = object.weight;\n }\n else {\n message.weight = \"\";\n }\n return message;\n },\n};\nconst baseTextProposal = { title: \"\", description: \"\" };\nexports.TextProposal = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.title !== \"\") {\n writer.uint32(10).string(message.title);\n }\n if (message.description !== \"\") {\n writer.uint32(18).string(message.description);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseTextProposal);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.title = reader.string();\n break;\n case 2:\n message.description = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseTextProposal);\n if (object.title !== undefined && object.title !== null) {\n message.title = String(object.title);\n }\n else {\n message.title = \"\";\n }\n if (object.description !== undefined && object.description !== null) {\n message.description = String(object.description);\n }\n else {\n message.description = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.title !== undefined && (obj.title = message.title);\n message.description !== undefined && (obj.description = message.description);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseTextProposal);\n if (object.title !== undefined && object.title !== null) {\n message.title = object.title;\n }\n else {\n message.title = \"\";\n }\n if (object.description !== undefined && object.description !== null) {\n message.description = object.description;\n }\n else {\n message.description = \"\";\n }\n return message;\n },\n};\nconst baseDeposit = { proposalId: long_1.default.UZERO, depositor: \"\" };\nexports.Deposit = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.proposalId.isZero()) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.depositor !== \"\") {\n writer.uint32(18).string(message.depositor);\n }\n for (const v of message.amount) {\n coin_1.Coin.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDeposit);\n message.amount = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.depositor = reader.string();\n break;\n case 3:\n message.amount.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseDeposit);\n message.amount = [];\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = long_1.default.fromString(object.proposalId);\n }\n else {\n message.proposalId = long_1.default.UZERO;\n }\n if (object.depositor !== undefined && object.depositor !== null) {\n message.depositor = String(object.depositor);\n }\n else {\n message.depositor = \"\";\n }\n if (object.amount !== undefined && object.amount !== null) {\n for (const e of object.amount) {\n message.amount.push(coin_1.Coin.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || long_1.default.UZERO).toString());\n message.depositor !== undefined && (obj.depositor = message.depositor);\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.amount = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseDeposit);\n message.amount = [];\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = object.proposalId;\n }\n else {\n message.proposalId = long_1.default.UZERO;\n }\n if (object.depositor !== undefined && object.depositor !== null) {\n message.depositor = object.depositor;\n }\n else {\n message.depositor = \"\";\n }\n if (object.amount !== undefined && object.amount !== null) {\n for (const e of object.amount) {\n message.amount.push(coin_1.Coin.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseProposal = { proposalId: long_1.default.UZERO, status: 0 };\nexports.Proposal = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.proposalId.isZero()) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.content !== undefined) {\n any_1.Any.encode(message.content, writer.uint32(18).fork()).ldelim();\n }\n if (message.status !== 0) {\n writer.uint32(24).int32(message.status);\n }\n if (message.finalTallyResult !== undefined) {\n exports.TallyResult.encode(message.finalTallyResult, writer.uint32(34).fork()).ldelim();\n }\n if (message.submitTime !== undefined) {\n timestamp_1.Timestamp.encode(toTimestamp(message.submitTime), writer.uint32(42).fork()).ldelim();\n }\n if (message.depositEndTime !== undefined) {\n timestamp_1.Timestamp.encode(toTimestamp(message.depositEndTime), writer.uint32(50).fork()).ldelim();\n }\n for (const v of message.totalDeposit) {\n coin_1.Coin.encode(v, writer.uint32(58).fork()).ldelim();\n }\n if (message.votingStartTime !== undefined) {\n timestamp_1.Timestamp.encode(toTimestamp(message.votingStartTime), writer.uint32(66).fork()).ldelim();\n }\n if (message.votingEndTime !== undefined) {\n timestamp_1.Timestamp.encode(toTimestamp(message.votingEndTime), writer.uint32(74).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseProposal);\n message.totalDeposit = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.content = any_1.Any.decode(reader, reader.uint32());\n break;\n case 3:\n message.status = reader.int32();\n break;\n case 4:\n message.finalTallyResult = exports.TallyResult.decode(reader, reader.uint32());\n break;\n case 5:\n message.submitTime = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));\n break;\n case 6:\n message.depositEndTime = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));\n break;\n case 7:\n message.totalDeposit.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 8:\n message.votingStartTime = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));\n break;\n case 9:\n message.votingEndTime = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseProposal);\n message.totalDeposit = [];\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = long_1.default.fromString(object.proposalId);\n }\n else {\n message.proposalId = long_1.default.UZERO;\n }\n if (object.content !== undefined && object.content !== null) {\n message.content = any_1.Any.fromJSON(object.content);\n }\n else {\n message.content = undefined;\n }\n if (object.status !== undefined && object.status !== null) {\n message.status = proposalStatusFromJSON(object.status);\n }\n else {\n message.status = 0;\n }\n if (object.finalTallyResult !== undefined && object.finalTallyResult !== null) {\n message.finalTallyResult = exports.TallyResult.fromJSON(object.finalTallyResult);\n }\n else {\n message.finalTallyResult = undefined;\n }\n if (object.submitTime !== undefined && object.submitTime !== null) {\n message.submitTime = fromJsonTimestamp(object.submitTime);\n }\n else {\n message.submitTime = undefined;\n }\n if (object.depositEndTime !== undefined && object.depositEndTime !== null) {\n message.depositEndTime = fromJsonTimestamp(object.depositEndTime);\n }\n else {\n message.depositEndTime = undefined;\n }\n if (object.totalDeposit !== undefined && object.totalDeposit !== null) {\n for (const e of object.totalDeposit) {\n message.totalDeposit.push(coin_1.Coin.fromJSON(e));\n }\n }\n if (object.votingStartTime !== undefined && object.votingStartTime !== null) {\n message.votingStartTime = fromJsonTimestamp(object.votingStartTime);\n }\n else {\n message.votingStartTime = undefined;\n }\n if (object.votingEndTime !== undefined && object.votingEndTime !== null) {\n message.votingEndTime = fromJsonTimestamp(object.votingEndTime);\n }\n else {\n message.votingEndTime = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || long_1.default.UZERO).toString());\n message.content !== undefined &&\n (obj.content = message.content ? any_1.Any.toJSON(message.content) : undefined);\n message.status !== undefined && (obj.status = proposalStatusToJSON(message.status));\n message.finalTallyResult !== undefined &&\n (obj.finalTallyResult = message.finalTallyResult\n ? exports.TallyResult.toJSON(message.finalTallyResult)\n : undefined);\n message.submitTime !== undefined && (obj.submitTime = message.submitTime.toISOString());\n message.depositEndTime !== undefined && (obj.depositEndTime = message.depositEndTime.toISOString());\n if (message.totalDeposit) {\n obj.totalDeposit = message.totalDeposit.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.totalDeposit = [];\n }\n message.votingStartTime !== undefined && (obj.votingStartTime = message.votingStartTime.toISOString());\n message.votingEndTime !== undefined && (obj.votingEndTime = message.votingEndTime.toISOString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseProposal);\n message.totalDeposit = [];\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = object.proposalId;\n }\n else {\n message.proposalId = long_1.default.UZERO;\n }\n if (object.content !== undefined && object.content !== null) {\n message.content = any_1.Any.fromPartial(object.content);\n }\n else {\n message.content = undefined;\n }\n if (object.status !== undefined && object.status !== null) {\n message.status = object.status;\n }\n else {\n message.status = 0;\n }\n if (object.finalTallyResult !== undefined && object.finalTallyResult !== null) {\n message.finalTallyResult = exports.TallyResult.fromPartial(object.finalTallyResult);\n }\n else {\n message.finalTallyResult = undefined;\n }\n if (object.submitTime !== undefined && object.submitTime !== null) {\n message.submitTime = object.submitTime;\n }\n else {\n message.submitTime = undefined;\n }\n if (object.depositEndTime !== undefined && object.depositEndTime !== null) {\n message.depositEndTime = object.depositEndTime;\n }\n else {\n message.depositEndTime = undefined;\n }\n if (object.totalDeposit !== undefined && object.totalDeposit !== null) {\n for (const e of object.totalDeposit) {\n message.totalDeposit.push(coin_1.Coin.fromPartial(e));\n }\n }\n if (object.votingStartTime !== undefined && object.votingStartTime !== null) {\n message.votingStartTime = object.votingStartTime;\n }\n else {\n message.votingStartTime = undefined;\n }\n if (object.votingEndTime !== undefined && object.votingEndTime !== null) {\n message.votingEndTime = object.votingEndTime;\n }\n else {\n message.votingEndTime = undefined;\n }\n return message;\n },\n};\nconst baseTallyResult = { yes: \"\", abstain: \"\", no: \"\", noWithVeto: \"\" };\nexports.TallyResult = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.yes !== \"\") {\n writer.uint32(10).string(message.yes);\n }\n if (message.abstain !== \"\") {\n writer.uint32(18).string(message.abstain);\n }\n if (message.no !== \"\") {\n writer.uint32(26).string(message.no);\n }\n if (message.noWithVeto !== \"\") {\n writer.uint32(34).string(message.noWithVeto);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseTallyResult);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.yes = reader.string();\n break;\n case 2:\n message.abstain = reader.string();\n break;\n case 3:\n message.no = reader.string();\n break;\n case 4:\n message.noWithVeto = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseTallyResult);\n if (object.yes !== undefined && object.yes !== null) {\n message.yes = String(object.yes);\n }\n else {\n message.yes = \"\";\n }\n if (object.abstain !== undefined && object.abstain !== null) {\n message.abstain = String(object.abstain);\n }\n else {\n message.abstain = \"\";\n }\n if (object.no !== undefined && object.no !== null) {\n message.no = String(object.no);\n }\n else {\n message.no = \"\";\n }\n if (object.noWithVeto !== undefined && object.noWithVeto !== null) {\n message.noWithVeto = String(object.noWithVeto);\n }\n else {\n message.noWithVeto = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.yes !== undefined && (obj.yes = message.yes);\n message.abstain !== undefined && (obj.abstain = message.abstain);\n message.no !== undefined && (obj.no = message.no);\n message.noWithVeto !== undefined && (obj.noWithVeto = message.noWithVeto);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseTallyResult);\n if (object.yes !== undefined && object.yes !== null) {\n message.yes = object.yes;\n }\n else {\n message.yes = \"\";\n }\n if (object.abstain !== undefined && object.abstain !== null) {\n message.abstain = object.abstain;\n }\n else {\n message.abstain = \"\";\n }\n if (object.no !== undefined && object.no !== null) {\n message.no = object.no;\n }\n else {\n message.no = \"\";\n }\n if (object.noWithVeto !== undefined && object.noWithVeto !== null) {\n message.noWithVeto = object.noWithVeto;\n }\n else {\n message.noWithVeto = \"\";\n }\n return message;\n },\n};\nconst baseVote = { proposalId: long_1.default.UZERO, voter: \"\", option: 0 };\nexports.Vote = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.proposalId.isZero()) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.voter !== \"\") {\n writer.uint32(18).string(message.voter);\n }\n if (message.option !== 0) {\n writer.uint32(24).int32(message.option);\n }\n for (const v of message.options) {\n exports.WeightedVoteOption.encode(v, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseVote);\n message.options = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.voter = reader.string();\n break;\n case 3:\n message.option = reader.int32();\n break;\n case 4:\n message.options.push(exports.WeightedVoteOption.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseVote);\n message.options = [];\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = long_1.default.fromString(object.proposalId);\n }\n else {\n message.proposalId = long_1.default.UZERO;\n }\n if (object.voter !== undefined && object.voter !== null) {\n message.voter = String(object.voter);\n }\n else {\n message.voter = \"\";\n }\n if (object.option !== undefined && object.option !== null) {\n message.option = voteOptionFromJSON(object.option);\n }\n else {\n message.option = 0;\n }\n if (object.options !== undefined && object.options !== null) {\n for (const e of object.options) {\n message.options.push(exports.WeightedVoteOption.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || long_1.default.UZERO).toString());\n message.voter !== undefined && (obj.voter = message.voter);\n message.option !== undefined && (obj.option = voteOptionToJSON(message.option));\n if (message.options) {\n obj.options = message.options.map((e) => (e ? exports.WeightedVoteOption.toJSON(e) : undefined));\n }\n else {\n obj.options = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseVote);\n message.options = [];\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = object.proposalId;\n }\n else {\n message.proposalId = long_1.default.UZERO;\n }\n if (object.voter !== undefined && object.voter !== null) {\n message.voter = object.voter;\n }\n else {\n message.voter = \"\";\n }\n if (object.option !== undefined && object.option !== null) {\n message.option = object.option;\n }\n else {\n message.option = 0;\n }\n if (object.options !== undefined && object.options !== null) {\n for (const e of object.options) {\n message.options.push(exports.WeightedVoteOption.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseDepositParams = {};\nexports.DepositParams = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.minDeposit) {\n coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.maxDepositPeriod !== undefined) {\n duration_1.Duration.encode(message.maxDepositPeriod, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDepositParams);\n message.minDeposit = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.minDeposit.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 2:\n message.maxDepositPeriod = duration_1.Duration.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseDepositParams);\n message.minDeposit = [];\n if (object.minDeposit !== undefined && object.minDeposit !== null) {\n for (const e of object.minDeposit) {\n message.minDeposit.push(coin_1.Coin.fromJSON(e));\n }\n }\n if (object.maxDepositPeriod !== undefined && object.maxDepositPeriod !== null) {\n message.maxDepositPeriod = duration_1.Duration.fromJSON(object.maxDepositPeriod);\n }\n else {\n message.maxDepositPeriod = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.minDeposit) {\n obj.minDeposit = message.minDeposit.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.minDeposit = [];\n }\n message.maxDepositPeriod !== undefined &&\n (obj.maxDepositPeriod = message.maxDepositPeriod\n ? duration_1.Duration.toJSON(message.maxDepositPeriod)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseDepositParams);\n message.minDeposit = [];\n if (object.minDeposit !== undefined && object.minDeposit !== null) {\n for (const e of object.minDeposit) {\n message.minDeposit.push(coin_1.Coin.fromPartial(e));\n }\n }\n if (object.maxDepositPeriod !== undefined && object.maxDepositPeriod !== null) {\n message.maxDepositPeriod = duration_1.Duration.fromPartial(object.maxDepositPeriod);\n }\n else {\n message.maxDepositPeriod = undefined;\n }\n return message;\n },\n};\nconst baseVotingParams = {};\nexports.VotingParams = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.votingPeriod !== undefined) {\n duration_1.Duration.encode(message.votingPeriod, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseVotingParams);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.votingPeriod = duration_1.Duration.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseVotingParams);\n if (object.votingPeriod !== undefined && object.votingPeriod !== null) {\n message.votingPeriod = duration_1.Duration.fromJSON(object.votingPeriod);\n }\n else {\n message.votingPeriod = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.votingPeriod !== undefined &&\n (obj.votingPeriod = message.votingPeriod ? duration_1.Duration.toJSON(message.votingPeriod) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseVotingParams);\n if (object.votingPeriod !== undefined && object.votingPeriod !== null) {\n message.votingPeriod = duration_1.Duration.fromPartial(object.votingPeriod);\n }\n else {\n message.votingPeriod = undefined;\n }\n return message;\n },\n};\nconst baseTallyParams = {};\nexports.TallyParams = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.quorum.length !== 0) {\n writer.uint32(10).bytes(message.quorum);\n }\n if (message.threshold.length !== 0) {\n writer.uint32(18).bytes(message.threshold);\n }\n if (message.vetoThreshold.length !== 0) {\n writer.uint32(26).bytes(message.vetoThreshold);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseTallyParams);\n message.quorum = new Uint8Array();\n message.threshold = new Uint8Array();\n message.vetoThreshold = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.quorum = reader.bytes();\n break;\n case 2:\n message.threshold = reader.bytes();\n break;\n case 3:\n message.vetoThreshold = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseTallyParams);\n message.quorum = new Uint8Array();\n message.threshold = new Uint8Array();\n message.vetoThreshold = new Uint8Array();\n if (object.quorum !== undefined && object.quorum !== null) {\n message.quorum = bytesFromBase64(object.quorum);\n }\n if (object.threshold !== undefined && object.threshold !== null) {\n message.threshold = bytesFromBase64(object.threshold);\n }\n if (object.vetoThreshold !== undefined && object.vetoThreshold !== null) {\n message.vetoThreshold = bytesFromBase64(object.vetoThreshold);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.quorum !== undefined &&\n (obj.quorum = base64FromBytes(message.quorum !== undefined ? message.quorum : new Uint8Array()));\n message.threshold !== undefined &&\n (obj.threshold = base64FromBytes(message.threshold !== undefined ? message.threshold : new Uint8Array()));\n message.vetoThreshold !== undefined &&\n (obj.vetoThreshold = base64FromBytes(message.vetoThreshold !== undefined ? message.vetoThreshold : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseTallyParams);\n if (object.quorum !== undefined && object.quorum !== null) {\n message.quorum = object.quorum;\n }\n else {\n message.quorum = new Uint8Array();\n }\n if (object.threshold !== undefined && object.threshold !== null) {\n message.threshold = object.threshold;\n }\n else {\n message.threshold = new Uint8Array();\n }\n if (object.vetoThreshold !== undefined && object.vetoThreshold !== null) {\n message.vetoThreshold = object.vetoThreshold;\n }\n else {\n message.vetoThreshold = new Uint8Array();\n }\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nfunction toTimestamp(date) {\n const seconds = numberToLong(date.getTime() / 1000);\n const nanos = (date.getTime() % 1000) * 1000000;\n return { seconds, nanos };\n}\nfunction fromTimestamp(t) {\n let millis = t.seconds.toNumber() * 1000;\n millis += t.nanos / 1000000;\n return new Date(millis);\n}\nfunction fromJsonTimestamp(o) {\n if (o instanceof Date) {\n return o;\n }\n else if (typeof o === \"string\") {\n return new Date(o);\n }\n else {\n return fromTimestamp(timestamp_1.Timestamp.fromJSON(o));\n }\n}\nfunction numberToLong(number) {\n return long_1.default.fromNumber(number);\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=gov.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GrpcWebImpl = exports.MsgDepositDesc = exports.MsgVoteWeightedDesc = exports.MsgVoteDesc = exports.MsgSubmitProposalDesc = exports.MsgDesc = exports.MsgClientImpl = exports.MsgDepositResponse = exports.MsgDeposit = exports.MsgVoteWeightedResponse = exports.MsgVoteWeighted = exports.MsgVoteResponse = exports.MsgVote = exports.MsgSubmitProposalResponse = exports.MsgSubmitProposal = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst grpc_web_1 = require(\"@improbable-eng/grpc-web\");\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst gov_1 = require(\"../../../cosmos/gov/v1beta1/gov\");\nconst browser_headers_1 = require(\"browser-headers\");\nconst coin_1 = require(\"../../../cosmos/base/v1beta1/coin\");\nexports.protobufPackage = \"cosmos.gov.v1beta1\";\nconst baseMsgSubmitProposal = { proposer: \"\" };\nexports.MsgSubmitProposal = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.content !== undefined) {\n any_1.Any.encode(message.content, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.initialDeposit) {\n coin_1.Coin.encode(v, writer.uint32(18).fork()).ldelim();\n }\n if (message.proposer !== \"\") {\n writer.uint32(26).string(message.proposer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgSubmitProposal);\n message.initialDeposit = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.content = any_1.Any.decode(reader, reader.uint32());\n break;\n case 2:\n message.initialDeposit.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 3:\n message.proposer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgSubmitProposal);\n message.initialDeposit = [];\n if (object.content !== undefined && object.content !== null) {\n message.content = any_1.Any.fromJSON(object.content);\n }\n else {\n message.content = undefined;\n }\n if (object.initialDeposit !== undefined && object.initialDeposit !== null) {\n for (const e of object.initialDeposit) {\n message.initialDeposit.push(coin_1.Coin.fromJSON(e));\n }\n }\n if (object.proposer !== undefined && object.proposer !== null) {\n message.proposer = String(object.proposer);\n }\n else {\n message.proposer = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.content !== undefined &&\n (obj.content = message.content ? any_1.Any.toJSON(message.content) : undefined);\n if (message.initialDeposit) {\n obj.initialDeposit = message.initialDeposit.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.initialDeposit = [];\n }\n message.proposer !== undefined && (obj.proposer = message.proposer);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgSubmitProposal);\n message.initialDeposit = [];\n if (object.content !== undefined && object.content !== null) {\n message.content = any_1.Any.fromPartial(object.content);\n }\n else {\n message.content = undefined;\n }\n if (object.initialDeposit !== undefined && object.initialDeposit !== null) {\n for (const e of object.initialDeposit) {\n message.initialDeposit.push(coin_1.Coin.fromPartial(e));\n }\n }\n if (object.proposer !== undefined && object.proposer !== null) {\n message.proposer = object.proposer;\n }\n else {\n message.proposer = \"\";\n }\n return message;\n },\n};\nconst baseMsgSubmitProposalResponse = { proposalId: long_1.default.UZERO };\nexports.MsgSubmitProposalResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.proposalId.isZero()) {\n writer.uint32(8).uint64(message.proposalId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgSubmitProposalResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgSubmitProposalResponse);\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = long_1.default.fromString(object.proposalId);\n }\n else {\n message.proposalId = long_1.default.UZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgSubmitProposalResponse);\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = object.proposalId;\n }\n else {\n message.proposalId = long_1.default.UZERO;\n }\n return message;\n },\n};\nconst baseMsgVote = { proposalId: long_1.default.UZERO, voter: \"\", option: 0 };\nexports.MsgVote = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.proposalId.isZero()) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.voter !== \"\") {\n writer.uint32(18).string(message.voter);\n }\n if (message.option !== 0) {\n writer.uint32(24).int32(message.option);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgVote);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.voter = reader.string();\n break;\n case 3:\n message.option = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgVote);\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = long_1.default.fromString(object.proposalId);\n }\n else {\n message.proposalId = long_1.default.UZERO;\n }\n if (object.voter !== undefined && object.voter !== null) {\n message.voter = String(object.voter);\n }\n else {\n message.voter = \"\";\n }\n if (object.option !== undefined && object.option !== null) {\n message.option = gov_1.voteOptionFromJSON(object.option);\n }\n else {\n message.option = 0;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || long_1.default.UZERO).toString());\n message.voter !== undefined && (obj.voter = message.voter);\n message.option !== undefined && (obj.option = gov_1.voteOptionToJSON(message.option));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgVote);\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = object.proposalId;\n }\n else {\n message.proposalId = long_1.default.UZERO;\n }\n if (object.voter !== undefined && object.voter !== null) {\n message.voter = object.voter;\n }\n else {\n message.voter = \"\";\n }\n if (object.option !== undefined && object.option !== null) {\n message.option = object.option;\n }\n else {\n message.option = 0;\n }\n return message;\n },\n};\nconst baseMsgVoteResponse = {};\nexports.MsgVoteResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgVoteResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgVoteResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgVoteResponse);\n return message;\n },\n};\nconst baseMsgVoteWeighted = { proposalId: long_1.default.UZERO, voter: \"\" };\nexports.MsgVoteWeighted = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.proposalId.isZero()) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.voter !== \"\") {\n writer.uint32(18).string(message.voter);\n }\n for (const v of message.options) {\n gov_1.WeightedVoteOption.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgVoteWeighted);\n message.options = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.voter = reader.string();\n break;\n case 3:\n message.options.push(gov_1.WeightedVoteOption.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgVoteWeighted);\n message.options = [];\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = long_1.default.fromString(object.proposalId);\n }\n else {\n message.proposalId = long_1.default.UZERO;\n }\n if (object.voter !== undefined && object.voter !== null) {\n message.voter = String(object.voter);\n }\n else {\n message.voter = \"\";\n }\n if (object.options !== undefined && object.options !== null) {\n for (const e of object.options) {\n message.options.push(gov_1.WeightedVoteOption.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || long_1.default.UZERO).toString());\n message.voter !== undefined && (obj.voter = message.voter);\n if (message.options) {\n obj.options = message.options.map((e) => (e ? gov_1.WeightedVoteOption.toJSON(e) : undefined));\n }\n else {\n obj.options = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgVoteWeighted);\n message.options = [];\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = object.proposalId;\n }\n else {\n message.proposalId = long_1.default.UZERO;\n }\n if (object.voter !== undefined && object.voter !== null) {\n message.voter = object.voter;\n }\n else {\n message.voter = \"\";\n }\n if (object.options !== undefined && object.options !== null) {\n for (const e of object.options) {\n message.options.push(gov_1.WeightedVoteOption.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseMsgVoteWeightedResponse = {};\nexports.MsgVoteWeightedResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgVoteWeightedResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgVoteWeightedResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgVoteWeightedResponse);\n return message;\n },\n};\nconst baseMsgDeposit = { proposalId: long_1.default.UZERO, depositor: \"\" };\nexports.MsgDeposit = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.proposalId.isZero()) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.depositor !== \"\") {\n writer.uint32(18).string(message.depositor);\n }\n for (const v of message.amount) {\n coin_1.Coin.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgDeposit);\n message.amount = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.depositor = reader.string();\n break;\n case 3:\n message.amount.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgDeposit);\n message.amount = [];\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = long_1.default.fromString(object.proposalId);\n }\n else {\n message.proposalId = long_1.default.UZERO;\n }\n if (object.depositor !== undefined && object.depositor !== null) {\n message.depositor = String(object.depositor);\n }\n else {\n message.depositor = \"\";\n }\n if (object.amount !== undefined && object.amount !== null) {\n for (const e of object.amount) {\n message.amount.push(coin_1.Coin.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || long_1.default.UZERO).toString());\n message.depositor !== undefined && (obj.depositor = message.depositor);\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.amount = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgDeposit);\n message.amount = [];\n if (object.proposalId !== undefined && object.proposalId !== null) {\n message.proposalId = object.proposalId;\n }\n else {\n message.proposalId = long_1.default.UZERO;\n }\n if (object.depositor !== undefined && object.depositor !== null) {\n message.depositor = object.depositor;\n }\n else {\n message.depositor = \"\";\n }\n if (object.amount !== undefined && object.amount !== null) {\n for (const e of object.amount) {\n message.amount.push(coin_1.Coin.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseMsgDepositResponse = {};\nexports.MsgDepositResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgDepositResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgDepositResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgDepositResponse);\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.SubmitProposal = this.SubmitProposal.bind(this);\n this.Vote = this.Vote.bind(this);\n this.VoteWeighted = this.VoteWeighted.bind(this);\n this.Deposit = this.Deposit.bind(this);\n }\n SubmitProposal(request, metadata) {\n return this.rpc.unary(exports.MsgSubmitProposalDesc, exports.MsgSubmitProposal.fromPartial(request), metadata);\n }\n Vote(request, metadata) {\n return this.rpc.unary(exports.MsgVoteDesc, exports.MsgVote.fromPartial(request), metadata);\n }\n VoteWeighted(request, metadata) {\n return this.rpc.unary(exports.MsgVoteWeightedDesc, exports.MsgVoteWeighted.fromPartial(request), metadata);\n }\n Deposit(request, metadata) {\n return this.rpc.unary(exports.MsgDepositDesc, exports.MsgDeposit.fromPartial(request), metadata);\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\nexports.MsgDesc = {\n serviceName: \"cosmos.gov.v1beta1.Msg\",\n};\nexports.MsgSubmitProposalDesc = {\n methodName: \"SubmitProposal\",\n service: exports.MsgDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.MsgSubmitProposal.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.MsgSubmitProposalResponse.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nexports.MsgVoteDesc = {\n methodName: \"Vote\",\n service: exports.MsgDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.MsgVote.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.MsgVoteResponse.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nexports.MsgVoteWeightedDesc = {\n methodName: \"VoteWeighted\",\n service: exports.MsgDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.MsgVoteWeighted.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.MsgVoteWeightedResponse.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nexports.MsgDepositDesc = {\n methodName: \"Deposit\",\n service: exports.MsgDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.MsgDeposit.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.MsgDepositResponse.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nclass GrpcWebImpl {\n constructor(host, options) {\n this.host = host;\n this.options = options;\n }\n unary(methodDesc, _request, metadata) {\n var _a;\n const request = Object.assign(Object.assign({}, _request), methodDesc.requestType);\n const maybeCombinedMetadata = metadata && this.options.metadata\n ? new browser_headers_1.BrowserHeaders(Object.assign(Object.assign({}, (_a = this.options) === null || _a === void 0 ? void 0 : _a.metadata.headersMap), metadata === null || metadata === void 0 ? void 0 : metadata.headersMap))\n : metadata || this.options.metadata;\n return new Promise((resolve, reject) => {\n grpc_web_1.grpc.unary(methodDesc, {\n request,\n host: this.host,\n metadata: maybeCombinedMetadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (response.status === grpc_web_1.grpc.Code.OK) {\n resolve(response.message);\n }\n else {\n const err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n reject(err);\n }\n },\n });\n });\n }\n}\nexports.GrpcWebImpl = GrpcWebImpl;\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=tx.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ParamChange = exports.ParameterChangeProposal = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nexports.protobufPackage = \"cosmos.params.v1beta1\";\nconst baseParameterChangeProposal = { title: \"\", description: \"\" };\nexports.ParameterChangeProposal = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.title !== \"\") {\n writer.uint32(10).string(message.title);\n }\n if (message.description !== \"\") {\n writer.uint32(18).string(message.description);\n }\n for (const v of message.changes) {\n exports.ParamChange.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseParameterChangeProposal);\n message.changes = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.title = reader.string();\n break;\n case 2:\n message.description = reader.string();\n break;\n case 3:\n message.changes.push(exports.ParamChange.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseParameterChangeProposal);\n message.changes = [];\n if (object.title !== undefined && object.title !== null) {\n message.title = String(object.title);\n }\n else {\n message.title = \"\";\n }\n if (object.description !== undefined && object.description !== null) {\n message.description = String(object.description);\n }\n else {\n message.description = \"\";\n }\n if (object.changes !== undefined && object.changes !== null) {\n for (const e of object.changes) {\n message.changes.push(exports.ParamChange.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.title !== undefined && (obj.title = message.title);\n message.description !== undefined && (obj.description = message.description);\n if (message.changes) {\n obj.changes = message.changes.map((e) => (e ? exports.ParamChange.toJSON(e) : undefined));\n }\n else {\n obj.changes = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseParameterChangeProposal);\n message.changes = [];\n if (object.title !== undefined && object.title !== null) {\n message.title = object.title;\n }\n else {\n message.title = \"\";\n }\n if (object.description !== undefined && object.description !== null) {\n message.description = object.description;\n }\n else {\n message.description = \"\";\n }\n if (object.changes !== undefined && object.changes !== null) {\n for (const e of object.changes) {\n message.changes.push(exports.ParamChange.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseParamChange = { subspace: \"\", key: \"\", value: \"\" };\nexports.ParamChange = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.subspace !== \"\") {\n writer.uint32(10).string(message.subspace);\n }\n if (message.key !== \"\") {\n writer.uint32(18).string(message.key);\n }\n if (message.value !== \"\") {\n writer.uint32(26).string(message.value);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseParamChange);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.subspace = reader.string();\n break;\n case 2:\n message.key = reader.string();\n break;\n case 3:\n message.value = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseParamChange);\n if (object.subspace !== undefined && object.subspace !== null) {\n message.subspace = String(object.subspace);\n }\n else {\n message.subspace = \"\";\n }\n if (object.key !== undefined && object.key !== null) {\n message.key = String(object.key);\n }\n else {\n message.key = \"\";\n }\n if (object.value !== undefined && object.value !== null) {\n message.value = String(object.value);\n }\n else {\n message.value = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.subspace !== undefined && (obj.subspace = message.subspace);\n message.key !== undefined && (obj.key = message.key);\n message.value !== undefined && (obj.value = message.value);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseParamChange);\n if (object.subspace !== undefined && object.subspace !== null) {\n message.subspace = object.subspace;\n }\n else {\n message.subspace = \"\";\n }\n if (object.key !== undefined && object.key !== null) {\n message.key = object.key;\n }\n else {\n message.key = \"\";\n }\n if (object.value !== undefined && object.value !== null) {\n message.value = object.value;\n }\n else {\n message.value = \"\";\n }\n return message;\n },\n};\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=params.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GrpcWebImpl = exports.MsgUnjailDesc = exports.MsgDesc = exports.MsgClientImpl = exports.MsgUnjailResponse = exports.MsgUnjail = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst grpc_web_1 = require(\"@improbable-eng/grpc-web\");\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst browser_headers_1 = require(\"browser-headers\");\nexports.protobufPackage = \"cosmos.slashing.v1beta1\";\nconst baseMsgUnjail = { validatorAddr: \"\" };\nexports.MsgUnjail = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.validatorAddr !== \"\") {\n writer.uint32(10).string(message.validatorAddr);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgUnjail);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validatorAddr = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgUnjail);\n if (object.validatorAddr !== undefined && object.validatorAddr !== null) {\n message.validatorAddr = String(object.validatorAddr);\n }\n else {\n message.validatorAddr = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.validatorAddr !== undefined && (obj.validatorAddr = message.validatorAddr);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgUnjail);\n if (object.validatorAddr !== undefined && object.validatorAddr !== null) {\n message.validatorAddr = object.validatorAddr;\n }\n else {\n message.validatorAddr = \"\";\n }\n return message;\n },\n};\nconst baseMsgUnjailResponse = {};\nexports.MsgUnjailResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgUnjailResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgUnjailResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgUnjailResponse);\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Unjail = this.Unjail.bind(this);\n }\n Unjail(request, metadata) {\n return this.rpc.unary(exports.MsgUnjailDesc, exports.MsgUnjail.fromPartial(request), metadata);\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\nexports.MsgDesc = {\n serviceName: \"cosmos.slashing.v1beta1.Msg\",\n};\nexports.MsgUnjailDesc = {\n methodName: \"Unjail\",\n service: exports.MsgDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.MsgUnjail.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.MsgUnjailResponse.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nclass GrpcWebImpl {\n constructor(host, options) {\n this.host = host;\n this.options = options;\n }\n unary(methodDesc, _request, metadata) {\n var _a;\n const request = Object.assign(Object.assign({}, _request), methodDesc.requestType);\n const maybeCombinedMetadata = metadata && this.options.metadata\n ? new browser_headers_1.BrowserHeaders(Object.assign(Object.assign({}, (_a = this.options) === null || _a === void 0 ? void 0 : _a.metadata.headersMap), metadata === null || metadata === void 0 ? void 0 : metadata.headersMap))\n : metadata || this.options.metadata;\n return new Promise((resolve, reject) => {\n grpc_web_1.grpc.unary(methodDesc, {\n request,\n host: this.host,\n metadata: maybeCombinedMetadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (response.status === grpc_web_1.grpc.Code.OK) {\n resolve(response.message);\n }\n else {\n const err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n reject(err);\n }\n },\n });\n });\n }\n}\nexports.GrpcWebImpl = GrpcWebImpl;\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=tx.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StakeAuthorization_Validators = exports.StakeAuthorization = exports.authorizationTypeToJSON = exports.authorizationTypeFromJSON = exports.AuthorizationType = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst coin_1 = require(\"../../../cosmos/base/v1beta1/coin\");\nexports.protobufPackage = \"cosmos.staking.v1beta1\";\n/**\n * AuthorizationType defines the type of staking module authorization type\n *\n * Since: cosmos-sdk 0.43\n */\nvar AuthorizationType;\n(function (AuthorizationType) {\n /** AUTHORIZATION_TYPE_UNSPECIFIED - AUTHORIZATION_TYPE_UNSPECIFIED specifies an unknown authorization type */\n AuthorizationType[AuthorizationType[\"AUTHORIZATION_TYPE_UNSPECIFIED\"] = 0] = \"AUTHORIZATION_TYPE_UNSPECIFIED\";\n /** AUTHORIZATION_TYPE_DELEGATE - AUTHORIZATION_TYPE_DELEGATE defines an authorization type for Msg/Delegate */\n AuthorizationType[AuthorizationType[\"AUTHORIZATION_TYPE_DELEGATE\"] = 1] = \"AUTHORIZATION_TYPE_DELEGATE\";\n /** AUTHORIZATION_TYPE_UNDELEGATE - AUTHORIZATION_TYPE_UNDELEGATE defines an authorization type for Msg/Undelegate */\n AuthorizationType[AuthorizationType[\"AUTHORIZATION_TYPE_UNDELEGATE\"] = 2] = \"AUTHORIZATION_TYPE_UNDELEGATE\";\n /** AUTHORIZATION_TYPE_REDELEGATE - AUTHORIZATION_TYPE_REDELEGATE defines an authorization type for Msg/BeginRedelegate */\n AuthorizationType[AuthorizationType[\"AUTHORIZATION_TYPE_REDELEGATE\"] = 3] = \"AUTHORIZATION_TYPE_REDELEGATE\";\n AuthorizationType[AuthorizationType[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(AuthorizationType = exports.AuthorizationType || (exports.AuthorizationType = {}));\nfunction authorizationTypeFromJSON(object) {\n switch (object) {\n case 0:\n case \"AUTHORIZATION_TYPE_UNSPECIFIED\":\n return AuthorizationType.AUTHORIZATION_TYPE_UNSPECIFIED;\n case 1:\n case \"AUTHORIZATION_TYPE_DELEGATE\":\n return AuthorizationType.AUTHORIZATION_TYPE_DELEGATE;\n case 2:\n case \"AUTHORIZATION_TYPE_UNDELEGATE\":\n return AuthorizationType.AUTHORIZATION_TYPE_UNDELEGATE;\n case 3:\n case \"AUTHORIZATION_TYPE_REDELEGATE\":\n return AuthorizationType.AUTHORIZATION_TYPE_REDELEGATE;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return AuthorizationType.UNRECOGNIZED;\n }\n}\nexports.authorizationTypeFromJSON = authorizationTypeFromJSON;\nfunction authorizationTypeToJSON(object) {\n switch (object) {\n case AuthorizationType.AUTHORIZATION_TYPE_UNSPECIFIED:\n return \"AUTHORIZATION_TYPE_UNSPECIFIED\";\n case AuthorizationType.AUTHORIZATION_TYPE_DELEGATE:\n return \"AUTHORIZATION_TYPE_DELEGATE\";\n case AuthorizationType.AUTHORIZATION_TYPE_UNDELEGATE:\n return \"AUTHORIZATION_TYPE_UNDELEGATE\";\n case AuthorizationType.AUTHORIZATION_TYPE_REDELEGATE:\n return \"AUTHORIZATION_TYPE_REDELEGATE\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.authorizationTypeToJSON = authorizationTypeToJSON;\nconst baseStakeAuthorization = { authorizationType: 0 };\nexports.StakeAuthorization = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.maxTokens !== undefined) {\n coin_1.Coin.encode(message.maxTokens, writer.uint32(10).fork()).ldelim();\n }\n if (message.allowList !== undefined) {\n exports.StakeAuthorization_Validators.encode(message.allowList, writer.uint32(18).fork()).ldelim();\n }\n if (message.denyList !== undefined) {\n exports.StakeAuthorization_Validators.encode(message.denyList, writer.uint32(26).fork()).ldelim();\n }\n if (message.authorizationType !== 0) {\n writer.uint32(32).int32(message.authorizationType);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseStakeAuthorization);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.maxTokens = coin_1.Coin.decode(reader, reader.uint32());\n break;\n case 2:\n message.allowList = exports.StakeAuthorization_Validators.decode(reader, reader.uint32());\n break;\n case 3:\n message.denyList = exports.StakeAuthorization_Validators.decode(reader, reader.uint32());\n break;\n case 4:\n message.authorizationType = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseStakeAuthorization);\n if (object.maxTokens !== undefined && object.maxTokens !== null) {\n message.maxTokens = coin_1.Coin.fromJSON(object.maxTokens);\n }\n else {\n message.maxTokens = undefined;\n }\n if (object.allowList !== undefined && object.allowList !== null) {\n message.allowList = exports.StakeAuthorization_Validators.fromJSON(object.allowList);\n }\n else {\n message.allowList = undefined;\n }\n if (object.denyList !== undefined && object.denyList !== null) {\n message.denyList = exports.StakeAuthorization_Validators.fromJSON(object.denyList);\n }\n else {\n message.denyList = undefined;\n }\n if (object.authorizationType !== undefined && object.authorizationType !== null) {\n message.authorizationType = authorizationTypeFromJSON(object.authorizationType);\n }\n else {\n message.authorizationType = 0;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.maxTokens !== undefined &&\n (obj.maxTokens = message.maxTokens ? coin_1.Coin.toJSON(message.maxTokens) : undefined);\n message.allowList !== undefined &&\n (obj.allowList = message.allowList\n ? exports.StakeAuthorization_Validators.toJSON(message.allowList)\n : undefined);\n message.denyList !== undefined &&\n (obj.denyList = message.denyList ? exports.StakeAuthorization_Validators.toJSON(message.denyList) : undefined);\n message.authorizationType !== undefined &&\n (obj.authorizationType = authorizationTypeToJSON(message.authorizationType));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseStakeAuthorization);\n if (object.maxTokens !== undefined && object.maxTokens !== null) {\n message.maxTokens = coin_1.Coin.fromPartial(object.maxTokens);\n }\n else {\n message.maxTokens = undefined;\n }\n if (object.allowList !== undefined && object.allowList !== null) {\n message.allowList = exports.StakeAuthorization_Validators.fromPartial(object.allowList);\n }\n else {\n message.allowList = undefined;\n }\n if (object.denyList !== undefined && object.denyList !== null) {\n message.denyList = exports.StakeAuthorization_Validators.fromPartial(object.denyList);\n }\n else {\n message.denyList = undefined;\n }\n if (object.authorizationType !== undefined && object.authorizationType !== null) {\n message.authorizationType = object.authorizationType;\n }\n else {\n message.authorizationType = 0;\n }\n return message;\n },\n};\nconst baseStakeAuthorization_Validators = { address: \"\" };\nexports.StakeAuthorization_Validators = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.address) {\n writer.uint32(10).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseStakeAuthorization_Validators);\n message.address = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseStakeAuthorization_Validators);\n message.address = [];\n if (object.address !== undefined && object.address !== null) {\n for (const e of object.address) {\n message.address.push(String(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.address) {\n obj.address = message.address.map((e) => e);\n }\n else {\n obj.address = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseStakeAuthorization_Validators);\n message.address = [];\n if (object.address !== undefined && object.address !== null) {\n for (const e of object.address) {\n message.address.push(e);\n }\n }\n return message;\n },\n};\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=authz.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Pool = exports.RedelegationResponse = exports.RedelegationEntryResponse = exports.DelegationResponse = exports.Params = exports.Redelegation = exports.RedelegationEntry = exports.UnbondingDelegationEntry = exports.UnbondingDelegation = exports.Delegation = exports.DVVTriplets = exports.DVVTriplet = exports.DVPairs = exports.DVPair = exports.ValAddresses = exports.Validator = exports.Description = exports.Commission = exports.CommissionRates = exports.HistoricalInfo = exports.bondStatusToJSON = exports.bondStatusFromJSON = exports.BondStatus = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst types_1 = require(\"../../../tendermint/types/types\");\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst duration_1 = require(\"../../../google/protobuf/duration\");\nconst coin_1 = require(\"../../../cosmos/base/v1beta1/coin\");\nconst timestamp_1 = require(\"../../../google/protobuf/timestamp\");\nexports.protobufPackage = \"cosmos.staking.v1beta1\";\n/** BondStatus is the status of a validator. */\nvar BondStatus;\n(function (BondStatus) {\n /** BOND_STATUS_UNSPECIFIED - UNSPECIFIED defines an invalid validator status. */\n BondStatus[BondStatus[\"BOND_STATUS_UNSPECIFIED\"] = 0] = \"BOND_STATUS_UNSPECIFIED\";\n /** BOND_STATUS_UNBONDED - UNBONDED defines a validator that is not bonded. */\n BondStatus[BondStatus[\"BOND_STATUS_UNBONDED\"] = 1] = \"BOND_STATUS_UNBONDED\";\n /** BOND_STATUS_UNBONDING - UNBONDING defines a validator that is unbonding. */\n BondStatus[BondStatus[\"BOND_STATUS_UNBONDING\"] = 2] = \"BOND_STATUS_UNBONDING\";\n /** BOND_STATUS_BONDED - BONDED defines a validator that is bonded. */\n BondStatus[BondStatus[\"BOND_STATUS_BONDED\"] = 3] = \"BOND_STATUS_BONDED\";\n BondStatus[BondStatus[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(BondStatus = exports.BondStatus || (exports.BondStatus = {}));\nfunction bondStatusFromJSON(object) {\n switch (object) {\n case 0:\n case \"BOND_STATUS_UNSPECIFIED\":\n return BondStatus.BOND_STATUS_UNSPECIFIED;\n case 1:\n case \"BOND_STATUS_UNBONDED\":\n return BondStatus.BOND_STATUS_UNBONDED;\n case 2:\n case \"BOND_STATUS_UNBONDING\":\n return BondStatus.BOND_STATUS_UNBONDING;\n case 3:\n case \"BOND_STATUS_BONDED\":\n return BondStatus.BOND_STATUS_BONDED;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return BondStatus.UNRECOGNIZED;\n }\n}\nexports.bondStatusFromJSON = bondStatusFromJSON;\nfunction bondStatusToJSON(object) {\n switch (object) {\n case BondStatus.BOND_STATUS_UNSPECIFIED:\n return \"BOND_STATUS_UNSPECIFIED\";\n case BondStatus.BOND_STATUS_UNBONDED:\n return \"BOND_STATUS_UNBONDED\";\n case BondStatus.BOND_STATUS_UNBONDING:\n return \"BOND_STATUS_UNBONDING\";\n case BondStatus.BOND_STATUS_BONDED:\n return \"BOND_STATUS_BONDED\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.bondStatusToJSON = bondStatusToJSON;\nconst baseHistoricalInfo = {};\nexports.HistoricalInfo = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.header !== undefined) {\n types_1.Header.encode(message.header, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.valset) {\n exports.Validator.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseHistoricalInfo);\n message.valset = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.header = types_1.Header.decode(reader, reader.uint32());\n break;\n case 2:\n message.valset.push(exports.Validator.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseHistoricalInfo);\n message.valset = [];\n if (object.header !== undefined && object.header !== null) {\n message.header = types_1.Header.fromJSON(object.header);\n }\n else {\n message.header = undefined;\n }\n if (object.valset !== undefined && object.valset !== null) {\n for (const e of object.valset) {\n message.valset.push(exports.Validator.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.header !== undefined && (obj.header = message.header ? types_1.Header.toJSON(message.header) : undefined);\n if (message.valset) {\n obj.valset = message.valset.map((e) => (e ? exports.Validator.toJSON(e) : undefined));\n }\n else {\n obj.valset = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseHistoricalInfo);\n message.valset = [];\n if (object.header !== undefined && object.header !== null) {\n message.header = types_1.Header.fromPartial(object.header);\n }\n else {\n message.header = undefined;\n }\n if (object.valset !== undefined && object.valset !== null) {\n for (const e of object.valset) {\n message.valset.push(exports.Validator.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseCommissionRates = { rate: \"\", maxRate: \"\", maxChangeRate: \"\" };\nexports.CommissionRates = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.rate !== \"\") {\n writer.uint32(10).string(message.rate);\n }\n if (message.maxRate !== \"\") {\n writer.uint32(18).string(message.maxRate);\n }\n if (message.maxChangeRate !== \"\") {\n writer.uint32(26).string(message.maxChangeRate);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseCommissionRates);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.rate = reader.string();\n break;\n case 2:\n message.maxRate = reader.string();\n break;\n case 3:\n message.maxChangeRate = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseCommissionRates);\n if (object.rate !== undefined && object.rate !== null) {\n message.rate = String(object.rate);\n }\n else {\n message.rate = \"\";\n }\n if (object.maxRate !== undefined && object.maxRate !== null) {\n message.maxRate = String(object.maxRate);\n }\n else {\n message.maxRate = \"\";\n }\n if (object.maxChangeRate !== undefined && object.maxChangeRate !== null) {\n message.maxChangeRate = String(object.maxChangeRate);\n }\n else {\n message.maxChangeRate = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.rate !== undefined && (obj.rate = message.rate);\n message.maxRate !== undefined && (obj.maxRate = message.maxRate);\n message.maxChangeRate !== undefined && (obj.maxChangeRate = message.maxChangeRate);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseCommissionRates);\n if (object.rate !== undefined && object.rate !== null) {\n message.rate = object.rate;\n }\n else {\n message.rate = \"\";\n }\n if (object.maxRate !== undefined && object.maxRate !== null) {\n message.maxRate = object.maxRate;\n }\n else {\n message.maxRate = \"\";\n }\n if (object.maxChangeRate !== undefined && object.maxChangeRate !== null) {\n message.maxChangeRate = object.maxChangeRate;\n }\n else {\n message.maxChangeRate = \"\";\n }\n return message;\n },\n};\nconst baseCommission = {};\nexports.Commission = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.commissionRates !== undefined) {\n exports.CommissionRates.encode(message.commissionRates, writer.uint32(10).fork()).ldelim();\n }\n if (message.updateTime !== undefined) {\n timestamp_1.Timestamp.encode(toTimestamp(message.updateTime), writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseCommission);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.commissionRates = exports.CommissionRates.decode(reader, reader.uint32());\n break;\n case 2:\n message.updateTime = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseCommission);\n if (object.commissionRates !== undefined && object.commissionRates !== null) {\n message.commissionRates = exports.CommissionRates.fromJSON(object.commissionRates);\n }\n else {\n message.commissionRates = undefined;\n }\n if (object.updateTime !== undefined && object.updateTime !== null) {\n message.updateTime = fromJsonTimestamp(object.updateTime);\n }\n else {\n message.updateTime = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.commissionRates !== undefined &&\n (obj.commissionRates = message.commissionRates\n ? exports.CommissionRates.toJSON(message.commissionRates)\n : undefined);\n message.updateTime !== undefined && (obj.updateTime = message.updateTime.toISOString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseCommission);\n if (object.commissionRates !== undefined && object.commissionRates !== null) {\n message.commissionRates = exports.CommissionRates.fromPartial(object.commissionRates);\n }\n else {\n message.commissionRates = undefined;\n }\n if (object.updateTime !== undefined && object.updateTime !== null) {\n message.updateTime = object.updateTime;\n }\n else {\n message.updateTime = undefined;\n }\n return message;\n },\n};\nconst baseDescription = { moniker: \"\", identity: \"\", website: \"\", securityContact: \"\", details: \"\" };\nexports.Description = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.moniker !== \"\") {\n writer.uint32(10).string(message.moniker);\n }\n if (message.identity !== \"\") {\n writer.uint32(18).string(message.identity);\n }\n if (message.website !== \"\") {\n writer.uint32(26).string(message.website);\n }\n if (message.securityContact !== \"\") {\n writer.uint32(34).string(message.securityContact);\n }\n if (message.details !== \"\") {\n writer.uint32(42).string(message.details);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDescription);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.moniker = reader.string();\n break;\n case 2:\n message.identity = reader.string();\n break;\n case 3:\n message.website = reader.string();\n break;\n case 4:\n message.securityContact = reader.string();\n break;\n case 5:\n message.details = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseDescription);\n if (object.moniker !== undefined && object.moniker !== null) {\n message.moniker = String(object.moniker);\n }\n else {\n message.moniker = \"\";\n }\n if (object.identity !== undefined && object.identity !== null) {\n message.identity = String(object.identity);\n }\n else {\n message.identity = \"\";\n }\n if (object.website !== undefined && object.website !== null) {\n message.website = String(object.website);\n }\n else {\n message.website = \"\";\n }\n if (object.securityContact !== undefined && object.securityContact !== null) {\n message.securityContact = String(object.securityContact);\n }\n else {\n message.securityContact = \"\";\n }\n if (object.details !== undefined && object.details !== null) {\n message.details = String(object.details);\n }\n else {\n message.details = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.moniker !== undefined && (obj.moniker = message.moniker);\n message.identity !== undefined && (obj.identity = message.identity);\n message.website !== undefined && (obj.website = message.website);\n message.securityContact !== undefined && (obj.securityContact = message.securityContact);\n message.details !== undefined && (obj.details = message.details);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseDescription);\n if (object.moniker !== undefined && object.moniker !== null) {\n message.moniker = object.moniker;\n }\n else {\n message.moniker = \"\";\n }\n if (object.identity !== undefined && object.identity !== null) {\n message.identity = object.identity;\n }\n else {\n message.identity = \"\";\n }\n if (object.website !== undefined && object.website !== null) {\n message.website = object.website;\n }\n else {\n message.website = \"\";\n }\n if (object.securityContact !== undefined && object.securityContact !== null) {\n message.securityContact = object.securityContact;\n }\n else {\n message.securityContact = \"\";\n }\n if (object.details !== undefined && object.details !== null) {\n message.details = object.details;\n }\n else {\n message.details = \"\";\n }\n return message;\n },\n};\nconst baseValidator = {\n operatorAddress: \"\",\n jailed: false,\n status: 0,\n tokens: \"\",\n delegatorShares: \"\",\n unbondingHeight: long_1.default.ZERO,\n minSelfDelegation: \"\",\n};\nexports.Validator = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.operatorAddress !== \"\") {\n writer.uint32(10).string(message.operatorAddress);\n }\n if (message.consensusPubkey !== undefined) {\n any_1.Any.encode(message.consensusPubkey, writer.uint32(18).fork()).ldelim();\n }\n if (message.jailed === true) {\n writer.uint32(24).bool(message.jailed);\n }\n if (message.status !== 0) {\n writer.uint32(32).int32(message.status);\n }\n if (message.tokens !== \"\") {\n writer.uint32(42).string(message.tokens);\n }\n if (message.delegatorShares !== \"\") {\n writer.uint32(50).string(message.delegatorShares);\n }\n if (message.description !== undefined) {\n exports.Description.encode(message.description, writer.uint32(58).fork()).ldelim();\n }\n if (!message.unbondingHeight.isZero()) {\n writer.uint32(64).int64(message.unbondingHeight);\n }\n if (message.unbondingTime !== undefined) {\n timestamp_1.Timestamp.encode(toTimestamp(message.unbondingTime), writer.uint32(74).fork()).ldelim();\n }\n if (message.commission !== undefined) {\n exports.Commission.encode(message.commission, writer.uint32(82).fork()).ldelim();\n }\n if (message.minSelfDelegation !== \"\") {\n writer.uint32(90).string(message.minSelfDelegation);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseValidator);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.operatorAddress = reader.string();\n break;\n case 2:\n message.consensusPubkey = any_1.Any.decode(reader, reader.uint32());\n break;\n case 3:\n message.jailed = reader.bool();\n break;\n case 4:\n message.status = reader.int32();\n break;\n case 5:\n message.tokens = reader.string();\n break;\n case 6:\n message.delegatorShares = reader.string();\n break;\n case 7:\n message.description = exports.Description.decode(reader, reader.uint32());\n break;\n case 8:\n message.unbondingHeight = reader.int64();\n break;\n case 9:\n message.unbondingTime = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));\n break;\n case 10:\n message.commission = exports.Commission.decode(reader, reader.uint32());\n break;\n case 11:\n message.minSelfDelegation = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseValidator);\n if (object.operatorAddress !== undefined && object.operatorAddress !== null) {\n message.operatorAddress = String(object.operatorAddress);\n }\n else {\n message.operatorAddress = \"\";\n }\n if (object.consensusPubkey !== undefined && object.consensusPubkey !== null) {\n message.consensusPubkey = any_1.Any.fromJSON(object.consensusPubkey);\n }\n else {\n message.consensusPubkey = undefined;\n }\n if (object.jailed !== undefined && object.jailed !== null) {\n message.jailed = Boolean(object.jailed);\n }\n else {\n message.jailed = false;\n }\n if (object.status !== undefined && object.status !== null) {\n message.status = bondStatusFromJSON(object.status);\n }\n else {\n message.status = 0;\n }\n if (object.tokens !== undefined && object.tokens !== null) {\n message.tokens = String(object.tokens);\n }\n else {\n message.tokens = \"\";\n }\n if (object.delegatorShares !== undefined && object.delegatorShares !== null) {\n message.delegatorShares = String(object.delegatorShares);\n }\n else {\n message.delegatorShares = \"\";\n }\n if (object.description !== undefined && object.description !== null) {\n message.description = exports.Description.fromJSON(object.description);\n }\n else {\n message.description = undefined;\n }\n if (object.unbondingHeight !== undefined && object.unbondingHeight !== null) {\n message.unbondingHeight = long_1.default.fromString(object.unbondingHeight);\n }\n else {\n message.unbondingHeight = long_1.default.ZERO;\n }\n if (object.unbondingTime !== undefined && object.unbondingTime !== null) {\n message.unbondingTime = fromJsonTimestamp(object.unbondingTime);\n }\n else {\n message.unbondingTime = undefined;\n }\n if (object.commission !== undefined && object.commission !== null) {\n message.commission = exports.Commission.fromJSON(object.commission);\n }\n else {\n message.commission = undefined;\n }\n if (object.minSelfDelegation !== undefined && object.minSelfDelegation !== null) {\n message.minSelfDelegation = String(object.minSelfDelegation);\n }\n else {\n message.minSelfDelegation = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.operatorAddress !== undefined && (obj.operatorAddress = message.operatorAddress);\n message.consensusPubkey !== undefined &&\n (obj.consensusPubkey = message.consensusPubkey ? any_1.Any.toJSON(message.consensusPubkey) : undefined);\n message.jailed !== undefined && (obj.jailed = message.jailed);\n message.status !== undefined && (obj.status = bondStatusToJSON(message.status));\n message.tokens !== undefined && (obj.tokens = message.tokens);\n message.delegatorShares !== undefined && (obj.delegatorShares = message.delegatorShares);\n message.description !== undefined &&\n (obj.description = message.description ? exports.Description.toJSON(message.description) : undefined);\n message.unbondingHeight !== undefined &&\n (obj.unbondingHeight = (message.unbondingHeight || long_1.default.ZERO).toString());\n message.unbondingTime !== undefined && (obj.unbondingTime = message.unbondingTime.toISOString());\n message.commission !== undefined &&\n (obj.commission = message.commission ? exports.Commission.toJSON(message.commission) : undefined);\n message.minSelfDelegation !== undefined && (obj.minSelfDelegation = message.minSelfDelegation);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseValidator);\n if (object.operatorAddress !== undefined && object.operatorAddress !== null) {\n message.operatorAddress = object.operatorAddress;\n }\n else {\n message.operatorAddress = \"\";\n }\n if (object.consensusPubkey !== undefined && object.consensusPubkey !== null) {\n message.consensusPubkey = any_1.Any.fromPartial(object.consensusPubkey);\n }\n else {\n message.consensusPubkey = undefined;\n }\n if (object.jailed !== undefined && object.jailed !== null) {\n message.jailed = object.jailed;\n }\n else {\n message.jailed = false;\n }\n if (object.status !== undefined && object.status !== null) {\n message.status = object.status;\n }\n else {\n message.status = 0;\n }\n if (object.tokens !== undefined && object.tokens !== null) {\n message.tokens = object.tokens;\n }\n else {\n message.tokens = \"\";\n }\n if (object.delegatorShares !== undefined && object.delegatorShares !== null) {\n message.delegatorShares = object.delegatorShares;\n }\n else {\n message.delegatorShares = \"\";\n }\n if (object.description !== undefined && object.description !== null) {\n message.description = exports.Description.fromPartial(object.description);\n }\n else {\n message.description = undefined;\n }\n if (object.unbondingHeight !== undefined && object.unbondingHeight !== null) {\n message.unbondingHeight = object.unbondingHeight;\n }\n else {\n message.unbondingHeight = long_1.default.ZERO;\n }\n if (object.unbondingTime !== undefined && object.unbondingTime !== null) {\n message.unbondingTime = object.unbondingTime;\n }\n else {\n message.unbondingTime = undefined;\n }\n if (object.commission !== undefined && object.commission !== null) {\n message.commission = exports.Commission.fromPartial(object.commission);\n }\n else {\n message.commission = undefined;\n }\n if (object.minSelfDelegation !== undefined && object.minSelfDelegation !== null) {\n message.minSelfDelegation = object.minSelfDelegation;\n }\n else {\n message.minSelfDelegation = \"\";\n }\n return message;\n },\n};\nconst baseValAddresses = { addresses: \"\" };\nexports.ValAddresses = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.addresses) {\n writer.uint32(10).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseValAddresses);\n message.addresses = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.addresses.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseValAddresses);\n message.addresses = [];\n if (object.addresses !== undefined && object.addresses !== null) {\n for (const e of object.addresses) {\n message.addresses.push(String(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.addresses) {\n obj.addresses = message.addresses.map((e) => e);\n }\n else {\n obj.addresses = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseValAddresses);\n message.addresses = [];\n if (object.addresses !== undefined && object.addresses !== null) {\n for (const e of object.addresses) {\n message.addresses.push(e);\n }\n }\n return message;\n },\n};\nconst baseDVPair = { delegatorAddress: \"\", validatorAddress: \"\" };\nexports.DVPair = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.validatorAddress !== \"\") {\n writer.uint32(18).string(message.validatorAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDVPair);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.validatorAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseDVPair);\n if (object.delegatorAddress !== undefined && object.delegatorAddress !== null) {\n message.delegatorAddress = String(object.delegatorAddress);\n }\n else {\n message.delegatorAddress = \"\";\n }\n if (object.validatorAddress !== undefined && object.validatorAddress !== null) {\n message.validatorAddress = String(object.validatorAddress);\n }\n else {\n message.validatorAddress = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseDVPair);\n if (object.delegatorAddress !== undefined && object.delegatorAddress !== null) {\n message.delegatorAddress = object.delegatorAddress;\n }\n else {\n message.delegatorAddress = \"\";\n }\n if (object.validatorAddress !== undefined && object.validatorAddress !== null) {\n message.validatorAddress = object.validatorAddress;\n }\n else {\n message.validatorAddress = \"\";\n }\n return message;\n },\n};\nconst baseDVPairs = {};\nexports.DVPairs = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.pairs) {\n exports.DVPair.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDVPairs);\n message.pairs = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pairs.push(exports.DVPair.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseDVPairs);\n message.pairs = [];\n if (object.pairs !== undefined && object.pairs !== null) {\n for (const e of object.pairs) {\n message.pairs.push(exports.DVPair.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.pairs) {\n obj.pairs = message.pairs.map((e) => (e ? exports.DVPair.toJSON(e) : undefined));\n }\n else {\n obj.pairs = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseDVPairs);\n message.pairs = [];\n if (object.pairs !== undefined && object.pairs !== null) {\n for (const e of object.pairs) {\n message.pairs.push(exports.DVPair.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseDVVTriplet = { delegatorAddress: \"\", validatorSrcAddress: \"\", validatorDstAddress: \"\" };\nexports.DVVTriplet = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.validatorSrcAddress !== \"\") {\n writer.uint32(18).string(message.validatorSrcAddress);\n }\n if (message.validatorDstAddress !== \"\") {\n writer.uint32(26).string(message.validatorDstAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDVVTriplet);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.validatorSrcAddress = reader.string();\n break;\n case 3:\n message.validatorDstAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseDVVTriplet);\n if (object.delegatorAddress !== undefined && object.delegatorAddress !== null) {\n message.delegatorAddress = String(object.delegatorAddress);\n }\n else {\n message.delegatorAddress = \"\";\n }\n if (object.validatorSrcAddress !== undefined && object.validatorSrcAddress !== null) {\n message.validatorSrcAddress = String(object.validatorSrcAddress);\n }\n else {\n message.validatorSrcAddress = \"\";\n }\n if (object.validatorDstAddress !== undefined && object.validatorDstAddress !== null) {\n message.validatorDstAddress = String(object.validatorDstAddress);\n }\n else {\n message.validatorDstAddress = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.validatorSrcAddress !== undefined && (obj.validatorSrcAddress = message.validatorSrcAddress);\n message.validatorDstAddress !== undefined && (obj.validatorDstAddress = message.validatorDstAddress);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseDVVTriplet);\n if (object.delegatorAddress !== undefined && object.delegatorAddress !== null) {\n message.delegatorAddress = object.delegatorAddress;\n }\n else {\n message.delegatorAddress = \"\";\n }\n if (object.validatorSrcAddress !== undefined && object.validatorSrcAddress !== null) {\n message.validatorSrcAddress = object.validatorSrcAddress;\n }\n else {\n message.validatorSrcAddress = \"\";\n }\n if (object.validatorDstAddress !== undefined && object.validatorDstAddress !== null) {\n message.validatorDstAddress = object.validatorDstAddress;\n }\n else {\n message.validatorDstAddress = \"\";\n }\n return message;\n },\n};\nconst baseDVVTriplets = {};\nexports.DVVTriplets = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.triplets) {\n exports.DVVTriplet.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDVVTriplets);\n message.triplets = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.triplets.push(exports.DVVTriplet.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseDVVTriplets);\n message.triplets = [];\n if (object.triplets !== undefined && object.triplets !== null) {\n for (const e of object.triplets) {\n message.triplets.push(exports.DVVTriplet.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.triplets) {\n obj.triplets = message.triplets.map((e) => (e ? exports.DVVTriplet.toJSON(e) : undefined));\n }\n else {\n obj.triplets = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseDVVTriplets);\n message.triplets = [];\n if (object.triplets !== undefined && object.triplets !== null) {\n for (const e of object.triplets) {\n message.triplets.push(exports.DVVTriplet.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseDelegation = { delegatorAddress: \"\", validatorAddress: \"\", shares: \"\" };\nexports.Delegation = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.validatorAddress !== \"\") {\n writer.uint32(18).string(message.validatorAddress);\n }\n if (message.shares !== \"\") {\n writer.uint32(26).string(message.shares);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDelegation);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.validatorAddress = reader.string();\n break;\n case 3:\n message.shares = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseDelegation);\n if (object.delegatorAddress !== undefined && object.delegatorAddress !== null) {\n message.delegatorAddress = String(object.delegatorAddress);\n }\n else {\n message.delegatorAddress = \"\";\n }\n if (object.validatorAddress !== undefined && object.validatorAddress !== null) {\n message.validatorAddress = String(object.validatorAddress);\n }\n else {\n message.validatorAddress = \"\";\n }\n if (object.shares !== undefined && object.shares !== null) {\n message.shares = String(object.shares);\n }\n else {\n message.shares = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n message.shares !== undefined && (obj.shares = message.shares);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseDelegation);\n if (object.delegatorAddress !== undefined && object.delegatorAddress !== null) {\n message.delegatorAddress = object.delegatorAddress;\n }\n else {\n message.delegatorAddress = \"\";\n }\n if (object.validatorAddress !== undefined && object.validatorAddress !== null) {\n message.validatorAddress = object.validatorAddress;\n }\n else {\n message.validatorAddress = \"\";\n }\n if (object.shares !== undefined && object.shares !== null) {\n message.shares = object.shares;\n }\n else {\n message.shares = \"\";\n }\n return message;\n },\n};\nconst baseUnbondingDelegation = { delegatorAddress: \"\", validatorAddress: \"\" };\nexports.UnbondingDelegation = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.validatorAddress !== \"\") {\n writer.uint32(18).string(message.validatorAddress);\n }\n for (const v of message.entries) {\n exports.UnbondingDelegationEntry.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseUnbondingDelegation);\n message.entries = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.validatorAddress = reader.string();\n break;\n case 3:\n message.entries.push(exports.UnbondingDelegationEntry.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseUnbondingDelegation);\n message.entries = [];\n if (object.delegatorAddress !== undefined && object.delegatorAddress !== null) {\n message.delegatorAddress = String(object.delegatorAddress);\n }\n else {\n message.delegatorAddress = \"\";\n }\n if (object.validatorAddress !== undefined && object.validatorAddress !== null) {\n message.validatorAddress = String(object.validatorAddress);\n }\n else {\n message.validatorAddress = \"\";\n }\n if (object.entries !== undefined && object.entries !== null) {\n for (const e of object.entries) {\n message.entries.push(exports.UnbondingDelegationEntry.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n if (message.entries) {\n obj.entries = message.entries.map((e) => (e ? exports.UnbondingDelegationEntry.toJSON(e) : undefined));\n }\n else {\n obj.entries = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseUnbondingDelegation);\n message.entries = [];\n if (object.delegatorAddress !== undefined && object.delegatorAddress !== null) {\n message.delegatorAddress = object.delegatorAddress;\n }\n else {\n message.delegatorAddress = \"\";\n }\n if (object.validatorAddress !== undefined && object.validatorAddress !== null) {\n message.validatorAddress = object.validatorAddress;\n }\n else {\n message.validatorAddress = \"\";\n }\n if (object.entries !== undefined && object.entries !== null) {\n for (const e of object.entries) {\n message.entries.push(exports.UnbondingDelegationEntry.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseUnbondingDelegationEntry = { creationHeight: long_1.default.ZERO, initialBalance: \"\", balance: \"\" };\nexports.UnbondingDelegationEntry = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.creationHeight.isZero()) {\n writer.uint32(8).int64(message.creationHeight);\n }\n if (message.completionTime !== undefined) {\n timestamp_1.Timestamp.encode(toTimestamp(message.completionTime), writer.uint32(18).fork()).ldelim();\n }\n if (message.initialBalance !== \"\") {\n writer.uint32(26).string(message.initialBalance);\n }\n if (message.balance !== \"\") {\n writer.uint32(34).string(message.balance);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseUnbondingDelegationEntry);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.creationHeight = reader.int64();\n break;\n case 2:\n message.completionTime = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));\n break;\n case 3:\n message.initialBalance = reader.string();\n break;\n case 4:\n message.balance = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseUnbondingDelegationEntry);\n if (object.creationHeight !== undefined && object.creationHeight !== null) {\n message.creationHeight = long_1.default.fromString(object.creationHeight);\n }\n else {\n message.creationHeight = long_1.default.ZERO;\n }\n if (object.completionTime !== undefined && object.completionTime !== null) {\n message.completionTime = fromJsonTimestamp(object.completionTime);\n }\n else {\n message.completionTime = undefined;\n }\n if (object.initialBalance !== undefined && object.initialBalance !== null) {\n message.initialBalance = String(object.initialBalance);\n }\n else {\n message.initialBalance = \"\";\n }\n if (object.balance !== undefined && object.balance !== null) {\n message.balance = String(object.balance);\n }\n else {\n message.balance = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.creationHeight !== undefined &&\n (obj.creationHeight = (message.creationHeight || long_1.default.ZERO).toString());\n message.completionTime !== undefined && (obj.completionTime = message.completionTime.toISOString());\n message.initialBalance !== undefined && (obj.initialBalance = message.initialBalance);\n message.balance !== undefined && (obj.balance = message.balance);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseUnbondingDelegationEntry);\n if (object.creationHeight !== undefined && object.creationHeight !== null) {\n message.creationHeight = object.creationHeight;\n }\n else {\n message.creationHeight = long_1.default.ZERO;\n }\n if (object.completionTime !== undefined && object.completionTime !== null) {\n message.completionTime = object.completionTime;\n }\n else {\n message.completionTime = undefined;\n }\n if (object.initialBalance !== undefined && object.initialBalance !== null) {\n message.initialBalance = object.initialBalance;\n }\n else {\n message.initialBalance = \"\";\n }\n if (object.balance !== undefined && object.balance !== null) {\n message.balance = object.balance;\n }\n else {\n message.balance = \"\";\n }\n return message;\n },\n};\nconst baseRedelegationEntry = { creationHeight: long_1.default.ZERO, initialBalance: \"\", sharesDst: \"\" };\nexports.RedelegationEntry = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.creationHeight.isZero()) {\n writer.uint32(8).int64(message.creationHeight);\n }\n if (message.completionTime !== undefined) {\n timestamp_1.Timestamp.encode(toTimestamp(message.completionTime), writer.uint32(18).fork()).ldelim();\n }\n if (message.initialBalance !== \"\") {\n writer.uint32(26).string(message.initialBalance);\n }\n if (message.sharesDst !== \"\") {\n writer.uint32(34).string(message.sharesDst);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRedelegationEntry);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.creationHeight = reader.int64();\n break;\n case 2:\n message.completionTime = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));\n break;\n case 3:\n message.initialBalance = reader.string();\n break;\n case 4:\n message.sharesDst = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseRedelegationEntry);\n if (object.creationHeight !== undefined && object.creationHeight !== null) {\n message.creationHeight = long_1.default.fromString(object.creationHeight);\n }\n else {\n message.creationHeight = long_1.default.ZERO;\n }\n if (object.completionTime !== undefined && object.completionTime !== null) {\n message.completionTime = fromJsonTimestamp(object.completionTime);\n }\n else {\n message.completionTime = undefined;\n }\n if (object.initialBalance !== undefined && object.initialBalance !== null) {\n message.initialBalance = String(object.initialBalance);\n }\n else {\n message.initialBalance = \"\";\n }\n if (object.sharesDst !== undefined && object.sharesDst !== null) {\n message.sharesDst = String(object.sharesDst);\n }\n else {\n message.sharesDst = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.creationHeight !== undefined &&\n (obj.creationHeight = (message.creationHeight || long_1.default.ZERO).toString());\n message.completionTime !== undefined && (obj.completionTime = message.completionTime.toISOString());\n message.initialBalance !== undefined && (obj.initialBalance = message.initialBalance);\n message.sharesDst !== undefined && (obj.sharesDst = message.sharesDst);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseRedelegationEntry);\n if (object.creationHeight !== undefined && object.creationHeight !== null) {\n message.creationHeight = object.creationHeight;\n }\n else {\n message.creationHeight = long_1.default.ZERO;\n }\n if (object.completionTime !== undefined && object.completionTime !== null) {\n message.completionTime = object.completionTime;\n }\n else {\n message.completionTime = undefined;\n }\n if (object.initialBalance !== undefined && object.initialBalance !== null) {\n message.initialBalance = object.initialBalance;\n }\n else {\n message.initialBalance = \"\";\n }\n if (object.sharesDst !== undefined && object.sharesDst !== null) {\n message.sharesDst = object.sharesDst;\n }\n else {\n message.sharesDst = \"\";\n }\n return message;\n },\n};\nconst baseRedelegation = { delegatorAddress: \"\", validatorSrcAddress: \"\", validatorDstAddress: \"\" };\nexports.Redelegation = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.validatorSrcAddress !== \"\") {\n writer.uint32(18).string(message.validatorSrcAddress);\n }\n if (message.validatorDstAddress !== \"\") {\n writer.uint32(26).string(message.validatorDstAddress);\n }\n for (const v of message.entries) {\n exports.RedelegationEntry.encode(v, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRedelegation);\n message.entries = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.validatorSrcAddress = reader.string();\n break;\n case 3:\n message.validatorDstAddress = reader.string();\n break;\n case 4:\n message.entries.push(exports.RedelegationEntry.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseRedelegation);\n message.entries = [];\n if (object.delegatorAddress !== undefined && object.delegatorAddress !== null) {\n message.delegatorAddress = String(object.delegatorAddress);\n }\n else {\n message.delegatorAddress = \"\";\n }\n if (object.validatorSrcAddress !== undefined && object.validatorSrcAddress !== null) {\n message.validatorSrcAddress = String(object.validatorSrcAddress);\n }\n else {\n message.validatorSrcAddress = \"\";\n }\n if (object.validatorDstAddress !== undefined && object.validatorDstAddress !== null) {\n message.validatorDstAddress = String(object.validatorDstAddress);\n }\n else {\n message.validatorDstAddress = \"\";\n }\n if (object.entries !== undefined && object.entries !== null) {\n for (const e of object.entries) {\n message.entries.push(exports.RedelegationEntry.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.validatorSrcAddress !== undefined && (obj.validatorSrcAddress = message.validatorSrcAddress);\n message.validatorDstAddress !== undefined && (obj.validatorDstAddress = message.validatorDstAddress);\n if (message.entries) {\n obj.entries = message.entries.map((e) => (e ? exports.RedelegationEntry.toJSON(e) : undefined));\n }\n else {\n obj.entries = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseRedelegation);\n message.entries = [];\n if (object.delegatorAddress !== undefined && object.delegatorAddress !== null) {\n message.delegatorAddress = object.delegatorAddress;\n }\n else {\n message.delegatorAddress = \"\";\n }\n if (object.validatorSrcAddress !== undefined && object.validatorSrcAddress !== null) {\n message.validatorSrcAddress = object.validatorSrcAddress;\n }\n else {\n message.validatorSrcAddress = \"\";\n }\n if (object.validatorDstAddress !== undefined && object.validatorDstAddress !== null) {\n message.validatorDstAddress = object.validatorDstAddress;\n }\n else {\n message.validatorDstAddress = \"\";\n }\n if (object.entries !== undefined && object.entries !== null) {\n for (const e of object.entries) {\n message.entries.push(exports.RedelegationEntry.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseParams = { maxValidators: 0, maxEntries: 0, historicalEntries: 0, bondDenom: \"\" };\nexports.Params = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.unbondingTime !== undefined) {\n duration_1.Duration.encode(message.unbondingTime, writer.uint32(10).fork()).ldelim();\n }\n if (message.maxValidators !== 0) {\n writer.uint32(16).uint32(message.maxValidators);\n }\n if (message.maxEntries !== 0) {\n writer.uint32(24).uint32(message.maxEntries);\n }\n if (message.historicalEntries !== 0) {\n writer.uint32(32).uint32(message.historicalEntries);\n }\n if (message.bondDenom !== \"\") {\n writer.uint32(42).string(message.bondDenom);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseParams);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.unbondingTime = duration_1.Duration.decode(reader, reader.uint32());\n break;\n case 2:\n message.maxValidators = reader.uint32();\n break;\n case 3:\n message.maxEntries = reader.uint32();\n break;\n case 4:\n message.historicalEntries = reader.uint32();\n break;\n case 5:\n message.bondDenom = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseParams);\n if (object.unbondingTime !== undefined && object.unbondingTime !== null) {\n message.unbondingTime = duration_1.Duration.fromJSON(object.unbondingTime);\n }\n else {\n message.unbondingTime = undefined;\n }\n if (object.maxValidators !== undefined && object.maxValidators !== null) {\n message.maxValidators = Number(object.maxValidators);\n }\n else {\n message.maxValidators = 0;\n }\n if (object.maxEntries !== undefined && object.maxEntries !== null) {\n message.maxEntries = Number(object.maxEntries);\n }\n else {\n message.maxEntries = 0;\n }\n if (object.historicalEntries !== undefined && object.historicalEntries !== null) {\n message.historicalEntries = Number(object.historicalEntries);\n }\n else {\n message.historicalEntries = 0;\n }\n if (object.bondDenom !== undefined && object.bondDenom !== null) {\n message.bondDenom = String(object.bondDenom);\n }\n else {\n message.bondDenom = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.unbondingTime !== undefined &&\n (obj.unbondingTime = message.unbondingTime ? duration_1.Duration.toJSON(message.unbondingTime) : undefined);\n message.maxValidators !== undefined && (obj.maxValidators = message.maxValidators);\n message.maxEntries !== undefined && (obj.maxEntries = message.maxEntries);\n message.historicalEntries !== undefined && (obj.historicalEntries = message.historicalEntries);\n message.bondDenom !== undefined && (obj.bondDenom = message.bondDenom);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseParams);\n if (object.unbondingTime !== undefined && object.unbondingTime !== null) {\n message.unbondingTime = duration_1.Duration.fromPartial(object.unbondingTime);\n }\n else {\n message.unbondingTime = undefined;\n }\n if (object.maxValidators !== undefined && object.maxValidators !== null) {\n message.maxValidators = object.maxValidators;\n }\n else {\n message.maxValidators = 0;\n }\n if (object.maxEntries !== undefined && object.maxEntries !== null) {\n message.maxEntries = object.maxEntries;\n }\n else {\n message.maxEntries = 0;\n }\n if (object.historicalEntries !== undefined && object.historicalEntries !== null) {\n message.historicalEntries = object.historicalEntries;\n }\n else {\n message.historicalEntries = 0;\n }\n if (object.bondDenom !== undefined && object.bondDenom !== null) {\n message.bondDenom = object.bondDenom;\n }\n else {\n message.bondDenom = \"\";\n }\n return message;\n },\n};\nconst baseDelegationResponse = {};\nexports.DelegationResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegation !== undefined) {\n exports.Delegation.encode(message.delegation, writer.uint32(10).fork()).ldelim();\n }\n if (message.balance !== undefined) {\n coin_1.Coin.encode(message.balance, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDelegationResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegation = exports.Delegation.decode(reader, reader.uint32());\n break;\n case 2:\n message.balance = coin_1.Coin.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseDelegationResponse);\n if (object.delegation !== undefined && object.delegation !== null) {\n message.delegation = exports.Delegation.fromJSON(object.delegation);\n }\n else {\n message.delegation = undefined;\n }\n if (object.balance !== undefined && object.balance !== null) {\n message.balance = coin_1.Coin.fromJSON(object.balance);\n }\n else {\n message.balance = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegation !== undefined &&\n (obj.delegation = message.delegation ? exports.Delegation.toJSON(message.delegation) : undefined);\n message.balance !== undefined &&\n (obj.balance = message.balance ? coin_1.Coin.toJSON(message.balance) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseDelegationResponse);\n if (object.delegation !== undefined && object.delegation !== null) {\n message.delegation = exports.Delegation.fromPartial(object.delegation);\n }\n else {\n message.delegation = undefined;\n }\n if (object.balance !== undefined && object.balance !== null) {\n message.balance = coin_1.Coin.fromPartial(object.balance);\n }\n else {\n message.balance = undefined;\n }\n return message;\n },\n};\nconst baseRedelegationEntryResponse = { balance: \"\" };\nexports.RedelegationEntryResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.redelegationEntry !== undefined) {\n exports.RedelegationEntry.encode(message.redelegationEntry, writer.uint32(10).fork()).ldelim();\n }\n if (message.balance !== \"\") {\n writer.uint32(34).string(message.balance);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRedelegationEntryResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.redelegationEntry = exports.RedelegationEntry.decode(reader, reader.uint32());\n break;\n case 4:\n message.balance = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseRedelegationEntryResponse);\n if (object.redelegationEntry !== undefined && object.redelegationEntry !== null) {\n message.redelegationEntry = exports.RedelegationEntry.fromJSON(object.redelegationEntry);\n }\n else {\n message.redelegationEntry = undefined;\n }\n if (object.balance !== undefined && object.balance !== null) {\n message.balance = String(object.balance);\n }\n else {\n message.balance = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.redelegationEntry !== undefined &&\n (obj.redelegationEntry = message.redelegationEntry\n ? exports.RedelegationEntry.toJSON(message.redelegationEntry)\n : undefined);\n message.balance !== undefined && (obj.balance = message.balance);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseRedelegationEntryResponse);\n if (object.redelegationEntry !== undefined && object.redelegationEntry !== null) {\n message.redelegationEntry = exports.RedelegationEntry.fromPartial(object.redelegationEntry);\n }\n else {\n message.redelegationEntry = undefined;\n }\n if (object.balance !== undefined && object.balance !== null) {\n message.balance = object.balance;\n }\n else {\n message.balance = \"\";\n }\n return message;\n },\n};\nconst baseRedelegationResponse = {};\nexports.RedelegationResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.redelegation !== undefined) {\n exports.Redelegation.encode(message.redelegation, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.entries) {\n exports.RedelegationEntryResponse.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRedelegationResponse);\n message.entries = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.redelegation = exports.Redelegation.decode(reader, reader.uint32());\n break;\n case 2:\n message.entries.push(exports.RedelegationEntryResponse.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseRedelegationResponse);\n message.entries = [];\n if (object.redelegation !== undefined && object.redelegation !== null) {\n message.redelegation = exports.Redelegation.fromJSON(object.redelegation);\n }\n else {\n message.redelegation = undefined;\n }\n if (object.entries !== undefined && object.entries !== null) {\n for (const e of object.entries) {\n message.entries.push(exports.RedelegationEntryResponse.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.redelegation !== undefined &&\n (obj.redelegation = message.redelegation ? exports.Redelegation.toJSON(message.redelegation) : undefined);\n if (message.entries) {\n obj.entries = message.entries.map((e) => (e ? exports.RedelegationEntryResponse.toJSON(e) : undefined));\n }\n else {\n obj.entries = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseRedelegationResponse);\n message.entries = [];\n if (object.redelegation !== undefined && object.redelegation !== null) {\n message.redelegation = exports.Redelegation.fromPartial(object.redelegation);\n }\n else {\n message.redelegation = undefined;\n }\n if (object.entries !== undefined && object.entries !== null) {\n for (const e of object.entries) {\n message.entries.push(exports.RedelegationEntryResponse.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst basePool = { notBondedTokens: \"\", bondedTokens: \"\" };\nexports.Pool = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.notBondedTokens !== \"\") {\n writer.uint32(10).string(message.notBondedTokens);\n }\n if (message.bondedTokens !== \"\") {\n writer.uint32(18).string(message.bondedTokens);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, basePool);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.notBondedTokens = reader.string();\n break;\n case 2:\n message.bondedTokens = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, basePool);\n if (object.notBondedTokens !== undefined && object.notBondedTokens !== null) {\n message.notBondedTokens = String(object.notBondedTokens);\n }\n else {\n message.notBondedTokens = \"\";\n }\n if (object.bondedTokens !== undefined && object.bondedTokens !== null) {\n message.bondedTokens = String(object.bondedTokens);\n }\n else {\n message.bondedTokens = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.notBondedTokens !== undefined && (obj.notBondedTokens = message.notBondedTokens);\n message.bondedTokens !== undefined && (obj.bondedTokens = message.bondedTokens);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, basePool);\n if (object.notBondedTokens !== undefined && object.notBondedTokens !== null) {\n message.notBondedTokens = object.notBondedTokens;\n }\n else {\n message.notBondedTokens = \"\";\n }\n if (object.bondedTokens !== undefined && object.bondedTokens !== null) {\n message.bondedTokens = object.bondedTokens;\n }\n else {\n message.bondedTokens = \"\";\n }\n return message;\n },\n};\nfunction toTimestamp(date) {\n const seconds = numberToLong(date.getTime() / 1000);\n const nanos = (date.getTime() % 1000) * 1000000;\n return { seconds, nanos };\n}\nfunction fromTimestamp(t) {\n let millis = t.seconds.toNumber() * 1000;\n millis += t.nanos / 1000000;\n return new Date(millis);\n}\nfunction fromJsonTimestamp(o) {\n if (o instanceof Date) {\n return o;\n }\n else if (typeof o === \"string\") {\n return new Date(o);\n }\n else {\n return fromTimestamp(timestamp_1.Timestamp.fromJSON(o));\n }\n}\nfunction numberToLong(number) {\n return long_1.default.fromNumber(number);\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=staking.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GrpcWebImpl = exports.MsgUndelegateDesc = exports.MsgBeginRedelegateDesc = exports.MsgDelegateDesc = exports.MsgEditValidatorDesc = exports.MsgCreateValidatorDesc = exports.MsgDesc = exports.MsgClientImpl = exports.MsgUndelegateResponse = exports.MsgUndelegate = exports.MsgBeginRedelegateResponse = exports.MsgBeginRedelegate = exports.MsgDelegateResponse = exports.MsgDelegate = exports.MsgEditValidatorResponse = exports.MsgEditValidator = exports.MsgCreateValidatorResponse = exports.MsgCreateValidator = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst grpc_web_1 = require(\"@improbable-eng/grpc-web\");\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst staking_1 = require(\"../../../cosmos/staking/v1beta1/staking\");\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst coin_1 = require(\"../../../cosmos/base/v1beta1/coin\");\nconst browser_headers_1 = require(\"browser-headers\");\nconst timestamp_1 = require(\"../../../google/protobuf/timestamp\");\nexports.protobufPackage = \"cosmos.staking.v1beta1\";\nconst baseMsgCreateValidator = { minSelfDelegation: \"\", delegatorAddress: \"\", validatorAddress: \"\" };\nexports.MsgCreateValidator = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.description !== undefined) {\n staking_1.Description.encode(message.description, writer.uint32(10).fork()).ldelim();\n }\n if (message.commission !== undefined) {\n staking_1.CommissionRates.encode(message.commission, writer.uint32(18).fork()).ldelim();\n }\n if (message.minSelfDelegation !== \"\") {\n writer.uint32(26).string(message.minSelfDelegation);\n }\n if (message.delegatorAddress !== \"\") {\n writer.uint32(34).string(message.delegatorAddress);\n }\n if (message.validatorAddress !== \"\") {\n writer.uint32(42).string(message.validatorAddress);\n }\n if (message.pubkey !== undefined) {\n any_1.Any.encode(message.pubkey, writer.uint32(50).fork()).ldelim();\n }\n if (message.value !== undefined) {\n coin_1.Coin.encode(message.value, writer.uint32(58).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgCreateValidator);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.description = staking_1.Description.decode(reader, reader.uint32());\n break;\n case 2:\n message.commission = staking_1.CommissionRates.decode(reader, reader.uint32());\n break;\n case 3:\n message.minSelfDelegation = reader.string();\n break;\n case 4:\n message.delegatorAddress = reader.string();\n break;\n case 5:\n message.validatorAddress = reader.string();\n break;\n case 6:\n message.pubkey = any_1.Any.decode(reader, reader.uint32());\n break;\n case 7:\n message.value = coin_1.Coin.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgCreateValidator);\n if (object.description !== undefined && object.description !== null) {\n message.description = staking_1.Description.fromJSON(object.description);\n }\n else {\n message.description = undefined;\n }\n if (object.commission !== undefined && object.commission !== null) {\n message.commission = staking_1.CommissionRates.fromJSON(object.commission);\n }\n else {\n message.commission = undefined;\n }\n if (object.minSelfDelegation !== undefined && object.minSelfDelegation !== null) {\n message.minSelfDelegation = String(object.minSelfDelegation);\n }\n else {\n message.minSelfDelegation = \"\";\n }\n if (object.delegatorAddress !== undefined && object.delegatorAddress !== null) {\n message.delegatorAddress = String(object.delegatorAddress);\n }\n else {\n message.delegatorAddress = \"\";\n }\n if (object.validatorAddress !== undefined && object.validatorAddress !== null) {\n message.validatorAddress = String(object.validatorAddress);\n }\n else {\n message.validatorAddress = \"\";\n }\n if (object.pubkey !== undefined && object.pubkey !== null) {\n message.pubkey = any_1.Any.fromJSON(object.pubkey);\n }\n else {\n message.pubkey = undefined;\n }\n if (object.value !== undefined && object.value !== null) {\n message.value = coin_1.Coin.fromJSON(object.value);\n }\n else {\n message.value = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.description !== undefined &&\n (obj.description = message.description ? staking_1.Description.toJSON(message.description) : undefined);\n message.commission !== undefined &&\n (obj.commission = message.commission ? staking_1.CommissionRates.toJSON(message.commission) : undefined);\n message.minSelfDelegation !== undefined && (obj.minSelfDelegation = message.minSelfDelegation);\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n message.pubkey !== undefined && (obj.pubkey = message.pubkey ? any_1.Any.toJSON(message.pubkey) : undefined);\n message.value !== undefined && (obj.value = message.value ? coin_1.Coin.toJSON(message.value) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgCreateValidator);\n if (object.description !== undefined && object.description !== null) {\n message.description = staking_1.Description.fromPartial(object.description);\n }\n else {\n message.description = undefined;\n }\n if (object.commission !== undefined && object.commission !== null) {\n message.commission = staking_1.CommissionRates.fromPartial(object.commission);\n }\n else {\n message.commission = undefined;\n }\n if (object.minSelfDelegation !== undefined && object.minSelfDelegation !== null) {\n message.minSelfDelegation = object.minSelfDelegation;\n }\n else {\n message.minSelfDelegation = \"\";\n }\n if (object.delegatorAddress !== undefined && object.delegatorAddress !== null) {\n message.delegatorAddress = object.delegatorAddress;\n }\n else {\n message.delegatorAddress = \"\";\n }\n if (object.validatorAddress !== undefined && object.validatorAddress !== null) {\n message.validatorAddress = object.validatorAddress;\n }\n else {\n message.validatorAddress = \"\";\n }\n if (object.pubkey !== undefined && object.pubkey !== null) {\n message.pubkey = any_1.Any.fromPartial(object.pubkey);\n }\n else {\n message.pubkey = undefined;\n }\n if (object.value !== undefined && object.value !== null) {\n message.value = coin_1.Coin.fromPartial(object.value);\n }\n else {\n message.value = undefined;\n }\n return message;\n },\n};\nconst baseMsgCreateValidatorResponse = {};\nexports.MsgCreateValidatorResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgCreateValidatorResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgCreateValidatorResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgCreateValidatorResponse);\n return message;\n },\n};\nconst baseMsgEditValidator = { validatorAddress: \"\", commissionRate: \"\", minSelfDelegation: \"\" };\nexports.MsgEditValidator = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.description !== undefined) {\n staking_1.Description.encode(message.description, writer.uint32(10).fork()).ldelim();\n }\n if (message.validatorAddress !== \"\") {\n writer.uint32(18).string(message.validatorAddress);\n }\n if (message.commissionRate !== \"\") {\n writer.uint32(26).string(message.commissionRate);\n }\n if (message.minSelfDelegation !== \"\") {\n writer.uint32(34).string(message.minSelfDelegation);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgEditValidator);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.description = staking_1.Description.decode(reader, reader.uint32());\n break;\n case 2:\n message.validatorAddress = reader.string();\n break;\n case 3:\n message.commissionRate = reader.string();\n break;\n case 4:\n message.minSelfDelegation = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgEditValidator);\n if (object.description !== undefined && object.description !== null) {\n message.description = staking_1.Description.fromJSON(object.description);\n }\n else {\n message.description = undefined;\n }\n if (object.validatorAddress !== undefined && object.validatorAddress !== null) {\n message.validatorAddress = String(object.validatorAddress);\n }\n else {\n message.validatorAddress = \"\";\n }\n if (object.commissionRate !== undefined && object.commissionRate !== null) {\n message.commissionRate = String(object.commissionRate);\n }\n else {\n message.commissionRate = \"\";\n }\n if (object.minSelfDelegation !== undefined && object.minSelfDelegation !== null) {\n message.minSelfDelegation = String(object.minSelfDelegation);\n }\n else {\n message.minSelfDelegation = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.description !== undefined &&\n (obj.description = message.description ? staking_1.Description.toJSON(message.description) : undefined);\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n message.commissionRate !== undefined && (obj.commissionRate = message.commissionRate);\n message.minSelfDelegation !== undefined && (obj.minSelfDelegation = message.minSelfDelegation);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgEditValidator);\n if (object.description !== undefined && object.description !== null) {\n message.description = staking_1.Description.fromPartial(object.description);\n }\n else {\n message.description = undefined;\n }\n if (object.validatorAddress !== undefined && object.validatorAddress !== null) {\n message.validatorAddress = object.validatorAddress;\n }\n else {\n message.validatorAddress = \"\";\n }\n if (object.commissionRate !== undefined && object.commissionRate !== null) {\n message.commissionRate = object.commissionRate;\n }\n else {\n message.commissionRate = \"\";\n }\n if (object.minSelfDelegation !== undefined && object.minSelfDelegation !== null) {\n message.minSelfDelegation = object.minSelfDelegation;\n }\n else {\n message.minSelfDelegation = \"\";\n }\n return message;\n },\n};\nconst baseMsgEditValidatorResponse = {};\nexports.MsgEditValidatorResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgEditValidatorResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgEditValidatorResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgEditValidatorResponse);\n return message;\n },\n};\nconst baseMsgDelegate = { delegatorAddress: \"\", validatorAddress: \"\" };\nexports.MsgDelegate = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.validatorAddress !== \"\") {\n writer.uint32(18).string(message.validatorAddress);\n }\n if (message.amount !== undefined) {\n coin_1.Coin.encode(message.amount, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgDelegate);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.validatorAddress = reader.string();\n break;\n case 3:\n message.amount = coin_1.Coin.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgDelegate);\n if (object.delegatorAddress !== undefined && object.delegatorAddress !== null) {\n message.delegatorAddress = String(object.delegatorAddress);\n }\n else {\n message.delegatorAddress = \"\";\n }\n if (object.validatorAddress !== undefined && object.validatorAddress !== null) {\n message.validatorAddress = String(object.validatorAddress);\n }\n else {\n message.validatorAddress = \"\";\n }\n if (object.amount !== undefined && object.amount !== null) {\n message.amount = coin_1.Coin.fromJSON(object.amount);\n }\n else {\n message.amount = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n message.amount !== undefined && (obj.amount = message.amount ? coin_1.Coin.toJSON(message.amount) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgDelegate);\n if (object.delegatorAddress !== undefined && object.delegatorAddress !== null) {\n message.delegatorAddress = object.delegatorAddress;\n }\n else {\n message.delegatorAddress = \"\";\n }\n if (object.validatorAddress !== undefined && object.validatorAddress !== null) {\n message.validatorAddress = object.validatorAddress;\n }\n else {\n message.validatorAddress = \"\";\n }\n if (object.amount !== undefined && object.amount !== null) {\n message.amount = coin_1.Coin.fromPartial(object.amount);\n }\n else {\n message.amount = undefined;\n }\n return message;\n },\n};\nconst baseMsgDelegateResponse = {};\nexports.MsgDelegateResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgDelegateResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgDelegateResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgDelegateResponse);\n return message;\n },\n};\nconst baseMsgBeginRedelegate = {\n delegatorAddress: \"\",\n validatorSrcAddress: \"\",\n validatorDstAddress: \"\",\n};\nexports.MsgBeginRedelegate = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.validatorSrcAddress !== \"\") {\n writer.uint32(18).string(message.validatorSrcAddress);\n }\n if (message.validatorDstAddress !== \"\") {\n writer.uint32(26).string(message.validatorDstAddress);\n }\n if (message.amount !== undefined) {\n coin_1.Coin.encode(message.amount, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgBeginRedelegate);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.validatorSrcAddress = reader.string();\n break;\n case 3:\n message.validatorDstAddress = reader.string();\n break;\n case 4:\n message.amount = coin_1.Coin.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgBeginRedelegate);\n if (object.delegatorAddress !== undefined && object.delegatorAddress !== null) {\n message.delegatorAddress = String(object.delegatorAddress);\n }\n else {\n message.delegatorAddress = \"\";\n }\n if (object.validatorSrcAddress !== undefined && object.validatorSrcAddress !== null) {\n message.validatorSrcAddress = String(object.validatorSrcAddress);\n }\n else {\n message.validatorSrcAddress = \"\";\n }\n if (object.validatorDstAddress !== undefined && object.validatorDstAddress !== null) {\n message.validatorDstAddress = String(object.validatorDstAddress);\n }\n else {\n message.validatorDstAddress = \"\";\n }\n if (object.amount !== undefined && object.amount !== null) {\n message.amount = coin_1.Coin.fromJSON(object.amount);\n }\n else {\n message.amount = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.validatorSrcAddress !== undefined && (obj.validatorSrcAddress = message.validatorSrcAddress);\n message.validatorDstAddress !== undefined && (obj.validatorDstAddress = message.validatorDstAddress);\n message.amount !== undefined && (obj.amount = message.amount ? coin_1.Coin.toJSON(message.amount) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgBeginRedelegate);\n if (object.delegatorAddress !== undefined && object.delegatorAddress !== null) {\n message.delegatorAddress = object.delegatorAddress;\n }\n else {\n message.delegatorAddress = \"\";\n }\n if (object.validatorSrcAddress !== undefined && object.validatorSrcAddress !== null) {\n message.validatorSrcAddress = object.validatorSrcAddress;\n }\n else {\n message.validatorSrcAddress = \"\";\n }\n if (object.validatorDstAddress !== undefined && object.validatorDstAddress !== null) {\n message.validatorDstAddress = object.validatorDstAddress;\n }\n else {\n message.validatorDstAddress = \"\";\n }\n if (object.amount !== undefined && object.amount !== null) {\n message.amount = coin_1.Coin.fromPartial(object.amount);\n }\n else {\n message.amount = undefined;\n }\n return message;\n },\n};\nconst baseMsgBeginRedelegateResponse = {};\nexports.MsgBeginRedelegateResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.completionTime !== undefined) {\n timestamp_1.Timestamp.encode(toTimestamp(message.completionTime), writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgBeginRedelegateResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.completionTime = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgBeginRedelegateResponse);\n if (object.completionTime !== undefined && object.completionTime !== null) {\n message.completionTime = fromJsonTimestamp(object.completionTime);\n }\n else {\n message.completionTime = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.completionTime !== undefined && (obj.completionTime = message.completionTime.toISOString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgBeginRedelegateResponse);\n if (object.completionTime !== undefined && object.completionTime !== null) {\n message.completionTime = object.completionTime;\n }\n else {\n message.completionTime = undefined;\n }\n return message;\n },\n};\nconst baseMsgUndelegate = { delegatorAddress: \"\", validatorAddress: \"\" };\nexports.MsgUndelegate = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.validatorAddress !== \"\") {\n writer.uint32(18).string(message.validatorAddress);\n }\n if (message.amount !== undefined) {\n coin_1.Coin.encode(message.amount, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgUndelegate);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.validatorAddress = reader.string();\n break;\n case 3:\n message.amount = coin_1.Coin.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgUndelegate);\n if (object.delegatorAddress !== undefined && object.delegatorAddress !== null) {\n message.delegatorAddress = String(object.delegatorAddress);\n }\n else {\n message.delegatorAddress = \"\";\n }\n if (object.validatorAddress !== undefined && object.validatorAddress !== null) {\n message.validatorAddress = String(object.validatorAddress);\n }\n else {\n message.validatorAddress = \"\";\n }\n if (object.amount !== undefined && object.amount !== null) {\n message.amount = coin_1.Coin.fromJSON(object.amount);\n }\n else {\n message.amount = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n message.amount !== undefined && (obj.amount = message.amount ? coin_1.Coin.toJSON(message.amount) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgUndelegate);\n if (object.delegatorAddress !== undefined && object.delegatorAddress !== null) {\n message.delegatorAddress = object.delegatorAddress;\n }\n else {\n message.delegatorAddress = \"\";\n }\n if (object.validatorAddress !== undefined && object.validatorAddress !== null) {\n message.validatorAddress = object.validatorAddress;\n }\n else {\n message.validatorAddress = \"\";\n }\n if (object.amount !== undefined && object.amount !== null) {\n message.amount = coin_1.Coin.fromPartial(object.amount);\n }\n else {\n message.amount = undefined;\n }\n return message;\n },\n};\nconst baseMsgUndelegateResponse = {};\nexports.MsgUndelegateResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.completionTime !== undefined) {\n timestamp_1.Timestamp.encode(toTimestamp(message.completionTime), writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgUndelegateResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.completionTime = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgUndelegateResponse);\n if (object.completionTime !== undefined && object.completionTime !== null) {\n message.completionTime = fromJsonTimestamp(object.completionTime);\n }\n else {\n message.completionTime = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.completionTime !== undefined && (obj.completionTime = message.completionTime.toISOString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgUndelegateResponse);\n if (object.completionTime !== undefined && object.completionTime !== null) {\n message.completionTime = object.completionTime;\n }\n else {\n message.completionTime = undefined;\n }\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.CreateValidator = this.CreateValidator.bind(this);\n this.EditValidator = this.EditValidator.bind(this);\n this.Delegate = this.Delegate.bind(this);\n this.BeginRedelegate = this.BeginRedelegate.bind(this);\n this.Undelegate = this.Undelegate.bind(this);\n }\n CreateValidator(request, metadata) {\n return this.rpc.unary(exports.MsgCreateValidatorDesc, exports.MsgCreateValidator.fromPartial(request), metadata);\n }\n EditValidator(request, metadata) {\n return this.rpc.unary(exports.MsgEditValidatorDesc, exports.MsgEditValidator.fromPartial(request), metadata);\n }\n Delegate(request, metadata) {\n return this.rpc.unary(exports.MsgDelegateDesc, exports.MsgDelegate.fromPartial(request), metadata);\n }\n BeginRedelegate(request, metadata) {\n return this.rpc.unary(exports.MsgBeginRedelegateDesc, exports.MsgBeginRedelegate.fromPartial(request), metadata);\n }\n Undelegate(request, metadata) {\n return this.rpc.unary(exports.MsgUndelegateDesc, exports.MsgUndelegate.fromPartial(request), metadata);\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\nexports.MsgDesc = {\n serviceName: \"cosmos.staking.v1beta1.Msg\",\n};\nexports.MsgCreateValidatorDesc = {\n methodName: \"CreateValidator\",\n service: exports.MsgDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.MsgCreateValidator.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.MsgCreateValidatorResponse.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nexports.MsgEditValidatorDesc = {\n methodName: \"EditValidator\",\n service: exports.MsgDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.MsgEditValidator.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.MsgEditValidatorResponse.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nexports.MsgDelegateDesc = {\n methodName: \"Delegate\",\n service: exports.MsgDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.MsgDelegate.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.MsgDelegateResponse.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nexports.MsgBeginRedelegateDesc = {\n methodName: \"BeginRedelegate\",\n service: exports.MsgDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.MsgBeginRedelegate.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.MsgBeginRedelegateResponse.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nexports.MsgUndelegateDesc = {\n methodName: \"Undelegate\",\n service: exports.MsgDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.MsgUndelegate.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.MsgUndelegateResponse.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nclass GrpcWebImpl {\n constructor(host, options) {\n this.host = host;\n this.options = options;\n }\n unary(methodDesc, _request, metadata) {\n var _a;\n const request = Object.assign(Object.assign({}, _request), methodDesc.requestType);\n const maybeCombinedMetadata = metadata && this.options.metadata\n ? new browser_headers_1.BrowserHeaders(Object.assign(Object.assign({}, (_a = this.options) === null || _a === void 0 ? void 0 : _a.metadata.headersMap), metadata === null || metadata === void 0 ? void 0 : metadata.headersMap))\n : metadata || this.options.metadata;\n return new Promise((resolve, reject) => {\n grpc_web_1.grpc.unary(methodDesc, {\n request,\n host: this.host,\n metadata: maybeCombinedMetadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (response.status === grpc_web_1.grpc.Code.OK) {\n resolve(response.message);\n }\n else {\n const err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n reject(err);\n }\n },\n });\n });\n }\n}\nexports.GrpcWebImpl = GrpcWebImpl;\nfunction toTimestamp(date) {\n const seconds = numberToLong(date.getTime() / 1000);\n const nanos = (date.getTime() % 1000) * 1000000;\n return { seconds, nanos };\n}\nfunction fromTimestamp(t) {\n let millis = t.seconds.toNumber() * 1000;\n millis += t.nanos / 1000000;\n return new Date(millis);\n}\nfunction fromJsonTimestamp(o) {\n if (o instanceof Date) {\n return o;\n }\n else if (typeof o === \"string\") {\n return new Date(o);\n }\n else {\n return fromTimestamp(timestamp_1.Timestamp.fromJSON(o));\n }\n}\nfunction numberToLong(number) {\n return long_1.default.fromNumber(number);\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=tx.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SignatureDescriptor_Data_Multi = exports.SignatureDescriptor_Data_Single = exports.SignatureDescriptor_Data = exports.SignatureDescriptor = exports.SignatureDescriptors = exports.signModeToJSON = exports.signModeFromJSON = exports.SignMode = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst any_1 = require(\"../../../../google/protobuf/any\");\nconst multisig_1 = require(\"../../../../cosmos/crypto/multisig/v1beta1/multisig\");\nexports.protobufPackage = \"cosmos.tx.signing.v1beta1\";\n/** SignMode represents a signing mode with its own security guarantees. */\nvar SignMode;\n(function (SignMode) {\n /**\n * SIGN_MODE_UNSPECIFIED - SIGN_MODE_UNSPECIFIED specifies an unknown signing mode and will be\n * rejected\n */\n SignMode[SignMode[\"SIGN_MODE_UNSPECIFIED\"] = 0] = \"SIGN_MODE_UNSPECIFIED\";\n /**\n * SIGN_MODE_DIRECT - SIGN_MODE_DIRECT specifies a signing mode which uses SignDoc and is\n * verified with raw bytes from Tx\n */\n SignMode[SignMode[\"SIGN_MODE_DIRECT\"] = 1] = \"SIGN_MODE_DIRECT\";\n /**\n * SIGN_MODE_TEXTUAL - SIGN_MODE_TEXTUAL is a future signing mode that will verify some\n * human-readable textual representation on top of the binary representation\n * from SIGN_MODE_DIRECT\n */\n SignMode[SignMode[\"SIGN_MODE_TEXTUAL\"] = 2] = \"SIGN_MODE_TEXTUAL\";\n /**\n * SIGN_MODE_LEGACY_AMINO_JSON - SIGN_MODE_LEGACY_AMINO_JSON is a backwards compatibility mode which uses\n * Amino JSON and will be removed in the future\n */\n SignMode[SignMode[\"SIGN_MODE_LEGACY_AMINO_JSON\"] = 127] = \"SIGN_MODE_LEGACY_AMINO_JSON\";\n /**\n * SIGN_MODE_EIP_191 - SIGN_MODE_EIP_191 specifies the sign mode for EIP 191 signing on the Cosmos\n * SDK. Ref: https://eips.ethereum.org/EIPS/eip-191\n *\n * Currently, SIGN_MODE_EIP_191 is registered as a SignMode enum variant,\n * but is not implemented on the SDK by default. To enable EIP-191, you need\n * to pass a custom `TxConfig` that has an implementation of\n * `SignModeHandler` for EIP-191. The SDK may decide to fully support\n * EIP-191 in the future.\n *\n * Since: cosmos-sdk 0.45.2\n */\n SignMode[SignMode[\"SIGN_MODE_EIP_191\"] = 191] = \"SIGN_MODE_EIP_191\";\n SignMode[SignMode[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(SignMode = exports.SignMode || (exports.SignMode = {}));\nfunction signModeFromJSON(object) {\n switch (object) {\n case 0:\n case \"SIGN_MODE_UNSPECIFIED\":\n return SignMode.SIGN_MODE_UNSPECIFIED;\n case 1:\n case \"SIGN_MODE_DIRECT\":\n return SignMode.SIGN_MODE_DIRECT;\n case 2:\n case \"SIGN_MODE_TEXTUAL\":\n return SignMode.SIGN_MODE_TEXTUAL;\n case 127:\n case \"SIGN_MODE_LEGACY_AMINO_JSON\":\n return SignMode.SIGN_MODE_LEGACY_AMINO_JSON;\n case 191:\n case \"SIGN_MODE_EIP_191\":\n return SignMode.SIGN_MODE_EIP_191;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return SignMode.UNRECOGNIZED;\n }\n}\nexports.signModeFromJSON = signModeFromJSON;\nfunction signModeToJSON(object) {\n switch (object) {\n case SignMode.SIGN_MODE_UNSPECIFIED:\n return \"SIGN_MODE_UNSPECIFIED\";\n case SignMode.SIGN_MODE_DIRECT:\n return \"SIGN_MODE_DIRECT\";\n case SignMode.SIGN_MODE_TEXTUAL:\n return \"SIGN_MODE_TEXTUAL\";\n case SignMode.SIGN_MODE_LEGACY_AMINO_JSON:\n return \"SIGN_MODE_LEGACY_AMINO_JSON\";\n case SignMode.SIGN_MODE_EIP_191:\n return \"SIGN_MODE_EIP_191\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.signModeToJSON = signModeToJSON;\nconst baseSignatureDescriptors = {};\nexports.SignatureDescriptors = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.signatures) {\n exports.SignatureDescriptor.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSignatureDescriptors);\n message.signatures = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.signatures.push(exports.SignatureDescriptor.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseSignatureDescriptors);\n message.signatures = [];\n if (object.signatures !== undefined && object.signatures !== null) {\n for (const e of object.signatures) {\n message.signatures.push(exports.SignatureDescriptor.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.signatures) {\n obj.signatures = message.signatures.map((e) => (e ? exports.SignatureDescriptor.toJSON(e) : undefined));\n }\n else {\n obj.signatures = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseSignatureDescriptors);\n message.signatures = [];\n if (object.signatures !== undefined && object.signatures !== null) {\n for (const e of object.signatures) {\n message.signatures.push(exports.SignatureDescriptor.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseSignatureDescriptor = { sequence: long_1.default.UZERO };\nexports.SignatureDescriptor = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.publicKey !== undefined) {\n any_1.Any.encode(message.publicKey, writer.uint32(10).fork()).ldelim();\n }\n if (message.data !== undefined) {\n exports.SignatureDescriptor_Data.encode(message.data, writer.uint32(18).fork()).ldelim();\n }\n if (!message.sequence.isZero()) {\n writer.uint32(24).uint64(message.sequence);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSignatureDescriptor);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.publicKey = any_1.Any.decode(reader, reader.uint32());\n break;\n case 2:\n message.data = exports.SignatureDescriptor_Data.decode(reader, reader.uint32());\n break;\n case 3:\n message.sequence = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseSignatureDescriptor);\n if (object.publicKey !== undefined && object.publicKey !== null) {\n message.publicKey = any_1.Any.fromJSON(object.publicKey);\n }\n else {\n message.publicKey = undefined;\n }\n if (object.data !== undefined && object.data !== null) {\n message.data = exports.SignatureDescriptor_Data.fromJSON(object.data);\n }\n else {\n message.data = undefined;\n }\n if (object.sequence !== undefined && object.sequence !== null) {\n message.sequence = long_1.default.fromString(object.sequence);\n }\n else {\n message.sequence = long_1.default.UZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.publicKey !== undefined &&\n (obj.publicKey = message.publicKey ? any_1.Any.toJSON(message.publicKey) : undefined);\n message.data !== undefined &&\n (obj.data = message.data ? exports.SignatureDescriptor_Data.toJSON(message.data) : undefined);\n message.sequence !== undefined && (obj.sequence = (message.sequence || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseSignatureDescriptor);\n if (object.publicKey !== undefined && object.publicKey !== null) {\n message.publicKey = any_1.Any.fromPartial(object.publicKey);\n }\n else {\n message.publicKey = undefined;\n }\n if (object.data !== undefined && object.data !== null) {\n message.data = exports.SignatureDescriptor_Data.fromPartial(object.data);\n }\n else {\n message.data = undefined;\n }\n if (object.sequence !== undefined && object.sequence !== null) {\n message.sequence = object.sequence;\n }\n else {\n message.sequence = long_1.default.UZERO;\n }\n return message;\n },\n};\nconst baseSignatureDescriptor_Data = {};\nexports.SignatureDescriptor_Data = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.single !== undefined) {\n exports.SignatureDescriptor_Data_Single.encode(message.single, writer.uint32(10).fork()).ldelim();\n }\n if (message.multi !== undefined) {\n exports.SignatureDescriptor_Data_Multi.encode(message.multi, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSignatureDescriptor_Data);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.single = exports.SignatureDescriptor_Data_Single.decode(reader, reader.uint32());\n break;\n case 2:\n message.multi = exports.SignatureDescriptor_Data_Multi.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseSignatureDescriptor_Data);\n if (object.single !== undefined && object.single !== null) {\n message.single = exports.SignatureDescriptor_Data_Single.fromJSON(object.single);\n }\n else {\n message.single = undefined;\n }\n if (object.multi !== undefined && object.multi !== null) {\n message.multi = exports.SignatureDescriptor_Data_Multi.fromJSON(object.multi);\n }\n else {\n message.multi = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.single !== undefined &&\n (obj.single = message.single ? exports.SignatureDescriptor_Data_Single.toJSON(message.single) : undefined);\n message.multi !== undefined &&\n (obj.multi = message.multi ? exports.SignatureDescriptor_Data_Multi.toJSON(message.multi) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseSignatureDescriptor_Data);\n if (object.single !== undefined && object.single !== null) {\n message.single = exports.SignatureDescriptor_Data_Single.fromPartial(object.single);\n }\n else {\n message.single = undefined;\n }\n if (object.multi !== undefined && object.multi !== null) {\n message.multi = exports.SignatureDescriptor_Data_Multi.fromPartial(object.multi);\n }\n else {\n message.multi = undefined;\n }\n return message;\n },\n};\nconst baseSignatureDescriptor_Data_Single = { mode: 0 };\nexports.SignatureDescriptor_Data_Single = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.mode !== 0) {\n writer.uint32(8).int32(message.mode);\n }\n if (message.signature.length !== 0) {\n writer.uint32(18).bytes(message.signature);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSignatureDescriptor_Data_Single);\n message.signature = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.mode = reader.int32();\n break;\n case 2:\n message.signature = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseSignatureDescriptor_Data_Single);\n message.signature = new Uint8Array();\n if (object.mode !== undefined && object.mode !== null) {\n message.mode = signModeFromJSON(object.mode);\n }\n else {\n message.mode = 0;\n }\n if (object.signature !== undefined && object.signature !== null) {\n message.signature = bytesFromBase64(object.signature);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.mode !== undefined && (obj.mode = signModeToJSON(message.mode));\n message.signature !== undefined &&\n (obj.signature = base64FromBytes(message.signature !== undefined ? message.signature : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseSignatureDescriptor_Data_Single);\n if (object.mode !== undefined && object.mode !== null) {\n message.mode = object.mode;\n }\n else {\n message.mode = 0;\n }\n if (object.signature !== undefined && object.signature !== null) {\n message.signature = object.signature;\n }\n else {\n message.signature = new Uint8Array();\n }\n return message;\n },\n};\nconst baseSignatureDescriptor_Data_Multi = {};\nexports.SignatureDescriptor_Data_Multi = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.bitarray !== undefined) {\n multisig_1.CompactBitArray.encode(message.bitarray, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.signatures) {\n exports.SignatureDescriptor_Data.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSignatureDescriptor_Data_Multi);\n message.signatures = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.bitarray = multisig_1.CompactBitArray.decode(reader, reader.uint32());\n break;\n case 2:\n message.signatures.push(exports.SignatureDescriptor_Data.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseSignatureDescriptor_Data_Multi);\n message.signatures = [];\n if (object.bitarray !== undefined && object.bitarray !== null) {\n message.bitarray = multisig_1.CompactBitArray.fromJSON(object.bitarray);\n }\n else {\n message.bitarray = undefined;\n }\n if (object.signatures !== undefined && object.signatures !== null) {\n for (const e of object.signatures) {\n message.signatures.push(exports.SignatureDescriptor_Data.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.bitarray !== undefined &&\n (obj.bitarray = message.bitarray ? multisig_1.CompactBitArray.toJSON(message.bitarray) : undefined);\n if (message.signatures) {\n obj.signatures = message.signatures.map((e) => (e ? exports.SignatureDescriptor_Data.toJSON(e) : undefined));\n }\n else {\n obj.signatures = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseSignatureDescriptor_Data_Multi);\n message.signatures = [];\n if (object.bitarray !== undefined && object.bitarray !== null) {\n message.bitarray = multisig_1.CompactBitArray.fromPartial(object.bitarray);\n }\n else {\n message.bitarray = undefined;\n }\n if (object.signatures !== undefined && object.signatures !== null) {\n for (const e of object.signatures) {\n message.signatures.push(exports.SignatureDescriptor_Data.fromPartial(e));\n }\n }\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=signing.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Fee = exports.ModeInfo_Multi = exports.ModeInfo_Single = exports.ModeInfo = exports.SignerInfo = exports.AuthInfo = exports.TxBody = exports.SignDoc = exports.TxRaw = exports.Tx = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst signing_1 = require(\"../../../cosmos/tx/signing/v1beta1/signing\");\nconst multisig_1 = require(\"../../../cosmos/crypto/multisig/v1beta1/multisig\");\nconst coin_1 = require(\"../../../cosmos/base/v1beta1/coin\");\nexports.protobufPackage = \"cosmos.tx.v1beta1\";\nconst baseTx = {};\nexports.Tx = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.body !== undefined) {\n exports.TxBody.encode(message.body, writer.uint32(10).fork()).ldelim();\n }\n if (message.authInfo !== undefined) {\n exports.AuthInfo.encode(message.authInfo, writer.uint32(18).fork()).ldelim();\n }\n for (const v of message.signatures) {\n writer.uint32(26).bytes(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseTx);\n message.signatures = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.body = exports.TxBody.decode(reader, reader.uint32());\n break;\n case 2:\n message.authInfo = exports.AuthInfo.decode(reader, reader.uint32());\n break;\n case 3:\n message.signatures.push(reader.bytes());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseTx);\n message.signatures = [];\n if (object.body !== undefined && object.body !== null) {\n message.body = exports.TxBody.fromJSON(object.body);\n }\n else {\n message.body = undefined;\n }\n if (object.authInfo !== undefined && object.authInfo !== null) {\n message.authInfo = exports.AuthInfo.fromJSON(object.authInfo);\n }\n else {\n message.authInfo = undefined;\n }\n if (object.signatures !== undefined && object.signatures !== null) {\n for (const e of object.signatures) {\n message.signatures.push(bytesFromBase64(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.body !== undefined && (obj.body = message.body ? exports.TxBody.toJSON(message.body) : undefined);\n message.authInfo !== undefined &&\n (obj.authInfo = message.authInfo ? exports.AuthInfo.toJSON(message.authInfo) : undefined);\n if (message.signatures) {\n obj.signatures = message.signatures.map((e) => base64FromBytes(e !== undefined ? e : new Uint8Array()));\n }\n else {\n obj.signatures = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseTx);\n message.signatures = [];\n if (object.body !== undefined && object.body !== null) {\n message.body = exports.TxBody.fromPartial(object.body);\n }\n else {\n message.body = undefined;\n }\n if (object.authInfo !== undefined && object.authInfo !== null) {\n message.authInfo = exports.AuthInfo.fromPartial(object.authInfo);\n }\n else {\n message.authInfo = undefined;\n }\n if (object.signatures !== undefined && object.signatures !== null) {\n for (const e of object.signatures) {\n message.signatures.push(e);\n }\n }\n return message;\n },\n};\nconst baseTxRaw = {};\nexports.TxRaw = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.bodyBytes.length !== 0) {\n writer.uint32(10).bytes(message.bodyBytes);\n }\n if (message.authInfoBytes.length !== 0) {\n writer.uint32(18).bytes(message.authInfoBytes);\n }\n for (const v of message.signatures) {\n writer.uint32(26).bytes(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseTxRaw);\n message.signatures = [];\n message.bodyBytes = new Uint8Array();\n message.authInfoBytes = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.bodyBytes = reader.bytes();\n break;\n case 2:\n message.authInfoBytes = reader.bytes();\n break;\n case 3:\n message.signatures.push(reader.bytes());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseTxRaw);\n message.signatures = [];\n message.bodyBytes = new Uint8Array();\n message.authInfoBytes = new Uint8Array();\n if (object.bodyBytes !== undefined && object.bodyBytes !== null) {\n message.bodyBytes = bytesFromBase64(object.bodyBytes);\n }\n if (object.authInfoBytes !== undefined && object.authInfoBytes !== null) {\n message.authInfoBytes = bytesFromBase64(object.authInfoBytes);\n }\n if (object.signatures !== undefined && object.signatures !== null) {\n for (const e of object.signatures) {\n message.signatures.push(bytesFromBase64(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.bodyBytes !== undefined &&\n (obj.bodyBytes = base64FromBytes(message.bodyBytes !== undefined ? message.bodyBytes : new Uint8Array()));\n message.authInfoBytes !== undefined &&\n (obj.authInfoBytes = base64FromBytes(message.authInfoBytes !== undefined ? message.authInfoBytes : new Uint8Array()));\n if (message.signatures) {\n obj.signatures = message.signatures.map((e) => base64FromBytes(e !== undefined ? e : new Uint8Array()));\n }\n else {\n obj.signatures = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseTxRaw);\n message.signatures = [];\n if (object.bodyBytes !== undefined && object.bodyBytes !== null) {\n message.bodyBytes = object.bodyBytes;\n }\n else {\n message.bodyBytes = new Uint8Array();\n }\n if (object.authInfoBytes !== undefined && object.authInfoBytes !== null) {\n message.authInfoBytes = object.authInfoBytes;\n }\n else {\n message.authInfoBytes = new Uint8Array();\n }\n if (object.signatures !== undefined && object.signatures !== null) {\n for (const e of object.signatures) {\n message.signatures.push(e);\n }\n }\n return message;\n },\n};\nconst baseSignDoc = { chainId: \"\", accountNumber: long_1.default.UZERO };\nexports.SignDoc = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.bodyBytes.length !== 0) {\n writer.uint32(10).bytes(message.bodyBytes);\n }\n if (message.authInfoBytes.length !== 0) {\n writer.uint32(18).bytes(message.authInfoBytes);\n }\n if (message.chainId !== \"\") {\n writer.uint32(26).string(message.chainId);\n }\n if (!message.accountNumber.isZero()) {\n writer.uint32(32).uint64(message.accountNumber);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSignDoc);\n message.bodyBytes = new Uint8Array();\n message.authInfoBytes = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.bodyBytes = reader.bytes();\n break;\n case 2:\n message.authInfoBytes = reader.bytes();\n break;\n case 3:\n message.chainId = reader.string();\n break;\n case 4:\n message.accountNumber = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseSignDoc);\n message.bodyBytes = new Uint8Array();\n message.authInfoBytes = new Uint8Array();\n if (object.bodyBytes !== undefined && object.bodyBytes !== null) {\n message.bodyBytes = bytesFromBase64(object.bodyBytes);\n }\n if (object.authInfoBytes !== undefined && object.authInfoBytes !== null) {\n message.authInfoBytes = bytesFromBase64(object.authInfoBytes);\n }\n if (object.chainId !== undefined && object.chainId !== null) {\n message.chainId = String(object.chainId);\n }\n else {\n message.chainId = \"\";\n }\n if (object.accountNumber !== undefined && object.accountNumber !== null) {\n message.accountNumber = long_1.default.fromString(object.accountNumber);\n }\n else {\n message.accountNumber = long_1.default.UZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.bodyBytes !== undefined &&\n (obj.bodyBytes = base64FromBytes(message.bodyBytes !== undefined ? message.bodyBytes : new Uint8Array()));\n message.authInfoBytes !== undefined &&\n (obj.authInfoBytes = base64FromBytes(message.authInfoBytes !== undefined ? message.authInfoBytes : new Uint8Array()));\n message.chainId !== undefined && (obj.chainId = message.chainId);\n message.accountNumber !== undefined &&\n (obj.accountNumber = (message.accountNumber || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseSignDoc);\n if (object.bodyBytes !== undefined && object.bodyBytes !== null) {\n message.bodyBytes = object.bodyBytes;\n }\n else {\n message.bodyBytes = new Uint8Array();\n }\n if (object.authInfoBytes !== undefined && object.authInfoBytes !== null) {\n message.authInfoBytes = object.authInfoBytes;\n }\n else {\n message.authInfoBytes = new Uint8Array();\n }\n if (object.chainId !== undefined && object.chainId !== null) {\n message.chainId = object.chainId;\n }\n else {\n message.chainId = \"\";\n }\n if (object.accountNumber !== undefined && object.accountNumber !== null) {\n message.accountNumber = object.accountNumber;\n }\n else {\n message.accountNumber = long_1.default.UZERO;\n }\n return message;\n },\n};\nconst baseTxBody = { memo: \"\", timeoutHeight: long_1.default.UZERO };\nexports.TxBody = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.messages) {\n any_1.Any.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.memo !== \"\") {\n writer.uint32(18).string(message.memo);\n }\n if (!message.timeoutHeight.isZero()) {\n writer.uint32(24).uint64(message.timeoutHeight);\n }\n for (const v of message.extensionOptions) {\n any_1.Any.encode(v, writer.uint32(8186).fork()).ldelim();\n }\n for (const v of message.nonCriticalExtensionOptions) {\n any_1.Any.encode(v, writer.uint32(16378).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseTxBody);\n message.messages = [];\n message.extensionOptions = [];\n message.nonCriticalExtensionOptions = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.messages.push(any_1.Any.decode(reader, reader.uint32()));\n break;\n case 2:\n message.memo = reader.string();\n break;\n case 3:\n message.timeoutHeight = reader.uint64();\n break;\n case 1023:\n message.extensionOptions.push(any_1.Any.decode(reader, reader.uint32()));\n break;\n case 2047:\n message.nonCriticalExtensionOptions.push(any_1.Any.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseTxBody);\n message.messages = [];\n message.extensionOptions = [];\n message.nonCriticalExtensionOptions = [];\n if (object.messages !== undefined && object.messages !== null) {\n for (const e of object.messages) {\n message.messages.push(any_1.Any.fromJSON(e));\n }\n }\n if (object.memo !== undefined && object.memo !== null) {\n message.memo = String(object.memo);\n }\n else {\n message.memo = \"\";\n }\n if (object.timeoutHeight !== undefined && object.timeoutHeight !== null) {\n message.timeoutHeight = long_1.default.fromString(object.timeoutHeight);\n }\n else {\n message.timeoutHeight = long_1.default.UZERO;\n }\n if (object.extensionOptions !== undefined && object.extensionOptions !== null) {\n for (const e of object.extensionOptions) {\n message.extensionOptions.push(any_1.Any.fromJSON(e));\n }\n }\n if (object.nonCriticalExtensionOptions !== undefined && object.nonCriticalExtensionOptions !== null) {\n for (const e of object.nonCriticalExtensionOptions) {\n message.nonCriticalExtensionOptions.push(any_1.Any.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.messages) {\n obj.messages = message.messages.map((e) => (e ? any_1.Any.toJSON(e) : undefined));\n }\n else {\n obj.messages = [];\n }\n message.memo !== undefined && (obj.memo = message.memo);\n message.timeoutHeight !== undefined &&\n (obj.timeoutHeight = (message.timeoutHeight || long_1.default.UZERO).toString());\n if (message.extensionOptions) {\n obj.extensionOptions = message.extensionOptions.map((e) => (e ? any_1.Any.toJSON(e) : undefined));\n }\n else {\n obj.extensionOptions = [];\n }\n if (message.nonCriticalExtensionOptions) {\n obj.nonCriticalExtensionOptions = message.nonCriticalExtensionOptions.map((e) => e ? any_1.Any.toJSON(e) : undefined);\n }\n else {\n obj.nonCriticalExtensionOptions = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseTxBody);\n message.messages = [];\n message.extensionOptions = [];\n message.nonCriticalExtensionOptions = [];\n if (object.messages !== undefined && object.messages !== null) {\n for (const e of object.messages) {\n message.messages.push(any_1.Any.fromPartial(e));\n }\n }\n if (object.memo !== undefined && object.memo !== null) {\n message.memo = object.memo;\n }\n else {\n message.memo = \"\";\n }\n if (object.timeoutHeight !== undefined && object.timeoutHeight !== null) {\n message.timeoutHeight = object.timeoutHeight;\n }\n else {\n message.timeoutHeight = long_1.default.UZERO;\n }\n if (object.extensionOptions !== undefined && object.extensionOptions !== null) {\n for (const e of object.extensionOptions) {\n message.extensionOptions.push(any_1.Any.fromPartial(e));\n }\n }\n if (object.nonCriticalExtensionOptions !== undefined && object.nonCriticalExtensionOptions !== null) {\n for (const e of object.nonCriticalExtensionOptions) {\n message.nonCriticalExtensionOptions.push(any_1.Any.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseAuthInfo = {};\nexports.AuthInfo = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.signerInfos) {\n exports.SignerInfo.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.fee !== undefined) {\n exports.Fee.encode(message.fee, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseAuthInfo);\n message.signerInfos = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.signerInfos.push(exports.SignerInfo.decode(reader, reader.uint32()));\n break;\n case 2:\n message.fee = exports.Fee.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseAuthInfo);\n message.signerInfos = [];\n if (object.signerInfos !== undefined && object.signerInfos !== null) {\n for (const e of object.signerInfos) {\n message.signerInfos.push(exports.SignerInfo.fromJSON(e));\n }\n }\n if (object.fee !== undefined && object.fee !== null) {\n message.fee = exports.Fee.fromJSON(object.fee);\n }\n else {\n message.fee = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.signerInfos) {\n obj.signerInfos = message.signerInfos.map((e) => (e ? exports.SignerInfo.toJSON(e) : undefined));\n }\n else {\n obj.signerInfos = [];\n }\n message.fee !== undefined && (obj.fee = message.fee ? exports.Fee.toJSON(message.fee) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseAuthInfo);\n message.signerInfos = [];\n if (object.signerInfos !== undefined && object.signerInfos !== null) {\n for (const e of object.signerInfos) {\n message.signerInfos.push(exports.SignerInfo.fromPartial(e));\n }\n }\n if (object.fee !== undefined && object.fee !== null) {\n message.fee = exports.Fee.fromPartial(object.fee);\n }\n else {\n message.fee = undefined;\n }\n return message;\n },\n};\nconst baseSignerInfo = { sequence: long_1.default.UZERO };\nexports.SignerInfo = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.publicKey !== undefined) {\n any_1.Any.encode(message.publicKey, writer.uint32(10).fork()).ldelim();\n }\n if (message.modeInfo !== undefined) {\n exports.ModeInfo.encode(message.modeInfo, writer.uint32(18).fork()).ldelim();\n }\n if (!message.sequence.isZero()) {\n writer.uint32(24).uint64(message.sequence);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSignerInfo);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.publicKey = any_1.Any.decode(reader, reader.uint32());\n break;\n case 2:\n message.modeInfo = exports.ModeInfo.decode(reader, reader.uint32());\n break;\n case 3:\n message.sequence = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseSignerInfo);\n if (object.publicKey !== undefined && object.publicKey !== null) {\n message.publicKey = any_1.Any.fromJSON(object.publicKey);\n }\n else {\n message.publicKey = undefined;\n }\n if (object.modeInfo !== undefined && object.modeInfo !== null) {\n message.modeInfo = exports.ModeInfo.fromJSON(object.modeInfo);\n }\n else {\n message.modeInfo = undefined;\n }\n if (object.sequence !== undefined && object.sequence !== null) {\n message.sequence = long_1.default.fromString(object.sequence);\n }\n else {\n message.sequence = long_1.default.UZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.publicKey !== undefined &&\n (obj.publicKey = message.publicKey ? any_1.Any.toJSON(message.publicKey) : undefined);\n message.modeInfo !== undefined &&\n (obj.modeInfo = message.modeInfo ? exports.ModeInfo.toJSON(message.modeInfo) : undefined);\n message.sequence !== undefined && (obj.sequence = (message.sequence || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseSignerInfo);\n if (object.publicKey !== undefined && object.publicKey !== null) {\n message.publicKey = any_1.Any.fromPartial(object.publicKey);\n }\n else {\n message.publicKey = undefined;\n }\n if (object.modeInfo !== undefined && object.modeInfo !== null) {\n message.modeInfo = exports.ModeInfo.fromPartial(object.modeInfo);\n }\n else {\n message.modeInfo = undefined;\n }\n if (object.sequence !== undefined && object.sequence !== null) {\n message.sequence = object.sequence;\n }\n else {\n message.sequence = long_1.default.UZERO;\n }\n return message;\n },\n};\nconst baseModeInfo = {};\nexports.ModeInfo = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.single !== undefined) {\n exports.ModeInfo_Single.encode(message.single, writer.uint32(10).fork()).ldelim();\n }\n if (message.multi !== undefined) {\n exports.ModeInfo_Multi.encode(message.multi, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseModeInfo);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.single = exports.ModeInfo_Single.decode(reader, reader.uint32());\n break;\n case 2:\n message.multi = exports.ModeInfo_Multi.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseModeInfo);\n if (object.single !== undefined && object.single !== null) {\n message.single = exports.ModeInfo_Single.fromJSON(object.single);\n }\n else {\n message.single = undefined;\n }\n if (object.multi !== undefined && object.multi !== null) {\n message.multi = exports.ModeInfo_Multi.fromJSON(object.multi);\n }\n else {\n message.multi = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.single !== undefined &&\n (obj.single = message.single ? exports.ModeInfo_Single.toJSON(message.single) : undefined);\n message.multi !== undefined &&\n (obj.multi = message.multi ? exports.ModeInfo_Multi.toJSON(message.multi) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseModeInfo);\n if (object.single !== undefined && object.single !== null) {\n message.single = exports.ModeInfo_Single.fromPartial(object.single);\n }\n else {\n message.single = undefined;\n }\n if (object.multi !== undefined && object.multi !== null) {\n message.multi = exports.ModeInfo_Multi.fromPartial(object.multi);\n }\n else {\n message.multi = undefined;\n }\n return message;\n },\n};\nconst baseModeInfo_Single = { mode: 0 };\nexports.ModeInfo_Single = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.mode !== 0) {\n writer.uint32(8).int32(message.mode);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseModeInfo_Single);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.mode = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseModeInfo_Single);\n if (object.mode !== undefined && object.mode !== null) {\n message.mode = signing_1.signModeFromJSON(object.mode);\n }\n else {\n message.mode = 0;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.mode !== undefined && (obj.mode = signing_1.signModeToJSON(message.mode));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseModeInfo_Single);\n if (object.mode !== undefined && object.mode !== null) {\n message.mode = object.mode;\n }\n else {\n message.mode = 0;\n }\n return message;\n },\n};\nconst baseModeInfo_Multi = {};\nexports.ModeInfo_Multi = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.bitarray !== undefined) {\n multisig_1.CompactBitArray.encode(message.bitarray, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.modeInfos) {\n exports.ModeInfo.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseModeInfo_Multi);\n message.modeInfos = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.bitarray = multisig_1.CompactBitArray.decode(reader, reader.uint32());\n break;\n case 2:\n message.modeInfos.push(exports.ModeInfo.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseModeInfo_Multi);\n message.modeInfos = [];\n if (object.bitarray !== undefined && object.bitarray !== null) {\n message.bitarray = multisig_1.CompactBitArray.fromJSON(object.bitarray);\n }\n else {\n message.bitarray = undefined;\n }\n if (object.modeInfos !== undefined && object.modeInfos !== null) {\n for (const e of object.modeInfos) {\n message.modeInfos.push(exports.ModeInfo.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.bitarray !== undefined &&\n (obj.bitarray = message.bitarray ? multisig_1.CompactBitArray.toJSON(message.bitarray) : undefined);\n if (message.modeInfos) {\n obj.modeInfos = message.modeInfos.map((e) => (e ? exports.ModeInfo.toJSON(e) : undefined));\n }\n else {\n obj.modeInfos = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseModeInfo_Multi);\n message.modeInfos = [];\n if (object.bitarray !== undefined && object.bitarray !== null) {\n message.bitarray = multisig_1.CompactBitArray.fromPartial(object.bitarray);\n }\n else {\n message.bitarray = undefined;\n }\n if (object.modeInfos !== undefined && object.modeInfos !== null) {\n for (const e of object.modeInfos) {\n message.modeInfos.push(exports.ModeInfo.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseFee = { gasLimit: long_1.default.UZERO, payer: \"\", granter: \"\" };\nexports.Fee = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.amount) {\n coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (!message.gasLimit.isZero()) {\n writer.uint32(16).uint64(message.gasLimit);\n }\n if (message.payer !== \"\") {\n writer.uint32(26).string(message.payer);\n }\n if (message.granter !== \"\") {\n writer.uint32(34).string(message.granter);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseFee);\n message.amount = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.amount.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 2:\n message.gasLimit = reader.uint64();\n break;\n case 3:\n message.payer = reader.string();\n break;\n case 4:\n message.granter = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseFee);\n message.amount = [];\n if (object.amount !== undefined && object.amount !== null) {\n for (const e of object.amount) {\n message.amount.push(coin_1.Coin.fromJSON(e));\n }\n }\n if (object.gasLimit !== undefined && object.gasLimit !== null) {\n message.gasLimit = long_1.default.fromString(object.gasLimit);\n }\n else {\n message.gasLimit = long_1.default.UZERO;\n }\n if (object.payer !== undefined && object.payer !== null) {\n message.payer = String(object.payer);\n }\n else {\n message.payer = \"\";\n }\n if (object.granter !== undefined && object.granter !== null) {\n message.granter = String(object.granter);\n }\n else {\n message.granter = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.amount = [];\n }\n message.gasLimit !== undefined && (obj.gasLimit = (message.gasLimit || long_1.default.UZERO).toString());\n message.payer !== undefined && (obj.payer = message.payer);\n message.granter !== undefined && (obj.granter = message.granter);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseFee);\n message.amount = [];\n if (object.amount !== undefined && object.amount !== null) {\n for (const e of object.amount) {\n message.amount.push(coin_1.Coin.fromPartial(e));\n }\n }\n if (object.gasLimit !== undefined && object.gasLimit !== null) {\n message.gasLimit = object.gasLimit;\n }\n else {\n message.gasLimit = long_1.default.UZERO;\n }\n if (object.payer !== undefined && object.payer !== null) {\n message.payer = object.payer;\n }\n else {\n message.payer = \"\";\n }\n if (object.granter !== undefined && object.granter !== null) {\n message.granter = object.granter;\n }\n else {\n message.granter = \"\";\n }\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=tx.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ModuleVersion = exports.CancelSoftwareUpgradeProposal = exports.SoftwareUpgradeProposal = exports.Plan = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst timestamp_1 = require(\"../../../google/protobuf/timestamp\");\nexports.protobufPackage = \"cosmos.upgrade.v1beta1\";\nconst basePlan = { name: \"\", height: long_1.default.ZERO, info: \"\" };\nexports.Plan = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.name !== \"\") {\n writer.uint32(10).string(message.name);\n }\n if (message.time !== undefined) {\n timestamp_1.Timestamp.encode(toTimestamp(message.time), writer.uint32(18).fork()).ldelim();\n }\n if (!message.height.isZero()) {\n writer.uint32(24).int64(message.height);\n }\n if (message.info !== \"\") {\n writer.uint32(34).string(message.info);\n }\n if (message.upgradedClientState !== undefined) {\n any_1.Any.encode(message.upgradedClientState, writer.uint32(42).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, basePlan);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.name = reader.string();\n break;\n case 2:\n message.time = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));\n break;\n case 3:\n message.height = reader.int64();\n break;\n case 4:\n message.info = reader.string();\n break;\n case 5:\n message.upgradedClientState = any_1.Any.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, basePlan);\n if (object.name !== undefined && object.name !== null) {\n message.name = String(object.name);\n }\n else {\n message.name = \"\";\n }\n if (object.time !== undefined && object.time !== null) {\n message.time = fromJsonTimestamp(object.time);\n }\n else {\n message.time = undefined;\n }\n if (object.height !== undefined && object.height !== null) {\n message.height = long_1.default.fromString(object.height);\n }\n else {\n message.height = long_1.default.ZERO;\n }\n if (object.info !== undefined && object.info !== null) {\n message.info = String(object.info);\n }\n else {\n message.info = \"\";\n }\n if (object.upgradedClientState !== undefined && object.upgradedClientState !== null) {\n message.upgradedClientState = any_1.Any.fromJSON(object.upgradedClientState);\n }\n else {\n message.upgradedClientState = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.name !== undefined && (obj.name = message.name);\n message.time !== undefined && (obj.time = message.time.toISOString());\n message.height !== undefined && (obj.height = (message.height || long_1.default.ZERO).toString());\n message.info !== undefined && (obj.info = message.info);\n message.upgradedClientState !== undefined &&\n (obj.upgradedClientState = message.upgradedClientState\n ? any_1.Any.toJSON(message.upgradedClientState)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, basePlan);\n if (object.name !== undefined && object.name !== null) {\n message.name = object.name;\n }\n else {\n message.name = \"\";\n }\n if (object.time !== undefined && object.time !== null) {\n message.time = object.time;\n }\n else {\n message.time = undefined;\n }\n if (object.height !== undefined && object.height !== null) {\n message.height = object.height;\n }\n else {\n message.height = long_1.default.ZERO;\n }\n if (object.info !== undefined && object.info !== null) {\n message.info = object.info;\n }\n else {\n message.info = \"\";\n }\n if (object.upgradedClientState !== undefined && object.upgradedClientState !== null) {\n message.upgradedClientState = any_1.Any.fromPartial(object.upgradedClientState);\n }\n else {\n message.upgradedClientState = undefined;\n }\n return message;\n },\n};\nconst baseSoftwareUpgradeProposal = { title: \"\", description: \"\" };\nexports.SoftwareUpgradeProposal = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.title !== \"\") {\n writer.uint32(10).string(message.title);\n }\n if (message.description !== \"\") {\n writer.uint32(18).string(message.description);\n }\n if (message.plan !== undefined) {\n exports.Plan.encode(message.plan, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSoftwareUpgradeProposal);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.title = reader.string();\n break;\n case 2:\n message.description = reader.string();\n break;\n case 3:\n message.plan = exports.Plan.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseSoftwareUpgradeProposal);\n if (object.title !== undefined && object.title !== null) {\n message.title = String(object.title);\n }\n else {\n message.title = \"\";\n }\n if (object.description !== undefined && object.description !== null) {\n message.description = String(object.description);\n }\n else {\n message.description = \"\";\n }\n if (object.plan !== undefined && object.plan !== null) {\n message.plan = exports.Plan.fromJSON(object.plan);\n }\n else {\n message.plan = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.title !== undefined && (obj.title = message.title);\n message.description !== undefined && (obj.description = message.description);\n message.plan !== undefined && (obj.plan = message.plan ? exports.Plan.toJSON(message.plan) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseSoftwareUpgradeProposal);\n if (object.title !== undefined && object.title !== null) {\n message.title = object.title;\n }\n else {\n message.title = \"\";\n }\n if (object.description !== undefined && object.description !== null) {\n message.description = object.description;\n }\n else {\n message.description = \"\";\n }\n if (object.plan !== undefined && object.plan !== null) {\n message.plan = exports.Plan.fromPartial(object.plan);\n }\n else {\n message.plan = undefined;\n }\n return message;\n },\n};\nconst baseCancelSoftwareUpgradeProposal = { title: \"\", description: \"\" };\nexports.CancelSoftwareUpgradeProposal = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.title !== \"\") {\n writer.uint32(10).string(message.title);\n }\n if (message.description !== \"\") {\n writer.uint32(18).string(message.description);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseCancelSoftwareUpgradeProposal);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.title = reader.string();\n break;\n case 2:\n message.description = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseCancelSoftwareUpgradeProposal);\n if (object.title !== undefined && object.title !== null) {\n message.title = String(object.title);\n }\n else {\n message.title = \"\";\n }\n if (object.description !== undefined && object.description !== null) {\n message.description = String(object.description);\n }\n else {\n message.description = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.title !== undefined && (obj.title = message.title);\n message.description !== undefined && (obj.description = message.description);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseCancelSoftwareUpgradeProposal);\n if (object.title !== undefined && object.title !== null) {\n message.title = object.title;\n }\n else {\n message.title = \"\";\n }\n if (object.description !== undefined && object.description !== null) {\n message.description = object.description;\n }\n else {\n message.description = \"\";\n }\n return message;\n },\n};\nconst baseModuleVersion = { name: \"\", version: long_1.default.UZERO };\nexports.ModuleVersion = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.name !== \"\") {\n writer.uint32(10).string(message.name);\n }\n if (!message.version.isZero()) {\n writer.uint32(16).uint64(message.version);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseModuleVersion);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.name = reader.string();\n break;\n case 2:\n message.version = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseModuleVersion);\n if (object.name !== undefined && object.name !== null) {\n message.name = String(object.name);\n }\n else {\n message.name = \"\";\n }\n if (object.version !== undefined && object.version !== null) {\n message.version = long_1.default.fromString(object.version);\n }\n else {\n message.version = long_1.default.UZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.name !== undefined && (obj.name = message.name);\n message.version !== undefined && (obj.version = (message.version || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseModuleVersion);\n if (object.name !== undefined && object.name !== null) {\n message.name = object.name;\n }\n else {\n message.name = \"\";\n }\n if (object.version !== undefined && object.version !== null) {\n message.version = object.version;\n }\n else {\n message.version = long_1.default.UZERO;\n }\n return message;\n },\n};\nfunction toTimestamp(date) {\n const seconds = numberToLong(date.getTime() / 1000);\n const nanos = (date.getTime() % 1000) * 1000000;\n return { seconds, nanos };\n}\nfunction fromTimestamp(t) {\n let millis = t.seconds.toNumber() * 1000;\n millis += t.nanos / 1000000;\n return new Date(millis);\n}\nfunction fromJsonTimestamp(o) {\n if (o instanceof Date) {\n return o;\n }\n else if (typeof o === \"string\") {\n return new Date(o);\n }\n else {\n return fromTimestamp(timestamp_1.Timestamp.fromJSON(o));\n }\n}\nfunction numberToLong(number) {\n return long_1.default.fromNumber(number);\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=upgrade.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GrpcWebImpl = exports.MsgDonateAllVestingTokensDesc = exports.MsgCreatePeriodicVestingAccountDesc = exports.MsgCreateVestingAccountDesc = exports.MsgDesc = exports.MsgClientImpl = exports.MsgDonateAllVestingTokensResponse = exports.MsgDonateAllVestingTokens = exports.MsgCreatePeriodicVestingAccountResponse = exports.MsgCreatePeriodicVestingAccount = exports.MsgCreateVestingAccountResponse = exports.MsgCreateVestingAccount = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst grpc_web_1 = require(\"@improbable-eng/grpc-web\");\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst browser_headers_1 = require(\"browser-headers\");\nconst coin_1 = require(\"../../../cosmos/base/v1beta1/coin\");\nconst vesting_1 = require(\"../../../cosmos/vesting/v1beta1/vesting\");\nexports.protobufPackage = \"cosmos.vesting.v1beta1\";\nconst baseMsgCreateVestingAccount = {\n fromAddress: \"\",\n toAddress: \"\",\n endTime: long_1.default.ZERO,\n delayed: false,\n};\nexports.MsgCreateVestingAccount = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.fromAddress !== \"\") {\n writer.uint32(10).string(message.fromAddress);\n }\n if (message.toAddress !== \"\") {\n writer.uint32(18).string(message.toAddress);\n }\n for (const v of message.amount) {\n coin_1.Coin.encode(v, writer.uint32(26).fork()).ldelim();\n }\n if (!message.endTime.isZero()) {\n writer.uint32(32).int64(message.endTime);\n }\n if (message.delayed === true) {\n writer.uint32(40).bool(message.delayed);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgCreateVestingAccount);\n message.amount = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.fromAddress = reader.string();\n break;\n case 2:\n message.toAddress = reader.string();\n break;\n case 3:\n message.amount.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 4:\n message.endTime = reader.int64();\n break;\n case 5:\n message.delayed = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgCreateVestingAccount);\n message.amount = [];\n if (object.fromAddress !== undefined && object.fromAddress !== null) {\n message.fromAddress = String(object.fromAddress);\n }\n else {\n message.fromAddress = \"\";\n }\n if (object.toAddress !== undefined && object.toAddress !== null) {\n message.toAddress = String(object.toAddress);\n }\n else {\n message.toAddress = \"\";\n }\n if (object.amount !== undefined && object.amount !== null) {\n for (const e of object.amount) {\n message.amount.push(coin_1.Coin.fromJSON(e));\n }\n }\n if (object.endTime !== undefined && object.endTime !== null) {\n message.endTime = long_1.default.fromString(object.endTime);\n }\n else {\n message.endTime = long_1.default.ZERO;\n }\n if (object.delayed !== undefined && object.delayed !== null) {\n message.delayed = Boolean(object.delayed);\n }\n else {\n message.delayed = false;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.fromAddress !== undefined && (obj.fromAddress = message.fromAddress);\n message.toAddress !== undefined && (obj.toAddress = message.toAddress);\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.amount = [];\n }\n message.endTime !== undefined && (obj.endTime = (message.endTime || long_1.default.ZERO).toString());\n message.delayed !== undefined && (obj.delayed = message.delayed);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgCreateVestingAccount);\n message.amount = [];\n if (object.fromAddress !== undefined && object.fromAddress !== null) {\n message.fromAddress = object.fromAddress;\n }\n else {\n message.fromAddress = \"\";\n }\n if (object.toAddress !== undefined && object.toAddress !== null) {\n message.toAddress = object.toAddress;\n }\n else {\n message.toAddress = \"\";\n }\n if (object.amount !== undefined && object.amount !== null) {\n for (const e of object.amount) {\n message.amount.push(coin_1.Coin.fromPartial(e));\n }\n }\n if (object.endTime !== undefined && object.endTime !== null) {\n message.endTime = object.endTime;\n }\n else {\n message.endTime = long_1.default.ZERO;\n }\n if (object.delayed !== undefined && object.delayed !== null) {\n message.delayed = object.delayed;\n }\n else {\n message.delayed = false;\n }\n return message;\n },\n};\nconst baseMsgCreateVestingAccountResponse = {};\nexports.MsgCreateVestingAccountResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgCreateVestingAccountResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgCreateVestingAccountResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgCreateVestingAccountResponse);\n return message;\n },\n};\nconst baseMsgCreatePeriodicVestingAccount = { fromAddress: \"\", toAddress: \"\", startTime: long_1.default.ZERO };\nexports.MsgCreatePeriodicVestingAccount = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.fromAddress !== \"\") {\n writer.uint32(10).string(message.fromAddress);\n }\n if (message.toAddress !== \"\") {\n writer.uint32(18).string(message.toAddress);\n }\n if (!message.startTime.isZero()) {\n writer.uint32(24).int64(message.startTime);\n }\n for (const v of message.vestingPeriods) {\n vesting_1.Period.encode(v, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgCreatePeriodicVestingAccount);\n message.vestingPeriods = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.fromAddress = reader.string();\n break;\n case 2:\n message.toAddress = reader.string();\n break;\n case 3:\n message.startTime = reader.int64();\n break;\n case 4:\n message.vestingPeriods.push(vesting_1.Period.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgCreatePeriodicVestingAccount);\n message.vestingPeriods = [];\n if (object.fromAddress !== undefined && object.fromAddress !== null) {\n message.fromAddress = String(object.fromAddress);\n }\n else {\n message.fromAddress = \"\";\n }\n if (object.toAddress !== undefined && object.toAddress !== null) {\n message.toAddress = String(object.toAddress);\n }\n else {\n message.toAddress = \"\";\n }\n if (object.startTime !== undefined && object.startTime !== null) {\n message.startTime = long_1.default.fromString(object.startTime);\n }\n else {\n message.startTime = long_1.default.ZERO;\n }\n if (object.vestingPeriods !== undefined && object.vestingPeriods !== null) {\n for (const e of object.vestingPeriods) {\n message.vestingPeriods.push(vesting_1.Period.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.fromAddress !== undefined && (obj.fromAddress = message.fromAddress);\n message.toAddress !== undefined && (obj.toAddress = message.toAddress);\n message.startTime !== undefined && (obj.startTime = (message.startTime || long_1.default.ZERO).toString());\n if (message.vestingPeriods) {\n obj.vestingPeriods = message.vestingPeriods.map((e) => (e ? vesting_1.Period.toJSON(e) : undefined));\n }\n else {\n obj.vestingPeriods = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgCreatePeriodicVestingAccount);\n message.vestingPeriods = [];\n if (object.fromAddress !== undefined && object.fromAddress !== null) {\n message.fromAddress = object.fromAddress;\n }\n else {\n message.fromAddress = \"\";\n }\n if (object.toAddress !== undefined && object.toAddress !== null) {\n message.toAddress = object.toAddress;\n }\n else {\n message.toAddress = \"\";\n }\n if (object.startTime !== undefined && object.startTime !== null) {\n message.startTime = object.startTime;\n }\n else {\n message.startTime = long_1.default.ZERO;\n }\n if (object.vestingPeriods !== undefined && object.vestingPeriods !== null) {\n for (const e of object.vestingPeriods) {\n message.vestingPeriods.push(vesting_1.Period.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseMsgCreatePeriodicVestingAccountResponse = {};\nexports.MsgCreatePeriodicVestingAccountResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgCreatePeriodicVestingAccountResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgCreatePeriodicVestingAccountResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgCreatePeriodicVestingAccountResponse);\n return message;\n },\n};\nconst baseMsgDonateAllVestingTokens = { fromAddress: \"\" };\nexports.MsgDonateAllVestingTokens = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.fromAddress !== \"\") {\n writer.uint32(10).string(message.fromAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgDonateAllVestingTokens);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.fromAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgDonateAllVestingTokens);\n if (object.fromAddress !== undefined && object.fromAddress !== null) {\n message.fromAddress = String(object.fromAddress);\n }\n else {\n message.fromAddress = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.fromAddress !== undefined && (obj.fromAddress = message.fromAddress);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgDonateAllVestingTokens);\n if (object.fromAddress !== undefined && object.fromAddress !== null) {\n message.fromAddress = object.fromAddress;\n }\n else {\n message.fromAddress = \"\";\n }\n return message;\n },\n};\nconst baseMsgDonateAllVestingTokensResponse = {};\nexports.MsgDonateAllVestingTokensResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgDonateAllVestingTokensResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgDonateAllVestingTokensResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgDonateAllVestingTokensResponse);\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.CreateVestingAccount = this.CreateVestingAccount.bind(this);\n this.CreatePeriodicVestingAccount = this.CreatePeriodicVestingAccount.bind(this);\n this.DonateAllVestingTokens = this.DonateAllVestingTokens.bind(this);\n }\n CreateVestingAccount(request, metadata) {\n return this.rpc.unary(exports.MsgCreateVestingAccountDesc, exports.MsgCreateVestingAccount.fromPartial(request), metadata);\n }\n CreatePeriodicVestingAccount(request, metadata) {\n return this.rpc.unary(exports.MsgCreatePeriodicVestingAccountDesc, exports.MsgCreatePeriodicVestingAccount.fromPartial(request), metadata);\n }\n DonateAllVestingTokens(request, metadata) {\n return this.rpc.unary(exports.MsgDonateAllVestingTokensDesc, exports.MsgDonateAllVestingTokens.fromPartial(request), metadata);\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\nexports.MsgDesc = {\n serviceName: \"cosmos.vesting.v1beta1.Msg\",\n};\nexports.MsgCreateVestingAccountDesc = {\n methodName: \"CreateVestingAccount\",\n service: exports.MsgDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.MsgCreateVestingAccount.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.MsgCreateVestingAccountResponse.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nexports.MsgCreatePeriodicVestingAccountDesc = {\n methodName: \"CreatePeriodicVestingAccount\",\n service: exports.MsgDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.MsgCreatePeriodicVestingAccount.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.MsgCreatePeriodicVestingAccountResponse.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nexports.MsgDonateAllVestingTokensDesc = {\n methodName: \"DonateAllVestingTokens\",\n service: exports.MsgDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.MsgDonateAllVestingTokens.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.MsgDonateAllVestingTokensResponse.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nclass GrpcWebImpl {\n constructor(host, options) {\n this.host = host;\n this.options = options;\n }\n unary(methodDesc, _request, metadata) {\n var _a;\n const request = Object.assign(Object.assign({}, _request), methodDesc.requestType);\n const maybeCombinedMetadata = metadata && this.options.metadata\n ? new browser_headers_1.BrowserHeaders(Object.assign(Object.assign({}, (_a = this.options) === null || _a === void 0 ? void 0 : _a.metadata.headersMap), metadata === null || metadata === void 0 ? void 0 : metadata.headersMap))\n : metadata || this.options.metadata;\n return new Promise((resolve, reject) => {\n grpc_web_1.grpc.unary(methodDesc, {\n request,\n host: this.host,\n metadata: maybeCombinedMetadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (response.status === grpc_web_1.grpc.Code.OK) {\n resolve(response.message);\n }\n else {\n const err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n reject(err);\n }\n },\n });\n });\n }\n}\nexports.GrpcWebImpl = GrpcWebImpl;\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=tx.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PermanentLockedAccount = exports.PeriodicVestingAccount = exports.Period = exports.DelayedVestingAccount = exports.ContinuousVestingAccount = exports.BaseVestingAccount = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst auth_1 = require(\"../../../cosmos/auth/v1beta1/auth\");\nconst coin_1 = require(\"../../../cosmos/base/v1beta1/coin\");\nexports.protobufPackage = \"cosmos.vesting.v1beta1\";\nconst baseBaseVestingAccount = { endTime: long_1.default.ZERO };\nexports.BaseVestingAccount = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.baseAccount !== undefined) {\n auth_1.BaseAccount.encode(message.baseAccount, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.originalVesting) {\n coin_1.Coin.encode(v, writer.uint32(18).fork()).ldelim();\n }\n for (const v of message.delegatedFree) {\n coin_1.Coin.encode(v, writer.uint32(26).fork()).ldelim();\n }\n for (const v of message.delegatedVesting) {\n coin_1.Coin.encode(v, writer.uint32(34).fork()).ldelim();\n }\n if (!message.endTime.isZero()) {\n writer.uint32(40).int64(message.endTime);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseBaseVestingAccount);\n message.originalVesting = [];\n message.delegatedFree = [];\n message.delegatedVesting = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.baseAccount = auth_1.BaseAccount.decode(reader, reader.uint32());\n break;\n case 2:\n message.originalVesting.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 3:\n message.delegatedFree.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 4:\n message.delegatedVesting.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 5:\n message.endTime = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseBaseVestingAccount);\n message.originalVesting = [];\n message.delegatedFree = [];\n message.delegatedVesting = [];\n if (object.baseAccount !== undefined && object.baseAccount !== null) {\n message.baseAccount = auth_1.BaseAccount.fromJSON(object.baseAccount);\n }\n else {\n message.baseAccount = undefined;\n }\n if (object.originalVesting !== undefined && object.originalVesting !== null) {\n for (const e of object.originalVesting) {\n message.originalVesting.push(coin_1.Coin.fromJSON(e));\n }\n }\n if (object.delegatedFree !== undefined && object.delegatedFree !== null) {\n for (const e of object.delegatedFree) {\n message.delegatedFree.push(coin_1.Coin.fromJSON(e));\n }\n }\n if (object.delegatedVesting !== undefined && object.delegatedVesting !== null) {\n for (const e of object.delegatedVesting) {\n message.delegatedVesting.push(coin_1.Coin.fromJSON(e));\n }\n }\n if (object.endTime !== undefined && object.endTime !== null) {\n message.endTime = long_1.default.fromString(object.endTime);\n }\n else {\n message.endTime = long_1.default.ZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.baseAccount !== undefined &&\n (obj.baseAccount = message.baseAccount ? auth_1.BaseAccount.toJSON(message.baseAccount) : undefined);\n if (message.originalVesting) {\n obj.originalVesting = message.originalVesting.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.originalVesting = [];\n }\n if (message.delegatedFree) {\n obj.delegatedFree = message.delegatedFree.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.delegatedFree = [];\n }\n if (message.delegatedVesting) {\n obj.delegatedVesting = message.delegatedVesting.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.delegatedVesting = [];\n }\n message.endTime !== undefined && (obj.endTime = (message.endTime || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseBaseVestingAccount);\n message.originalVesting = [];\n message.delegatedFree = [];\n message.delegatedVesting = [];\n if (object.baseAccount !== undefined && object.baseAccount !== null) {\n message.baseAccount = auth_1.BaseAccount.fromPartial(object.baseAccount);\n }\n else {\n message.baseAccount = undefined;\n }\n if (object.originalVesting !== undefined && object.originalVesting !== null) {\n for (const e of object.originalVesting) {\n message.originalVesting.push(coin_1.Coin.fromPartial(e));\n }\n }\n if (object.delegatedFree !== undefined && object.delegatedFree !== null) {\n for (const e of object.delegatedFree) {\n message.delegatedFree.push(coin_1.Coin.fromPartial(e));\n }\n }\n if (object.delegatedVesting !== undefined && object.delegatedVesting !== null) {\n for (const e of object.delegatedVesting) {\n message.delegatedVesting.push(coin_1.Coin.fromPartial(e));\n }\n }\n if (object.endTime !== undefined && object.endTime !== null) {\n message.endTime = object.endTime;\n }\n else {\n message.endTime = long_1.default.ZERO;\n }\n return message;\n },\n};\nconst baseContinuousVestingAccount = { startTime: long_1.default.ZERO };\nexports.ContinuousVestingAccount = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.baseVestingAccount !== undefined) {\n exports.BaseVestingAccount.encode(message.baseVestingAccount, writer.uint32(10).fork()).ldelim();\n }\n if (!message.startTime.isZero()) {\n writer.uint32(16).int64(message.startTime);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseContinuousVestingAccount);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.baseVestingAccount = exports.BaseVestingAccount.decode(reader, reader.uint32());\n break;\n case 2:\n message.startTime = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseContinuousVestingAccount);\n if (object.baseVestingAccount !== undefined && object.baseVestingAccount !== null) {\n message.baseVestingAccount = exports.BaseVestingAccount.fromJSON(object.baseVestingAccount);\n }\n else {\n message.baseVestingAccount = undefined;\n }\n if (object.startTime !== undefined && object.startTime !== null) {\n message.startTime = long_1.default.fromString(object.startTime);\n }\n else {\n message.startTime = long_1.default.ZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.baseVestingAccount !== undefined &&\n (obj.baseVestingAccount = message.baseVestingAccount\n ? exports.BaseVestingAccount.toJSON(message.baseVestingAccount)\n : undefined);\n message.startTime !== undefined && (obj.startTime = (message.startTime || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseContinuousVestingAccount);\n if (object.baseVestingAccount !== undefined && object.baseVestingAccount !== null) {\n message.baseVestingAccount = exports.BaseVestingAccount.fromPartial(object.baseVestingAccount);\n }\n else {\n message.baseVestingAccount = undefined;\n }\n if (object.startTime !== undefined && object.startTime !== null) {\n message.startTime = object.startTime;\n }\n else {\n message.startTime = long_1.default.ZERO;\n }\n return message;\n },\n};\nconst baseDelayedVestingAccount = {};\nexports.DelayedVestingAccount = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.baseVestingAccount !== undefined) {\n exports.BaseVestingAccount.encode(message.baseVestingAccount, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDelayedVestingAccount);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.baseVestingAccount = exports.BaseVestingAccount.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseDelayedVestingAccount);\n if (object.baseVestingAccount !== undefined && object.baseVestingAccount !== null) {\n message.baseVestingAccount = exports.BaseVestingAccount.fromJSON(object.baseVestingAccount);\n }\n else {\n message.baseVestingAccount = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.baseVestingAccount !== undefined &&\n (obj.baseVestingAccount = message.baseVestingAccount\n ? exports.BaseVestingAccount.toJSON(message.baseVestingAccount)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseDelayedVestingAccount);\n if (object.baseVestingAccount !== undefined && object.baseVestingAccount !== null) {\n message.baseVestingAccount = exports.BaseVestingAccount.fromPartial(object.baseVestingAccount);\n }\n else {\n message.baseVestingAccount = undefined;\n }\n return message;\n },\n};\nconst basePeriod = { length: long_1.default.ZERO };\nexports.Period = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.length.isZero()) {\n writer.uint32(8).int64(message.length);\n }\n for (const v of message.amount) {\n coin_1.Coin.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, basePeriod);\n message.amount = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.length = reader.int64();\n break;\n case 2:\n message.amount.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, basePeriod);\n message.amount = [];\n if (object.length !== undefined && object.length !== null) {\n message.length = long_1.default.fromString(object.length);\n }\n else {\n message.length = long_1.default.ZERO;\n }\n if (object.amount !== undefined && object.amount !== null) {\n for (const e of object.amount) {\n message.amount.push(coin_1.Coin.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.length !== undefined && (obj.length = (message.length || long_1.default.ZERO).toString());\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.amount = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, basePeriod);\n message.amount = [];\n if (object.length !== undefined && object.length !== null) {\n message.length = object.length;\n }\n else {\n message.length = long_1.default.ZERO;\n }\n if (object.amount !== undefined && object.amount !== null) {\n for (const e of object.amount) {\n message.amount.push(coin_1.Coin.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst basePeriodicVestingAccount = { startTime: long_1.default.ZERO };\nexports.PeriodicVestingAccount = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.baseVestingAccount !== undefined) {\n exports.BaseVestingAccount.encode(message.baseVestingAccount, writer.uint32(10).fork()).ldelim();\n }\n if (!message.startTime.isZero()) {\n writer.uint32(16).int64(message.startTime);\n }\n for (const v of message.vestingPeriods) {\n exports.Period.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, basePeriodicVestingAccount);\n message.vestingPeriods = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.baseVestingAccount = exports.BaseVestingAccount.decode(reader, reader.uint32());\n break;\n case 2:\n message.startTime = reader.int64();\n break;\n case 3:\n message.vestingPeriods.push(exports.Period.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, basePeriodicVestingAccount);\n message.vestingPeriods = [];\n if (object.baseVestingAccount !== undefined && object.baseVestingAccount !== null) {\n message.baseVestingAccount = exports.BaseVestingAccount.fromJSON(object.baseVestingAccount);\n }\n else {\n message.baseVestingAccount = undefined;\n }\n if (object.startTime !== undefined && object.startTime !== null) {\n message.startTime = long_1.default.fromString(object.startTime);\n }\n else {\n message.startTime = long_1.default.ZERO;\n }\n if (object.vestingPeriods !== undefined && object.vestingPeriods !== null) {\n for (const e of object.vestingPeriods) {\n message.vestingPeriods.push(exports.Period.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.baseVestingAccount !== undefined &&\n (obj.baseVestingAccount = message.baseVestingAccount\n ? exports.BaseVestingAccount.toJSON(message.baseVestingAccount)\n : undefined);\n message.startTime !== undefined && (obj.startTime = (message.startTime || long_1.default.ZERO).toString());\n if (message.vestingPeriods) {\n obj.vestingPeriods = message.vestingPeriods.map((e) => (e ? exports.Period.toJSON(e) : undefined));\n }\n else {\n obj.vestingPeriods = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, basePeriodicVestingAccount);\n message.vestingPeriods = [];\n if (object.baseVestingAccount !== undefined && object.baseVestingAccount !== null) {\n message.baseVestingAccount = exports.BaseVestingAccount.fromPartial(object.baseVestingAccount);\n }\n else {\n message.baseVestingAccount = undefined;\n }\n if (object.startTime !== undefined && object.startTime !== null) {\n message.startTime = object.startTime;\n }\n else {\n message.startTime = long_1.default.ZERO;\n }\n if (object.vestingPeriods !== undefined && object.vestingPeriods !== null) {\n for (const e of object.vestingPeriods) {\n message.vestingPeriods.push(exports.Period.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst basePermanentLockedAccount = {};\nexports.PermanentLockedAccount = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.baseVestingAccount !== undefined) {\n exports.BaseVestingAccount.encode(message.baseVestingAccount, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, basePermanentLockedAccount);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.baseVestingAccount = exports.BaseVestingAccount.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, basePermanentLockedAccount);\n if (object.baseVestingAccount !== undefined && object.baseVestingAccount !== null) {\n message.baseVestingAccount = exports.BaseVestingAccount.fromJSON(object.baseVestingAccount);\n }\n else {\n message.baseVestingAccount = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.baseVestingAccount !== undefined &&\n (obj.baseVestingAccount = message.baseVestingAccount\n ? exports.BaseVestingAccount.toJSON(message.baseVestingAccount)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, basePermanentLockedAccount);\n if (object.baseVestingAccount !== undefined && object.baseVestingAccount !== null) {\n message.baseVestingAccount = exports.BaseVestingAccount.fromPartial(object.baseVestingAccount);\n }\n else {\n message.baseVestingAccount = undefined;\n }\n return message;\n },\n};\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=vesting.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UpdateInstantiateConfigProposal = exports.AccessConfigUpdate = exports.UnpinCodesProposal = exports.PinCodesProposal = exports.ClearAdminProposal = exports.UpdateAdminProposal = exports.ExecuteContractProposal = exports.SudoContractProposal = exports.MigrateContractProposal = exports.InstantiateContractProposal = exports.StoreCodeProposal = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst types_1 = require(\"../../../cosmwasm/wasm/v1/types\");\nconst coin_1 = require(\"../../../cosmos/base/v1beta1/coin\");\nexports.protobufPackage = \"cosmwasm.wasm.v1\";\nconst baseStoreCodeProposal = { title: \"\", description: \"\", runAs: \"\" };\nexports.StoreCodeProposal = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.title !== \"\") {\n writer.uint32(10).string(message.title);\n }\n if (message.description !== \"\") {\n writer.uint32(18).string(message.description);\n }\n if (message.runAs !== \"\") {\n writer.uint32(26).string(message.runAs);\n }\n if (message.wasmByteCode.length !== 0) {\n writer.uint32(34).bytes(message.wasmByteCode);\n }\n if (message.instantiatePermission !== undefined) {\n types_1.AccessConfig.encode(message.instantiatePermission, writer.uint32(58).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseStoreCodeProposal);\n message.wasmByteCode = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.title = reader.string();\n break;\n case 2:\n message.description = reader.string();\n break;\n case 3:\n message.runAs = reader.string();\n break;\n case 4:\n message.wasmByteCode = reader.bytes();\n break;\n case 7:\n message.instantiatePermission = types_1.AccessConfig.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseStoreCodeProposal);\n message.wasmByteCode = new Uint8Array();\n if (object.title !== undefined && object.title !== null) {\n message.title = String(object.title);\n }\n else {\n message.title = \"\";\n }\n if (object.description !== undefined && object.description !== null) {\n message.description = String(object.description);\n }\n else {\n message.description = \"\";\n }\n if (object.runAs !== undefined && object.runAs !== null) {\n message.runAs = String(object.runAs);\n }\n else {\n message.runAs = \"\";\n }\n if (object.wasmByteCode !== undefined && object.wasmByteCode !== null) {\n message.wasmByteCode = bytesFromBase64(object.wasmByteCode);\n }\n if (object.instantiatePermission !== undefined && object.instantiatePermission !== null) {\n message.instantiatePermission = types_1.AccessConfig.fromJSON(object.instantiatePermission);\n }\n else {\n message.instantiatePermission = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.title !== undefined && (obj.title = message.title);\n message.description !== undefined && (obj.description = message.description);\n message.runAs !== undefined && (obj.runAs = message.runAs);\n message.wasmByteCode !== undefined &&\n (obj.wasmByteCode = base64FromBytes(message.wasmByteCode !== undefined ? message.wasmByteCode : new Uint8Array()));\n message.instantiatePermission !== undefined &&\n (obj.instantiatePermission = message.instantiatePermission\n ? types_1.AccessConfig.toJSON(message.instantiatePermission)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseStoreCodeProposal);\n if (object.title !== undefined && object.title !== null) {\n message.title = object.title;\n }\n else {\n message.title = \"\";\n }\n if (object.description !== undefined && object.description !== null) {\n message.description = object.description;\n }\n else {\n message.description = \"\";\n }\n if (object.runAs !== undefined && object.runAs !== null) {\n message.runAs = object.runAs;\n }\n else {\n message.runAs = \"\";\n }\n if (object.wasmByteCode !== undefined && object.wasmByteCode !== null) {\n message.wasmByteCode = object.wasmByteCode;\n }\n else {\n message.wasmByteCode = new Uint8Array();\n }\n if (object.instantiatePermission !== undefined && object.instantiatePermission !== null) {\n message.instantiatePermission = types_1.AccessConfig.fromPartial(object.instantiatePermission);\n }\n else {\n message.instantiatePermission = undefined;\n }\n return message;\n },\n};\nconst baseInstantiateContractProposal = {\n title: \"\",\n description: \"\",\n runAs: \"\",\n admin: \"\",\n codeId: long_1.default.UZERO,\n label: \"\",\n};\nexports.InstantiateContractProposal = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.title !== \"\") {\n writer.uint32(10).string(message.title);\n }\n if (message.description !== \"\") {\n writer.uint32(18).string(message.description);\n }\n if (message.runAs !== \"\") {\n writer.uint32(26).string(message.runAs);\n }\n if (message.admin !== \"\") {\n writer.uint32(34).string(message.admin);\n }\n if (!message.codeId.isZero()) {\n writer.uint32(40).uint64(message.codeId);\n }\n if (message.label !== \"\") {\n writer.uint32(50).string(message.label);\n }\n if (message.msg.length !== 0) {\n writer.uint32(58).bytes(message.msg);\n }\n for (const v of message.funds) {\n coin_1.Coin.encode(v, writer.uint32(66).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseInstantiateContractProposal);\n message.funds = [];\n message.msg = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.title = reader.string();\n break;\n case 2:\n message.description = reader.string();\n break;\n case 3:\n message.runAs = reader.string();\n break;\n case 4:\n message.admin = reader.string();\n break;\n case 5:\n message.codeId = reader.uint64();\n break;\n case 6:\n message.label = reader.string();\n break;\n case 7:\n message.msg = reader.bytes();\n break;\n case 8:\n message.funds.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseInstantiateContractProposal);\n message.funds = [];\n message.msg = new Uint8Array();\n if (object.title !== undefined && object.title !== null) {\n message.title = String(object.title);\n }\n else {\n message.title = \"\";\n }\n if (object.description !== undefined && object.description !== null) {\n message.description = String(object.description);\n }\n else {\n message.description = \"\";\n }\n if (object.runAs !== undefined && object.runAs !== null) {\n message.runAs = String(object.runAs);\n }\n else {\n message.runAs = \"\";\n }\n if (object.admin !== undefined && object.admin !== null) {\n message.admin = String(object.admin);\n }\n else {\n message.admin = \"\";\n }\n if (object.codeId !== undefined && object.codeId !== null) {\n message.codeId = long_1.default.fromString(object.codeId);\n }\n else {\n message.codeId = long_1.default.UZERO;\n }\n if (object.label !== undefined && object.label !== null) {\n message.label = String(object.label);\n }\n else {\n message.label = \"\";\n }\n if (object.msg !== undefined && object.msg !== null) {\n message.msg = bytesFromBase64(object.msg);\n }\n if (object.funds !== undefined && object.funds !== null) {\n for (const e of object.funds) {\n message.funds.push(coin_1.Coin.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.title !== undefined && (obj.title = message.title);\n message.description !== undefined && (obj.description = message.description);\n message.runAs !== undefined && (obj.runAs = message.runAs);\n message.admin !== undefined && (obj.admin = message.admin);\n message.codeId !== undefined && (obj.codeId = (message.codeId || long_1.default.UZERO).toString());\n message.label !== undefined && (obj.label = message.label);\n message.msg !== undefined &&\n (obj.msg = base64FromBytes(message.msg !== undefined ? message.msg : new Uint8Array()));\n if (message.funds) {\n obj.funds = message.funds.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.funds = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseInstantiateContractProposal);\n message.funds = [];\n if (object.title !== undefined && object.title !== null) {\n message.title = object.title;\n }\n else {\n message.title = \"\";\n }\n if (object.description !== undefined && object.description !== null) {\n message.description = object.description;\n }\n else {\n message.description = \"\";\n }\n if (object.runAs !== undefined && object.runAs !== null) {\n message.runAs = object.runAs;\n }\n else {\n message.runAs = \"\";\n }\n if (object.admin !== undefined && object.admin !== null) {\n message.admin = object.admin;\n }\n else {\n message.admin = \"\";\n }\n if (object.codeId !== undefined && object.codeId !== null) {\n message.codeId = object.codeId;\n }\n else {\n message.codeId = long_1.default.UZERO;\n }\n if (object.label !== undefined && object.label !== null) {\n message.label = object.label;\n }\n else {\n message.label = \"\";\n }\n if (object.msg !== undefined && object.msg !== null) {\n message.msg = object.msg;\n }\n else {\n message.msg = new Uint8Array();\n }\n if (object.funds !== undefined && object.funds !== null) {\n for (const e of object.funds) {\n message.funds.push(coin_1.Coin.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseMigrateContractProposal = { title: \"\", description: \"\", contract: \"\", codeId: long_1.default.UZERO };\nexports.MigrateContractProposal = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.title !== \"\") {\n writer.uint32(10).string(message.title);\n }\n if (message.description !== \"\") {\n writer.uint32(18).string(message.description);\n }\n if (message.contract !== \"\") {\n writer.uint32(34).string(message.contract);\n }\n if (!message.codeId.isZero()) {\n writer.uint32(40).uint64(message.codeId);\n }\n if (message.msg.length !== 0) {\n writer.uint32(50).bytes(message.msg);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMigrateContractProposal);\n message.msg = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.title = reader.string();\n break;\n case 2:\n message.description = reader.string();\n break;\n case 4:\n message.contract = reader.string();\n break;\n case 5:\n message.codeId = reader.uint64();\n break;\n case 6:\n message.msg = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMigrateContractProposal);\n message.msg = new Uint8Array();\n if (object.title !== undefined && object.title !== null) {\n message.title = String(object.title);\n }\n else {\n message.title = \"\";\n }\n if (object.description !== undefined && object.description !== null) {\n message.description = String(object.description);\n }\n else {\n message.description = \"\";\n }\n if (object.contract !== undefined && object.contract !== null) {\n message.contract = String(object.contract);\n }\n else {\n message.contract = \"\";\n }\n if (object.codeId !== undefined && object.codeId !== null) {\n message.codeId = long_1.default.fromString(object.codeId);\n }\n else {\n message.codeId = long_1.default.UZERO;\n }\n if (object.msg !== undefined && object.msg !== null) {\n message.msg = bytesFromBase64(object.msg);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.title !== undefined && (obj.title = message.title);\n message.description !== undefined && (obj.description = message.description);\n message.contract !== undefined && (obj.contract = message.contract);\n message.codeId !== undefined && (obj.codeId = (message.codeId || long_1.default.UZERO).toString());\n message.msg !== undefined &&\n (obj.msg = base64FromBytes(message.msg !== undefined ? message.msg : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMigrateContractProposal);\n if (object.title !== undefined && object.title !== null) {\n message.title = object.title;\n }\n else {\n message.title = \"\";\n }\n if (object.description !== undefined && object.description !== null) {\n message.description = object.description;\n }\n else {\n message.description = \"\";\n }\n if (object.contract !== undefined && object.contract !== null) {\n message.contract = object.contract;\n }\n else {\n message.contract = \"\";\n }\n if (object.codeId !== undefined && object.codeId !== null) {\n message.codeId = object.codeId;\n }\n else {\n message.codeId = long_1.default.UZERO;\n }\n if (object.msg !== undefined && object.msg !== null) {\n message.msg = object.msg;\n }\n else {\n message.msg = new Uint8Array();\n }\n return message;\n },\n};\nconst baseSudoContractProposal = { title: \"\", description: \"\", contract: \"\" };\nexports.SudoContractProposal = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.title !== \"\") {\n writer.uint32(10).string(message.title);\n }\n if (message.description !== \"\") {\n writer.uint32(18).string(message.description);\n }\n if (message.contract !== \"\") {\n writer.uint32(26).string(message.contract);\n }\n if (message.msg.length !== 0) {\n writer.uint32(34).bytes(message.msg);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSudoContractProposal);\n message.msg = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.title = reader.string();\n break;\n case 2:\n message.description = reader.string();\n break;\n case 3:\n message.contract = reader.string();\n break;\n case 4:\n message.msg = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseSudoContractProposal);\n message.msg = new Uint8Array();\n if (object.title !== undefined && object.title !== null) {\n message.title = String(object.title);\n }\n else {\n message.title = \"\";\n }\n if (object.description !== undefined && object.description !== null) {\n message.description = String(object.description);\n }\n else {\n message.description = \"\";\n }\n if (object.contract !== undefined && object.contract !== null) {\n message.contract = String(object.contract);\n }\n else {\n message.contract = \"\";\n }\n if (object.msg !== undefined && object.msg !== null) {\n message.msg = bytesFromBase64(object.msg);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.title !== undefined && (obj.title = message.title);\n message.description !== undefined && (obj.description = message.description);\n message.contract !== undefined && (obj.contract = message.contract);\n message.msg !== undefined &&\n (obj.msg = base64FromBytes(message.msg !== undefined ? message.msg : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseSudoContractProposal);\n if (object.title !== undefined && object.title !== null) {\n message.title = object.title;\n }\n else {\n message.title = \"\";\n }\n if (object.description !== undefined && object.description !== null) {\n message.description = object.description;\n }\n else {\n message.description = \"\";\n }\n if (object.contract !== undefined && object.contract !== null) {\n message.contract = object.contract;\n }\n else {\n message.contract = \"\";\n }\n if (object.msg !== undefined && object.msg !== null) {\n message.msg = object.msg;\n }\n else {\n message.msg = new Uint8Array();\n }\n return message;\n },\n};\nconst baseExecuteContractProposal = { title: \"\", description: \"\", runAs: \"\", contract: \"\" };\nexports.ExecuteContractProposal = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.title !== \"\") {\n writer.uint32(10).string(message.title);\n }\n if (message.description !== \"\") {\n writer.uint32(18).string(message.description);\n }\n if (message.runAs !== \"\") {\n writer.uint32(26).string(message.runAs);\n }\n if (message.contract !== \"\") {\n writer.uint32(34).string(message.contract);\n }\n if (message.msg.length !== 0) {\n writer.uint32(42).bytes(message.msg);\n }\n for (const v of message.funds) {\n coin_1.Coin.encode(v, writer.uint32(50).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseExecuteContractProposal);\n message.funds = [];\n message.msg = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.title = reader.string();\n break;\n case 2:\n message.description = reader.string();\n break;\n case 3:\n message.runAs = reader.string();\n break;\n case 4:\n message.contract = reader.string();\n break;\n case 5:\n message.msg = reader.bytes();\n break;\n case 6:\n message.funds.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseExecuteContractProposal);\n message.funds = [];\n message.msg = new Uint8Array();\n if (object.title !== undefined && object.title !== null) {\n message.title = String(object.title);\n }\n else {\n message.title = \"\";\n }\n if (object.description !== undefined && object.description !== null) {\n message.description = String(object.description);\n }\n else {\n message.description = \"\";\n }\n if (object.runAs !== undefined && object.runAs !== null) {\n message.runAs = String(object.runAs);\n }\n else {\n message.runAs = \"\";\n }\n if (object.contract !== undefined && object.contract !== null) {\n message.contract = String(object.contract);\n }\n else {\n message.contract = \"\";\n }\n if (object.msg !== undefined && object.msg !== null) {\n message.msg = bytesFromBase64(object.msg);\n }\n if (object.funds !== undefined && object.funds !== null) {\n for (const e of object.funds) {\n message.funds.push(coin_1.Coin.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.title !== undefined && (obj.title = message.title);\n message.description !== undefined && (obj.description = message.description);\n message.runAs !== undefined && (obj.runAs = message.runAs);\n message.contract !== undefined && (obj.contract = message.contract);\n message.msg !== undefined &&\n (obj.msg = base64FromBytes(message.msg !== undefined ? message.msg : new Uint8Array()));\n if (message.funds) {\n obj.funds = message.funds.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.funds = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseExecuteContractProposal);\n message.funds = [];\n if (object.title !== undefined && object.title !== null) {\n message.title = object.title;\n }\n else {\n message.title = \"\";\n }\n if (object.description !== undefined && object.description !== null) {\n message.description = object.description;\n }\n else {\n message.description = \"\";\n }\n if (object.runAs !== undefined && object.runAs !== null) {\n message.runAs = object.runAs;\n }\n else {\n message.runAs = \"\";\n }\n if (object.contract !== undefined && object.contract !== null) {\n message.contract = object.contract;\n }\n else {\n message.contract = \"\";\n }\n if (object.msg !== undefined && object.msg !== null) {\n message.msg = object.msg;\n }\n else {\n message.msg = new Uint8Array();\n }\n if (object.funds !== undefined && object.funds !== null) {\n for (const e of object.funds) {\n message.funds.push(coin_1.Coin.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseUpdateAdminProposal = { title: \"\", description: \"\", newAdmin: \"\", contract: \"\" };\nexports.UpdateAdminProposal = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.title !== \"\") {\n writer.uint32(10).string(message.title);\n }\n if (message.description !== \"\") {\n writer.uint32(18).string(message.description);\n }\n if (message.newAdmin !== \"\") {\n writer.uint32(26).string(message.newAdmin);\n }\n if (message.contract !== \"\") {\n writer.uint32(34).string(message.contract);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseUpdateAdminProposal);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.title = reader.string();\n break;\n case 2:\n message.description = reader.string();\n break;\n case 3:\n message.newAdmin = reader.string();\n break;\n case 4:\n message.contract = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseUpdateAdminProposal);\n if (object.title !== undefined && object.title !== null) {\n message.title = String(object.title);\n }\n else {\n message.title = \"\";\n }\n if (object.description !== undefined && object.description !== null) {\n message.description = String(object.description);\n }\n else {\n message.description = \"\";\n }\n if (object.newAdmin !== undefined && object.newAdmin !== null) {\n message.newAdmin = String(object.newAdmin);\n }\n else {\n message.newAdmin = \"\";\n }\n if (object.contract !== undefined && object.contract !== null) {\n message.contract = String(object.contract);\n }\n else {\n message.contract = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.title !== undefined && (obj.title = message.title);\n message.description !== undefined && (obj.description = message.description);\n message.newAdmin !== undefined && (obj.newAdmin = message.newAdmin);\n message.contract !== undefined && (obj.contract = message.contract);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseUpdateAdminProposal);\n if (object.title !== undefined && object.title !== null) {\n message.title = object.title;\n }\n else {\n message.title = \"\";\n }\n if (object.description !== undefined && object.description !== null) {\n message.description = object.description;\n }\n else {\n message.description = \"\";\n }\n if (object.newAdmin !== undefined && object.newAdmin !== null) {\n message.newAdmin = object.newAdmin;\n }\n else {\n message.newAdmin = \"\";\n }\n if (object.contract !== undefined && object.contract !== null) {\n message.contract = object.contract;\n }\n else {\n message.contract = \"\";\n }\n return message;\n },\n};\nconst baseClearAdminProposal = { title: \"\", description: \"\", contract: \"\" };\nexports.ClearAdminProposal = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.title !== \"\") {\n writer.uint32(10).string(message.title);\n }\n if (message.description !== \"\") {\n writer.uint32(18).string(message.description);\n }\n if (message.contract !== \"\") {\n writer.uint32(26).string(message.contract);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseClearAdminProposal);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.title = reader.string();\n break;\n case 2:\n message.description = reader.string();\n break;\n case 3:\n message.contract = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseClearAdminProposal);\n if (object.title !== undefined && object.title !== null) {\n message.title = String(object.title);\n }\n else {\n message.title = \"\";\n }\n if (object.description !== undefined && object.description !== null) {\n message.description = String(object.description);\n }\n else {\n message.description = \"\";\n }\n if (object.contract !== undefined && object.contract !== null) {\n message.contract = String(object.contract);\n }\n else {\n message.contract = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.title !== undefined && (obj.title = message.title);\n message.description !== undefined && (obj.description = message.description);\n message.contract !== undefined && (obj.contract = message.contract);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseClearAdminProposal);\n if (object.title !== undefined && object.title !== null) {\n message.title = object.title;\n }\n else {\n message.title = \"\";\n }\n if (object.description !== undefined && object.description !== null) {\n message.description = object.description;\n }\n else {\n message.description = \"\";\n }\n if (object.contract !== undefined && object.contract !== null) {\n message.contract = object.contract;\n }\n else {\n message.contract = \"\";\n }\n return message;\n },\n};\nconst basePinCodesProposal = { title: \"\", description: \"\", codeIds: long_1.default.UZERO };\nexports.PinCodesProposal = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.title !== \"\") {\n writer.uint32(10).string(message.title);\n }\n if (message.description !== \"\") {\n writer.uint32(18).string(message.description);\n }\n writer.uint32(26).fork();\n for (const v of message.codeIds) {\n writer.uint64(v);\n }\n writer.ldelim();\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, basePinCodesProposal);\n message.codeIds = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.title = reader.string();\n break;\n case 2:\n message.description = reader.string();\n break;\n case 3:\n if ((tag & 7) === 2) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.codeIds.push(reader.uint64());\n }\n }\n else {\n message.codeIds.push(reader.uint64());\n }\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, basePinCodesProposal);\n message.codeIds = [];\n if (object.title !== undefined && object.title !== null) {\n message.title = String(object.title);\n }\n else {\n message.title = \"\";\n }\n if (object.description !== undefined && object.description !== null) {\n message.description = String(object.description);\n }\n else {\n message.description = \"\";\n }\n if (object.codeIds !== undefined && object.codeIds !== null) {\n for (const e of object.codeIds) {\n message.codeIds.push(long_1.default.fromString(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.title !== undefined && (obj.title = message.title);\n message.description !== undefined && (obj.description = message.description);\n if (message.codeIds) {\n obj.codeIds = message.codeIds.map((e) => (e || long_1.default.UZERO).toString());\n }\n else {\n obj.codeIds = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, basePinCodesProposal);\n message.codeIds = [];\n if (object.title !== undefined && object.title !== null) {\n message.title = object.title;\n }\n else {\n message.title = \"\";\n }\n if (object.description !== undefined && object.description !== null) {\n message.description = object.description;\n }\n else {\n message.description = \"\";\n }\n if (object.codeIds !== undefined && object.codeIds !== null) {\n for (const e of object.codeIds) {\n message.codeIds.push(e);\n }\n }\n return message;\n },\n};\nconst baseUnpinCodesProposal = { title: \"\", description: \"\", codeIds: long_1.default.UZERO };\nexports.UnpinCodesProposal = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.title !== \"\") {\n writer.uint32(10).string(message.title);\n }\n if (message.description !== \"\") {\n writer.uint32(18).string(message.description);\n }\n writer.uint32(26).fork();\n for (const v of message.codeIds) {\n writer.uint64(v);\n }\n writer.ldelim();\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseUnpinCodesProposal);\n message.codeIds = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.title = reader.string();\n break;\n case 2:\n message.description = reader.string();\n break;\n case 3:\n if ((tag & 7) === 2) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.codeIds.push(reader.uint64());\n }\n }\n else {\n message.codeIds.push(reader.uint64());\n }\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseUnpinCodesProposal);\n message.codeIds = [];\n if (object.title !== undefined && object.title !== null) {\n message.title = String(object.title);\n }\n else {\n message.title = \"\";\n }\n if (object.description !== undefined && object.description !== null) {\n message.description = String(object.description);\n }\n else {\n message.description = \"\";\n }\n if (object.codeIds !== undefined && object.codeIds !== null) {\n for (const e of object.codeIds) {\n message.codeIds.push(long_1.default.fromString(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.title !== undefined && (obj.title = message.title);\n message.description !== undefined && (obj.description = message.description);\n if (message.codeIds) {\n obj.codeIds = message.codeIds.map((e) => (e || long_1.default.UZERO).toString());\n }\n else {\n obj.codeIds = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseUnpinCodesProposal);\n message.codeIds = [];\n if (object.title !== undefined && object.title !== null) {\n message.title = object.title;\n }\n else {\n message.title = \"\";\n }\n if (object.description !== undefined && object.description !== null) {\n message.description = object.description;\n }\n else {\n message.description = \"\";\n }\n if (object.codeIds !== undefined && object.codeIds !== null) {\n for (const e of object.codeIds) {\n message.codeIds.push(e);\n }\n }\n return message;\n },\n};\nconst baseAccessConfigUpdate = { codeId: long_1.default.UZERO };\nexports.AccessConfigUpdate = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.codeId.isZero()) {\n writer.uint32(8).uint64(message.codeId);\n }\n if (message.instantiatePermission !== undefined) {\n types_1.AccessConfig.encode(message.instantiatePermission, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseAccessConfigUpdate);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.codeId = reader.uint64();\n break;\n case 2:\n message.instantiatePermission = types_1.AccessConfig.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseAccessConfigUpdate);\n if (object.codeId !== undefined && object.codeId !== null) {\n message.codeId = long_1.default.fromString(object.codeId);\n }\n else {\n message.codeId = long_1.default.UZERO;\n }\n if (object.instantiatePermission !== undefined && object.instantiatePermission !== null) {\n message.instantiatePermission = types_1.AccessConfig.fromJSON(object.instantiatePermission);\n }\n else {\n message.instantiatePermission = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.codeId !== undefined && (obj.codeId = (message.codeId || long_1.default.UZERO).toString());\n message.instantiatePermission !== undefined &&\n (obj.instantiatePermission = message.instantiatePermission\n ? types_1.AccessConfig.toJSON(message.instantiatePermission)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseAccessConfigUpdate);\n if (object.codeId !== undefined && object.codeId !== null) {\n message.codeId = object.codeId;\n }\n else {\n message.codeId = long_1.default.UZERO;\n }\n if (object.instantiatePermission !== undefined && object.instantiatePermission !== null) {\n message.instantiatePermission = types_1.AccessConfig.fromPartial(object.instantiatePermission);\n }\n else {\n message.instantiatePermission = undefined;\n }\n return message;\n },\n};\nconst baseUpdateInstantiateConfigProposal = { title: \"\", description: \"\" };\nexports.UpdateInstantiateConfigProposal = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.title !== \"\") {\n writer.uint32(10).string(message.title);\n }\n if (message.description !== \"\") {\n writer.uint32(18).string(message.description);\n }\n for (const v of message.accessConfigUpdates) {\n exports.AccessConfigUpdate.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseUpdateInstantiateConfigProposal);\n message.accessConfigUpdates = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.title = reader.string();\n break;\n case 2:\n message.description = reader.string();\n break;\n case 3:\n message.accessConfigUpdates.push(exports.AccessConfigUpdate.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseUpdateInstantiateConfigProposal);\n message.accessConfigUpdates = [];\n if (object.title !== undefined && object.title !== null) {\n message.title = String(object.title);\n }\n else {\n message.title = \"\";\n }\n if (object.description !== undefined && object.description !== null) {\n message.description = String(object.description);\n }\n else {\n message.description = \"\";\n }\n if (object.accessConfigUpdates !== undefined && object.accessConfigUpdates !== null) {\n for (const e of object.accessConfigUpdates) {\n message.accessConfigUpdates.push(exports.AccessConfigUpdate.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.title !== undefined && (obj.title = message.title);\n message.description !== undefined && (obj.description = message.description);\n if (message.accessConfigUpdates) {\n obj.accessConfigUpdates = message.accessConfigUpdates.map((e) => e ? exports.AccessConfigUpdate.toJSON(e) : undefined);\n }\n else {\n obj.accessConfigUpdates = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseUpdateInstantiateConfigProposal);\n message.accessConfigUpdates = [];\n if (object.title !== undefined && object.title !== null) {\n message.title = object.title;\n }\n else {\n message.title = \"\";\n }\n if (object.description !== undefined && object.description !== null) {\n message.description = object.description;\n }\n else {\n message.description = \"\";\n }\n if (object.accessConfigUpdates !== undefined && object.accessConfigUpdates !== null) {\n for (const e of object.accessConfigUpdates) {\n message.accessConfigUpdates.push(exports.AccessConfigUpdate.fromPartial(e));\n }\n }\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=proposal.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GrpcWebImpl = exports.MsgClearAdminDesc = exports.MsgUpdateAdminDesc = exports.MsgMigrateContractDesc = exports.MsgExecuteContractDesc = exports.MsgInstantiateContractDesc = exports.MsgStoreCodeDesc = exports.MsgDesc = exports.MsgClientImpl = exports.MsgClearAdminResponse = exports.MsgClearAdmin = exports.MsgUpdateAdminResponse = exports.MsgUpdateAdmin = exports.MsgMigrateContractResponse = exports.MsgMigrateContract = exports.MsgExecuteContractResponse = exports.MsgExecuteContract = exports.MsgInstantiateContractResponse = exports.MsgInstantiateContract = exports.MsgStoreCodeResponse = exports.MsgStoreCode = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst grpc_web_1 = require(\"@improbable-eng/grpc-web\");\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst types_1 = require(\"../../../cosmwasm/wasm/v1/types\");\nconst browser_headers_1 = require(\"browser-headers\");\nconst coin_1 = require(\"../../../cosmos/base/v1beta1/coin\");\nexports.protobufPackage = \"cosmwasm.wasm.v1\";\nconst baseMsgStoreCode = { sender: \"\" };\nexports.MsgStoreCode = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.sender !== \"\") {\n writer.uint32(10).string(message.sender);\n }\n if (message.wasmByteCode.length !== 0) {\n writer.uint32(18).bytes(message.wasmByteCode);\n }\n if (message.instantiatePermission !== undefined) {\n types_1.AccessConfig.encode(message.instantiatePermission, writer.uint32(42).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgStoreCode);\n message.wasmByteCode = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sender = reader.string();\n break;\n case 2:\n message.wasmByteCode = reader.bytes();\n break;\n case 5:\n message.instantiatePermission = types_1.AccessConfig.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgStoreCode);\n message.wasmByteCode = new Uint8Array();\n if (object.sender !== undefined && object.sender !== null) {\n message.sender = String(object.sender);\n }\n else {\n message.sender = \"\";\n }\n if (object.wasmByteCode !== undefined && object.wasmByteCode !== null) {\n message.wasmByteCode = bytesFromBase64(object.wasmByteCode);\n }\n if (object.instantiatePermission !== undefined && object.instantiatePermission !== null) {\n message.instantiatePermission = types_1.AccessConfig.fromJSON(object.instantiatePermission);\n }\n else {\n message.instantiatePermission = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.sender !== undefined && (obj.sender = message.sender);\n message.wasmByteCode !== undefined &&\n (obj.wasmByteCode = base64FromBytes(message.wasmByteCode !== undefined ? message.wasmByteCode : new Uint8Array()));\n message.instantiatePermission !== undefined &&\n (obj.instantiatePermission = message.instantiatePermission\n ? types_1.AccessConfig.toJSON(message.instantiatePermission)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgStoreCode);\n if (object.sender !== undefined && object.sender !== null) {\n message.sender = object.sender;\n }\n else {\n message.sender = \"\";\n }\n if (object.wasmByteCode !== undefined && object.wasmByteCode !== null) {\n message.wasmByteCode = object.wasmByteCode;\n }\n else {\n message.wasmByteCode = new Uint8Array();\n }\n if (object.instantiatePermission !== undefined && object.instantiatePermission !== null) {\n message.instantiatePermission = types_1.AccessConfig.fromPartial(object.instantiatePermission);\n }\n else {\n message.instantiatePermission = undefined;\n }\n return message;\n },\n};\nconst baseMsgStoreCodeResponse = { codeId: long_1.default.UZERO };\nexports.MsgStoreCodeResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.codeId.isZero()) {\n writer.uint32(8).uint64(message.codeId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgStoreCodeResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.codeId = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgStoreCodeResponse);\n if (object.codeId !== undefined && object.codeId !== null) {\n message.codeId = long_1.default.fromString(object.codeId);\n }\n else {\n message.codeId = long_1.default.UZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.codeId !== undefined && (obj.codeId = (message.codeId || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgStoreCodeResponse);\n if (object.codeId !== undefined && object.codeId !== null) {\n message.codeId = object.codeId;\n }\n else {\n message.codeId = long_1.default.UZERO;\n }\n return message;\n },\n};\nconst baseMsgInstantiateContract = { sender: \"\", admin: \"\", codeId: long_1.default.UZERO, label: \"\" };\nexports.MsgInstantiateContract = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.sender !== \"\") {\n writer.uint32(10).string(message.sender);\n }\n if (message.admin !== \"\") {\n writer.uint32(18).string(message.admin);\n }\n if (!message.codeId.isZero()) {\n writer.uint32(24).uint64(message.codeId);\n }\n if (message.label !== \"\") {\n writer.uint32(34).string(message.label);\n }\n if (message.msg.length !== 0) {\n writer.uint32(42).bytes(message.msg);\n }\n for (const v of message.funds) {\n coin_1.Coin.encode(v, writer.uint32(50).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgInstantiateContract);\n message.funds = [];\n message.msg = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sender = reader.string();\n break;\n case 2:\n message.admin = reader.string();\n break;\n case 3:\n message.codeId = reader.uint64();\n break;\n case 4:\n message.label = reader.string();\n break;\n case 5:\n message.msg = reader.bytes();\n break;\n case 6:\n message.funds.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgInstantiateContract);\n message.funds = [];\n message.msg = new Uint8Array();\n if (object.sender !== undefined && object.sender !== null) {\n message.sender = String(object.sender);\n }\n else {\n message.sender = \"\";\n }\n if (object.admin !== undefined && object.admin !== null) {\n message.admin = String(object.admin);\n }\n else {\n message.admin = \"\";\n }\n if (object.codeId !== undefined && object.codeId !== null) {\n message.codeId = long_1.default.fromString(object.codeId);\n }\n else {\n message.codeId = long_1.default.UZERO;\n }\n if (object.label !== undefined && object.label !== null) {\n message.label = String(object.label);\n }\n else {\n message.label = \"\";\n }\n if (object.msg !== undefined && object.msg !== null) {\n message.msg = bytesFromBase64(object.msg);\n }\n if (object.funds !== undefined && object.funds !== null) {\n for (const e of object.funds) {\n message.funds.push(coin_1.Coin.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.sender !== undefined && (obj.sender = message.sender);\n message.admin !== undefined && (obj.admin = message.admin);\n message.codeId !== undefined && (obj.codeId = (message.codeId || long_1.default.UZERO).toString());\n message.label !== undefined && (obj.label = message.label);\n message.msg !== undefined &&\n (obj.msg = base64FromBytes(message.msg !== undefined ? message.msg : new Uint8Array()));\n if (message.funds) {\n obj.funds = message.funds.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.funds = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgInstantiateContract);\n message.funds = [];\n if (object.sender !== undefined && object.sender !== null) {\n message.sender = object.sender;\n }\n else {\n message.sender = \"\";\n }\n if (object.admin !== undefined && object.admin !== null) {\n message.admin = object.admin;\n }\n else {\n message.admin = \"\";\n }\n if (object.codeId !== undefined && object.codeId !== null) {\n message.codeId = object.codeId;\n }\n else {\n message.codeId = long_1.default.UZERO;\n }\n if (object.label !== undefined && object.label !== null) {\n message.label = object.label;\n }\n else {\n message.label = \"\";\n }\n if (object.msg !== undefined && object.msg !== null) {\n message.msg = object.msg;\n }\n else {\n message.msg = new Uint8Array();\n }\n if (object.funds !== undefined && object.funds !== null) {\n for (const e of object.funds) {\n message.funds.push(coin_1.Coin.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseMsgInstantiateContractResponse = { address: \"\" };\nexports.MsgInstantiateContractResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.data.length !== 0) {\n writer.uint32(18).bytes(message.data);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgInstantiateContractResponse);\n message.data = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.data = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgInstantiateContractResponse);\n message.data = new Uint8Array();\n if (object.address !== undefined && object.address !== null) {\n message.address = String(object.address);\n }\n else {\n message.address = \"\";\n }\n if (object.data !== undefined && object.data !== null) {\n message.data = bytesFromBase64(object.data);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n message.data !== undefined &&\n (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgInstantiateContractResponse);\n if (object.address !== undefined && object.address !== null) {\n message.address = object.address;\n }\n else {\n message.address = \"\";\n }\n if (object.data !== undefined && object.data !== null) {\n message.data = object.data;\n }\n else {\n message.data = new Uint8Array();\n }\n return message;\n },\n};\nconst baseMsgExecuteContract = { sender: \"\", contract: \"\" };\nexports.MsgExecuteContract = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.sender !== \"\") {\n writer.uint32(10).string(message.sender);\n }\n if (message.contract !== \"\") {\n writer.uint32(18).string(message.contract);\n }\n if (message.msg.length !== 0) {\n writer.uint32(26).bytes(message.msg);\n }\n for (const v of message.funds) {\n coin_1.Coin.encode(v, writer.uint32(42).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgExecuteContract);\n message.funds = [];\n message.msg = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sender = reader.string();\n break;\n case 2:\n message.contract = reader.string();\n break;\n case 3:\n message.msg = reader.bytes();\n break;\n case 5:\n message.funds.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgExecuteContract);\n message.funds = [];\n message.msg = new Uint8Array();\n if (object.sender !== undefined && object.sender !== null) {\n message.sender = String(object.sender);\n }\n else {\n message.sender = \"\";\n }\n if (object.contract !== undefined && object.contract !== null) {\n message.contract = String(object.contract);\n }\n else {\n message.contract = \"\";\n }\n if (object.msg !== undefined && object.msg !== null) {\n message.msg = bytesFromBase64(object.msg);\n }\n if (object.funds !== undefined && object.funds !== null) {\n for (const e of object.funds) {\n message.funds.push(coin_1.Coin.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.sender !== undefined && (obj.sender = message.sender);\n message.contract !== undefined && (obj.contract = message.contract);\n message.msg !== undefined &&\n (obj.msg = base64FromBytes(message.msg !== undefined ? message.msg : new Uint8Array()));\n if (message.funds) {\n obj.funds = message.funds.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.funds = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgExecuteContract);\n message.funds = [];\n if (object.sender !== undefined && object.sender !== null) {\n message.sender = object.sender;\n }\n else {\n message.sender = \"\";\n }\n if (object.contract !== undefined && object.contract !== null) {\n message.contract = object.contract;\n }\n else {\n message.contract = \"\";\n }\n if (object.msg !== undefined && object.msg !== null) {\n message.msg = object.msg;\n }\n else {\n message.msg = new Uint8Array();\n }\n if (object.funds !== undefined && object.funds !== null) {\n for (const e of object.funds) {\n message.funds.push(coin_1.Coin.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseMsgExecuteContractResponse = {};\nexports.MsgExecuteContractResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.data.length !== 0) {\n writer.uint32(10).bytes(message.data);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgExecuteContractResponse);\n message.data = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.data = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgExecuteContractResponse);\n message.data = new Uint8Array();\n if (object.data !== undefined && object.data !== null) {\n message.data = bytesFromBase64(object.data);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.data !== undefined &&\n (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgExecuteContractResponse);\n if (object.data !== undefined && object.data !== null) {\n message.data = object.data;\n }\n else {\n message.data = new Uint8Array();\n }\n return message;\n },\n};\nconst baseMsgMigrateContract = { sender: \"\", contract: \"\", codeId: long_1.default.UZERO };\nexports.MsgMigrateContract = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.sender !== \"\") {\n writer.uint32(10).string(message.sender);\n }\n if (message.contract !== \"\") {\n writer.uint32(18).string(message.contract);\n }\n if (!message.codeId.isZero()) {\n writer.uint32(24).uint64(message.codeId);\n }\n if (message.msg.length !== 0) {\n writer.uint32(34).bytes(message.msg);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgMigrateContract);\n message.msg = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sender = reader.string();\n break;\n case 2:\n message.contract = reader.string();\n break;\n case 3:\n message.codeId = reader.uint64();\n break;\n case 4:\n message.msg = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgMigrateContract);\n message.msg = new Uint8Array();\n if (object.sender !== undefined && object.sender !== null) {\n message.sender = String(object.sender);\n }\n else {\n message.sender = \"\";\n }\n if (object.contract !== undefined && object.contract !== null) {\n message.contract = String(object.contract);\n }\n else {\n message.contract = \"\";\n }\n if (object.codeId !== undefined && object.codeId !== null) {\n message.codeId = long_1.default.fromString(object.codeId);\n }\n else {\n message.codeId = long_1.default.UZERO;\n }\n if (object.msg !== undefined && object.msg !== null) {\n message.msg = bytesFromBase64(object.msg);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.sender !== undefined && (obj.sender = message.sender);\n message.contract !== undefined && (obj.contract = message.contract);\n message.codeId !== undefined && (obj.codeId = (message.codeId || long_1.default.UZERO).toString());\n message.msg !== undefined &&\n (obj.msg = base64FromBytes(message.msg !== undefined ? message.msg : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgMigrateContract);\n if (object.sender !== undefined && object.sender !== null) {\n message.sender = object.sender;\n }\n else {\n message.sender = \"\";\n }\n if (object.contract !== undefined && object.contract !== null) {\n message.contract = object.contract;\n }\n else {\n message.contract = \"\";\n }\n if (object.codeId !== undefined && object.codeId !== null) {\n message.codeId = object.codeId;\n }\n else {\n message.codeId = long_1.default.UZERO;\n }\n if (object.msg !== undefined && object.msg !== null) {\n message.msg = object.msg;\n }\n else {\n message.msg = new Uint8Array();\n }\n return message;\n },\n};\nconst baseMsgMigrateContractResponse = {};\nexports.MsgMigrateContractResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.data.length !== 0) {\n writer.uint32(10).bytes(message.data);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgMigrateContractResponse);\n message.data = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.data = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgMigrateContractResponse);\n message.data = new Uint8Array();\n if (object.data !== undefined && object.data !== null) {\n message.data = bytesFromBase64(object.data);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.data !== undefined &&\n (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgMigrateContractResponse);\n if (object.data !== undefined && object.data !== null) {\n message.data = object.data;\n }\n else {\n message.data = new Uint8Array();\n }\n return message;\n },\n};\nconst baseMsgUpdateAdmin = { sender: \"\", newAdmin: \"\", contract: \"\" };\nexports.MsgUpdateAdmin = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.sender !== \"\") {\n writer.uint32(10).string(message.sender);\n }\n if (message.newAdmin !== \"\") {\n writer.uint32(18).string(message.newAdmin);\n }\n if (message.contract !== \"\") {\n writer.uint32(26).string(message.contract);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgUpdateAdmin);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sender = reader.string();\n break;\n case 2:\n message.newAdmin = reader.string();\n break;\n case 3:\n message.contract = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgUpdateAdmin);\n if (object.sender !== undefined && object.sender !== null) {\n message.sender = String(object.sender);\n }\n else {\n message.sender = \"\";\n }\n if (object.newAdmin !== undefined && object.newAdmin !== null) {\n message.newAdmin = String(object.newAdmin);\n }\n else {\n message.newAdmin = \"\";\n }\n if (object.contract !== undefined && object.contract !== null) {\n message.contract = String(object.contract);\n }\n else {\n message.contract = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.sender !== undefined && (obj.sender = message.sender);\n message.newAdmin !== undefined && (obj.newAdmin = message.newAdmin);\n message.contract !== undefined && (obj.contract = message.contract);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgUpdateAdmin);\n if (object.sender !== undefined && object.sender !== null) {\n message.sender = object.sender;\n }\n else {\n message.sender = \"\";\n }\n if (object.newAdmin !== undefined && object.newAdmin !== null) {\n message.newAdmin = object.newAdmin;\n }\n else {\n message.newAdmin = \"\";\n }\n if (object.contract !== undefined && object.contract !== null) {\n message.contract = object.contract;\n }\n else {\n message.contract = \"\";\n }\n return message;\n },\n};\nconst baseMsgUpdateAdminResponse = {};\nexports.MsgUpdateAdminResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgUpdateAdminResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgUpdateAdminResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgUpdateAdminResponse);\n return message;\n },\n};\nconst baseMsgClearAdmin = { sender: \"\", contract: \"\" };\nexports.MsgClearAdmin = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.sender !== \"\") {\n writer.uint32(10).string(message.sender);\n }\n if (message.contract !== \"\") {\n writer.uint32(26).string(message.contract);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgClearAdmin);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sender = reader.string();\n break;\n case 3:\n message.contract = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgClearAdmin);\n if (object.sender !== undefined && object.sender !== null) {\n message.sender = String(object.sender);\n }\n else {\n message.sender = \"\";\n }\n if (object.contract !== undefined && object.contract !== null) {\n message.contract = String(object.contract);\n }\n else {\n message.contract = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.sender !== undefined && (obj.sender = message.sender);\n message.contract !== undefined && (obj.contract = message.contract);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgClearAdmin);\n if (object.sender !== undefined && object.sender !== null) {\n message.sender = object.sender;\n }\n else {\n message.sender = \"\";\n }\n if (object.contract !== undefined && object.contract !== null) {\n message.contract = object.contract;\n }\n else {\n message.contract = \"\";\n }\n return message;\n },\n};\nconst baseMsgClearAdminResponse = {};\nexports.MsgClearAdminResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgClearAdminResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgClearAdminResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgClearAdminResponse);\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.StoreCode = this.StoreCode.bind(this);\n this.InstantiateContract = this.InstantiateContract.bind(this);\n this.ExecuteContract = this.ExecuteContract.bind(this);\n this.MigrateContract = this.MigrateContract.bind(this);\n this.UpdateAdmin = this.UpdateAdmin.bind(this);\n this.ClearAdmin = this.ClearAdmin.bind(this);\n }\n StoreCode(request, metadata) {\n return this.rpc.unary(exports.MsgStoreCodeDesc, exports.MsgStoreCode.fromPartial(request), metadata);\n }\n InstantiateContract(request, metadata) {\n return this.rpc.unary(exports.MsgInstantiateContractDesc, exports.MsgInstantiateContract.fromPartial(request), metadata);\n }\n ExecuteContract(request, metadata) {\n return this.rpc.unary(exports.MsgExecuteContractDesc, exports.MsgExecuteContract.fromPartial(request), metadata);\n }\n MigrateContract(request, metadata) {\n return this.rpc.unary(exports.MsgMigrateContractDesc, exports.MsgMigrateContract.fromPartial(request), metadata);\n }\n UpdateAdmin(request, metadata) {\n return this.rpc.unary(exports.MsgUpdateAdminDesc, exports.MsgUpdateAdmin.fromPartial(request), metadata);\n }\n ClearAdmin(request, metadata) {\n return this.rpc.unary(exports.MsgClearAdminDesc, exports.MsgClearAdmin.fromPartial(request), metadata);\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\nexports.MsgDesc = {\n serviceName: \"cosmwasm.wasm.v1.Msg\",\n};\nexports.MsgStoreCodeDesc = {\n methodName: \"StoreCode\",\n service: exports.MsgDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.MsgStoreCode.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.MsgStoreCodeResponse.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nexports.MsgInstantiateContractDesc = {\n methodName: \"InstantiateContract\",\n service: exports.MsgDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.MsgInstantiateContract.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.MsgInstantiateContractResponse.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nexports.MsgExecuteContractDesc = {\n methodName: \"ExecuteContract\",\n service: exports.MsgDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.MsgExecuteContract.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.MsgExecuteContractResponse.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nexports.MsgMigrateContractDesc = {\n methodName: \"MigrateContract\",\n service: exports.MsgDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.MsgMigrateContract.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.MsgMigrateContractResponse.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nexports.MsgUpdateAdminDesc = {\n methodName: \"UpdateAdmin\",\n service: exports.MsgDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.MsgUpdateAdmin.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.MsgUpdateAdminResponse.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nexports.MsgClearAdminDesc = {\n methodName: \"ClearAdmin\",\n service: exports.MsgDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.MsgClearAdmin.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.MsgClearAdminResponse.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nclass GrpcWebImpl {\n constructor(host, options) {\n this.host = host;\n this.options = options;\n }\n unary(methodDesc, _request, metadata) {\n var _a;\n const request = Object.assign(Object.assign({}, _request), methodDesc.requestType);\n const maybeCombinedMetadata = metadata && this.options.metadata\n ? new browser_headers_1.BrowserHeaders(Object.assign(Object.assign({}, (_a = this.options) === null || _a === void 0 ? void 0 : _a.metadata.headersMap), metadata === null || metadata === void 0 ? void 0 : metadata.headersMap))\n : metadata || this.options.metadata;\n return new Promise((resolve, reject) => {\n grpc_web_1.grpc.unary(methodDesc, {\n request,\n host: this.host,\n metadata: maybeCombinedMetadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (response.status === grpc_web_1.grpc.Code.OK) {\n resolve(response.message);\n }\n else {\n const err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n reject(err);\n }\n },\n });\n });\n }\n}\nexports.GrpcWebImpl = GrpcWebImpl;\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=tx.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Model = exports.AbsoluteTxPosition = exports.ContractCodeHistoryEntry = exports.ContractInfo = exports.CodeInfo = exports.Params = exports.AccessConfig = exports.AccessTypeParam = exports.contractCodeHistoryOperationTypeToJSON = exports.contractCodeHistoryOperationTypeFromJSON = exports.ContractCodeHistoryOperationType = exports.accessTypeToJSON = exports.accessTypeFromJSON = exports.AccessType = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst any_1 = require(\"../../../google/protobuf/any\");\nexports.protobufPackage = \"cosmwasm.wasm.v1\";\n/** AccessType permission types */\nvar AccessType;\n(function (AccessType) {\n /** ACCESS_TYPE_UNSPECIFIED - AccessTypeUnspecified placeholder for empty value */\n AccessType[AccessType[\"ACCESS_TYPE_UNSPECIFIED\"] = 0] = \"ACCESS_TYPE_UNSPECIFIED\";\n /** ACCESS_TYPE_NOBODY - AccessTypeNobody forbidden */\n AccessType[AccessType[\"ACCESS_TYPE_NOBODY\"] = 1] = \"ACCESS_TYPE_NOBODY\";\n /** ACCESS_TYPE_ONLY_ADDRESS - AccessTypeOnlyAddress restricted to an address */\n AccessType[AccessType[\"ACCESS_TYPE_ONLY_ADDRESS\"] = 2] = \"ACCESS_TYPE_ONLY_ADDRESS\";\n /** ACCESS_TYPE_EVERYBODY - AccessTypeEverybody unrestricted */\n AccessType[AccessType[\"ACCESS_TYPE_EVERYBODY\"] = 3] = \"ACCESS_TYPE_EVERYBODY\";\n AccessType[AccessType[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(AccessType = exports.AccessType || (exports.AccessType = {}));\nfunction accessTypeFromJSON(object) {\n switch (object) {\n case 0:\n case \"ACCESS_TYPE_UNSPECIFIED\":\n return AccessType.ACCESS_TYPE_UNSPECIFIED;\n case 1:\n case \"ACCESS_TYPE_NOBODY\":\n return AccessType.ACCESS_TYPE_NOBODY;\n case 2:\n case \"ACCESS_TYPE_ONLY_ADDRESS\":\n return AccessType.ACCESS_TYPE_ONLY_ADDRESS;\n case 3:\n case \"ACCESS_TYPE_EVERYBODY\":\n return AccessType.ACCESS_TYPE_EVERYBODY;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return AccessType.UNRECOGNIZED;\n }\n}\nexports.accessTypeFromJSON = accessTypeFromJSON;\nfunction accessTypeToJSON(object) {\n switch (object) {\n case AccessType.ACCESS_TYPE_UNSPECIFIED:\n return \"ACCESS_TYPE_UNSPECIFIED\";\n case AccessType.ACCESS_TYPE_NOBODY:\n return \"ACCESS_TYPE_NOBODY\";\n case AccessType.ACCESS_TYPE_ONLY_ADDRESS:\n return \"ACCESS_TYPE_ONLY_ADDRESS\";\n case AccessType.ACCESS_TYPE_EVERYBODY:\n return \"ACCESS_TYPE_EVERYBODY\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.accessTypeToJSON = accessTypeToJSON;\n/** ContractCodeHistoryOperationType actions that caused a code change */\nvar ContractCodeHistoryOperationType;\n(function (ContractCodeHistoryOperationType) {\n /** CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED - ContractCodeHistoryOperationTypeUnspecified placeholder for empty value */\n ContractCodeHistoryOperationType[ContractCodeHistoryOperationType[\"CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED\"] = 0] = \"CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED\";\n /** CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT - ContractCodeHistoryOperationTypeInit on chain contract instantiation */\n ContractCodeHistoryOperationType[ContractCodeHistoryOperationType[\"CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT\"] = 1] = \"CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT\";\n /** CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE - ContractCodeHistoryOperationTypeMigrate code migration */\n ContractCodeHistoryOperationType[ContractCodeHistoryOperationType[\"CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE\"] = 2] = \"CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE\";\n /** CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS - ContractCodeHistoryOperationTypeGenesis based on genesis data */\n ContractCodeHistoryOperationType[ContractCodeHistoryOperationType[\"CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS\"] = 3] = \"CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS\";\n ContractCodeHistoryOperationType[ContractCodeHistoryOperationType[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(ContractCodeHistoryOperationType = exports.ContractCodeHistoryOperationType || (exports.ContractCodeHistoryOperationType = {}));\nfunction contractCodeHistoryOperationTypeFromJSON(object) {\n switch (object) {\n case 0:\n case \"CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED\":\n return ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED;\n case 1:\n case \"CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT\":\n return ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT;\n case 2:\n case \"CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE\":\n return ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE;\n case 3:\n case \"CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS\":\n return ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return ContractCodeHistoryOperationType.UNRECOGNIZED;\n }\n}\nexports.contractCodeHistoryOperationTypeFromJSON = contractCodeHistoryOperationTypeFromJSON;\nfunction contractCodeHistoryOperationTypeToJSON(object) {\n switch (object) {\n case ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED:\n return \"CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED\";\n case ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT:\n return \"CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT\";\n case ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE:\n return \"CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE\";\n case ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS:\n return \"CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.contractCodeHistoryOperationTypeToJSON = contractCodeHistoryOperationTypeToJSON;\nconst baseAccessTypeParam = { value: 0 };\nexports.AccessTypeParam = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.value !== 0) {\n writer.uint32(8).int32(message.value);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseAccessTypeParam);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.value = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseAccessTypeParam);\n if (object.value !== undefined && object.value !== null) {\n message.value = accessTypeFromJSON(object.value);\n }\n else {\n message.value = 0;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.value !== undefined && (obj.value = accessTypeToJSON(message.value));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseAccessTypeParam);\n if (object.value !== undefined && object.value !== null) {\n message.value = object.value;\n }\n else {\n message.value = 0;\n }\n return message;\n },\n};\nconst baseAccessConfig = { permission: 0, address: \"\" };\nexports.AccessConfig = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.permission !== 0) {\n writer.uint32(8).int32(message.permission);\n }\n if (message.address !== \"\") {\n writer.uint32(18).string(message.address);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseAccessConfig);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.permission = reader.int32();\n break;\n case 2:\n message.address = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseAccessConfig);\n if (object.permission !== undefined && object.permission !== null) {\n message.permission = accessTypeFromJSON(object.permission);\n }\n else {\n message.permission = 0;\n }\n if (object.address !== undefined && object.address !== null) {\n message.address = String(object.address);\n }\n else {\n message.address = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.permission !== undefined && (obj.permission = accessTypeToJSON(message.permission));\n message.address !== undefined && (obj.address = message.address);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseAccessConfig);\n if (object.permission !== undefined && object.permission !== null) {\n message.permission = object.permission;\n }\n else {\n message.permission = 0;\n }\n if (object.address !== undefined && object.address !== null) {\n message.address = object.address;\n }\n else {\n message.address = \"\";\n }\n return message;\n },\n};\nconst baseParams = { instantiateDefaultPermission: 0 };\nexports.Params = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.codeUploadAccess !== undefined) {\n exports.AccessConfig.encode(message.codeUploadAccess, writer.uint32(10).fork()).ldelim();\n }\n if (message.instantiateDefaultPermission !== 0) {\n writer.uint32(16).int32(message.instantiateDefaultPermission);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseParams);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.codeUploadAccess = exports.AccessConfig.decode(reader, reader.uint32());\n break;\n case 2:\n message.instantiateDefaultPermission = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseParams);\n if (object.codeUploadAccess !== undefined && object.codeUploadAccess !== null) {\n message.codeUploadAccess = exports.AccessConfig.fromJSON(object.codeUploadAccess);\n }\n else {\n message.codeUploadAccess = undefined;\n }\n if (object.instantiateDefaultPermission !== undefined && object.instantiateDefaultPermission !== null) {\n message.instantiateDefaultPermission = accessTypeFromJSON(object.instantiateDefaultPermission);\n }\n else {\n message.instantiateDefaultPermission = 0;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.codeUploadAccess !== undefined &&\n (obj.codeUploadAccess = message.codeUploadAccess\n ? exports.AccessConfig.toJSON(message.codeUploadAccess)\n : undefined);\n message.instantiateDefaultPermission !== undefined &&\n (obj.instantiateDefaultPermission = accessTypeToJSON(message.instantiateDefaultPermission));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseParams);\n if (object.codeUploadAccess !== undefined && object.codeUploadAccess !== null) {\n message.codeUploadAccess = exports.AccessConfig.fromPartial(object.codeUploadAccess);\n }\n else {\n message.codeUploadAccess = undefined;\n }\n if (object.instantiateDefaultPermission !== undefined && object.instantiateDefaultPermission !== null) {\n message.instantiateDefaultPermission = object.instantiateDefaultPermission;\n }\n else {\n message.instantiateDefaultPermission = 0;\n }\n return message;\n },\n};\nconst baseCodeInfo = { creator: \"\" };\nexports.CodeInfo = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.codeHash.length !== 0) {\n writer.uint32(10).bytes(message.codeHash);\n }\n if (message.creator !== \"\") {\n writer.uint32(18).string(message.creator);\n }\n if (message.instantiateConfig !== undefined) {\n exports.AccessConfig.encode(message.instantiateConfig, writer.uint32(42).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseCodeInfo);\n message.codeHash = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.codeHash = reader.bytes();\n break;\n case 2:\n message.creator = reader.string();\n break;\n case 5:\n message.instantiateConfig = exports.AccessConfig.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseCodeInfo);\n message.codeHash = new Uint8Array();\n if (object.codeHash !== undefined && object.codeHash !== null) {\n message.codeHash = bytesFromBase64(object.codeHash);\n }\n if (object.creator !== undefined && object.creator !== null) {\n message.creator = String(object.creator);\n }\n else {\n message.creator = \"\";\n }\n if (object.instantiateConfig !== undefined && object.instantiateConfig !== null) {\n message.instantiateConfig = exports.AccessConfig.fromJSON(object.instantiateConfig);\n }\n else {\n message.instantiateConfig = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.codeHash !== undefined &&\n (obj.codeHash = base64FromBytes(message.codeHash !== undefined ? message.codeHash : new Uint8Array()));\n message.creator !== undefined && (obj.creator = message.creator);\n message.instantiateConfig !== undefined &&\n (obj.instantiateConfig = message.instantiateConfig\n ? exports.AccessConfig.toJSON(message.instantiateConfig)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseCodeInfo);\n if (object.codeHash !== undefined && object.codeHash !== null) {\n message.codeHash = object.codeHash;\n }\n else {\n message.codeHash = new Uint8Array();\n }\n if (object.creator !== undefined && object.creator !== null) {\n message.creator = object.creator;\n }\n else {\n message.creator = \"\";\n }\n if (object.instantiateConfig !== undefined && object.instantiateConfig !== null) {\n message.instantiateConfig = exports.AccessConfig.fromPartial(object.instantiateConfig);\n }\n else {\n message.instantiateConfig = undefined;\n }\n return message;\n },\n};\nconst baseContractInfo = { codeId: long_1.default.UZERO, creator: \"\", admin: \"\", label: \"\", ibcPortId: \"\" };\nexports.ContractInfo = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.codeId.isZero()) {\n writer.uint32(8).uint64(message.codeId);\n }\n if (message.creator !== \"\") {\n writer.uint32(18).string(message.creator);\n }\n if (message.admin !== \"\") {\n writer.uint32(26).string(message.admin);\n }\n if (message.label !== \"\") {\n writer.uint32(34).string(message.label);\n }\n if (message.created !== undefined) {\n exports.AbsoluteTxPosition.encode(message.created, writer.uint32(42).fork()).ldelim();\n }\n if (message.ibcPortId !== \"\") {\n writer.uint32(50).string(message.ibcPortId);\n }\n if (message.extension !== undefined) {\n any_1.Any.encode(message.extension, writer.uint32(58).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseContractInfo);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.codeId = reader.uint64();\n break;\n case 2:\n message.creator = reader.string();\n break;\n case 3:\n message.admin = reader.string();\n break;\n case 4:\n message.label = reader.string();\n break;\n case 5:\n message.created = exports.AbsoluteTxPosition.decode(reader, reader.uint32());\n break;\n case 6:\n message.ibcPortId = reader.string();\n break;\n case 7:\n message.extension = any_1.Any.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseContractInfo);\n if (object.codeId !== undefined && object.codeId !== null) {\n message.codeId = long_1.default.fromString(object.codeId);\n }\n else {\n message.codeId = long_1.default.UZERO;\n }\n if (object.creator !== undefined && object.creator !== null) {\n message.creator = String(object.creator);\n }\n else {\n message.creator = \"\";\n }\n if (object.admin !== undefined && object.admin !== null) {\n message.admin = String(object.admin);\n }\n else {\n message.admin = \"\";\n }\n if (object.label !== undefined && object.label !== null) {\n message.label = String(object.label);\n }\n else {\n message.label = \"\";\n }\n if (object.created !== undefined && object.created !== null) {\n message.created = exports.AbsoluteTxPosition.fromJSON(object.created);\n }\n else {\n message.created = undefined;\n }\n if (object.ibcPortId !== undefined && object.ibcPortId !== null) {\n message.ibcPortId = String(object.ibcPortId);\n }\n else {\n message.ibcPortId = \"\";\n }\n if (object.extension !== undefined && object.extension !== null) {\n message.extension = any_1.Any.fromJSON(object.extension);\n }\n else {\n message.extension = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.codeId !== undefined && (obj.codeId = (message.codeId || long_1.default.UZERO).toString());\n message.creator !== undefined && (obj.creator = message.creator);\n message.admin !== undefined && (obj.admin = message.admin);\n message.label !== undefined && (obj.label = message.label);\n message.created !== undefined &&\n (obj.created = message.created ? exports.AbsoluteTxPosition.toJSON(message.created) : undefined);\n message.ibcPortId !== undefined && (obj.ibcPortId = message.ibcPortId);\n message.extension !== undefined &&\n (obj.extension = message.extension ? any_1.Any.toJSON(message.extension) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseContractInfo);\n if (object.codeId !== undefined && object.codeId !== null) {\n message.codeId = object.codeId;\n }\n else {\n message.codeId = long_1.default.UZERO;\n }\n if (object.creator !== undefined && object.creator !== null) {\n message.creator = object.creator;\n }\n else {\n message.creator = \"\";\n }\n if (object.admin !== undefined && object.admin !== null) {\n message.admin = object.admin;\n }\n else {\n message.admin = \"\";\n }\n if (object.label !== undefined && object.label !== null) {\n message.label = object.label;\n }\n else {\n message.label = \"\";\n }\n if (object.created !== undefined && object.created !== null) {\n message.created = exports.AbsoluteTxPosition.fromPartial(object.created);\n }\n else {\n message.created = undefined;\n }\n if (object.ibcPortId !== undefined && object.ibcPortId !== null) {\n message.ibcPortId = object.ibcPortId;\n }\n else {\n message.ibcPortId = \"\";\n }\n if (object.extension !== undefined && object.extension !== null) {\n message.extension = any_1.Any.fromPartial(object.extension);\n }\n else {\n message.extension = undefined;\n }\n return message;\n },\n};\nconst baseContractCodeHistoryEntry = { operation: 0, codeId: long_1.default.UZERO };\nexports.ContractCodeHistoryEntry = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.operation !== 0) {\n writer.uint32(8).int32(message.operation);\n }\n if (!message.codeId.isZero()) {\n writer.uint32(16).uint64(message.codeId);\n }\n if (message.updated !== undefined) {\n exports.AbsoluteTxPosition.encode(message.updated, writer.uint32(26).fork()).ldelim();\n }\n if (message.msg.length !== 0) {\n writer.uint32(34).bytes(message.msg);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseContractCodeHistoryEntry);\n message.msg = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.operation = reader.int32();\n break;\n case 2:\n message.codeId = reader.uint64();\n break;\n case 3:\n message.updated = exports.AbsoluteTxPosition.decode(reader, reader.uint32());\n break;\n case 4:\n message.msg = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseContractCodeHistoryEntry);\n message.msg = new Uint8Array();\n if (object.operation !== undefined && object.operation !== null) {\n message.operation = contractCodeHistoryOperationTypeFromJSON(object.operation);\n }\n else {\n message.operation = 0;\n }\n if (object.codeId !== undefined && object.codeId !== null) {\n message.codeId = long_1.default.fromString(object.codeId);\n }\n else {\n message.codeId = long_1.default.UZERO;\n }\n if (object.updated !== undefined && object.updated !== null) {\n message.updated = exports.AbsoluteTxPosition.fromJSON(object.updated);\n }\n else {\n message.updated = undefined;\n }\n if (object.msg !== undefined && object.msg !== null) {\n message.msg = bytesFromBase64(object.msg);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.operation !== undefined &&\n (obj.operation = contractCodeHistoryOperationTypeToJSON(message.operation));\n message.codeId !== undefined && (obj.codeId = (message.codeId || long_1.default.UZERO).toString());\n message.updated !== undefined &&\n (obj.updated = message.updated ? exports.AbsoluteTxPosition.toJSON(message.updated) : undefined);\n message.msg !== undefined &&\n (obj.msg = base64FromBytes(message.msg !== undefined ? message.msg : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseContractCodeHistoryEntry);\n if (object.operation !== undefined && object.operation !== null) {\n message.operation = object.operation;\n }\n else {\n message.operation = 0;\n }\n if (object.codeId !== undefined && object.codeId !== null) {\n message.codeId = object.codeId;\n }\n else {\n message.codeId = long_1.default.UZERO;\n }\n if (object.updated !== undefined && object.updated !== null) {\n message.updated = exports.AbsoluteTxPosition.fromPartial(object.updated);\n }\n else {\n message.updated = undefined;\n }\n if (object.msg !== undefined && object.msg !== null) {\n message.msg = object.msg;\n }\n else {\n message.msg = new Uint8Array();\n }\n return message;\n },\n};\nconst baseAbsoluteTxPosition = { blockHeight: long_1.default.UZERO, txIndex: long_1.default.UZERO };\nexports.AbsoluteTxPosition = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.blockHeight.isZero()) {\n writer.uint32(8).uint64(message.blockHeight);\n }\n if (!message.txIndex.isZero()) {\n writer.uint32(16).uint64(message.txIndex);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseAbsoluteTxPosition);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.blockHeight = reader.uint64();\n break;\n case 2:\n message.txIndex = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseAbsoluteTxPosition);\n if (object.blockHeight !== undefined && object.blockHeight !== null) {\n message.blockHeight = long_1.default.fromString(object.blockHeight);\n }\n else {\n message.blockHeight = long_1.default.UZERO;\n }\n if (object.txIndex !== undefined && object.txIndex !== null) {\n message.txIndex = long_1.default.fromString(object.txIndex);\n }\n else {\n message.txIndex = long_1.default.UZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.blockHeight !== undefined && (obj.blockHeight = (message.blockHeight || long_1.default.UZERO).toString());\n message.txIndex !== undefined && (obj.txIndex = (message.txIndex || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseAbsoluteTxPosition);\n if (object.blockHeight !== undefined && object.blockHeight !== null) {\n message.blockHeight = object.blockHeight;\n }\n else {\n message.blockHeight = long_1.default.UZERO;\n }\n if (object.txIndex !== undefined && object.txIndex !== null) {\n message.txIndex = object.txIndex;\n }\n else {\n message.txIndex = long_1.default.UZERO;\n }\n return message;\n },\n};\nconst baseModel = {};\nexports.Model = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n if (message.value.length !== 0) {\n writer.uint32(18).bytes(message.value);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseModel);\n message.key = new Uint8Array();\n message.value = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n case 2:\n message.value = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseModel);\n message.key = new Uint8Array();\n message.value = new Uint8Array();\n if (object.key !== undefined && object.key !== null) {\n message.key = bytesFromBase64(object.key);\n }\n if (object.value !== undefined && object.value !== null) {\n message.value = bytesFromBase64(object.value);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined &&\n (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));\n message.value !== undefined &&\n (obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseModel);\n if (object.key !== undefined && object.key !== null) {\n message.key = object.key;\n }\n else {\n message.key = new Uint8Array();\n }\n if (object.value !== undefined && object.value !== null) {\n message.value = object.value;\n }\n else {\n message.value = new Uint8Array();\n }\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=types.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Any = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nexports.protobufPackage = \"google.protobuf\";\nconst baseAny = { typeUrl: \"\" };\nexports.Any = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.typeUrl !== \"\") {\n writer.uint32(10).string(message.typeUrl);\n }\n if (message.value.length !== 0) {\n writer.uint32(18).bytes(message.value);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseAny);\n message.value = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.typeUrl = reader.string();\n break;\n case 2:\n message.value = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseAny);\n message.value = new Uint8Array();\n if (object.typeUrl !== undefined && object.typeUrl !== null) {\n message.typeUrl = String(object.typeUrl);\n }\n else {\n message.typeUrl = \"\";\n }\n if (object.value !== undefined && object.value !== null) {\n message.value = bytesFromBase64(object.value);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.typeUrl !== undefined && (obj.typeUrl = message.typeUrl);\n message.value !== undefined &&\n (obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseAny);\n if (object.typeUrl !== undefined && object.typeUrl !== null) {\n message.typeUrl = object.typeUrl;\n }\n else {\n message.typeUrl = \"\";\n }\n if (object.value !== undefined && object.value !== null) {\n message.value = object.value;\n }\n else {\n message.value = new Uint8Array();\n }\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=any.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Duration = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nexports.protobufPackage = \"google.protobuf\";\nconst baseDuration = { seconds: long_1.default.ZERO, nanos: 0 };\nexports.Duration = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.seconds.isZero()) {\n writer.uint32(8).int64(message.seconds);\n }\n if (message.nanos !== 0) {\n writer.uint32(16).int32(message.nanos);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDuration);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.seconds = reader.int64();\n break;\n case 2:\n message.nanos = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseDuration);\n if (object.seconds !== undefined && object.seconds !== null) {\n message.seconds = long_1.default.fromString(object.seconds);\n }\n else {\n message.seconds = long_1.default.ZERO;\n }\n if (object.nanos !== undefined && object.nanos !== null) {\n message.nanos = Number(object.nanos);\n }\n else {\n message.nanos = 0;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.seconds !== undefined && (obj.seconds = (message.seconds || long_1.default.ZERO).toString());\n message.nanos !== undefined && (obj.nanos = message.nanos);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseDuration);\n if (object.seconds !== undefined && object.seconds !== null) {\n message.seconds = object.seconds;\n }\n else {\n message.seconds = long_1.default.ZERO;\n }\n if (object.nanos !== undefined && object.nanos !== null) {\n message.nanos = object.nanos;\n }\n else {\n message.nanos = 0;\n }\n return message;\n },\n};\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=duration.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Timestamp = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nexports.protobufPackage = \"google.protobuf\";\nconst baseTimestamp = { seconds: long_1.default.ZERO, nanos: 0 };\nexports.Timestamp = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.seconds.isZero()) {\n writer.uint32(8).int64(message.seconds);\n }\n if (message.nanos !== 0) {\n writer.uint32(16).int32(message.nanos);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseTimestamp);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.seconds = reader.int64();\n break;\n case 2:\n message.nanos = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseTimestamp);\n if (object.seconds !== undefined && object.seconds !== null) {\n message.seconds = long_1.default.fromString(object.seconds);\n }\n else {\n message.seconds = long_1.default.ZERO;\n }\n if (object.nanos !== undefined && object.nanos !== null) {\n message.nanos = Number(object.nanos);\n }\n else {\n message.nanos = 0;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.seconds !== undefined && (obj.seconds = (message.seconds || long_1.default.ZERO).toString());\n message.nanos !== undefined && (obj.nanos = message.nanos);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseTimestamp);\n if (object.seconds !== undefined && object.seconds !== null) {\n message.seconds = object.seconds;\n }\n else {\n message.seconds = long_1.default.ZERO;\n }\n if (object.nanos !== undefined && object.nanos !== null) {\n message.nanos = object.nanos;\n }\n else {\n message.nanos = 0;\n }\n return message;\n },\n};\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=timestamp.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Params = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nexports.protobufPackage = \"ibc.applications.interchain_accounts.host.v1\";\nconst baseParams = { hostEnabled: false, allowMessages: \"\" };\nexports.Params = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.hostEnabled === true) {\n writer.uint32(8).bool(message.hostEnabled);\n }\n for (const v of message.allowMessages) {\n writer.uint32(18).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseParams);\n message.allowMessages = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hostEnabled = reader.bool();\n break;\n case 2:\n message.allowMessages.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseParams);\n message.allowMessages = [];\n if (object.hostEnabled !== undefined && object.hostEnabled !== null) {\n message.hostEnabled = Boolean(object.hostEnabled);\n }\n else {\n message.hostEnabled = false;\n }\n if (object.allowMessages !== undefined && object.allowMessages !== null) {\n for (const e of object.allowMessages) {\n message.allowMessages.push(String(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.hostEnabled !== undefined && (obj.hostEnabled = message.hostEnabled);\n if (message.allowMessages) {\n obj.allowMessages = message.allowMessages.map((e) => e);\n }\n else {\n obj.allowMessages = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseParams);\n message.allowMessages = [];\n if (object.hostEnabled !== undefined && object.hostEnabled !== null) {\n message.hostEnabled = object.hostEnabled;\n }\n else {\n message.hostEnabled = false;\n }\n if (object.allowMessages !== undefined && object.allowMessages !== null) {\n for (const e of object.allowMessages) {\n message.allowMessages.push(e);\n }\n }\n return message;\n },\n};\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=host.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GrpcWebImpl = exports.MsgTransferDesc = exports.MsgDesc = exports.MsgClientImpl = exports.MsgTransferResponse = exports.MsgTransfer = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst grpc_web_1 = require(\"@improbable-eng/grpc-web\");\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst coin_1 = require(\"../../../../cosmos/base/v1beta1/coin\");\nconst client_1 = require(\"../../../../ibc/core/client/v1/client\");\nconst browser_headers_1 = require(\"browser-headers\");\nexports.protobufPackage = \"ibc.applications.transfer.v1\";\nconst baseMsgTransfer = {\n sourcePort: \"\",\n sourceChannel: \"\",\n sender: \"\",\n receiver: \"\",\n timeoutTimestamp: long_1.default.UZERO,\n};\nexports.MsgTransfer = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.sourcePort !== \"\") {\n writer.uint32(10).string(message.sourcePort);\n }\n if (message.sourceChannel !== \"\") {\n writer.uint32(18).string(message.sourceChannel);\n }\n if (message.token !== undefined) {\n coin_1.Coin.encode(message.token, writer.uint32(26).fork()).ldelim();\n }\n if (message.sender !== \"\") {\n writer.uint32(34).string(message.sender);\n }\n if (message.receiver !== \"\") {\n writer.uint32(42).string(message.receiver);\n }\n if (message.timeoutHeight !== undefined) {\n client_1.Height.encode(message.timeoutHeight, writer.uint32(50).fork()).ldelim();\n }\n if (!message.timeoutTimestamp.isZero()) {\n writer.uint32(56).uint64(message.timeoutTimestamp);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgTransfer);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sourcePort = reader.string();\n break;\n case 2:\n message.sourceChannel = reader.string();\n break;\n case 3:\n message.token = coin_1.Coin.decode(reader, reader.uint32());\n break;\n case 4:\n message.sender = reader.string();\n break;\n case 5:\n message.receiver = reader.string();\n break;\n case 6:\n message.timeoutHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 7:\n message.timeoutTimestamp = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgTransfer);\n if (object.sourcePort !== undefined && object.sourcePort !== null) {\n message.sourcePort = String(object.sourcePort);\n }\n else {\n message.sourcePort = \"\";\n }\n if (object.sourceChannel !== undefined && object.sourceChannel !== null) {\n message.sourceChannel = String(object.sourceChannel);\n }\n else {\n message.sourceChannel = \"\";\n }\n if (object.token !== undefined && object.token !== null) {\n message.token = coin_1.Coin.fromJSON(object.token);\n }\n else {\n message.token = undefined;\n }\n if (object.sender !== undefined && object.sender !== null) {\n message.sender = String(object.sender);\n }\n else {\n message.sender = \"\";\n }\n if (object.receiver !== undefined && object.receiver !== null) {\n message.receiver = String(object.receiver);\n }\n else {\n message.receiver = \"\";\n }\n if (object.timeoutHeight !== undefined && object.timeoutHeight !== null) {\n message.timeoutHeight = client_1.Height.fromJSON(object.timeoutHeight);\n }\n else {\n message.timeoutHeight = undefined;\n }\n if (object.timeoutTimestamp !== undefined && object.timeoutTimestamp !== null) {\n message.timeoutTimestamp = long_1.default.fromString(object.timeoutTimestamp);\n }\n else {\n message.timeoutTimestamp = long_1.default.UZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.sourcePort !== undefined && (obj.sourcePort = message.sourcePort);\n message.sourceChannel !== undefined && (obj.sourceChannel = message.sourceChannel);\n message.token !== undefined && (obj.token = message.token ? coin_1.Coin.toJSON(message.token) : undefined);\n message.sender !== undefined && (obj.sender = message.sender);\n message.receiver !== undefined && (obj.receiver = message.receiver);\n message.timeoutHeight !== undefined &&\n (obj.timeoutHeight = message.timeoutHeight ? client_1.Height.toJSON(message.timeoutHeight) : undefined);\n message.timeoutTimestamp !== undefined &&\n (obj.timeoutTimestamp = (message.timeoutTimestamp || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgTransfer);\n if (object.sourcePort !== undefined && object.sourcePort !== null) {\n message.sourcePort = object.sourcePort;\n }\n else {\n message.sourcePort = \"\";\n }\n if (object.sourceChannel !== undefined && object.sourceChannel !== null) {\n message.sourceChannel = object.sourceChannel;\n }\n else {\n message.sourceChannel = \"\";\n }\n if (object.token !== undefined && object.token !== null) {\n message.token = coin_1.Coin.fromPartial(object.token);\n }\n else {\n message.token = undefined;\n }\n if (object.sender !== undefined && object.sender !== null) {\n message.sender = object.sender;\n }\n else {\n message.sender = \"\";\n }\n if (object.receiver !== undefined && object.receiver !== null) {\n message.receiver = object.receiver;\n }\n else {\n message.receiver = \"\";\n }\n if (object.timeoutHeight !== undefined && object.timeoutHeight !== null) {\n message.timeoutHeight = client_1.Height.fromPartial(object.timeoutHeight);\n }\n else {\n message.timeoutHeight = undefined;\n }\n if (object.timeoutTimestamp !== undefined && object.timeoutTimestamp !== null) {\n message.timeoutTimestamp = object.timeoutTimestamp;\n }\n else {\n message.timeoutTimestamp = long_1.default.UZERO;\n }\n return message;\n },\n};\nconst baseMsgTransferResponse = {};\nexports.MsgTransferResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgTransferResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgTransferResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgTransferResponse);\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Transfer = this.Transfer.bind(this);\n }\n Transfer(request, metadata) {\n return this.rpc.unary(exports.MsgTransferDesc, exports.MsgTransfer.fromPartial(request), metadata);\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\nexports.MsgDesc = {\n serviceName: \"ibc.applications.transfer.v1.Msg\",\n};\nexports.MsgTransferDesc = {\n methodName: \"Transfer\",\n service: exports.MsgDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.MsgTransfer.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.MsgTransferResponse.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nclass GrpcWebImpl {\n constructor(host, options) {\n this.host = host;\n this.options = options;\n }\n unary(methodDesc, _request, metadata) {\n var _a;\n const request = Object.assign(Object.assign({}, _request), methodDesc.requestType);\n const maybeCombinedMetadata = metadata && this.options.metadata\n ? new browser_headers_1.BrowserHeaders(Object.assign(Object.assign({}, (_a = this.options) === null || _a === void 0 ? void 0 : _a.metadata.headersMap), metadata === null || metadata === void 0 ? void 0 : metadata.headersMap))\n : metadata || this.options.metadata;\n return new Promise((resolve, reject) => {\n grpc_web_1.grpc.unary(methodDesc, {\n request,\n host: this.host,\n metadata: maybeCombinedMetadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (response.status === grpc_web_1.grpc.Code.OK) {\n resolve(response.message);\n }\n else {\n const err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n reject(err);\n }\n },\n });\n });\n }\n}\nexports.GrpcWebImpl = GrpcWebImpl;\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=tx.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FungibleTokenPacketData = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nexports.protobufPackage = \"ibc.applications.transfer.v2\";\nconst baseFungibleTokenPacketData = { denom: \"\", amount: \"\", sender: \"\", receiver: \"\" };\nexports.FungibleTokenPacketData = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.denom !== \"\") {\n writer.uint32(10).string(message.denom);\n }\n if (message.amount !== \"\") {\n writer.uint32(18).string(message.amount);\n }\n if (message.sender !== \"\") {\n writer.uint32(26).string(message.sender);\n }\n if (message.receiver !== \"\") {\n writer.uint32(34).string(message.receiver);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseFungibleTokenPacketData);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.denom = reader.string();\n break;\n case 2:\n message.amount = reader.string();\n break;\n case 3:\n message.sender = reader.string();\n break;\n case 4:\n message.receiver = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseFungibleTokenPacketData);\n if (object.denom !== undefined && object.denom !== null) {\n message.denom = String(object.denom);\n }\n else {\n message.denom = \"\";\n }\n if (object.amount !== undefined && object.amount !== null) {\n message.amount = String(object.amount);\n }\n else {\n message.amount = \"\";\n }\n if (object.sender !== undefined && object.sender !== null) {\n message.sender = String(object.sender);\n }\n else {\n message.sender = \"\";\n }\n if (object.receiver !== undefined && object.receiver !== null) {\n message.receiver = String(object.receiver);\n }\n else {\n message.receiver = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.denom !== undefined && (obj.denom = message.denom);\n message.amount !== undefined && (obj.amount = message.amount);\n message.sender !== undefined && (obj.sender = message.sender);\n message.receiver !== undefined && (obj.receiver = message.receiver);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseFungibleTokenPacketData);\n if (object.denom !== undefined && object.denom !== null) {\n message.denom = object.denom;\n }\n else {\n message.denom = \"\";\n }\n if (object.amount !== undefined && object.amount !== null) {\n message.amount = object.amount;\n }\n else {\n message.amount = \"\";\n }\n if (object.sender !== undefined && object.sender !== null) {\n message.sender = object.sender;\n }\n else {\n message.sender = \"\";\n }\n if (object.receiver !== undefined && object.receiver !== null) {\n message.receiver = object.receiver;\n }\n else {\n message.receiver = \"\";\n }\n return message;\n },\n};\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=packet.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Acknowledgement = exports.PacketId = exports.PacketState = exports.Packet = exports.Counterparty = exports.IdentifiedChannel = exports.Channel = exports.orderToJSON = exports.orderFromJSON = exports.Order = exports.stateToJSON = exports.stateFromJSON = exports.State = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst client_1 = require(\"../../../../ibc/core/client/v1/client\");\nexports.protobufPackage = \"ibc.core.channel.v1\";\n/**\n * State defines if a channel is in one of the following states:\n * CLOSED, INIT, TRYOPEN, OPEN or UNINITIALIZED.\n */\nvar State;\n(function (State) {\n /** STATE_UNINITIALIZED_UNSPECIFIED - Default State */\n State[State[\"STATE_UNINITIALIZED_UNSPECIFIED\"] = 0] = \"STATE_UNINITIALIZED_UNSPECIFIED\";\n /** STATE_INIT - A channel has just started the opening handshake. */\n State[State[\"STATE_INIT\"] = 1] = \"STATE_INIT\";\n /** STATE_TRYOPEN - A channel has acknowledged the handshake step on the counterparty chain. */\n State[State[\"STATE_TRYOPEN\"] = 2] = \"STATE_TRYOPEN\";\n /**\n * STATE_OPEN - A channel has completed the handshake. Open channels are\n * ready to send and receive packets.\n */\n State[State[\"STATE_OPEN\"] = 3] = \"STATE_OPEN\";\n /**\n * STATE_CLOSED - A channel has been closed and can no longer be used to send or receive\n * packets.\n */\n State[State[\"STATE_CLOSED\"] = 4] = \"STATE_CLOSED\";\n State[State[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(State = exports.State || (exports.State = {}));\nfunction stateFromJSON(object) {\n switch (object) {\n case 0:\n case \"STATE_UNINITIALIZED_UNSPECIFIED\":\n return State.STATE_UNINITIALIZED_UNSPECIFIED;\n case 1:\n case \"STATE_INIT\":\n return State.STATE_INIT;\n case 2:\n case \"STATE_TRYOPEN\":\n return State.STATE_TRYOPEN;\n case 3:\n case \"STATE_OPEN\":\n return State.STATE_OPEN;\n case 4:\n case \"STATE_CLOSED\":\n return State.STATE_CLOSED;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return State.UNRECOGNIZED;\n }\n}\nexports.stateFromJSON = stateFromJSON;\nfunction stateToJSON(object) {\n switch (object) {\n case State.STATE_UNINITIALIZED_UNSPECIFIED:\n return \"STATE_UNINITIALIZED_UNSPECIFIED\";\n case State.STATE_INIT:\n return \"STATE_INIT\";\n case State.STATE_TRYOPEN:\n return \"STATE_TRYOPEN\";\n case State.STATE_OPEN:\n return \"STATE_OPEN\";\n case State.STATE_CLOSED:\n return \"STATE_CLOSED\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.stateToJSON = stateToJSON;\n/** Order defines if a channel is ORDERED or UNORDERED */\nvar Order;\n(function (Order) {\n /** ORDER_NONE_UNSPECIFIED - zero-value for channel ordering */\n Order[Order[\"ORDER_NONE_UNSPECIFIED\"] = 0] = \"ORDER_NONE_UNSPECIFIED\";\n /**\n * ORDER_UNORDERED - packets can be delivered in any order, which may differ from the order in\n * which they were sent.\n */\n Order[Order[\"ORDER_UNORDERED\"] = 1] = \"ORDER_UNORDERED\";\n /** ORDER_ORDERED - packets are delivered exactly in the order which they were sent */\n Order[Order[\"ORDER_ORDERED\"] = 2] = \"ORDER_ORDERED\";\n Order[Order[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(Order = exports.Order || (exports.Order = {}));\nfunction orderFromJSON(object) {\n switch (object) {\n case 0:\n case \"ORDER_NONE_UNSPECIFIED\":\n return Order.ORDER_NONE_UNSPECIFIED;\n case 1:\n case \"ORDER_UNORDERED\":\n return Order.ORDER_UNORDERED;\n case 2:\n case \"ORDER_ORDERED\":\n return Order.ORDER_ORDERED;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return Order.UNRECOGNIZED;\n }\n}\nexports.orderFromJSON = orderFromJSON;\nfunction orderToJSON(object) {\n switch (object) {\n case Order.ORDER_NONE_UNSPECIFIED:\n return \"ORDER_NONE_UNSPECIFIED\";\n case Order.ORDER_UNORDERED:\n return \"ORDER_UNORDERED\";\n case Order.ORDER_ORDERED:\n return \"ORDER_ORDERED\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.orderToJSON = orderToJSON;\nconst baseChannel = { state: 0, ordering: 0, connectionHops: \"\", version: \"\" };\nexports.Channel = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.state !== 0) {\n writer.uint32(8).int32(message.state);\n }\n if (message.ordering !== 0) {\n writer.uint32(16).int32(message.ordering);\n }\n if (message.counterparty !== undefined) {\n exports.Counterparty.encode(message.counterparty, writer.uint32(26).fork()).ldelim();\n }\n for (const v of message.connectionHops) {\n writer.uint32(34).string(v);\n }\n if (message.version !== \"\") {\n writer.uint32(42).string(message.version);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseChannel);\n message.connectionHops = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.state = reader.int32();\n break;\n case 2:\n message.ordering = reader.int32();\n break;\n case 3:\n message.counterparty = exports.Counterparty.decode(reader, reader.uint32());\n break;\n case 4:\n message.connectionHops.push(reader.string());\n break;\n case 5:\n message.version = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseChannel);\n message.connectionHops = [];\n if (object.state !== undefined && object.state !== null) {\n message.state = stateFromJSON(object.state);\n }\n else {\n message.state = 0;\n }\n if (object.ordering !== undefined && object.ordering !== null) {\n message.ordering = orderFromJSON(object.ordering);\n }\n else {\n message.ordering = 0;\n }\n if (object.counterparty !== undefined && object.counterparty !== null) {\n message.counterparty = exports.Counterparty.fromJSON(object.counterparty);\n }\n else {\n message.counterparty = undefined;\n }\n if (object.connectionHops !== undefined && object.connectionHops !== null) {\n for (const e of object.connectionHops) {\n message.connectionHops.push(String(e));\n }\n }\n if (object.version !== undefined && object.version !== null) {\n message.version = String(object.version);\n }\n else {\n message.version = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.state !== undefined && (obj.state = stateToJSON(message.state));\n message.ordering !== undefined && (obj.ordering = orderToJSON(message.ordering));\n message.counterparty !== undefined &&\n (obj.counterparty = message.counterparty ? exports.Counterparty.toJSON(message.counterparty) : undefined);\n if (message.connectionHops) {\n obj.connectionHops = message.connectionHops.map((e) => e);\n }\n else {\n obj.connectionHops = [];\n }\n message.version !== undefined && (obj.version = message.version);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseChannel);\n message.connectionHops = [];\n if (object.state !== undefined && object.state !== null) {\n message.state = object.state;\n }\n else {\n message.state = 0;\n }\n if (object.ordering !== undefined && object.ordering !== null) {\n message.ordering = object.ordering;\n }\n else {\n message.ordering = 0;\n }\n if (object.counterparty !== undefined && object.counterparty !== null) {\n message.counterparty = exports.Counterparty.fromPartial(object.counterparty);\n }\n else {\n message.counterparty = undefined;\n }\n if (object.connectionHops !== undefined && object.connectionHops !== null) {\n for (const e of object.connectionHops) {\n message.connectionHops.push(e);\n }\n }\n if (object.version !== undefined && object.version !== null) {\n message.version = object.version;\n }\n else {\n message.version = \"\";\n }\n return message;\n },\n};\nconst baseIdentifiedChannel = {\n state: 0,\n ordering: 0,\n connectionHops: \"\",\n version: \"\",\n portId: \"\",\n channelId: \"\",\n};\nexports.IdentifiedChannel = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.state !== 0) {\n writer.uint32(8).int32(message.state);\n }\n if (message.ordering !== 0) {\n writer.uint32(16).int32(message.ordering);\n }\n if (message.counterparty !== undefined) {\n exports.Counterparty.encode(message.counterparty, writer.uint32(26).fork()).ldelim();\n }\n for (const v of message.connectionHops) {\n writer.uint32(34).string(v);\n }\n if (message.version !== \"\") {\n writer.uint32(42).string(message.version);\n }\n if (message.portId !== \"\") {\n writer.uint32(50).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(58).string(message.channelId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseIdentifiedChannel);\n message.connectionHops = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.state = reader.int32();\n break;\n case 2:\n message.ordering = reader.int32();\n break;\n case 3:\n message.counterparty = exports.Counterparty.decode(reader, reader.uint32());\n break;\n case 4:\n message.connectionHops.push(reader.string());\n break;\n case 5:\n message.version = reader.string();\n break;\n case 6:\n message.portId = reader.string();\n break;\n case 7:\n message.channelId = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseIdentifiedChannel);\n message.connectionHops = [];\n if (object.state !== undefined && object.state !== null) {\n message.state = stateFromJSON(object.state);\n }\n else {\n message.state = 0;\n }\n if (object.ordering !== undefined && object.ordering !== null) {\n message.ordering = orderFromJSON(object.ordering);\n }\n else {\n message.ordering = 0;\n }\n if (object.counterparty !== undefined && object.counterparty !== null) {\n message.counterparty = exports.Counterparty.fromJSON(object.counterparty);\n }\n else {\n message.counterparty = undefined;\n }\n if (object.connectionHops !== undefined && object.connectionHops !== null) {\n for (const e of object.connectionHops) {\n message.connectionHops.push(String(e));\n }\n }\n if (object.version !== undefined && object.version !== null) {\n message.version = String(object.version);\n }\n else {\n message.version = \"\";\n }\n if (object.portId !== undefined && object.portId !== null) {\n message.portId = String(object.portId);\n }\n else {\n message.portId = \"\";\n }\n if (object.channelId !== undefined && object.channelId !== null) {\n message.channelId = String(object.channelId);\n }\n else {\n message.channelId = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.state !== undefined && (obj.state = stateToJSON(message.state));\n message.ordering !== undefined && (obj.ordering = orderToJSON(message.ordering));\n message.counterparty !== undefined &&\n (obj.counterparty = message.counterparty ? exports.Counterparty.toJSON(message.counterparty) : undefined);\n if (message.connectionHops) {\n obj.connectionHops = message.connectionHops.map((e) => e);\n }\n else {\n obj.connectionHops = [];\n }\n message.version !== undefined && (obj.version = message.version);\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseIdentifiedChannel);\n message.connectionHops = [];\n if (object.state !== undefined && object.state !== null) {\n message.state = object.state;\n }\n else {\n message.state = 0;\n }\n if (object.ordering !== undefined && object.ordering !== null) {\n message.ordering = object.ordering;\n }\n else {\n message.ordering = 0;\n }\n if (object.counterparty !== undefined && object.counterparty !== null) {\n message.counterparty = exports.Counterparty.fromPartial(object.counterparty);\n }\n else {\n message.counterparty = undefined;\n }\n if (object.connectionHops !== undefined && object.connectionHops !== null) {\n for (const e of object.connectionHops) {\n message.connectionHops.push(e);\n }\n }\n if (object.version !== undefined && object.version !== null) {\n message.version = object.version;\n }\n else {\n message.version = \"\";\n }\n if (object.portId !== undefined && object.portId !== null) {\n message.portId = object.portId;\n }\n else {\n message.portId = \"\";\n }\n if (object.channelId !== undefined && object.channelId !== null) {\n message.channelId = object.channelId;\n }\n else {\n message.channelId = \"\";\n }\n return message;\n },\n};\nconst baseCounterparty = { portId: \"\", channelId: \"\" };\nexports.Counterparty = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseCounterparty);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseCounterparty);\n if (object.portId !== undefined && object.portId !== null) {\n message.portId = String(object.portId);\n }\n else {\n message.portId = \"\";\n }\n if (object.channelId !== undefined && object.channelId !== null) {\n message.channelId = String(object.channelId);\n }\n else {\n message.channelId = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseCounterparty);\n if (object.portId !== undefined && object.portId !== null) {\n message.portId = object.portId;\n }\n else {\n message.portId = \"\";\n }\n if (object.channelId !== undefined && object.channelId !== null) {\n message.channelId = object.channelId;\n }\n else {\n message.channelId = \"\";\n }\n return message;\n },\n};\nconst basePacket = {\n sequence: long_1.default.UZERO,\n sourcePort: \"\",\n sourceChannel: \"\",\n destinationPort: \"\",\n destinationChannel: \"\",\n timeoutTimestamp: long_1.default.UZERO,\n};\nexports.Packet = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.sequence.isZero()) {\n writer.uint32(8).uint64(message.sequence);\n }\n if (message.sourcePort !== \"\") {\n writer.uint32(18).string(message.sourcePort);\n }\n if (message.sourceChannel !== \"\") {\n writer.uint32(26).string(message.sourceChannel);\n }\n if (message.destinationPort !== \"\") {\n writer.uint32(34).string(message.destinationPort);\n }\n if (message.destinationChannel !== \"\") {\n writer.uint32(42).string(message.destinationChannel);\n }\n if (message.data.length !== 0) {\n writer.uint32(50).bytes(message.data);\n }\n if (message.timeoutHeight !== undefined) {\n client_1.Height.encode(message.timeoutHeight, writer.uint32(58).fork()).ldelim();\n }\n if (!message.timeoutTimestamp.isZero()) {\n writer.uint32(64).uint64(message.timeoutTimestamp);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, basePacket);\n message.data = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sequence = reader.uint64();\n break;\n case 2:\n message.sourcePort = reader.string();\n break;\n case 3:\n message.sourceChannel = reader.string();\n break;\n case 4:\n message.destinationPort = reader.string();\n break;\n case 5:\n message.destinationChannel = reader.string();\n break;\n case 6:\n message.data = reader.bytes();\n break;\n case 7:\n message.timeoutHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 8:\n message.timeoutTimestamp = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, basePacket);\n message.data = new Uint8Array();\n if (object.sequence !== undefined && object.sequence !== null) {\n message.sequence = long_1.default.fromString(object.sequence);\n }\n else {\n message.sequence = long_1.default.UZERO;\n }\n if (object.sourcePort !== undefined && object.sourcePort !== null) {\n message.sourcePort = String(object.sourcePort);\n }\n else {\n message.sourcePort = \"\";\n }\n if (object.sourceChannel !== undefined && object.sourceChannel !== null) {\n message.sourceChannel = String(object.sourceChannel);\n }\n else {\n message.sourceChannel = \"\";\n }\n if (object.destinationPort !== undefined && object.destinationPort !== null) {\n message.destinationPort = String(object.destinationPort);\n }\n else {\n message.destinationPort = \"\";\n }\n if (object.destinationChannel !== undefined && object.destinationChannel !== null) {\n message.destinationChannel = String(object.destinationChannel);\n }\n else {\n message.destinationChannel = \"\";\n }\n if (object.data !== undefined && object.data !== null) {\n message.data = bytesFromBase64(object.data);\n }\n if (object.timeoutHeight !== undefined && object.timeoutHeight !== null) {\n message.timeoutHeight = client_1.Height.fromJSON(object.timeoutHeight);\n }\n else {\n message.timeoutHeight = undefined;\n }\n if (object.timeoutTimestamp !== undefined && object.timeoutTimestamp !== null) {\n message.timeoutTimestamp = long_1.default.fromString(object.timeoutTimestamp);\n }\n else {\n message.timeoutTimestamp = long_1.default.UZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.sequence !== undefined && (obj.sequence = (message.sequence || long_1.default.UZERO).toString());\n message.sourcePort !== undefined && (obj.sourcePort = message.sourcePort);\n message.sourceChannel !== undefined && (obj.sourceChannel = message.sourceChannel);\n message.destinationPort !== undefined && (obj.destinationPort = message.destinationPort);\n message.destinationChannel !== undefined && (obj.destinationChannel = message.destinationChannel);\n message.data !== undefined &&\n (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));\n message.timeoutHeight !== undefined &&\n (obj.timeoutHeight = message.timeoutHeight ? client_1.Height.toJSON(message.timeoutHeight) : undefined);\n message.timeoutTimestamp !== undefined &&\n (obj.timeoutTimestamp = (message.timeoutTimestamp || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, basePacket);\n if (object.sequence !== undefined && object.sequence !== null) {\n message.sequence = object.sequence;\n }\n else {\n message.sequence = long_1.default.UZERO;\n }\n if (object.sourcePort !== undefined && object.sourcePort !== null) {\n message.sourcePort = object.sourcePort;\n }\n else {\n message.sourcePort = \"\";\n }\n if (object.sourceChannel !== undefined && object.sourceChannel !== null) {\n message.sourceChannel = object.sourceChannel;\n }\n else {\n message.sourceChannel = \"\";\n }\n if (object.destinationPort !== undefined && object.destinationPort !== null) {\n message.destinationPort = object.destinationPort;\n }\n else {\n message.destinationPort = \"\";\n }\n if (object.destinationChannel !== undefined && object.destinationChannel !== null) {\n message.destinationChannel = object.destinationChannel;\n }\n else {\n message.destinationChannel = \"\";\n }\n if (object.data !== undefined && object.data !== null) {\n message.data = object.data;\n }\n else {\n message.data = new Uint8Array();\n }\n if (object.timeoutHeight !== undefined && object.timeoutHeight !== null) {\n message.timeoutHeight = client_1.Height.fromPartial(object.timeoutHeight);\n }\n else {\n message.timeoutHeight = undefined;\n }\n if (object.timeoutTimestamp !== undefined && object.timeoutTimestamp !== null) {\n message.timeoutTimestamp = object.timeoutTimestamp;\n }\n else {\n message.timeoutTimestamp = long_1.default.UZERO;\n }\n return message;\n },\n};\nconst basePacketState = { portId: \"\", channelId: \"\", sequence: long_1.default.UZERO };\nexports.PacketState = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n if (!message.sequence.isZero()) {\n writer.uint32(24).uint64(message.sequence);\n }\n if (message.data.length !== 0) {\n writer.uint32(34).bytes(message.data);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, basePacketState);\n message.data = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n message.sequence = reader.uint64();\n break;\n case 4:\n message.data = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, basePacketState);\n message.data = new Uint8Array();\n if (object.portId !== undefined && object.portId !== null) {\n message.portId = String(object.portId);\n }\n else {\n message.portId = \"\";\n }\n if (object.channelId !== undefined && object.channelId !== null) {\n message.channelId = String(object.channelId);\n }\n else {\n message.channelId = \"\";\n }\n if (object.sequence !== undefined && object.sequence !== null) {\n message.sequence = long_1.default.fromString(object.sequence);\n }\n else {\n message.sequence = long_1.default.UZERO;\n }\n if (object.data !== undefined && object.data !== null) {\n message.data = bytesFromBase64(object.data);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n message.sequence !== undefined && (obj.sequence = (message.sequence || long_1.default.UZERO).toString());\n message.data !== undefined &&\n (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, basePacketState);\n if (object.portId !== undefined && object.portId !== null) {\n message.portId = object.portId;\n }\n else {\n message.portId = \"\";\n }\n if (object.channelId !== undefined && object.channelId !== null) {\n message.channelId = object.channelId;\n }\n else {\n message.channelId = \"\";\n }\n if (object.sequence !== undefined && object.sequence !== null) {\n message.sequence = object.sequence;\n }\n else {\n message.sequence = long_1.default.UZERO;\n }\n if (object.data !== undefined && object.data !== null) {\n message.data = object.data;\n }\n else {\n message.data = new Uint8Array();\n }\n return message;\n },\n};\nconst basePacketId = { portId: \"\", channelId: \"\", sequence: long_1.default.UZERO };\nexports.PacketId = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n if (!message.sequence.isZero()) {\n writer.uint32(24).uint64(message.sequence);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, basePacketId);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n message.sequence = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, basePacketId);\n if (object.portId !== undefined && object.portId !== null) {\n message.portId = String(object.portId);\n }\n else {\n message.portId = \"\";\n }\n if (object.channelId !== undefined && object.channelId !== null) {\n message.channelId = String(object.channelId);\n }\n else {\n message.channelId = \"\";\n }\n if (object.sequence !== undefined && object.sequence !== null) {\n message.sequence = long_1.default.fromString(object.sequence);\n }\n else {\n message.sequence = long_1.default.UZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n message.sequence !== undefined && (obj.sequence = (message.sequence || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, basePacketId);\n if (object.portId !== undefined && object.portId !== null) {\n message.portId = object.portId;\n }\n else {\n message.portId = \"\";\n }\n if (object.channelId !== undefined && object.channelId !== null) {\n message.channelId = object.channelId;\n }\n else {\n message.channelId = \"\";\n }\n if (object.sequence !== undefined && object.sequence !== null) {\n message.sequence = object.sequence;\n }\n else {\n message.sequence = long_1.default.UZERO;\n }\n return message;\n },\n};\nconst baseAcknowledgement = {};\nexports.Acknowledgement = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.result !== undefined) {\n writer.uint32(170).bytes(message.result);\n }\n if (message.error !== undefined) {\n writer.uint32(178).string(message.error);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseAcknowledgement);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 21:\n message.result = reader.bytes();\n break;\n case 22:\n message.error = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseAcknowledgement);\n if (object.result !== undefined && object.result !== null) {\n message.result = bytesFromBase64(object.result);\n }\n if (object.error !== undefined && object.error !== null) {\n message.error = String(object.error);\n }\n else {\n message.error = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.result !== undefined &&\n (obj.result = message.result !== undefined ? base64FromBytes(message.result) : undefined);\n message.error !== undefined && (obj.error = message.error);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseAcknowledgement);\n if (object.result !== undefined && object.result !== null) {\n message.result = object.result;\n }\n else {\n message.result = undefined;\n }\n if (object.error !== undefined && object.error !== null) {\n message.error = object.error;\n }\n else {\n message.error = undefined;\n }\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=channel.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GrpcWebImpl = exports.MsgAcknowledgementDesc = exports.MsgTimeoutOnCloseDesc = exports.MsgTimeoutDesc = exports.MsgRecvPacketDesc = exports.MsgChannelCloseConfirmDesc = exports.MsgChannelCloseInitDesc = exports.MsgChannelOpenConfirmDesc = exports.MsgChannelOpenAckDesc = exports.MsgChannelOpenTryDesc = exports.MsgChannelOpenInitDesc = exports.MsgDesc = exports.MsgClientImpl = exports.MsgAcknowledgementResponse = exports.MsgAcknowledgement = exports.MsgTimeoutOnCloseResponse = exports.MsgTimeoutOnClose = exports.MsgTimeoutResponse = exports.MsgTimeout = exports.MsgRecvPacketResponse = exports.MsgRecvPacket = exports.MsgChannelCloseConfirmResponse = exports.MsgChannelCloseConfirm = exports.MsgChannelCloseInitResponse = exports.MsgChannelCloseInit = exports.MsgChannelOpenConfirmResponse = exports.MsgChannelOpenConfirm = exports.MsgChannelOpenAckResponse = exports.MsgChannelOpenAck = exports.MsgChannelOpenTryResponse = exports.MsgChannelOpenTry = exports.MsgChannelOpenInitResponse = exports.MsgChannelOpenInit = exports.responseResultTypeToJSON = exports.responseResultTypeFromJSON = exports.ResponseResultType = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst grpc_web_1 = require(\"@improbable-eng/grpc-web\");\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst channel_1 = require(\"../../../../ibc/core/channel/v1/channel\");\nconst client_1 = require(\"../../../../ibc/core/client/v1/client\");\nconst browser_headers_1 = require(\"browser-headers\");\nexports.protobufPackage = \"ibc.core.channel.v1\";\n/** ResponseResultType defines the possible outcomes of the execution of a message */\nvar ResponseResultType;\n(function (ResponseResultType) {\n /** RESPONSE_RESULT_TYPE_UNSPECIFIED - Default zero value enumeration */\n ResponseResultType[ResponseResultType[\"RESPONSE_RESULT_TYPE_UNSPECIFIED\"] = 0] = \"RESPONSE_RESULT_TYPE_UNSPECIFIED\";\n /** RESPONSE_RESULT_TYPE_NOOP - The message did not call the IBC application callbacks (because, for example, the packet had already been relayed) */\n ResponseResultType[ResponseResultType[\"RESPONSE_RESULT_TYPE_NOOP\"] = 1] = \"RESPONSE_RESULT_TYPE_NOOP\";\n /** RESPONSE_RESULT_TYPE_SUCCESS - The message was executed successfully */\n ResponseResultType[ResponseResultType[\"RESPONSE_RESULT_TYPE_SUCCESS\"] = 2] = \"RESPONSE_RESULT_TYPE_SUCCESS\";\n ResponseResultType[ResponseResultType[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(ResponseResultType = exports.ResponseResultType || (exports.ResponseResultType = {}));\nfunction responseResultTypeFromJSON(object) {\n switch (object) {\n case 0:\n case \"RESPONSE_RESULT_TYPE_UNSPECIFIED\":\n return ResponseResultType.RESPONSE_RESULT_TYPE_UNSPECIFIED;\n case 1:\n case \"RESPONSE_RESULT_TYPE_NOOP\":\n return ResponseResultType.RESPONSE_RESULT_TYPE_NOOP;\n case 2:\n case \"RESPONSE_RESULT_TYPE_SUCCESS\":\n return ResponseResultType.RESPONSE_RESULT_TYPE_SUCCESS;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return ResponseResultType.UNRECOGNIZED;\n }\n}\nexports.responseResultTypeFromJSON = responseResultTypeFromJSON;\nfunction responseResultTypeToJSON(object) {\n switch (object) {\n case ResponseResultType.RESPONSE_RESULT_TYPE_UNSPECIFIED:\n return \"RESPONSE_RESULT_TYPE_UNSPECIFIED\";\n case ResponseResultType.RESPONSE_RESULT_TYPE_NOOP:\n return \"RESPONSE_RESULT_TYPE_NOOP\";\n case ResponseResultType.RESPONSE_RESULT_TYPE_SUCCESS:\n return \"RESPONSE_RESULT_TYPE_SUCCESS\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.responseResultTypeToJSON = responseResultTypeToJSON;\nconst baseMsgChannelOpenInit = { portId: \"\", signer: \"\" };\nexports.MsgChannelOpenInit = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channel !== undefined) {\n channel_1.Channel.encode(message.channel, writer.uint32(18).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(26).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgChannelOpenInit);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channel = channel_1.Channel.decode(reader, reader.uint32());\n break;\n case 3:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgChannelOpenInit);\n if (object.portId !== undefined && object.portId !== null) {\n message.portId = String(object.portId);\n }\n else {\n message.portId = \"\";\n }\n if (object.channel !== undefined && object.channel !== null) {\n message.channel = channel_1.Channel.fromJSON(object.channel);\n }\n else {\n message.channel = undefined;\n }\n if (object.signer !== undefined && object.signer !== null) {\n message.signer = String(object.signer);\n }\n else {\n message.signer = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channel !== undefined &&\n (obj.channel = message.channel ? channel_1.Channel.toJSON(message.channel) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgChannelOpenInit);\n if (object.portId !== undefined && object.portId !== null) {\n message.portId = object.portId;\n }\n else {\n message.portId = \"\";\n }\n if (object.channel !== undefined && object.channel !== null) {\n message.channel = channel_1.Channel.fromPartial(object.channel);\n }\n else {\n message.channel = undefined;\n }\n if (object.signer !== undefined && object.signer !== null) {\n message.signer = object.signer;\n }\n else {\n message.signer = \"\";\n }\n return message;\n },\n};\nconst baseMsgChannelOpenInitResponse = { channelId: \"\" };\nexports.MsgChannelOpenInitResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.channelId !== \"\") {\n writer.uint32(10).string(message.channelId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgChannelOpenInitResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.channelId = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgChannelOpenInitResponse);\n if (object.channelId !== undefined && object.channelId !== null) {\n message.channelId = String(object.channelId);\n }\n else {\n message.channelId = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.channelId !== undefined && (obj.channelId = message.channelId);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgChannelOpenInitResponse);\n if (object.channelId !== undefined && object.channelId !== null) {\n message.channelId = object.channelId;\n }\n else {\n message.channelId = \"\";\n }\n return message;\n },\n};\nconst baseMsgChannelOpenTry = {\n portId: \"\",\n previousChannelId: \"\",\n counterpartyVersion: \"\",\n signer: \"\",\n};\nexports.MsgChannelOpenTry = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.previousChannelId !== \"\") {\n writer.uint32(18).string(message.previousChannelId);\n }\n if (message.channel !== undefined) {\n channel_1.Channel.encode(message.channel, writer.uint32(26).fork()).ldelim();\n }\n if (message.counterpartyVersion !== \"\") {\n writer.uint32(34).string(message.counterpartyVersion);\n }\n if (message.proofInit.length !== 0) {\n writer.uint32(42).bytes(message.proofInit);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(50).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(58).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgChannelOpenTry);\n message.proofInit = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.previousChannelId = reader.string();\n break;\n case 3:\n message.channel = channel_1.Channel.decode(reader, reader.uint32());\n break;\n case 4:\n message.counterpartyVersion = reader.string();\n break;\n case 5:\n message.proofInit = reader.bytes();\n break;\n case 6:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 7:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgChannelOpenTry);\n message.proofInit = new Uint8Array();\n if (object.portId !== undefined && object.portId !== null) {\n message.portId = String(object.portId);\n }\n else {\n message.portId = \"\";\n }\n if (object.previousChannelId !== undefined && object.previousChannelId !== null) {\n message.previousChannelId = String(object.previousChannelId);\n }\n else {\n message.previousChannelId = \"\";\n }\n if (object.channel !== undefined && object.channel !== null) {\n message.channel = channel_1.Channel.fromJSON(object.channel);\n }\n else {\n message.channel = undefined;\n }\n if (object.counterpartyVersion !== undefined && object.counterpartyVersion !== null) {\n message.counterpartyVersion = String(object.counterpartyVersion);\n }\n else {\n message.counterpartyVersion = \"\";\n }\n if (object.proofInit !== undefined && object.proofInit !== null) {\n message.proofInit = bytesFromBase64(object.proofInit);\n }\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n }\n else {\n message.proofHeight = undefined;\n }\n if (object.signer !== undefined && object.signer !== null) {\n message.signer = String(object.signer);\n }\n else {\n message.signer = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.previousChannelId !== undefined && (obj.previousChannelId = message.previousChannelId);\n message.channel !== undefined &&\n (obj.channel = message.channel ? channel_1.Channel.toJSON(message.channel) : undefined);\n message.counterpartyVersion !== undefined && (obj.counterpartyVersion = message.counterpartyVersion);\n message.proofInit !== undefined &&\n (obj.proofInit = base64FromBytes(message.proofInit !== undefined ? message.proofInit : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgChannelOpenTry);\n if (object.portId !== undefined && object.portId !== null) {\n message.portId = object.portId;\n }\n else {\n message.portId = \"\";\n }\n if (object.previousChannelId !== undefined && object.previousChannelId !== null) {\n message.previousChannelId = object.previousChannelId;\n }\n else {\n message.previousChannelId = \"\";\n }\n if (object.channel !== undefined && object.channel !== null) {\n message.channel = channel_1.Channel.fromPartial(object.channel);\n }\n else {\n message.channel = undefined;\n }\n if (object.counterpartyVersion !== undefined && object.counterpartyVersion !== null) {\n message.counterpartyVersion = object.counterpartyVersion;\n }\n else {\n message.counterpartyVersion = \"\";\n }\n if (object.proofInit !== undefined && object.proofInit !== null) {\n message.proofInit = object.proofInit;\n }\n else {\n message.proofInit = new Uint8Array();\n }\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n else {\n message.proofHeight = undefined;\n }\n if (object.signer !== undefined && object.signer !== null) {\n message.signer = object.signer;\n }\n else {\n message.signer = \"\";\n }\n return message;\n },\n};\nconst baseMsgChannelOpenTryResponse = {};\nexports.MsgChannelOpenTryResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgChannelOpenTryResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgChannelOpenTryResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgChannelOpenTryResponse);\n return message;\n },\n};\nconst baseMsgChannelOpenAck = {\n portId: \"\",\n channelId: \"\",\n counterpartyChannelId: \"\",\n counterpartyVersion: \"\",\n signer: \"\",\n};\nexports.MsgChannelOpenAck = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n if (message.counterpartyChannelId !== \"\") {\n writer.uint32(26).string(message.counterpartyChannelId);\n }\n if (message.counterpartyVersion !== \"\") {\n writer.uint32(34).string(message.counterpartyVersion);\n }\n if (message.proofTry.length !== 0) {\n writer.uint32(42).bytes(message.proofTry);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(50).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(58).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgChannelOpenAck);\n message.proofTry = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n message.counterpartyChannelId = reader.string();\n break;\n case 4:\n message.counterpartyVersion = reader.string();\n break;\n case 5:\n message.proofTry = reader.bytes();\n break;\n case 6:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 7:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgChannelOpenAck);\n message.proofTry = new Uint8Array();\n if (object.portId !== undefined && object.portId !== null) {\n message.portId = String(object.portId);\n }\n else {\n message.portId = \"\";\n }\n if (object.channelId !== undefined && object.channelId !== null) {\n message.channelId = String(object.channelId);\n }\n else {\n message.channelId = \"\";\n }\n if (object.counterpartyChannelId !== undefined && object.counterpartyChannelId !== null) {\n message.counterpartyChannelId = String(object.counterpartyChannelId);\n }\n else {\n message.counterpartyChannelId = \"\";\n }\n if (object.counterpartyVersion !== undefined && object.counterpartyVersion !== null) {\n message.counterpartyVersion = String(object.counterpartyVersion);\n }\n else {\n message.counterpartyVersion = \"\";\n }\n if (object.proofTry !== undefined && object.proofTry !== null) {\n message.proofTry = bytesFromBase64(object.proofTry);\n }\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n }\n else {\n message.proofHeight = undefined;\n }\n if (object.signer !== undefined && object.signer !== null) {\n message.signer = String(object.signer);\n }\n else {\n message.signer = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n message.counterpartyChannelId !== undefined &&\n (obj.counterpartyChannelId = message.counterpartyChannelId);\n message.counterpartyVersion !== undefined && (obj.counterpartyVersion = message.counterpartyVersion);\n message.proofTry !== undefined &&\n (obj.proofTry = base64FromBytes(message.proofTry !== undefined ? message.proofTry : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgChannelOpenAck);\n if (object.portId !== undefined && object.portId !== null) {\n message.portId = object.portId;\n }\n else {\n message.portId = \"\";\n }\n if (object.channelId !== undefined && object.channelId !== null) {\n message.channelId = object.channelId;\n }\n else {\n message.channelId = \"\";\n }\n if (object.counterpartyChannelId !== undefined && object.counterpartyChannelId !== null) {\n message.counterpartyChannelId = object.counterpartyChannelId;\n }\n else {\n message.counterpartyChannelId = \"\";\n }\n if (object.counterpartyVersion !== undefined && object.counterpartyVersion !== null) {\n message.counterpartyVersion = object.counterpartyVersion;\n }\n else {\n message.counterpartyVersion = \"\";\n }\n if (object.proofTry !== undefined && object.proofTry !== null) {\n message.proofTry = object.proofTry;\n }\n else {\n message.proofTry = new Uint8Array();\n }\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n else {\n message.proofHeight = undefined;\n }\n if (object.signer !== undefined && object.signer !== null) {\n message.signer = object.signer;\n }\n else {\n message.signer = \"\";\n }\n return message;\n },\n};\nconst baseMsgChannelOpenAckResponse = {};\nexports.MsgChannelOpenAckResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgChannelOpenAckResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgChannelOpenAckResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgChannelOpenAckResponse);\n return message;\n },\n};\nconst baseMsgChannelOpenConfirm = { portId: \"\", channelId: \"\", signer: \"\" };\nexports.MsgChannelOpenConfirm = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n if (message.proofAck.length !== 0) {\n writer.uint32(26).bytes(message.proofAck);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(34).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(42).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgChannelOpenConfirm);\n message.proofAck = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n message.proofAck = reader.bytes();\n break;\n case 4:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 5:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgChannelOpenConfirm);\n message.proofAck = new Uint8Array();\n if (object.portId !== undefined && object.portId !== null) {\n message.portId = String(object.portId);\n }\n else {\n message.portId = \"\";\n }\n if (object.channelId !== undefined && object.channelId !== null) {\n message.channelId = String(object.channelId);\n }\n else {\n message.channelId = \"\";\n }\n if (object.proofAck !== undefined && object.proofAck !== null) {\n message.proofAck = bytesFromBase64(object.proofAck);\n }\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n }\n else {\n message.proofHeight = undefined;\n }\n if (object.signer !== undefined && object.signer !== null) {\n message.signer = String(object.signer);\n }\n else {\n message.signer = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n message.proofAck !== undefined &&\n (obj.proofAck = base64FromBytes(message.proofAck !== undefined ? message.proofAck : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgChannelOpenConfirm);\n if (object.portId !== undefined && object.portId !== null) {\n message.portId = object.portId;\n }\n else {\n message.portId = \"\";\n }\n if (object.channelId !== undefined && object.channelId !== null) {\n message.channelId = object.channelId;\n }\n else {\n message.channelId = \"\";\n }\n if (object.proofAck !== undefined && object.proofAck !== null) {\n message.proofAck = object.proofAck;\n }\n else {\n message.proofAck = new Uint8Array();\n }\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n else {\n message.proofHeight = undefined;\n }\n if (object.signer !== undefined && object.signer !== null) {\n message.signer = object.signer;\n }\n else {\n message.signer = \"\";\n }\n return message;\n },\n};\nconst baseMsgChannelOpenConfirmResponse = {};\nexports.MsgChannelOpenConfirmResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgChannelOpenConfirmResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgChannelOpenConfirmResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgChannelOpenConfirmResponse);\n return message;\n },\n};\nconst baseMsgChannelCloseInit = { portId: \"\", channelId: \"\", signer: \"\" };\nexports.MsgChannelCloseInit = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n if (message.signer !== \"\") {\n writer.uint32(26).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgChannelCloseInit);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgChannelCloseInit);\n if (object.portId !== undefined && object.portId !== null) {\n message.portId = String(object.portId);\n }\n else {\n message.portId = \"\";\n }\n if (object.channelId !== undefined && object.channelId !== null) {\n message.channelId = String(object.channelId);\n }\n else {\n message.channelId = \"\";\n }\n if (object.signer !== undefined && object.signer !== null) {\n message.signer = String(object.signer);\n }\n else {\n message.signer = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgChannelCloseInit);\n if (object.portId !== undefined && object.portId !== null) {\n message.portId = object.portId;\n }\n else {\n message.portId = \"\";\n }\n if (object.channelId !== undefined && object.channelId !== null) {\n message.channelId = object.channelId;\n }\n else {\n message.channelId = \"\";\n }\n if (object.signer !== undefined && object.signer !== null) {\n message.signer = object.signer;\n }\n else {\n message.signer = \"\";\n }\n return message;\n },\n};\nconst baseMsgChannelCloseInitResponse = {};\nexports.MsgChannelCloseInitResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgChannelCloseInitResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgChannelCloseInitResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgChannelCloseInitResponse);\n return message;\n },\n};\nconst baseMsgChannelCloseConfirm = { portId: \"\", channelId: \"\", signer: \"\" };\nexports.MsgChannelCloseConfirm = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n if (message.proofInit.length !== 0) {\n writer.uint32(26).bytes(message.proofInit);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(34).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(42).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgChannelCloseConfirm);\n message.proofInit = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n message.proofInit = reader.bytes();\n break;\n case 4:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 5:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgChannelCloseConfirm);\n message.proofInit = new Uint8Array();\n if (object.portId !== undefined && object.portId !== null) {\n message.portId = String(object.portId);\n }\n else {\n message.portId = \"\";\n }\n if (object.channelId !== undefined && object.channelId !== null) {\n message.channelId = String(object.channelId);\n }\n else {\n message.channelId = \"\";\n }\n if (object.proofInit !== undefined && object.proofInit !== null) {\n message.proofInit = bytesFromBase64(object.proofInit);\n }\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n }\n else {\n message.proofHeight = undefined;\n }\n if (object.signer !== undefined && object.signer !== null) {\n message.signer = String(object.signer);\n }\n else {\n message.signer = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n message.proofInit !== undefined &&\n (obj.proofInit = base64FromBytes(message.proofInit !== undefined ? message.proofInit : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgChannelCloseConfirm);\n if (object.portId !== undefined && object.portId !== null) {\n message.portId = object.portId;\n }\n else {\n message.portId = \"\";\n }\n if (object.channelId !== undefined && object.channelId !== null) {\n message.channelId = object.channelId;\n }\n else {\n message.channelId = \"\";\n }\n if (object.proofInit !== undefined && object.proofInit !== null) {\n message.proofInit = object.proofInit;\n }\n else {\n message.proofInit = new Uint8Array();\n }\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n else {\n message.proofHeight = undefined;\n }\n if (object.signer !== undefined && object.signer !== null) {\n message.signer = object.signer;\n }\n else {\n message.signer = \"\";\n }\n return message;\n },\n};\nconst baseMsgChannelCloseConfirmResponse = {};\nexports.MsgChannelCloseConfirmResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgChannelCloseConfirmResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgChannelCloseConfirmResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgChannelCloseConfirmResponse);\n return message;\n },\n};\nconst baseMsgRecvPacket = { signer: \"\" };\nexports.MsgRecvPacket = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.packet !== undefined) {\n channel_1.Packet.encode(message.packet, writer.uint32(10).fork()).ldelim();\n }\n if (message.proofCommitment.length !== 0) {\n writer.uint32(18).bytes(message.proofCommitment);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(34).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgRecvPacket);\n message.proofCommitment = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.packet = channel_1.Packet.decode(reader, reader.uint32());\n break;\n case 2:\n message.proofCommitment = reader.bytes();\n break;\n case 3:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 4:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgRecvPacket);\n message.proofCommitment = new Uint8Array();\n if (object.packet !== undefined && object.packet !== null) {\n message.packet = channel_1.Packet.fromJSON(object.packet);\n }\n else {\n message.packet = undefined;\n }\n if (object.proofCommitment !== undefined && object.proofCommitment !== null) {\n message.proofCommitment = bytesFromBase64(object.proofCommitment);\n }\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n }\n else {\n message.proofHeight = undefined;\n }\n if (object.signer !== undefined && object.signer !== null) {\n message.signer = String(object.signer);\n }\n else {\n message.signer = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.packet !== undefined && (obj.packet = message.packet ? channel_1.Packet.toJSON(message.packet) : undefined);\n message.proofCommitment !== undefined &&\n (obj.proofCommitment = base64FromBytes(message.proofCommitment !== undefined ? message.proofCommitment : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgRecvPacket);\n if (object.packet !== undefined && object.packet !== null) {\n message.packet = channel_1.Packet.fromPartial(object.packet);\n }\n else {\n message.packet = undefined;\n }\n if (object.proofCommitment !== undefined && object.proofCommitment !== null) {\n message.proofCommitment = object.proofCommitment;\n }\n else {\n message.proofCommitment = new Uint8Array();\n }\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n else {\n message.proofHeight = undefined;\n }\n if (object.signer !== undefined && object.signer !== null) {\n message.signer = object.signer;\n }\n else {\n message.signer = \"\";\n }\n return message;\n },\n};\nconst baseMsgRecvPacketResponse = { result: 0 };\nexports.MsgRecvPacketResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.result !== 0) {\n writer.uint32(8).int32(message.result);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgRecvPacketResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.result = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgRecvPacketResponse);\n if (object.result !== undefined && object.result !== null) {\n message.result = responseResultTypeFromJSON(object.result);\n }\n else {\n message.result = 0;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.result !== undefined && (obj.result = responseResultTypeToJSON(message.result));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgRecvPacketResponse);\n if (object.result !== undefined && object.result !== null) {\n message.result = object.result;\n }\n else {\n message.result = 0;\n }\n return message;\n },\n};\nconst baseMsgTimeout = { nextSequenceRecv: long_1.default.UZERO, signer: \"\" };\nexports.MsgTimeout = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.packet !== undefined) {\n channel_1.Packet.encode(message.packet, writer.uint32(10).fork()).ldelim();\n }\n if (message.proofUnreceived.length !== 0) {\n writer.uint32(18).bytes(message.proofUnreceived);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();\n }\n if (!message.nextSequenceRecv.isZero()) {\n writer.uint32(32).uint64(message.nextSequenceRecv);\n }\n if (message.signer !== \"\") {\n writer.uint32(42).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgTimeout);\n message.proofUnreceived = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.packet = channel_1.Packet.decode(reader, reader.uint32());\n break;\n case 2:\n message.proofUnreceived = reader.bytes();\n break;\n case 3:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 4:\n message.nextSequenceRecv = reader.uint64();\n break;\n case 5:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgTimeout);\n message.proofUnreceived = new Uint8Array();\n if (object.packet !== undefined && object.packet !== null) {\n message.packet = channel_1.Packet.fromJSON(object.packet);\n }\n else {\n message.packet = undefined;\n }\n if (object.proofUnreceived !== undefined && object.proofUnreceived !== null) {\n message.proofUnreceived = bytesFromBase64(object.proofUnreceived);\n }\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n }\n else {\n message.proofHeight = undefined;\n }\n if (object.nextSequenceRecv !== undefined && object.nextSequenceRecv !== null) {\n message.nextSequenceRecv = long_1.default.fromString(object.nextSequenceRecv);\n }\n else {\n message.nextSequenceRecv = long_1.default.UZERO;\n }\n if (object.signer !== undefined && object.signer !== null) {\n message.signer = String(object.signer);\n }\n else {\n message.signer = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.packet !== undefined && (obj.packet = message.packet ? channel_1.Packet.toJSON(message.packet) : undefined);\n message.proofUnreceived !== undefined &&\n (obj.proofUnreceived = base64FromBytes(message.proofUnreceived !== undefined ? message.proofUnreceived : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n message.nextSequenceRecv !== undefined &&\n (obj.nextSequenceRecv = (message.nextSequenceRecv || long_1.default.UZERO).toString());\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgTimeout);\n if (object.packet !== undefined && object.packet !== null) {\n message.packet = channel_1.Packet.fromPartial(object.packet);\n }\n else {\n message.packet = undefined;\n }\n if (object.proofUnreceived !== undefined && object.proofUnreceived !== null) {\n message.proofUnreceived = object.proofUnreceived;\n }\n else {\n message.proofUnreceived = new Uint8Array();\n }\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n else {\n message.proofHeight = undefined;\n }\n if (object.nextSequenceRecv !== undefined && object.nextSequenceRecv !== null) {\n message.nextSequenceRecv = object.nextSequenceRecv;\n }\n else {\n message.nextSequenceRecv = long_1.default.UZERO;\n }\n if (object.signer !== undefined && object.signer !== null) {\n message.signer = object.signer;\n }\n else {\n message.signer = \"\";\n }\n return message;\n },\n};\nconst baseMsgTimeoutResponse = { result: 0 };\nexports.MsgTimeoutResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.result !== 0) {\n writer.uint32(8).int32(message.result);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgTimeoutResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.result = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgTimeoutResponse);\n if (object.result !== undefined && object.result !== null) {\n message.result = responseResultTypeFromJSON(object.result);\n }\n else {\n message.result = 0;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.result !== undefined && (obj.result = responseResultTypeToJSON(message.result));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgTimeoutResponse);\n if (object.result !== undefined && object.result !== null) {\n message.result = object.result;\n }\n else {\n message.result = 0;\n }\n return message;\n },\n};\nconst baseMsgTimeoutOnClose = { nextSequenceRecv: long_1.default.UZERO, signer: \"\" };\nexports.MsgTimeoutOnClose = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.packet !== undefined) {\n channel_1.Packet.encode(message.packet, writer.uint32(10).fork()).ldelim();\n }\n if (message.proofUnreceived.length !== 0) {\n writer.uint32(18).bytes(message.proofUnreceived);\n }\n if (message.proofClose.length !== 0) {\n writer.uint32(26).bytes(message.proofClose);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(34).fork()).ldelim();\n }\n if (!message.nextSequenceRecv.isZero()) {\n writer.uint32(40).uint64(message.nextSequenceRecv);\n }\n if (message.signer !== \"\") {\n writer.uint32(50).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgTimeoutOnClose);\n message.proofUnreceived = new Uint8Array();\n message.proofClose = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.packet = channel_1.Packet.decode(reader, reader.uint32());\n break;\n case 2:\n message.proofUnreceived = reader.bytes();\n break;\n case 3:\n message.proofClose = reader.bytes();\n break;\n case 4:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 5:\n message.nextSequenceRecv = reader.uint64();\n break;\n case 6:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgTimeoutOnClose);\n message.proofUnreceived = new Uint8Array();\n message.proofClose = new Uint8Array();\n if (object.packet !== undefined && object.packet !== null) {\n message.packet = channel_1.Packet.fromJSON(object.packet);\n }\n else {\n message.packet = undefined;\n }\n if (object.proofUnreceived !== undefined && object.proofUnreceived !== null) {\n message.proofUnreceived = bytesFromBase64(object.proofUnreceived);\n }\n if (object.proofClose !== undefined && object.proofClose !== null) {\n message.proofClose = bytesFromBase64(object.proofClose);\n }\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n }\n else {\n message.proofHeight = undefined;\n }\n if (object.nextSequenceRecv !== undefined && object.nextSequenceRecv !== null) {\n message.nextSequenceRecv = long_1.default.fromString(object.nextSequenceRecv);\n }\n else {\n message.nextSequenceRecv = long_1.default.UZERO;\n }\n if (object.signer !== undefined && object.signer !== null) {\n message.signer = String(object.signer);\n }\n else {\n message.signer = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.packet !== undefined && (obj.packet = message.packet ? channel_1.Packet.toJSON(message.packet) : undefined);\n message.proofUnreceived !== undefined &&\n (obj.proofUnreceived = base64FromBytes(message.proofUnreceived !== undefined ? message.proofUnreceived : new Uint8Array()));\n message.proofClose !== undefined &&\n (obj.proofClose = base64FromBytes(message.proofClose !== undefined ? message.proofClose : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n message.nextSequenceRecv !== undefined &&\n (obj.nextSequenceRecv = (message.nextSequenceRecv || long_1.default.UZERO).toString());\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgTimeoutOnClose);\n if (object.packet !== undefined && object.packet !== null) {\n message.packet = channel_1.Packet.fromPartial(object.packet);\n }\n else {\n message.packet = undefined;\n }\n if (object.proofUnreceived !== undefined && object.proofUnreceived !== null) {\n message.proofUnreceived = object.proofUnreceived;\n }\n else {\n message.proofUnreceived = new Uint8Array();\n }\n if (object.proofClose !== undefined && object.proofClose !== null) {\n message.proofClose = object.proofClose;\n }\n else {\n message.proofClose = new Uint8Array();\n }\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n else {\n message.proofHeight = undefined;\n }\n if (object.nextSequenceRecv !== undefined && object.nextSequenceRecv !== null) {\n message.nextSequenceRecv = object.nextSequenceRecv;\n }\n else {\n message.nextSequenceRecv = long_1.default.UZERO;\n }\n if (object.signer !== undefined && object.signer !== null) {\n message.signer = object.signer;\n }\n else {\n message.signer = \"\";\n }\n return message;\n },\n};\nconst baseMsgTimeoutOnCloseResponse = { result: 0 };\nexports.MsgTimeoutOnCloseResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.result !== 0) {\n writer.uint32(8).int32(message.result);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgTimeoutOnCloseResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.result = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgTimeoutOnCloseResponse);\n if (object.result !== undefined && object.result !== null) {\n message.result = responseResultTypeFromJSON(object.result);\n }\n else {\n message.result = 0;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.result !== undefined && (obj.result = responseResultTypeToJSON(message.result));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgTimeoutOnCloseResponse);\n if (object.result !== undefined && object.result !== null) {\n message.result = object.result;\n }\n else {\n message.result = 0;\n }\n return message;\n },\n};\nconst baseMsgAcknowledgement = { signer: \"\" };\nexports.MsgAcknowledgement = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.packet !== undefined) {\n channel_1.Packet.encode(message.packet, writer.uint32(10).fork()).ldelim();\n }\n if (message.acknowledgement.length !== 0) {\n writer.uint32(18).bytes(message.acknowledgement);\n }\n if (message.proofAcked.length !== 0) {\n writer.uint32(26).bytes(message.proofAcked);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(34).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(42).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgAcknowledgement);\n message.acknowledgement = new Uint8Array();\n message.proofAcked = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.packet = channel_1.Packet.decode(reader, reader.uint32());\n break;\n case 2:\n message.acknowledgement = reader.bytes();\n break;\n case 3:\n message.proofAcked = reader.bytes();\n break;\n case 4:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 5:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgAcknowledgement);\n message.acknowledgement = new Uint8Array();\n message.proofAcked = new Uint8Array();\n if (object.packet !== undefined && object.packet !== null) {\n message.packet = channel_1.Packet.fromJSON(object.packet);\n }\n else {\n message.packet = undefined;\n }\n if (object.acknowledgement !== undefined && object.acknowledgement !== null) {\n message.acknowledgement = bytesFromBase64(object.acknowledgement);\n }\n if (object.proofAcked !== undefined && object.proofAcked !== null) {\n message.proofAcked = bytesFromBase64(object.proofAcked);\n }\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n }\n else {\n message.proofHeight = undefined;\n }\n if (object.signer !== undefined && object.signer !== null) {\n message.signer = String(object.signer);\n }\n else {\n message.signer = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.packet !== undefined && (obj.packet = message.packet ? channel_1.Packet.toJSON(message.packet) : undefined);\n message.acknowledgement !== undefined &&\n (obj.acknowledgement = base64FromBytes(message.acknowledgement !== undefined ? message.acknowledgement : new Uint8Array()));\n message.proofAcked !== undefined &&\n (obj.proofAcked = base64FromBytes(message.proofAcked !== undefined ? message.proofAcked : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgAcknowledgement);\n if (object.packet !== undefined && object.packet !== null) {\n message.packet = channel_1.Packet.fromPartial(object.packet);\n }\n else {\n message.packet = undefined;\n }\n if (object.acknowledgement !== undefined && object.acknowledgement !== null) {\n message.acknowledgement = object.acknowledgement;\n }\n else {\n message.acknowledgement = new Uint8Array();\n }\n if (object.proofAcked !== undefined && object.proofAcked !== null) {\n message.proofAcked = object.proofAcked;\n }\n else {\n message.proofAcked = new Uint8Array();\n }\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n else {\n message.proofHeight = undefined;\n }\n if (object.signer !== undefined && object.signer !== null) {\n message.signer = object.signer;\n }\n else {\n message.signer = \"\";\n }\n return message;\n },\n};\nconst baseMsgAcknowledgementResponse = { result: 0 };\nexports.MsgAcknowledgementResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.result !== 0) {\n writer.uint32(8).int32(message.result);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgAcknowledgementResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.result = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgAcknowledgementResponse);\n if (object.result !== undefined && object.result !== null) {\n message.result = responseResultTypeFromJSON(object.result);\n }\n else {\n message.result = 0;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.result !== undefined && (obj.result = responseResultTypeToJSON(message.result));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgAcknowledgementResponse);\n if (object.result !== undefined && object.result !== null) {\n message.result = object.result;\n }\n else {\n message.result = 0;\n }\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.ChannelOpenInit = this.ChannelOpenInit.bind(this);\n this.ChannelOpenTry = this.ChannelOpenTry.bind(this);\n this.ChannelOpenAck = this.ChannelOpenAck.bind(this);\n this.ChannelOpenConfirm = this.ChannelOpenConfirm.bind(this);\n this.ChannelCloseInit = this.ChannelCloseInit.bind(this);\n this.ChannelCloseConfirm = this.ChannelCloseConfirm.bind(this);\n this.RecvPacket = this.RecvPacket.bind(this);\n this.Timeout = this.Timeout.bind(this);\n this.TimeoutOnClose = this.TimeoutOnClose.bind(this);\n this.Acknowledgement = this.Acknowledgement.bind(this);\n }\n ChannelOpenInit(request, metadata) {\n return this.rpc.unary(exports.MsgChannelOpenInitDesc, exports.MsgChannelOpenInit.fromPartial(request), metadata);\n }\n ChannelOpenTry(request, metadata) {\n return this.rpc.unary(exports.MsgChannelOpenTryDesc, exports.MsgChannelOpenTry.fromPartial(request), metadata);\n }\n ChannelOpenAck(request, metadata) {\n return this.rpc.unary(exports.MsgChannelOpenAckDesc, exports.MsgChannelOpenAck.fromPartial(request), metadata);\n }\n ChannelOpenConfirm(request, metadata) {\n return this.rpc.unary(exports.MsgChannelOpenConfirmDesc, exports.MsgChannelOpenConfirm.fromPartial(request), metadata);\n }\n ChannelCloseInit(request, metadata) {\n return this.rpc.unary(exports.MsgChannelCloseInitDesc, exports.MsgChannelCloseInit.fromPartial(request), metadata);\n }\n ChannelCloseConfirm(request, metadata) {\n return this.rpc.unary(exports.MsgChannelCloseConfirmDesc, exports.MsgChannelCloseConfirm.fromPartial(request), metadata);\n }\n RecvPacket(request, metadata) {\n return this.rpc.unary(exports.MsgRecvPacketDesc, exports.MsgRecvPacket.fromPartial(request), metadata);\n }\n Timeout(request, metadata) {\n return this.rpc.unary(exports.MsgTimeoutDesc, exports.MsgTimeout.fromPartial(request), metadata);\n }\n TimeoutOnClose(request, metadata) {\n return this.rpc.unary(exports.MsgTimeoutOnCloseDesc, exports.MsgTimeoutOnClose.fromPartial(request), metadata);\n }\n Acknowledgement(request, metadata) {\n return this.rpc.unary(exports.MsgAcknowledgementDesc, exports.MsgAcknowledgement.fromPartial(request), metadata);\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\nexports.MsgDesc = {\n serviceName: \"ibc.core.channel.v1.Msg\",\n};\nexports.MsgChannelOpenInitDesc = {\n methodName: \"ChannelOpenInit\",\n service: exports.MsgDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.MsgChannelOpenInit.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.MsgChannelOpenInitResponse.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nexports.MsgChannelOpenTryDesc = {\n methodName: \"ChannelOpenTry\",\n service: exports.MsgDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.MsgChannelOpenTry.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.MsgChannelOpenTryResponse.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nexports.MsgChannelOpenAckDesc = {\n methodName: \"ChannelOpenAck\",\n service: exports.MsgDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.MsgChannelOpenAck.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.MsgChannelOpenAckResponse.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nexports.MsgChannelOpenConfirmDesc = {\n methodName: \"ChannelOpenConfirm\",\n service: exports.MsgDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.MsgChannelOpenConfirm.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.MsgChannelOpenConfirmResponse.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nexports.MsgChannelCloseInitDesc = {\n methodName: \"ChannelCloseInit\",\n service: exports.MsgDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.MsgChannelCloseInit.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.MsgChannelCloseInitResponse.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nexports.MsgChannelCloseConfirmDesc = {\n methodName: \"ChannelCloseConfirm\",\n service: exports.MsgDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.MsgChannelCloseConfirm.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.MsgChannelCloseConfirmResponse.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nexports.MsgRecvPacketDesc = {\n methodName: \"RecvPacket\",\n service: exports.MsgDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.MsgRecvPacket.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.MsgRecvPacketResponse.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nexports.MsgTimeoutDesc = {\n methodName: \"Timeout\",\n service: exports.MsgDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.MsgTimeout.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.MsgTimeoutResponse.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nexports.MsgTimeoutOnCloseDesc = {\n methodName: \"TimeoutOnClose\",\n service: exports.MsgDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.MsgTimeoutOnClose.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.MsgTimeoutOnCloseResponse.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nexports.MsgAcknowledgementDesc = {\n methodName: \"Acknowledgement\",\n service: exports.MsgDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.MsgAcknowledgement.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.MsgAcknowledgementResponse.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nclass GrpcWebImpl {\n constructor(host, options) {\n this.host = host;\n this.options = options;\n }\n unary(methodDesc, _request, metadata) {\n var _a;\n const request = Object.assign(Object.assign({}, _request), methodDesc.requestType);\n const maybeCombinedMetadata = metadata && this.options.metadata\n ? new browser_headers_1.BrowserHeaders(Object.assign(Object.assign({}, (_a = this.options) === null || _a === void 0 ? void 0 : _a.metadata.headersMap), metadata === null || metadata === void 0 ? void 0 : metadata.headersMap))\n : metadata || this.options.metadata;\n return new Promise((resolve, reject) => {\n grpc_web_1.grpc.unary(methodDesc, {\n request,\n host: this.host,\n metadata: maybeCombinedMetadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (response.status === grpc_web_1.grpc.Code.OK) {\n resolve(response.message);\n }\n else {\n const err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n reject(err);\n }\n },\n });\n });\n }\n}\nexports.GrpcWebImpl = GrpcWebImpl;\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=tx.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Params = exports.Height = exports.UpgradeProposal = exports.ClientUpdateProposal = exports.ClientConsensusStates = exports.ConsensusStateWithHeight = exports.IdentifiedClientState = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst any_1 = require(\"../../../../google/protobuf/any\");\nconst upgrade_1 = require(\"../../../../cosmos/upgrade/v1beta1/upgrade\");\nexports.protobufPackage = \"ibc.core.client.v1\";\nconst baseIdentifiedClientState = { clientId: \"\" };\nexports.IdentifiedClientState = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n if (message.clientState !== undefined) {\n any_1.Any.encode(message.clientState, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseIdentifiedClientState);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.clientState = any_1.Any.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseIdentifiedClientState);\n if (object.clientId !== undefined && object.clientId !== null) {\n message.clientId = String(object.clientId);\n }\n else {\n message.clientId = \"\";\n }\n if (object.clientState !== undefined && object.clientState !== null) {\n message.clientState = any_1.Any.fromJSON(object.clientState);\n }\n else {\n message.clientState = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.clientState !== undefined &&\n (obj.clientState = message.clientState ? any_1.Any.toJSON(message.clientState) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseIdentifiedClientState);\n if (object.clientId !== undefined && object.clientId !== null) {\n message.clientId = object.clientId;\n }\n else {\n message.clientId = \"\";\n }\n if (object.clientState !== undefined && object.clientState !== null) {\n message.clientState = any_1.Any.fromPartial(object.clientState);\n }\n else {\n message.clientState = undefined;\n }\n return message;\n },\n};\nconst baseConsensusStateWithHeight = {};\nexports.ConsensusStateWithHeight = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.height !== undefined) {\n exports.Height.encode(message.height, writer.uint32(10).fork()).ldelim();\n }\n if (message.consensusState !== undefined) {\n any_1.Any.encode(message.consensusState, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseConsensusStateWithHeight);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.height = exports.Height.decode(reader, reader.uint32());\n break;\n case 2:\n message.consensusState = any_1.Any.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseConsensusStateWithHeight);\n if (object.height !== undefined && object.height !== null) {\n message.height = exports.Height.fromJSON(object.height);\n }\n else {\n message.height = undefined;\n }\n if (object.consensusState !== undefined && object.consensusState !== null) {\n message.consensusState = any_1.Any.fromJSON(object.consensusState);\n }\n else {\n message.consensusState = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.height !== undefined && (obj.height = message.height ? exports.Height.toJSON(message.height) : undefined);\n message.consensusState !== undefined &&\n (obj.consensusState = message.consensusState ? any_1.Any.toJSON(message.consensusState) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseConsensusStateWithHeight);\n if (object.height !== undefined && object.height !== null) {\n message.height = exports.Height.fromPartial(object.height);\n }\n else {\n message.height = undefined;\n }\n if (object.consensusState !== undefined && object.consensusState !== null) {\n message.consensusState = any_1.Any.fromPartial(object.consensusState);\n }\n else {\n message.consensusState = undefined;\n }\n return message;\n },\n};\nconst baseClientConsensusStates = { clientId: \"\" };\nexports.ClientConsensusStates = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n for (const v of message.consensusStates) {\n exports.ConsensusStateWithHeight.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseClientConsensusStates);\n message.consensusStates = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.consensusStates.push(exports.ConsensusStateWithHeight.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseClientConsensusStates);\n message.consensusStates = [];\n if (object.clientId !== undefined && object.clientId !== null) {\n message.clientId = String(object.clientId);\n }\n else {\n message.clientId = \"\";\n }\n if (object.consensusStates !== undefined && object.consensusStates !== null) {\n for (const e of object.consensusStates) {\n message.consensusStates.push(exports.ConsensusStateWithHeight.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n if (message.consensusStates) {\n obj.consensusStates = message.consensusStates.map((e) => e ? exports.ConsensusStateWithHeight.toJSON(e) : undefined);\n }\n else {\n obj.consensusStates = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseClientConsensusStates);\n message.consensusStates = [];\n if (object.clientId !== undefined && object.clientId !== null) {\n message.clientId = object.clientId;\n }\n else {\n message.clientId = \"\";\n }\n if (object.consensusStates !== undefined && object.consensusStates !== null) {\n for (const e of object.consensusStates) {\n message.consensusStates.push(exports.ConsensusStateWithHeight.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseClientUpdateProposal = {\n title: \"\",\n description: \"\",\n subjectClientId: \"\",\n substituteClientId: \"\",\n};\nexports.ClientUpdateProposal = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.title !== \"\") {\n writer.uint32(10).string(message.title);\n }\n if (message.description !== \"\") {\n writer.uint32(18).string(message.description);\n }\n if (message.subjectClientId !== \"\") {\n writer.uint32(26).string(message.subjectClientId);\n }\n if (message.substituteClientId !== \"\") {\n writer.uint32(34).string(message.substituteClientId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseClientUpdateProposal);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.title = reader.string();\n break;\n case 2:\n message.description = reader.string();\n break;\n case 3:\n message.subjectClientId = reader.string();\n break;\n case 4:\n message.substituteClientId = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseClientUpdateProposal);\n if (object.title !== undefined && object.title !== null) {\n message.title = String(object.title);\n }\n else {\n message.title = \"\";\n }\n if (object.description !== undefined && object.description !== null) {\n message.description = String(object.description);\n }\n else {\n message.description = \"\";\n }\n if (object.subjectClientId !== undefined && object.subjectClientId !== null) {\n message.subjectClientId = String(object.subjectClientId);\n }\n else {\n message.subjectClientId = \"\";\n }\n if (object.substituteClientId !== undefined && object.substituteClientId !== null) {\n message.substituteClientId = String(object.substituteClientId);\n }\n else {\n message.substituteClientId = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.title !== undefined && (obj.title = message.title);\n message.description !== undefined && (obj.description = message.description);\n message.subjectClientId !== undefined && (obj.subjectClientId = message.subjectClientId);\n message.substituteClientId !== undefined && (obj.substituteClientId = message.substituteClientId);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseClientUpdateProposal);\n if (object.title !== undefined && object.title !== null) {\n message.title = object.title;\n }\n else {\n message.title = \"\";\n }\n if (object.description !== undefined && object.description !== null) {\n message.description = object.description;\n }\n else {\n message.description = \"\";\n }\n if (object.subjectClientId !== undefined && object.subjectClientId !== null) {\n message.subjectClientId = object.subjectClientId;\n }\n else {\n message.subjectClientId = \"\";\n }\n if (object.substituteClientId !== undefined && object.substituteClientId !== null) {\n message.substituteClientId = object.substituteClientId;\n }\n else {\n message.substituteClientId = \"\";\n }\n return message;\n },\n};\nconst baseUpgradeProposal = { title: \"\", description: \"\" };\nexports.UpgradeProposal = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.title !== \"\") {\n writer.uint32(10).string(message.title);\n }\n if (message.description !== \"\") {\n writer.uint32(18).string(message.description);\n }\n if (message.plan !== undefined) {\n upgrade_1.Plan.encode(message.plan, writer.uint32(26).fork()).ldelim();\n }\n if (message.upgradedClientState !== undefined) {\n any_1.Any.encode(message.upgradedClientState, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseUpgradeProposal);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.title = reader.string();\n break;\n case 2:\n message.description = reader.string();\n break;\n case 3:\n message.plan = upgrade_1.Plan.decode(reader, reader.uint32());\n break;\n case 4:\n message.upgradedClientState = any_1.Any.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseUpgradeProposal);\n if (object.title !== undefined && object.title !== null) {\n message.title = String(object.title);\n }\n else {\n message.title = \"\";\n }\n if (object.description !== undefined && object.description !== null) {\n message.description = String(object.description);\n }\n else {\n message.description = \"\";\n }\n if (object.plan !== undefined && object.plan !== null) {\n message.plan = upgrade_1.Plan.fromJSON(object.plan);\n }\n else {\n message.plan = undefined;\n }\n if (object.upgradedClientState !== undefined && object.upgradedClientState !== null) {\n message.upgradedClientState = any_1.Any.fromJSON(object.upgradedClientState);\n }\n else {\n message.upgradedClientState = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.title !== undefined && (obj.title = message.title);\n message.description !== undefined && (obj.description = message.description);\n message.plan !== undefined && (obj.plan = message.plan ? upgrade_1.Plan.toJSON(message.plan) : undefined);\n message.upgradedClientState !== undefined &&\n (obj.upgradedClientState = message.upgradedClientState\n ? any_1.Any.toJSON(message.upgradedClientState)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseUpgradeProposal);\n if (object.title !== undefined && object.title !== null) {\n message.title = object.title;\n }\n else {\n message.title = \"\";\n }\n if (object.description !== undefined && object.description !== null) {\n message.description = object.description;\n }\n else {\n message.description = \"\";\n }\n if (object.plan !== undefined && object.plan !== null) {\n message.plan = upgrade_1.Plan.fromPartial(object.plan);\n }\n else {\n message.plan = undefined;\n }\n if (object.upgradedClientState !== undefined && object.upgradedClientState !== null) {\n message.upgradedClientState = any_1.Any.fromPartial(object.upgradedClientState);\n }\n else {\n message.upgradedClientState = undefined;\n }\n return message;\n },\n};\nconst baseHeight = { revisionNumber: long_1.default.UZERO, revisionHeight: long_1.default.UZERO };\nexports.Height = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.revisionNumber.isZero()) {\n writer.uint32(8).uint64(message.revisionNumber);\n }\n if (!message.revisionHeight.isZero()) {\n writer.uint32(16).uint64(message.revisionHeight);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseHeight);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.revisionNumber = reader.uint64();\n break;\n case 2:\n message.revisionHeight = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseHeight);\n if (object.revisionNumber !== undefined && object.revisionNumber !== null) {\n message.revisionNumber = long_1.default.fromString(object.revisionNumber);\n }\n else {\n message.revisionNumber = long_1.default.UZERO;\n }\n if (object.revisionHeight !== undefined && object.revisionHeight !== null) {\n message.revisionHeight = long_1.default.fromString(object.revisionHeight);\n }\n else {\n message.revisionHeight = long_1.default.UZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.revisionNumber !== undefined &&\n (obj.revisionNumber = (message.revisionNumber || long_1.default.UZERO).toString());\n message.revisionHeight !== undefined &&\n (obj.revisionHeight = (message.revisionHeight || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseHeight);\n if (object.revisionNumber !== undefined && object.revisionNumber !== null) {\n message.revisionNumber = object.revisionNumber;\n }\n else {\n message.revisionNumber = long_1.default.UZERO;\n }\n if (object.revisionHeight !== undefined && object.revisionHeight !== null) {\n message.revisionHeight = object.revisionHeight;\n }\n else {\n message.revisionHeight = long_1.default.UZERO;\n }\n return message;\n },\n};\nconst baseParams = { allowedClients: \"\" };\nexports.Params = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.allowedClients) {\n writer.uint32(10).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseParams);\n message.allowedClients = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.allowedClients.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseParams);\n message.allowedClients = [];\n if (object.allowedClients !== undefined && object.allowedClients !== null) {\n for (const e of object.allowedClients) {\n message.allowedClients.push(String(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.allowedClients) {\n obj.allowedClients = message.allowedClients.map((e) => e);\n }\n else {\n obj.allowedClients = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseParams);\n message.allowedClients = [];\n if (object.allowedClients !== undefined && object.allowedClients !== null) {\n for (const e of object.allowedClients) {\n message.allowedClients.push(e);\n }\n }\n return message;\n },\n};\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=client.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GrpcWebImpl = exports.MsgSubmitMisbehaviourDesc = exports.MsgUpgradeClientDesc = exports.MsgUpdateClientDesc = exports.MsgCreateClientDesc = exports.MsgDesc = exports.MsgClientImpl = exports.MsgSubmitMisbehaviourResponse = exports.MsgSubmitMisbehaviour = exports.MsgUpgradeClientResponse = exports.MsgUpgradeClient = exports.MsgUpdateClientResponse = exports.MsgUpdateClient = exports.MsgCreateClientResponse = exports.MsgCreateClient = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst grpc_web_1 = require(\"@improbable-eng/grpc-web\");\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst any_1 = require(\"../../../../google/protobuf/any\");\nconst browser_headers_1 = require(\"browser-headers\");\nexports.protobufPackage = \"ibc.core.client.v1\";\nconst baseMsgCreateClient = { signer: \"\" };\nexports.MsgCreateClient = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.clientState !== undefined) {\n any_1.Any.encode(message.clientState, writer.uint32(10).fork()).ldelim();\n }\n if (message.consensusState !== undefined) {\n any_1.Any.encode(message.consensusState, writer.uint32(18).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(26).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgCreateClient);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientState = any_1.Any.decode(reader, reader.uint32());\n break;\n case 2:\n message.consensusState = any_1.Any.decode(reader, reader.uint32());\n break;\n case 3:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgCreateClient);\n if (object.clientState !== undefined && object.clientState !== null) {\n message.clientState = any_1.Any.fromJSON(object.clientState);\n }\n else {\n message.clientState = undefined;\n }\n if (object.consensusState !== undefined && object.consensusState !== null) {\n message.consensusState = any_1.Any.fromJSON(object.consensusState);\n }\n else {\n message.consensusState = undefined;\n }\n if (object.signer !== undefined && object.signer !== null) {\n message.signer = String(object.signer);\n }\n else {\n message.signer = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.clientState !== undefined &&\n (obj.clientState = message.clientState ? any_1.Any.toJSON(message.clientState) : undefined);\n message.consensusState !== undefined &&\n (obj.consensusState = message.consensusState ? any_1.Any.toJSON(message.consensusState) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgCreateClient);\n if (object.clientState !== undefined && object.clientState !== null) {\n message.clientState = any_1.Any.fromPartial(object.clientState);\n }\n else {\n message.clientState = undefined;\n }\n if (object.consensusState !== undefined && object.consensusState !== null) {\n message.consensusState = any_1.Any.fromPartial(object.consensusState);\n }\n else {\n message.consensusState = undefined;\n }\n if (object.signer !== undefined && object.signer !== null) {\n message.signer = object.signer;\n }\n else {\n message.signer = \"\";\n }\n return message;\n },\n};\nconst baseMsgCreateClientResponse = {};\nexports.MsgCreateClientResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgCreateClientResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgCreateClientResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgCreateClientResponse);\n return message;\n },\n};\nconst baseMsgUpdateClient = { clientId: \"\", signer: \"\" };\nexports.MsgUpdateClient = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n if (message.header !== undefined) {\n any_1.Any.encode(message.header, writer.uint32(18).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(26).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgUpdateClient);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.header = any_1.Any.decode(reader, reader.uint32());\n break;\n case 3:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgUpdateClient);\n if (object.clientId !== undefined && object.clientId !== null) {\n message.clientId = String(object.clientId);\n }\n else {\n message.clientId = \"\";\n }\n if (object.header !== undefined && object.header !== null) {\n message.header = any_1.Any.fromJSON(object.header);\n }\n else {\n message.header = undefined;\n }\n if (object.signer !== undefined && object.signer !== null) {\n message.signer = String(object.signer);\n }\n else {\n message.signer = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.header !== undefined && (obj.header = message.header ? any_1.Any.toJSON(message.header) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgUpdateClient);\n if (object.clientId !== undefined && object.clientId !== null) {\n message.clientId = object.clientId;\n }\n else {\n message.clientId = \"\";\n }\n if (object.header !== undefined && object.header !== null) {\n message.header = any_1.Any.fromPartial(object.header);\n }\n else {\n message.header = undefined;\n }\n if (object.signer !== undefined && object.signer !== null) {\n message.signer = object.signer;\n }\n else {\n message.signer = \"\";\n }\n return message;\n },\n};\nconst baseMsgUpdateClientResponse = {};\nexports.MsgUpdateClientResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgUpdateClientResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgUpdateClientResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgUpdateClientResponse);\n return message;\n },\n};\nconst baseMsgUpgradeClient = { clientId: \"\", signer: \"\" };\nexports.MsgUpgradeClient = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n if (message.clientState !== undefined) {\n any_1.Any.encode(message.clientState, writer.uint32(18).fork()).ldelim();\n }\n if (message.consensusState !== undefined) {\n any_1.Any.encode(message.consensusState, writer.uint32(26).fork()).ldelim();\n }\n if (message.proofUpgradeClient.length !== 0) {\n writer.uint32(34).bytes(message.proofUpgradeClient);\n }\n if (message.proofUpgradeConsensusState.length !== 0) {\n writer.uint32(42).bytes(message.proofUpgradeConsensusState);\n }\n if (message.signer !== \"\") {\n writer.uint32(50).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgUpgradeClient);\n message.proofUpgradeClient = new Uint8Array();\n message.proofUpgradeConsensusState = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.clientState = any_1.Any.decode(reader, reader.uint32());\n break;\n case 3:\n message.consensusState = any_1.Any.decode(reader, reader.uint32());\n break;\n case 4:\n message.proofUpgradeClient = reader.bytes();\n break;\n case 5:\n message.proofUpgradeConsensusState = reader.bytes();\n break;\n case 6:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgUpgradeClient);\n message.proofUpgradeClient = new Uint8Array();\n message.proofUpgradeConsensusState = new Uint8Array();\n if (object.clientId !== undefined && object.clientId !== null) {\n message.clientId = String(object.clientId);\n }\n else {\n message.clientId = \"\";\n }\n if (object.clientState !== undefined && object.clientState !== null) {\n message.clientState = any_1.Any.fromJSON(object.clientState);\n }\n else {\n message.clientState = undefined;\n }\n if (object.consensusState !== undefined && object.consensusState !== null) {\n message.consensusState = any_1.Any.fromJSON(object.consensusState);\n }\n else {\n message.consensusState = undefined;\n }\n if (object.proofUpgradeClient !== undefined && object.proofUpgradeClient !== null) {\n message.proofUpgradeClient = bytesFromBase64(object.proofUpgradeClient);\n }\n if (object.proofUpgradeConsensusState !== undefined && object.proofUpgradeConsensusState !== null) {\n message.proofUpgradeConsensusState = bytesFromBase64(object.proofUpgradeConsensusState);\n }\n if (object.signer !== undefined && object.signer !== null) {\n message.signer = String(object.signer);\n }\n else {\n message.signer = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.clientState !== undefined &&\n (obj.clientState = message.clientState ? any_1.Any.toJSON(message.clientState) : undefined);\n message.consensusState !== undefined &&\n (obj.consensusState = message.consensusState ? any_1.Any.toJSON(message.consensusState) : undefined);\n message.proofUpgradeClient !== undefined &&\n (obj.proofUpgradeClient = base64FromBytes(message.proofUpgradeClient !== undefined ? message.proofUpgradeClient : new Uint8Array()));\n message.proofUpgradeConsensusState !== undefined &&\n (obj.proofUpgradeConsensusState = base64FromBytes(message.proofUpgradeConsensusState !== undefined\n ? message.proofUpgradeConsensusState\n : new Uint8Array()));\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgUpgradeClient);\n if (object.clientId !== undefined && object.clientId !== null) {\n message.clientId = object.clientId;\n }\n else {\n message.clientId = \"\";\n }\n if (object.clientState !== undefined && object.clientState !== null) {\n message.clientState = any_1.Any.fromPartial(object.clientState);\n }\n else {\n message.clientState = undefined;\n }\n if (object.consensusState !== undefined && object.consensusState !== null) {\n message.consensusState = any_1.Any.fromPartial(object.consensusState);\n }\n else {\n message.consensusState = undefined;\n }\n if (object.proofUpgradeClient !== undefined && object.proofUpgradeClient !== null) {\n message.proofUpgradeClient = object.proofUpgradeClient;\n }\n else {\n message.proofUpgradeClient = new Uint8Array();\n }\n if (object.proofUpgradeConsensusState !== undefined && object.proofUpgradeConsensusState !== null) {\n message.proofUpgradeConsensusState = object.proofUpgradeConsensusState;\n }\n else {\n message.proofUpgradeConsensusState = new Uint8Array();\n }\n if (object.signer !== undefined && object.signer !== null) {\n message.signer = object.signer;\n }\n else {\n message.signer = \"\";\n }\n return message;\n },\n};\nconst baseMsgUpgradeClientResponse = {};\nexports.MsgUpgradeClientResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgUpgradeClientResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgUpgradeClientResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgUpgradeClientResponse);\n return message;\n },\n};\nconst baseMsgSubmitMisbehaviour = { clientId: \"\", signer: \"\" };\nexports.MsgSubmitMisbehaviour = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n if (message.misbehaviour !== undefined) {\n any_1.Any.encode(message.misbehaviour, writer.uint32(18).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(26).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgSubmitMisbehaviour);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.misbehaviour = any_1.Any.decode(reader, reader.uint32());\n break;\n case 3:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgSubmitMisbehaviour);\n if (object.clientId !== undefined && object.clientId !== null) {\n message.clientId = String(object.clientId);\n }\n else {\n message.clientId = \"\";\n }\n if (object.misbehaviour !== undefined && object.misbehaviour !== null) {\n message.misbehaviour = any_1.Any.fromJSON(object.misbehaviour);\n }\n else {\n message.misbehaviour = undefined;\n }\n if (object.signer !== undefined && object.signer !== null) {\n message.signer = String(object.signer);\n }\n else {\n message.signer = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.misbehaviour !== undefined &&\n (obj.misbehaviour = message.misbehaviour ? any_1.Any.toJSON(message.misbehaviour) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgSubmitMisbehaviour);\n if (object.clientId !== undefined && object.clientId !== null) {\n message.clientId = object.clientId;\n }\n else {\n message.clientId = \"\";\n }\n if (object.misbehaviour !== undefined && object.misbehaviour !== null) {\n message.misbehaviour = any_1.Any.fromPartial(object.misbehaviour);\n }\n else {\n message.misbehaviour = undefined;\n }\n if (object.signer !== undefined && object.signer !== null) {\n message.signer = object.signer;\n }\n else {\n message.signer = \"\";\n }\n return message;\n },\n};\nconst baseMsgSubmitMisbehaviourResponse = {};\nexports.MsgSubmitMisbehaviourResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgSubmitMisbehaviourResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgSubmitMisbehaviourResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgSubmitMisbehaviourResponse);\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.CreateClient = this.CreateClient.bind(this);\n this.UpdateClient = this.UpdateClient.bind(this);\n this.UpgradeClient = this.UpgradeClient.bind(this);\n this.SubmitMisbehaviour = this.SubmitMisbehaviour.bind(this);\n }\n CreateClient(request, metadata) {\n return this.rpc.unary(exports.MsgCreateClientDesc, exports.MsgCreateClient.fromPartial(request), metadata);\n }\n UpdateClient(request, metadata) {\n return this.rpc.unary(exports.MsgUpdateClientDesc, exports.MsgUpdateClient.fromPartial(request), metadata);\n }\n UpgradeClient(request, metadata) {\n return this.rpc.unary(exports.MsgUpgradeClientDesc, exports.MsgUpgradeClient.fromPartial(request), metadata);\n }\n SubmitMisbehaviour(request, metadata) {\n return this.rpc.unary(exports.MsgSubmitMisbehaviourDesc, exports.MsgSubmitMisbehaviour.fromPartial(request), metadata);\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\nexports.MsgDesc = {\n serviceName: \"ibc.core.client.v1.Msg\",\n};\nexports.MsgCreateClientDesc = {\n methodName: \"CreateClient\",\n service: exports.MsgDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.MsgCreateClient.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.MsgCreateClientResponse.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nexports.MsgUpdateClientDesc = {\n methodName: \"UpdateClient\",\n service: exports.MsgDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.MsgUpdateClient.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.MsgUpdateClientResponse.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nexports.MsgUpgradeClientDesc = {\n methodName: \"UpgradeClient\",\n service: exports.MsgDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.MsgUpgradeClient.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.MsgUpgradeClientResponse.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nexports.MsgSubmitMisbehaviourDesc = {\n methodName: \"SubmitMisbehaviour\",\n service: exports.MsgDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.MsgSubmitMisbehaviour.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.MsgSubmitMisbehaviourResponse.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nclass GrpcWebImpl {\n constructor(host, options) {\n this.host = host;\n this.options = options;\n }\n unary(methodDesc, _request, metadata) {\n var _a;\n const request = Object.assign(Object.assign({}, _request), methodDesc.requestType);\n const maybeCombinedMetadata = metadata && this.options.metadata\n ? new browser_headers_1.BrowserHeaders(Object.assign(Object.assign({}, (_a = this.options) === null || _a === void 0 ? void 0 : _a.metadata.headersMap), metadata === null || metadata === void 0 ? void 0 : metadata.headersMap))\n : metadata || this.options.metadata;\n return new Promise((resolve, reject) => {\n grpc_web_1.grpc.unary(methodDesc, {\n request,\n host: this.host,\n metadata: maybeCombinedMetadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (response.status === grpc_web_1.grpc.Code.OK) {\n resolve(response.message);\n }\n else {\n const err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n reject(err);\n }\n },\n });\n });\n }\n}\nexports.GrpcWebImpl = GrpcWebImpl;\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=tx.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MerkleProof = exports.MerklePath = exports.MerklePrefix = exports.MerkleRoot = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst proofs_1 = require(\"../../../../confio/proofs\");\nexports.protobufPackage = \"ibc.core.commitment.v1\";\nconst baseMerkleRoot = {};\nexports.MerkleRoot = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.hash.length !== 0) {\n writer.uint32(10).bytes(message.hash);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMerkleRoot);\n message.hash = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hash = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMerkleRoot);\n message.hash = new Uint8Array();\n if (object.hash !== undefined && object.hash !== null) {\n message.hash = bytesFromBase64(object.hash);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.hash !== undefined &&\n (obj.hash = base64FromBytes(message.hash !== undefined ? message.hash : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMerkleRoot);\n if (object.hash !== undefined && object.hash !== null) {\n message.hash = object.hash;\n }\n else {\n message.hash = new Uint8Array();\n }\n return message;\n },\n};\nconst baseMerklePrefix = {};\nexports.MerklePrefix = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.keyPrefix.length !== 0) {\n writer.uint32(10).bytes(message.keyPrefix);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMerklePrefix);\n message.keyPrefix = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.keyPrefix = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMerklePrefix);\n message.keyPrefix = new Uint8Array();\n if (object.keyPrefix !== undefined && object.keyPrefix !== null) {\n message.keyPrefix = bytesFromBase64(object.keyPrefix);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.keyPrefix !== undefined &&\n (obj.keyPrefix = base64FromBytes(message.keyPrefix !== undefined ? message.keyPrefix : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMerklePrefix);\n if (object.keyPrefix !== undefined && object.keyPrefix !== null) {\n message.keyPrefix = object.keyPrefix;\n }\n else {\n message.keyPrefix = new Uint8Array();\n }\n return message;\n },\n};\nconst baseMerklePath = { keyPath: \"\" };\nexports.MerklePath = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.keyPath) {\n writer.uint32(10).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMerklePath);\n message.keyPath = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.keyPath.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMerklePath);\n message.keyPath = [];\n if (object.keyPath !== undefined && object.keyPath !== null) {\n for (const e of object.keyPath) {\n message.keyPath.push(String(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.keyPath) {\n obj.keyPath = message.keyPath.map((e) => e);\n }\n else {\n obj.keyPath = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMerklePath);\n message.keyPath = [];\n if (object.keyPath !== undefined && object.keyPath !== null) {\n for (const e of object.keyPath) {\n message.keyPath.push(e);\n }\n }\n return message;\n },\n};\nconst baseMerkleProof = {};\nexports.MerkleProof = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.proofs) {\n proofs_1.CommitmentProof.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMerkleProof);\n message.proofs = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proofs.push(proofs_1.CommitmentProof.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMerkleProof);\n message.proofs = [];\n if (object.proofs !== undefined && object.proofs !== null) {\n for (const e of object.proofs) {\n message.proofs.push(proofs_1.CommitmentProof.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.proofs) {\n obj.proofs = message.proofs.map((e) => (e ? proofs_1.CommitmentProof.toJSON(e) : undefined));\n }\n else {\n obj.proofs = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMerkleProof);\n message.proofs = [];\n if (object.proofs !== undefined && object.proofs !== null) {\n for (const e of object.proofs) {\n message.proofs.push(proofs_1.CommitmentProof.fromPartial(e));\n }\n }\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=commitment.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Params = exports.Version = exports.ConnectionPaths = exports.ClientPaths = exports.Counterparty = exports.IdentifiedConnection = exports.ConnectionEnd = exports.stateToJSON = exports.stateFromJSON = exports.State = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst commitment_1 = require(\"../../../../ibc/core/commitment/v1/commitment\");\nexports.protobufPackage = \"ibc.core.connection.v1\";\n/**\n * State defines if a connection is in one of the following states:\n * INIT, TRYOPEN, OPEN or UNINITIALIZED.\n */\nvar State;\n(function (State) {\n /** STATE_UNINITIALIZED_UNSPECIFIED - Default State */\n State[State[\"STATE_UNINITIALIZED_UNSPECIFIED\"] = 0] = \"STATE_UNINITIALIZED_UNSPECIFIED\";\n /** STATE_INIT - A connection end has just started the opening handshake. */\n State[State[\"STATE_INIT\"] = 1] = \"STATE_INIT\";\n /**\n * STATE_TRYOPEN - A connection end has acknowledged the handshake step on the counterparty\n * chain.\n */\n State[State[\"STATE_TRYOPEN\"] = 2] = \"STATE_TRYOPEN\";\n /** STATE_OPEN - A connection end has completed the handshake. */\n State[State[\"STATE_OPEN\"] = 3] = \"STATE_OPEN\";\n State[State[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(State = exports.State || (exports.State = {}));\nfunction stateFromJSON(object) {\n switch (object) {\n case 0:\n case \"STATE_UNINITIALIZED_UNSPECIFIED\":\n return State.STATE_UNINITIALIZED_UNSPECIFIED;\n case 1:\n case \"STATE_INIT\":\n return State.STATE_INIT;\n case 2:\n case \"STATE_TRYOPEN\":\n return State.STATE_TRYOPEN;\n case 3:\n case \"STATE_OPEN\":\n return State.STATE_OPEN;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return State.UNRECOGNIZED;\n }\n}\nexports.stateFromJSON = stateFromJSON;\nfunction stateToJSON(object) {\n switch (object) {\n case State.STATE_UNINITIALIZED_UNSPECIFIED:\n return \"STATE_UNINITIALIZED_UNSPECIFIED\";\n case State.STATE_INIT:\n return \"STATE_INIT\";\n case State.STATE_TRYOPEN:\n return \"STATE_TRYOPEN\";\n case State.STATE_OPEN:\n return \"STATE_OPEN\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.stateToJSON = stateToJSON;\nconst baseConnectionEnd = { clientId: \"\", state: 0, delayPeriod: long_1.default.UZERO };\nexports.ConnectionEnd = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n for (const v of message.versions) {\n exports.Version.encode(v, writer.uint32(18).fork()).ldelim();\n }\n if (message.state !== 0) {\n writer.uint32(24).int32(message.state);\n }\n if (message.counterparty !== undefined) {\n exports.Counterparty.encode(message.counterparty, writer.uint32(34).fork()).ldelim();\n }\n if (!message.delayPeriod.isZero()) {\n writer.uint32(40).uint64(message.delayPeriod);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseConnectionEnd);\n message.versions = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.versions.push(exports.Version.decode(reader, reader.uint32()));\n break;\n case 3:\n message.state = reader.int32();\n break;\n case 4:\n message.counterparty = exports.Counterparty.decode(reader, reader.uint32());\n break;\n case 5:\n message.delayPeriod = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseConnectionEnd);\n message.versions = [];\n if (object.clientId !== undefined && object.clientId !== null) {\n message.clientId = String(object.clientId);\n }\n else {\n message.clientId = \"\";\n }\n if (object.versions !== undefined && object.versions !== null) {\n for (const e of object.versions) {\n message.versions.push(exports.Version.fromJSON(e));\n }\n }\n if (object.state !== undefined && object.state !== null) {\n message.state = stateFromJSON(object.state);\n }\n else {\n message.state = 0;\n }\n if (object.counterparty !== undefined && object.counterparty !== null) {\n message.counterparty = exports.Counterparty.fromJSON(object.counterparty);\n }\n else {\n message.counterparty = undefined;\n }\n if (object.delayPeriod !== undefined && object.delayPeriod !== null) {\n message.delayPeriod = long_1.default.fromString(object.delayPeriod);\n }\n else {\n message.delayPeriod = long_1.default.UZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n if (message.versions) {\n obj.versions = message.versions.map((e) => (e ? exports.Version.toJSON(e) : undefined));\n }\n else {\n obj.versions = [];\n }\n message.state !== undefined && (obj.state = stateToJSON(message.state));\n message.counterparty !== undefined &&\n (obj.counterparty = message.counterparty ? exports.Counterparty.toJSON(message.counterparty) : undefined);\n message.delayPeriod !== undefined && (obj.delayPeriod = (message.delayPeriod || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseConnectionEnd);\n message.versions = [];\n if (object.clientId !== undefined && object.clientId !== null) {\n message.clientId = object.clientId;\n }\n else {\n message.clientId = \"\";\n }\n if (object.versions !== undefined && object.versions !== null) {\n for (const e of object.versions) {\n message.versions.push(exports.Version.fromPartial(e));\n }\n }\n if (object.state !== undefined && object.state !== null) {\n message.state = object.state;\n }\n else {\n message.state = 0;\n }\n if (object.counterparty !== undefined && object.counterparty !== null) {\n message.counterparty = exports.Counterparty.fromPartial(object.counterparty);\n }\n else {\n message.counterparty = undefined;\n }\n if (object.delayPeriod !== undefined && object.delayPeriod !== null) {\n message.delayPeriod = object.delayPeriod;\n }\n else {\n message.delayPeriod = long_1.default.UZERO;\n }\n return message;\n },\n};\nconst baseIdentifiedConnection = { id: \"\", clientId: \"\", state: 0, delayPeriod: long_1.default.UZERO };\nexports.IdentifiedConnection = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.id !== \"\") {\n writer.uint32(10).string(message.id);\n }\n if (message.clientId !== \"\") {\n writer.uint32(18).string(message.clientId);\n }\n for (const v of message.versions) {\n exports.Version.encode(v, writer.uint32(26).fork()).ldelim();\n }\n if (message.state !== 0) {\n writer.uint32(32).int32(message.state);\n }\n if (message.counterparty !== undefined) {\n exports.Counterparty.encode(message.counterparty, writer.uint32(42).fork()).ldelim();\n }\n if (!message.delayPeriod.isZero()) {\n writer.uint32(48).uint64(message.delayPeriod);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseIdentifiedConnection);\n message.versions = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.id = reader.string();\n break;\n case 2:\n message.clientId = reader.string();\n break;\n case 3:\n message.versions.push(exports.Version.decode(reader, reader.uint32()));\n break;\n case 4:\n message.state = reader.int32();\n break;\n case 5:\n message.counterparty = exports.Counterparty.decode(reader, reader.uint32());\n break;\n case 6:\n message.delayPeriod = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseIdentifiedConnection);\n message.versions = [];\n if (object.id !== undefined && object.id !== null) {\n message.id = String(object.id);\n }\n else {\n message.id = \"\";\n }\n if (object.clientId !== undefined && object.clientId !== null) {\n message.clientId = String(object.clientId);\n }\n else {\n message.clientId = \"\";\n }\n if (object.versions !== undefined && object.versions !== null) {\n for (const e of object.versions) {\n message.versions.push(exports.Version.fromJSON(e));\n }\n }\n if (object.state !== undefined && object.state !== null) {\n message.state = stateFromJSON(object.state);\n }\n else {\n message.state = 0;\n }\n if (object.counterparty !== undefined && object.counterparty !== null) {\n message.counterparty = exports.Counterparty.fromJSON(object.counterparty);\n }\n else {\n message.counterparty = undefined;\n }\n if (object.delayPeriod !== undefined && object.delayPeriod !== null) {\n message.delayPeriod = long_1.default.fromString(object.delayPeriod);\n }\n else {\n message.delayPeriod = long_1.default.UZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.id !== undefined && (obj.id = message.id);\n message.clientId !== undefined && (obj.clientId = message.clientId);\n if (message.versions) {\n obj.versions = message.versions.map((e) => (e ? exports.Version.toJSON(e) : undefined));\n }\n else {\n obj.versions = [];\n }\n message.state !== undefined && (obj.state = stateToJSON(message.state));\n message.counterparty !== undefined &&\n (obj.counterparty = message.counterparty ? exports.Counterparty.toJSON(message.counterparty) : undefined);\n message.delayPeriod !== undefined && (obj.delayPeriod = (message.delayPeriod || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseIdentifiedConnection);\n message.versions = [];\n if (object.id !== undefined && object.id !== null) {\n message.id = object.id;\n }\n else {\n message.id = \"\";\n }\n if (object.clientId !== undefined && object.clientId !== null) {\n message.clientId = object.clientId;\n }\n else {\n message.clientId = \"\";\n }\n if (object.versions !== undefined && object.versions !== null) {\n for (const e of object.versions) {\n message.versions.push(exports.Version.fromPartial(e));\n }\n }\n if (object.state !== undefined && object.state !== null) {\n message.state = object.state;\n }\n else {\n message.state = 0;\n }\n if (object.counterparty !== undefined && object.counterparty !== null) {\n message.counterparty = exports.Counterparty.fromPartial(object.counterparty);\n }\n else {\n message.counterparty = undefined;\n }\n if (object.delayPeriod !== undefined && object.delayPeriod !== null) {\n message.delayPeriod = object.delayPeriod;\n }\n else {\n message.delayPeriod = long_1.default.UZERO;\n }\n return message;\n },\n};\nconst baseCounterparty = { clientId: \"\", connectionId: \"\" };\nexports.Counterparty = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n if (message.connectionId !== \"\") {\n writer.uint32(18).string(message.connectionId);\n }\n if (message.prefix !== undefined) {\n commitment_1.MerklePrefix.encode(message.prefix, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseCounterparty);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.connectionId = reader.string();\n break;\n case 3:\n message.prefix = commitment_1.MerklePrefix.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseCounterparty);\n if (object.clientId !== undefined && object.clientId !== null) {\n message.clientId = String(object.clientId);\n }\n else {\n message.clientId = \"\";\n }\n if (object.connectionId !== undefined && object.connectionId !== null) {\n message.connectionId = String(object.connectionId);\n }\n else {\n message.connectionId = \"\";\n }\n if (object.prefix !== undefined && object.prefix !== null) {\n message.prefix = commitment_1.MerklePrefix.fromJSON(object.prefix);\n }\n else {\n message.prefix = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.connectionId !== undefined && (obj.connectionId = message.connectionId);\n message.prefix !== undefined &&\n (obj.prefix = message.prefix ? commitment_1.MerklePrefix.toJSON(message.prefix) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseCounterparty);\n if (object.clientId !== undefined && object.clientId !== null) {\n message.clientId = object.clientId;\n }\n else {\n message.clientId = \"\";\n }\n if (object.connectionId !== undefined && object.connectionId !== null) {\n message.connectionId = object.connectionId;\n }\n else {\n message.connectionId = \"\";\n }\n if (object.prefix !== undefined && object.prefix !== null) {\n message.prefix = commitment_1.MerklePrefix.fromPartial(object.prefix);\n }\n else {\n message.prefix = undefined;\n }\n return message;\n },\n};\nconst baseClientPaths = { paths: \"\" };\nexports.ClientPaths = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.paths) {\n writer.uint32(10).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseClientPaths);\n message.paths = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.paths.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseClientPaths);\n message.paths = [];\n if (object.paths !== undefined && object.paths !== null) {\n for (const e of object.paths) {\n message.paths.push(String(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.paths) {\n obj.paths = message.paths.map((e) => e);\n }\n else {\n obj.paths = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseClientPaths);\n message.paths = [];\n if (object.paths !== undefined && object.paths !== null) {\n for (const e of object.paths) {\n message.paths.push(e);\n }\n }\n return message;\n },\n};\nconst baseConnectionPaths = { clientId: \"\", paths: \"\" };\nexports.ConnectionPaths = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n for (const v of message.paths) {\n writer.uint32(18).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseConnectionPaths);\n message.paths = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.paths.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseConnectionPaths);\n message.paths = [];\n if (object.clientId !== undefined && object.clientId !== null) {\n message.clientId = String(object.clientId);\n }\n else {\n message.clientId = \"\";\n }\n if (object.paths !== undefined && object.paths !== null) {\n for (const e of object.paths) {\n message.paths.push(String(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n if (message.paths) {\n obj.paths = message.paths.map((e) => e);\n }\n else {\n obj.paths = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseConnectionPaths);\n message.paths = [];\n if (object.clientId !== undefined && object.clientId !== null) {\n message.clientId = object.clientId;\n }\n else {\n message.clientId = \"\";\n }\n if (object.paths !== undefined && object.paths !== null) {\n for (const e of object.paths) {\n message.paths.push(e);\n }\n }\n return message;\n },\n};\nconst baseVersion = { identifier: \"\", features: \"\" };\nexports.Version = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.identifier !== \"\") {\n writer.uint32(10).string(message.identifier);\n }\n for (const v of message.features) {\n writer.uint32(18).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseVersion);\n message.features = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.identifier = reader.string();\n break;\n case 2:\n message.features.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseVersion);\n message.features = [];\n if (object.identifier !== undefined && object.identifier !== null) {\n message.identifier = String(object.identifier);\n }\n else {\n message.identifier = \"\";\n }\n if (object.features !== undefined && object.features !== null) {\n for (const e of object.features) {\n message.features.push(String(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.identifier !== undefined && (obj.identifier = message.identifier);\n if (message.features) {\n obj.features = message.features.map((e) => e);\n }\n else {\n obj.features = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseVersion);\n message.features = [];\n if (object.identifier !== undefined && object.identifier !== null) {\n message.identifier = object.identifier;\n }\n else {\n message.identifier = \"\";\n }\n if (object.features !== undefined && object.features !== null) {\n for (const e of object.features) {\n message.features.push(e);\n }\n }\n return message;\n },\n};\nconst baseParams = { maxExpectedTimePerBlock: long_1.default.UZERO };\nexports.Params = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.maxExpectedTimePerBlock.isZero()) {\n writer.uint32(8).uint64(message.maxExpectedTimePerBlock);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseParams);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.maxExpectedTimePerBlock = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseParams);\n if (object.maxExpectedTimePerBlock !== undefined && object.maxExpectedTimePerBlock !== null) {\n message.maxExpectedTimePerBlock = long_1.default.fromString(object.maxExpectedTimePerBlock);\n }\n else {\n message.maxExpectedTimePerBlock = long_1.default.UZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.maxExpectedTimePerBlock !== undefined &&\n (obj.maxExpectedTimePerBlock = (message.maxExpectedTimePerBlock || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseParams);\n if (object.maxExpectedTimePerBlock !== undefined && object.maxExpectedTimePerBlock !== null) {\n message.maxExpectedTimePerBlock = object.maxExpectedTimePerBlock;\n }\n else {\n message.maxExpectedTimePerBlock = long_1.default.UZERO;\n }\n return message;\n },\n};\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=connection.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GrpcWebImpl = exports.MsgConnectionOpenConfirmDesc = exports.MsgConnectionOpenAckDesc = exports.MsgConnectionOpenTryDesc = exports.MsgConnectionOpenInitDesc = exports.MsgDesc = exports.MsgClientImpl = exports.MsgConnectionOpenConfirmResponse = exports.MsgConnectionOpenConfirm = exports.MsgConnectionOpenAckResponse = exports.MsgConnectionOpenAck = exports.MsgConnectionOpenTryResponse = exports.MsgConnectionOpenTry = exports.MsgConnectionOpenInitResponse = exports.MsgConnectionOpenInit = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst grpc_web_1 = require(\"@improbable-eng/grpc-web\");\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst connection_1 = require(\"../../../../ibc/core/connection/v1/connection\");\nconst any_1 = require(\"../../../../google/protobuf/any\");\nconst client_1 = require(\"../../../../ibc/core/client/v1/client\");\nconst browser_headers_1 = require(\"browser-headers\");\nexports.protobufPackage = \"ibc.core.connection.v1\";\nconst baseMsgConnectionOpenInit = { clientId: \"\", delayPeriod: long_1.default.UZERO, signer: \"\" };\nexports.MsgConnectionOpenInit = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n if (message.counterparty !== undefined) {\n connection_1.Counterparty.encode(message.counterparty, writer.uint32(18).fork()).ldelim();\n }\n if (message.version !== undefined) {\n connection_1.Version.encode(message.version, writer.uint32(26).fork()).ldelim();\n }\n if (!message.delayPeriod.isZero()) {\n writer.uint32(32).uint64(message.delayPeriod);\n }\n if (message.signer !== \"\") {\n writer.uint32(42).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgConnectionOpenInit);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.counterparty = connection_1.Counterparty.decode(reader, reader.uint32());\n break;\n case 3:\n message.version = connection_1.Version.decode(reader, reader.uint32());\n break;\n case 4:\n message.delayPeriod = reader.uint64();\n break;\n case 5:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgConnectionOpenInit);\n if (object.clientId !== undefined && object.clientId !== null) {\n message.clientId = String(object.clientId);\n }\n else {\n message.clientId = \"\";\n }\n if (object.counterparty !== undefined && object.counterparty !== null) {\n message.counterparty = connection_1.Counterparty.fromJSON(object.counterparty);\n }\n else {\n message.counterparty = undefined;\n }\n if (object.version !== undefined && object.version !== null) {\n message.version = connection_1.Version.fromJSON(object.version);\n }\n else {\n message.version = undefined;\n }\n if (object.delayPeriod !== undefined && object.delayPeriod !== null) {\n message.delayPeriod = long_1.default.fromString(object.delayPeriod);\n }\n else {\n message.delayPeriod = long_1.default.UZERO;\n }\n if (object.signer !== undefined && object.signer !== null) {\n message.signer = String(object.signer);\n }\n else {\n message.signer = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.counterparty !== undefined &&\n (obj.counterparty = message.counterparty ? connection_1.Counterparty.toJSON(message.counterparty) : undefined);\n message.version !== undefined &&\n (obj.version = message.version ? connection_1.Version.toJSON(message.version) : undefined);\n message.delayPeriod !== undefined && (obj.delayPeriod = (message.delayPeriod || long_1.default.UZERO).toString());\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgConnectionOpenInit);\n if (object.clientId !== undefined && object.clientId !== null) {\n message.clientId = object.clientId;\n }\n else {\n message.clientId = \"\";\n }\n if (object.counterparty !== undefined && object.counterparty !== null) {\n message.counterparty = connection_1.Counterparty.fromPartial(object.counterparty);\n }\n else {\n message.counterparty = undefined;\n }\n if (object.version !== undefined && object.version !== null) {\n message.version = connection_1.Version.fromPartial(object.version);\n }\n else {\n message.version = undefined;\n }\n if (object.delayPeriod !== undefined && object.delayPeriod !== null) {\n message.delayPeriod = object.delayPeriod;\n }\n else {\n message.delayPeriod = long_1.default.UZERO;\n }\n if (object.signer !== undefined && object.signer !== null) {\n message.signer = object.signer;\n }\n else {\n message.signer = \"\";\n }\n return message;\n },\n};\nconst baseMsgConnectionOpenInitResponse = {};\nexports.MsgConnectionOpenInitResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgConnectionOpenInitResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgConnectionOpenInitResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgConnectionOpenInitResponse);\n return message;\n },\n};\nconst baseMsgConnectionOpenTry = {\n clientId: \"\",\n previousConnectionId: \"\",\n delayPeriod: long_1.default.UZERO,\n signer: \"\",\n};\nexports.MsgConnectionOpenTry = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n if (message.previousConnectionId !== \"\") {\n writer.uint32(18).string(message.previousConnectionId);\n }\n if (message.clientState !== undefined) {\n any_1.Any.encode(message.clientState, writer.uint32(26).fork()).ldelim();\n }\n if (message.counterparty !== undefined) {\n connection_1.Counterparty.encode(message.counterparty, writer.uint32(34).fork()).ldelim();\n }\n if (!message.delayPeriod.isZero()) {\n writer.uint32(40).uint64(message.delayPeriod);\n }\n for (const v of message.counterpartyVersions) {\n connection_1.Version.encode(v, writer.uint32(50).fork()).ldelim();\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(58).fork()).ldelim();\n }\n if (message.proofInit.length !== 0) {\n writer.uint32(66).bytes(message.proofInit);\n }\n if (message.proofClient.length !== 0) {\n writer.uint32(74).bytes(message.proofClient);\n }\n if (message.proofConsensus.length !== 0) {\n writer.uint32(82).bytes(message.proofConsensus);\n }\n if (message.consensusHeight !== undefined) {\n client_1.Height.encode(message.consensusHeight, writer.uint32(90).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(98).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgConnectionOpenTry);\n message.counterpartyVersions = [];\n message.proofInit = new Uint8Array();\n message.proofClient = new Uint8Array();\n message.proofConsensus = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.previousConnectionId = reader.string();\n break;\n case 3:\n message.clientState = any_1.Any.decode(reader, reader.uint32());\n break;\n case 4:\n message.counterparty = connection_1.Counterparty.decode(reader, reader.uint32());\n break;\n case 5:\n message.delayPeriod = reader.uint64();\n break;\n case 6:\n message.counterpartyVersions.push(connection_1.Version.decode(reader, reader.uint32()));\n break;\n case 7:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 8:\n message.proofInit = reader.bytes();\n break;\n case 9:\n message.proofClient = reader.bytes();\n break;\n case 10:\n message.proofConsensus = reader.bytes();\n break;\n case 11:\n message.consensusHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 12:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgConnectionOpenTry);\n message.counterpartyVersions = [];\n message.proofInit = new Uint8Array();\n message.proofClient = new Uint8Array();\n message.proofConsensus = new Uint8Array();\n if (object.clientId !== undefined && object.clientId !== null) {\n message.clientId = String(object.clientId);\n }\n else {\n message.clientId = \"\";\n }\n if (object.previousConnectionId !== undefined && object.previousConnectionId !== null) {\n message.previousConnectionId = String(object.previousConnectionId);\n }\n else {\n message.previousConnectionId = \"\";\n }\n if (object.clientState !== undefined && object.clientState !== null) {\n message.clientState = any_1.Any.fromJSON(object.clientState);\n }\n else {\n message.clientState = undefined;\n }\n if (object.counterparty !== undefined && object.counterparty !== null) {\n message.counterparty = connection_1.Counterparty.fromJSON(object.counterparty);\n }\n else {\n message.counterparty = undefined;\n }\n if (object.delayPeriod !== undefined && object.delayPeriod !== null) {\n message.delayPeriod = long_1.default.fromString(object.delayPeriod);\n }\n else {\n message.delayPeriod = long_1.default.UZERO;\n }\n if (object.counterpartyVersions !== undefined && object.counterpartyVersions !== null) {\n for (const e of object.counterpartyVersions) {\n message.counterpartyVersions.push(connection_1.Version.fromJSON(e));\n }\n }\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n }\n else {\n message.proofHeight = undefined;\n }\n if (object.proofInit !== undefined && object.proofInit !== null) {\n message.proofInit = bytesFromBase64(object.proofInit);\n }\n if (object.proofClient !== undefined && object.proofClient !== null) {\n message.proofClient = bytesFromBase64(object.proofClient);\n }\n if (object.proofConsensus !== undefined && object.proofConsensus !== null) {\n message.proofConsensus = bytesFromBase64(object.proofConsensus);\n }\n if (object.consensusHeight !== undefined && object.consensusHeight !== null) {\n message.consensusHeight = client_1.Height.fromJSON(object.consensusHeight);\n }\n else {\n message.consensusHeight = undefined;\n }\n if (object.signer !== undefined && object.signer !== null) {\n message.signer = String(object.signer);\n }\n else {\n message.signer = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.previousConnectionId !== undefined && (obj.previousConnectionId = message.previousConnectionId);\n message.clientState !== undefined &&\n (obj.clientState = message.clientState ? any_1.Any.toJSON(message.clientState) : undefined);\n message.counterparty !== undefined &&\n (obj.counterparty = message.counterparty ? connection_1.Counterparty.toJSON(message.counterparty) : undefined);\n message.delayPeriod !== undefined && (obj.delayPeriod = (message.delayPeriod || long_1.default.UZERO).toString());\n if (message.counterpartyVersions) {\n obj.counterpartyVersions = message.counterpartyVersions.map((e) => (e ? connection_1.Version.toJSON(e) : undefined));\n }\n else {\n obj.counterpartyVersions = [];\n }\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n message.proofInit !== undefined &&\n (obj.proofInit = base64FromBytes(message.proofInit !== undefined ? message.proofInit : new Uint8Array()));\n message.proofClient !== undefined &&\n (obj.proofClient = base64FromBytes(message.proofClient !== undefined ? message.proofClient : new Uint8Array()));\n message.proofConsensus !== undefined &&\n (obj.proofConsensus = base64FromBytes(message.proofConsensus !== undefined ? message.proofConsensus : new Uint8Array()));\n message.consensusHeight !== undefined &&\n (obj.consensusHeight = message.consensusHeight ? client_1.Height.toJSON(message.consensusHeight) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgConnectionOpenTry);\n message.counterpartyVersions = [];\n if (object.clientId !== undefined && object.clientId !== null) {\n message.clientId = object.clientId;\n }\n else {\n message.clientId = \"\";\n }\n if (object.previousConnectionId !== undefined && object.previousConnectionId !== null) {\n message.previousConnectionId = object.previousConnectionId;\n }\n else {\n message.previousConnectionId = \"\";\n }\n if (object.clientState !== undefined && object.clientState !== null) {\n message.clientState = any_1.Any.fromPartial(object.clientState);\n }\n else {\n message.clientState = undefined;\n }\n if (object.counterparty !== undefined && object.counterparty !== null) {\n message.counterparty = connection_1.Counterparty.fromPartial(object.counterparty);\n }\n else {\n message.counterparty = undefined;\n }\n if (object.delayPeriod !== undefined && object.delayPeriod !== null) {\n message.delayPeriod = object.delayPeriod;\n }\n else {\n message.delayPeriod = long_1.default.UZERO;\n }\n if (object.counterpartyVersions !== undefined && object.counterpartyVersions !== null) {\n for (const e of object.counterpartyVersions) {\n message.counterpartyVersions.push(connection_1.Version.fromPartial(e));\n }\n }\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n else {\n message.proofHeight = undefined;\n }\n if (object.proofInit !== undefined && object.proofInit !== null) {\n message.proofInit = object.proofInit;\n }\n else {\n message.proofInit = new Uint8Array();\n }\n if (object.proofClient !== undefined && object.proofClient !== null) {\n message.proofClient = object.proofClient;\n }\n else {\n message.proofClient = new Uint8Array();\n }\n if (object.proofConsensus !== undefined && object.proofConsensus !== null) {\n message.proofConsensus = object.proofConsensus;\n }\n else {\n message.proofConsensus = new Uint8Array();\n }\n if (object.consensusHeight !== undefined && object.consensusHeight !== null) {\n message.consensusHeight = client_1.Height.fromPartial(object.consensusHeight);\n }\n else {\n message.consensusHeight = undefined;\n }\n if (object.signer !== undefined && object.signer !== null) {\n message.signer = object.signer;\n }\n else {\n message.signer = \"\";\n }\n return message;\n },\n};\nconst baseMsgConnectionOpenTryResponse = {};\nexports.MsgConnectionOpenTryResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgConnectionOpenTryResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgConnectionOpenTryResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgConnectionOpenTryResponse);\n return message;\n },\n};\nconst baseMsgConnectionOpenAck = { connectionId: \"\", counterpartyConnectionId: \"\", signer: \"\" };\nexports.MsgConnectionOpenAck = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.connectionId !== \"\") {\n writer.uint32(10).string(message.connectionId);\n }\n if (message.counterpartyConnectionId !== \"\") {\n writer.uint32(18).string(message.counterpartyConnectionId);\n }\n if (message.version !== undefined) {\n connection_1.Version.encode(message.version, writer.uint32(26).fork()).ldelim();\n }\n if (message.clientState !== undefined) {\n any_1.Any.encode(message.clientState, writer.uint32(34).fork()).ldelim();\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(42).fork()).ldelim();\n }\n if (message.proofTry.length !== 0) {\n writer.uint32(50).bytes(message.proofTry);\n }\n if (message.proofClient.length !== 0) {\n writer.uint32(58).bytes(message.proofClient);\n }\n if (message.proofConsensus.length !== 0) {\n writer.uint32(66).bytes(message.proofConsensus);\n }\n if (message.consensusHeight !== undefined) {\n client_1.Height.encode(message.consensusHeight, writer.uint32(74).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(82).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgConnectionOpenAck);\n message.proofTry = new Uint8Array();\n message.proofClient = new Uint8Array();\n message.proofConsensus = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.connectionId = reader.string();\n break;\n case 2:\n message.counterpartyConnectionId = reader.string();\n break;\n case 3:\n message.version = connection_1.Version.decode(reader, reader.uint32());\n break;\n case 4:\n message.clientState = any_1.Any.decode(reader, reader.uint32());\n break;\n case 5:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 6:\n message.proofTry = reader.bytes();\n break;\n case 7:\n message.proofClient = reader.bytes();\n break;\n case 8:\n message.proofConsensus = reader.bytes();\n break;\n case 9:\n message.consensusHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 10:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgConnectionOpenAck);\n message.proofTry = new Uint8Array();\n message.proofClient = new Uint8Array();\n message.proofConsensus = new Uint8Array();\n if (object.connectionId !== undefined && object.connectionId !== null) {\n message.connectionId = String(object.connectionId);\n }\n else {\n message.connectionId = \"\";\n }\n if (object.counterpartyConnectionId !== undefined && object.counterpartyConnectionId !== null) {\n message.counterpartyConnectionId = String(object.counterpartyConnectionId);\n }\n else {\n message.counterpartyConnectionId = \"\";\n }\n if (object.version !== undefined && object.version !== null) {\n message.version = connection_1.Version.fromJSON(object.version);\n }\n else {\n message.version = undefined;\n }\n if (object.clientState !== undefined && object.clientState !== null) {\n message.clientState = any_1.Any.fromJSON(object.clientState);\n }\n else {\n message.clientState = undefined;\n }\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n }\n else {\n message.proofHeight = undefined;\n }\n if (object.proofTry !== undefined && object.proofTry !== null) {\n message.proofTry = bytesFromBase64(object.proofTry);\n }\n if (object.proofClient !== undefined && object.proofClient !== null) {\n message.proofClient = bytesFromBase64(object.proofClient);\n }\n if (object.proofConsensus !== undefined && object.proofConsensus !== null) {\n message.proofConsensus = bytesFromBase64(object.proofConsensus);\n }\n if (object.consensusHeight !== undefined && object.consensusHeight !== null) {\n message.consensusHeight = client_1.Height.fromJSON(object.consensusHeight);\n }\n else {\n message.consensusHeight = undefined;\n }\n if (object.signer !== undefined && object.signer !== null) {\n message.signer = String(object.signer);\n }\n else {\n message.signer = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.connectionId !== undefined && (obj.connectionId = message.connectionId);\n message.counterpartyConnectionId !== undefined &&\n (obj.counterpartyConnectionId = message.counterpartyConnectionId);\n message.version !== undefined &&\n (obj.version = message.version ? connection_1.Version.toJSON(message.version) : undefined);\n message.clientState !== undefined &&\n (obj.clientState = message.clientState ? any_1.Any.toJSON(message.clientState) : undefined);\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n message.proofTry !== undefined &&\n (obj.proofTry = base64FromBytes(message.proofTry !== undefined ? message.proofTry : new Uint8Array()));\n message.proofClient !== undefined &&\n (obj.proofClient = base64FromBytes(message.proofClient !== undefined ? message.proofClient : new Uint8Array()));\n message.proofConsensus !== undefined &&\n (obj.proofConsensus = base64FromBytes(message.proofConsensus !== undefined ? message.proofConsensus : new Uint8Array()));\n message.consensusHeight !== undefined &&\n (obj.consensusHeight = message.consensusHeight ? client_1.Height.toJSON(message.consensusHeight) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgConnectionOpenAck);\n if (object.connectionId !== undefined && object.connectionId !== null) {\n message.connectionId = object.connectionId;\n }\n else {\n message.connectionId = \"\";\n }\n if (object.counterpartyConnectionId !== undefined && object.counterpartyConnectionId !== null) {\n message.counterpartyConnectionId = object.counterpartyConnectionId;\n }\n else {\n message.counterpartyConnectionId = \"\";\n }\n if (object.version !== undefined && object.version !== null) {\n message.version = connection_1.Version.fromPartial(object.version);\n }\n else {\n message.version = undefined;\n }\n if (object.clientState !== undefined && object.clientState !== null) {\n message.clientState = any_1.Any.fromPartial(object.clientState);\n }\n else {\n message.clientState = undefined;\n }\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n else {\n message.proofHeight = undefined;\n }\n if (object.proofTry !== undefined && object.proofTry !== null) {\n message.proofTry = object.proofTry;\n }\n else {\n message.proofTry = new Uint8Array();\n }\n if (object.proofClient !== undefined && object.proofClient !== null) {\n message.proofClient = object.proofClient;\n }\n else {\n message.proofClient = new Uint8Array();\n }\n if (object.proofConsensus !== undefined && object.proofConsensus !== null) {\n message.proofConsensus = object.proofConsensus;\n }\n else {\n message.proofConsensus = new Uint8Array();\n }\n if (object.consensusHeight !== undefined && object.consensusHeight !== null) {\n message.consensusHeight = client_1.Height.fromPartial(object.consensusHeight);\n }\n else {\n message.consensusHeight = undefined;\n }\n if (object.signer !== undefined && object.signer !== null) {\n message.signer = object.signer;\n }\n else {\n message.signer = \"\";\n }\n return message;\n },\n};\nconst baseMsgConnectionOpenAckResponse = {};\nexports.MsgConnectionOpenAckResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgConnectionOpenAckResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgConnectionOpenAckResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgConnectionOpenAckResponse);\n return message;\n },\n};\nconst baseMsgConnectionOpenConfirm = { connectionId: \"\", signer: \"\" };\nexports.MsgConnectionOpenConfirm = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.connectionId !== \"\") {\n writer.uint32(10).string(message.connectionId);\n }\n if (message.proofAck.length !== 0) {\n writer.uint32(18).bytes(message.proofAck);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(34).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgConnectionOpenConfirm);\n message.proofAck = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.connectionId = reader.string();\n break;\n case 2:\n message.proofAck = reader.bytes();\n break;\n case 3:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 4:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgConnectionOpenConfirm);\n message.proofAck = new Uint8Array();\n if (object.connectionId !== undefined && object.connectionId !== null) {\n message.connectionId = String(object.connectionId);\n }\n else {\n message.connectionId = \"\";\n }\n if (object.proofAck !== undefined && object.proofAck !== null) {\n message.proofAck = bytesFromBase64(object.proofAck);\n }\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromJSON(object.proofHeight);\n }\n else {\n message.proofHeight = undefined;\n }\n if (object.signer !== undefined && object.signer !== null) {\n message.signer = String(object.signer);\n }\n else {\n message.signer = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.connectionId !== undefined && (obj.connectionId = message.connectionId);\n message.proofAck !== undefined &&\n (obj.proofAck = base64FromBytes(message.proofAck !== undefined ? message.proofAck : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgConnectionOpenConfirm);\n if (object.connectionId !== undefined && object.connectionId !== null) {\n message.connectionId = object.connectionId;\n }\n else {\n message.connectionId = \"\";\n }\n if (object.proofAck !== undefined && object.proofAck !== null) {\n message.proofAck = object.proofAck;\n }\n else {\n message.proofAck = new Uint8Array();\n }\n if (object.proofHeight !== undefined && object.proofHeight !== null) {\n message.proofHeight = client_1.Height.fromPartial(object.proofHeight);\n }\n else {\n message.proofHeight = undefined;\n }\n if (object.signer !== undefined && object.signer !== null) {\n message.signer = object.signer;\n }\n else {\n message.signer = \"\";\n }\n return message;\n },\n};\nconst baseMsgConnectionOpenConfirmResponse = {};\nexports.MsgConnectionOpenConfirmResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgConnectionOpenConfirmResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgConnectionOpenConfirmResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgConnectionOpenConfirmResponse);\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.ConnectionOpenInit = this.ConnectionOpenInit.bind(this);\n this.ConnectionOpenTry = this.ConnectionOpenTry.bind(this);\n this.ConnectionOpenAck = this.ConnectionOpenAck.bind(this);\n this.ConnectionOpenConfirm = this.ConnectionOpenConfirm.bind(this);\n }\n ConnectionOpenInit(request, metadata) {\n return this.rpc.unary(exports.MsgConnectionOpenInitDesc, exports.MsgConnectionOpenInit.fromPartial(request), metadata);\n }\n ConnectionOpenTry(request, metadata) {\n return this.rpc.unary(exports.MsgConnectionOpenTryDesc, exports.MsgConnectionOpenTry.fromPartial(request), metadata);\n }\n ConnectionOpenAck(request, metadata) {\n return this.rpc.unary(exports.MsgConnectionOpenAckDesc, exports.MsgConnectionOpenAck.fromPartial(request), metadata);\n }\n ConnectionOpenConfirm(request, metadata) {\n return this.rpc.unary(exports.MsgConnectionOpenConfirmDesc, exports.MsgConnectionOpenConfirm.fromPartial(request), metadata);\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\nexports.MsgDesc = {\n serviceName: \"ibc.core.connection.v1.Msg\",\n};\nexports.MsgConnectionOpenInitDesc = {\n methodName: \"ConnectionOpenInit\",\n service: exports.MsgDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.MsgConnectionOpenInit.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.MsgConnectionOpenInitResponse.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nexports.MsgConnectionOpenTryDesc = {\n methodName: \"ConnectionOpenTry\",\n service: exports.MsgDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.MsgConnectionOpenTry.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.MsgConnectionOpenTryResponse.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nexports.MsgConnectionOpenAckDesc = {\n methodName: \"ConnectionOpenAck\",\n service: exports.MsgDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.MsgConnectionOpenAck.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.MsgConnectionOpenAckResponse.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nexports.MsgConnectionOpenConfirmDesc = {\n methodName: \"ConnectionOpenConfirm\",\n service: exports.MsgDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.MsgConnectionOpenConfirm.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.MsgConnectionOpenConfirmResponse.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nclass GrpcWebImpl {\n constructor(host, options) {\n this.host = host;\n this.options = options;\n }\n unary(methodDesc, _request, metadata) {\n var _a;\n const request = Object.assign(Object.assign({}, _request), methodDesc.requestType);\n const maybeCombinedMetadata = metadata && this.options.metadata\n ? new browser_headers_1.BrowserHeaders(Object.assign(Object.assign({}, (_a = this.options) === null || _a === void 0 ? void 0 : _a.metadata.headersMap), metadata === null || metadata === void 0 ? void 0 : metadata.headersMap))\n : metadata || this.options.metadata;\n return new Promise((resolve, reject) => {\n grpc_web_1.grpc.unary(methodDesc, {\n request,\n host: this.host,\n metadata: maybeCombinedMetadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (response.status === grpc_web_1.grpc.Code.OK) {\n resolve(response.message);\n }\n else {\n const err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n reject(err);\n }\n },\n });\n });\n }\n}\nexports.GrpcWebImpl = GrpcWebImpl;\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=tx.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Fraction = exports.Header = exports.Misbehaviour = exports.ConsensusState = exports.ClientState = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst duration_1 = require(\"../../../../google/protobuf/duration\");\nconst client_1 = require(\"../../../../ibc/core/client/v1/client\");\nconst commitment_1 = require(\"../../../../ibc/core/commitment/v1/commitment\");\nconst types_1 = require(\"../../../../tendermint/types/types\");\nconst validator_1 = require(\"../../../../tendermint/types/validator\");\nconst timestamp_1 = require(\"../../../../google/protobuf/timestamp\");\nconst proofs_1 = require(\"../../../../confio/proofs\");\nexports.protobufPackage = \"ibc.lightclients.tendermint.v1\";\nconst baseClientState = {\n chainId: \"\",\n upgradePath: \"\",\n allowUpdateAfterExpiry: false,\n allowUpdateAfterMisbehaviour: false,\n};\nexports.ClientState = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.chainId !== \"\") {\n writer.uint32(10).string(message.chainId);\n }\n if (message.trustLevel !== undefined) {\n exports.Fraction.encode(message.trustLevel, writer.uint32(18).fork()).ldelim();\n }\n if (message.trustingPeriod !== undefined) {\n duration_1.Duration.encode(message.trustingPeriod, writer.uint32(26).fork()).ldelim();\n }\n if (message.unbondingPeriod !== undefined) {\n duration_1.Duration.encode(message.unbondingPeriod, writer.uint32(34).fork()).ldelim();\n }\n if (message.maxClockDrift !== undefined) {\n duration_1.Duration.encode(message.maxClockDrift, writer.uint32(42).fork()).ldelim();\n }\n if (message.frozenHeight !== undefined) {\n client_1.Height.encode(message.frozenHeight, writer.uint32(50).fork()).ldelim();\n }\n if (message.latestHeight !== undefined) {\n client_1.Height.encode(message.latestHeight, writer.uint32(58).fork()).ldelim();\n }\n for (const v of message.proofSpecs) {\n proofs_1.ProofSpec.encode(v, writer.uint32(66).fork()).ldelim();\n }\n for (const v of message.upgradePath) {\n writer.uint32(74).string(v);\n }\n if (message.allowUpdateAfterExpiry === true) {\n writer.uint32(80).bool(message.allowUpdateAfterExpiry);\n }\n if (message.allowUpdateAfterMisbehaviour === true) {\n writer.uint32(88).bool(message.allowUpdateAfterMisbehaviour);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseClientState);\n message.proofSpecs = [];\n message.upgradePath = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.chainId = reader.string();\n break;\n case 2:\n message.trustLevel = exports.Fraction.decode(reader, reader.uint32());\n break;\n case 3:\n message.trustingPeriod = duration_1.Duration.decode(reader, reader.uint32());\n break;\n case 4:\n message.unbondingPeriod = duration_1.Duration.decode(reader, reader.uint32());\n break;\n case 5:\n message.maxClockDrift = duration_1.Duration.decode(reader, reader.uint32());\n break;\n case 6:\n message.frozenHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 7:\n message.latestHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 8:\n message.proofSpecs.push(proofs_1.ProofSpec.decode(reader, reader.uint32()));\n break;\n case 9:\n message.upgradePath.push(reader.string());\n break;\n case 10:\n message.allowUpdateAfterExpiry = reader.bool();\n break;\n case 11:\n message.allowUpdateAfterMisbehaviour = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseClientState);\n message.proofSpecs = [];\n message.upgradePath = [];\n if (object.chainId !== undefined && object.chainId !== null) {\n message.chainId = String(object.chainId);\n }\n else {\n message.chainId = \"\";\n }\n if (object.trustLevel !== undefined && object.trustLevel !== null) {\n message.trustLevel = exports.Fraction.fromJSON(object.trustLevel);\n }\n else {\n message.trustLevel = undefined;\n }\n if (object.trustingPeriod !== undefined && object.trustingPeriod !== null) {\n message.trustingPeriod = duration_1.Duration.fromJSON(object.trustingPeriod);\n }\n else {\n message.trustingPeriod = undefined;\n }\n if (object.unbondingPeriod !== undefined && object.unbondingPeriod !== null) {\n message.unbondingPeriod = duration_1.Duration.fromJSON(object.unbondingPeriod);\n }\n else {\n message.unbondingPeriod = undefined;\n }\n if (object.maxClockDrift !== undefined && object.maxClockDrift !== null) {\n message.maxClockDrift = duration_1.Duration.fromJSON(object.maxClockDrift);\n }\n else {\n message.maxClockDrift = undefined;\n }\n if (object.frozenHeight !== undefined && object.frozenHeight !== null) {\n message.frozenHeight = client_1.Height.fromJSON(object.frozenHeight);\n }\n else {\n message.frozenHeight = undefined;\n }\n if (object.latestHeight !== undefined && object.latestHeight !== null) {\n message.latestHeight = client_1.Height.fromJSON(object.latestHeight);\n }\n else {\n message.latestHeight = undefined;\n }\n if (object.proofSpecs !== undefined && object.proofSpecs !== null) {\n for (const e of object.proofSpecs) {\n message.proofSpecs.push(proofs_1.ProofSpec.fromJSON(e));\n }\n }\n if (object.upgradePath !== undefined && object.upgradePath !== null) {\n for (const e of object.upgradePath) {\n message.upgradePath.push(String(e));\n }\n }\n if (object.allowUpdateAfterExpiry !== undefined && object.allowUpdateAfterExpiry !== null) {\n message.allowUpdateAfterExpiry = Boolean(object.allowUpdateAfterExpiry);\n }\n else {\n message.allowUpdateAfterExpiry = false;\n }\n if (object.allowUpdateAfterMisbehaviour !== undefined && object.allowUpdateAfterMisbehaviour !== null) {\n message.allowUpdateAfterMisbehaviour = Boolean(object.allowUpdateAfterMisbehaviour);\n }\n else {\n message.allowUpdateAfterMisbehaviour = false;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.chainId !== undefined && (obj.chainId = message.chainId);\n message.trustLevel !== undefined &&\n (obj.trustLevel = message.trustLevel ? exports.Fraction.toJSON(message.trustLevel) : undefined);\n message.trustingPeriod !== undefined &&\n (obj.trustingPeriod = message.trustingPeriod ? duration_1.Duration.toJSON(message.trustingPeriod) : undefined);\n message.unbondingPeriod !== undefined &&\n (obj.unbondingPeriod = message.unbondingPeriod ? duration_1.Duration.toJSON(message.unbondingPeriod) : undefined);\n message.maxClockDrift !== undefined &&\n (obj.maxClockDrift = message.maxClockDrift ? duration_1.Duration.toJSON(message.maxClockDrift) : undefined);\n message.frozenHeight !== undefined &&\n (obj.frozenHeight = message.frozenHeight ? client_1.Height.toJSON(message.frozenHeight) : undefined);\n message.latestHeight !== undefined &&\n (obj.latestHeight = message.latestHeight ? client_1.Height.toJSON(message.latestHeight) : undefined);\n if (message.proofSpecs) {\n obj.proofSpecs = message.proofSpecs.map((e) => (e ? proofs_1.ProofSpec.toJSON(e) : undefined));\n }\n else {\n obj.proofSpecs = [];\n }\n if (message.upgradePath) {\n obj.upgradePath = message.upgradePath.map((e) => e);\n }\n else {\n obj.upgradePath = [];\n }\n message.allowUpdateAfterExpiry !== undefined &&\n (obj.allowUpdateAfterExpiry = message.allowUpdateAfterExpiry);\n message.allowUpdateAfterMisbehaviour !== undefined &&\n (obj.allowUpdateAfterMisbehaviour = message.allowUpdateAfterMisbehaviour);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseClientState);\n message.proofSpecs = [];\n message.upgradePath = [];\n if (object.chainId !== undefined && object.chainId !== null) {\n message.chainId = object.chainId;\n }\n else {\n message.chainId = \"\";\n }\n if (object.trustLevel !== undefined && object.trustLevel !== null) {\n message.trustLevel = exports.Fraction.fromPartial(object.trustLevel);\n }\n else {\n message.trustLevel = undefined;\n }\n if (object.trustingPeriod !== undefined && object.trustingPeriod !== null) {\n message.trustingPeriod = duration_1.Duration.fromPartial(object.trustingPeriod);\n }\n else {\n message.trustingPeriod = undefined;\n }\n if (object.unbondingPeriod !== undefined && object.unbondingPeriod !== null) {\n message.unbondingPeriod = duration_1.Duration.fromPartial(object.unbondingPeriod);\n }\n else {\n message.unbondingPeriod = undefined;\n }\n if (object.maxClockDrift !== undefined && object.maxClockDrift !== null) {\n message.maxClockDrift = duration_1.Duration.fromPartial(object.maxClockDrift);\n }\n else {\n message.maxClockDrift = undefined;\n }\n if (object.frozenHeight !== undefined && object.frozenHeight !== null) {\n message.frozenHeight = client_1.Height.fromPartial(object.frozenHeight);\n }\n else {\n message.frozenHeight = undefined;\n }\n if (object.latestHeight !== undefined && object.latestHeight !== null) {\n message.latestHeight = client_1.Height.fromPartial(object.latestHeight);\n }\n else {\n message.latestHeight = undefined;\n }\n if (object.proofSpecs !== undefined && object.proofSpecs !== null) {\n for (const e of object.proofSpecs) {\n message.proofSpecs.push(proofs_1.ProofSpec.fromPartial(e));\n }\n }\n if (object.upgradePath !== undefined && object.upgradePath !== null) {\n for (const e of object.upgradePath) {\n message.upgradePath.push(e);\n }\n }\n if (object.allowUpdateAfterExpiry !== undefined && object.allowUpdateAfterExpiry !== null) {\n message.allowUpdateAfterExpiry = object.allowUpdateAfterExpiry;\n }\n else {\n message.allowUpdateAfterExpiry = false;\n }\n if (object.allowUpdateAfterMisbehaviour !== undefined && object.allowUpdateAfterMisbehaviour !== null) {\n message.allowUpdateAfterMisbehaviour = object.allowUpdateAfterMisbehaviour;\n }\n else {\n message.allowUpdateAfterMisbehaviour = false;\n }\n return message;\n },\n};\nconst baseConsensusState = {};\nexports.ConsensusState = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.timestamp !== undefined) {\n timestamp_1.Timestamp.encode(toTimestamp(message.timestamp), writer.uint32(10).fork()).ldelim();\n }\n if (message.root !== undefined) {\n commitment_1.MerkleRoot.encode(message.root, writer.uint32(18).fork()).ldelim();\n }\n if (message.nextValidatorsHash.length !== 0) {\n writer.uint32(26).bytes(message.nextValidatorsHash);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseConsensusState);\n message.nextValidatorsHash = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.timestamp = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));\n break;\n case 2:\n message.root = commitment_1.MerkleRoot.decode(reader, reader.uint32());\n break;\n case 3:\n message.nextValidatorsHash = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseConsensusState);\n message.nextValidatorsHash = new Uint8Array();\n if (object.timestamp !== undefined && object.timestamp !== null) {\n message.timestamp = fromJsonTimestamp(object.timestamp);\n }\n else {\n message.timestamp = undefined;\n }\n if (object.root !== undefined && object.root !== null) {\n message.root = commitment_1.MerkleRoot.fromJSON(object.root);\n }\n else {\n message.root = undefined;\n }\n if (object.nextValidatorsHash !== undefined && object.nextValidatorsHash !== null) {\n message.nextValidatorsHash = bytesFromBase64(object.nextValidatorsHash);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.timestamp !== undefined && (obj.timestamp = message.timestamp.toISOString());\n message.root !== undefined && (obj.root = message.root ? commitment_1.MerkleRoot.toJSON(message.root) : undefined);\n message.nextValidatorsHash !== undefined &&\n (obj.nextValidatorsHash = base64FromBytes(message.nextValidatorsHash !== undefined ? message.nextValidatorsHash : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseConsensusState);\n if (object.timestamp !== undefined && object.timestamp !== null) {\n message.timestamp = object.timestamp;\n }\n else {\n message.timestamp = undefined;\n }\n if (object.root !== undefined && object.root !== null) {\n message.root = commitment_1.MerkleRoot.fromPartial(object.root);\n }\n else {\n message.root = undefined;\n }\n if (object.nextValidatorsHash !== undefined && object.nextValidatorsHash !== null) {\n message.nextValidatorsHash = object.nextValidatorsHash;\n }\n else {\n message.nextValidatorsHash = new Uint8Array();\n }\n return message;\n },\n};\nconst baseMisbehaviour = { clientId: \"\" };\nexports.Misbehaviour = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n if (message.header1 !== undefined) {\n exports.Header.encode(message.header1, writer.uint32(18).fork()).ldelim();\n }\n if (message.header2 !== undefined) {\n exports.Header.encode(message.header2, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMisbehaviour);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.header1 = exports.Header.decode(reader, reader.uint32());\n break;\n case 3:\n message.header2 = exports.Header.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMisbehaviour);\n if (object.clientId !== undefined && object.clientId !== null) {\n message.clientId = String(object.clientId);\n }\n else {\n message.clientId = \"\";\n }\n if (object.header1 !== undefined && object.header1 !== null) {\n message.header1 = exports.Header.fromJSON(object.header1);\n }\n else {\n message.header1 = undefined;\n }\n if (object.header2 !== undefined && object.header2 !== null) {\n message.header2 = exports.Header.fromJSON(object.header2);\n }\n else {\n message.header2 = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.header1 !== undefined &&\n (obj.header1 = message.header1 ? exports.Header.toJSON(message.header1) : undefined);\n message.header2 !== undefined &&\n (obj.header2 = message.header2 ? exports.Header.toJSON(message.header2) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMisbehaviour);\n if (object.clientId !== undefined && object.clientId !== null) {\n message.clientId = object.clientId;\n }\n else {\n message.clientId = \"\";\n }\n if (object.header1 !== undefined && object.header1 !== null) {\n message.header1 = exports.Header.fromPartial(object.header1);\n }\n else {\n message.header1 = undefined;\n }\n if (object.header2 !== undefined && object.header2 !== null) {\n message.header2 = exports.Header.fromPartial(object.header2);\n }\n else {\n message.header2 = undefined;\n }\n return message;\n },\n};\nconst baseHeader = {};\nexports.Header = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.signedHeader !== undefined) {\n types_1.SignedHeader.encode(message.signedHeader, writer.uint32(10).fork()).ldelim();\n }\n if (message.validatorSet !== undefined) {\n validator_1.ValidatorSet.encode(message.validatorSet, writer.uint32(18).fork()).ldelim();\n }\n if (message.trustedHeight !== undefined) {\n client_1.Height.encode(message.trustedHeight, writer.uint32(26).fork()).ldelim();\n }\n if (message.trustedValidators !== undefined) {\n validator_1.ValidatorSet.encode(message.trustedValidators, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseHeader);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.signedHeader = types_1.SignedHeader.decode(reader, reader.uint32());\n break;\n case 2:\n message.validatorSet = validator_1.ValidatorSet.decode(reader, reader.uint32());\n break;\n case 3:\n message.trustedHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 4:\n message.trustedValidators = validator_1.ValidatorSet.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseHeader);\n if (object.signedHeader !== undefined && object.signedHeader !== null) {\n message.signedHeader = types_1.SignedHeader.fromJSON(object.signedHeader);\n }\n else {\n message.signedHeader = undefined;\n }\n if (object.validatorSet !== undefined && object.validatorSet !== null) {\n message.validatorSet = validator_1.ValidatorSet.fromJSON(object.validatorSet);\n }\n else {\n message.validatorSet = undefined;\n }\n if (object.trustedHeight !== undefined && object.trustedHeight !== null) {\n message.trustedHeight = client_1.Height.fromJSON(object.trustedHeight);\n }\n else {\n message.trustedHeight = undefined;\n }\n if (object.trustedValidators !== undefined && object.trustedValidators !== null) {\n message.trustedValidators = validator_1.ValidatorSet.fromJSON(object.trustedValidators);\n }\n else {\n message.trustedValidators = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.signedHeader !== undefined &&\n (obj.signedHeader = message.signedHeader ? types_1.SignedHeader.toJSON(message.signedHeader) : undefined);\n message.validatorSet !== undefined &&\n (obj.validatorSet = message.validatorSet ? validator_1.ValidatorSet.toJSON(message.validatorSet) : undefined);\n message.trustedHeight !== undefined &&\n (obj.trustedHeight = message.trustedHeight ? client_1.Height.toJSON(message.trustedHeight) : undefined);\n message.trustedValidators !== undefined &&\n (obj.trustedValidators = message.trustedValidators\n ? validator_1.ValidatorSet.toJSON(message.trustedValidators)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseHeader);\n if (object.signedHeader !== undefined && object.signedHeader !== null) {\n message.signedHeader = types_1.SignedHeader.fromPartial(object.signedHeader);\n }\n else {\n message.signedHeader = undefined;\n }\n if (object.validatorSet !== undefined && object.validatorSet !== null) {\n message.validatorSet = validator_1.ValidatorSet.fromPartial(object.validatorSet);\n }\n else {\n message.validatorSet = undefined;\n }\n if (object.trustedHeight !== undefined && object.trustedHeight !== null) {\n message.trustedHeight = client_1.Height.fromPartial(object.trustedHeight);\n }\n else {\n message.trustedHeight = undefined;\n }\n if (object.trustedValidators !== undefined && object.trustedValidators !== null) {\n message.trustedValidators = validator_1.ValidatorSet.fromPartial(object.trustedValidators);\n }\n else {\n message.trustedValidators = undefined;\n }\n return message;\n },\n};\nconst baseFraction = { numerator: long_1.default.UZERO, denominator: long_1.default.UZERO };\nexports.Fraction = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.numerator.isZero()) {\n writer.uint32(8).uint64(message.numerator);\n }\n if (!message.denominator.isZero()) {\n writer.uint32(16).uint64(message.denominator);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseFraction);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.numerator = reader.uint64();\n break;\n case 2:\n message.denominator = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseFraction);\n if (object.numerator !== undefined && object.numerator !== null) {\n message.numerator = long_1.default.fromString(object.numerator);\n }\n else {\n message.numerator = long_1.default.UZERO;\n }\n if (object.denominator !== undefined && object.denominator !== null) {\n message.denominator = long_1.default.fromString(object.denominator);\n }\n else {\n message.denominator = long_1.default.UZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.numerator !== undefined && (obj.numerator = (message.numerator || long_1.default.UZERO).toString());\n message.denominator !== undefined && (obj.denominator = (message.denominator || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseFraction);\n if (object.numerator !== undefined && object.numerator !== null) {\n message.numerator = object.numerator;\n }\n else {\n message.numerator = long_1.default.UZERO;\n }\n if (object.denominator !== undefined && object.denominator !== null) {\n message.denominator = object.denominator;\n }\n else {\n message.denominator = long_1.default.UZERO;\n }\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nfunction toTimestamp(date) {\n const seconds = numberToLong(date.getTime() / 1000);\n const nanos = (date.getTime() % 1000) * 1000000;\n return { seconds, nanos };\n}\nfunction fromTimestamp(t) {\n let millis = t.seconds.toNumber() * 1000;\n millis += t.nanos / 1000000;\n return new Date(millis);\n}\nfunction fromJsonTimestamp(o) {\n if (o instanceof Date) {\n return o;\n }\n else if (typeof o === \"string\") {\n return new Date(o);\n }\n else {\n return fromTimestamp(timestamp_1.Timestamp.fromJSON(o));\n }\n}\nfunction numberToLong(number) {\n return long_1.default.fromNumber(number);\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=tendermint.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GrpcWebImpl = exports.ABCIApplicationApplySnapshotChunkDesc = exports.ABCIApplicationLoadSnapshotChunkDesc = exports.ABCIApplicationOfferSnapshotDesc = exports.ABCIApplicationListSnapshotsDesc = exports.ABCIApplicationEndBlockDesc = exports.ABCIApplicationBeginBlockDesc = exports.ABCIApplicationInitChainDesc = exports.ABCIApplicationCommitDesc = exports.ABCIApplicationQueryDesc = exports.ABCIApplicationCheckTxDesc = exports.ABCIApplicationDeliverTxDesc = exports.ABCIApplicationSetOptionDesc = exports.ABCIApplicationInfoDesc = exports.ABCIApplicationFlushDesc = exports.ABCIApplicationEchoDesc = exports.ABCIApplicationDesc = exports.ABCIApplicationClientImpl = exports.Snapshot = exports.Evidence = exports.VoteInfo = exports.ValidatorUpdate = exports.Validator = exports.TxResult = exports.EventAttribute = exports.Event = exports.LastCommitInfo = exports.BlockParams = exports.ConsensusParams = exports.ResponseApplySnapshotChunk = exports.ResponseLoadSnapshotChunk = exports.ResponseOfferSnapshot = exports.ResponseListSnapshots = exports.ResponseCommit = exports.ResponseEndBlock = exports.ResponseDeliverTx = exports.ResponseCheckTx = exports.ResponseBeginBlock = exports.ResponseQuery = exports.ResponseInitChain = exports.ResponseSetOption = exports.ResponseInfo = exports.ResponseFlush = exports.ResponseEcho = exports.ResponseException = exports.Response = exports.RequestApplySnapshotChunk = exports.RequestLoadSnapshotChunk = exports.RequestOfferSnapshot = exports.RequestListSnapshots = exports.RequestCommit = exports.RequestEndBlock = exports.RequestDeliverTx = exports.RequestCheckTx = exports.RequestBeginBlock = exports.RequestQuery = exports.RequestInitChain = exports.RequestSetOption = exports.RequestInfo = exports.RequestFlush = exports.RequestEcho = exports.Request = exports.responseApplySnapshotChunk_ResultToJSON = exports.responseApplySnapshotChunk_ResultFromJSON = exports.ResponseApplySnapshotChunk_Result = exports.responseOfferSnapshot_ResultToJSON = exports.responseOfferSnapshot_ResultFromJSON = exports.ResponseOfferSnapshot_Result = exports.evidenceTypeToJSON = exports.evidenceTypeFromJSON = exports.EvidenceType = exports.checkTxTypeToJSON = exports.checkTxTypeFromJSON = exports.CheckTxType = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst grpc_web_1 = require(\"@improbable-eng/grpc-web\");\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst types_1 = require(\"../../tendermint/types/types\");\nconst proof_1 = require(\"../../tendermint/crypto/proof\");\nconst params_1 = require(\"../../tendermint/types/params\");\nconst keys_1 = require(\"../../tendermint/crypto/keys\");\nconst browser_headers_1 = require(\"browser-headers\");\nconst timestamp_1 = require(\"../../google/protobuf/timestamp\");\nexports.protobufPackage = \"tendermint.abci\";\nvar CheckTxType;\n(function (CheckTxType) {\n CheckTxType[CheckTxType[\"NEW\"] = 0] = \"NEW\";\n CheckTxType[CheckTxType[\"RECHECK\"] = 1] = \"RECHECK\";\n CheckTxType[CheckTxType[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(CheckTxType = exports.CheckTxType || (exports.CheckTxType = {}));\nfunction checkTxTypeFromJSON(object) {\n switch (object) {\n case 0:\n case \"NEW\":\n return CheckTxType.NEW;\n case 1:\n case \"RECHECK\":\n return CheckTxType.RECHECK;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return CheckTxType.UNRECOGNIZED;\n }\n}\nexports.checkTxTypeFromJSON = checkTxTypeFromJSON;\nfunction checkTxTypeToJSON(object) {\n switch (object) {\n case CheckTxType.NEW:\n return \"NEW\";\n case CheckTxType.RECHECK:\n return \"RECHECK\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.checkTxTypeToJSON = checkTxTypeToJSON;\nvar EvidenceType;\n(function (EvidenceType) {\n EvidenceType[EvidenceType[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n EvidenceType[EvidenceType[\"DUPLICATE_VOTE\"] = 1] = \"DUPLICATE_VOTE\";\n EvidenceType[EvidenceType[\"LIGHT_CLIENT_ATTACK\"] = 2] = \"LIGHT_CLIENT_ATTACK\";\n EvidenceType[EvidenceType[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(EvidenceType = exports.EvidenceType || (exports.EvidenceType = {}));\nfunction evidenceTypeFromJSON(object) {\n switch (object) {\n case 0:\n case \"UNKNOWN\":\n return EvidenceType.UNKNOWN;\n case 1:\n case \"DUPLICATE_VOTE\":\n return EvidenceType.DUPLICATE_VOTE;\n case 2:\n case \"LIGHT_CLIENT_ATTACK\":\n return EvidenceType.LIGHT_CLIENT_ATTACK;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return EvidenceType.UNRECOGNIZED;\n }\n}\nexports.evidenceTypeFromJSON = evidenceTypeFromJSON;\nfunction evidenceTypeToJSON(object) {\n switch (object) {\n case EvidenceType.UNKNOWN:\n return \"UNKNOWN\";\n case EvidenceType.DUPLICATE_VOTE:\n return \"DUPLICATE_VOTE\";\n case EvidenceType.LIGHT_CLIENT_ATTACK:\n return \"LIGHT_CLIENT_ATTACK\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.evidenceTypeToJSON = evidenceTypeToJSON;\nvar ResponseOfferSnapshot_Result;\n(function (ResponseOfferSnapshot_Result) {\n /** UNKNOWN - Unknown result, abort all snapshot restoration */\n ResponseOfferSnapshot_Result[ResponseOfferSnapshot_Result[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n /** ACCEPT - Snapshot accepted, apply chunks */\n ResponseOfferSnapshot_Result[ResponseOfferSnapshot_Result[\"ACCEPT\"] = 1] = \"ACCEPT\";\n /** ABORT - Abort all snapshot restoration */\n ResponseOfferSnapshot_Result[ResponseOfferSnapshot_Result[\"ABORT\"] = 2] = \"ABORT\";\n /** REJECT - Reject this specific snapshot, try others */\n ResponseOfferSnapshot_Result[ResponseOfferSnapshot_Result[\"REJECT\"] = 3] = \"REJECT\";\n /** REJECT_FORMAT - Reject all snapshots of this format, try others */\n ResponseOfferSnapshot_Result[ResponseOfferSnapshot_Result[\"REJECT_FORMAT\"] = 4] = \"REJECT_FORMAT\";\n /** REJECT_SENDER - Reject all snapshots from the sender(s), try others */\n ResponseOfferSnapshot_Result[ResponseOfferSnapshot_Result[\"REJECT_SENDER\"] = 5] = \"REJECT_SENDER\";\n ResponseOfferSnapshot_Result[ResponseOfferSnapshot_Result[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(ResponseOfferSnapshot_Result = exports.ResponseOfferSnapshot_Result || (exports.ResponseOfferSnapshot_Result = {}));\nfunction responseOfferSnapshot_ResultFromJSON(object) {\n switch (object) {\n case 0:\n case \"UNKNOWN\":\n return ResponseOfferSnapshot_Result.UNKNOWN;\n case 1:\n case \"ACCEPT\":\n return ResponseOfferSnapshot_Result.ACCEPT;\n case 2:\n case \"ABORT\":\n return ResponseOfferSnapshot_Result.ABORT;\n case 3:\n case \"REJECT\":\n return ResponseOfferSnapshot_Result.REJECT;\n case 4:\n case \"REJECT_FORMAT\":\n return ResponseOfferSnapshot_Result.REJECT_FORMAT;\n case 5:\n case \"REJECT_SENDER\":\n return ResponseOfferSnapshot_Result.REJECT_SENDER;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return ResponseOfferSnapshot_Result.UNRECOGNIZED;\n }\n}\nexports.responseOfferSnapshot_ResultFromJSON = responseOfferSnapshot_ResultFromJSON;\nfunction responseOfferSnapshot_ResultToJSON(object) {\n switch (object) {\n case ResponseOfferSnapshot_Result.UNKNOWN:\n return \"UNKNOWN\";\n case ResponseOfferSnapshot_Result.ACCEPT:\n return \"ACCEPT\";\n case ResponseOfferSnapshot_Result.ABORT:\n return \"ABORT\";\n case ResponseOfferSnapshot_Result.REJECT:\n return \"REJECT\";\n case ResponseOfferSnapshot_Result.REJECT_FORMAT:\n return \"REJECT_FORMAT\";\n case ResponseOfferSnapshot_Result.REJECT_SENDER:\n return \"REJECT_SENDER\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.responseOfferSnapshot_ResultToJSON = responseOfferSnapshot_ResultToJSON;\nvar ResponseApplySnapshotChunk_Result;\n(function (ResponseApplySnapshotChunk_Result) {\n /** UNKNOWN - Unknown result, abort all snapshot restoration */\n ResponseApplySnapshotChunk_Result[ResponseApplySnapshotChunk_Result[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n /** ACCEPT - Chunk successfully accepted */\n ResponseApplySnapshotChunk_Result[ResponseApplySnapshotChunk_Result[\"ACCEPT\"] = 1] = \"ACCEPT\";\n /** ABORT - Abort all snapshot restoration */\n ResponseApplySnapshotChunk_Result[ResponseApplySnapshotChunk_Result[\"ABORT\"] = 2] = \"ABORT\";\n /** RETRY - Retry chunk (combine with refetch and reject) */\n ResponseApplySnapshotChunk_Result[ResponseApplySnapshotChunk_Result[\"RETRY\"] = 3] = \"RETRY\";\n /** RETRY_SNAPSHOT - Retry snapshot (combine with refetch and reject) */\n ResponseApplySnapshotChunk_Result[ResponseApplySnapshotChunk_Result[\"RETRY_SNAPSHOT\"] = 4] = \"RETRY_SNAPSHOT\";\n /** REJECT_SNAPSHOT - Reject this snapshot, try others */\n ResponseApplySnapshotChunk_Result[ResponseApplySnapshotChunk_Result[\"REJECT_SNAPSHOT\"] = 5] = \"REJECT_SNAPSHOT\";\n ResponseApplySnapshotChunk_Result[ResponseApplySnapshotChunk_Result[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(ResponseApplySnapshotChunk_Result = exports.ResponseApplySnapshotChunk_Result || (exports.ResponseApplySnapshotChunk_Result = {}));\nfunction responseApplySnapshotChunk_ResultFromJSON(object) {\n switch (object) {\n case 0:\n case \"UNKNOWN\":\n return ResponseApplySnapshotChunk_Result.UNKNOWN;\n case 1:\n case \"ACCEPT\":\n return ResponseApplySnapshotChunk_Result.ACCEPT;\n case 2:\n case \"ABORT\":\n return ResponseApplySnapshotChunk_Result.ABORT;\n case 3:\n case \"RETRY\":\n return ResponseApplySnapshotChunk_Result.RETRY;\n case 4:\n case \"RETRY_SNAPSHOT\":\n return ResponseApplySnapshotChunk_Result.RETRY_SNAPSHOT;\n case 5:\n case \"REJECT_SNAPSHOT\":\n return ResponseApplySnapshotChunk_Result.REJECT_SNAPSHOT;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return ResponseApplySnapshotChunk_Result.UNRECOGNIZED;\n }\n}\nexports.responseApplySnapshotChunk_ResultFromJSON = responseApplySnapshotChunk_ResultFromJSON;\nfunction responseApplySnapshotChunk_ResultToJSON(object) {\n switch (object) {\n case ResponseApplySnapshotChunk_Result.UNKNOWN:\n return \"UNKNOWN\";\n case ResponseApplySnapshotChunk_Result.ACCEPT:\n return \"ACCEPT\";\n case ResponseApplySnapshotChunk_Result.ABORT:\n return \"ABORT\";\n case ResponseApplySnapshotChunk_Result.RETRY:\n return \"RETRY\";\n case ResponseApplySnapshotChunk_Result.RETRY_SNAPSHOT:\n return \"RETRY_SNAPSHOT\";\n case ResponseApplySnapshotChunk_Result.REJECT_SNAPSHOT:\n return \"REJECT_SNAPSHOT\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.responseApplySnapshotChunk_ResultToJSON = responseApplySnapshotChunk_ResultToJSON;\nconst baseRequest = {};\nexports.Request = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.echo !== undefined) {\n exports.RequestEcho.encode(message.echo, writer.uint32(10).fork()).ldelim();\n }\n if (message.flush !== undefined) {\n exports.RequestFlush.encode(message.flush, writer.uint32(18).fork()).ldelim();\n }\n if (message.info !== undefined) {\n exports.RequestInfo.encode(message.info, writer.uint32(26).fork()).ldelim();\n }\n if (message.setOption !== undefined) {\n exports.RequestSetOption.encode(message.setOption, writer.uint32(34).fork()).ldelim();\n }\n if (message.initChain !== undefined) {\n exports.RequestInitChain.encode(message.initChain, writer.uint32(42).fork()).ldelim();\n }\n if (message.query !== undefined) {\n exports.RequestQuery.encode(message.query, writer.uint32(50).fork()).ldelim();\n }\n if (message.beginBlock !== undefined) {\n exports.RequestBeginBlock.encode(message.beginBlock, writer.uint32(58).fork()).ldelim();\n }\n if (message.checkTx !== undefined) {\n exports.RequestCheckTx.encode(message.checkTx, writer.uint32(66).fork()).ldelim();\n }\n if (message.deliverTx !== undefined) {\n exports.RequestDeliverTx.encode(message.deliverTx, writer.uint32(74).fork()).ldelim();\n }\n if (message.endBlock !== undefined) {\n exports.RequestEndBlock.encode(message.endBlock, writer.uint32(82).fork()).ldelim();\n }\n if (message.commit !== undefined) {\n exports.RequestCommit.encode(message.commit, writer.uint32(90).fork()).ldelim();\n }\n if (message.listSnapshots !== undefined) {\n exports.RequestListSnapshots.encode(message.listSnapshots, writer.uint32(98).fork()).ldelim();\n }\n if (message.offerSnapshot !== undefined) {\n exports.RequestOfferSnapshot.encode(message.offerSnapshot, writer.uint32(106).fork()).ldelim();\n }\n if (message.loadSnapshotChunk !== undefined) {\n exports.RequestLoadSnapshotChunk.encode(message.loadSnapshotChunk, writer.uint32(114).fork()).ldelim();\n }\n if (message.applySnapshotChunk !== undefined) {\n exports.RequestApplySnapshotChunk.encode(message.applySnapshotChunk, writer.uint32(122).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.echo = exports.RequestEcho.decode(reader, reader.uint32());\n break;\n case 2:\n message.flush = exports.RequestFlush.decode(reader, reader.uint32());\n break;\n case 3:\n message.info = exports.RequestInfo.decode(reader, reader.uint32());\n break;\n case 4:\n message.setOption = exports.RequestSetOption.decode(reader, reader.uint32());\n break;\n case 5:\n message.initChain = exports.RequestInitChain.decode(reader, reader.uint32());\n break;\n case 6:\n message.query = exports.RequestQuery.decode(reader, reader.uint32());\n break;\n case 7:\n message.beginBlock = exports.RequestBeginBlock.decode(reader, reader.uint32());\n break;\n case 8:\n message.checkTx = exports.RequestCheckTx.decode(reader, reader.uint32());\n break;\n case 9:\n message.deliverTx = exports.RequestDeliverTx.decode(reader, reader.uint32());\n break;\n case 10:\n message.endBlock = exports.RequestEndBlock.decode(reader, reader.uint32());\n break;\n case 11:\n message.commit = exports.RequestCommit.decode(reader, reader.uint32());\n break;\n case 12:\n message.listSnapshots = exports.RequestListSnapshots.decode(reader, reader.uint32());\n break;\n case 13:\n message.offerSnapshot = exports.RequestOfferSnapshot.decode(reader, reader.uint32());\n break;\n case 14:\n message.loadSnapshotChunk = exports.RequestLoadSnapshotChunk.decode(reader, reader.uint32());\n break;\n case 15:\n message.applySnapshotChunk = exports.RequestApplySnapshotChunk.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseRequest);\n if (object.echo !== undefined && object.echo !== null) {\n message.echo = exports.RequestEcho.fromJSON(object.echo);\n }\n else {\n message.echo = undefined;\n }\n if (object.flush !== undefined && object.flush !== null) {\n message.flush = exports.RequestFlush.fromJSON(object.flush);\n }\n else {\n message.flush = undefined;\n }\n if (object.info !== undefined && object.info !== null) {\n message.info = exports.RequestInfo.fromJSON(object.info);\n }\n else {\n message.info = undefined;\n }\n if (object.setOption !== undefined && object.setOption !== null) {\n message.setOption = exports.RequestSetOption.fromJSON(object.setOption);\n }\n else {\n message.setOption = undefined;\n }\n if (object.initChain !== undefined && object.initChain !== null) {\n message.initChain = exports.RequestInitChain.fromJSON(object.initChain);\n }\n else {\n message.initChain = undefined;\n }\n if (object.query !== undefined && object.query !== null) {\n message.query = exports.RequestQuery.fromJSON(object.query);\n }\n else {\n message.query = undefined;\n }\n if (object.beginBlock !== undefined && object.beginBlock !== null) {\n message.beginBlock = exports.RequestBeginBlock.fromJSON(object.beginBlock);\n }\n else {\n message.beginBlock = undefined;\n }\n if (object.checkTx !== undefined && object.checkTx !== null) {\n message.checkTx = exports.RequestCheckTx.fromJSON(object.checkTx);\n }\n else {\n message.checkTx = undefined;\n }\n if (object.deliverTx !== undefined && object.deliverTx !== null) {\n message.deliverTx = exports.RequestDeliverTx.fromJSON(object.deliverTx);\n }\n else {\n message.deliverTx = undefined;\n }\n if (object.endBlock !== undefined && object.endBlock !== null) {\n message.endBlock = exports.RequestEndBlock.fromJSON(object.endBlock);\n }\n else {\n message.endBlock = undefined;\n }\n if (object.commit !== undefined && object.commit !== null) {\n message.commit = exports.RequestCommit.fromJSON(object.commit);\n }\n else {\n message.commit = undefined;\n }\n if (object.listSnapshots !== undefined && object.listSnapshots !== null) {\n message.listSnapshots = exports.RequestListSnapshots.fromJSON(object.listSnapshots);\n }\n else {\n message.listSnapshots = undefined;\n }\n if (object.offerSnapshot !== undefined && object.offerSnapshot !== null) {\n message.offerSnapshot = exports.RequestOfferSnapshot.fromJSON(object.offerSnapshot);\n }\n else {\n message.offerSnapshot = undefined;\n }\n if (object.loadSnapshotChunk !== undefined && object.loadSnapshotChunk !== null) {\n message.loadSnapshotChunk = exports.RequestLoadSnapshotChunk.fromJSON(object.loadSnapshotChunk);\n }\n else {\n message.loadSnapshotChunk = undefined;\n }\n if (object.applySnapshotChunk !== undefined && object.applySnapshotChunk !== null) {\n message.applySnapshotChunk = exports.RequestApplySnapshotChunk.fromJSON(object.applySnapshotChunk);\n }\n else {\n message.applySnapshotChunk = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.echo !== undefined && (obj.echo = message.echo ? exports.RequestEcho.toJSON(message.echo) : undefined);\n message.flush !== undefined &&\n (obj.flush = message.flush ? exports.RequestFlush.toJSON(message.flush) : undefined);\n message.info !== undefined && (obj.info = message.info ? exports.RequestInfo.toJSON(message.info) : undefined);\n message.setOption !== undefined &&\n (obj.setOption = message.setOption ? exports.RequestSetOption.toJSON(message.setOption) : undefined);\n message.initChain !== undefined &&\n (obj.initChain = message.initChain ? exports.RequestInitChain.toJSON(message.initChain) : undefined);\n message.query !== undefined &&\n (obj.query = message.query ? exports.RequestQuery.toJSON(message.query) : undefined);\n message.beginBlock !== undefined &&\n (obj.beginBlock = message.beginBlock ? exports.RequestBeginBlock.toJSON(message.beginBlock) : undefined);\n message.checkTx !== undefined &&\n (obj.checkTx = message.checkTx ? exports.RequestCheckTx.toJSON(message.checkTx) : undefined);\n message.deliverTx !== undefined &&\n (obj.deliverTx = message.deliverTx ? exports.RequestDeliverTx.toJSON(message.deliverTx) : undefined);\n message.endBlock !== undefined &&\n (obj.endBlock = message.endBlock ? exports.RequestEndBlock.toJSON(message.endBlock) : undefined);\n message.commit !== undefined &&\n (obj.commit = message.commit ? exports.RequestCommit.toJSON(message.commit) : undefined);\n message.listSnapshots !== undefined &&\n (obj.listSnapshots = message.listSnapshots\n ? exports.RequestListSnapshots.toJSON(message.listSnapshots)\n : undefined);\n message.offerSnapshot !== undefined &&\n (obj.offerSnapshot = message.offerSnapshot\n ? exports.RequestOfferSnapshot.toJSON(message.offerSnapshot)\n : undefined);\n message.loadSnapshotChunk !== undefined &&\n (obj.loadSnapshotChunk = message.loadSnapshotChunk\n ? exports.RequestLoadSnapshotChunk.toJSON(message.loadSnapshotChunk)\n : undefined);\n message.applySnapshotChunk !== undefined &&\n (obj.applySnapshotChunk = message.applySnapshotChunk\n ? exports.RequestApplySnapshotChunk.toJSON(message.applySnapshotChunk)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseRequest);\n if (object.echo !== undefined && object.echo !== null) {\n message.echo = exports.RequestEcho.fromPartial(object.echo);\n }\n else {\n message.echo = undefined;\n }\n if (object.flush !== undefined && object.flush !== null) {\n message.flush = exports.RequestFlush.fromPartial(object.flush);\n }\n else {\n message.flush = undefined;\n }\n if (object.info !== undefined && object.info !== null) {\n message.info = exports.RequestInfo.fromPartial(object.info);\n }\n else {\n message.info = undefined;\n }\n if (object.setOption !== undefined && object.setOption !== null) {\n message.setOption = exports.RequestSetOption.fromPartial(object.setOption);\n }\n else {\n message.setOption = undefined;\n }\n if (object.initChain !== undefined && object.initChain !== null) {\n message.initChain = exports.RequestInitChain.fromPartial(object.initChain);\n }\n else {\n message.initChain = undefined;\n }\n if (object.query !== undefined && object.query !== null) {\n message.query = exports.RequestQuery.fromPartial(object.query);\n }\n else {\n message.query = undefined;\n }\n if (object.beginBlock !== undefined && object.beginBlock !== null) {\n message.beginBlock = exports.RequestBeginBlock.fromPartial(object.beginBlock);\n }\n else {\n message.beginBlock = undefined;\n }\n if (object.checkTx !== undefined && object.checkTx !== null) {\n message.checkTx = exports.RequestCheckTx.fromPartial(object.checkTx);\n }\n else {\n message.checkTx = undefined;\n }\n if (object.deliverTx !== undefined && object.deliverTx !== null) {\n message.deliverTx = exports.RequestDeliverTx.fromPartial(object.deliverTx);\n }\n else {\n message.deliverTx = undefined;\n }\n if (object.endBlock !== undefined && object.endBlock !== null) {\n message.endBlock = exports.RequestEndBlock.fromPartial(object.endBlock);\n }\n else {\n message.endBlock = undefined;\n }\n if (object.commit !== undefined && object.commit !== null) {\n message.commit = exports.RequestCommit.fromPartial(object.commit);\n }\n else {\n message.commit = undefined;\n }\n if (object.listSnapshots !== undefined && object.listSnapshots !== null) {\n message.listSnapshots = exports.RequestListSnapshots.fromPartial(object.listSnapshots);\n }\n else {\n message.listSnapshots = undefined;\n }\n if (object.offerSnapshot !== undefined && object.offerSnapshot !== null) {\n message.offerSnapshot = exports.RequestOfferSnapshot.fromPartial(object.offerSnapshot);\n }\n else {\n message.offerSnapshot = undefined;\n }\n if (object.loadSnapshotChunk !== undefined && object.loadSnapshotChunk !== null) {\n message.loadSnapshotChunk = exports.RequestLoadSnapshotChunk.fromPartial(object.loadSnapshotChunk);\n }\n else {\n message.loadSnapshotChunk = undefined;\n }\n if (object.applySnapshotChunk !== undefined && object.applySnapshotChunk !== null) {\n message.applySnapshotChunk = exports.RequestApplySnapshotChunk.fromPartial(object.applySnapshotChunk);\n }\n else {\n message.applySnapshotChunk = undefined;\n }\n return message;\n },\n};\nconst baseRequestEcho = { message: \"\" };\nexports.RequestEcho = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.message !== \"\") {\n writer.uint32(10).string(message.message);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestEcho);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.message = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseRequestEcho);\n if (object.message !== undefined && object.message !== null) {\n message.message = String(object.message);\n }\n else {\n message.message = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.message !== undefined && (obj.message = message.message);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseRequestEcho);\n if (object.message !== undefined && object.message !== null) {\n message.message = object.message;\n }\n else {\n message.message = \"\";\n }\n return message;\n },\n};\nconst baseRequestFlush = {};\nexports.RequestFlush = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestFlush);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseRequestFlush);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseRequestFlush);\n return message;\n },\n};\nconst baseRequestInfo = { version: \"\", blockVersion: long_1.default.UZERO, p2pVersion: long_1.default.UZERO };\nexports.RequestInfo = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.version !== \"\") {\n writer.uint32(10).string(message.version);\n }\n if (!message.blockVersion.isZero()) {\n writer.uint32(16).uint64(message.blockVersion);\n }\n if (!message.p2pVersion.isZero()) {\n writer.uint32(24).uint64(message.p2pVersion);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestInfo);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.version = reader.string();\n break;\n case 2:\n message.blockVersion = reader.uint64();\n break;\n case 3:\n message.p2pVersion = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseRequestInfo);\n if (object.version !== undefined && object.version !== null) {\n message.version = String(object.version);\n }\n else {\n message.version = \"\";\n }\n if (object.blockVersion !== undefined && object.blockVersion !== null) {\n message.blockVersion = long_1.default.fromString(object.blockVersion);\n }\n else {\n message.blockVersion = long_1.default.UZERO;\n }\n if (object.p2pVersion !== undefined && object.p2pVersion !== null) {\n message.p2pVersion = long_1.default.fromString(object.p2pVersion);\n }\n else {\n message.p2pVersion = long_1.default.UZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.version !== undefined && (obj.version = message.version);\n message.blockVersion !== undefined &&\n (obj.blockVersion = (message.blockVersion || long_1.default.UZERO).toString());\n message.p2pVersion !== undefined && (obj.p2pVersion = (message.p2pVersion || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseRequestInfo);\n if (object.version !== undefined && object.version !== null) {\n message.version = object.version;\n }\n else {\n message.version = \"\";\n }\n if (object.blockVersion !== undefined && object.blockVersion !== null) {\n message.blockVersion = object.blockVersion;\n }\n else {\n message.blockVersion = long_1.default.UZERO;\n }\n if (object.p2pVersion !== undefined && object.p2pVersion !== null) {\n message.p2pVersion = object.p2pVersion;\n }\n else {\n message.p2pVersion = long_1.default.UZERO;\n }\n return message;\n },\n};\nconst baseRequestSetOption = { key: \"\", value: \"\" };\nexports.RequestSetOption = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.key !== \"\") {\n writer.uint32(10).string(message.key);\n }\n if (message.value !== \"\") {\n writer.uint32(18).string(message.value);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestSetOption);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.string();\n break;\n case 2:\n message.value = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseRequestSetOption);\n if (object.key !== undefined && object.key !== null) {\n message.key = String(object.key);\n }\n else {\n message.key = \"\";\n }\n if (object.value !== undefined && object.value !== null) {\n message.value = String(object.value);\n }\n else {\n message.value = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined && (obj.key = message.key);\n message.value !== undefined && (obj.value = message.value);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseRequestSetOption);\n if (object.key !== undefined && object.key !== null) {\n message.key = object.key;\n }\n else {\n message.key = \"\";\n }\n if (object.value !== undefined && object.value !== null) {\n message.value = object.value;\n }\n else {\n message.value = \"\";\n }\n return message;\n },\n};\nconst baseRequestInitChain = { chainId: \"\", initialHeight: long_1.default.ZERO };\nexports.RequestInitChain = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.time !== undefined) {\n timestamp_1.Timestamp.encode(toTimestamp(message.time), writer.uint32(10).fork()).ldelim();\n }\n if (message.chainId !== \"\") {\n writer.uint32(18).string(message.chainId);\n }\n if (message.consensusParams !== undefined) {\n exports.ConsensusParams.encode(message.consensusParams, writer.uint32(26).fork()).ldelim();\n }\n for (const v of message.validators) {\n exports.ValidatorUpdate.encode(v, writer.uint32(34).fork()).ldelim();\n }\n if (message.appStateBytes.length !== 0) {\n writer.uint32(42).bytes(message.appStateBytes);\n }\n if (!message.initialHeight.isZero()) {\n writer.uint32(48).int64(message.initialHeight);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestInitChain);\n message.validators = [];\n message.appStateBytes = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.time = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));\n break;\n case 2:\n message.chainId = reader.string();\n break;\n case 3:\n message.consensusParams = exports.ConsensusParams.decode(reader, reader.uint32());\n break;\n case 4:\n message.validators.push(exports.ValidatorUpdate.decode(reader, reader.uint32()));\n break;\n case 5:\n message.appStateBytes = reader.bytes();\n break;\n case 6:\n message.initialHeight = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseRequestInitChain);\n message.validators = [];\n message.appStateBytes = new Uint8Array();\n if (object.time !== undefined && object.time !== null) {\n message.time = fromJsonTimestamp(object.time);\n }\n else {\n message.time = undefined;\n }\n if (object.chainId !== undefined && object.chainId !== null) {\n message.chainId = String(object.chainId);\n }\n else {\n message.chainId = \"\";\n }\n if (object.consensusParams !== undefined && object.consensusParams !== null) {\n message.consensusParams = exports.ConsensusParams.fromJSON(object.consensusParams);\n }\n else {\n message.consensusParams = undefined;\n }\n if (object.validators !== undefined && object.validators !== null) {\n for (const e of object.validators) {\n message.validators.push(exports.ValidatorUpdate.fromJSON(e));\n }\n }\n if (object.appStateBytes !== undefined && object.appStateBytes !== null) {\n message.appStateBytes = bytesFromBase64(object.appStateBytes);\n }\n if (object.initialHeight !== undefined && object.initialHeight !== null) {\n message.initialHeight = long_1.default.fromString(object.initialHeight);\n }\n else {\n message.initialHeight = long_1.default.ZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.time !== undefined && (obj.time = message.time.toISOString());\n message.chainId !== undefined && (obj.chainId = message.chainId);\n message.consensusParams !== undefined &&\n (obj.consensusParams = message.consensusParams\n ? exports.ConsensusParams.toJSON(message.consensusParams)\n : undefined);\n if (message.validators) {\n obj.validators = message.validators.map((e) => (e ? exports.ValidatorUpdate.toJSON(e) : undefined));\n }\n else {\n obj.validators = [];\n }\n message.appStateBytes !== undefined &&\n (obj.appStateBytes = base64FromBytes(message.appStateBytes !== undefined ? message.appStateBytes : new Uint8Array()));\n message.initialHeight !== undefined &&\n (obj.initialHeight = (message.initialHeight || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseRequestInitChain);\n message.validators = [];\n if (object.time !== undefined && object.time !== null) {\n message.time = object.time;\n }\n else {\n message.time = undefined;\n }\n if (object.chainId !== undefined && object.chainId !== null) {\n message.chainId = object.chainId;\n }\n else {\n message.chainId = \"\";\n }\n if (object.consensusParams !== undefined && object.consensusParams !== null) {\n message.consensusParams = exports.ConsensusParams.fromPartial(object.consensusParams);\n }\n else {\n message.consensusParams = undefined;\n }\n if (object.validators !== undefined && object.validators !== null) {\n for (const e of object.validators) {\n message.validators.push(exports.ValidatorUpdate.fromPartial(e));\n }\n }\n if (object.appStateBytes !== undefined && object.appStateBytes !== null) {\n message.appStateBytes = object.appStateBytes;\n }\n else {\n message.appStateBytes = new Uint8Array();\n }\n if (object.initialHeight !== undefined && object.initialHeight !== null) {\n message.initialHeight = object.initialHeight;\n }\n else {\n message.initialHeight = long_1.default.ZERO;\n }\n return message;\n },\n};\nconst baseRequestQuery = { path: \"\", height: long_1.default.ZERO, prove: false };\nexports.RequestQuery = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.data.length !== 0) {\n writer.uint32(10).bytes(message.data);\n }\n if (message.path !== \"\") {\n writer.uint32(18).string(message.path);\n }\n if (!message.height.isZero()) {\n writer.uint32(24).int64(message.height);\n }\n if (message.prove === true) {\n writer.uint32(32).bool(message.prove);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestQuery);\n message.data = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.data = reader.bytes();\n break;\n case 2:\n message.path = reader.string();\n break;\n case 3:\n message.height = reader.int64();\n break;\n case 4:\n message.prove = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseRequestQuery);\n message.data = new Uint8Array();\n if (object.data !== undefined && object.data !== null) {\n message.data = bytesFromBase64(object.data);\n }\n if (object.path !== undefined && object.path !== null) {\n message.path = String(object.path);\n }\n else {\n message.path = \"\";\n }\n if (object.height !== undefined && object.height !== null) {\n message.height = long_1.default.fromString(object.height);\n }\n else {\n message.height = long_1.default.ZERO;\n }\n if (object.prove !== undefined && object.prove !== null) {\n message.prove = Boolean(object.prove);\n }\n else {\n message.prove = false;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.data !== undefined &&\n (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));\n message.path !== undefined && (obj.path = message.path);\n message.height !== undefined && (obj.height = (message.height || long_1.default.ZERO).toString());\n message.prove !== undefined && (obj.prove = message.prove);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseRequestQuery);\n if (object.data !== undefined && object.data !== null) {\n message.data = object.data;\n }\n else {\n message.data = new Uint8Array();\n }\n if (object.path !== undefined && object.path !== null) {\n message.path = object.path;\n }\n else {\n message.path = \"\";\n }\n if (object.height !== undefined && object.height !== null) {\n message.height = object.height;\n }\n else {\n message.height = long_1.default.ZERO;\n }\n if (object.prove !== undefined && object.prove !== null) {\n message.prove = object.prove;\n }\n else {\n message.prove = false;\n }\n return message;\n },\n};\nconst baseRequestBeginBlock = {};\nexports.RequestBeginBlock = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.hash.length !== 0) {\n writer.uint32(10).bytes(message.hash);\n }\n if (message.header !== undefined) {\n types_1.Header.encode(message.header, writer.uint32(18).fork()).ldelim();\n }\n if (message.lastCommitInfo !== undefined) {\n exports.LastCommitInfo.encode(message.lastCommitInfo, writer.uint32(26).fork()).ldelim();\n }\n for (const v of message.byzantineValidators) {\n exports.Evidence.encode(v, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestBeginBlock);\n message.byzantineValidators = [];\n message.hash = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hash = reader.bytes();\n break;\n case 2:\n message.header = types_1.Header.decode(reader, reader.uint32());\n break;\n case 3:\n message.lastCommitInfo = exports.LastCommitInfo.decode(reader, reader.uint32());\n break;\n case 4:\n message.byzantineValidators.push(exports.Evidence.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseRequestBeginBlock);\n message.byzantineValidators = [];\n message.hash = new Uint8Array();\n if (object.hash !== undefined && object.hash !== null) {\n message.hash = bytesFromBase64(object.hash);\n }\n if (object.header !== undefined && object.header !== null) {\n message.header = types_1.Header.fromJSON(object.header);\n }\n else {\n message.header = undefined;\n }\n if (object.lastCommitInfo !== undefined && object.lastCommitInfo !== null) {\n message.lastCommitInfo = exports.LastCommitInfo.fromJSON(object.lastCommitInfo);\n }\n else {\n message.lastCommitInfo = undefined;\n }\n if (object.byzantineValidators !== undefined && object.byzantineValidators !== null) {\n for (const e of object.byzantineValidators) {\n message.byzantineValidators.push(exports.Evidence.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.hash !== undefined &&\n (obj.hash = base64FromBytes(message.hash !== undefined ? message.hash : new Uint8Array()));\n message.header !== undefined && (obj.header = message.header ? types_1.Header.toJSON(message.header) : undefined);\n message.lastCommitInfo !== undefined &&\n (obj.lastCommitInfo = message.lastCommitInfo\n ? exports.LastCommitInfo.toJSON(message.lastCommitInfo)\n : undefined);\n if (message.byzantineValidators) {\n obj.byzantineValidators = message.byzantineValidators.map((e) => (e ? exports.Evidence.toJSON(e) : undefined));\n }\n else {\n obj.byzantineValidators = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseRequestBeginBlock);\n message.byzantineValidators = [];\n if (object.hash !== undefined && object.hash !== null) {\n message.hash = object.hash;\n }\n else {\n message.hash = new Uint8Array();\n }\n if (object.header !== undefined && object.header !== null) {\n message.header = types_1.Header.fromPartial(object.header);\n }\n else {\n message.header = undefined;\n }\n if (object.lastCommitInfo !== undefined && object.lastCommitInfo !== null) {\n message.lastCommitInfo = exports.LastCommitInfo.fromPartial(object.lastCommitInfo);\n }\n else {\n message.lastCommitInfo = undefined;\n }\n if (object.byzantineValidators !== undefined && object.byzantineValidators !== null) {\n for (const e of object.byzantineValidators) {\n message.byzantineValidators.push(exports.Evidence.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseRequestCheckTx = { type: 0 };\nexports.RequestCheckTx = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.tx.length !== 0) {\n writer.uint32(10).bytes(message.tx);\n }\n if (message.type !== 0) {\n writer.uint32(16).int32(message.type);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestCheckTx);\n message.tx = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.tx = reader.bytes();\n break;\n case 2:\n message.type = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseRequestCheckTx);\n message.tx = new Uint8Array();\n if (object.tx !== undefined && object.tx !== null) {\n message.tx = bytesFromBase64(object.tx);\n }\n if (object.type !== undefined && object.type !== null) {\n message.type = checkTxTypeFromJSON(object.type);\n }\n else {\n message.type = 0;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.tx !== undefined &&\n (obj.tx = base64FromBytes(message.tx !== undefined ? message.tx : new Uint8Array()));\n message.type !== undefined && (obj.type = checkTxTypeToJSON(message.type));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseRequestCheckTx);\n if (object.tx !== undefined && object.tx !== null) {\n message.tx = object.tx;\n }\n else {\n message.tx = new Uint8Array();\n }\n if (object.type !== undefined && object.type !== null) {\n message.type = object.type;\n }\n else {\n message.type = 0;\n }\n return message;\n },\n};\nconst baseRequestDeliverTx = {};\nexports.RequestDeliverTx = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.tx.length !== 0) {\n writer.uint32(10).bytes(message.tx);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestDeliverTx);\n message.tx = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.tx = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseRequestDeliverTx);\n message.tx = new Uint8Array();\n if (object.tx !== undefined && object.tx !== null) {\n message.tx = bytesFromBase64(object.tx);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.tx !== undefined &&\n (obj.tx = base64FromBytes(message.tx !== undefined ? message.tx : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseRequestDeliverTx);\n if (object.tx !== undefined && object.tx !== null) {\n message.tx = object.tx;\n }\n else {\n message.tx = new Uint8Array();\n }\n return message;\n },\n};\nconst baseRequestEndBlock = { height: long_1.default.ZERO };\nexports.RequestEndBlock = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.height.isZero()) {\n writer.uint32(8).int64(message.height);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestEndBlock);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.height = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseRequestEndBlock);\n if (object.height !== undefined && object.height !== null) {\n message.height = long_1.default.fromString(object.height);\n }\n else {\n message.height = long_1.default.ZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.height !== undefined && (obj.height = (message.height || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseRequestEndBlock);\n if (object.height !== undefined && object.height !== null) {\n message.height = object.height;\n }\n else {\n message.height = long_1.default.ZERO;\n }\n return message;\n },\n};\nconst baseRequestCommit = {};\nexports.RequestCommit = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestCommit);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseRequestCommit);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseRequestCommit);\n return message;\n },\n};\nconst baseRequestListSnapshots = {};\nexports.RequestListSnapshots = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestListSnapshots);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseRequestListSnapshots);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseRequestListSnapshots);\n return message;\n },\n};\nconst baseRequestOfferSnapshot = {};\nexports.RequestOfferSnapshot = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.snapshot !== undefined) {\n exports.Snapshot.encode(message.snapshot, writer.uint32(10).fork()).ldelim();\n }\n if (message.appHash.length !== 0) {\n writer.uint32(18).bytes(message.appHash);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestOfferSnapshot);\n message.appHash = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.snapshot = exports.Snapshot.decode(reader, reader.uint32());\n break;\n case 2:\n message.appHash = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseRequestOfferSnapshot);\n message.appHash = new Uint8Array();\n if (object.snapshot !== undefined && object.snapshot !== null) {\n message.snapshot = exports.Snapshot.fromJSON(object.snapshot);\n }\n else {\n message.snapshot = undefined;\n }\n if (object.appHash !== undefined && object.appHash !== null) {\n message.appHash = bytesFromBase64(object.appHash);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.snapshot !== undefined &&\n (obj.snapshot = message.snapshot ? exports.Snapshot.toJSON(message.snapshot) : undefined);\n message.appHash !== undefined &&\n (obj.appHash = base64FromBytes(message.appHash !== undefined ? message.appHash : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseRequestOfferSnapshot);\n if (object.snapshot !== undefined && object.snapshot !== null) {\n message.snapshot = exports.Snapshot.fromPartial(object.snapshot);\n }\n else {\n message.snapshot = undefined;\n }\n if (object.appHash !== undefined && object.appHash !== null) {\n message.appHash = object.appHash;\n }\n else {\n message.appHash = new Uint8Array();\n }\n return message;\n },\n};\nconst baseRequestLoadSnapshotChunk = { height: long_1.default.UZERO, format: 0, chunk: 0 };\nexports.RequestLoadSnapshotChunk = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.height.isZero()) {\n writer.uint32(8).uint64(message.height);\n }\n if (message.format !== 0) {\n writer.uint32(16).uint32(message.format);\n }\n if (message.chunk !== 0) {\n writer.uint32(24).uint32(message.chunk);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestLoadSnapshotChunk);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.height = reader.uint64();\n break;\n case 2:\n message.format = reader.uint32();\n break;\n case 3:\n message.chunk = reader.uint32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseRequestLoadSnapshotChunk);\n if (object.height !== undefined && object.height !== null) {\n message.height = long_1.default.fromString(object.height);\n }\n else {\n message.height = long_1.default.UZERO;\n }\n if (object.format !== undefined && object.format !== null) {\n message.format = Number(object.format);\n }\n else {\n message.format = 0;\n }\n if (object.chunk !== undefined && object.chunk !== null) {\n message.chunk = Number(object.chunk);\n }\n else {\n message.chunk = 0;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.height !== undefined && (obj.height = (message.height || long_1.default.UZERO).toString());\n message.format !== undefined && (obj.format = message.format);\n message.chunk !== undefined && (obj.chunk = message.chunk);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseRequestLoadSnapshotChunk);\n if (object.height !== undefined && object.height !== null) {\n message.height = object.height;\n }\n else {\n message.height = long_1.default.UZERO;\n }\n if (object.format !== undefined && object.format !== null) {\n message.format = object.format;\n }\n else {\n message.format = 0;\n }\n if (object.chunk !== undefined && object.chunk !== null) {\n message.chunk = object.chunk;\n }\n else {\n message.chunk = 0;\n }\n return message;\n },\n};\nconst baseRequestApplySnapshotChunk = { index: 0, sender: \"\" };\nexports.RequestApplySnapshotChunk = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.index !== 0) {\n writer.uint32(8).uint32(message.index);\n }\n if (message.chunk.length !== 0) {\n writer.uint32(18).bytes(message.chunk);\n }\n if (message.sender !== \"\") {\n writer.uint32(26).string(message.sender);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestApplySnapshotChunk);\n message.chunk = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.index = reader.uint32();\n break;\n case 2:\n message.chunk = reader.bytes();\n break;\n case 3:\n message.sender = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseRequestApplySnapshotChunk);\n message.chunk = new Uint8Array();\n if (object.index !== undefined && object.index !== null) {\n message.index = Number(object.index);\n }\n else {\n message.index = 0;\n }\n if (object.chunk !== undefined && object.chunk !== null) {\n message.chunk = bytesFromBase64(object.chunk);\n }\n if (object.sender !== undefined && object.sender !== null) {\n message.sender = String(object.sender);\n }\n else {\n message.sender = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.index !== undefined && (obj.index = message.index);\n message.chunk !== undefined &&\n (obj.chunk = base64FromBytes(message.chunk !== undefined ? message.chunk : new Uint8Array()));\n message.sender !== undefined && (obj.sender = message.sender);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseRequestApplySnapshotChunk);\n if (object.index !== undefined && object.index !== null) {\n message.index = object.index;\n }\n else {\n message.index = 0;\n }\n if (object.chunk !== undefined && object.chunk !== null) {\n message.chunk = object.chunk;\n }\n else {\n message.chunk = new Uint8Array();\n }\n if (object.sender !== undefined && object.sender !== null) {\n message.sender = object.sender;\n }\n else {\n message.sender = \"\";\n }\n return message;\n },\n};\nconst baseResponse = {};\nexports.Response = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.exception !== undefined) {\n exports.ResponseException.encode(message.exception, writer.uint32(10).fork()).ldelim();\n }\n if (message.echo !== undefined) {\n exports.ResponseEcho.encode(message.echo, writer.uint32(18).fork()).ldelim();\n }\n if (message.flush !== undefined) {\n exports.ResponseFlush.encode(message.flush, writer.uint32(26).fork()).ldelim();\n }\n if (message.info !== undefined) {\n exports.ResponseInfo.encode(message.info, writer.uint32(34).fork()).ldelim();\n }\n if (message.setOption !== undefined) {\n exports.ResponseSetOption.encode(message.setOption, writer.uint32(42).fork()).ldelim();\n }\n if (message.initChain !== undefined) {\n exports.ResponseInitChain.encode(message.initChain, writer.uint32(50).fork()).ldelim();\n }\n if (message.query !== undefined) {\n exports.ResponseQuery.encode(message.query, writer.uint32(58).fork()).ldelim();\n }\n if (message.beginBlock !== undefined) {\n exports.ResponseBeginBlock.encode(message.beginBlock, writer.uint32(66).fork()).ldelim();\n }\n if (message.checkTx !== undefined) {\n exports.ResponseCheckTx.encode(message.checkTx, writer.uint32(74).fork()).ldelim();\n }\n if (message.deliverTx !== undefined) {\n exports.ResponseDeliverTx.encode(message.deliverTx, writer.uint32(82).fork()).ldelim();\n }\n if (message.endBlock !== undefined) {\n exports.ResponseEndBlock.encode(message.endBlock, writer.uint32(90).fork()).ldelim();\n }\n if (message.commit !== undefined) {\n exports.ResponseCommit.encode(message.commit, writer.uint32(98).fork()).ldelim();\n }\n if (message.listSnapshots !== undefined) {\n exports.ResponseListSnapshots.encode(message.listSnapshots, writer.uint32(106).fork()).ldelim();\n }\n if (message.offerSnapshot !== undefined) {\n exports.ResponseOfferSnapshot.encode(message.offerSnapshot, writer.uint32(114).fork()).ldelim();\n }\n if (message.loadSnapshotChunk !== undefined) {\n exports.ResponseLoadSnapshotChunk.encode(message.loadSnapshotChunk, writer.uint32(122).fork()).ldelim();\n }\n if (message.applySnapshotChunk !== undefined) {\n exports.ResponseApplySnapshotChunk.encode(message.applySnapshotChunk, writer.uint32(130).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.exception = exports.ResponseException.decode(reader, reader.uint32());\n break;\n case 2:\n message.echo = exports.ResponseEcho.decode(reader, reader.uint32());\n break;\n case 3:\n message.flush = exports.ResponseFlush.decode(reader, reader.uint32());\n break;\n case 4:\n message.info = exports.ResponseInfo.decode(reader, reader.uint32());\n break;\n case 5:\n message.setOption = exports.ResponseSetOption.decode(reader, reader.uint32());\n break;\n case 6:\n message.initChain = exports.ResponseInitChain.decode(reader, reader.uint32());\n break;\n case 7:\n message.query = exports.ResponseQuery.decode(reader, reader.uint32());\n break;\n case 8:\n message.beginBlock = exports.ResponseBeginBlock.decode(reader, reader.uint32());\n break;\n case 9:\n message.checkTx = exports.ResponseCheckTx.decode(reader, reader.uint32());\n break;\n case 10:\n message.deliverTx = exports.ResponseDeliverTx.decode(reader, reader.uint32());\n break;\n case 11:\n message.endBlock = exports.ResponseEndBlock.decode(reader, reader.uint32());\n break;\n case 12:\n message.commit = exports.ResponseCommit.decode(reader, reader.uint32());\n break;\n case 13:\n message.listSnapshots = exports.ResponseListSnapshots.decode(reader, reader.uint32());\n break;\n case 14:\n message.offerSnapshot = exports.ResponseOfferSnapshot.decode(reader, reader.uint32());\n break;\n case 15:\n message.loadSnapshotChunk = exports.ResponseLoadSnapshotChunk.decode(reader, reader.uint32());\n break;\n case 16:\n message.applySnapshotChunk = exports.ResponseApplySnapshotChunk.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseResponse);\n if (object.exception !== undefined && object.exception !== null) {\n message.exception = exports.ResponseException.fromJSON(object.exception);\n }\n else {\n message.exception = undefined;\n }\n if (object.echo !== undefined && object.echo !== null) {\n message.echo = exports.ResponseEcho.fromJSON(object.echo);\n }\n else {\n message.echo = undefined;\n }\n if (object.flush !== undefined && object.flush !== null) {\n message.flush = exports.ResponseFlush.fromJSON(object.flush);\n }\n else {\n message.flush = undefined;\n }\n if (object.info !== undefined && object.info !== null) {\n message.info = exports.ResponseInfo.fromJSON(object.info);\n }\n else {\n message.info = undefined;\n }\n if (object.setOption !== undefined && object.setOption !== null) {\n message.setOption = exports.ResponseSetOption.fromJSON(object.setOption);\n }\n else {\n message.setOption = undefined;\n }\n if (object.initChain !== undefined && object.initChain !== null) {\n message.initChain = exports.ResponseInitChain.fromJSON(object.initChain);\n }\n else {\n message.initChain = undefined;\n }\n if (object.query !== undefined && object.query !== null) {\n message.query = exports.ResponseQuery.fromJSON(object.query);\n }\n else {\n message.query = undefined;\n }\n if (object.beginBlock !== undefined && object.beginBlock !== null) {\n message.beginBlock = exports.ResponseBeginBlock.fromJSON(object.beginBlock);\n }\n else {\n message.beginBlock = undefined;\n }\n if (object.checkTx !== undefined && object.checkTx !== null) {\n message.checkTx = exports.ResponseCheckTx.fromJSON(object.checkTx);\n }\n else {\n message.checkTx = undefined;\n }\n if (object.deliverTx !== undefined && object.deliverTx !== null) {\n message.deliverTx = exports.ResponseDeliverTx.fromJSON(object.deliverTx);\n }\n else {\n message.deliverTx = undefined;\n }\n if (object.endBlock !== undefined && object.endBlock !== null) {\n message.endBlock = exports.ResponseEndBlock.fromJSON(object.endBlock);\n }\n else {\n message.endBlock = undefined;\n }\n if (object.commit !== undefined && object.commit !== null) {\n message.commit = exports.ResponseCommit.fromJSON(object.commit);\n }\n else {\n message.commit = undefined;\n }\n if (object.listSnapshots !== undefined && object.listSnapshots !== null) {\n message.listSnapshots = exports.ResponseListSnapshots.fromJSON(object.listSnapshots);\n }\n else {\n message.listSnapshots = undefined;\n }\n if (object.offerSnapshot !== undefined && object.offerSnapshot !== null) {\n message.offerSnapshot = exports.ResponseOfferSnapshot.fromJSON(object.offerSnapshot);\n }\n else {\n message.offerSnapshot = undefined;\n }\n if (object.loadSnapshotChunk !== undefined && object.loadSnapshotChunk !== null) {\n message.loadSnapshotChunk = exports.ResponseLoadSnapshotChunk.fromJSON(object.loadSnapshotChunk);\n }\n else {\n message.loadSnapshotChunk = undefined;\n }\n if (object.applySnapshotChunk !== undefined && object.applySnapshotChunk !== null) {\n message.applySnapshotChunk = exports.ResponseApplySnapshotChunk.fromJSON(object.applySnapshotChunk);\n }\n else {\n message.applySnapshotChunk = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.exception !== undefined &&\n (obj.exception = message.exception ? exports.ResponseException.toJSON(message.exception) : undefined);\n message.echo !== undefined && (obj.echo = message.echo ? exports.ResponseEcho.toJSON(message.echo) : undefined);\n message.flush !== undefined &&\n (obj.flush = message.flush ? exports.ResponseFlush.toJSON(message.flush) : undefined);\n message.info !== undefined && (obj.info = message.info ? exports.ResponseInfo.toJSON(message.info) : undefined);\n message.setOption !== undefined &&\n (obj.setOption = message.setOption ? exports.ResponseSetOption.toJSON(message.setOption) : undefined);\n message.initChain !== undefined &&\n (obj.initChain = message.initChain ? exports.ResponseInitChain.toJSON(message.initChain) : undefined);\n message.query !== undefined &&\n (obj.query = message.query ? exports.ResponseQuery.toJSON(message.query) : undefined);\n message.beginBlock !== undefined &&\n (obj.beginBlock = message.beginBlock ? exports.ResponseBeginBlock.toJSON(message.beginBlock) : undefined);\n message.checkTx !== undefined &&\n (obj.checkTx = message.checkTx ? exports.ResponseCheckTx.toJSON(message.checkTx) : undefined);\n message.deliverTx !== undefined &&\n (obj.deliverTx = message.deliverTx ? exports.ResponseDeliverTx.toJSON(message.deliverTx) : undefined);\n message.endBlock !== undefined &&\n (obj.endBlock = message.endBlock ? exports.ResponseEndBlock.toJSON(message.endBlock) : undefined);\n message.commit !== undefined &&\n (obj.commit = message.commit ? exports.ResponseCommit.toJSON(message.commit) : undefined);\n message.listSnapshots !== undefined &&\n (obj.listSnapshots = message.listSnapshots\n ? exports.ResponseListSnapshots.toJSON(message.listSnapshots)\n : undefined);\n message.offerSnapshot !== undefined &&\n (obj.offerSnapshot = message.offerSnapshot\n ? exports.ResponseOfferSnapshot.toJSON(message.offerSnapshot)\n : undefined);\n message.loadSnapshotChunk !== undefined &&\n (obj.loadSnapshotChunk = message.loadSnapshotChunk\n ? exports.ResponseLoadSnapshotChunk.toJSON(message.loadSnapshotChunk)\n : undefined);\n message.applySnapshotChunk !== undefined &&\n (obj.applySnapshotChunk = message.applySnapshotChunk\n ? exports.ResponseApplySnapshotChunk.toJSON(message.applySnapshotChunk)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseResponse);\n if (object.exception !== undefined && object.exception !== null) {\n message.exception = exports.ResponseException.fromPartial(object.exception);\n }\n else {\n message.exception = undefined;\n }\n if (object.echo !== undefined && object.echo !== null) {\n message.echo = exports.ResponseEcho.fromPartial(object.echo);\n }\n else {\n message.echo = undefined;\n }\n if (object.flush !== undefined && object.flush !== null) {\n message.flush = exports.ResponseFlush.fromPartial(object.flush);\n }\n else {\n message.flush = undefined;\n }\n if (object.info !== undefined && object.info !== null) {\n message.info = exports.ResponseInfo.fromPartial(object.info);\n }\n else {\n message.info = undefined;\n }\n if (object.setOption !== undefined && object.setOption !== null) {\n message.setOption = exports.ResponseSetOption.fromPartial(object.setOption);\n }\n else {\n message.setOption = undefined;\n }\n if (object.initChain !== undefined && object.initChain !== null) {\n message.initChain = exports.ResponseInitChain.fromPartial(object.initChain);\n }\n else {\n message.initChain = undefined;\n }\n if (object.query !== undefined && object.query !== null) {\n message.query = exports.ResponseQuery.fromPartial(object.query);\n }\n else {\n message.query = undefined;\n }\n if (object.beginBlock !== undefined && object.beginBlock !== null) {\n message.beginBlock = exports.ResponseBeginBlock.fromPartial(object.beginBlock);\n }\n else {\n message.beginBlock = undefined;\n }\n if (object.checkTx !== undefined && object.checkTx !== null) {\n message.checkTx = exports.ResponseCheckTx.fromPartial(object.checkTx);\n }\n else {\n message.checkTx = undefined;\n }\n if (object.deliverTx !== undefined && object.deliverTx !== null) {\n message.deliverTx = exports.ResponseDeliverTx.fromPartial(object.deliverTx);\n }\n else {\n message.deliverTx = undefined;\n }\n if (object.endBlock !== undefined && object.endBlock !== null) {\n message.endBlock = exports.ResponseEndBlock.fromPartial(object.endBlock);\n }\n else {\n message.endBlock = undefined;\n }\n if (object.commit !== undefined && object.commit !== null) {\n message.commit = exports.ResponseCommit.fromPartial(object.commit);\n }\n else {\n message.commit = undefined;\n }\n if (object.listSnapshots !== undefined && object.listSnapshots !== null) {\n message.listSnapshots = exports.ResponseListSnapshots.fromPartial(object.listSnapshots);\n }\n else {\n message.listSnapshots = undefined;\n }\n if (object.offerSnapshot !== undefined && object.offerSnapshot !== null) {\n message.offerSnapshot = exports.ResponseOfferSnapshot.fromPartial(object.offerSnapshot);\n }\n else {\n message.offerSnapshot = undefined;\n }\n if (object.loadSnapshotChunk !== undefined && object.loadSnapshotChunk !== null) {\n message.loadSnapshotChunk = exports.ResponseLoadSnapshotChunk.fromPartial(object.loadSnapshotChunk);\n }\n else {\n message.loadSnapshotChunk = undefined;\n }\n if (object.applySnapshotChunk !== undefined && object.applySnapshotChunk !== null) {\n message.applySnapshotChunk = exports.ResponseApplySnapshotChunk.fromPartial(object.applySnapshotChunk);\n }\n else {\n message.applySnapshotChunk = undefined;\n }\n return message;\n },\n};\nconst baseResponseException = { error: \"\" };\nexports.ResponseException = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.error !== \"\") {\n writer.uint32(10).string(message.error);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseException);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.error = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseResponseException);\n if (object.error !== undefined && object.error !== null) {\n message.error = String(object.error);\n }\n else {\n message.error = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.error !== undefined && (obj.error = message.error);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseResponseException);\n if (object.error !== undefined && object.error !== null) {\n message.error = object.error;\n }\n else {\n message.error = \"\";\n }\n return message;\n },\n};\nconst baseResponseEcho = { message: \"\" };\nexports.ResponseEcho = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.message !== \"\") {\n writer.uint32(10).string(message.message);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseEcho);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.message = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseResponseEcho);\n if (object.message !== undefined && object.message !== null) {\n message.message = String(object.message);\n }\n else {\n message.message = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.message !== undefined && (obj.message = message.message);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseResponseEcho);\n if (object.message !== undefined && object.message !== null) {\n message.message = object.message;\n }\n else {\n message.message = \"\";\n }\n return message;\n },\n};\nconst baseResponseFlush = {};\nexports.ResponseFlush = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseFlush);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseResponseFlush);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseResponseFlush);\n return message;\n },\n};\nconst baseResponseInfo = {\n data: \"\",\n version: \"\",\n appVersion: long_1.default.UZERO,\n lastBlockHeight: long_1.default.ZERO,\n};\nexports.ResponseInfo = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.data !== \"\") {\n writer.uint32(10).string(message.data);\n }\n if (message.version !== \"\") {\n writer.uint32(18).string(message.version);\n }\n if (!message.appVersion.isZero()) {\n writer.uint32(24).uint64(message.appVersion);\n }\n if (!message.lastBlockHeight.isZero()) {\n writer.uint32(32).int64(message.lastBlockHeight);\n }\n if (message.lastBlockAppHash.length !== 0) {\n writer.uint32(42).bytes(message.lastBlockAppHash);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseInfo);\n message.lastBlockAppHash = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.data = reader.string();\n break;\n case 2:\n message.version = reader.string();\n break;\n case 3:\n message.appVersion = reader.uint64();\n break;\n case 4:\n message.lastBlockHeight = reader.int64();\n break;\n case 5:\n message.lastBlockAppHash = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseResponseInfo);\n message.lastBlockAppHash = new Uint8Array();\n if (object.data !== undefined && object.data !== null) {\n message.data = String(object.data);\n }\n else {\n message.data = \"\";\n }\n if (object.version !== undefined && object.version !== null) {\n message.version = String(object.version);\n }\n else {\n message.version = \"\";\n }\n if (object.appVersion !== undefined && object.appVersion !== null) {\n message.appVersion = long_1.default.fromString(object.appVersion);\n }\n else {\n message.appVersion = long_1.default.UZERO;\n }\n if (object.lastBlockHeight !== undefined && object.lastBlockHeight !== null) {\n message.lastBlockHeight = long_1.default.fromString(object.lastBlockHeight);\n }\n else {\n message.lastBlockHeight = long_1.default.ZERO;\n }\n if (object.lastBlockAppHash !== undefined && object.lastBlockAppHash !== null) {\n message.lastBlockAppHash = bytesFromBase64(object.lastBlockAppHash);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.data !== undefined && (obj.data = message.data);\n message.version !== undefined && (obj.version = message.version);\n message.appVersion !== undefined && (obj.appVersion = (message.appVersion || long_1.default.UZERO).toString());\n message.lastBlockHeight !== undefined &&\n (obj.lastBlockHeight = (message.lastBlockHeight || long_1.default.ZERO).toString());\n message.lastBlockAppHash !== undefined &&\n (obj.lastBlockAppHash = base64FromBytes(message.lastBlockAppHash !== undefined ? message.lastBlockAppHash : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseResponseInfo);\n if (object.data !== undefined && object.data !== null) {\n message.data = object.data;\n }\n else {\n message.data = \"\";\n }\n if (object.version !== undefined && object.version !== null) {\n message.version = object.version;\n }\n else {\n message.version = \"\";\n }\n if (object.appVersion !== undefined && object.appVersion !== null) {\n message.appVersion = object.appVersion;\n }\n else {\n message.appVersion = long_1.default.UZERO;\n }\n if (object.lastBlockHeight !== undefined && object.lastBlockHeight !== null) {\n message.lastBlockHeight = object.lastBlockHeight;\n }\n else {\n message.lastBlockHeight = long_1.default.ZERO;\n }\n if (object.lastBlockAppHash !== undefined && object.lastBlockAppHash !== null) {\n message.lastBlockAppHash = object.lastBlockAppHash;\n }\n else {\n message.lastBlockAppHash = new Uint8Array();\n }\n return message;\n },\n};\nconst baseResponseSetOption = { code: 0, log: \"\", info: \"\" };\nexports.ResponseSetOption = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.code !== 0) {\n writer.uint32(8).uint32(message.code);\n }\n if (message.log !== \"\") {\n writer.uint32(26).string(message.log);\n }\n if (message.info !== \"\") {\n writer.uint32(34).string(message.info);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseSetOption);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.code = reader.uint32();\n break;\n case 3:\n message.log = reader.string();\n break;\n case 4:\n message.info = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseResponseSetOption);\n if (object.code !== undefined && object.code !== null) {\n message.code = Number(object.code);\n }\n else {\n message.code = 0;\n }\n if (object.log !== undefined && object.log !== null) {\n message.log = String(object.log);\n }\n else {\n message.log = \"\";\n }\n if (object.info !== undefined && object.info !== null) {\n message.info = String(object.info);\n }\n else {\n message.info = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.code !== undefined && (obj.code = message.code);\n message.log !== undefined && (obj.log = message.log);\n message.info !== undefined && (obj.info = message.info);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseResponseSetOption);\n if (object.code !== undefined && object.code !== null) {\n message.code = object.code;\n }\n else {\n message.code = 0;\n }\n if (object.log !== undefined && object.log !== null) {\n message.log = object.log;\n }\n else {\n message.log = \"\";\n }\n if (object.info !== undefined && object.info !== null) {\n message.info = object.info;\n }\n else {\n message.info = \"\";\n }\n return message;\n },\n};\nconst baseResponseInitChain = {};\nexports.ResponseInitChain = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.consensusParams !== undefined) {\n exports.ConsensusParams.encode(message.consensusParams, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.validators) {\n exports.ValidatorUpdate.encode(v, writer.uint32(18).fork()).ldelim();\n }\n if (message.appHash.length !== 0) {\n writer.uint32(26).bytes(message.appHash);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseInitChain);\n message.validators = [];\n message.appHash = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.consensusParams = exports.ConsensusParams.decode(reader, reader.uint32());\n break;\n case 2:\n message.validators.push(exports.ValidatorUpdate.decode(reader, reader.uint32()));\n break;\n case 3:\n message.appHash = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseResponseInitChain);\n message.validators = [];\n message.appHash = new Uint8Array();\n if (object.consensusParams !== undefined && object.consensusParams !== null) {\n message.consensusParams = exports.ConsensusParams.fromJSON(object.consensusParams);\n }\n else {\n message.consensusParams = undefined;\n }\n if (object.validators !== undefined && object.validators !== null) {\n for (const e of object.validators) {\n message.validators.push(exports.ValidatorUpdate.fromJSON(e));\n }\n }\n if (object.appHash !== undefined && object.appHash !== null) {\n message.appHash = bytesFromBase64(object.appHash);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.consensusParams !== undefined &&\n (obj.consensusParams = message.consensusParams\n ? exports.ConsensusParams.toJSON(message.consensusParams)\n : undefined);\n if (message.validators) {\n obj.validators = message.validators.map((e) => (e ? exports.ValidatorUpdate.toJSON(e) : undefined));\n }\n else {\n obj.validators = [];\n }\n message.appHash !== undefined &&\n (obj.appHash = base64FromBytes(message.appHash !== undefined ? message.appHash : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseResponseInitChain);\n message.validators = [];\n if (object.consensusParams !== undefined && object.consensusParams !== null) {\n message.consensusParams = exports.ConsensusParams.fromPartial(object.consensusParams);\n }\n else {\n message.consensusParams = undefined;\n }\n if (object.validators !== undefined && object.validators !== null) {\n for (const e of object.validators) {\n message.validators.push(exports.ValidatorUpdate.fromPartial(e));\n }\n }\n if (object.appHash !== undefined && object.appHash !== null) {\n message.appHash = object.appHash;\n }\n else {\n message.appHash = new Uint8Array();\n }\n return message;\n },\n};\nconst baseResponseQuery = {\n code: 0,\n log: \"\",\n info: \"\",\n index: long_1.default.ZERO,\n height: long_1.default.ZERO,\n codespace: \"\",\n};\nexports.ResponseQuery = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.code !== 0) {\n writer.uint32(8).uint32(message.code);\n }\n if (message.log !== \"\") {\n writer.uint32(26).string(message.log);\n }\n if (message.info !== \"\") {\n writer.uint32(34).string(message.info);\n }\n if (!message.index.isZero()) {\n writer.uint32(40).int64(message.index);\n }\n if (message.key.length !== 0) {\n writer.uint32(50).bytes(message.key);\n }\n if (message.value.length !== 0) {\n writer.uint32(58).bytes(message.value);\n }\n if (message.proofOps !== undefined) {\n proof_1.ProofOps.encode(message.proofOps, writer.uint32(66).fork()).ldelim();\n }\n if (!message.height.isZero()) {\n writer.uint32(72).int64(message.height);\n }\n if (message.codespace !== \"\") {\n writer.uint32(82).string(message.codespace);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseQuery);\n message.key = new Uint8Array();\n message.value = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.code = reader.uint32();\n break;\n case 3:\n message.log = reader.string();\n break;\n case 4:\n message.info = reader.string();\n break;\n case 5:\n message.index = reader.int64();\n break;\n case 6:\n message.key = reader.bytes();\n break;\n case 7:\n message.value = reader.bytes();\n break;\n case 8:\n message.proofOps = proof_1.ProofOps.decode(reader, reader.uint32());\n break;\n case 9:\n message.height = reader.int64();\n break;\n case 10:\n message.codespace = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseResponseQuery);\n message.key = new Uint8Array();\n message.value = new Uint8Array();\n if (object.code !== undefined && object.code !== null) {\n message.code = Number(object.code);\n }\n else {\n message.code = 0;\n }\n if (object.log !== undefined && object.log !== null) {\n message.log = String(object.log);\n }\n else {\n message.log = \"\";\n }\n if (object.info !== undefined && object.info !== null) {\n message.info = String(object.info);\n }\n else {\n message.info = \"\";\n }\n if (object.index !== undefined && object.index !== null) {\n message.index = long_1.default.fromString(object.index);\n }\n else {\n message.index = long_1.default.ZERO;\n }\n if (object.key !== undefined && object.key !== null) {\n message.key = bytesFromBase64(object.key);\n }\n if (object.value !== undefined && object.value !== null) {\n message.value = bytesFromBase64(object.value);\n }\n if (object.proofOps !== undefined && object.proofOps !== null) {\n message.proofOps = proof_1.ProofOps.fromJSON(object.proofOps);\n }\n else {\n message.proofOps = undefined;\n }\n if (object.height !== undefined && object.height !== null) {\n message.height = long_1.default.fromString(object.height);\n }\n else {\n message.height = long_1.default.ZERO;\n }\n if (object.codespace !== undefined && object.codespace !== null) {\n message.codespace = String(object.codespace);\n }\n else {\n message.codespace = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.code !== undefined && (obj.code = message.code);\n message.log !== undefined && (obj.log = message.log);\n message.info !== undefined && (obj.info = message.info);\n message.index !== undefined && (obj.index = (message.index || long_1.default.ZERO).toString());\n message.key !== undefined &&\n (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));\n message.value !== undefined &&\n (obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array()));\n message.proofOps !== undefined &&\n (obj.proofOps = message.proofOps ? proof_1.ProofOps.toJSON(message.proofOps) : undefined);\n message.height !== undefined && (obj.height = (message.height || long_1.default.ZERO).toString());\n message.codespace !== undefined && (obj.codespace = message.codespace);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseResponseQuery);\n if (object.code !== undefined && object.code !== null) {\n message.code = object.code;\n }\n else {\n message.code = 0;\n }\n if (object.log !== undefined && object.log !== null) {\n message.log = object.log;\n }\n else {\n message.log = \"\";\n }\n if (object.info !== undefined && object.info !== null) {\n message.info = object.info;\n }\n else {\n message.info = \"\";\n }\n if (object.index !== undefined && object.index !== null) {\n message.index = object.index;\n }\n else {\n message.index = long_1.default.ZERO;\n }\n if (object.key !== undefined && object.key !== null) {\n message.key = object.key;\n }\n else {\n message.key = new Uint8Array();\n }\n if (object.value !== undefined && object.value !== null) {\n message.value = object.value;\n }\n else {\n message.value = new Uint8Array();\n }\n if (object.proofOps !== undefined && object.proofOps !== null) {\n message.proofOps = proof_1.ProofOps.fromPartial(object.proofOps);\n }\n else {\n message.proofOps = undefined;\n }\n if (object.height !== undefined && object.height !== null) {\n message.height = object.height;\n }\n else {\n message.height = long_1.default.ZERO;\n }\n if (object.codespace !== undefined && object.codespace !== null) {\n message.codespace = object.codespace;\n }\n else {\n message.codespace = \"\";\n }\n return message;\n },\n};\nconst baseResponseBeginBlock = {};\nexports.ResponseBeginBlock = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.events) {\n exports.Event.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseBeginBlock);\n message.events = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.events.push(exports.Event.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseResponseBeginBlock);\n message.events = [];\n if (object.events !== undefined && object.events !== null) {\n for (const e of object.events) {\n message.events.push(exports.Event.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.events) {\n obj.events = message.events.map((e) => (e ? exports.Event.toJSON(e) : undefined));\n }\n else {\n obj.events = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseResponseBeginBlock);\n message.events = [];\n if (object.events !== undefined && object.events !== null) {\n for (const e of object.events) {\n message.events.push(exports.Event.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseResponseCheckTx = {\n code: 0,\n log: \"\",\n info: \"\",\n gasWanted: long_1.default.ZERO,\n gasUsed: long_1.default.ZERO,\n codespace: \"\",\n};\nexports.ResponseCheckTx = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.code !== 0) {\n writer.uint32(8).uint32(message.code);\n }\n if (message.data.length !== 0) {\n writer.uint32(18).bytes(message.data);\n }\n if (message.log !== \"\") {\n writer.uint32(26).string(message.log);\n }\n if (message.info !== \"\") {\n writer.uint32(34).string(message.info);\n }\n if (!message.gasWanted.isZero()) {\n writer.uint32(40).int64(message.gasWanted);\n }\n if (!message.gasUsed.isZero()) {\n writer.uint32(48).int64(message.gasUsed);\n }\n for (const v of message.events) {\n exports.Event.encode(v, writer.uint32(58).fork()).ldelim();\n }\n if (message.codespace !== \"\") {\n writer.uint32(66).string(message.codespace);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseCheckTx);\n message.events = [];\n message.data = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.code = reader.uint32();\n break;\n case 2:\n message.data = reader.bytes();\n break;\n case 3:\n message.log = reader.string();\n break;\n case 4:\n message.info = reader.string();\n break;\n case 5:\n message.gasWanted = reader.int64();\n break;\n case 6:\n message.gasUsed = reader.int64();\n break;\n case 7:\n message.events.push(exports.Event.decode(reader, reader.uint32()));\n break;\n case 8:\n message.codespace = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseResponseCheckTx);\n message.events = [];\n message.data = new Uint8Array();\n if (object.code !== undefined && object.code !== null) {\n message.code = Number(object.code);\n }\n else {\n message.code = 0;\n }\n if (object.data !== undefined && object.data !== null) {\n message.data = bytesFromBase64(object.data);\n }\n if (object.log !== undefined && object.log !== null) {\n message.log = String(object.log);\n }\n else {\n message.log = \"\";\n }\n if (object.info !== undefined && object.info !== null) {\n message.info = String(object.info);\n }\n else {\n message.info = \"\";\n }\n if (object.gasWanted !== undefined && object.gasWanted !== null) {\n message.gasWanted = long_1.default.fromString(object.gasWanted);\n }\n else {\n message.gasWanted = long_1.default.ZERO;\n }\n if (object.gasUsed !== undefined && object.gasUsed !== null) {\n message.gasUsed = long_1.default.fromString(object.gasUsed);\n }\n else {\n message.gasUsed = long_1.default.ZERO;\n }\n if (object.events !== undefined && object.events !== null) {\n for (const e of object.events) {\n message.events.push(exports.Event.fromJSON(e));\n }\n }\n if (object.codespace !== undefined && object.codespace !== null) {\n message.codespace = String(object.codespace);\n }\n else {\n message.codespace = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.code !== undefined && (obj.code = message.code);\n message.data !== undefined &&\n (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));\n message.log !== undefined && (obj.log = message.log);\n message.info !== undefined && (obj.info = message.info);\n message.gasWanted !== undefined && (obj.gasWanted = (message.gasWanted || long_1.default.ZERO).toString());\n message.gasUsed !== undefined && (obj.gasUsed = (message.gasUsed || long_1.default.ZERO).toString());\n if (message.events) {\n obj.events = message.events.map((e) => (e ? exports.Event.toJSON(e) : undefined));\n }\n else {\n obj.events = [];\n }\n message.codespace !== undefined && (obj.codespace = message.codespace);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseResponseCheckTx);\n message.events = [];\n if (object.code !== undefined && object.code !== null) {\n message.code = object.code;\n }\n else {\n message.code = 0;\n }\n if (object.data !== undefined && object.data !== null) {\n message.data = object.data;\n }\n else {\n message.data = new Uint8Array();\n }\n if (object.log !== undefined && object.log !== null) {\n message.log = object.log;\n }\n else {\n message.log = \"\";\n }\n if (object.info !== undefined && object.info !== null) {\n message.info = object.info;\n }\n else {\n message.info = \"\";\n }\n if (object.gasWanted !== undefined && object.gasWanted !== null) {\n message.gasWanted = object.gasWanted;\n }\n else {\n message.gasWanted = long_1.default.ZERO;\n }\n if (object.gasUsed !== undefined && object.gasUsed !== null) {\n message.gasUsed = object.gasUsed;\n }\n else {\n message.gasUsed = long_1.default.ZERO;\n }\n if (object.events !== undefined && object.events !== null) {\n for (const e of object.events) {\n message.events.push(exports.Event.fromPartial(e));\n }\n }\n if (object.codespace !== undefined && object.codespace !== null) {\n message.codespace = object.codespace;\n }\n else {\n message.codespace = \"\";\n }\n return message;\n },\n};\nconst baseResponseDeliverTx = {\n code: 0,\n log: \"\",\n info: \"\",\n gasWanted: long_1.default.ZERO,\n gasUsed: long_1.default.ZERO,\n codespace: \"\",\n};\nexports.ResponseDeliverTx = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.code !== 0) {\n writer.uint32(8).uint32(message.code);\n }\n if (message.data.length !== 0) {\n writer.uint32(18).bytes(message.data);\n }\n if (message.log !== \"\") {\n writer.uint32(26).string(message.log);\n }\n if (message.info !== \"\") {\n writer.uint32(34).string(message.info);\n }\n if (!message.gasWanted.isZero()) {\n writer.uint32(40).int64(message.gasWanted);\n }\n if (!message.gasUsed.isZero()) {\n writer.uint32(48).int64(message.gasUsed);\n }\n for (const v of message.events) {\n exports.Event.encode(v, writer.uint32(58).fork()).ldelim();\n }\n if (message.codespace !== \"\") {\n writer.uint32(66).string(message.codespace);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseDeliverTx);\n message.events = [];\n message.data = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.code = reader.uint32();\n break;\n case 2:\n message.data = reader.bytes();\n break;\n case 3:\n message.log = reader.string();\n break;\n case 4:\n message.info = reader.string();\n break;\n case 5:\n message.gasWanted = reader.int64();\n break;\n case 6:\n message.gasUsed = reader.int64();\n break;\n case 7:\n message.events.push(exports.Event.decode(reader, reader.uint32()));\n break;\n case 8:\n message.codespace = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseResponseDeliverTx);\n message.events = [];\n message.data = new Uint8Array();\n if (object.code !== undefined && object.code !== null) {\n message.code = Number(object.code);\n }\n else {\n message.code = 0;\n }\n if (object.data !== undefined && object.data !== null) {\n message.data = bytesFromBase64(object.data);\n }\n if (object.log !== undefined && object.log !== null) {\n message.log = String(object.log);\n }\n else {\n message.log = \"\";\n }\n if (object.info !== undefined && object.info !== null) {\n message.info = String(object.info);\n }\n else {\n message.info = \"\";\n }\n if (object.gasWanted !== undefined && object.gasWanted !== null) {\n message.gasWanted = long_1.default.fromString(object.gasWanted);\n }\n else {\n message.gasWanted = long_1.default.ZERO;\n }\n if (object.gasUsed !== undefined && object.gasUsed !== null) {\n message.gasUsed = long_1.default.fromString(object.gasUsed);\n }\n else {\n message.gasUsed = long_1.default.ZERO;\n }\n if (object.events !== undefined && object.events !== null) {\n for (const e of object.events) {\n message.events.push(exports.Event.fromJSON(e));\n }\n }\n if (object.codespace !== undefined && object.codespace !== null) {\n message.codespace = String(object.codespace);\n }\n else {\n message.codespace = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.code !== undefined && (obj.code = message.code);\n message.data !== undefined &&\n (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));\n message.log !== undefined && (obj.log = message.log);\n message.info !== undefined && (obj.info = message.info);\n message.gasWanted !== undefined && (obj.gasWanted = (message.gasWanted || long_1.default.ZERO).toString());\n message.gasUsed !== undefined && (obj.gasUsed = (message.gasUsed || long_1.default.ZERO).toString());\n if (message.events) {\n obj.events = message.events.map((e) => (e ? exports.Event.toJSON(e) : undefined));\n }\n else {\n obj.events = [];\n }\n message.codespace !== undefined && (obj.codespace = message.codespace);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseResponseDeliverTx);\n message.events = [];\n if (object.code !== undefined && object.code !== null) {\n message.code = object.code;\n }\n else {\n message.code = 0;\n }\n if (object.data !== undefined && object.data !== null) {\n message.data = object.data;\n }\n else {\n message.data = new Uint8Array();\n }\n if (object.log !== undefined && object.log !== null) {\n message.log = object.log;\n }\n else {\n message.log = \"\";\n }\n if (object.info !== undefined && object.info !== null) {\n message.info = object.info;\n }\n else {\n message.info = \"\";\n }\n if (object.gasWanted !== undefined && object.gasWanted !== null) {\n message.gasWanted = object.gasWanted;\n }\n else {\n message.gasWanted = long_1.default.ZERO;\n }\n if (object.gasUsed !== undefined && object.gasUsed !== null) {\n message.gasUsed = object.gasUsed;\n }\n else {\n message.gasUsed = long_1.default.ZERO;\n }\n if (object.events !== undefined && object.events !== null) {\n for (const e of object.events) {\n message.events.push(exports.Event.fromPartial(e));\n }\n }\n if (object.codespace !== undefined && object.codespace !== null) {\n message.codespace = object.codespace;\n }\n else {\n message.codespace = \"\";\n }\n return message;\n },\n};\nconst baseResponseEndBlock = {};\nexports.ResponseEndBlock = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.validatorUpdates) {\n exports.ValidatorUpdate.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.consensusParamUpdates !== undefined) {\n exports.ConsensusParams.encode(message.consensusParamUpdates, writer.uint32(18).fork()).ldelim();\n }\n for (const v of message.events) {\n exports.Event.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseEndBlock);\n message.validatorUpdates = [];\n message.events = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validatorUpdates.push(exports.ValidatorUpdate.decode(reader, reader.uint32()));\n break;\n case 2:\n message.consensusParamUpdates = exports.ConsensusParams.decode(reader, reader.uint32());\n break;\n case 3:\n message.events.push(exports.Event.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseResponseEndBlock);\n message.validatorUpdates = [];\n message.events = [];\n if (object.validatorUpdates !== undefined && object.validatorUpdates !== null) {\n for (const e of object.validatorUpdates) {\n message.validatorUpdates.push(exports.ValidatorUpdate.fromJSON(e));\n }\n }\n if (object.consensusParamUpdates !== undefined && object.consensusParamUpdates !== null) {\n message.consensusParamUpdates = exports.ConsensusParams.fromJSON(object.consensusParamUpdates);\n }\n else {\n message.consensusParamUpdates = undefined;\n }\n if (object.events !== undefined && object.events !== null) {\n for (const e of object.events) {\n message.events.push(exports.Event.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.validatorUpdates) {\n obj.validatorUpdates = message.validatorUpdates.map((e) => (e ? exports.ValidatorUpdate.toJSON(e) : undefined));\n }\n else {\n obj.validatorUpdates = [];\n }\n message.consensusParamUpdates !== undefined &&\n (obj.consensusParamUpdates = message.consensusParamUpdates\n ? exports.ConsensusParams.toJSON(message.consensusParamUpdates)\n : undefined);\n if (message.events) {\n obj.events = message.events.map((e) => (e ? exports.Event.toJSON(e) : undefined));\n }\n else {\n obj.events = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseResponseEndBlock);\n message.validatorUpdates = [];\n message.events = [];\n if (object.validatorUpdates !== undefined && object.validatorUpdates !== null) {\n for (const e of object.validatorUpdates) {\n message.validatorUpdates.push(exports.ValidatorUpdate.fromPartial(e));\n }\n }\n if (object.consensusParamUpdates !== undefined && object.consensusParamUpdates !== null) {\n message.consensusParamUpdates = exports.ConsensusParams.fromPartial(object.consensusParamUpdates);\n }\n else {\n message.consensusParamUpdates = undefined;\n }\n if (object.events !== undefined && object.events !== null) {\n for (const e of object.events) {\n message.events.push(exports.Event.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseResponseCommit = { retainHeight: long_1.default.ZERO };\nexports.ResponseCommit = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.data.length !== 0) {\n writer.uint32(18).bytes(message.data);\n }\n if (!message.retainHeight.isZero()) {\n writer.uint32(24).int64(message.retainHeight);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseCommit);\n message.data = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 2:\n message.data = reader.bytes();\n break;\n case 3:\n message.retainHeight = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseResponseCommit);\n message.data = new Uint8Array();\n if (object.data !== undefined && object.data !== null) {\n message.data = bytesFromBase64(object.data);\n }\n if (object.retainHeight !== undefined && object.retainHeight !== null) {\n message.retainHeight = long_1.default.fromString(object.retainHeight);\n }\n else {\n message.retainHeight = long_1.default.ZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.data !== undefined &&\n (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));\n message.retainHeight !== undefined && (obj.retainHeight = (message.retainHeight || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseResponseCommit);\n if (object.data !== undefined && object.data !== null) {\n message.data = object.data;\n }\n else {\n message.data = new Uint8Array();\n }\n if (object.retainHeight !== undefined && object.retainHeight !== null) {\n message.retainHeight = object.retainHeight;\n }\n else {\n message.retainHeight = long_1.default.ZERO;\n }\n return message;\n },\n};\nconst baseResponseListSnapshots = {};\nexports.ResponseListSnapshots = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.snapshots) {\n exports.Snapshot.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseListSnapshots);\n message.snapshots = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.snapshots.push(exports.Snapshot.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseResponseListSnapshots);\n message.snapshots = [];\n if (object.snapshots !== undefined && object.snapshots !== null) {\n for (const e of object.snapshots) {\n message.snapshots.push(exports.Snapshot.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.snapshots) {\n obj.snapshots = message.snapshots.map((e) => (e ? exports.Snapshot.toJSON(e) : undefined));\n }\n else {\n obj.snapshots = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseResponseListSnapshots);\n message.snapshots = [];\n if (object.snapshots !== undefined && object.snapshots !== null) {\n for (const e of object.snapshots) {\n message.snapshots.push(exports.Snapshot.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseResponseOfferSnapshot = { result: 0 };\nexports.ResponseOfferSnapshot = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.result !== 0) {\n writer.uint32(8).int32(message.result);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseOfferSnapshot);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.result = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseResponseOfferSnapshot);\n if (object.result !== undefined && object.result !== null) {\n message.result = responseOfferSnapshot_ResultFromJSON(object.result);\n }\n else {\n message.result = 0;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.result !== undefined && (obj.result = responseOfferSnapshot_ResultToJSON(message.result));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseResponseOfferSnapshot);\n if (object.result !== undefined && object.result !== null) {\n message.result = object.result;\n }\n else {\n message.result = 0;\n }\n return message;\n },\n};\nconst baseResponseLoadSnapshotChunk = {};\nexports.ResponseLoadSnapshotChunk = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.chunk.length !== 0) {\n writer.uint32(10).bytes(message.chunk);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseLoadSnapshotChunk);\n message.chunk = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.chunk = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseResponseLoadSnapshotChunk);\n message.chunk = new Uint8Array();\n if (object.chunk !== undefined && object.chunk !== null) {\n message.chunk = bytesFromBase64(object.chunk);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.chunk !== undefined &&\n (obj.chunk = base64FromBytes(message.chunk !== undefined ? message.chunk : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseResponseLoadSnapshotChunk);\n if (object.chunk !== undefined && object.chunk !== null) {\n message.chunk = object.chunk;\n }\n else {\n message.chunk = new Uint8Array();\n }\n return message;\n },\n};\nconst baseResponseApplySnapshotChunk = { result: 0, refetchChunks: 0, rejectSenders: \"\" };\nexports.ResponseApplySnapshotChunk = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.result !== 0) {\n writer.uint32(8).int32(message.result);\n }\n writer.uint32(18).fork();\n for (const v of message.refetchChunks) {\n writer.uint32(v);\n }\n writer.ldelim();\n for (const v of message.rejectSenders) {\n writer.uint32(26).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseApplySnapshotChunk);\n message.refetchChunks = [];\n message.rejectSenders = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.result = reader.int32();\n break;\n case 2:\n if ((tag & 7) === 2) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.refetchChunks.push(reader.uint32());\n }\n }\n else {\n message.refetchChunks.push(reader.uint32());\n }\n break;\n case 3:\n message.rejectSenders.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseResponseApplySnapshotChunk);\n message.refetchChunks = [];\n message.rejectSenders = [];\n if (object.result !== undefined && object.result !== null) {\n message.result = responseApplySnapshotChunk_ResultFromJSON(object.result);\n }\n else {\n message.result = 0;\n }\n if (object.refetchChunks !== undefined && object.refetchChunks !== null) {\n for (const e of object.refetchChunks) {\n message.refetchChunks.push(Number(e));\n }\n }\n if (object.rejectSenders !== undefined && object.rejectSenders !== null) {\n for (const e of object.rejectSenders) {\n message.rejectSenders.push(String(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.result !== undefined && (obj.result = responseApplySnapshotChunk_ResultToJSON(message.result));\n if (message.refetchChunks) {\n obj.refetchChunks = message.refetchChunks.map((e) => e);\n }\n else {\n obj.refetchChunks = [];\n }\n if (message.rejectSenders) {\n obj.rejectSenders = message.rejectSenders.map((e) => e);\n }\n else {\n obj.rejectSenders = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseResponseApplySnapshotChunk);\n message.refetchChunks = [];\n message.rejectSenders = [];\n if (object.result !== undefined && object.result !== null) {\n message.result = object.result;\n }\n else {\n message.result = 0;\n }\n if (object.refetchChunks !== undefined && object.refetchChunks !== null) {\n for (const e of object.refetchChunks) {\n message.refetchChunks.push(e);\n }\n }\n if (object.rejectSenders !== undefined && object.rejectSenders !== null) {\n for (const e of object.rejectSenders) {\n message.rejectSenders.push(e);\n }\n }\n return message;\n },\n};\nconst baseConsensusParams = {};\nexports.ConsensusParams = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.block !== undefined) {\n exports.BlockParams.encode(message.block, writer.uint32(10).fork()).ldelim();\n }\n if (message.evidence !== undefined) {\n params_1.EvidenceParams.encode(message.evidence, writer.uint32(18).fork()).ldelim();\n }\n if (message.validator !== undefined) {\n params_1.ValidatorParams.encode(message.validator, writer.uint32(26).fork()).ldelim();\n }\n if (message.version !== undefined) {\n params_1.VersionParams.encode(message.version, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseConsensusParams);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.block = exports.BlockParams.decode(reader, reader.uint32());\n break;\n case 2:\n message.evidence = params_1.EvidenceParams.decode(reader, reader.uint32());\n break;\n case 3:\n message.validator = params_1.ValidatorParams.decode(reader, reader.uint32());\n break;\n case 4:\n message.version = params_1.VersionParams.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseConsensusParams);\n if (object.block !== undefined && object.block !== null) {\n message.block = exports.BlockParams.fromJSON(object.block);\n }\n else {\n message.block = undefined;\n }\n if (object.evidence !== undefined && object.evidence !== null) {\n message.evidence = params_1.EvidenceParams.fromJSON(object.evidence);\n }\n else {\n message.evidence = undefined;\n }\n if (object.validator !== undefined && object.validator !== null) {\n message.validator = params_1.ValidatorParams.fromJSON(object.validator);\n }\n else {\n message.validator = undefined;\n }\n if (object.version !== undefined && object.version !== null) {\n message.version = params_1.VersionParams.fromJSON(object.version);\n }\n else {\n message.version = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.block !== undefined &&\n (obj.block = message.block ? exports.BlockParams.toJSON(message.block) : undefined);\n message.evidence !== undefined &&\n (obj.evidence = message.evidence ? params_1.EvidenceParams.toJSON(message.evidence) : undefined);\n message.validator !== undefined &&\n (obj.validator = message.validator ? params_1.ValidatorParams.toJSON(message.validator) : undefined);\n message.version !== undefined &&\n (obj.version = message.version ? params_1.VersionParams.toJSON(message.version) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseConsensusParams);\n if (object.block !== undefined && object.block !== null) {\n message.block = exports.BlockParams.fromPartial(object.block);\n }\n else {\n message.block = undefined;\n }\n if (object.evidence !== undefined && object.evidence !== null) {\n message.evidence = params_1.EvidenceParams.fromPartial(object.evidence);\n }\n else {\n message.evidence = undefined;\n }\n if (object.validator !== undefined && object.validator !== null) {\n message.validator = params_1.ValidatorParams.fromPartial(object.validator);\n }\n else {\n message.validator = undefined;\n }\n if (object.version !== undefined && object.version !== null) {\n message.version = params_1.VersionParams.fromPartial(object.version);\n }\n else {\n message.version = undefined;\n }\n return message;\n },\n};\nconst baseBlockParams = { maxBytes: long_1.default.ZERO, maxGas: long_1.default.ZERO };\nexports.BlockParams = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.maxBytes.isZero()) {\n writer.uint32(8).int64(message.maxBytes);\n }\n if (!message.maxGas.isZero()) {\n writer.uint32(16).int64(message.maxGas);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseBlockParams);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.maxBytes = reader.int64();\n break;\n case 2:\n message.maxGas = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseBlockParams);\n if (object.maxBytes !== undefined && object.maxBytes !== null) {\n message.maxBytes = long_1.default.fromString(object.maxBytes);\n }\n else {\n message.maxBytes = long_1.default.ZERO;\n }\n if (object.maxGas !== undefined && object.maxGas !== null) {\n message.maxGas = long_1.default.fromString(object.maxGas);\n }\n else {\n message.maxGas = long_1.default.ZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.maxBytes !== undefined && (obj.maxBytes = (message.maxBytes || long_1.default.ZERO).toString());\n message.maxGas !== undefined && (obj.maxGas = (message.maxGas || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseBlockParams);\n if (object.maxBytes !== undefined && object.maxBytes !== null) {\n message.maxBytes = object.maxBytes;\n }\n else {\n message.maxBytes = long_1.default.ZERO;\n }\n if (object.maxGas !== undefined && object.maxGas !== null) {\n message.maxGas = object.maxGas;\n }\n else {\n message.maxGas = long_1.default.ZERO;\n }\n return message;\n },\n};\nconst baseLastCommitInfo = { round: 0 };\nexports.LastCommitInfo = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.round !== 0) {\n writer.uint32(8).int32(message.round);\n }\n for (const v of message.votes) {\n exports.VoteInfo.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseLastCommitInfo);\n message.votes = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.round = reader.int32();\n break;\n case 2:\n message.votes.push(exports.VoteInfo.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseLastCommitInfo);\n message.votes = [];\n if (object.round !== undefined && object.round !== null) {\n message.round = Number(object.round);\n }\n else {\n message.round = 0;\n }\n if (object.votes !== undefined && object.votes !== null) {\n for (const e of object.votes) {\n message.votes.push(exports.VoteInfo.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.round !== undefined && (obj.round = message.round);\n if (message.votes) {\n obj.votes = message.votes.map((e) => (e ? exports.VoteInfo.toJSON(e) : undefined));\n }\n else {\n obj.votes = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseLastCommitInfo);\n message.votes = [];\n if (object.round !== undefined && object.round !== null) {\n message.round = object.round;\n }\n else {\n message.round = 0;\n }\n if (object.votes !== undefined && object.votes !== null) {\n for (const e of object.votes) {\n message.votes.push(exports.VoteInfo.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseEvent = { type: \"\" };\nexports.Event = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.type !== \"\") {\n writer.uint32(10).string(message.type);\n }\n for (const v of message.attributes) {\n exports.EventAttribute.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseEvent);\n message.attributes = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.type = reader.string();\n break;\n case 2:\n message.attributes.push(exports.EventAttribute.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseEvent);\n message.attributes = [];\n if (object.type !== undefined && object.type !== null) {\n message.type = String(object.type);\n }\n else {\n message.type = \"\";\n }\n if (object.attributes !== undefined && object.attributes !== null) {\n for (const e of object.attributes) {\n message.attributes.push(exports.EventAttribute.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.type !== undefined && (obj.type = message.type);\n if (message.attributes) {\n obj.attributes = message.attributes.map((e) => (e ? exports.EventAttribute.toJSON(e) : undefined));\n }\n else {\n obj.attributes = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseEvent);\n message.attributes = [];\n if (object.type !== undefined && object.type !== null) {\n message.type = object.type;\n }\n else {\n message.type = \"\";\n }\n if (object.attributes !== undefined && object.attributes !== null) {\n for (const e of object.attributes) {\n message.attributes.push(exports.EventAttribute.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseEventAttribute = { index: false };\nexports.EventAttribute = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n if (message.value.length !== 0) {\n writer.uint32(18).bytes(message.value);\n }\n if (message.index === true) {\n writer.uint32(24).bool(message.index);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseEventAttribute);\n message.key = new Uint8Array();\n message.value = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n case 2:\n message.value = reader.bytes();\n break;\n case 3:\n message.index = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseEventAttribute);\n message.key = new Uint8Array();\n message.value = new Uint8Array();\n if (object.key !== undefined && object.key !== null) {\n message.key = bytesFromBase64(object.key);\n }\n if (object.value !== undefined && object.value !== null) {\n message.value = bytesFromBase64(object.value);\n }\n if (object.index !== undefined && object.index !== null) {\n message.index = Boolean(object.index);\n }\n else {\n message.index = false;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined &&\n (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));\n message.value !== undefined &&\n (obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array()));\n message.index !== undefined && (obj.index = message.index);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseEventAttribute);\n if (object.key !== undefined && object.key !== null) {\n message.key = object.key;\n }\n else {\n message.key = new Uint8Array();\n }\n if (object.value !== undefined && object.value !== null) {\n message.value = object.value;\n }\n else {\n message.value = new Uint8Array();\n }\n if (object.index !== undefined && object.index !== null) {\n message.index = object.index;\n }\n else {\n message.index = false;\n }\n return message;\n },\n};\nconst baseTxResult = { height: long_1.default.ZERO, index: 0 };\nexports.TxResult = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.height.isZero()) {\n writer.uint32(8).int64(message.height);\n }\n if (message.index !== 0) {\n writer.uint32(16).uint32(message.index);\n }\n if (message.tx.length !== 0) {\n writer.uint32(26).bytes(message.tx);\n }\n if (message.result !== undefined) {\n exports.ResponseDeliverTx.encode(message.result, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseTxResult);\n message.tx = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.height = reader.int64();\n break;\n case 2:\n message.index = reader.uint32();\n break;\n case 3:\n message.tx = reader.bytes();\n break;\n case 4:\n message.result = exports.ResponseDeliverTx.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseTxResult);\n message.tx = new Uint8Array();\n if (object.height !== undefined && object.height !== null) {\n message.height = long_1.default.fromString(object.height);\n }\n else {\n message.height = long_1.default.ZERO;\n }\n if (object.index !== undefined && object.index !== null) {\n message.index = Number(object.index);\n }\n else {\n message.index = 0;\n }\n if (object.tx !== undefined && object.tx !== null) {\n message.tx = bytesFromBase64(object.tx);\n }\n if (object.result !== undefined && object.result !== null) {\n message.result = exports.ResponseDeliverTx.fromJSON(object.result);\n }\n else {\n message.result = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.height !== undefined && (obj.height = (message.height || long_1.default.ZERO).toString());\n message.index !== undefined && (obj.index = message.index);\n message.tx !== undefined &&\n (obj.tx = base64FromBytes(message.tx !== undefined ? message.tx : new Uint8Array()));\n message.result !== undefined &&\n (obj.result = message.result ? exports.ResponseDeliverTx.toJSON(message.result) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseTxResult);\n if (object.height !== undefined && object.height !== null) {\n message.height = object.height;\n }\n else {\n message.height = long_1.default.ZERO;\n }\n if (object.index !== undefined && object.index !== null) {\n message.index = object.index;\n }\n else {\n message.index = 0;\n }\n if (object.tx !== undefined && object.tx !== null) {\n message.tx = object.tx;\n }\n else {\n message.tx = new Uint8Array();\n }\n if (object.result !== undefined && object.result !== null) {\n message.result = exports.ResponseDeliverTx.fromPartial(object.result);\n }\n else {\n message.result = undefined;\n }\n return message;\n },\n};\nconst baseValidator = { power: long_1.default.ZERO };\nexports.Validator = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.address.length !== 0) {\n writer.uint32(10).bytes(message.address);\n }\n if (!message.power.isZero()) {\n writer.uint32(24).int64(message.power);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseValidator);\n message.address = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.bytes();\n break;\n case 3:\n message.power = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseValidator);\n message.address = new Uint8Array();\n if (object.address !== undefined && object.address !== null) {\n message.address = bytesFromBase64(object.address);\n }\n if (object.power !== undefined && object.power !== null) {\n message.power = long_1.default.fromString(object.power);\n }\n else {\n message.power = long_1.default.ZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined &&\n (obj.address = base64FromBytes(message.address !== undefined ? message.address : new Uint8Array()));\n message.power !== undefined && (obj.power = (message.power || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseValidator);\n if (object.address !== undefined && object.address !== null) {\n message.address = object.address;\n }\n else {\n message.address = new Uint8Array();\n }\n if (object.power !== undefined && object.power !== null) {\n message.power = object.power;\n }\n else {\n message.power = long_1.default.ZERO;\n }\n return message;\n },\n};\nconst baseValidatorUpdate = { power: long_1.default.ZERO };\nexports.ValidatorUpdate = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.pubKey !== undefined) {\n keys_1.PublicKey.encode(message.pubKey, writer.uint32(10).fork()).ldelim();\n }\n if (!message.power.isZero()) {\n writer.uint32(16).int64(message.power);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseValidatorUpdate);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pubKey = keys_1.PublicKey.decode(reader, reader.uint32());\n break;\n case 2:\n message.power = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseValidatorUpdate);\n if (object.pubKey !== undefined && object.pubKey !== null) {\n message.pubKey = keys_1.PublicKey.fromJSON(object.pubKey);\n }\n else {\n message.pubKey = undefined;\n }\n if (object.power !== undefined && object.power !== null) {\n message.power = long_1.default.fromString(object.power);\n }\n else {\n message.power = long_1.default.ZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.pubKey !== undefined &&\n (obj.pubKey = message.pubKey ? keys_1.PublicKey.toJSON(message.pubKey) : undefined);\n message.power !== undefined && (obj.power = (message.power || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseValidatorUpdate);\n if (object.pubKey !== undefined && object.pubKey !== null) {\n message.pubKey = keys_1.PublicKey.fromPartial(object.pubKey);\n }\n else {\n message.pubKey = undefined;\n }\n if (object.power !== undefined && object.power !== null) {\n message.power = object.power;\n }\n else {\n message.power = long_1.default.ZERO;\n }\n return message;\n },\n};\nconst baseVoteInfo = { signedLastBlock: false };\nexports.VoteInfo = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.validator !== undefined) {\n exports.Validator.encode(message.validator, writer.uint32(10).fork()).ldelim();\n }\n if (message.signedLastBlock === true) {\n writer.uint32(16).bool(message.signedLastBlock);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseVoteInfo);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validator = exports.Validator.decode(reader, reader.uint32());\n break;\n case 2:\n message.signedLastBlock = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseVoteInfo);\n if (object.validator !== undefined && object.validator !== null) {\n message.validator = exports.Validator.fromJSON(object.validator);\n }\n else {\n message.validator = undefined;\n }\n if (object.signedLastBlock !== undefined && object.signedLastBlock !== null) {\n message.signedLastBlock = Boolean(object.signedLastBlock);\n }\n else {\n message.signedLastBlock = false;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.validator !== undefined &&\n (obj.validator = message.validator ? exports.Validator.toJSON(message.validator) : undefined);\n message.signedLastBlock !== undefined && (obj.signedLastBlock = message.signedLastBlock);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseVoteInfo);\n if (object.validator !== undefined && object.validator !== null) {\n message.validator = exports.Validator.fromPartial(object.validator);\n }\n else {\n message.validator = undefined;\n }\n if (object.signedLastBlock !== undefined && object.signedLastBlock !== null) {\n message.signedLastBlock = object.signedLastBlock;\n }\n else {\n message.signedLastBlock = false;\n }\n return message;\n },\n};\nconst baseEvidence = { type: 0, height: long_1.default.ZERO, totalVotingPower: long_1.default.ZERO };\nexports.Evidence = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.type !== 0) {\n writer.uint32(8).int32(message.type);\n }\n if (message.validator !== undefined) {\n exports.Validator.encode(message.validator, writer.uint32(18).fork()).ldelim();\n }\n if (!message.height.isZero()) {\n writer.uint32(24).int64(message.height);\n }\n if (message.time !== undefined) {\n timestamp_1.Timestamp.encode(toTimestamp(message.time), writer.uint32(34).fork()).ldelim();\n }\n if (!message.totalVotingPower.isZero()) {\n writer.uint32(40).int64(message.totalVotingPower);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseEvidence);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.type = reader.int32();\n break;\n case 2:\n message.validator = exports.Validator.decode(reader, reader.uint32());\n break;\n case 3:\n message.height = reader.int64();\n break;\n case 4:\n message.time = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));\n break;\n case 5:\n message.totalVotingPower = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseEvidence);\n if (object.type !== undefined && object.type !== null) {\n message.type = evidenceTypeFromJSON(object.type);\n }\n else {\n message.type = 0;\n }\n if (object.validator !== undefined && object.validator !== null) {\n message.validator = exports.Validator.fromJSON(object.validator);\n }\n else {\n message.validator = undefined;\n }\n if (object.height !== undefined && object.height !== null) {\n message.height = long_1.default.fromString(object.height);\n }\n else {\n message.height = long_1.default.ZERO;\n }\n if (object.time !== undefined && object.time !== null) {\n message.time = fromJsonTimestamp(object.time);\n }\n else {\n message.time = undefined;\n }\n if (object.totalVotingPower !== undefined && object.totalVotingPower !== null) {\n message.totalVotingPower = long_1.default.fromString(object.totalVotingPower);\n }\n else {\n message.totalVotingPower = long_1.default.ZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.type !== undefined && (obj.type = evidenceTypeToJSON(message.type));\n message.validator !== undefined &&\n (obj.validator = message.validator ? exports.Validator.toJSON(message.validator) : undefined);\n message.height !== undefined && (obj.height = (message.height || long_1.default.ZERO).toString());\n message.time !== undefined && (obj.time = message.time.toISOString());\n message.totalVotingPower !== undefined &&\n (obj.totalVotingPower = (message.totalVotingPower || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseEvidence);\n if (object.type !== undefined && object.type !== null) {\n message.type = object.type;\n }\n else {\n message.type = 0;\n }\n if (object.validator !== undefined && object.validator !== null) {\n message.validator = exports.Validator.fromPartial(object.validator);\n }\n else {\n message.validator = undefined;\n }\n if (object.height !== undefined && object.height !== null) {\n message.height = object.height;\n }\n else {\n message.height = long_1.default.ZERO;\n }\n if (object.time !== undefined && object.time !== null) {\n message.time = object.time;\n }\n else {\n message.time = undefined;\n }\n if (object.totalVotingPower !== undefined && object.totalVotingPower !== null) {\n message.totalVotingPower = object.totalVotingPower;\n }\n else {\n message.totalVotingPower = long_1.default.ZERO;\n }\n return message;\n },\n};\nconst baseSnapshot = { height: long_1.default.UZERO, format: 0, chunks: 0 };\nexports.Snapshot = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.height.isZero()) {\n writer.uint32(8).uint64(message.height);\n }\n if (message.format !== 0) {\n writer.uint32(16).uint32(message.format);\n }\n if (message.chunks !== 0) {\n writer.uint32(24).uint32(message.chunks);\n }\n if (message.hash.length !== 0) {\n writer.uint32(34).bytes(message.hash);\n }\n if (message.metadata.length !== 0) {\n writer.uint32(42).bytes(message.metadata);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSnapshot);\n message.hash = new Uint8Array();\n message.metadata = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.height = reader.uint64();\n break;\n case 2:\n message.format = reader.uint32();\n break;\n case 3:\n message.chunks = reader.uint32();\n break;\n case 4:\n message.hash = reader.bytes();\n break;\n case 5:\n message.metadata = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseSnapshot);\n message.hash = new Uint8Array();\n message.metadata = new Uint8Array();\n if (object.height !== undefined && object.height !== null) {\n message.height = long_1.default.fromString(object.height);\n }\n else {\n message.height = long_1.default.UZERO;\n }\n if (object.format !== undefined && object.format !== null) {\n message.format = Number(object.format);\n }\n else {\n message.format = 0;\n }\n if (object.chunks !== undefined && object.chunks !== null) {\n message.chunks = Number(object.chunks);\n }\n else {\n message.chunks = 0;\n }\n if (object.hash !== undefined && object.hash !== null) {\n message.hash = bytesFromBase64(object.hash);\n }\n if (object.metadata !== undefined && object.metadata !== null) {\n message.metadata = bytesFromBase64(object.metadata);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.height !== undefined && (obj.height = (message.height || long_1.default.UZERO).toString());\n message.format !== undefined && (obj.format = message.format);\n message.chunks !== undefined && (obj.chunks = message.chunks);\n message.hash !== undefined &&\n (obj.hash = base64FromBytes(message.hash !== undefined ? message.hash : new Uint8Array()));\n message.metadata !== undefined &&\n (obj.metadata = base64FromBytes(message.metadata !== undefined ? message.metadata : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseSnapshot);\n if (object.height !== undefined && object.height !== null) {\n message.height = object.height;\n }\n else {\n message.height = long_1.default.UZERO;\n }\n if (object.format !== undefined && object.format !== null) {\n message.format = object.format;\n }\n else {\n message.format = 0;\n }\n if (object.chunks !== undefined && object.chunks !== null) {\n message.chunks = object.chunks;\n }\n else {\n message.chunks = 0;\n }\n if (object.hash !== undefined && object.hash !== null) {\n message.hash = object.hash;\n }\n else {\n message.hash = new Uint8Array();\n }\n if (object.metadata !== undefined && object.metadata !== null) {\n message.metadata = object.metadata;\n }\n else {\n message.metadata = new Uint8Array();\n }\n return message;\n },\n};\nclass ABCIApplicationClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Echo = this.Echo.bind(this);\n this.Flush = this.Flush.bind(this);\n this.Info = this.Info.bind(this);\n this.SetOption = this.SetOption.bind(this);\n this.DeliverTx = this.DeliverTx.bind(this);\n this.CheckTx = this.CheckTx.bind(this);\n this.Query = this.Query.bind(this);\n this.Commit = this.Commit.bind(this);\n this.InitChain = this.InitChain.bind(this);\n this.BeginBlock = this.BeginBlock.bind(this);\n this.EndBlock = this.EndBlock.bind(this);\n this.ListSnapshots = this.ListSnapshots.bind(this);\n this.OfferSnapshot = this.OfferSnapshot.bind(this);\n this.LoadSnapshotChunk = this.LoadSnapshotChunk.bind(this);\n this.ApplySnapshotChunk = this.ApplySnapshotChunk.bind(this);\n }\n Echo(request, metadata) {\n return this.rpc.unary(exports.ABCIApplicationEchoDesc, exports.RequestEcho.fromPartial(request), metadata);\n }\n Flush(request, metadata) {\n return this.rpc.unary(exports.ABCIApplicationFlushDesc, exports.RequestFlush.fromPartial(request), metadata);\n }\n Info(request, metadata) {\n return this.rpc.unary(exports.ABCIApplicationInfoDesc, exports.RequestInfo.fromPartial(request), metadata);\n }\n SetOption(request, metadata) {\n return this.rpc.unary(exports.ABCIApplicationSetOptionDesc, exports.RequestSetOption.fromPartial(request), metadata);\n }\n DeliverTx(request, metadata) {\n return this.rpc.unary(exports.ABCIApplicationDeliverTxDesc, exports.RequestDeliverTx.fromPartial(request), metadata);\n }\n CheckTx(request, metadata) {\n return this.rpc.unary(exports.ABCIApplicationCheckTxDesc, exports.RequestCheckTx.fromPartial(request), metadata);\n }\n Query(request, metadata) {\n return this.rpc.unary(exports.ABCIApplicationQueryDesc, exports.RequestQuery.fromPartial(request), metadata);\n }\n Commit(request, metadata) {\n return this.rpc.unary(exports.ABCIApplicationCommitDesc, exports.RequestCommit.fromPartial(request), metadata);\n }\n InitChain(request, metadata) {\n return this.rpc.unary(exports.ABCIApplicationInitChainDesc, exports.RequestInitChain.fromPartial(request), metadata);\n }\n BeginBlock(request, metadata) {\n return this.rpc.unary(exports.ABCIApplicationBeginBlockDesc, exports.RequestBeginBlock.fromPartial(request), metadata);\n }\n EndBlock(request, metadata) {\n return this.rpc.unary(exports.ABCIApplicationEndBlockDesc, exports.RequestEndBlock.fromPartial(request), metadata);\n }\n ListSnapshots(request, metadata) {\n return this.rpc.unary(exports.ABCIApplicationListSnapshotsDesc, exports.RequestListSnapshots.fromPartial(request), metadata);\n }\n OfferSnapshot(request, metadata) {\n return this.rpc.unary(exports.ABCIApplicationOfferSnapshotDesc, exports.RequestOfferSnapshot.fromPartial(request), metadata);\n }\n LoadSnapshotChunk(request, metadata) {\n return this.rpc.unary(exports.ABCIApplicationLoadSnapshotChunkDesc, exports.RequestLoadSnapshotChunk.fromPartial(request), metadata);\n }\n ApplySnapshotChunk(request, metadata) {\n return this.rpc.unary(exports.ABCIApplicationApplySnapshotChunkDesc, exports.RequestApplySnapshotChunk.fromPartial(request), metadata);\n }\n}\nexports.ABCIApplicationClientImpl = ABCIApplicationClientImpl;\nexports.ABCIApplicationDesc = {\n serviceName: \"tendermint.abci.ABCIApplication\",\n};\nexports.ABCIApplicationEchoDesc = {\n methodName: \"Echo\",\n service: exports.ABCIApplicationDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.RequestEcho.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.ResponseEcho.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nexports.ABCIApplicationFlushDesc = {\n methodName: \"Flush\",\n service: exports.ABCIApplicationDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.RequestFlush.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.ResponseFlush.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nexports.ABCIApplicationInfoDesc = {\n methodName: \"Info\",\n service: exports.ABCIApplicationDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.RequestInfo.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.ResponseInfo.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nexports.ABCIApplicationSetOptionDesc = {\n methodName: \"SetOption\",\n service: exports.ABCIApplicationDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.RequestSetOption.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.ResponseSetOption.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nexports.ABCIApplicationDeliverTxDesc = {\n methodName: \"DeliverTx\",\n service: exports.ABCIApplicationDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.RequestDeliverTx.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.ResponseDeliverTx.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nexports.ABCIApplicationCheckTxDesc = {\n methodName: \"CheckTx\",\n service: exports.ABCIApplicationDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.RequestCheckTx.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.ResponseCheckTx.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nexports.ABCIApplicationQueryDesc = {\n methodName: \"Query\",\n service: exports.ABCIApplicationDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.RequestQuery.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.ResponseQuery.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nexports.ABCIApplicationCommitDesc = {\n methodName: \"Commit\",\n service: exports.ABCIApplicationDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.RequestCommit.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.ResponseCommit.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nexports.ABCIApplicationInitChainDesc = {\n methodName: \"InitChain\",\n service: exports.ABCIApplicationDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.RequestInitChain.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.ResponseInitChain.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nexports.ABCIApplicationBeginBlockDesc = {\n methodName: \"BeginBlock\",\n service: exports.ABCIApplicationDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.RequestBeginBlock.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.ResponseBeginBlock.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nexports.ABCIApplicationEndBlockDesc = {\n methodName: \"EndBlock\",\n service: exports.ABCIApplicationDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.RequestEndBlock.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.ResponseEndBlock.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nexports.ABCIApplicationListSnapshotsDesc = {\n methodName: \"ListSnapshots\",\n service: exports.ABCIApplicationDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.RequestListSnapshots.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.ResponseListSnapshots.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nexports.ABCIApplicationOfferSnapshotDesc = {\n methodName: \"OfferSnapshot\",\n service: exports.ABCIApplicationDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.RequestOfferSnapshot.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.ResponseOfferSnapshot.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nexports.ABCIApplicationLoadSnapshotChunkDesc = {\n methodName: \"LoadSnapshotChunk\",\n service: exports.ABCIApplicationDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.RequestLoadSnapshotChunk.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.ResponseLoadSnapshotChunk.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nexports.ABCIApplicationApplySnapshotChunkDesc = {\n methodName: \"ApplySnapshotChunk\",\n service: exports.ABCIApplicationDesc,\n requestStream: false,\n responseStream: false,\n requestType: {\n serializeBinary() {\n return exports.RequestApplySnapshotChunk.encode(this).finish();\n },\n },\n responseType: {\n deserializeBinary(data) {\n return Object.assign(Object.assign({}, exports.ResponseApplySnapshotChunk.decode(data)), { toObject() {\n return this;\n } });\n },\n },\n};\nclass GrpcWebImpl {\n constructor(host, options) {\n this.host = host;\n this.options = options;\n }\n unary(methodDesc, _request, metadata) {\n var _a;\n const request = Object.assign(Object.assign({}, _request), methodDesc.requestType);\n const maybeCombinedMetadata = metadata && this.options.metadata\n ? new browser_headers_1.BrowserHeaders(Object.assign(Object.assign({}, (_a = this.options) === null || _a === void 0 ? void 0 : _a.metadata.headersMap), metadata === null || metadata === void 0 ? void 0 : metadata.headersMap))\n : metadata || this.options.metadata;\n return new Promise((resolve, reject) => {\n grpc_web_1.grpc.unary(methodDesc, {\n request,\n host: this.host,\n metadata: maybeCombinedMetadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (response.status === grpc_web_1.grpc.Code.OK) {\n resolve(response.message);\n }\n else {\n const err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n reject(err);\n }\n },\n });\n });\n }\n}\nexports.GrpcWebImpl = GrpcWebImpl;\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nfunction toTimestamp(date) {\n const seconds = numberToLong(date.getTime() / 1000);\n const nanos = (date.getTime() % 1000) * 1000000;\n return { seconds, nanos };\n}\nfunction fromTimestamp(t) {\n let millis = t.seconds.toNumber() * 1000;\n millis += t.nanos / 1000000;\n return new Date(millis);\n}\nfunction fromJsonTimestamp(o) {\n if (o instanceof Date) {\n return o;\n }\n else if (typeof o === \"string\") {\n return new Date(o);\n }\n else {\n return fromTimestamp(timestamp_1.Timestamp.fromJSON(o));\n }\n}\nfunction numberToLong(number) {\n return long_1.default.fromNumber(number);\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=types.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PublicKey = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nexports.protobufPackage = \"tendermint.crypto\";\nconst basePublicKey = {};\nexports.PublicKey = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.ed25519 !== undefined) {\n writer.uint32(10).bytes(message.ed25519);\n }\n if (message.secp256k1 !== undefined) {\n writer.uint32(18).bytes(message.secp256k1);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, basePublicKey);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.ed25519 = reader.bytes();\n break;\n case 2:\n message.secp256k1 = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, basePublicKey);\n if (object.ed25519 !== undefined && object.ed25519 !== null) {\n message.ed25519 = bytesFromBase64(object.ed25519);\n }\n if (object.secp256k1 !== undefined && object.secp256k1 !== null) {\n message.secp256k1 = bytesFromBase64(object.secp256k1);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.ed25519 !== undefined &&\n (obj.ed25519 = message.ed25519 !== undefined ? base64FromBytes(message.ed25519) : undefined);\n message.secp256k1 !== undefined &&\n (obj.secp256k1 = message.secp256k1 !== undefined ? base64FromBytes(message.secp256k1) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, basePublicKey);\n if (object.ed25519 !== undefined && object.ed25519 !== null) {\n message.ed25519 = object.ed25519;\n }\n else {\n message.ed25519 = undefined;\n }\n if (object.secp256k1 !== undefined && object.secp256k1 !== null) {\n message.secp256k1 = object.secp256k1;\n }\n else {\n message.secp256k1 = undefined;\n }\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=keys.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ProofOps = exports.ProofOp = exports.DominoOp = exports.ValueOp = exports.Proof = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nexports.protobufPackage = \"tendermint.crypto\";\nconst baseProof = { total: long_1.default.ZERO, index: long_1.default.ZERO };\nexports.Proof = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.total.isZero()) {\n writer.uint32(8).int64(message.total);\n }\n if (!message.index.isZero()) {\n writer.uint32(16).int64(message.index);\n }\n if (message.leafHash.length !== 0) {\n writer.uint32(26).bytes(message.leafHash);\n }\n for (const v of message.aunts) {\n writer.uint32(34).bytes(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseProof);\n message.aunts = [];\n message.leafHash = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.total = reader.int64();\n break;\n case 2:\n message.index = reader.int64();\n break;\n case 3:\n message.leafHash = reader.bytes();\n break;\n case 4:\n message.aunts.push(reader.bytes());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseProof);\n message.aunts = [];\n message.leafHash = new Uint8Array();\n if (object.total !== undefined && object.total !== null) {\n message.total = long_1.default.fromString(object.total);\n }\n else {\n message.total = long_1.default.ZERO;\n }\n if (object.index !== undefined && object.index !== null) {\n message.index = long_1.default.fromString(object.index);\n }\n else {\n message.index = long_1.default.ZERO;\n }\n if (object.leafHash !== undefined && object.leafHash !== null) {\n message.leafHash = bytesFromBase64(object.leafHash);\n }\n if (object.aunts !== undefined && object.aunts !== null) {\n for (const e of object.aunts) {\n message.aunts.push(bytesFromBase64(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.total !== undefined && (obj.total = (message.total || long_1.default.ZERO).toString());\n message.index !== undefined && (obj.index = (message.index || long_1.default.ZERO).toString());\n message.leafHash !== undefined &&\n (obj.leafHash = base64FromBytes(message.leafHash !== undefined ? message.leafHash : new Uint8Array()));\n if (message.aunts) {\n obj.aunts = message.aunts.map((e) => base64FromBytes(e !== undefined ? e : new Uint8Array()));\n }\n else {\n obj.aunts = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseProof);\n message.aunts = [];\n if (object.total !== undefined && object.total !== null) {\n message.total = object.total;\n }\n else {\n message.total = long_1.default.ZERO;\n }\n if (object.index !== undefined && object.index !== null) {\n message.index = object.index;\n }\n else {\n message.index = long_1.default.ZERO;\n }\n if (object.leafHash !== undefined && object.leafHash !== null) {\n message.leafHash = object.leafHash;\n }\n else {\n message.leafHash = new Uint8Array();\n }\n if (object.aunts !== undefined && object.aunts !== null) {\n for (const e of object.aunts) {\n message.aunts.push(e);\n }\n }\n return message;\n },\n};\nconst baseValueOp = {};\nexports.ValueOp = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n if (message.proof !== undefined) {\n exports.Proof.encode(message.proof, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseValueOp);\n message.key = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n case 2:\n message.proof = exports.Proof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseValueOp);\n message.key = new Uint8Array();\n if (object.key !== undefined && object.key !== null) {\n message.key = bytesFromBase64(object.key);\n }\n if (object.proof !== undefined && object.proof !== null) {\n message.proof = exports.Proof.fromJSON(object.proof);\n }\n else {\n message.proof = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined &&\n (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));\n message.proof !== undefined && (obj.proof = message.proof ? exports.Proof.toJSON(message.proof) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseValueOp);\n if (object.key !== undefined && object.key !== null) {\n message.key = object.key;\n }\n else {\n message.key = new Uint8Array();\n }\n if (object.proof !== undefined && object.proof !== null) {\n message.proof = exports.Proof.fromPartial(object.proof);\n }\n else {\n message.proof = undefined;\n }\n return message;\n },\n};\nconst baseDominoOp = { key: \"\", input: \"\", output: \"\" };\nexports.DominoOp = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.key !== \"\") {\n writer.uint32(10).string(message.key);\n }\n if (message.input !== \"\") {\n writer.uint32(18).string(message.input);\n }\n if (message.output !== \"\") {\n writer.uint32(26).string(message.output);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDominoOp);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.string();\n break;\n case 2:\n message.input = reader.string();\n break;\n case 3:\n message.output = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseDominoOp);\n if (object.key !== undefined && object.key !== null) {\n message.key = String(object.key);\n }\n else {\n message.key = \"\";\n }\n if (object.input !== undefined && object.input !== null) {\n message.input = String(object.input);\n }\n else {\n message.input = \"\";\n }\n if (object.output !== undefined && object.output !== null) {\n message.output = String(object.output);\n }\n else {\n message.output = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined && (obj.key = message.key);\n message.input !== undefined && (obj.input = message.input);\n message.output !== undefined && (obj.output = message.output);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseDominoOp);\n if (object.key !== undefined && object.key !== null) {\n message.key = object.key;\n }\n else {\n message.key = \"\";\n }\n if (object.input !== undefined && object.input !== null) {\n message.input = object.input;\n }\n else {\n message.input = \"\";\n }\n if (object.output !== undefined && object.output !== null) {\n message.output = object.output;\n }\n else {\n message.output = \"\";\n }\n return message;\n },\n};\nconst baseProofOp = { type: \"\" };\nexports.ProofOp = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.type !== \"\") {\n writer.uint32(10).string(message.type);\n }\n if (message.key.length !== 0) {\n writer.uint32(18).bytes(message.key);\n }\n if (message.data.length !== 0) {\n writer.uint32(26).bytes(message.data);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseProofOp);\n message.key = new Uint8Array();\n message.data = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.type = reader.string();\n break;\n case 2:\n message.key = reader.bytes();\n break;\n case 3:\n message.data = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseProofOp);\n message.key = new Uint8Array();\n message.data = new Uint8Array();\n if (object.type !== undefined && object.type !== null) {\n message.type = String(object.type);\n }\n else {\n message.type = \"\";\n }\n if (object.key !== undefined && object.key !== null) {\n message.key = bytesFromBase64(object.key);\n }\n if (object.data !== undefined && object.data !== null) {\n message.data = bytesFromBase64(object.data);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.type !== undefined && (obj.type = message.type);\n message.key !== undefined &&\n (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));\n message.data !== undefined &&\n (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseProofOp);\n if (object.type !== undefined && object.type !== null) {\n message.type = object.type;\n }\n else {\n message.type = \"\";\n }\n if (object.key !== undefined && object.key !== null) {\n message.key = object.key;\n }\n else {\n message.key = new Uint8Array();\n }\n if (object.data !== undefined && object.data !== null) {\n message.data = object.data;\n }\n else {\n message.data = new Uint8Array();\n }\n return message;\n },\n};\nconst baseProofOps = {};\nexports.ProofOps = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.ops) {\n exports.ProofOp.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseProofOps);\n message.ops = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.ops.push(exports.ProofOp.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseProofOps);\n message.ops = [];\n if (object.ops !== undefined && object.ops !== null) {\n for (const e of object.ops) {\n message.ops.push(exports.ProofOp.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.ops) {\n obj.ops = message.ops.map((e) => (e ? exports.ProofOp.toJSON(e) : undefined));\n }\n else {\n obj.ops = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseProofOps);\n message.ops = [];\n if (object.ops !== undefined && object.ops !== null) {\n for (const e of object.ops) {\n message.ops.push(exports.ProofOp.fromPartial(e));\n }\n }\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=proof.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HashedParams = exports.VersionParams = exports.ValidatorParams = exports.EvidenceParams = exports.BlockParams = exports.ConsensusParams = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst duration_1 = require(\"../../google/protobuf/duration\");\nexports.protobufPackage = \"tendermint.types\";\nconst baseConsensusParams = {};\nexports.ConsensusParams = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.block !== undefined) {\n exports.BlockParams.encode(message.block, writer.uint32(10).fork()).ldelim();\n }\n if (message.evidence !== undefined) {\n exports.EvidenceParams.encode(message.evidence, writer.uint32(18).fork()).ldelim();\n }\n if (message.validator !== undefined) {\n exports.ValidatorParams.encode(message.validator, writer.uint32(26).fork()).ldelim();\n }\n if (message.version !== undefined) {\n exports.VersionParams.encode(message.version, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseConsensusParams);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.block = exports.BlockParams.decode(reader, reader.uint32());\n break;\n case 2:\n message.evidence = exports.EvidenceParams.decode(reader, reader.uint32());\n break;\n case 3:\n message.validator = exports.ValidatorParams.decode(reader, reader.uint32());\n break;\n case 4:\n message.version = exports.VersionParams.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseConsensusParams);\n if (object.block !== undefined && object.block !== null) {\n message.block = exports.BlockParams.fromJSON(object.block);\n }\n else {\n message.block = undefined;\n }\n if (object.evidence !== undefined && object.evidence !== null) {\n message.evidence = exports.EvidenceParams.fromJSON(object.evidence);\n }\n else {\n message.evidence = undefined;\n }\n if (object.validator !== undefined && object.validator !== null) {\n message.validator = exports.ValidatorParams.fromJSON(object.validator);\n }\n else {\n message.validator = undefined;\n }\n if (object.version !== undefined && object.version !== null) {\n message.version = exports.VersionParams.fromJSON(object.version);\n }\n else {\n message.version = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.block !== undefined &&\n (obj.block = message.block ? exports.BlockParams.toJSON(message.block) : undefined);\n message.evidence !== undefined &&\n (obj.evidence = message.evidence ? exports.EvidenceParams.toJSON(message.evidence) : undefined);\n message.validator !== undefined &&\n (obj.validator = message.validator ? exports.ValidatorParams.toJSON(message.validator) : undefined);\n message.version !== undefined &&\n (obj.version = message.version ? exports.VersionParams.toJSON(message.version) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseConsensusParams);\n if (object.block !== undefined && object.block !== null) {\n message.block = exports.BlockParams.fromPartial(object.block);\n }\n else {\n message.block = undefined;\n }\n if (object.evidence !== undefined && object.evidence !== null) {\n message.evidence = exports.EvidenceParams.fromPartial(object.evidence);\n }\n else {\n message.evidence = undefined;\n }\n if (object.validator !== undefined && object.validator !== null) {\n message.validator = exports.ValidatorParams.fromPartial(object.validator);\n }\n else {\n message.validator = undefined;\n }\n if (object.version !== undefined && object.version !== null) {\n message.version = exports.VersionParams.fromPartial(object.version);\n }\n else {\n message.version = undefined;\n }\n return message;\n },\n};\nconst baseBlockParams = { maxBytes: long_1.default.ZERO, maxGas: long_1.default.ZERO, timeIotaMs: long_1.default.ZERO };\nexports.BlockParams = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.maxBytes.isZero()) {\n writer.uint32(8).int64(message.maxBytes);\n }\n if (!message.maxGas.isZero()) {\n writer.uint32(16).int64(message.maxGas);\n }\n if (!message.timeIotaMs.isZero()) {\n writer.uint32(24).int64(message.timeIotaMs);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseBlockParams);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.maxBytes = reader.int64();\n break;\n case 2:\n message.maxGas = reader.int64();\n break;\n case 3:\n message.timeIotaMs = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseBlockParams);\n if (object.maxBytes !== undefined && object.maxBytes !== null) {\n message.maxBytes = long_1.default.fromString(object.maxBytes);\n }\n else {\n message.maxBytes = long_1.default.ZERO;\n }\n if (object.maxGas !== undefined && object.maxGas !== null) {\n message.maxGas = long_1.default.fromString(object.maxGas);\n }\n else {\n message.maxGas = long_1.default.ZERO;\n }\n if (object.timeIotaMs !== undefined && object.timeIotaMs !== null) {\n message.timeIotaMs = long_1.default.fromString(object.timeIotaMs);\n }\n else {\n message.timeIotaMs = long_1.default.ZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.maxBytes !== undefined && (obj.maxBytes = (message.maxBytes || long_1.default.ZERO).toString());\n message.maxGas !== undefined && (obj.maxGas = (message.maxGas || long_1.default.ZERO).toString());\n message.timeIotaMs !== undefined && (obj.timeIotaMs = (message.timeIotaMs || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseBlockParams);\n if (object.maxBytes !== undefined && object.maxBytes !== null) {\n message.maxBytes = object.maxBytes;\n }\n else {\n message.maxBytes = long_1.default.ZERO;\n }\n if (object.maxGas !== undefined && object.maxGas !== null) {\n message.maxGas = object.maxGas;\n }\n else {\n message.maxGas = long_1.default.ZERO;\n }\n if (object.timeIotaMs !== undefined && object.timeIotaMs !== null) {\n message.timeIotaMs = object.timeIotaMs;\n }\n else {\n message.timeIotaMs = long_1.default.ZERO;\n }\n return message;\n },\n};\nconst baseEvidenceParams = { maxAgeNumBlocks: long_1.default.ZERO, maxBytes: long_1.default.ZERO };\nexports.EvidenceParams = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.maxAgeNumBlocks.isZero()) {\n writer.uint32(8).int64(message.maxAgeNumBlocks);\n }\n if (message.maxAgeDuration !== undefined) {\n duration_1.Duration.encode(message.maxAgeDuration, writer.uint32(18).fork()).ldelim();\n }\n if (!message.maxBytes.isZero()) {\n writer.uint32(24).int64(message.maxBytes);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseEvidenceParams);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.maxAgeNumBlocks = reader.int64();\n break;\n case 2:\n message.maxAgeDuration = duration_1.Duration.decode(reader, reader.uint32());\n break;\n case 3:\n message.maxBytes = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseEvidenceParams);\n if (object.maxAgeNumBlocks !== undefined && object.maxAgeNumBlocks !== null) {\n message.maxAgeNumBlocks = long_1.default.fromString(object.maxAgeNumBlocks);\n }\n else {\n message.maxAgeNumBlocks = long_1.default.ZERO;\n }\n if (object.maxAgeDuration !== undefined && object.maxAgeDuration !== null) {\n message.maxAgeDuration = duration_1.Duration.fromJSON(object.maxAgeDuration);\n }\n else {\n message.maxAgeDuration = undefined;\n }\n if (object.maxBytes !== undefined && object.maxBytes !== null) {\n message.maxBytes = long_1.default.fromString(object.maxBytes);\n }\n else {\n message.maxBytes = long_1.default.ZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.maxAgeNumBlocks !== undefined &&\n (obj.maxAgeNumBlocks = (message.maxAgeNumBlocks || long_1.default.ZERO).toString());\n message.maxAgeDuration !== undefined &&\n (obj.maxAgeDuration = message.maxAgeDuration ? duration_1.Duration.toJSON(message.maxAgeDuration) : undefined);\n message.maxBytes !== undefined && (obj.maxBytes = (message.maxBytes || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseEvidenceParams);\n if (object.maxAgeNumBlocks !== undefined && object.maxAgeNumBlocks !== null) {\n message.maxAgeNumBlocks = object.maxAgeNumBlocks;\n }\n else {\n message.maxAgeNumBlocks = long_1.default.ZERO;\n }\n if (object.maxAgeDuration !== undefined && object.maxAgeDuration !== null) {\n message.maxAgeDuration = duration_1.Duration.fromPartial(object.maxAgeDuration);\n }\n else {\n message.maxAgeDuration = undefined;\n }\n if (object.maxBytes !== undefined && object.maxBytes !== null) {\n message.maxBytes = object.maxBytes;\n }\n else {\n message.maxBytes = long_1.default.ZERO;\n }\n return message;\n },\n};\nconst baseValidatorParams = { pubKeyTypes: \"\" };\nexports.ValidatorParams = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.pubKeyTypes) {\n writer.uint32(10).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseValidatorParams);\n message.pubKeyTypes = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pubKeyTypes.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseValidatorParams);\n message.pubKeyTypes = [];\n if (object.pubKeyTypes !== undefined && object.pubKeyTypes !== null) {\n for (const e of object.pubKeyTypes) {\n message.pubKeyTypes.push(String(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.pubKeyTypes) {\n obj.pubKeyTypes = message.pubKeyTypes.map((e) => e);\n }\n else {\n obj.pubKeyTypes = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseValidatorParams);\n message.pubKeyTypes = [];\n if (object.pubKeyTypes !== undefined && object.pubKeyTypes !== null) {\n for (const e of object.pubKeyTypes) {\n message.pubKeyTypes.push(e);\n }\n }\n return message;\n },\n};\nconst baseVersionParams = { appVersion: long_1.default.UZERO };\nexports.VersionParams = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.appVersion.isZero()) {\n writer.uint32(8).uint64(message.appVersion);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseVersionParams);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.appVersion = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseVersionParams);\n if (object.appVersion !== undefined && object.appVersion !== null) {\n message.appVersion = long_1.default.fromString(object.appVersion);\n }\n else {\n message.appVersion = long_1.default.UZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.appVersion !== undefined && (obj.appVersion = (message.appVersion || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseVersionParams);\n if (object.appVersion !== undefined && object.appVersion !== null) {\n message.appVersion = object.appVersion;\n }\n else {\n message.appVersion = long_1.default.UZERO;\n }\n return message;\n },\n};\nconst baseHashedParams = { blockMaxBytes: long_1.default.ZERO, blockMaxGas: long_1.default.ZERO };\nexports.HashedParams = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.blockMaxBytes.isZero()) {\n writer.uint32(8).int64(message.blockMaxBytes);\n }\n if (!message.blockMaxGas.isZero()) {\n writer.uint32(16).int64(message.blockMaxGas);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseHashedParams);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.blockMaxBytes = reader.int64();\n break;\n case 2:\n message.blockMaxGas = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseHashedParams);\n if (object.blockMaxBytes !== undefined && object.blockMaxBytes !== null) {\n message.blockMaxBytes = long_1.default.fromString(object.blockMaxBytes);\n }\n else {\n message.blockMaxBytes = long_1.default.ZERO;\n }\n if (object.blockMaxGas !== undefined && object.blockMaxGas !== null) {\n message.blockMaxGas = long_1.default.fromString(object.blockMaxGas);\n }\n else {\n message.blockMaxGas = long_1.default.ZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.blockMaxBytes !== undefined &&\n (obj.blockMaxBytes = (message.blockMaxBytes || long_1.default.ZERO).toString());\n message.blockMaxGas !== undefined && (obj.blockMaxGas = (message.blockMaxGas || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseHashedParams);\n if (object.blockMaxBytes !== undefined && object.blockMaxBytes !== null) {\n message.blockMaxBytes = object.blockMaxBytes;\n }\n else {\n message.blockMaxBytes = long_1.default.ZERO;\n }\n if (object.blockMaxGas !== undefined && object.blockMaxGas !== null) {\n message.blockMaxGas = object.blockMaxGas;\n }\n else {\n message.blockMaxGas = long_1.default.ZERO;\n }\n return message;\n },\n};\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=params.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TxProof = exports.BlockMeta = exports.LightBlock = exports.SignedHeader = exports.Proposal = exports.CommitSig = exports.Commit = exports.Vote = exports.Data = exports.Header = exports.BlockID = exports.Part = exports.PartSetHeader = exports.signedMsgTypeToJSON = exports.signedMsgTypeFromJSON = exports.SignedMsgType = exports.blockIDFlagToJSON = exports.blockIDFlagFromJSON = exports.BlockIDFlag = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst proof_1 = require(\"../../tendermint/crypto/proof\");\nconst types_1 = require(\"../../tendermint/version/types\");\nconst validator_1 = require(\"../../tendermint/types/validator\");\nconst timestamp_1 = require(\"../../google/protobuf/timestamp\");\nexports.protobufPackage = \"tendermint.types\";\n/** BlockIdFlag indicates which BlcokID the signature is for */\nvar BlockIDFlag;\n(function (BlockIDFlag) {\n BlockIDFlag[BlockIDFlag[\"BLOCK_ID_FLAG_UNKNOWN\"] = 0] = \"BLOCK_ID_FLAG_UNKNOWN\";\n BlockIDFlag[BlockIDFlag[\"BLOCK_ID_FLAG_ABSENT\"] = 1] = \"BLOCK_ID_FLAG_ABSENT\";\n BlockIDFlag[BlockIDFlag[\"BLOCK_ID_FLAG_COMMIT\"] = 2] = \"BLOCK_ID_FLAG_COMMIT\";\n BlockIDFlag[BlockIDFlag[\"BLOCK_ID_FLAG_NIL\"] = 3] = \"BLOCK_ID_FLAG_NIL\";\n BlockIDFlag[BlockIDFlag[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(BlockIDFlag = exports.BlockIDFlag || (exports.BlockIDFlag = {}));\nfunction blockIDFlagFromJSON(object) {\n switch (object) {\n case 0:\n case \"BLOCK_ID_FLAG_UNKNOWN\":\n return BlockIDFlag.BLOCK_ID_FLAG_UNKNOWN;\n case 1:\n case \"BLOCK_ID_FLAG_ABSENT\":\n return BlockIDFlag.BLOCK_ID_FLAG_ABSENT;\n case 2:\n case \"BLOCK_ID_FLAG_COMMIT\":\n return BlockIDFlag.BLOCK_ID_FLAG_COMMIT;\n case 3:\n case \"BLOCK_ID_FLAG_NIL\":\n return BlockIDFlag.BLOCK_ID_FLAG_NIL;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return BlockIDFlag.UNRECOGNIZED;\n }\n}\nexports.blockIDFlagFromJSON = blockIDFlagFromJSON;\nfunction blockIDFlagToJSON(object) {\n switch (object) {\n case BlockIDFlag.BLOCK_ID_FLAG_UNKNOWN:\n return \"BLOCK_ID_FLAG_UNKNOWN\";\n case BlockIDFlag.BLOCK_ID_FLAG_ABSENT:\n return \"BLOCK_ID_FLAG_ABSENT\";\n case BlockIDFlag.BLOCK_ID_FLAG_COMMIT:\n return \"BLOCK_ID_FLAG_COMMIT\";\n case BlockIDFlag.BLOCK_ID_FLAG_NIL:\n return \"BLOCK_ID_FLAG_NIL\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.blockIDFlagToJSON = blockIDFlagToJSON;\n/** SignedMsgType is a type of signed message in the consensus. */\nvar SignedMsgType;\n(function (SignedMsgType) {\n SignedMsgType[SignedMsgType[\"SIGNED_MSG_TYPE_UNKNOWN\"] = 0] = \"SIGNED_MSG_TYPE_UNKNOWN\";\n /** SIGNED_MSG_TYPE_PREVOTE - Votes */\n SignedMsgType[SignedMsgType[\"SIGNED_MSG_TYPE_PREVOTE\"] = 1] = \"SIGNED_MSG_TYPE_PREVOTE\";\n SignedMsgType[SignedMsgType[\"SIGNED_MSG_TYPE_PRECOMMIT\"] = 2] = \"SIGNED_MSG_TYPE_PRECOMMIT\";\n /** SIGNED_MSG_TYPE_PROPOSAL - Proposals */\n SignedMsgType[SignedMsgType[\"SIGNED_MSG_TYPE_PROPOSAL\"] = 32] = \"SIGNED_MSG_TYPE_PROPOSAL\";\n SignedMsgType[SignedMsgType[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(SignedMsgType = exports.SignedMsgType || (exports.SignedMsgType = {}));\nfunction signedMsgTypeFromJSON(object) {\n switch (object) {\n case 0:\n case \"SIGNED_MSG_TYPE_UNKNOWN\":\n return SignedMsgType.SIGNED_MSG_TYPE_UNKNOWN;\n case 1:\n case \"SIGNED_MSG_TYPE_PREVOTE\":\n return SignedMsgType.SIGNED_MSG_TYPE_PREVOTE;\n case 2:\n case \"SIGNED_MSG_TYPE_PRECOMMIT\":\n return SignedMsgType.SIGNED_MSG_TYPE_PRECOMMIT;\n case 32:\n case \"SIGNED_MSG_TYPE_PROPOSAL\":\n return SignedMsgType.SIGNED_MSG_TYPE_PROPOSAL;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return SignedMsgType.UNRECOGNIZED;\n }\n}\nexports.signedMsgTypeFromJSON = signedMsgTypeFromJSON;\nfunction signedMsgTypeToJSON(object) {\n switch (object) {\n case SignedMsgType.SIGNED_MSG_TYPE_UNKNOWN:\n return \"SIGNED_MSG_TYPE_UNKNOWN\";\n case SignedMsgType.SIGNED_MSG_TYPE_PREVOTE:\n return \"SIGNED_MSG_TYPE_PREVOTE\";\n case SignedMsgType.SIGNED_MSG_TYPE_PRECOMMIT:\n return \"SIGNED_MSG_TYPE_PRECOMMIT\";\n case SignedMsgType.SIGNED_MSG_TYPE_PROPOSAL:\n return \"SIGNED_MSG_TYPE_PROPOSAL\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.signedMsgTypeToJSON = signedMsgTypeToJSON;\nconst basePartSetHeader = { total: 0 };\nexports.PartSetHeader = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.total !== 0) {\n writer.uint32(8).uint32(message.total);\n }\n if (message.hash.length !== 0) {\n writer.uint32(18).bytes(message.hash);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, basePartSetHeader);\n message.hash = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.total = reader.uint32();\n break;\n case 2:\n message.hash = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, basePartSetHeader);\n message.hash = new Uint8Array();\n if (object.total !== undefined && object.total !== null) {\n message.total = Number(object.total);\n }\n else {\n message.total = 0;\n }\n if (object.hash !== undefined && object.hash !== null) {\n message.hash = bytesFromBase64(object.hash);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.total !== undefined && (obj.total = message.total);\n message.hash !== undefined &&\n (obj.hash = base64FromBytes(message.hash !== undefined ? message.hash : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, basePartSetHeader);\n if (object.total !== undefined && object.total !== null) {\n message.total = object.total;\n }\n else {\n message.total = 0;\n }\n if (object.hash !== undefined && object.hash !== null) {\n message.hash = object.hash;\n }\n else {\n message.hash = new Uint8Array();\n }\n return message;\n },\n};\nconst basePart = { index: 0 };\nexports.Part = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.index !== 0) {\n writer.uint32(8).uint32(message.index);\n }\n if (message.bytes.length !== 0) {\n writer.uint32(18).bytes(message.bytes);\n }\n if (message.proof !== undefined) {\n proof_1.Proof.encode(message.proof, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, basePart);\n message.bytes = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.index = reader.uint32();\n break;\n case 2:\n message.bytes = reader.bytes();\n break;\n case 3:\n message.proof = proof_1.Proof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, basePart);\n message.bytes = new Uint8Array();\n if (object.index !== undefined && object.index !== null) {\n message.index = Number(object.index);\n }\n else {\n message.index = 0;\n }\n if (object.bytes !== undefined && object.bytes !== null) {\n message.bytes = bytesFromBase64(object.bytes);\n }\n if (object.proof !== undefined && object.proof !== null) {\n message.proof = proof_1.Proof.fromJSON(object.proof);\n }\n else {\n message.proof = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.index !== undefined && (obj.index = message.index);\n message.bytes !== undefined &&\n (obj.bytes = base64FromBytes(message.bytes !== undefined ? message.bytes : new Uint8Array()));\n message.proof !== undefined && (obj.proof = message.proof ? proof_1.Proof.toJSON(message.proof) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, basePart);\n if (object.index !== undefined && object.index !== null) {\n message.index = object.index;\n }\n else {\n message.index = 0;\n }\n if (object.bytes !== undefined && object.bytes !== null) {\n message.bytes = object.bytes;\n }\n else {\n message.bytes = new Uint8Array();\n }\n if (object.proof !== undefined && object.proof !== null) {\n message.proof = proof_1.Proof.fromPartial(object.proof);\n }\n else {\n message.proof = undefined;\n }\n return message;\n },\n};\nconst baseBlockID = {};\nexports.BlockID = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.hash.length !== 0) {\n writer.uint32(10).bytes(message.hash);\n }\n if (message.partSetHeader !== undefined) {\n exports.PartSetHeader.encode(message.partSetHeader, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseBlockID);\n message.hash = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hash = reader.bytes();\n break;\n case 2:\n message.partSetHeader = exports.PartSetHeader.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseBlockID);\n message.hash = new Uint8Array();\n if (object.hash !== undefined && object.hash !== null) {\n message.hash = bytesFromBase64(object.hash);\n }\n if (object.partSetHeader !== undefined && object.partSetHeader !== null) {\n message.partSetHeader = exports.PartSetHeader.fromJSON(object.partSetHeader);\n }\n else {\n message.partSetHeader = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.hash !== undefined &&\n (obj.hash = base64FromBytes(message.hash !== undefined ? message.hash : new Uint8Array()));\n message.partSetHeader !== undefined &&\n (obj.partSetHeader = message.partSetHeader ? exports.PartSetHeader.toJSON(message.partSetHeader) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseBlockID);\n if (object.hash !== undefined && object.hash !== null) {\n message.hash = object.hash;\n }\n else {\n message.hash = new Uint8Array();\n }\n if (object.partSetHeader !== undefined && object.partSetHeader !== null) {\n message.partSetHeader = exports.PartSetHeader.fromPartial(object.partSetHeader);\n }\n else {\n message.partSetHeader = undefined;\n }\n return message;\n },\n};\nconst baseHeader = { chainId: \"\", height: long_1.default.ZERO };\nexports.Header = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.version !== undefined) {\n types_1.Consensus.encode(message.version, writer.uint32(10).fork()).ldelim();\n }\n if (message.chainId !== \"\") {\n writer.uint32(18).string(message.chainId);\n }\n if (!message.height.isZero()) {\n writer.uint32(24).int64(message.height);\n }\n if (message.time !== undefined) {\n timestamp_1.Timestamp.encode(toTimestamp(message.time), writer.uint32(34).fork()).ldelim();\n }\n if (message.lastBlockId !== undefined) {\n exports.BlockID.encode(message.lastBlockId, writer.uint32(42).fork()).ldelim();\n }\n if (message.lastCommitHash.length !== 0) {\n writer.uint32(50).bytes(message.lastCommitHash);\n }\n if (message.dataHash.length !== 0) {\n writer.uint32(58).bytes(message.dataHash);\n }\n if (message.validatorsHash.length !== 0) {\n writer.uint32(66).bytes(message.validatorsHash);\n }\n if (message.nextValidatorsHash.length !== 0) {\n writer.uint32(74).bytes(message.nextValidatorsHash);\n }\n if (message.consensusHash.length !== 0) {\n writer.uint32(82).bytes(message.consensusHash);\n }\n if (message.appHash.length !== 0) {\n writer.uint32(90).bytes(message.appHash);\n }\n if (message.lastResultsHash.length !== 0) {\n writer.uint32(98).bytes(message.lastResultsHash);\n }\n if (message.evidenceHash.length !== 0) {\n writer.uint32(106).bytes(message.evidenceHash);\n }\n if (message.proposerAddress.length !== 0) {\n writer.uint32(114).bytes(message.proposerAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseHeader);\n message.lastCommitHash = new Uint8Array();\n message.dataHash = new Uint8Array();\n message.validatorsHash = new Uint8Array();\n message.nextValidatorsHash = new Uint8Array();\n message.consensusHash = new Uint8Array();\n message.appHash = new Uint8Array();\n message.lastResultsHash = new Uint8Array();\n message.evidenceHash = new Uint8Array();\n message.proposerAddress = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.version = types_1.Consensus.decode(reader, reader.uint32());\n break;\n case 2:\n message.chainId = reader.string();\n break;\n case 3:\n message.height = reader.int64();\n break;\n case 4:\n message.time = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));\n break;\n case 5:\n message.lastBlockId = exports.BlockID.decode(reader, reader.uint32());\n break;\n case 6:\n message.lastCommitHash = reader.bytes();\n break;\n case 7:\n message.dataHash = reader.bytes();\n break;\n case 8:\n message.validatorsHash = reader.bytes();\n break;\n case 9:\n message.nextValidatorsHash = reader.bytes();\n break;\n case 10:\n message.consensusHash = reader.bytes();\n break;\n case 11:\n message.appHash = reader.bytes();\n break;\n case 12:\n message.lastResultsHash = reader.bytes();\n break;\n case 13:\n message.evidenceHash = reader.bytes();\n break;\n case 14:\n message.proposerAddress = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseHeader);\n message.lastCommitHash = new Uint8Array();\n message.dataHash = new Uint8Array();\n message.validatorsHash = new Uint8Array();\n message.nextValidatorsHash = new Uint8Array();\n message.consensusHash = new Uint8Array();\n message.appHash = new Uint8Array();\n message.lastResultsHash = new Uint8Array();\n message.evidenceHash = new Uint8Array();\n message.proposerAddress = new Uint8Array();\n if (object.version !== undefined && object.version !== null) {\n message.version = types_1.Consensus.fromJSON(object.version);\n }\n else {\n message.version = undefined;\n }\n if (object.chainId !== undefined && object.chainId !== null) {\n message.chainId = String(object.chainId);\n }\n else {\n message.chainId = \"\";\n }\n if (object.height !== undefined && object.height !== null) {\n message.height = long_1.default.fromString(object.height);\n }\n else {\n message.height = long_1.default.ZERO;\n }\n if (object.time !== undefined && object.time !== null) {\n message.time = fromJsonTimestamp(object.time);\n }\n else {\n message.time = undefined;\n }\n if (object.lastBlockId !== undefined && object.lastBlockId !== null) {\n message.lastBlockId = exports.BlockID.fromJSON(object.lastBlockId);\n }\n else {\n message.lastBlockId = undefined;\n }\n if (object.lastCommitHash !== undefined && object.lastCommitHash !== null) {\n message.lastCommitHash = bytesFromBase64(object.lastCommitHash);\n }\n if (object.dataHash !== undefined && object.dataHash !== null) {\n message.dataHash = bytesFromBase64(object.dataHash);\n }\n if (object.validatorsHash !== undefined && object.validatorsHash !== null) {\n message.validatorsHash = bytesFromBase64(object.validatorsHash);\n }\n if (object.nextValidatorsHash !== undefined && object.nextValidatorsHash !== null) {\n message.nextValidatorsHash = bytesFromBase64(object.nextValidatorsHash);\n }\n if (object.consensusHash !== undefined && object.consensusHash !== null) {\n message.consensusHash = bytesFromBase64(object.consensusHash);\n }\n if (object.appHash !== undefined && object.appHash !== null) {\n message.appHash = bytesFromBase64(object.appHash);\n }\n if (object.lastResultsHash !== undefined && object.lastResultsHash !== null) {\n message.lastResultsHash = bytesFromBase64(object.lastResultsHash);\n }\n if (object.evidenceHash !== undefined && object.evidenceHash !== null) {\n message.evidenceHash = bytesFromBase64(object.evidenceHash);\n }\n if (object.proposerAddress !== undefined && object.proposerAddress !== null) {\n message.proposerAddress = bytesFromBase64(object.proposerAddress);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.version !== undefined &&\n (obj.version = message.version ? types_1.Consensus.toJSON(message.version) : undefined);\n message.chainId !== undefined && (obj.chainId = message.chainId);\n message.height !== undefined && (obj.height = (message.height || long_1.default.ZERO).toString());\n message.time !== undefined && (obj.time = message.time.toISOString());\n message.lastBlockId !== undefined &&\n (obj.lastBlockId = message.lastBlockId ? exports.BlockID.toJSON(message.lastBlockId) : undefined);\n message.lastCommitHash !== undefined &&\n (obj.lastCommitHash = base64FromBytes(message.lastCommitHash !== undefined ? message.lastCommitHash : new Uint8Array()));\n message.dataHash !== undefined &&\n (obj.dataHash = base64FromBytes(message.dataHash !== undefined ? message.dataHash : new Uint8Array()));\n message.validatorsHash !== undefined &&\n (obj.validatorsHash = base64FromBytes(message.validatorsHash !== undefined ? message.validatorsHash : new Uint8Array()));\n message.nextValidatorsHash !== undefined &&\n (obj.nextValidatorsHash = base64FromBytes(message.nextValidatorsHash !== undefined ? message.nextValidatorsHash : new Uint8Array()));\n message.consensusHash !== undefined &&\n (obj.consensusHash = base64FromBytes(message.consensusHash !== undefined ? message.consensusHash : new Uint8Array()));\n message.appHash !== undefined &&\n (obj.appHash = base64FromBytes(message.appHash !== undefined ? message.appHash : new Uint8Array()));\n message.lastResultsHash !== undefined &&\n (obj.lastResultsHash = base64FromBytes(message.lastResultsHash !== undefined ? message.lastResultsHash : new Uint8Array()));\n message.evidenceHash !== undefined &&\n (obj.evidenceHash = base64FromBytes(message.evidenceHash !== undefined ? message.evidenceHash : new Uint8Array()));\n message.proposerAddress !== undefined &&\n (obj.proposerAddress = base64FromBytes(message.proposerAddress !== undefined ? message.proposerAddress : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseHeader);\n if (object.version !== undefined && object.version !== null) {\n message.version = types_1.Consensus.fromPartial(object.version);\n }\n else {\n message.version = undefined;\n }\n if (object.chainId !== undefined && object.chainId !== null) {\n message.chainId = object.chainId;\n }\n else {\n message.chainId = \"\";\n }\n if (object.height !== undefined && object.height !== null) {\n message.height = object.height;\n }\n else {\n message.height = long_1.default.ZERO;\n }\n if (object.time !== undefined && object.time !== null) {\n message.time = object.time;\n }\n else {\n message.time = undefined;\n }\n if (object.lastBlockId !== undefined && object.lastBlockId !== null) {\n message.lastBlockId = exports.BlockID.fromPartial(object.lastBlockId);\n }\n else {\n message.lastBlockId = undefined;\n }\n if (object.lastCommitHash !== undefined && object.lastCommitHash !== null) {\n message.lastCommitHash = object.lastCommitHash;\n }\n else {\n message.lastCommitHash = new Uint8Array();\n }\n if (object.dataHash !== undefined && object.dataHash !== null) {\n message.dataHash = object.dataHash;\n }\n else {\n message.dataHash = new Uint8Array();\n }\n if (object.validatorsHash !== undefined && object.validatorsHash !== null) {\n message.validatorsHash = object.validatorsHash;\n }\n else {\n message.validatorsHash = new Uint8Array();\n }\n if (object.nextValidatorsHash !== undefined && object.nextValidatorsHash !== null) {\n message.nextValidatorsHash = object.nextValidatorsHash;\n }\n else {\n message.nextValidatorsHash = new Uint8Array();\n }\n if (object.consensusHash !== undefined && object.consensusHash !== null) {\n message.consensusHash = object.consensusHash;\n }\n else {\n message.consensusHash = new Uint8Array();\n }\n if (object.appHash !== undefined && object.appHash !== null) {\n message.appHash = object.appHash;\n }\n else {\n message.appHash = new Uint8Array();\n }\n if (object.lastResultsHash !== undefined && object.lastResultsHash !== null) {\n message.lastResultsHash = object.lastResultsHash;\n }\n else {\n message.lastResultsHash = new Uint8Array();\n }\n if (object.evidenceHash !== undefined && object.evidenceHash !== null) {\n message.evidenceHash = object.evidenceHash;\n }\n else {\n message.evidenceHash = new Uint8Array();\n }\n if (object.proposerAddress !== undefined && object.proposerAddress !== null) {\n message.proposerAddress = object.proposerAddress;\n }\n else {\n message.proposerAddress = new Uint8Array();\n }\n return message;\n },\n};\nconst baseData = {};\nexports.Data = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.txs) {\n writer.uint32(10).bytes(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseData);\n message.txs = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.txs.push(reader.bytes());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseData);\n message.txs = [];\n if (object.txs !== undefined && object.txs !== null) {\n for (const e of object.txs) {\n message.txs.push(bytesFromBase64(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.txs) {\n obj.txs = message.txs.map((e) => base64FromBytes(e !== undefined ? e : new Uint8Array()));\n }\n else {\n obj.txs = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseData);\n message.txs = [];\n if (object.txs !== undefined && object.txs !== null) {\n for (const e of object.txs) {\n message.txs.push(e);\n }\n }\n return message;\n },\n};\nconst baseVote = { type: 0, height: long_1.default.ZERO, round: 0, validatorIndex: 0 };\nexports.Vote = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.type !== 0) {\n writer.uint32(8).int32(message.type);\n }\n if (!message.height.isZero()) {\n writer.uint32(16).int64(message.height);\n }\n if (message.round !== 0) {\n writer.uint32(24).int32(message.round);\n }\n if (message.blockId !== undefined) {\n exports.BlockID.encode(message.blockId, writer.uint32(34).fork()).ldelim();\n }\n if (message.timestamp !== undefined) {\n timestamp_1.Timestamp.encode(toTimestamp(message.timestamp), writer.uint32(42).fork()).ldelim();\n }\n if (message.validatorAddress.length !== 0) {\n writer.uint32(50).bytes(message.validatorAddress);\n }\n if (message.validatorIndex !== 0) {\n writer.uint32(56).int32(message.validatorIndex);\n }\n if (message.signature.length !== 0) {\n writer.uint32(66).bytes(message.signature);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseVote);\n message.validatorAddress = new Uint8Array();\n message.signature = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.type = reader.int32();\n break;\n case 2:\n message.height = reader.int64();\n break;\n case 3:\n message.round = reader.int32();\n break;\n case 4:\n message.blockId = exports.BlockID.decode(reader, reader.uint32());\n break;\n case 5:\n message.timestamp = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));\n break;\n case 6:\n message.validatorAddress = reader.bytes();\n break;\n case 7:\n message.validatorIndex = reader.int32();\n break;\n case 8:\n message.signature = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseVote);\n message.validatorAddress = new Uint8Array();\n message.signature = new Uint8Array();\n if (object.type !== undefined && object.type !== null) {\n message.type = signedMsgTypeFromJSON(object.type);\n }\n else {\n message.type = 0;\n }\n if (object.height !== undefined && object.height !== null) {\n message.height = long_1.default.fromString(object.height);\n }\n else {\n message.height = long_1.default.ZERO;\n }\n if (object.round !== undefined && object.round !== null) {\n message.round = Number(object.round);\n }\n else {\n message.round = 0;\n }\n if (object.blockId !== undefined && object.blockId !== null) {\n message.blockId = exports.BlockID.fromJSON(object.blockId);\n }\n else {\n message.blockId = undefined;\n }\n if (object.timestamp !== undefined && object.timestamp !== null) {\n message.timestamp = fromJsonTimestamp(object.timestamp);\n }\n else {\n message.timestamp = undefined;\n }\n if (object.validatorAddress !== undefined && object.validatorAddress !== null) {\n message.validatorAddress = bytesFromBase64(object.validatorAddress);\n }\n if (object.validatorIndex !== undefined && object.validatorIndex !== null) {\n message.validatorIndex = Number(object.validatorIndex);\n }\n else {\n message.validatorIndex = 0;\n }\n if (object.signature !== undefined && object.signature !== null) {\n message.signature = bytesFromBase64(object.signature);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.type !== undefined && (obj.type = signedMsgTypeToJSON(message.type));\n message.height !== undefined && (obj.height = (message.height || long_1.default.ZERO).toString());\n message.round !== undefined && (obj.round = message.round);\n message.blockId !== undefined &&\n (obj.blockId = message.blockId ? exports.BlockID.toJSON(message.blockId) : undefined);\n message.timestamp !== undefined && (obj.timestamp = message.timestamp.toISOString());\n message.validatorAddress !== undefined &&\n (obj.validatorAddress = base64FromBytes(message.validatorAddress !== undefined ? message.validatorAddress : new Uint8Array()));\n message.validatorIndex !== undefined && (obj.validatorIndex = message.validatorIndex);\n message.signature !== undefined &&\n (obj.signature = base64FromBytes(message.signature !== undefined ? message.signature : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseVote);\n if (object.type !== undefined && object.type !== null) {\n message.type = object.type;\n }\n else {\n message.type = 0;\n }\n if (object.height !== undefined && object.height !== null) {\n message.height = object.height;\n }\n else {\n message.height = long_1.default.ZERO;\n }\n if (object.round !== undefined && object.round !== null) {\n message.round = object.round;\n }\n else {\n message.round = 0;\n }\n if (object.blockId !== undefined && object.blockId !== null) {\n message.blockId = exports.BlockID.fromPartial(object.blockId);\n }\n else {\n message.blockId = undefined;\n }\n if (object.timestamp !== undefined && object.timestamp !== null) {\n message.timestamp = object.timestamp;\n }\n else {\n message.timestamp = undefined;\n }\n if (object.validatorAddress !== undefined && object.validatorAddress !== null) {\n message.validatorAddress = object.validatorAddress;\n }\n else {\n message.validatorAddress = new Uint8Array();\n }\n if (object.validatorIndex !== undefined && object.validatorIndex !== null) {\n message.validatorIndex = object.validatorIndex;\n }\n else {\n message.validatorIndex = 0;\n }\n if (object.signature !== undefined && object.signature !== null) {\n message.signature = object.signature;\n }\n else {\n message.signature = new Uint8Array();\n }\n return message;\n },\n};\nconst baseCommit = { height: long_1.default.ZERO, round: 0 };\nexports.Commit = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.height.isZero()) {\n writer.uint32(8).int64(message.height);\n }\n if (message.round !== 0) {\n writer.uint32(16).int32(message.round);\n }\n if (message.blockId !== undefined) {\n exports.BlockID.encode(message.blockId, writer.uint32(26).fork()).ldelim();\n }\n for (const v of message.signatures) {\n exports.CommitSig.encode(v, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseCommit);\n message.signatures = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.height = reader.int64();\n break;\n case 2:\n message.round = reader.int32();\n break;\n case 3:\n message.blockId = exports.BlockID.decode(reader, reader.uint32());\n break;\n case 4:\n message.signatures.push(exports.CommitSig.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseCommit);\n message.signatures = [];\n if (object.height !== undefined && object.height !== null) {\n message.height = long_1.default.fromString(object.height);\n }\n else {\n message.height = long_1.default.ZERO;\n }\n if (object.round !== undefined && object.round !== null) {\n message.round = Number(object.round);\n }\n else {\n message.round = 0;\n }\n if (object.blockId !== undefined && object.blockId !== null) {\n message.blockId = exports.BlockID.fromJSON(object.blockId);\n }\n else {\n message.blockId = undefined;\n }\n if (object.signatures !== undefined && object.signatures !== null) {\n for (const e of object.signatures) {\n message.signatures.push(exports.CommitSig.fromJSON(e));\n }\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.height !== undefined && (obj.height = (message.height || long_1.default.ZERO).toString());\n message.round !== undefined && (obj.round = message.round);\n message.blockId !== undefined &&\n (obj.blockId = message.blockId ? exports.BlockID.toJSON(message.blockId) : undefined);\n if (message.signatures) {\n obj.signatures = message.signatures.map((e) => (e ? exports.CommitSig.toJSON(e) : undefined));\n }\n else {\n obj.signatures = [];\n }\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseCommit);\n message.signatures = [];\n if (object.height !== undefined && object.height !== null) {\n message.height = object.height;\n }\n else {\n message.height = long_1.default.ZERO;\n }\n if (object.round !== undefined && object.round !== null) {\n message.round = object.round;\n }\n else {\n message.round = 0;\n }\n if (object.blockId !== undefined && object.blockId !== null) {\n message.blockId = exports.BlockID.fromPartial(object.blockId);\n }\n else {\n message.blockId = undefined;\n }\n if (object.signatures !== undefined && object.signatures !== null) {\n for (const e of object.signatures) {\n message.signatures.push(exports.CommitSig.fromPartial(e));\n }\n }\n return message;\n },\n};\nconst baseCommitSig = { blockIdFlag: 0 };\nexports.CommitSig = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.blockIdFlag !== 0) {\n writer.uint32(8).int32(message.blockIdFlag);\n }\n if (message.validatorAddress.length !== 0) {\n writer.uint32(18).bytes(message.validatorAddress);\n }\n if (message.timestamp !== undefined) {\n timestamp_1.Timestamp.encode(toTimestamp(message.timestamp), writer.uint32(26).fork()).ldelim();\n }\n if (message.signature.length !== 0) {\n writer.uint32(34).bytes(message.signature);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseCommitSig);\n message.validatorAddress = new Uint8Array();\n message.signature = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.blockIdFlag = reader.int32();\n break;\n case 2:\n message.validatorAddress = reader.bytes();\n break;\n case 3:\n message.timestamp = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));\n break;\n case 4:\n message.signature = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseCommitSig);\n message.validatorAddress = new Uint8Array();\n message.signature = new Uint8Array();\n if (object.blockIdFlag !== undefined && object.blockIdFlag !== null) {\n message.blockIdFlag = blockIDFlagFromJSON(object.blockIdFlag);\n }\n else {\n message.blockIdFlag = 0;\n }\n if (object.validatorAddress !== undefined && object.validatorAddress !== null) {\n message.validatorAddress = bytesFromBase64(object.validatorAddress);\n }\n if (object.timestamp !== undefined && object.timestamp !== null) {\n message.timestamp = fromJsonTimestamp(object.timestamp);\n }\n else {\n message.timestamp = undefined;\n }\n if (object.signature !== undefined && object.signature !== null) {\n message.signature = bytesFromBase64(object.signature);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.blockIdFlag !== undefined && (obj.blockIdFlag = blockIDFlagToJSON(message.blockIdFlag));\n message.validatorAddress !== undefined &&\n (obj.validatorAddress = base64FromBytes(message.validatorAddress !== undefined ? message.validatorAddress : new Uint8Array()));\n message.timestamp !== undefined && (obj.timestamp = message.timestamp.toISOString());\n message.signature !== undefined &&\n (obj.signature = base64FromBytes(message.signature !== undefined ? message.signature : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseCommitSig);\n if (object.blockIdFlag !== undefined && object.blockIdFlag !== null) {\n message.blockIdFlag = object.blockIdFlag;\n }\n else {\n message.blockIdFlag = 0;\n }\n if (object.validatorAddress !== undefined && object.validatorAddress !== null) {\n message.validatorAddress = object.validatorAddress;\n }\n else {\n message.validatorAddress = new Uint8Array();\n }\n if (object.timestamp !== undefined && object.timestamp !== null) {\n message.timestamp = object.timestamp;\n }\n else {\n message.timestamp = undefined;\n }\n if (object.signature !== undefined && object.signature !== null) {\n message.signature = object.signature;\n }\n else {\n message.signature = new Uint8Array();\n }\n return message;\n },\n};\nconst baseProposal = { type: 0, height: long_1.default.ZERO, round: 0, polRound: 0 };\nexports.Proposal = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.type !== 0) {\n writer.uint32(8).int32(message.type);\n }\n if (!message.height.isZero()) {\n writer.uint32(16).int64(message.height);\n }\n if (message.round !== 0) {\n writer.uint32(24).int32(message.round);\n }\n if (message.polRound !== 0) {\n writer.uint32(32).int32(message.polRound);\n }\n if (message.blockId !== undefined) {\n exports.BlockID.encode(message.blockId, writer.uint32(42).fork()).ldelim();\n }\n if (message.timestamp !== undefined) {\n timestamp_1.Timestamp.encode(toTimestamp(message.timestamp), writer.uint32(50).fork()).ldelim();\n }\n if (message.signature.length !== 0) {\n writer.uint32(58).bytes(message.signature);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseProposal);\n message.signature = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.type = reader.int32();\n break;\n case 2:\n message.height = reader.int64();\n break;\n case 3:\n message.round = reader.int32();\n break;\n case 4:\n message.polRound = reader.int32();\n break;\n case 5:\n message.blockId = exports.BlockID.decode(reader, reader.uint32());\n break;\n case 6:\n message.timestamp = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));\n break;\n case 7:\n message.signature = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseProposal);\n message.signature = new Uint8Array();\n if (object.type !== undefined && object.type !== null) {\n message.type = signedMsgTypeFromJSON(object.type);\n }\n else {\n message.type = 0;\n }\n if (object.height !== undefined && object.height !== null) {\n message.height = long_1.default.fromString(object.height);\n }\n else {\n message.height = long_1.default.ZERO;\n }\n if (object.round !== undefined && object.round !== null) {\n message.round = Number(object.round);\n }\n else {\n message.round = 0;\n }\n if (object.polRound !== undefined && object.polRound !== null) {\n message.polRound = Number(object.polRound);\n }\n else {\n message.polRound = 0;\n }\n if (object.blockId !== undefined && object.blockId !== null) {\n message.blockId = exports.BlockID.fromJSON(object.blockId);\n }\n else {\n message.blockId = undefined;\n }\n if (object.timestamp !== undefined && object.timestamp !== null) {\n message.timestamp = fromJsonTimestamp(object.timestamp);\n }\n else {\n message.timestamp = undefined;\n }\n if (object.signature !== undefined && object.signature !== null) {\n message.signature = bytesFromBase64(object.signature);\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.type !== undefined && (obj.type = signedMsgTypeToJSON(message.type));\n message.height !== undefined && (obj.height = (message.height || long_1.default.ZERO).toString());\n message.round !== undefined && (obj.round = message.round);\n message.polRound !== undefined && (obj.polRound = message.polRound);\n message.blockId !== undefined &&\n (obj.blockId = message.blockId ? exports.BlockID.toJSON(message.blockId) : undefined);\n message.timestamp !== undefined && (obj.timestamp = message.timestamp.toISOString());\n message.signature !== undefined &&\n (obj.signature = base64FromBytes(message.signature !== undefined ? message.signature : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseProposal);\n if (object.type !== undefined && object.type !== null) {\n message.type = object.type;\n }\n else {\n message.type = 0;\n }\n if (object.height !== undefined && object.height !== null) {\n message.height = object.height;\n }\n else {\n message.height = long_1.default.ZERO;\n }\n if (object.round !== undefined && object.round !== null) {\n message.round = object.round;\n }\n else {\n message.round = 0;\n }\n if (object.polRound !== undefined && object.polRound !== null) {\n message.polRound = object.polRound;\n }\n else {\n message.polRound = 0;\n }\n if (object.blockId !== undefined && object.blockId !== null) {\n message.blockId = exports.BlockID.fromPartial(object.blockId);\n }\n else {\n message.blockId = undefined;\n }\n if (object.timestamp !== undefined && object.timestamp !== null) {\n message.timestamp = object.timestamp;\n }\n else {\n message.timestamp = undefined;\n }\n if (object.signature !== undefined && object.signature !== null) {\n message.signature = object.signature;\n }\n else {\n message.signature = new Uint8Array();\n }\n return message;\n },\n};\nconst baseSignedHeader = {};\nexports.SignedHeader = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.header !== undefined) {\n exports.Header.encode(message.header, writer.uint32(10).fork()).ldelim();\n }\n if (message.commit !== undefined) {\n exports.Commit.encode(message.commit, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSignedHeader);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.header = exports.Header.decode(reader, reader.uint32());\n break;\n case 2:\n message.commit = exports.Commit.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseSignedHeader);\n if (object.header !== undefined && object.header !== null) {\n message.header = exports.Header.fromJSON(object.header);\n }\n else {\n message.header = undefined;\n }\n if (object.commit !== undefined && object.commit !== null) {\n message.commit = exports.Commit.fromJSON(object.commit);\n }\n else {\n message.commit = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.header !== undefined && (obj.header = message.header ? exports.Header.toJSON(message.header) : undefined);\n message.commit !== undefined && (obj.commit = message.commit ? exports.Commit.toJSON(message.commit) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseSignedHeader);\n if (object.header !== undefined && object.header !== null) {\n message.header = exports.Header.fromPartial(object.header);\n }\n else {\n message.header = undefined;\n }\n if (object.commit !== undefined && object.commit !== null) {\n message.commit = exports.Commit.fromPartial(object.commit);\n }\n else {\n message.commit = undefined;\n }\n return message;\n },\n};\nconst baseLightBlock = {};\nexports.LightBlock = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.signedHeader !== undefined) {\n exports.SignedHeader.encode(message.signedHeader, writer.uint32(10).fork()).ldelim();\n }\n if (message.validatorSet !== undefined) {\n validator_1.ValidatorSet.encode(message.validatorSet, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseLightBlock);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.signedHeader = exports.SignedHeader.decode(reader, reader.uint32());\n break;\n case 2:\n message.validatorSet = validator_1.ValidatorSet.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseLightBlock);\n if (object.signedHeader !== undefined && object.signedHeader !== null) {\n message.signedHeader = exports.SignedHeader.fromJSON(object.signedHeader);\n }\n else {\n message.signedHeader = undefined;\n }\n if (object.validatorSet !== undefined && object.validatorSet !== null) {\n message.validatorSet = validator_1.ValidatorSet.fromJSON(object.validatorSet);\n }\n else {\n message.validatorSet = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.signedHeader !== undefined &&\n (obj.signedHeader = message.signedHeader ? exports.SignedHeader.toJSON(message.signedHeader) : undefined);\n message.validatorSet !== undefined &&\n (obj.validatorSet = message.validatorSet ? validator_1.ValidatorSet.toJSON(message.validatorSet) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseLightBlock);\n if (object.signedHeader !== undefined && object.signedHeader !== null) {\n message.signedHeader = exports.SignedHeader.fromPartial(object.signedHeader);\n }\n else {\n message.signedHeader = undefined;\n }\n if (object.validatorSet !== undefined && object.validatorSet !== null) {\n message.validatorSet = validator_1.ValidatorSet.fromPartial(object.validatorSet);\n }\n else {\n message.validatorSet = undefined;\n }\n return message;\n },\n};\nconst baseBlockMeta = { blockSize: long_1.default.ZERO, numTxs: long_1.default.ZERO };\nexports.BlockMeta = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.blockId !== undefined) {\n exports.BlockID.encode(message.blockId, writer.uint32(10).fork()).ldelim();\n }\n if (!message.blockSize.isZero()) {\n writer.uint32(16).int64(message.blockSize);\n }\n if (message.header !== undefined) {\n exports.Header.encode(message.header, writer.uint32(26).fork()).ldelim();\n }\n if (!message.numTxs.isZero()) {\n writer.uint32(32).int64(message.numTxs);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseBlockMeta);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.blockId = exports.BlockID.decode(reader, reader.uint32());\n break;\n case 2:\n message.blockSize = reader.int64();\n break;\n case 3:\n message.header = exports.Header.decode(reader, reader.uint32());\n break;\n case 4:\n message.numTxs = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseBlockMeta);\n if (object.blockId !== undefined && object.blockId !== null) {\n message.blockId = exports.BlockID.fromJSON(object.blockId);\n }\n else {\n message.blockId = undefined;\n }\n if (object.blockSize !== undefined && object.blockSize !== null) {\n message.blockSize = long_1.default.fromString(object.blockSize);\n }\n else {\n message.blockSize = long_1.default.ZERO;\n }\n if (object.header !== undefined && object.header !== null) {\n message.header = exports.Header.fromJSON(object.header);\n }\n else {\n message.header = undefined;\n }\n if (object.numTxs !== undefined && object.numTxs !== null) {\n message.numTxs = long_1.default.fromString(object.numTxs);\n }\n else {\n message.numTxs = long_1.default.ZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.blockId !== undefined &&\n (obj.blockId = message.blockId ? exports.BlockID.toJSON(message.blockId) : undefined);\n message.blockSize !== undefined && (obj.blockSize = (message.blockSize || long_1.default.ZERO).toString());\n message.header !== undefined && (obj.header = message.header ? exports.Header.toJSON(message.header) : undefined);\n message.numTxs !== undefined && (obj.numTxs = (message.numTxs || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseBlockMeta);\n if (object.blockId !== undefined && object.blockId !== null) {\n message.blockId = exports.BlockID.fromPartial(object.blockId);\n }\n else {\n message.blockId = undefined;\n }\n if (object.blockSize !== undefined && object.blockSize !== null) {\n message.blockSize = object.blockSize;\n }\n else {\n message.blockSize = long_1.default.ZERO;\n }\n if (object.header !== undefined && object.header !== null) {\n message.header = exports.Header.fromPartial(object.header);\n }\n else {\n message.header = undefined;\n }\n if (object.numTxs !== undefined && object.numTxs !== null) {\n message.numTxs = object.numTxs;\n }\n else {\n message.numTxs = long_1.default.ZERO;\n }\n return message;\n },\n};\nconst baseTxProof = {};\nexports.TxProof = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.rootHash.length !== 0) {\n writer.uint32(10).bytes(message.rootHash);\n }\n if (message.data.length !== 0) {\n writer.uint32(18).bytes(message.data);\n }\n if (message.proof !== undefined) {\n proof_1.Proof.encode(message.proof, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseTxProof);\n message.rootHash = new Uint8Array();\n message.data = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.rootHash = reader.bytes();\n break;\n case 2:\n message.data = reader.bytes();\n break;\n case 3:\n message.proof = proof_1.Proof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseTxProof);\n message.rootHash = new Uint8Array();\n message.data = new Uint8Array();\n if (object.rootHash !== undefined && object.rootHash !== null) {\n message.rootHash = bytesFromBase64(object.rootHash);\n }\n if (object.data !== undefined && object.data !== null) {\n message.data = bytesFromBase64(object.data);\n }\n if (object.proof !== undefined && object.proof !== null) {\n message.proof = proof_1.Proof.fromJSON(object.proof);\n }\n else {\n message.proof = undefined;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.rootHash !== undefined &&\n (obj.rootHash = base64FromBytes(message.rootHash !== undefined ? message.rootHash : new Uint8Array()));\n message.data !== undefined &&\n (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));\n message.proof !== undefined && (obj.proof = message.proof ? proof_1.Proof.toJSON(message.proof) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseTxProof);\n if (object.rootHash !== undefined && object.rootHash !== null) {\n message.rootHash = object.rootHash;\n }\n else {\n message.rootHash = new Uint8Array();\n }\n if (object.data !== undefined && object.data !== null) {\n message.data = object.data;\n }\n else {\n message.data = new Uint8Array();\n }\n if (object.proof !== undefined && object.proof !== null) {\n message.proof = proof_1.Proof.fromPartial(object.proof);\n }\n else {\n message.proof = undefined;\n }\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nfunction toTimestamp(date) {\n const seconds = numberToLong(date.getTime() / 1000);\n const nanos = (date.getTime() % 1000) * 1000000;\n return { seconds, nanos };\n}\nfunction fromTimestamp(t) {\n let millis = t.seconds.toNumber() * 1000;\n millis += t.nanos / 1000000;\n return new Date(millis);\n}\nfunction fromJsonTimestamp(o) {\n if (o instanceof Date) {\n return o;\n }\n else if (typeof o === \"string\") {\n return new Date(o);\n }\n else {\n return fromTimestamp(timestamp_1.Timestamp.fromJSON(o));\n }\n}\nfunction numberToLong(number) {\n return long_1.default.fromNumber(number);\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=types.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SimpleValidator = exports.Validator = exports.ValidatorSet = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst keys_1 = require(\"../../tendermint/crypto/keys\");\nexports.protobufPackage = \"tendermint.types\";\nconst baseValidatorSet = { totalVotingPower: long_1.default.ZERO };\nexports.ValidatorSet = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.validators) {\n exports.Validator.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.proposer !== undefined) {\n exports.Validator.encode(message.proposer, writer.uint32(18).fork()).ldelim();\n }\n if (!message.totalVotingPower.isZero()) {\n writer.uint32(24).int64(message.totalVotingPower);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseValidatorSet);\n message.validators = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validators.push(exports.Validator.decode(reader, reader.uint32()));\n break;\n case 2:\n message.proposer = exports.Validator.decode(reader, reader.uint32());\n break;\n case 3:\n message.totalVotingPower = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseValidatorSet);\n message.validators = [];\n if (object.validators !== undefined && object.validators !== null) {\n for (const e of object.validators) {\n message.validators.push(exports.Validator.fromJSON(e));\n }\n }\n if (object.proposer !== undefined && object.proposer !== null) {\n message.proposer = exports.Validator.fromJSON(object.proposer);\n }\n else {\n message.proposer = undefined;\n }\n if (object.totalVotingPower !== undefined && object.totalVotingPower !== null) {\n message.totalVotingPower = long_1.default.fromString(object.totalVotingPower);\n }\n else {\n message.totalVotingPower = long_1.default.ZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.validators) {\n obj.validators = message.validators.map((e) => (e ? exports.Validator.toJSON(e) : undefined));\n }\n else {\n obj.validators = [];\n }\n message.proposer !== undefined &&\n (obj.proposer = message.proposer ? exports.Validator.toJSON(message.proposer) : undefined);\n message.totalVotingPower !== undefined &&\n (obj.totalVotingPower = (message.totalVotingPower || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseValidatorSet);\n message.validators = [];\n if (object.validators !== undefined && object.validators !== null) {\n for (const e of object.validators) {\n message.validators.push(exports.Validator.fromPartial(e));\n }\n }\n if (object.proposer !== undefined && object.proposer !== null) {\n message.proposer = exports.Validator.fromPartial(object.proposer);\n }\n else {\n message.proposer = undefined;\n }\n if (object.totalVotingPower !== undefined && object.totalVotingPower !== null) {\n message.totalVotingPower = object.totalVotingPower;\n }\n else {\n message.totalVotingPower = long_1.default.ZERO;\n }\n return message;\n },\n};\nconst baseValidator = { votingPower: long_1.default.ZERO, proposerPriority: long_1.default.ZERO };\nexports.Validator = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.address.length !== 0) {\n writer.uint32(10).bytes(message.address);\n }\n if (message.pubKey !== undefined) {\n keys_1.PublicKey.encode(message.pubKey, writer.uint32(18).fork()).ldelim();\n }\n if (!message.votingPower.isZero()) {\n writer.uint32(24).int64(message.votingPower);\n }\n if (!message.proposerPriority.isZero()) {\n writer.uint32(32).int64(message.proposerPriority);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseValidator);\n message.address = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.bytes();\n break;\n case 2:\n message.pubKey = keys_1.PublicKey.decode(reader, reader.uint32());\n break;\n case 3:\n message.votingPower = reader.int64();\n break;\n case 4:\n message.proposerPriority = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseValidator);\n message.address = new Uint8Array();\n if (object.address !== undefined && object.address !== null) {\n message.address = bytesFromBase64(object.address);\n }\n if (object.pubKey !== undefined && object.pubKey !== null) {\n message.pubKey = keys_1.PublicKey.fromJSON(object.pubKey);\n }\n else {\n message.pubKey = undefined;\n }\n if (object.votingPower !== undefined && object.votingPower !== null) {\n message.votingPower = long_1.default.fromString(object.votingPower);\n }\n else {\n message.votingPower = long_1.default.ZERO;\n }\n if (object.proposerPriority !== undefined && object.proposerPriority !== null) {\n message.proposerPriority = long_1.default.fromString(object.proposerPriority);\n }\n else {\n message.proposerPriority = long_1.default.ZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined &&\n (obj.address = base64FromBytes(message.address !== undefined ? message.address : new Uint8Array()));\n message.pubKey !== undefined &&\n (obj.pubKey = message.pubKey ? keys_1.PublicKey.toJSON(message.pubKey) : undefined);\n message.votingPower !== undefined && (obj.votingPower = (message.votingPower || long_1.default.ZERO).toString());\n message.proposerPriority !== undefined &&\n (obj.proposerPriority = (message.proposerPriority || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseValidator);\n if (object.address !== undefined && object.address !== null) {\n message.address = object.address;\n }\n else {\n message.address = new Uint8Array();\n }\n if (object.pubKey !== undefined && object.pubKey !== null) {\n message.pubKey = keys_1.PublicKey.fromPartial(object.pubKey);\n }\n else {\n message.pubKey = undefined;\n }\n if (object.votingPower !== undefined && object.votingPower !== null) {\n message.votingPower = object.votingPower;\n }\n else {\n message.votingPower = long_1.default.ZERO;\n }\n if (object.proposerPriority !== undefined && object.proposerPriority !== null) {\n message.proposerPriority = object.proposerPriority;\n }\n else {\n message.proposerPriority = long_1.default.ZERO;\n }\n return message;\n },\n};\nconst baseSimpleValidator = { votingPower: long_1.default.ZERO };\nexports.SimpleValidator = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.pubKey !== undefined) {\n keys_1.PublicKey.encode(message.pubKey, writer.uint32(10).fork()).ldelim();\n }\n if (!message.votingPower.isZero()) {\n writer.uint32(16).int64(message.votingPower);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSimpleValidator);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pubKey = keys_1.PublicKey.decode(reader, reader.uint32());\n break;\n case 2:\n message.votingPower = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseSimpleValidator);\n if (object.pubKey !== undefined && object.pubKey !== null) {\n message.pubKey = keys_1.PublicKey.fromJSON(object.pubKey);\n }\n else {\n message.pubKey = undefined;\n }\n if (object.votingPower !== undefined && object.votingPower !== null) {\n message.votingPower = long_1.default.fromString(object.votingPower);\n }\n else {\n message.votingPower = long_1.default.ZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.pubKey !== undefined &&\n (obj.pubKey = message.pubKey ? keys_1.PublicKey.toJSON(message.pubKey) : undefined);\n message.votingPower !== undefined && (obj.votingPower = (message.votingPower || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseSimpleValidator);\n if (object.pubKey !== undefined && object.pubKey !== null) {\n message.pubKey = keys_1.PublicKey.fromPartial(object.pubKey);\n }\n else {\n message.pubKey = undefined;\n }\n if (object.votingPower !== undefined && object.votingPower !== null) {\n message.votingPower = object.votingPower;\n }\n else {\n message.votingPower = long_1.default.ZERO;\n }\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=validator.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Consensus = exports.App = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nexports.protobufPackage = \"tendermint.version\";\nconst baseApp = { protocol: long_1.default.UZERO, software: \"\" };\nexports.App = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.protocol.isZero()) {\n writer.uint32(8).uint64(message.protocol);\n }\n if (message.software !== \"\") {\n writer.uint32(18).string(message.software);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseApp);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.protocol = reader.uint64();\n break;\n case 2:\n message.software = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseApp);\n if (object.protocol !== undefined && object.protocol !== null) {\n message.protocol = long_1.default.fromString(object.protocol);\n }\n else {\n message.protocol = long_1.default.UZERO;\n }\n if (object.software !== undefined && object.software !== null) {\n message.software = String(object.software);\n }\n else {\n message.software = \"\";\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.protocol !== undefined && (obj.protocol = (message.protocol || long_1.default.UZERO).toString());\n message.software !== undefined && (obj.software = message.software);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseApp);\n if (object.protocol !== undefined && object.protocol !== null) {\n message.protocol = object.protocol;\n }\n else {\n message.protocol = long_1.default.UZERO;\n }\n if (object.software !== undefined && object.software !== null) {\n message.software = object.software;\n }\n else {\n message.software = \"\";\n }\n return message;\n },\n};\nconst baseConsensus = { block: long_1.default.UZERO, app: long_1.default.UZERO };\nexports.Consensus = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.block.isZero()) {\n writer.uint32(8).uint64(message.block);\n }\n if (!message.app.isZero()) {\n writer.uint32(16).uint64(message.app);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseConsensus);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.block = reader.uint64();\n break;\n case 2:\n message.app = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseConsensus);\n if (object.block !== undefined && object.block !== null) {\n message.block = long_1.default.fromString(object.block);\n }\n else {\n message.block = long_1.default.UZERO;\n }\n if (object.app !== undefined && object.app !== null) {\n message.app = long_1.default.fromString(object.app);\n }\n else {\n message.app = long_1.default.UZERO;\n }\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.block !== undefined && (obj.block = (message.block || long_1.default.UZERO).toString());\n message.app !== undefined && (obj.app = (message.app || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseConsensus);\n if (object.block !== undefined && object.block !== null) {\n message.block = object.block;\n }\n else {\n message.block = long_1.default.UZERO;\n }\n if (object.app !== undefined && object.app !== null) {\n message.app = object.app;\n }\n else {\n message.app = long_1.default.UZERO;\n }\n return message;\n },\n};\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=types.js.map","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// identity function for calling harmony imports with the correct context\n/******/ \t__webpack_require__.i = function(value) { return value; };\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 1);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar util_1 = __webpack_require__(3);\nfunction isBrowserHeaders(arg) {\n return typeof arg === \"object\" && typeof arg.headersMap === \"object\" && typeof arg.forEach === \"function\";\n}\nvar BrowserHeaders = (function () {\n function BrowserHeaders(init, options) {\n if (init === void 0) { init = {}; }\n if (options === void 0) { options = { splitValues: false }; }\n var _this = this;\n this.headersMap = {};\n if (init) {\n if (typeof Headers !== \"undefined\" && init instanceof Headers) {\n var keys = util_1.getHeaderKeys(init);\n keys.forEach(function (key) {\n var values = util_1.getHeaderValues(init, key);\n values.forEach(function (value) {\n if (options.splitValues) {\n _this.append(key, util_1.splitHeaderValue(value));\n }\n else {\n _this.append(key, value);\n }\n });\n });\n }\n else if (isBrowserHeaders(init)) {\n init.forEach(function (key, values) {\n _this.append(key, values);\n });\n }\n else if (typeof Map !== \"undefined\" && init instanceof Map) {\n var asMap = init;\n asMap.forEach(function (value, key) {\n _this.append(key, value);\n });\n }\n else if (typeof init === \"string\") {\n this.appendFromString(init);\n }\n else if (typeof init === \"object\") {\n Object.getOwnPropertyNames(init).forEach(function (key) {\n var asObject = init;\n var values = asObject[key];\n if (Array.isArray(values)) {\n values.forEach(function (value) {\n _this.append(key, value);\n });\n }\n else {\n _this.append(key, values);\n }\n });\n }\n }\n }\n BrowserHeaders.prototype.appendFromString = function (str) {\n var pairs = str.split(\"\\r\\n\");\n for (var i = 0; i < pairs.length; i++) {\n var p = pairs[i];\n var index = p.indexOf(\":\");\n if (index > 0) {\n var key = p.substring(0, index).trim();\n var value = p.substring(index + 1).trim();\n this.append(key, value);\n }\n }\n };\n BrowserHeaders.prototype.delete = function (key, value) {\n var normalizedKey = util_1.normalizeName(key);\n if (value === undefined) {\n delete this.headersMap[normalizedKey];\n }\n else {\n var existing = this.headersMap[normalizedKey];\n if (existing) {\n var index = existing.indexOf(value);\n if (index >= 0) {\n existing.splice(index, 1);\n }\n if (existing.length === 0) {\n delete this.headersMap[normalizedKey];\n }\n }\n }\n };\n BrowserHeaders.prototype.append = function (key, value) {\n var _this = this;\n var normalizedKey = util_1.normalizeName(key);\n if (!Array.isArray(this.headersMap[normalizedKey])) {\n this.headersMap[normalizedKey] = [];\n }\n if (Array.isArray(value)) {\n value.forEach(function (arrayValue) {\n _this.headersMap[normalizedKey].push(util_1.normalizeValue(arrayValue));\n });\n }\n else {\n this.headersMap[normalizedKey].push(util_1.normalizeValue(value));\n }\n };\n BrowserHeaders.prototype.set = function (key, value) {\n var normalizedKey = util_1.normalizeName(key);\n if (Array.isArray(value)) {\n var normalized_1 = [];\n value.forEach(function (arrayValue) {\n normalized_1.push(util_1.normalizeValue(arrayValue));\n });\n this.headersMap[normalizedKey] = normalized_1;\n }\n else {\n this.headersMap[normalizedKey] = [util_1.normalizeValue(value)];\n }\n };\n BrowserHeaders.prototype.has = function (key, value) {\n var keyArray = this.headersMap[util_1.normalizeName(key)];\n var keyExists = Array.isArray(keyArray);\n if (!keyExists) {\n return false;\n }\n if (value !== undefined) {\n var normalizedValue = util_1.normalizeValue(value);\n return keyArray.indexOf(normalizedValue) >= 0;\n }\n else {\n return true;\n }\n };\n BrowserHeaders.prototype.get = function (key) {\n var values = this.headersMap[util_1.normalizeName(key)];\n if (values !== undefined) {\n return values.concat();\n }\n return [];\n };\n BrowserHeaders.prototype.forEach = function (callback) {\n var _this = this;\n Object.getOwnPropertyNames(this.headersMap)\n .forEach(function (key) {\n callback(key, _this.headersMap[key]);\n }, this);\n };\n BrowserHeaders.prototype.toHeaders = function () {\n if (typeof Headers !== \"undefined\") {\n var headers_1 = new Headers();\n this.forEach(function (key, values) {\n values.forEach(function (value) {\n headers_1.append(key, value);\n });\n });\n return headers_1;\n }\n else {\n throw new Error(\"Headers class is not defined\");\n }\n };\n return BrowserHeaders;\n}());\nexports.BrowserHeaders = BrowserHeaders;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BrowserHeaders_1 = __webpack_require__(0);\nexports.BrowserHeaders = BrowserHeaders_1.BrowserHeaders;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction iterateHeaders(headers, callback) {\n var iterator = headers[Symbol.iterator]();\n var entry = iterator.next();\n while (!entry.done) {\n callback(entry.value[0]);\n entry = iterator.next();\n }\n}\nexports.iterateHeaders = iterateHeaders;\nfunction iterateHeadersKeys(headers, callback) {\n var iterator = headers.keys();\n var entry = iterator.next();\n while (!entry.done) {\n callback(entry.value);\n entry = iterator.next();\n }\n}\nexports.iterateHeadersKeys = iterateHeadersKeys;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar iterateHeaders_1 = __webpack_require__(2);\nfunction normalizeName(name) {\n if (typeof name !== \"string\") {\n name = String(name);\n }\n if (/[^a-z0-9\\-#$%&'*+.\\^_`|~]/i.test(name)) {\n throw new TypeError(\"Invalid character in header field name\");\n }\n return name.toLowerCase();\n}\nexports.normalizeName = normalizeName;\nfunction normalizeValue(value) {\n if (typeof value !== \"string\") {\n value = String(value);\n }\n return value;\n}\nexports.normalizeValue = normalizeValue;\nfunction getHeaderValues(headersAsNative, key) {\n var headers = toWindowHeaders(headersAsNative);\n if (headers instanceof Headers && headers.getAll) {\n return headers.getAll(key);\n }\n var getValue = headers.get(key);\n if (getValue && typeof getValue === \"string\") {\n return [getValue];\n }\n return getValue;\n}\nexports.getHeaderValues = getHeaderValues;\nfunction toWindowHeaders(headersAsNative) {\n return headersAsNative;\n}\nfunction getHeaderKeys(headersAsNative) {\n var headers = toWindowHeaders(headersAsNative);\n var asMap = {};\n var keys = [];\n if (headers.keys) {\n iterateHeaders_1.iterateHeadersKeys(headers, function (key) {\n if (!asMap[key]) {\n asMap[key] = true;\n keys.push(key);\n }\n });\n }\n else if (headers.forEach) {\n headers.forEach(function (_, key) {\n if (!asMap[key]) {\n asMap[key] = true;\n keys.push(key);\n }\n });\n }\n else {\n iterateHeaders_1.iterateHeaders(headers, function (entry) {\n var key = entry[0];\n if (!asMap[key]) {\n asMap[key] = true;\n keys.push(key);\n }\n });\n }\n return keys;\n}\nexports.getHeaderKeys = getHeaderKeys;\nfunction splitHeaderValue(str) {\n var values = [];\n var commaSpaceValues = str.split(\", \");\n commaSpaceValues.forEach(function (commaSpaceValue) {\n commaSpaceValue.split(\",\").forEach(function (commaValue) {\n values.push(commaValue);\n });\n });\n return values;\n}\nexports.splitHeaderValue = splitHeaderValue;\n\n\n/***/ })\n/******/ ]);\n});","module.exports = Long;\r\n\r\n/**\r\n * wasm optimizations, to do native i64 multiplication and divide\r\n */\r\nvar wasm = null;\r\n\r\ntry {\r\n wasm = new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([\r\n 0, 97, 115, 109, 1, 0, 0, 0, 1, 13, 2, 96, 0, 1, 127, 96, 4, 127, 127, 127, 127, 1, 127, 3, 7, 6, 0, 1, 1, 1, 1, 1, 6, 6, 1, 127, 1, 65, 0, 11, 7, 50, 6, 3, 109, 117, 108, 0, 1, 5, 100, 105, 118, 95, 115, 0, 2, 5, 100, 105, 118, 95, 117, 0, 3, 5, 114, 101, 109, 95, 115, 0, 4, 5, 114, 101, 109, 95, 117, 0, 5, 8, 103, 101, 116, 95, 104, 105, 103, 104, 0, 0, 10, 191, 1, 6, 4, 0, 35, 0, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 126, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 127, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 128, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 129, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 130, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11\r\n ])), {}).exports;\r\n} catch (e) {\r\n // no wasm support :(\r\n}\r\n\r\n/**\r\n * Constructs a 64 bit two's-complement integer, given its low and high 32 bit values as *signed* integers.\r\n * See the from* functions below for more convenient ways of constructing Longs.\r\n * @exports Long\r\n * @class A Long class for representing a 64 bit two's-complement integer value.\r\n * @param {number} low The low (signed) 32 bits of the long\r\n * @param {number} high The high (signed) 32 bits of the long\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @constructor\r\n */\r\nfunction Long(low, high, unsigned) {\r\n\r\n /**\r\n * The low 32 bits as a signed value.\r\n * @type {number}\r\n */\r\n this.low = low | 0;\r\n\r\n /**\r\n * The high 32 bits as a signed value.\r\n * @type {number}\r\n */\r\n this.high = high | 0;\r\n\r\n /**\r\n * Whether unsigned or not.\r\n * @type {boolean}\r\n */\r\n this.unsigned = !!unsigned;\r\n}\r\n\r\n// The internal representation of a long is the two given signed, 32-bit values.\r\n// We use 32-bit pieces because these are the size of integers on which\r\n// Javascript performs bit-operations. For operations like addition and\r\n// multiplication, we split each number into 16 bit pieces, which can easily be\r\n// multiplied within Javascript's floating-point representation without overflow\r\n// or change in sign.\r\n//\r\n// In the algorithms below, we frequently reduce the negative case to the\r\n// positive case by negating the input(s) and then post-processing the result.\r\n// Note that we must ALWAYS check specially whether those values are MIN_VALUE\r\n// (-2^63) because -MIN_VALUE == MIN_VALUE (since 2^63 cannot be represented as\r\n// a positive number, it overflows back into a negative). Not handling this\r\n// case would often result in infinite recursion.\r\n//\r\n// Common constant values ZERO, ONE, NEG_ONE, etc. are defined below the from*\r\n// methods on which they depend.\r\n\r\n/**\r\n * An indicator used to reliably determine if an object is a Long or not.\r\n * @type {boolean}\r\n * @const\r\n * @private\r\n */\r\nLong.prototype.__isLong__;\r\n\r\nObject.defineProperty(Long.prototype, \"__isLong__\", { value: true });\r\n\r\n/**\r\n * @function\r\n * @param {*} obj Object\r\n * @returns {boolean}\r\n * @inner\r\n */\r\nfunction isLong(obj) {\r\n return (obj && obj[\"__isLong__\"]) === true;\r\n}\r\n\r\n/**\r\n * Tests if the specified object is a Long.\r\n * @function\r\n * @param {*} obj Object\r\n * @returns {boolean}\r\n */\r\nLong.isLong = isLong;\r\n\r\n/**\r\n * A cache of the Long representations of small integer values.\r\n * @type {!Object}\r\n * @inner\r\n */\r\nvar INT_CACHE = {};\r\n\r\n/**\r\n * A cache of the Long representations of small unsigned integer values.\r\n * @type {!Object}\r\n * @inner\r\n */\r\nvar UINT_CACHE = {};\r\n\r\n/**\r\n * @param {number} value\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromInt(value, unsigned) {\r\n var obj, cachedObj, cache;\r\n if (unsigned) {\r\n value >>>= 0;\r\n if (cache = (0 <= value && value < 256)) {\r\n cachedObj = UINT_CACHE[value];\r\n if (cachedObj)\r\n return cachedObj;\r\n }\r\n obj = fromBits(value, (value | 0) < 0 ? -1 : 0, true);\r\n if (cache)\r\n UINT_CACHE[value] = obj;\r\n return obj;\r\n } else {\r\n value |= 0;\r\n if (cache = (-128 <= value && value < 128)) {\r\n cachedObj = INT_CACHE[value];\r\n if (cachedObj)\r\n return cachedObj;\r\n }\r\n obj = fromBits(value, value < 0 ? -1 : 0, false);\r\n if (cache)\r\n INT_CACHE[value] = obj;\r\n return obj;\r\n }\r\n}\r\n\r\n/**\r\n * Returns a Long representing the given 32 bit integer value.\r\n * @function\r\n * @param {number} value The 32 bit integer in question\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromInt = fromInt;\r\n\r\n/**\r\n * @param {number} value\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromNumber(value, unsigned) {\r\n if (isNaN(value))\r\n return unsigned ? UZERO : ZERO;\r\n if (unsigned) {\r\n if (value < 0)\r\n return UZERO;\r\n if (value >= TWO_PWR_64_DBL)\r\n return MAX_UNSIGNED_VALUE;\r\n } else {\r\n if (value <= -TWO_PWR_63_DBL)\r\n return MIN_VALUE;\r\n if (value + 1 >= TWO_PWR_63_DBL)\r\n return MAX_VALUE;\r\n }\r\n if (value < 0)\r\n return fromNumber(-value, unsigned).neg();\r\n return fromBits((value % TWO_PWR_32_DBL) | 0, (value / TWO_PWR_32_DBL) | 0, unsigned);\r\n}\r\n\r\n/**\r\n * Returns a Long representing the given value, provided that it is a finite number. Otherwise, zero is returned.\r\n * @function\r\n * @param {number} value The number in question\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromNumber = fromNumber;\r\n\r\n/**\r\n * @param {number} lowBits\r\n * @param {number} highBits\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromBits(lowBits, highBits, unsigned) {\r\n return new Long(lowBits, highBits, unsigned);\r\n}\r\n\r\n/**\r\n * Returns a Long representing the 64 bit integer that comes by concatenating the given low and high bits. Each is\r\n * assumed to use 32 bits.\r\n * @function\r\n * @param {number} lowBits The low 32 bits\r\n * @param {number} highBits The high 32 bits\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromBits = fromBits;\r\n\r\n/**\r\n * @function\r\n * @param {number} base\r\n * @param {number} exponent\r\n * @returns {number}\r\n * @inner\r\n */\r\nvar pow_dbl = Math.pow; // Used 4 times (4*8 to 15+4)\r\n\r\n/**\r\n * @param {string} str\r\n * @param {(boolean|number)=} unsigned\r\n * @param {number=} radix\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromString(str, unsigned, radix) {\r\n if (str.length === 0)\r\n throw Error('empty string');\r\n if (str === \"NaN\" || str === \"Infinity\" || str === \"+Infinity\" || str === \"-Infinity\")\r\n return ZERO;\r\n if (typeof unsigned === 'number') {\r\n // For goog.math.long compatibility\r\n radix = unsigned,\r\n unsigned = false;\r\n } else {\r\n unsigned = !! unsigned;\r\n }\r\n radix = radix || 10;\r\n if (radix < 2 || 36 < radix)\r\n throw RangeError('radix');\r\n\r\n var p;\r\n if ((p = str.indexOf('-')) > 0)\r\n throw Error('interior hyphen');\r\n else if (p === 0) {\r\n return fromString(str.substring(1), unsigned, radix).neg();\r\n }\r\n\r\n // Do several (8) digits each time through the loop, so as to\r\n // minimize the calls to the very expensive emulated div.\r\n var radixToPower = fromNumber(pow_dbl(radix, 8));\r\n\r\n var result = ZERO;\r\n for (var i = 0; i < str.length; i += 8) {\r\n var size = Math.min(8, str.length - i),\r\n value = parseInt(str.substring(i, i + size), radix);\r\n if (size < 8) {\r\n var power = fromNumber(pow_dbl(radix, size));\r\n result = result.mul(power).add(fromNumber(value));\r\n } else {\r\n result = result.mul(radixToPower);\r\n result = result.add(fromNumber(value));\r\n }\r\n }\r\n result.unsigned = unsigned;\r\n return result;\r\n}\r\n\r\n/**\r\n * Returns a Long representation of the given string, written using the specified radix.\r\n * @function\r\n * @param {string} str The textual representation of the Long\r\n * @param {(boolean|number)=} unsigned Whether unsigned or not, defaults to signed\r\n * @param {number=} radix The radix in which the text is written (2-36), defaults to 10\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromString = fromString;\r\n\r\n/**\r\n * @function\r\n * @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromValue(val, unsigned) {\r\n if (typeof val === 'number')\r\n return fromNumber(val, unsigned);\r\n if (typeof val === 'string')\r\n return fromString(val, unsigned);\r\n // Throws for non-objects, converts non-instanceof Long:\r\n return fromBits(val.low, val.high, typeof unsigned === 'boolean' ? unsigned : val.unsigned);\r\n}\r\n\r\n/**\r\n * Converts the specified value to a Long using the appropriate from* function for its type.\r\n * @function\r\n * @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val Value\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long}\r\n */\r\nLong.fromValue = fromValue;\r\n\r\n// NOTE: the compiler should inline these constant values below and then remove these variables, so there should be\r\n// no runtime penalty for these.\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_16_DBL = 1 << 16;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_24_DBL = 1 << 24;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_32_DBL = TWO_PWR_16_DBL * TWO_PWR_16_DBL;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_64_DBL = TWO_PWR_32_DBL * TWO_PWR_32_DBL;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_63_DBL = TWO_PWR_64_DBL / 2;\r\n\r\n/**\r\n * @type {!Long}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_24 = fromInt(TWO_PWR_24_DBL);\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar ZERO = fromInt(0);\r\n\r\n/**\r\n * Signed zero.\r\n * @type {!Long}\r\n */\r\nLong.ZERO = ZERO;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar UZERO = fromInt(0, true);\r\n\r\n/**\r\n * Unsigned zero.\r\n * @type {!Long}\r\n */\r\nLong.UZERO = UZERO;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar ONE = fromInt(1);\r\n\r\n/**\r\n * Signed one.\r\n * @type {!Long}\r\n */\r\nLong.ONE = ONE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar UONE = fromInt(1, true);\r\n\r\n/**\r\n * Unsigned one.\r\n * @type {!Long}\r\n */\r\nLong.UONE = UONE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar NEG_ONE = fromInt(-1);\r\n\r\n/**\r\n * Signed negative one.\r\n * @type {!Long}\r\n */\r\nLong.NEG_ONE = NEG_ONE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar MAX_VALUE = fromBits(0xFFFFFFFF|0, 0x7FFFFFFF|0, false);\r\n\r\n/**\r\n * Maximum signed value.\r\n * @type {!Long}\r\n */\r\nLong.MAX_VALUE = MAX_VALUE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar MAX_UNSIGNED_VALUE = fromBits(0xFFFFFFFF|0, 0xFFFFFFFF|0, true);\r\n\r\n/**\r\n * Maximum unsigned value.\r\n * @type {!Long}\r\n */\r\nLong.MAX_UNSIGNED_VALUE = MAX_UNSIGNED_VALUE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar MIN_VALUE = fromBits(0, 0x80000000|0, false);\r\n\r\n/**\r\n * Minimum signed value.\r\n * @type {!Long}\r\n */\r\nLong.MIN_VALUE = MIN_VALUE;\r\n\r\n/**\r\n * @alias Long.prototype\r\n * @inner\r\n */\r\nvar LongPrototype = Long.prototype;\r\n\r\n/**\r\n * Converts the Long to a 32 bit integer, assuming it is a 32 bit integer.\r\n * @returns {number}\r\n */\r\nLongPrototype.toInt = function toInt() {\r\n return this.unsigned ? this.low >>> 0 : this.low;\r\n};\r\n\r\n/**\r\n * Converts the Long to a the nearest floating-point representation of this value (double, 53 bit mantissa).\r\n * @returns {number}\r\n */\r\nLongPrototype.toNumber = function toNumber() {\r\n if (this.unsigned)\r\n return ((this.high >>> 0) * TWO_PWR_32_DBL) + (this.low >>> 0);\r\n return this.high * TWO_PWR_32_DBL + (this.low >>> 0);\r\n};\r\n\r\n/**\r\n * Converts the Long to a string written in the specified radix.\r\n * @param {number=} radix Radix (2-36), defaults to 10\r\n * @returns {string}\r\n * @override\r\n * @throws {RangeError} If `radix` is out of range\r\n */\r\nLongPrototype.toString = function toString(radix) {\r\n radix = radix || 10;\r\n if (radix < 2 || 36 < radix)\r\n throw RangeError('radix');\r\n if (this.isZero())\r\n return '0';\r\n if (this.isNegative()) { // Unsigned Longs are never negative\r\n if (this.eq(MIN_VALUE)) {\r\n // We need to change the Long value before it can be negated, so we remove\r\n // the bottom-most digit in this base and then recurse to do the rest.\r\n var radixLong = fromNumber(radix),\r\n div = this.div(radixLong),\r\n rem1 = div.mul(radixLong).sub(this);\r\n return div.toString(radix) + rem1.toInt().toString(radix);\r\n } else\r\n return '-' + this.neg().toString(radix);\r\n }\r\n\r\n // Do several (6) digits each time through the loop, so as to\r\n // minimize the calls to the very expensive emulated div.\r\n var radixToPower = fromNumber(pow_dbl(radix, 6), this.unsigned),\r\n rem = this;\r\n var result = '';\r\n while (true) {\r\n var remDiv = rem.div(radixToPower),\r\n intval = rem.sub(remDiv.mul(radixToPower)).toInt() >>> 0,\r\n digits = intval.toString(radix);\r\n rem = remDiv;\r\n if (rem.isZero())\r\n return digits + result;\r\n else {\r\n while (digits.length < 6)\r\n digits = '0' + digits;\r\n result = '' + digits + result;\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * Gets the high 32 bits as a signed integer.\r\n * @returns {number} Signed high bits\r\n */\r\nLongPrototype.getHighBits = function getHighBits() {\r\n return this.high;\r\n};\r\n\r\n/**\r\n * Gets the high 32 bits as an unsigned integer.\r\n * @returns {number} Unsigned high bits\r\n */\r\nLongPrototype.getHighBitsUnsigned = function getHighBitsUnsigned() {\r\n return this.high >>> 0;\r\n};\r\n\r\n/**\r\n * Gets the low 32 bits as a signed integer.\r\n * @returns {number} Signed low bits\r\n */\r\nLongPrototype.getLowBits = function getLowBits() {\r\n return this.low;\r\n};\r\n\r\n/**\r\n * Gets the low 32 bits as an unsigned integer.\r\n * @returns {number} Unsigned low bits\r\n */\r\nLongPrototype.getLowBitsUnsigned = function getLowBitsUnsigned() {\r\n return this.low >>> 0;\r\n};\r\n\r\n/**\r\n * Gets the number of bits needed to represent the absolute value of this Long.\r\n * @returns {number}\r\n */\r\nLongPrototype.getNumBitsAbs = function getNumBitsAbs() {\r\n if (this.isNegative()) // Unsigned Longs are never negative\r\n return this.eq(MIN_VALUE) ? 64 : this.neg().getNumBitsAbs();\r\n var val = this.high != 0 ? this.high : this.low;\r\n for (var bit = 31; bit > 0; bit--)\r\n if ((val & (1 << bit)) != 0)\r\n break;\r\n return this.high != 0 ? bit + 33 : bit + 1;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals zero.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isZero = function isZero() {\r\n return this.high === 0 && this.low === 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals zero. This is an alias of {@link Long#isZero}.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.eqz = LongPrototype.isZero;\r\n\r\n/**\r\n * Tests if this Long's value is negative.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isNegative = function isNegative() {\r\n return !this.unsigned && this.high < 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is positive.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isPositive = function isPositive() {\r\n return this.unsigned || this.high >= 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is odd.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isOdd = function isOdd() {\r\n return (this.low & 1) === 1;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is even.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isEven = function isEven() {\r\n return (this.low & 1) === 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.equals = function equals(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n if (this.unsigned !== other.unsigned && (this.high >>> 31) === 1 && (other.high >>> 31) === 1)\r\n return false;\r\n return this.high === other.high && this.low === other.low;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals the specified's. This is an alias of {@link Long#equals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.eq = LongPrototype.equals;\r\n\r\n/**\r\n * Tests if this Long's value differs from the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.notEquals = function notEquals(other) {\r\n return !this.eq(/* validates */ other);\r\n};\r\n\r\n/**\r\n * Tests if this Long's value differs from the specified's. This is an alias of {@link Long#notEquals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.neq = LongPrototype.notEquals;\r\n\r\n/**\r\n * Tests if this Long's value differs from the specified's. This is an alias of {@link Long#notEquals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.ne = LongPrototype.notEquals;\r\n\r\n/**\r\n * Tests if this Long's value is less than the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lessThan = function lessThan(other) {\r\n return this.comp(/* validates */ other) < 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is less than the specified's. This is an alias of {@link Long#lessThan}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lt = LongPrototype.lessThan;\r\n\r\n/**\r\n * Tests if this Long's value is less than or equal the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lessThanOrEqual = function lessThanOrEqual(other) {\r\n return this.comp(/* validates */ other) <= 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is less than or equal the specified's. This is an alias of {@link Long#lessThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lte = LongPrototype.lessThanOrEqual;\r\n\r\n/**\r\n * Tests if this Long's value is less than or equal the specified's. This is an alias of {@link Long#lessThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.le = LongPrototype.lessThanOrEqual;\r\n\r\n/**\r\n * Tests if this Long's value is greater than the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.greaterThan = function greaterThan(other) {\r\n return this.comp(/* validates */ other) > 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is greater than the specified's. This is an alias of {@link Long#greaterThan}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.gt = LongPrototype.greaterThan;\r\n\r\n/**\r\n * Tests if this Long's value is greater than or equal the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.greaterThanOrEqual = function greaterThanOrEqual(other) {\r\n return this.comp(/* validates */ other) >= 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is greater than or equal the specified's. This is an alias of {@link Long#greaterThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.gte = LongPrototype.greaterThanOrEqual;\r\n\r\n/**\r\n * Tests if this Long's value is greater than or equal the specified's. This is an alias of {@link Long#greaterThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.ge = LongPrototype.greaterThanOrEqual;\r\n\r\n/**\r\n * Compares this Long's value with the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {number} 0 if they are the same, 1 if the this is greater and -1\r\n * if the given one is greater\r\n */\r\nLongPrototype.compare = function compare(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n if (this.eq(other))\r\n return 0;\r\n var thisNeg = this.isNegative(),\r\n otherNeg = other.isNegative();\r\n if (thisNeg && !otherNeg)\r\n return -1;\r\n if (!thisNeg && otherNeg)\r\n return 1;\r\n // At this point the sign bits are the same\r\n if (!this.unsigned)\r\n return this.sub(other).isNegative() ? -1 : 1;\r\n // Both are positive if at least one is unsigned\r\n return (other.high >>> 0) > (this.high >>> 0) || (other.high === this.high && (other.low >>> 0) > (this.low >>> 0)) ? -1 : 1;\r\n};\r\n\r\n/**\r\n * Compares this Long's value with the specified's. This is an alias of {@link Long#compare}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {number} 0 if they are the same, 1 if the this is greater and -1\r\n * if the given one is greater\r\n */\r\nLongPrototype.comp = LongPrototype.compare;\r\n\r\n/**\r\n * Negates this Long's value.\r\n * @returns {!Long} Negated Long\r\n */\r\nLongPrototype.negate = function negate() {\r\n if (!this.unsigned && this.eq(MIN_VALUE))\r\n return MIN_VALUE;\r\n return this.not().add(ONE);\r\n};\r\n\r\n/**\r\n * Negates this Long's value. This is an alias of {@link Long#negate}.\r\n * @function\r\n * @returns {!Long} Negated Long\r\n */\r\nLongPrototype.neg = LongPrototype.negate;\r\n\r\n/**\r\n * Returns the sum of this and the specified Long.\r\n * @param {!Long|number|string} addend Addend\r\n * @returns {!Long} Sum\r\n */\r\nLongPrototype.add = function add(addend) {\r\n if (!isLong(addend))\r\n addend = fromValue(addend);\r\n\r\n // Divide each number into 4 chunks of 16 bits, and then sum the chunks.\r\n\r\n var a48 = this.high >>> 16;\r\n var a32 = this.high & 0xFFFF;\r\n var a16 = this.low >>> 16;\r\n var a00 = this.low & 0xFFFF;\r\n\r\n var b48 = addend.high >>> 16;\r\n var b32 = addend.high & 0xFFFF;\r\n var b16 = addend.low >>> 16;\r\n var b00 = addend.low & 0xFFFF;\r\n\r\n var c48 = 0, c32 = 0, c16 = 0, c00 = 0;\r\n c00 += a00 + b00;\r\n c16 += c00 >>> 16;\r\n c00 &= 0xFFFF;\r\n c16 += a16 + b16;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c32 += a32 + b32;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c48 += a48 + b48;\r\n c48 &= 0xFFFF;\r\n return fromBits((c16 << 16) | c00, (c48 << 16) | c32, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the difference of this and the specified Long.\r\n * @param {!Long|number|string} subtrahend Subtrahend\r\n * @returns {!Long} Difference\r\n */\r\nLongPrototype.subtract = function subtract(subtrahend) {\r\n if (!isLong(subtrahend))\r\n subtrahend = fromValue(subtrahend);\r\n return this.add(subtrahend.neg());\r\n};\r\n\r\n/**\r\n * Returns the difference of this and the specified Long. This is an alias of {@link Long#subtract}.\r\n * @function\r\n * @param {!Long|number|string} subtrahend Subtrahend\r\n * @returns {!Long} Difference\r\n */\r\nLongPrototype.sub = LongPrototype.subtract;\r\n\r\n/**\r\n * Returns the product of this and the specified Long.\r\n * @param {!Long|number|string} multiplier Multiplier\r\n * @returns {!Long} Product\r\n */\r\nLongPrototype.multiply = function multiply(multiplier) {\r\n if (this.isZero())\r\n return ZERO;\r\n if (!isLong(multiplier))\r\n multiplier = fromValue(multiplier);\r\n\r\n // use wasm support if present\r\n if (wasm) {\r\n var low = wasm.mul(this.low,\r\n this.high,\r\n multiplier.low,\r\n multiplier.high);\r\n return fromBits(low, wasm.get_high(), this.unsigned);\r\n }\r\n\r\n if (multiplier.isZero())\r\n return ZERO;\r\n if (this.eq(MIN_VALUE))\r\n return multiplier.isOdd() ? MIN_VALUE : ZERO;\r\n if (multiplier.eq(MIN_VALUE))\r\n return this.isOdd() ? MIN_VALUE : ZERO;\r\n\r\n if (this.isNegative()) {\r\n if (multiplier.isNegative())\r\n return this.neg().mul(multiplier.neg());\r\n else\r\n return this.neg().mul(multiplier).neg();\r\n } else if (multiplier.isNegative())\r\n return this.mul(multiplier.neg()).neg();\r\n\r\n // If both longs are small, use float multiplication\r\n if (this.lt(TWO_PWR_24) && multiplier.lt(TWO_PWR_24))\r\n return fromNumber(this.toNumber() * multiplier.toNumber(), this.unsigned);\r\n\r\n // Divide each long into 4 chunks of 16 bits, and then add up 4x4 products.\r\n // We can skip products that would overflow.\r\n\r\n var a48 = this.high >>> 16;\r\n var a32 = this.high & 0xFFFF;\r\n var a16 = this.low >>> 16;\r\n var a00 = this.low & 0xFFFF;\r\n\r\n var b48 = multiplier.high >>> 16;\r\n var b32 = multiplier.high & 0xFFFF;\r\n var b16 = multiplier.low >>> 16;\r\n var b00 = multiplier.low & 0xFFFF;\r\n\r\n var c48 = 0, c32 = 0, c16 = 0, c00 = 0;\r\n c00 += a00 * b00;\r\n c16 += c00 >>> 16;\r\n c00 &= 0xFFFF;\r\n c16 += a16 * b00;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c16 += a00 * b16;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c32 += a32 * b00;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c32 += a16 * b16;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c32 += a00 * b32;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48;\r\n c48 &= 0xFFFF;\r\n return fromBits((c16 << 16) | c00, (c48 << 16) | c32, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the product of this and the specified Long. This is an alias of {@link Long#multiply}.\r\n * @function\r\n * @param {!Long|number|string} multiplier Multiplier\r\n * @returns {!Long} Product\r\n */\r\nLongPrototype.mul = LongPrototype.multiply;\r\n\r\n/**\r\n * Returns this Long divided by the specified. The result is signed if this Long is signed or\r\n * unsigned if this Long is unsigned.\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Quotient\r\n */\r\nLongPrototype.divide = function divide(divisor) {\r\n if (!isLong(divisor))\r\n divisor = fromValue(divisor);\r\n if (divisor.isZero())\r\n throw Error('division by zero');\r\n\r\n // use wasm support if present\r\n if (wasm) {\r\n // guard against signed division overflow: the largest\r\n // negative number / -1 would be 1 larger than the largest\r\n // positive number, due to two's complement.\r\n if (!this.unsigned &&\r\n this.high === -0x80000000 &&\r\n divisor.low === -1 && divisor.high === -1) {\r\n // be consistent with non-wasm code path\r\n return this;\r\n }\r\n var low = (this.unsigned ? wasm.div_u : wasm.div_s)(\r\n this.low,\r\n this.high,\r\n divisor.low,\r\n divisor.high\r\n );\r\n return fromBits(low, wasm.get_high(), this.unsigned);\r\n }\r\n\r\n if (this.isZero())\r\n return this.unsigned ? UZERO : ZERO;\r\n var approx, rem, res;\r\n if (!this.unsigned) {\r\n // This section is only relevant for signed longs and is derived from the\r\n // closure library as a whole.\r\n if (this.eq(MIN_VALUE)) {\r\n if (divisor.eq(ONE) || divisor.eq(NEG_ONE))\r\n return MIN_VALUE; // recall that -MIN_VALUE == MIN_VALUE\r\n else if (divisor.eq(MIN_VALUE))\r\n return ONE;\r\n else {\r\n // At this point, we have |other| >= 2, so |this/other| < |MIN_VALUE|.\r\n var halfThis = this.shr(1);\r\n approx = halfThis.div(divisor).shl(1);\r\n if (approx.eq(ZERO)) {\r\n return divisor.isNegative() ? ONE : NEG_ONE;\r\n } else {\r\n rem = this.sub(divisor.mul(approx));\r\n res = approx.add(rem.div(divisor));\r\n return res;\r\n }\r\n }\r\n } else if (divisor.eq(MIN_VALUE))\r\n return this.unsigned ? UZERO : ZERO;\r\n if (this.isNegative()) {\r\n if (divisor.isNegative())\r\n return this.neg().div(divisor.neg());\r\n return this.neg().div(divisor).neg();\r\n } else if (divisor.isNegative())\r\n return this.div(divisor.neg()).neg();\r\n res = ZERO;\r\n } else {\r\n // The algorithm below has not been made for unsigned longs. It's therefore\r\n // required to take special care of the MSB prior to running it.\r\n if (!divisor.unsigned)\r\n divisor = divisor.toUnsigned();\r\n if (divisor.gt(this))\r\n return UZERO;\r\n if (divisor.gt(this.shru(1))) // 15 >>> 1 = 7 ; with divisor = 8 ; true\r\n return UONE;\r\n res = UZERO;\r\n }\r\n\r\n // Repeat the following until the remainder is less than other: find a\r\n // floating-point that approximates remainder / other *from below*, add this\r\n // into the result, and subtract it from the remainder. It is critical that\r\n // the approximate value is less than or equal to the real value so that the\r\n // remainder never becomes negative.\r\n rem = this;\r\n while (rem.gte(divisor)) {\r\n // Approximate the result of division. This may be a little greater or\r\n // smaller than the actual value.\r\n approx = Math.max(1, Math.floor(rem.toNumber() / divisor.toNumber()));\r\n\r\n // We will tweak the approximate result by changing it in the 48-th digit or\r\n // the smallest non-fractional digit, whichever is larger.\r\n var log2 = Math.ceil(Math.log(approx) / Math.LN2),\r\n delta = (log2 <= 48) ? 1 : pow_dbl(2, log2 - 48),\r\n\r\n // Decrease the approximation until it is smaller than the remainder. Note\r\n // that if it is too large, the product overflows and is negative.\r\n approxRes = fromNumber(approx),\r\n approxRem = approxRes.mul(divisor);\r\n while (approxRem.isNegative() || approxRem.gt(rem)) {\r\n approx -= delta;\r\n approxRes = fromNumber(approx, this.unsigned);\r\n approxRem = approxRes.mul(divisor);\r\n }\r\n\r\n // We know the answer can't be zero... and actually, zero would cause\r\n // infinite recursion since we would make no progress.\r\n if (approxRes.isZero())\r\n approxRes = ONE;\r\n\r\n res = res.add(approxRes);\r\n rem = rem.sub(approxRem);\r\n }\r\n return res;\r\n};\r\n\r\n/**\r\n * Returns this Long divided by the specified. This is an alias of {@link Long#divide}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Quotient\r\n */\r\nLongPrototype.div = LongPrototype.divide;\r\n\r\n/**\r\n * Returns this Long modulo the specified.\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\nLongPrototype.modulo = function modulo(divisor) {\r\n if (!isLong(divisor))\r\n divisor = fromValue(divisor);\r\n\r\n // use wasm support if present\r\n if (wasm) {\r\n var low = (this.unsigned ? wasm.rem_u : wasm.rem_s)(\r\n this.low,\r\n this.high,\r\n divisor.low,\r\n divisor.high\r\n );\r\n return fromBits(low, wasm.get_high(), this.unsigned);\r\n }\r\n\r\n return this.sub(this.div(divisor).mul(divisor));\r\n};\r\n\r\n/**\r\n * Returns this Long modulo the specified. This is an alias of {@link Long#modulo}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\nLongPrototype.mod = LongPrototype.modulo;\r\n\r\n/**\r\n * Returns this Long modulo the specified. This is an alias of {@link Long#modulo}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\nLongPrototype.rem = LongPrototype.modulo;\r\n\r\n/**\r\n * Returns the bitwise NOT of this Long.\r\n * @returns {!Long}\r\n */\r\nLongPrototype.not = function not() {\r\n return fromBits(~this.low, ~this.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the bitwise AND of this Long and the specified.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\nLongPrototype.and = function and(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low & other.low, this.high & other.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the bitwise OR of this Long and the specified.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\nLongPrototype.or = function or(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low | other.low, this.high | other.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the bitwise XOR of this Long and the given one.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\nLongPrototype.xor = function xor(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low ^ other.low, this.high ^ other.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns this Long with bits shifted to the left by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shiftLeft = function shiftLeft(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n if ((numBits &= 63) === 0)\r\n return this;\r\n else if (numBits < 32)\r\n return fromBits(this.low << numBits, (this.high << numBits) | (this.low >>> (32 - numBits)), this.unsigned);\r\n else\r\n return fromBits(0, this.low << (numBits - 32), this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns this Long with bits shifted to the left by the given amount. This is an alias of {@link Long#shiftLeft}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shl = LongPrototype.shiftLeft;\r\n\r\n/**\r\n * Returns this Long with bits arithmetically shifted to the right by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shiftRight = function shiftRight(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n if ((numBits &= 63) === 0)\r\n return this;\r\n else if (numBits < 32)\r\n return fromBits((this.low >>> numBits) | (this.high << (32 - numBits)), this.high >> numBits, this.unsigned);\r\n else\r\n return fromBits(this.high >> (numBits - 32), this.high >= 0 ? 0 : -1, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns this Long with bits arithmetically shifted to the right by the given amount. This is an alias of {@link Long#shiftRight}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shr = LongPrototype.shiftRight;\r\n\r\n/**\r\n * Returns this Long with bits logically shifted to the right by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shiftRightUnsigned = function shiftRightUnsigned(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n numBits &= 63;\r\n if (numBits === 0)\r\n return this;\r\n else {\r\n var high = this.high;\r\n if (numBits < 32) {\r\n var low = this.low;\r\n return fromBits((low >>> numBits) | (high << (32 - numBits)), high >>> numBits, this.unsigned);\r\n } else if (numBits === 32)\r\n return fromBits(high, 0, this.unsigned);\r\n else\r\n return fromBits(high >>> (numBits - 32), 0, this.unsigned);\r\n }\r\n};\r\n\r\n/**\r\n * Returns this Long with bits logically shifted to the right by the given amount. This is an alias of {@link Long#shiftRightUnsigned}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shru = LongPrototype.shiftRightUnsigned;\r\n\r\n/**\r\n * Returns this Long with bits logically shifted to the right by the given amount. This is an alias of {@link Long#shiftRightUnsigned}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shr_u = LongPrototype.shiftRightUnsigned;\r\n\r\n/**\r\n * Converts this Long to signed.\r\n * @returns {!Long} Signed long\r\n */\r\nLongPrototype.toSigned = function toSigned() {\r\n if (!this.unsigned)\r\n return this;\r\n return fromBits(this.low, this.high, false);\r\n};\r\n\r\n/**\r\n * Converts this Long to unsigned.\r\n * @returns {!Long} Unsigned long\r\n */\r\nLongPrototype.toUnsigned = function toUnsigned() {\r\n if (this.unsigned)\r\n return this;\r\n return fromBits(this.low, this.high, true);\r\n};\r\n\r\n/**\r\n * Converts this Long to its byte representation.\r\n * @param {boolean=} le Whether little or big endian, defaults to big endian\r\n * @returns {!Array.} Byte representation\r\n */\r\nLongPrototype.toBytes = function toBytes(le) {\r\n return le ? this.toBytesLE() : this.toBytesBE();\r\n};\r\n\r\n/**\r\n * Converts this Long to its little endian byte representation.\r\n * @returns {!Array.} Little endian byte representation\r\n */\r\nLongPrototype.toBytesLE = function toBytesLE() {\r\n var hi = this.high,\r\n lo = this.low;\r\n return [\r\n lo & 0xff,\r\n lo >>> 8 & 0xff,\r\n lo >>> 16 & 0xff,\r\n lo >>> 24 ,\r\n hi & 0xff,\r\n hi >>> 8 & 0xff,\r\n hi >>> 16 & 0xff,\r\n hi >>> 24\r\n ];\r\n};\r\n\r\n/**\r\n * Converts this Long to its big endian byte representation.\r\n * @returns {!Array.} Big endian byte representation\r\n */\r\nLongPrototype.toBytesBE = function toBytesBE() {\r\n var hi = this.high,\r\n lo = this.low;\r\n return [\r\n hi >>> 24 ,\r\n hi >>> 16 & 0xff,\r\n hi >>> 8 & 0xff,\r\n hi & 0xff,\r\n lo >>> 24 ,\r\n lo >>> 16 & 0xff,\r\n lo >>> 8 & 0xff,\r\n lo & 0xff\r\n ];\r\n};\r\n\r\n/**\r\n * Creates a Long from its byte representation.\r\n * @param {!Array.} bytes Byte representation\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @param {boolean=} le Whether little or big endian, defaults to big endian\r\n * @returns {Long} The corresponding Long value\r\n */\r\nLong.fromBytes = function fromBytes(bytes, unsigned, le) {\r\n return le ? Long.fromBytesLE(bytes, unsigned) : Long.fromBytesBE(bytes, unsigned);\r\n};\r\n\r\n/**\r\n * Creates a Long from its little endian byte representation.\r\n * @param {!Array.} bytes Little endian byte representation\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {Long} The corresponding Long value\r\n */\r\nLong.fromBytesLE = function fromBytesLE(bytes, unsigned) {\r\n return new Long(\r\n bytes[0] |\r\n bytes[1] << 8 |\r\n bytes[2] << 16 |\r\n bytes[3] << 24,\r\n bytes[4] |\r\n bytes[5] << 8 |\r\n bytes[6] << 16 |\r\n bytes[7] << 24,\r\n unsigned\r\n );\r\n};\r\n\r\n/**\r\n * Creates a Long from its big endian byte representation.\r\n * @param {!Array.} bytes Big endian byte representation\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {Long} The corresponding Long value\r\n */\r\nLong.fromBytesBE = function fromBytesBE(bytes, unsigned) {\r\n return new Long(\r\n bytes[4] << 24 |\r\n bytes[5] << 16 |\r\n bytes[6] << 8 |\r\n bytes[7],\r\n bytes[0] << 24 |\r\n bytes[1] << 16 |\r\n bytes[2] << 8 |\r\n bytes[3],\r\n unsigned\r\n );\r\n};\r\n","// minimal library entry point.\n\n\"use strict\";\nmodule.exports = require(\"./src/index-minimal\");\n","\"use strict\";\nvar protobuf = exports;\n\n/**\n * Build type, one of `\"full\"`, `\"light\"` or `\"minimal\"`.\n * @name build\n * @type {string}\n * @const\n */\nprotobuf.build = \"minimal\";\n\n// Serialization\nprotobuf.Writer = require(\"./writer\");\nprotobuf.BufferWriter = require(\"./writer_buffer\");\nprotobuf.Reader = require(\"./reader\");\nprotobuf.BufferReader = require(\"./reader_buffer\");\n\n// Utility\nprotobuf.util = require(\"./util/minimal\");\nprotobuf.rpc = require(\"./rpc\");\nprotobuf.roots = require(\"./roots\");\nprotobuf.configure = configure;\n\n/* istanbul ignore next */\n/**\n * Reconfigures the library according to the environment.\n * @returns {undefined}\n */\nfunction configure() {\n protobuf.util._configure();\n protobuf.Writer._configure(protobuf.BufferWriter);\n protobuf.Reader._configure(protobuf.BufferReader);\n}\n\n// Set up buffer utility according to the environment\nconfigure();\n","\"use strict\";\nmodule.exports = Reader;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferReader; // cyclic\n\nvar LongBits = util.LongBits,\n utf8 = util.utf8;\n\n/* istanbul ignore next */\nfunction indexOutOfRange(reader, writeLength) {\n return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\n}\n\n/**\n * Constructs a new reader instance using the specified buffer.\n * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n * @param {Uint8Array} buffer Buffer to read from\n */\nfunction Reader(buffer) {\n\n /**\n * Read buffer.\n * @type {Uint8Array}\n */\n this.buf = buffer;\n\n /**\n * Read buffer position.\n * @type {number}\n */\n this.pos = 0;\n\n /**\n * Read buffer length.\n * @type {number}\n */\n this.len = buffer.length;\n}\n\nvar create_array = typeof Uint8Array !== \"undefined\"\n ? function create_typed_array(buffer) {\n if (buffer instanceof Uint8Array || Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n }\n /* istanbul ignore next */\n : function create_array(buffer) {\n if (Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n };\n\nvar create = function create() {\n return util.Buffer\n ? function create_buffer_setup(buffer) {\n return (Reader.create = function create_buffer(buffer) {\n return util.Buffer.isBuffer(buffer)\n ? new BufferReader(buffer)\n /* istanbul ignore next */\n : create_array(buffer);\n })(buffer);\n }\n /* istanbul ignore next */\n : create_array;\n};\n\n/**\n * Creates a new reader using the specified buffer.\n * @function\n * @param {Uint8Array|Buffer} buffer Buffer to read from\n * @returns {Reader|BufferReader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader}\n * @throws {Error} If `buffer` is not a valid buffer\n */\nReader.create = create();\n\nReader.prototype._slice = util.Array.prototype.subarray || /* istanbul ignore next */ util.Array.prototype.slice;\n\n/**\n * Reads a varint as an unsigned 32 bit value.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.uint32 = (function read_uint32_setup() {\n var value = 4294967295; // optimizer type-hint, tends to deopt otherwise (?!)\n return function read_uint32() {\n value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value;\n\n /* istanbul ignore if */\n if ((this.pos += 5) > this.len) {\n this.pos = this.len;\n throw indexOutOfRange(this, 10);\n }\n return value;\n };\n})();\n\n/**\n * Reads a varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.int32 = function read_int32() {\n return this.uint32() | 0;\n};\n\n/**\n * Reads a zig-zag encoded varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.sint32 = function read_sint32() {\n var value = this.uint32();\n return value >>> 1 ^ -(value & 1) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readLongVarint() {\n // tends to deopt with local vars for octet etc.\n var bits = new LongBits(0, 0);\n var i = 0;\n if (this.len - this.pos > 4) { // fast route (lo)\n for (; i < 4; ++i) {\n // 1st..4th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 5th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n i = 0;\n } else {\n for (; i < 3; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 1st..3th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 4th\n bits.lo = (bits.lo | (this.buf[this.pos++] & 127) << i * 7) >>> 0;\n return bits;\n }\n if (this.len - this.pos > 4) { // fast route (hi)\n for (; i < 5; ++i) {\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n } else {\n for (; i < 5; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n }\n /* istanbul ignore next */\n throw Error(\"invalid varint encoding\");\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads a varint as a signed 64 bit value.\n * @name Reader#int64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as an unsigned 64 bit value.\n * @name Reader#uint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a zig-zag encoded varint as a signed 64 bit value.\n * @name Reader#sint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as a boolean.\n * @returns {boolean} Value read\n */\nReader.prototype.bool = function read_bool() {\n return this.uint32() !== 0;\n};\n\nfunction readFixed32_end(buf, end) { // note that this uses `end`, not `pos`\n return (buf[end - 4]\n | buf[end - 3] << 8\n | buf[end - 2] << 16\n | buf[end - 1] << 24) >>> 0;\n}\n\n/**\n * Reads fixed 32 bits as an unsigned 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.fixed32 = function read_fixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4);\n};\n\n/**\n * Reads fixed 32 bits as a signed 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.sfixed32 = function read_sfixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readFixed64(/* this: Reader */) {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 8);\n\n return new LongBits(readFixed32_end(this.buf, this.pos += 4), readFixed32_end(this.buf, this.pos += 4));\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads fixed 64 bits.\n * @name Reader#fixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads zig-zag encoded fixed 64 bits.\n * @name Reader#sfixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a float (32 bit) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.float = function read_float() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readFloatLE(this.buf, this.pos);\n this.pos += 4;\n return value;\n};\n\n/**\n * Reads a double (64 bit float) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.double = function read_double() {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readDoubleLE(this.buf, this.pos);\n this.pos += 8;\n return value;\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @returns {Uint8Array} Value read\n */\nReader.prototype.bytes = function read_bytes() {\n var length = this.uint32(),\n start = this.pos,\n end = this.pos + length;\n\n /* istanbul ignore if */\n if (end > this.len)\n throw indexOutOfRange(this, length);\n\n this.pos += length;\n if (Array.isArray(this.buf)) // plain array\n return this.buf.slice(start, end);\n return start === end // fix for IE 10/Win8 and others' subarray returning array of size 1\n ? new this.buf.constructor(0)\n : this._slice.call(this.buf, start, end);\n};\n\n/**\n * Reads a string preceeded by its byte length as a varint.\n * @returns {string} Value read\n */\nReader.prototype.string = function read_string() {\n var bytes = this.bytes();\n return utf8.read(bytes, 0, bytes.length);\n};\n\n/**\n * Skips the specified number of bytes if specified, otherwise skips a varint.\n * @param {number} [length] Length if known, otherwise a varint is assumed\n * @returns {Reader} `this`\n */\nReader.prototype.skip = function skip(length) {\n if (typeof length === \"number\") {\n /* istanbul ignore if */\n if (this.pos + length > this.len)\n throw indexOutOfRange(this, length);\n this.pos += length;\n } else {\n do {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n } while (this.buf[this.pos++] & 128);\n }\n return this;\n};\n\n/**\n * Skips the next element of the specified wire type.\n * @param {number} wireType Wire type received\n * @returns {Reader} `this`\n */\nReader.prototype.skipType = function(wireType) {\n switch (wireType) {\n case 0:\n this.skip();\n break;\n case 1:\n this.skip(8);\n break;\n case 2:\n this.skip(this.uint32());\n break;\n case 3:\n while ((wireType = this.uint32() & 7) !== 4) {\n this.skipType(wireType);\n }\n break;\n case 5:\n this.skip(4);\n break;\n\n /* istanbul ignore next */\n default:\n throw Error(\"invalid wire type \" + wireType + \" at offset \" + this.pos);\n }\n return this;\n};\n\nReader._configure = function(BufferReader_) {\n BufferReader = BufferReader_;\n Reader.create = create();\n BufferReader._configure();\n\n var fn = util.Long ? \"toLong\" : /* istanbul ignore next */ \"toNumber\";\n util.merge(Reader.prototype, {\n\n int64: function read_int64() {\n return readLongVarint.call(this)[fn](false);\n },\n\n uint64: function read_uint64() {\n return readLongVarint.call(this)[fn](true);\n },\n\n sint64: function read_sint64() {\n return readLongVarint.call(this).zzDecode()[fn](false);\n },\n\n fixed64: function read_fixed64() {\n return readFixed64.call(this)[fn](true);\n },\n\n sfixed64: function read_sfixed64() {\n return readFixed64.call(this)[fn](false);\n }\n\n });\n};\n","\"use strict\";\nmodule.exports = BufferReader;\n\n// extends Reader\nvar Reader = require(\"./reader\");\n(BufferReader.prototype = Object.create(Reader.prototype)).constructor = BufferReader;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new buffer reader instance.\n * @classdesc Wire format reader using node buffers.\n * @extends Reader\n * @constructor\n * @param {Buffer} buffer Buffer to read from\n */\nfunction BufferReader(buffer) {\n Reader.call(this, buffer);\n\n /**\n * Read buffer.\n * @name BufferReader#buf\n * @type {Buffer}\n */\n}\n\nBufferReader._configure = function () {\n /* istanbul ignore else */\n if (util.Buffer)\n BufferReader.prototype._slice = util.Buffer.prototype.slice;\n};\n\n\n/**\n * @override\n */\nBufferReader.prototype.string = function read_string_buffer() {\n var len = this.uint32(); // modifies pos\n return this.buf.utf8Slice\n ? this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + len, this.len))\n : this.buf.toString(\"utf-8\", this.pos, this.pos = Math.min(this.pos + len, this.len));\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @name BufferReader#bytes\n * @function\n * @returns {Buffer} Value read\n */\n\nBufferReader._configure();\n","\"use strict\";\nmodule.exports = {};\n\n/**\n * Named roots.\n * This is where pbjs stores generated structures (the option `-r, --root` specifies a name).\n * Can also be used manually to make roots available accross modules.\n * @name roots\n * @type {Object.}\n * @example\n * // pbjs -r myroot -o compiled.js ...\n *\n * // in another module:\n * require(\"./compiled.js\");\n *\n * // in any subsequent module:\n * var root = protobuf.roots[\"myroot\"];\n */\n","\"use strict\";\n\n/**\n * Streaming RPC helpers.\n * @namespace\n */\nvar rpc = exports;\n\n/**\n * RPC implementation passed to {@link Service#create} performing a service request on network level, i.e. by utilizing http requests or websockets.\n * @typedef RPCImpl\n * @type {function}\n * @param {Method|rpc.ServiceMethod,Message<{}>>} method Reflected or static method being called\n * @param {Uint8Array} requestData Request data\n * @param {RPCImplCallback} callback Callback function\n * @returns {undefined}\n * @example\n * function rpcImpl(method, requestData, callback) {\n * if (protobuf.util.lcFirst(method.name) !== \"myMethod\") // compatible with static code\n * throw Error(\"no such method\");\n * asynchronouslyObtainAResponse(requestData, function(err, responseData) {\n * callback(err, responseData);\n * });\n * }\n */\n\n/**\n * Node-style callback as used by {@link RPCImpl}.\n * @typedef RPCImplCallback\n * @type {function}\n * @param {Error|null} error Error, if any, otherwise `null`\n * @param {Uint8Array|null} [response] Response data or `null` to signal end of stream, if there hasn't been an error\n * @returns {undefined}\n */\n\nrpc.Service = require(\"./rpc/service\");\n","\"use strict\";\nmodule.exports = Service;\n\nvar util = require(\"../util/minimal\");\n\n// Extends EventEmitter\n(Service.prototype = Object.create(util.EventEmitter.prototype)).constructor = Service;\n\n/**\n * A service method callback as used by {@link rpc.ServiceMethod|ServiceMethod}.\n *\n * Differs from {@link RPCImplCallback} in that it is an actual callback of a service method which may not return `response = null`.\n * @typedef rpc.ServiceMethodCallback\n * @template TRes extends Message\n * @type {function}\n * @param {Error|null} error Error, if any\n * @param {TRes} [response] Response message\n * @returns {undefined}\n */\n\n/**\n * A service method part of a {@link rpc.Service} as created by {@link Service.create}.\n * @typedef rpc.ServiceMethod\n * @template TReq extends Message\n * @template TRes extends Message\n * @type {function}\n * @param {TReq|Properties} request Request message or plain object\n * @param {rpc.ServiceMethodCallback} [callback] Node-style callback called with the error, if any, and the response message\n * @returns {Promise>} Promise if `callback` has been omitted, otherwise `undefined`\n */\n\n/**\n * Constructs a new RPC service instance.\n * @classdesc An RPC service as returned by {@link Service#create}.\n * @exports rpc.Service\n * @extends util.EventEmitter\n * @constructor\n * @param {RPCImpl} rpcImpl RPC implementation\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\n */\nfunction Service(rpcImpl, requestDelimited, responseDelimited) {\n\n if (typeof rpcImpl !== \"function\")\n throw TypeError(\"rpcImpl must be a function\");\n\n util.EventEmitter.call(this);\n\n /**\n * RPC implementation. Becomes `null` once the service is ended.\n * @type {RPCImpl|null}\n */\n this.rpcImpl = rpcImpl;\n\n /**\n * Whether requests are length-delimited.\n * @type {boolean}\n */\n this.requestDelimited = Boolean(requestDelimited);\n\n /**\n * Whether responses are length-delimited.\n * @type {boolean}\n */\n this.responseDelimited = Boolean(responseDelimited);\n}\n\n/**\n * Calls a service method through {@link rpc.Service#rpcImpl|rpcImpl}.\n * @param {Method|rpc.ServiceMethod} method Reflected or static method\n * @param {Constructor} requestCtor Request constructor\n * @param {Constructor} responseCtor Response constructor\n * @param {TReq|Properties} request Request message or plain object\n * @param {rpc.ServiceMethodCallback} callback Service callback\n * @returns {undefined}\n * @template TReq extends Message\n * @template TRes extends Message\n */\nService.prototype.rpcCall = function rpcCall(method, requestCtor, responseCtor, request, callback) {\n\n if (!request)\n throw TypeError(\"request must be specified\");\n\n var self = this;\n if (!callback)\n return util.asPromise(rpcCall, self, method, requestCtor, responseCtor, request);\n\n if (!self.rpcImpl) {\n setTimeout(function() { callback(Error(\"already ended\")); }, 0);\n return undefined;\n }\n\n try {\n return self.rpcImpl(\n method,\n requestCtor[self.requestDelimited ? \"encodeDelimited\" : \"encode\"](request).finish(),\n function rpcCallback(err, response) {\n\n if (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n\n if (response === null) {\n self.end(/* endedByRPC */ true);\n return undefined;\n }\n\n if (!(response instanceof responseCtor)) {\n try {\n response = responseCtor[self.responseDelimited ? \"decodeDelimited\" : \"decode\"](response);\n } catch (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n }\n\n self.emit(\"data\", response, method);\n return callback(null, response);\n }\n );\n } catch (err) {\n self.emit(\"error\", err, method);\n setTimeout(function() { callback(err); }, 0);\n return undefined;\n }\n};\n\n/**\n * Ends this service and emits the `end` event.\n * @param {boolean} [endedByRPC=false] Whether the service has been ended by the RPC implementation.\n * @returns {rpc.Service} `this`\n */\nService.prototype.end = function end(endedByRPC) {\n if (this.rpcImpl) {\n if (!endedByRPC) // signal end to rpcImpl\n this.rpcImpl(null, null, null);\n this.rpcImpl = null;\n this.emit(\"end\").off();\n }\n return this;\n};\n","\"use strict\";\nmodule.exports = LongBits;\n\nvar util = require(\"../util/minimal\");\n\n/**\n * Constructs new long bits.\n * @classdesc Helper class for working with the low and high bits of a 64 bit value.\n * @memberof util\n * @constructor\n * @param {number} lo Low 32 bits, unsigned\n * @param {number} hi High 32 bits, unsigned\n */\nfunction LongBits(lo, hi) {\n\n // note that the casts below are theoretically unnecessary as of today, but older statically\n // generated converter code might still call the ctor with signed 32bits. kept for compat.\n\n /**\n * Low bits.\n * @type {number}\n */\n this.lo = lo >>> 0;\n\n /**\n * High bits.\n * @type {number}\n */\n this.hi = hi >>> 0;\n}\n\n/**\n * Zero bits.\n * @memberof util.LongBits\n * @type {util.LongBits}\n */\nvar zero = LongBits.zero = new LongBits(0, 0);\n\nzero.toNumber = function() { return 0; };\nzero.zzEncode = zero.zzDecode = function() { return this; };\nzero.length = function() { return 1; };\n\n/**\n * Zero hash.\n * @memberof util.LongBits\n * @type {string}\n */\nvar zeroHash = LongBits.zeroHash = \"\\0\\0\\0\\0\\0\\0\\0\\0\";\n\n/**\n * Constructs new long bits from the specified number.\n * @param {number} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.fromNumber = function fromNumber(value) {\n if (value === 0)\n return zero;\n var sign = value < 0;\n if (sign)\n value = -value;\n var lo = value >>> 0,\n hi = (value - lo) / 4294967296 >>> 0;\n if (sign) {\n hi = ~hi >>> 0;\n lo = ~lo >>> 0;\n if (++lo > 4294967295) {\n lo = 0;\n if (++hi > 4294967295)\n hi = 0;\n }\n }\n return new LongBits(lo, hi);\n};\n\n/**\n * Constructs new long bits from a number, long or string.\n * @param {Long|number|string} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.from = function from(value) {\n if (typeof value === \"number\")\n return LongBits.fromNumber(value);\n if (util.isString(value)) {\n /* istanbul ignore else */\n if (util.Long)\n value = util.Long.fromString(value);\n else\n return LongBits.fromNumber(parseInt(value, 10));\n }\n return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero;\n};\n\n/**\n * Converts this long bits to a possibly unsafe JavaScript number.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {number} Possibly unsafe number\n */\nLongBits.prototype.toNumber = function toNumber(unsigned) {\n if (!unsigned && this.hi >>> 31) {\n var lo = ~this.lo + 1 >>> 0,\n hi = ~this.hi >>> 0;\n if (!lo)\n hi = hi + 1 >>> 0;\n return -(lo + hi * 4294967296);\n }\n return this.lo + this.hi * 4294967296;\n};\n\n/**\n * Converts this long bits to a long.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long} Long\n */\nLongBits.prototype.toLong = function toLong(unsigned) {\n return util.Long\n ? new util.Long(this.lo | 0, this.hi | 0, Boolean(unsigned))\n /* istanbul ignore next */\n : { low: this.lo | 0, high: this.hi | 0, unsigned: Boolean(unsigned) };\n};\n\nvar charCodeAt = String.prototype.charCodeAt;\n\n/**\n * Constructs new long bits from the specified 8 characters long hash.\n * @param {string} hash Hash\n * @returns {util.LongBits} Bits\n */\nLongBits.fromHash = function fromHash(hash) {\n if (hash === zeroHash)\n return zero;\n return new LongBits(\n ( charCodeAt.call(hash, 0)\n | charCodeAt.call(hash, 1) << 8\n | charCodeAt.call(hash, 2) << 16\n | charCodeAt.call(hash, 3) << 24) >>> 0\n ,\n ( charCodeAt.call(hash, 4)\n | charCodeAt.call(hash, 5) << 8\n | charCodeAt.call(hash, 6) << 16\n | charCodeAt.call(hash, 7) << 24) >>> 0\n );\n};\n\n/**\n * Converts this long bits to a 8 characters long hash.\n * @returns {string} Hash\n */\nLongBits.prototype.toHash = function toHash() {\n return String.fromCharCode(\n this.lo & 255,\n this.lo >>> 8 & 255,\n this.lo >>> 16 & 255,\n this.lo >>> 24 ,\n this.hi & 255,\n this.hi >>> 8 & 255,\n this.hi >>> 16 & 255,\n this.hi >>> 24\n );\n};\n\n/**\n * Zig-zag encodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzEncode = function zzEncode() {\n var mask = this.hi >> 31;\n this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0;\n this.lo = ( this.lo << 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Zig-zag decodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzDecode = function zzDecode() {\n var mask = -(this.lo & 1);\n this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0;\n this.hi = ( this.hi >>> 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Calculates the length of this longbits when encoded as a varint.\n * @returns {number} Length\n */\nLongBits.prototype.length = function length() {\n var part0 = this.lo,\n part1 = (this.lo >>> 28 | this.hi << 4) >>> 0,\n part2 = this.hi >>> 24;\n return part2 === 0\n ? part1 === 0\n ? part0 < 16384\n ? part0 < 128 ? 1 : 2\n : part0 < 2097152 ? 3 : 4\n : part1 < 16384\n ? part1 < 128 ? 5 : 6\n : part1 < 2097152 ? 7 : 8\n : part2 < 128 ? 9 : 10;\n};\n","\"use strict\";\nvar util = exports;\n\n// used to return a Promise where callback is omitted\nutil.asPromise = require(\"@protobufjs/aspromise\");\n\n// converts to / from base64 encoded strings\nutil.base64 = require(\"@protobufjs/base64\");\n\n// base class of rpc.Service\nutil.EventEmitter = require(\"@protobufjs/eventemitter\");\n\n// float handling accross browsers\nutil.float = require(\"@protobufjs/float\");\n\n// requires modules optionally and hides the call from bundlers\nutil.inquire = require(\"@protobufjs/inquire\");\n\n// converts to / from utf8 encoded strings\nutil.utf8 = require(\"@protobufjs/utf8\");\n\n// provides a node-like buffer pool in the browser\nutil.pool = require(\"@protobufjs/pool\");\n\n// utility to work with the low and high bits of a 64 bit value\nutil.LongBits = require(\"./longbits\");\n\n/**\n * Whether running within node or not.\n * @memberof util\n * @type {boolean}\n */\nutil.isNode = Boolean(typeof global !== \"undefined\"\n && global\n && global.process\n && global.process.versions\n && global.process.versions.node);\n\n/**\n * Global object reference.\n * @memberof util\n * @type {Object}\n */\nutil.global = util.isNode && global\n || typeof window !== \"undefined\" && window\n || typeof self !== \"undefined\" && self\n || this; // eslint-disable-line no-invalid-this\n\n/**\n * An immuable empty array.\n * @memberof util\n * @type {Array.<*>}\n * @const\n */\nutil.emptyArray = Object.freeze ? Object.freeze([]) : /* istanbul ignore next */ []; // used on prototypes\n\n/**\n * An immutable empty object.\n * @type {Object}\n * @const\n */\nutil.emptyObject = Object.freeze ? Object.freeze({}) : /* istanbul ignore next */ {}; // used on prototypes\n\n/**\n * Tests if the specified value is an integer.\n * @function\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is an integer\n */\nutil.isInteger = Number.isInteger || /* istanbul ignore next */ function isInteger(value) {\n return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\n};\n\n/**\n * Tests if the specified value is a string.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a string\n */\nutil.isString = function isString(value) {\n return typeof value === \"string\" || value instanceof String;\n};\n\n/**\n * Tests if the specified value is a non-null object.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a non-null object\n */\nutil.isObject = function isObject(value) {\n return value && typeof value === \"object\";\n};\n\n/**\n * Checks if a property on a message is considered to be present.\n * This is an alias of {@link util.isSet}.\n * @function\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isset =\n\n/**\n * Checks if a property on a message is considered to be present.\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isSet = function isSet(obj, prop) {\n var value = obj[prop];\n if (value != null && obj.hasOwnProperty(prop)) // eslint-disable-line eqeqeq, no-prototype-builtins\n return typeof value !== \"object\" || (Array.isArray(value) ? value.length : Object.keys(value).length) > 0;\n return false;\n};\n\n/**\n * Any compatible Buffer instance.\n * This is a minimal stand-alone definition of a Buffer instance. The actual type is that exported by node's typings.\n * @interface Buffer\n * @extends Uint8Array\n */\n\n/**\n * Node's Buffer class if available.\n * @type {Constructor}\n */\nutil.Buffer = (function() {\n try {\n var Buffer = util.inquire(\"buffer\").Buffer;\n // refuse to use non-node buffers if not explicitly assigned (perf reasons):\n return Buffer.prototype.utf8Write ? Buffer : /* istanbul ignore next */ null;\n } catch (e) {\n /* istanbul ignore next */\n return null;\n }\n})();\n\n// Internal alias of or polyfull for Buffer.from.\nutil._Buffer_from = null;\n\n// Internal alias of or polyfill for Buffer.allocUnsafe.\nutil._Buffer_allocUnsafe = null;\n\n/**\n * Creates a new buffer of whatever type supported by the environment.\n * @param {number|number[]} [sizeOrArray=0] Buffer size or number array\n * @returns {Uint8Array|Buffer} Buffer\n */\nutil.newBuffer = function newBuffer(sizeOrArray) {\n /* istanbul ignore next */\n return typeof sizeOrArray === \"number\"\n ? util.Buffer\n ? util._Buffer_allocUnsafe(sizeOrArray)\n : new util.Array(sizeOrArray)\n : util.Buffer\n ? util._Buffer_from(sizeOrArray)\n : typeof Uint8Array === \"undefined\"\n ? sizeOrArray\n : new Uint8Array(sizeOrArray);\n};\n\n/**\n * Array implementation used in the browser. `Uint8Array` if supported, otherwise `Array`.\n * @type {Constructor}\n */\nutil.Array = typeof Uint8Array !== \"undefined\" ? Uint8Array /* istanbul ignore next */ : Array;\n\n/**\n * Any compatible Long instance.\n * This is a minimal stand-alone definition of a Long instance. The actual type is that exported by long.js.\n * @interface Long\n * @property {number} low Low bits\n * @property {number} high High bits\n * @property {boolean} unsigned Whether unsigned or not\n */\n\n/**\n * Long.js's Long class if available.\n * @type {Constructor}\n */\nutil.Long = /* istanbul ignore next */ util.global.dcodeIO && /* istanbul ignore next */ util.global.dcodeIO.Long\n || /* istanbul ignore next */ util.global.Long\n || util.inquire(\"long\");\n\n/**\n * Regular expression used to verify 2 bit (`bool`) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key2Re = /^true|false|0|1$/;\n\n/**\n * Regular expression used to verify 32 bit (`int32` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key32Re = /^-?(?:0|[1-9][0-9]*)$/;\n\n/**\n * Regular expression used to verify 64 bit (`int64` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key64Re = /^(?:[\\\\x00-\\\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;\n\n/**\n * Converts a number or long to an 8 characters long hash string.\n * @param {Long|number} value Value to convert\n * @returns {string} Hash\n */\nutil.longToHash = function longToHash(value) {\n return value\n ? util.LongBits.from(value).toHash()\n : util.LongBits.zeroHash;\n};\n\n/**\n * Converts an 8 characters long hash string to a long or number.\n * @param {string} hash Hash\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long|number} Original value\n */\nutil.longFromHash = function longFromHash(hash, unsigned) {\n var bits = util.LongBits.fromHash(hash);\n if (util.Long)\n return util.Long.fromBits(bits.lo, bits.hi, unsigned);\n return bits.toNumber(Boolean(unsigned));\n};\n\n/**\n * Merges the properties of the source object into the destination object.\n * @memberof util\n * @param {Object.} dst Destination object\n * @param {Object.} src Source object\n * @param {boolean} [ifNotSet=false] Merges only if the key is not already set\n * @returns {Object.} Destination object\n */\nfunction merge(dst, src, ifNotSet) { // used by converters\n for (var keys = Object.keys(src), i = 0; i < keys.length; ++i)\n if (dst[keys[i]] === undefined || !ifNotSet)\n dst[keys[i]] = src[keys[i]];\n return dst;\n}\n\nutil.merge = merge;\n\n/**\n * Converts the first character of a string to lower case.\n * @param {string} str String to convert\n * @returns {string} Converted string\n */\nutil.lcFirst = function lcFirst(str) {\n return str.charAt(0).toLowerCase() + str.substring(1);\n};\n\n/**\n * Creates a custom error constructor.\n * @memberof util\n * @param {string} name Error name\n * @returns {Constructor} Custom error constructor\n */\nfunction newError(name) {\n\n function CustomError(message, properties) {\n\n if (!(this instanceof CustomError))\n return new CustomError(message, properties);\n\n // Error.call(this, message);\n // ^ just returns a new error instance because the ctor can be called as a function\n\n Object.defineProperty(this, \"message\", { get: function() { return message; } });\n\n /* istanbul ignore next */\n if (Error.captureStackTrace) // node\n Error.captureStackTrace(this, CustomError);\n else\n Object.defineProperty(this, \"stack\", { value: new Error().stack || \"\" });\n\n if (properties)\n merge(this, properties);\n }\n\n (CustomError.prototype = Object.create(Error.prototype)).constructor = CustomError;\n\n Object.defineProperty(CustomError.prototype, \"name\", { get: function() { return name; } });\n\n CustomError.prototype.toString = function toString() {\n return this.name + \": \" + this.message;\n };\n\n return CustomError;\n}\n\nutil.newError = newError;\n\n/**\n * Constructs a new protocol error.\n * @classdesc Error subclass indicating a protocol specifc error.\n * @memberof util\n * @extends Error\n * @template T extends Message\n * @constructor\n * @param {string} message Error message\n * @param {Object.} [properties] Additional properties\n * @example\n * try {\n * MyMessage.decode(someBuffer); // throws if required fields are missing\n * } catch (e) {\n * if (e instanceof ProtocolError && e.instance)\n * console.log(\"decoded so far: \" + JSON.stringify(e.instance));\n * }\n */\nutil.ProtocolError = newError(\"ProtocolError\");\n\n/**\n * So far decoded message instance.\n * @name util.ProtocolError#instance\n * @type {Message}\n */\n\n/**\n * A OneOf getter as returned by {@link util.oneOfGetter}.\n * @typedef OneOfGetter\n * @type {function}\n * @returns {string|undefined} Set field name, if any\n */\n\n/**\n * Builds a getter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfGetter} Unbound getter\n */\nutil.oneOfGetter = function getOneOf(fieldNames) {\n var fieldMap = {};\n for (var i = 0; i < fieldNames.length; ++i)\n fieldMap[fieldNames[i]] = 1;\n\n /**\n * @returns {string|undefined} Set field name, if any\n * @this Object\n * @ignore\n */\n return function() { // eslint-disable-line consistent-return\n for (var keys = Object.keys(this), i = keys.length - 1; i > -1; --i)\n if (fieldMap[keys[i]] === 1 && this[keys[i]] !== undefined && this[keys[i]] !== null)\n return keys[i];\n };\n};\n\n/**\n * A OneOf setter as returned by {@link util.oneOfSetter}.\n * @typedef OneOfSetter\n * @type {function}\n * @param {string|undefined} value Field name\n * @returns {undefined}\n */\n\n/**\n * Builds a setter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfSetter} Unbound setter\n */\nutil.oneOfSetter = function setOneOf(fieldNames) {\n\n /**\n * @param {string} name Field name\n * @returns {undefined}\n * @this Object\n * @ignore\n */\n return function(name) {\n for (var i = 0; i < fieldNames.length; ++i)\n if (fieldNames[i] !== name)\n delete this[fieldNames[i]];\n };\n};\n\n/**\n * Default conversion options used for {@link Message#toJSON} implementations.\n *\n * These options are close to proto3's JSON mapping with the exception that internal types like Any are handled just like messages. More precisely:\n *\n * - Longs become strings\n * - Enums become string keys\n * - Bytes become base64 encoded strings\n * - (Sub-)Messages become plain objects\n * - Maps become plain objects with all string keys\n * - Repeated fields become arrays\n * - NaN and Infinity for float and double fields become strings\n *\n * @type {IConversionOptions}\n * @see https://developers.google.com/protocol-buffers/docs/proto3?hl=en#json\n */\nutil.toJSONOptions = {\n longs: String,\n enums: String,\n bytes: String,\n json: true\n};\n\n// Sets up buffer utility according to the environment (called in index-minimal)\nutil._configure = function() {\n var Buffer = util.Buffer;\n /* istanbul ignore if */\n if (!Buffer) {\n util._Buffer_from = util._Buffer_allocUnsafe = null;\n return;\n }\n // because node 4.x buffers are incompatible & immutable\n // see: https://github.com/dcodeIO/protobuf.js/pull/665\n util._Buffer_from = Buffer.from !== Uint8Array.from && Buffer.from ||\n /* istanbul ignore next */\n function Buffer_from(value, encoding) {\n return new Buffer(value, encoding);\n };\n util._Buffer_allocUnsafe = Buffer.allocUnsafe ||\n /* istanbul ignore next */\n function Buffer_allocUnsafe(size) {\n return new Buffer(size);\n };\n};\n","\"use strict\";\nmodule.exports = Writer;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferWriter; // cyclic\n\nvar LongBits = util.LongBits,\n base64 = util.base64,\n utf8 = util.utf8;\n\n/**\n * Constructs a new writer operation instance.\n * @classdesc Scheduled writer operation.\n * @constructor\n * @param {function(*, Uint8Array, number)} fn Function to call\n * @param {number} len Value byte length\n * @param {*} val Value to write\n * @ignore\n */\nfunction Op(fn, len, val) {\n\n /**\n * Function to call.\n * @type {function(Uint8Array, number, *)}\n */\n this.fn = fn;\n\n /**\n * Value byte length.\n * @type {number}\n */\n this.len = len;\n\n /**\n * Next operation.\n * @type {Writer.Op|undefined}\n */\n this.next = undefined;\n\n /**\n * Value to write.\n * @type {*}\n */\n this.val = val; // type varies\n}\n\n/* istanbul ignore next */\nfunction noop() {} // eslint-disable-line no-empty-function\n\n/**\n * Constructs a new writer state instance.\n * @classdesc Copied writer state.\n * @memberof Writer\n * @constructor\n * @param {Writer} writer Writer to copy state from\n * @ignore\n */\nfunction State(writer) {\n\n /**\n * Current head.\n * @type {Writer.Op}\n */\n this.head = writer.head;\n\n /**\n * Current tail.\n * @type {Writer.Op}\n */\n this.tail = writer.tail;\n\n /**\n * Current buffer length.\n * @type {number}\n */\n this.len = writer.len;\n\n /**\n * Next state.\n * @type {State|null}\n */\n this.next = writer.states;\n}\n\n/**\n * Constructs a new writer instance.\n * @classdesc Wire format writer using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n */\nfunction Writer() {\n\n /**\n * Current length.\n * @type {number}\n */\n this.len = 0;\n\n /**\n * Operations head.\n * @type {Object}\n */\n this.head = new Op(noop, 0, 0);\n\n /**\n * Operations tail\n * @type {Object}\n */\n this.tail = this.head;\n\n /**\n * Linked forked states.\n * @type {Object|null}\n */\n this.states = null;\n\n // When a value is written, the writer calculates its byte length and puts it into a linked\n // list of operations to perform when finish() is called. This both allows us to allocate\n // buffers of the exact required size and reduces the amount of work we have to do compared\n // to first calculating over objects and then encoding over objects. In our case, the encoding\n // part is just a linked list walk calling operations with already prepared values.\n}\n\nvar create = function create() {\n return util.Buffer\n ? function create_buffer_setup() {\n return (Writer.create = function create_buffer() {\n return new BufferWriter();\n })();\n }\n /* istanbul ignore next */\n : function create_array() {\n return new Writer();\n };\n};\n\n/**\n * Creates a new writer.\n * @function\n * @returns {BufferWriter|Writer} A {@link BufferWriter} when Buffers are supported, otherwise a {@link Writer}\n */\nWriter.create = create();\n\n/**\n * Allocates a buffer of the specified size.\n * @param {number} size Buffer size\n * @returns {Uint8Array} Buffer\n */\nWriter.alloc = function alloc(size) {\n return new util.Array(size);\n};\n\n// Use Uint8Array buffer pool in the browser, just like node does with buffers\n/* istanbul ignore else */\nif (util.Array !== Array)\n Writer.alloc = util.pool(Writer.alloc, util.Array.prototype.subarray);\n\n/**\n * Pushes a new operation to the queue.\n * @param {function(Uint8Array, number, *)} fn Function to call\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @returns {Writer} `this`\n * @private\n */\nWriter.prototype._push = function push(fn, len, val) {\n this.tail = this.tail.next = new Op(fn, len, val);\n this.len += len;\n return this;\n};\n\nfunction writeByte(val, buf, pos) {\n buf[pos] = val & 255;\n}\n\nfunction writeVarint32(val, buf, pos) {\n while (val > 127) {\n buf[pos++] = val & 127 | 128;\n val >>>= 7;\n }\n buf[pos] = val;\n}\n\n/**\n * Constructs a new varint writer operation instance.\n * @classdesc Scheduled varint writer operation.\n * @extends Op\n * @constructor\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @ignore\n */\nfunction VarintOp(len, val) {\n this.len = len;\n this.next = undefined;\n this.val = val;\n}\n\nVarintOp.prototype = Object.create(Op.prototype);\nVarintOp.prototype.fn = writeVarint32;\n\n/**\n * Writes an unsigned 32 bit value as a varint.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.uint32 = function write_uint32(value) {\n // here, the call to this.push has been inlined and a varint specific Op subclass is used.\n // uint32 is by far the most frequently used operation and benefits significantly from this.\n this.len += (this.tail = this.tail.next = new VarintOp(\n (value = value >>> 0)\n < 128 ? 1\n : value < 16384 ? 2\n : value < 2097152 ? 3\n : value < 268435456 ? 4\n : 5,\n value)).len;\n return this;\n};\n\n/**\n * Writes a signed 32 bit value as a varint.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.int32 = function write_int32(value) {\n return value < 0\n ? this._push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec\n : this.uint32(value);\n};\n\n/**\n * Writes a 32 bit value as a varint, zig-zag encoded.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sint32 = function write_sint32(value) {\n return this.uint32((value << 1 ^ value >> 31) >>> 0);\n};\n\nfunction writeVarint64(val, buf, pos) {\n while (val.hi) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0;\n val.hi >>>= 7;\n }\n while (val.lo > 127) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = val.lo >>> 7;\n }\n buf[pos++] = val.lo;\n}\n\n/**\n * Writes an unsigned 64 bit value as a varint.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.uint64 = function write_uint64(value) {\n var bits = LongBits.from(value);\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a signed 64 bit value as a varint.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.int64 = Writer.prototype.uint64;\n\n/**\n * Writes a signed 64 bit value as a varint, zig-zag encoded.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sint64 = function write_sint64(value) {\n var bits = LongBits.from(value).zzEncode();\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a boolish value as a varint.\n * @param {boolean} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bool = function write_bool(value) {\n return this._push(writeByte, 1, value ? 1 : 0);\n};\n\nfunction writeFixed32(val, buf, pos) {\n buf[pos ] = val & 255;\n buf[pos + 1] = val >>> 8 & 255;\n buf[pos + 2] = val >>> 16 & 255;\n buf[pos + 3] = val >>> 24;\n}\n\n/**\n * Writes an unsigned 32 bit value as fixed 32 bits.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.fixed32 = function write_fixed32(value) {\n return this._push(writeFixed32, 4, value >>> 0);\n};\n\n/**\n * Writes a signed 32 bit value as fixed 32 bits.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sfixed32 = Writer.prototype.fixed32;\n\n/**\n * Writes an unsigned 64 bit value as fixed 64 bits.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.fixed64 = function write_fixed64(value) {\n var bits = LongBits.from(value);\n return this._push(writeFixed32, 4, bits.lo)._push(writeFixed32, 4, bits.hi);\n};\n\n/**\n * Writes a signed 64 bit value as fixed 64 bits.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sfixed64 = Writer.prototype.fixed64;\n\n/**\n * Writes a float (32 bit).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.float = function write_float(value) {\n return this._push(util.float.writeFloatLE, 4, value);\n};\n\n/**\n * Writes a double (64 bit float).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.double = function write_double(value) {\n return this._push(util.float.writeDoubleLE, 8, value);\n};\n\nvar writeBytes = util.Array.prototype.set\n ? function writeBytes_set(val, buf, pos) {\n buf.set(val, pos); // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytes_for(val, buf, pos) {\n for (var i = 0; i < val.length; ++i)\n buf[pos + i] = val[i];\n };\n\n/**\n * Writes a sequence of bytes.\n * @param {Uint8Array|string} value Buffer or base64 encoded string to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bytes = function write_bytes(value) {\n var len = value.length >>> 0;\n if (!len)\n return this._push(writeByte, 1, 0);\n if (util.isString(value)) {\n var buf = Writer.alloc(len = base64.length(value));\n base64.decode(value, buf, 0);\n value = buf;\n }\n return this.uint32(len)._push(writeBytes, len, value);\n};\n\n/**\n * Writes a string.\n * @param {string} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.string = function write_string(value) {\n var len = utf8.length(value);\n return len\n ? this.uint32(len)._push(utf8.write, len, value)\n : this._push(writeByte, 1, 0);\n};\n\n/**\n * Forks this writer's state by pushing it to a stack.\n * Calling {@link Writer#reset|reset} or {@link Writer#ldelim|ldelim} resets the writer to the previous state.\n * @returns {Writer} `this`\n */\nWriter.prototype.fork = function fork() {\n this.states = new State(this);\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n return this;\n};\n\n/**\n * Resets this instance to the last state.\n * @returns {Writer} `this`\n */\nWriter.prototype.reset = function reset() {\n if (this.states) {\n this.head = this.states.head;\n this.tail = this.states.tail;\n this.len = this.states.len;\n this.states = this.states.next;\n } else {\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n }\n return this;\n};\n\n/**\n * Resets to the last state and appends the fork state's current write length as a varint followed by its operations.\n * @returns {Writer} `this`\n */\nWriter.prototype.ldelim = function ldelim() {\n var head = this.head,\n tail = this.tail,\n len = this.len;\n this.reset().uint32(len);\n if (len) {\n this.tail.next = head.next; // skip noop\n this.tail = tail;\n this.len += len;\n }\n return this;\n};\n\n/**\n * Finishes the write operation.\n * @returns {Uint8Array} Finished buffer\n */\nWriter.prototype.finish = function finish() {\n var head = this.head.next, // skip noop\n buf = this.constructor.alloc(this.len),\n pos = 0;\n while (head) {\n head.fn(head.val, buf, pos);\n pos += head.len;\n head = head.next;\n }\n // this.head = this.tail = null;\n return buf;\n};\n\nWriter._configure = function(BufferWriter_) {\n BufferWriter = BufferWriter_;\n Writer.create = create();\n BufferWriter._configure();\n};\n","\"use strict\";\nmodule.exports = BufferWriter;\n\n// extends Writer\nvar Writer = require(\"./writer\");\n(BufferWriter.prototype = Object.create(Writer.prototype)).constructor = BufferWriter;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new buffer writer instance.\n * @classdesc Wire format writer using node buffers.\n * @extends Writer\n * @constructor\n */\nfunction BufferWriter() {\n Writer.call(this);\n}\n\nBufferWriter._configure = function () {\n /**\n * Allocates a buffer of the specified size.\n * @function\n * @param {number} size Buffer size\n * @returns {Buffer} Buffer\n */\n BufferWriter.alloc = util._Buffer_allocUnsafe;\n\n BufferWriter.writeBytesBuffer = util.Buffer && util.Buffer.prototype instanceof Uint8Array && util.Buffer.prototype.set.name === \"set\"\n ? function writeBytesBuffer_set(val, buf, pos) {\n buf.set(val, pos); // faster than copy (requires node >= 4 where Buffers extend Uint8Array and set is properly inherited)\n // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytesBuffer_copy(val, buf, pos) {\n if (val.copy) // Buffer values\n val.copy(buf, pos, 0, val.length);\n else for (var i = 0; i < val.length;) // plain array values\n buf[pos++] = val[i++];\n };\n};\n\n\n/**\n * @override\n */\nBufferWriter.prototype.bytes = function write_bytes_buffer(value) {\n if (util.isString(value))\n value = util._Buffer_from(value, \"base64\");\n var len = value.length >>> 0;\n this.uint32(len);\n if (len)\n this._push(BufferWriter.writeBytesBuffer, len, value);\n return this;\n};\n\nfunction writeStringBuffer(val, buf, pos) {\n if (val.length < 40) // plain js is faster for short strings (probably due to redundant assertions)\n util.utf8.write(val, buf, pos);\n else if (buf.utf8Write)\n buf.utf8Write(val, pos);\n else\n buf.write(val, pos);\n}\n\n/**\n * @override\n */\nBufferWriter.prototype.string = function write_string_buffer(value) {\n var len = util.Buffer.byteLength(value);\n this.uint32(len);\n if (len)\n this._push(writeStringBuffer, len, value);\n return this;\n};\n\n\n/**\n * Finishes the write operation.\n * @name BufferWriter#finish\n * @function\n * @returns {Buffer} Finished buffer\n */\n\nBufferWriter._configure();\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(60880);\n"],"names":["root","factory","exports","module","define","amd","self","this","Object","defineProperty","value","JMES_COIN_TYPE","__importDefault","mod","__esModule","Client","Wallet_1","MarketplaceAPI_1","IdentityAPI_1","FaucetAPI_1","LCDClient_1","CONSTANTS_1","config","_a","_b","_c","providers","marketplaceAPI","default","identityAPI","faucetAPI","LCDC","prototype","createLCDClient","LCDClient","createWallet","key","lcdcUrl","bip44Path","concat","console","log","chainDerivedKey","toMasterDerivableKey","derivePath","Wallet","__createBinding","create","o","m","k","k2","undefined","desc","getOwnPropertyDescriptor","writable","configurable","enumerable","get","__exportStar","p","hasOwnProperty","call","requestCredit_1","FaucetAPI","endpoint","api_url","requestCredit","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","e","rejected","result","done","then","apply","__generator","body","f","y","t","g","_","label","sent","trys","ops","verb","Symbol","iterator","n","v","op","TypeError","pop","length","push","axios_1","address","url","Error","getIdentity_1","getToken_1","createIdentity_1","IdentityAPI","getIdentity","getToken","createIdentity","username","account","publicKey","getAddress","getPublic","post","toString","identityName","ts","message","signature","Date","signMessage","extendStatics","__extends","d","b","setPrototypeOf","__proto__","Array","String","__","constructor","Coin","json_1","numeric_1","coin_1","_super","denom","amount","_this","Numeric","parse","isIntCoin","Int","isDecCoin","Dec","toIntCoin","toIntCeilCoin","ceil","toDecCoin","toFixed","indexOf","fromString","str","match","add","other","otherAmount","ArithmeticError","sub","mul","div","fromAmino","data","toAmino","fromData","toData","fromProto","proto","toProto","fromPartial","JSONSerializable","__assign","assign","s","i","arguments","__spreadArray","to","from","pack","ar","l","slice","Coins","Coin_1","arg","_coins","coins_2","isArray","keys","forEach","_i","coins_1","coin","x","toArray","every","c","index","map","join","split","denoms","toDecCoins","toIntCoins","toIntCeilCoins","set","val","values","sort","a","localeCompare","fn","filter","CompactBitArray","multisig_1","extra_bits_stored","elems","fromBits","bits","num_elems","Math","pow","Buffer","alloc","count","getIndex","readUInt8","setIndex","numTrueBitsBefore","countOneBits","ones_count","max","elem","extraBitsStored","__setModuleDefault","__importStar","Deposit","Coins_1","gov_1","Long","proposal_id","depositor","Number","parseInt","proposalId","toNumber","fromNumber","Fee","tx_1","gas_limit","payer","granter","gas","gasLimit","gasPrices","Msg","msgs_1","msgs_2","msgs_3","msgs_4","msgs_5","msgs_6","msgs_7","msgs_8","msgs_9","msgs_10","msgs_11","transfer_1","client_1","connection_1","channel_1","crisis_1","isClassic","type","MsgSend","MsgMultiSend","MsgSetWithdrawAddress","MsgWithdrawDelegatorReward","MsgWithdrawValidatorCommission","MsgFundCommunityPool","MsgGrantAllowance","MsgRevokeAllowance","MsgDeposit","MsgSubmitProposal","MsgVote","MsgVoteWeighted","MsgSwap","MsgSwapSend","MsgGrantAuthorization","MsgRevokeAuthorization","MsgExecAuthorized","MsgDelegateFeedConsent","MsgAggregateExchangeRatePrevote","MsgAggregateExchangeRateVote","MsgUnjail","MsgDelegate","MsgUndelegate","MsgBeginRedelegate","MsgCreateValidator","MsgEditValidator","MsgCreatePeriodicVestingAccount","MsgCreateVestingAccount","MsgDonateAllVestingTokens","MsgStoreCode","MsgMigrateCode","MsgInstantiateContract","MsgExecuteContract","MsgMigrateContract","MsgUpdateContractAdmin","MsgClearContractAdmin","MsgTransfer","MsgVerifyInvariant","MsgCreateClient","MsgUpdateClient","MsgUpgradeClient","MsgSubmitMisbehaviour","MsgConnectionOpenInit","MsgConnectionOpenTry","MsgConnectionOpenConfirm","MsgConnectionOpenAck","MsgChannelOpenInit","MsgChannelOpenTry","MsgChannelOpenConfirm","MsgChannelOpenAck","MsgChannelCloseInit","MsgChannelCloseConfirm","MsgRecvPacket","MsgAcknowledgement","MsgTimeout","MsgTimeoutOnClose","typeUrl","unpackAny","MultiSignature","PublicKey_1","CompactBitArray_1","SignatureV2_1","multisig_pubkey","pubkeys","bitarray","signatures","appendSignature","signature_data","newSigIndex","splice","appendSignatureFromPubKey","public_key","findIndex","appendSignatureV2s","signatures_1","SimplePublicKey","toSignatureDescriptor","SignatureV2","Descriptor","Multi","ValConsPublicKey","LegacyAminoMultisigPublicKey","PublicKey","hash_1","keys_1","any_1","keys_2","keys_3","bech32_1","pubkeyAminoPrefixSecp256k1","pubkeyAminoPrefixEd25519","pubkeyAminoPrefixMultisigThreshold","encodeUvarint","checked","pubkeyAny","pubkeyProto","PubKey","packAny","Any","encode","finish","decode","encodeAminoPubkey","rawAddress","pubkeyData","ripemd160","sha256","bech32","toWords","pubkeyAddress","threshold","out","Uint8Array","public_keys","publicKeys","LegacyAminoPubKey","SignDoc","Tx_1","chain_id","account_number","sequence","auth_info","tx_body","memo","messages","timeout_height","fee","msgs","body_bytes","toBytes","auth_info_bytes","bodyBytes","authInfoBytes","accountNumber","chainId","toUnSignedTx","Tx","SignMode","signing_1","signing_2","pub_key","Single","SIGN_MODE_LEGACY_AMINO_JSON","single","multi","toModeInfoAndSignature","sigData","ModeInfo","mode","modeInfos","modeInfo","sigBytes","multisigBytes","signModeFromJSON","signModeToJSON","sig","SignerInfo","AuthInfo","TxBody","Msg_1","Fee_1","msg","anyProto","authInfo","fromBuffer","buf","appendEmptySignatures","signers","signer","signerInfo","sequenceNumber","SIGN_MODE_DIRECT","signer_infos","clearSignatures","appendSignatures","timeoutHeight","info","signerInfos","mode_info","singleMode","multiMode","ModeInfo_Single","mode_infos","ModeInfo_Multi","TxLog","EventsByType","TxInfo","abci_1","height","txhash","raw_log","logs","gas_wanted","gas_used","tx","timestamp","code","codespace","rawLog","gasWanted","gasUsed","eventAmino","events","ev","attributes","attr","msg_index","eventsByType","msgIndex","ABCIMessageLog","Account","BaseAccount_1","LazyGradedVestingAccount_1","ContinuousVestingAccount_1","DelayedVestingAccount_1","PeriodicVestingAccount_1","BaseVestingAccount_1","amino","BaseAccount","BaseVestingAccount","LazyGradedVestingAccount","ContinuousVestingAccount","DelayedVestingAccount","PeriodicVestingAccount","accountAny","auth_1","getAccountNumber","getSequenceNumber","getPublicKey","pubKey","baseAccountProto","pubkey","vesting_1","base_account","original_vesting","delegated_free","delegated_vesting","end_time","baseAccount","delegatedFree","delegatedVesting","endTime","originalVesting","base_vesting_account","start_time","baseVestingAccount","startTime","ContinuousVestingAccountProto","DelayedVestingAccountProto","vesting_schedules","vs","VestingSchedule","vestingSchedules","lazyGradedVestingAccountProto","schedules","Entry","vestingScheduleProto","ratio","entryProto","Schedule","vesting_periods","Period","vestingPeriods","Authorization","AuthorizationGrant","GenericAuthorization_1","SendAuthorization_1","StakeAuthorization_1","authz_1","authorization","expiration","toISOString","replace","Grant","SendAuthorization","GenericAuthorization","StakeAuthorization","msgAny","spend_limit","spendLimit","StakeAuthorizationValidators","authorization_type","max_tokens","allow_list","deny_list","authorizationTypeFromJSON","authorizationTypeToJSON","authorizationType","maxTokens","allowList","denyList","StakeAuthorization_Validators","Type","AuthorizationType","grantee","MsgExec","authorizations_1","grant","MsgGrant","msg_type_url","msgTypeUrl","MsgRevoke","bank_1","inputs","outputs","Input","Output","coinsInput","coins","from_address","to_address","fromAddress","toAddress","ValConsAddress","ValPubKey","ValAddress","AccPubKey","AccAddress","checkPrefixAndLength","prefix","validate","fromValAddress","vals","words","fromAccAddress","valAddress","sender","invariantModuleName","invariantRoute","delegator_address","withdraw_address","delegatorAddress","withdrawAddress","validator_address","validatorAddress","CommunityPoolSpendProposal","distribution_1","title","description","recipient","AllowedMsgAllowance","BasicAllowance_1","PeriodicAllowance_1","feegrant_1","allowance","allowed_messages","BasicAllowance","PeriodicAllowance","allowedMessages","hasNotPositive","lessThanOrEqualTo","basic","period","period_spend_limit","period_can_spend","period_reset","seconds","periodSpendLimit","periodCanSpend","periodReset","Allowance","AllowedMsgAllowance_1","allowances_1","Proposal","proposals_1","proposals_2","proposals_3","proposals_4","proposals_5","proposals_6","id","content","status","final_tally_result","submit_time","deposit_end_time","total_deposit","voting_start_time","voting_end_time","Content","yes","no","abstain","no_with_veto","proposalStatusFromJSON","proposalStatusToJSON","finalTallyResult","submitTime","depositEndTime","totalDeposit","votingStartTime","votingEndTime","noWithVeto","ftr","TallyResult","Status","ProposalStatus","TextProposal","ParameterChangeProposal","SoftwareUpgradeProposal","CancelSoftwareUpgradeProposal","ClientUpdateProposal","ClearAdminProposal","ExecuteContractProposal","InstantiateContractProposal","MigrateContractProposal","PinCodesProposal","StoreCodeProposal","SudoContractProposal","UnpinCodesProposal","UpdateAdminProposal","UpdateInstantiateConfigProposal","WeightedVoteOption","Vote","voter","options","Option","VoteOption","option","weight","Proposal_1","initial_deposit","proposer","initialDeposit","Vote_1","Params","host_1","host_enabled","hostEnabled","allowMessages","DenomTrace","path","base_denom","baseDenom","Height_1","source_port","source_channel","token","receiver","timeout_timestamp","Height","timeoutTimestamp","sourcePort","sourceChannel","FungibleTokenPacketData","packet_1","Channel","Counterparty_1","state","ordering","counterparty","connection_hops","version","Counterparty","connectionHops","port_id","channel_id","portId","channelId","Packet","long_1","destination_port","destination_channel","_data","destinationPort","destinationChannel","PacketId","revision_number","revision_height","revisionNumber","revisionHeight","IdentifiedClientState","client_id","client_state","clientId","clientState","MerklePrefix","commitment_1","key_prefix","keyPrefix","MerklePrefix_1","connection_id","connectionId","IdentifiedConnection","stateToJSON","stateFromJSON","State","Version_1","connection_2","versions","delay_period","Version","delayPeriod","identifier","features","Header","tendermint_1","types_1","signedHeader","validatorSet","trustedHeight","trustedValidators","signed_header","validator_set","trusted_height","trusted_validators","SignedHeader","ValidatorSet","proof_init","proof_height","proofInit","proofHeight","counterparty_channel_id","counterparty_version","proof_try","counterpartyChannelId","counterpartyVersion","proofTry","proof_ack","proofAck","Channel_1","channel","previous_channel_id","previousChannelId","Packet_1","packet","acknowledgement","proof_acked","proofAcked","proof_commitment","proofCommitment","proof_unreceived","next_sequence_recv","proofUnreceived","nextSequenceRecv","proof_close","proofClose","consensus_state","consensusState","misbehaviour","Header_1","header","proof_upgrade_client","proof_upgrade_consensus_state","proofUpgradeClient","proofUpgradeConsensusState","Proof","proof_1","total","leafHash","aunts","leaf_hash","aunt","ed25519","secp256k1","Validator","CommitSig","Commit","PartSetHeader","BlockID","validator_1","version_1","crypto_1","time","lastBlockId","lastCommitHash","dataHash","validatorsHash","nextValidatorsHash","consensusHash","appHash","lastResultsHash","evidenceHash","proposerAddress","last_block_id","last_commit_hash","data_hash","validators_hash","next_validators_hash","consensus_hash","app_hash","last_results_hash","evidence_hash","proposer_address","Consensus","commit","hash","partSetHeader","part_set_header","round","blockId","block_id","blockIdFlag","block_id_flag","blockIDFlagFromJSON","blockIDFlagToJSON","validators","totalVotingPower","total_voting_power","votingPower","proposerPriority","voting_power","proposer_priority","App","types_2","block","app","protocol","software","counterparty_connection_id","proof_client","proof_consensus","consensus_height","counterpartyConnectionId","proofClient","proofConsensus","consensusHeight","previous_connection_id","counterparty_versions","cv","previousConnectionId","counterpartyVersions","subjectClientId","substituteClientId","subject_client_id","substitute_client_id","trader","offer_coin","ask_denom","offerCoin","askDenom","int","dec","DEC_PRECISION","decimal_js_1","includes","_value","isInteger","withPrec","prec","toInt","_arg","divToInt","toDec","plus","minus","times","clone","strings","AggregateExchangeRatePrevote","oracle_1","submit_block","submitBlock","ExchangeRateTuple","AggregateExchangeRateVote","exchange_rate_tuples","exchangeRateTuples","exchange_rate","exchangeRate","feeder","validator","aggregateVoteHash","SHA256_1","MsgAggregateExchangeRatePrevote_1","exchangeRates","salt","payload","SHA256","substring","exchange_rates","getAggregateVoteHash","getPrevote","operator","delegate","ParamChange","ParamChanges","params_1","paramChanges","subspace","ParamChange_1","changes","validatorAddr","Delegation","staking_1","shares","balance","delegation","delegationProto","DelegationResponse","Redelegation","validator_src_address","validator_dst_address","entries","redelegation","redelegationProto","validatorDstAddress","RedelegationResponse","redelegationEntry","validatorSrcAddress","initial_balance","shares_dst","creation_height","completion_time","redelegation_entry","RedelegationEntryResponse","RedelegationEntry","completionTime","creationHeight","initialBalance","sharesDst","redelegationEntryProto","UnbondingDelegation","UnbondingDelegationEntry","operator_address","consensus_pubkey","jailed","tokens","delegator_shares","unbonding_height","unbonding_time","commission","min_self_delegation","Description","Commission","consensusPubkey","delegatorShares","minSelfDelegation","operatorAddress","unbondingHeight","unbondingTime","BondStatus","moniker","identity","website","details","security_contact","securityContact","CommissionRates","rate","max_rate","max_change_rate","maxRate","maxChangeRate","commission_rates","update_time","commissionRates","updateTime","Validator_1","commission_rate","commissionRate","DESC_DO_NOT_MODIFY","PolicyConstraints","treasury_1","rate_min","rate_max","cap","change_rate_max","rateMax","rateMin","changeRateMax","clamp","prevRate","newRate","lt","gt","delta","abs","Plan","upgrade_1","name","upgraded_client_state","upgradedClientState","Plan_1","plan","Period_1","delayed","AbsoluteTxPosition","block_height","tx_index","blockHeight","txIndex","AccessConfig","AccessType","util_1","permission","convertAccessTypeFromJSON","accessTypeToJSON","AccessConfigUpdate","proposal_1","AccessConfig_1","code_id","instantiate_permission","codeId","instantiatePermission","AccessTypeParam","HistoryEntry","AbsoluteTxPosition_1","operation","updated","contractCodeHistoryOperationTypeFromJSON","contractCodeHistoryOperationTypeToJSON","JSON","ContractCodeHistoryEntry","stringify","removeNull","tx_2","admin","contract","MsgClearAdmin","execute_msg","funds","executeMsg","init_msg","init_coins","initMsg","initCoins","wasm_byte_code","wasmByteCode","new_code_id","migrate_msg","newCodeId","migrateMsg","new_admin","newAdmin","MsgUpdateAdmin","run_as","runAs","code_ids","cid","codeIds","AccessConfigUpdate_1","access_config_updates","acu","accessConfigUpdates","accessType","converted","accessTypeFromJSON","Key","core_1","createSignatureAmino","_d","_e","_f","_g","_h","bind","sign","toAminoJSON","createSignature","signDoc","signTx","copyTx","sign_doc","chainID","signMode","MnemonicKey","bip32","bip39","RawKey_1","DEFAULT_OPTIONS","coinType","mnemonic","generateMnemonic","seed","mnemonicToSeedSync","masterKey","HDKey","fromMasterSeed","hdPathLuna","privateKey","derive","RawKey","jscrypto_1","Key_1","elliptic","ec","keyFromPrivate","ecdsaSign","Word32Array","canonical","r","toArrayLike","recid","recoveryParam","APIRequester","OrderBy","service_1","baseURL","axios","headers","Accept","timeout","computeEndpoint","URL","pathname","getRaw","params","postRaw","APIRequester_1","api_1","LCDUtils_1","DEFAULT_LCD_OPTIONS","gasAdjustment","DEFAULT_NETWORK_TYPE_BY_CHAIN_ID","DEFAULT_GAS_PRICES_BY_CHAIN_ID","ujmes","apiRequester","auth","AuthAPI","bank","BankAPI","distribution","DistributionAPI","feeGrant","FeeGrantAPI","gov","GovAPI","market","MarketAPI","mint","MintAPI","authz","AuthzAPI","oracle","OracleAPI","slashing","SlashingAPI","staking","StakingAPI","tendermint","TendermintAPI","treasury","TreasuryAPI","wasm","WasmAPI","ibc","IbcAPI","ibcTransfer","IbcTransferAPI","TxAPI","utils","LCDUtils","wallet","lcd","calculateTax","taxRate","taxCap","min","validatorsWithVotingPower","validatorSetByPubKey","next_key","validatorsRes","res","validators_1","delegateInfo","reduce","validatorInfo","accountNumberAndSequence","accountInfo","accAddress","createTx","createAndSignTx","parameters","max_memo_characters","tx_sig_limit","tx_size_cost_per_byte","sig_verify_cost_ed25519","sig_verify_cost_secp256k1","BaseAPI","BaseAPI_1","grants","pagination","balances","supply","spendableBalances","send_enabled","default_send_enabled","rewards","delegator","rewardsData","reward","validatorCommission","communityPool","pool","base_proposer_reward","community_tax","bonus_proposer_reward","withdraw_addr_enabled","allowances","allowancesByGranter","proposals","prop","proposal","creationTx","searchProposalCreationTx","find","deposits","_params","PROPOSAL_STATUS_DEPOSIT_PERIOD","PROPOSAL_STATUS_VOTING_PERIOD","deposit","URLSearchParams","append","txs","tx_responses","votes","tally","depositParameters","deposit_params","max_deposit_period","min_deposit","votingParameters","voting_params","voting_period","tallyParameters","tally_params","quorum","veto_threshold","all","IdentifiedClient_1","Params_1","channels","port","proof","connections","connection","connectionChannels","allowed_clients","clientStates","client_states","clientStatus","consensusStates","interchainAccountHostParameters","DenomTrace_1","denomTrace","denom_trace","denomTraces","denom_traces","denomHash","trace","receive_enabled","swapRate","return_coin","poolDelta","terra_pool_delta","pool_recovery_period","base_pool","min_stability_spread","inflation","annualProvisions","annual_provisions","mint_denom","inflation_rate_change","inflation_max","inflation_min","goal_bonded","blocks_per_year","activeDenoms","actives","feederAddress","feeder_addr","misses","miss_counter","aggregatePrevote","aggregate_prevote","aggregateVote","aggregate_vote","vote_period","vote_threshold","reward_band","reward_distribution_window","whitelist","tobin_tax","slash_fraction","slash_window","min_valid_per_window","signingInfo","valConsAddress","val_signing_info","start_height","index_offset","jailed_until","tombstoned","missed_blocks_counter","signingInfos","signed_blocks_window","min_signed_per_window","downtime_jail_duration","slash_fraction_double_sign","slash_fraction_downtime","Delegation_1","Redelegation_1","delegations","delegation_response","delegation_responses","delgs","unbondingDelegations","unbond","unbonding_responses","unbondingDelegation","udelgs","redelegations","validatorSrc","validatorDst","src_validator_addr","dst_validator_addr","redelegation_responses","bondedValidators","bonded_tokens","not_bonded_tokens","max_validators","max_entries","historical_entries","bond_denom","nodeInfo","syncing","blockInfo","taxCaps","tax_caps","tax_cap","tax_rate","rewardWeight","reward_weight","taxProceeds","tax_proceeds","seigniorageProceeds","seigniorage_proceeds","tax_policy","reward_policy","mining_increment","seigniorage_burden_target","window_long","window_short","window_probation","SimulateResponse","isTxError","core_2","gas_info","txInfo","txHash","tx_response","signerDatas","signers_1","estimateFee","txInfosByHeight","txhashes","txInfos","txhashes_1","txdata","hashToHex","feeDenoms","gasPricesCoins","gasPricesCoinsFiltered","txBody","feeAmount","estimateGas","simTx","simulateRes","tx_bytes","computeTax","encodedTx","txBytes","_broadcast","broadcast","POLL_INTERVAL","txResponse","setTimeout","broadcastBlock","broadcastSync","blockResult","broadcastAsync","search","HistoryEntry_1","wasm_1","codeInfo","codeID","endpoint_1","code_info","code_hash","creator","contractInfo","contractAddress","endpoint_2","historyEntry","contract_info","contractHistory","created","ibc_port_id","contractQuery","query","query_msg","query_result","max_contract_size","max_contract_gas","max_contract_msg_size","pinnedCodes","pinned_code","rawContractState","query_data","smartContractState","entry","contractStates","models","model","allCodes","codeInfos","RIPEMD160_1","Base64_1","Base64","toUpperCase","toUint8Array","RIPEMD160","prepareSignBytes","obj","sorted","toJSON","acc","getFeed_1","getAuthor_1","getAuthors_1","getAllItems_1","getItem_1","mintItem_1","findItem_1","postItemOffer_1","postItemVote_1","MarketplaceAPI","images_url","getAuthor","getAuthors","getFeed","getItem","getAllItems","findItem","postItemOffer","postItemVote","mintItem","findParams","optionalProps","itemIdentifier","FormData","mintParams","formData","image","author","minPrice","genre","about","itemOfferParams","price","itemVoteParams","direction","Core","key_1","accountIndex","lcdc","derivableAccountKey","getPrivate","toPrivate","toPublic","toDER","verifySignature","keyFromPublic","verify","getLcdcClient","getBalance","lcdcClient","e_1","sendTransaction","transactionOpts","send","txOpts","recipientAddress","recipientAmount","catch","DerivableKey","hdKey","buffPrivKey","Mnemonic","crypto","ethers_1","DerivableKey_1","password","overwroteRandomBytes","getRandomValuesFn","webcrypto","getRandomValues","uintArray","randomBytes","ethers","entropyToMnemonic","mnemonicToSeed","toSeed","opts","Account_1","getAccount","broadcastSignedMessage","signedMessage","ALPHABET","ALPHABET_MAP","z","charAt","polymodStep","pre","prefixChk","chk","charCodeAt","__decode","LIMIT","lowered","toLowerCase","uppered","lastIndexOf","wordChars","convert","inBits","outBits","pad","maxV","decodeUnsafe","toWordsUnsafe","bytes","fromWordsUnsafe","fromWords","number","isSafeInteger","bool","lengths","outputLen","blockLen","exists","instance","checkFinished","destroyed","finished","output","assert","SHA2","_assert_js_1","utils_js_1","Hash","padOffset","isLE","super","pos","buffer","view","createView","update","len","take","subarray","process","dataView","roundClean","digestInto","fill","byteOffset","setBigUint64","_32n","BigInt","_u32_max","wh","wl","h","setUint32","oview","digest","destroy","_cloneInto","toBig","fromBig","U32_MASK64","le","lst","Ah","Uint32Array","Al","Bh","Bl","u64","shrSH","shrSL","rotrSH","rotrSL","rotrBH","rotrBL","rotr32H","rotr32L","rotlSH","rotlSL","rotlBH","rotlBL","add3L","Cl","add3H","low","Ch","add4L","Dl","add4H","Dh","add5H","Eh","add5L","El","node","web","hmac","HMAC","_key","iHash","oHash","getPrototypeOf","_sha2_js_1","Rho","Id","Pi","idxL","idxR","j","shifts","shiftsL","idx","shiftsR","Kl","Kr","rotl","word","shift","group","BUF","h0","h1","h2","h3","h4","offset","getUint32","al","bl","br","cl","cr","dl","dr","el","er","rGroup","hbl","hbr","rl","rr","sl","sr","tl","tr","wrapConstructor","Maj","SHA256_K","IV","SHA256_W","A","B","C","D","E","F","G","H","W15","W2","s0","rotr","s1","T1","T2","sha384","sha512_256","sha512","SHA512","_u64_js_1","SHA512_Kh","SHA512_Kl","SHA512_W_H","SHA512_W_L","Fh","Fl","Gh","Gl","Hh","Hl","W15h","W15l","s0h","s0l","W2h","W2l","s1h","s1l","SUMl","SUMh","sigma1h","sigma1l","CHIh","CHIl","T1ll","T1h","T1l","sigma0h","sigma0l","MAJh","MAJl","All","SHA512_256","SHA384","wrapConstructorWithOpts","checkOpts","concatBytes","utf8ToBytes","asyncLoop","nextTick","hexToBytes","bytesToHex","u32","u8","arr","byteLength","floor","DataView","hexes","padStart","TextEncoder","uint8a","hex","array","hexByte","byte","isNaN","async","iters","tick","cb","now","diff","arrays","defaults","hashConstructor","hashC","tmp","hashCons","bytesLength","schnorr","signSync","getSharedSecret","recoverPublicKey","Signature","Point","CURVE","nodeCrypto","_0n","_1n","_2n","_3n","_8n","freeze","Gx","Gy","beta","weistrass","x2","x3","USE_ENDOMORPHISM","ShaError","JacobianPoint","static","points","toInv","nums","scratch","inverted","invert","num","reduceRight","invertBatch","toAffine","toAffineBatch","fromAffine","equals","X1","Y1","Z1","X2","Y2","Z2","Z1Z1","Z2Z2","U1","U2","S1","S2","negate","double","x1b","X3","Y3","Z3","ZERO","HH","HHH","V","subtract","multiplyUnsafe","scalar","P0","normalizeScalar","k1neg","k1","k2neg","splitScalarEndo","k1p","k2p","precomputeWindow","W","windows","base","window","wNAF","affinePoint","BASE","_WINDOW_SIZE","precomputes","pointPrecomputes","normalizeZ","windowSize","mask","maxNumber","shiftBy","wbits","pr","cached","multiply","point","fake","f1p","f2p","invZ","iz1","iz2","iz3","ax","ay","WeakMap","_setWindowSize","delete","hasEvenY","isShort","bytesToNumber","isValidFieldElement","_6n","_11n","_22n","_23n","_44n","_88n","b2","b3","b6","pow2","b9","b11","b22","b44","b88","b176","b220","b223","t1","t2","sqrtMod","isYOdd","assertValidity","ensureBytes","fromCompressedHex","fromUncompressedHex","normalizePrivateKey","msgHash","recovery","truncateHash","normalizeSignature","R","fromHex","numTo32bStr","rinv","u1","u2","Q","multiplyAndAddUnsafe","toRawBytes","isCompressed","toHex","toHexX","toRawX","left","aP","bQ","sum","sliceDER","parseDERInt","hexToNumber","sBytes","rBytesLeft","parseDERSignature","fromDER","isWithinCurveOrder","hasHighS","HALF","normalizeS","toDERRawBytes","toDERHex","sHex","numberToHexUnpadded","rHex","rLen","sLen","toCompactRawBytes","toCompactHex","POW_2_256","numTo32b","power","modulo","u","q","divNearest","ENDO","a1","b1","a2","POW_2_128","c1","c2","_sha256Sync","_hmacSha256Sync","HmacDrbg","counter","hmacSha256","hmacSync","checkSync","incr","reseedSync","generateSync","kmdToSig","kBytes","normalizePublicKey","error","fromCompact","isProbPub","item","bits2int","bits2octets","z1","z2","int2octets","initSigArgs","extraEntropy","seedArgs","finalizeSig","recSig","der","recovered","hashed","fromPrivateKey","fromSignature","privateA","publicB","privKey","drbg","reseed","generate","vopts","strict","schnorrChallengeFinalize","ch","sinv","SchnorrSignature","InternalSchnorrSignature","auxRand","getScalar","px","rand","priv","initNonce","t0h","finalizeNonce","k0h","k0","rx","tag","taggedHash","TAGS","aux","nonce","challenge","schnorrVerify","calcSync","taggedHashSync","schnorrVerifySync","initSchnorrVerify","raw","finalizeSchnorrVerify","calc","verifySync","TAGGED_HASH_PREFIXES","isValidPrivateKey","_bigintTo32Bytes","_normalizePrivateKey","hashToPrivateKey","randomPrivateKey","subtle","createHash","ckey","importKey","createHmac","sha256Sync","hmacSha256Sync","tagP","tagH","precompute","defineProperties","ctx","pending","err","base64","string","b64","s64","start","end","parts","chunk","fromCharCode","invalidEncoding","test","EventEmitter","_listeners","on","evt","off","listeners","emit","args","Float32Array","f32","f8b","writeFloat_f32_cpy","writeFloat_f32_rev","readFloat_f32_cpy","readFloat_f32_rev","writeFloatLE","writeFloatBE","readFloatLE","readFloatBE","writeFloat_ieee754","writeUint","exponent","LN2","readFloat_ieee754","readUint","uint","mantissa","NaN","Infinity","writeUintLE","writeUintBE","readUintLE","readUintBE","Float64Array","f64","writeDouble_f64_cpy","writeDouble_f64_rev","readDouble_f64_cpy","readDouble_f64_rev","writeDoubleLE","writeDoubleBE","readDoubleLE","readDoubleBE","writeDouble_ieee754","off0","off1","readDouble_ieee754","lo","hi","inquire","moduleName","eval","size","SIZE","MAX","slab","utf8","read","write","assertNumber","chain","wrap","reverse","alphabet","digits","input","letter","separator","padding","chr","normalize","convertRadix","carry","digit","digitBase","stringToBytes","bytesToString","bech32m","base58check","base58xmr","base58xrp","base58flickr","base58","base64url","base32crockford","base32hex","base32","base16","gcd","radix2carry","convertRadix2","radix","radix2","revPadding","unsafeWrapper","checksum","newChecksum","oldChecksum","genBase58","abc","XMR_BLOCK_LEN","BECH_ALPHABET","POLYMOD_GENERATORS","bech32Polymod","bechChecksum","encodingConst","genBech32","encoding","ENCODING_CONST","_words","limit","sepIndex","endsWith","actualLength","decodeToBytes","TextDecoder","CODERS","coderTypeError","HARDENED_OFFSET","hmac_1","ripemd160_1","sha256_1","sha512_1","_assert_1","utils_1","secp","base_1","MASTER_SECRET","BITCOIN_VERSIONS","private","public","toU32","opt","depth","chainCode","parentFingerprint","privKeyBytes","pubHash","fingerprint","pubKeyHash","privateExtendedKey","serialize","publicExtendedKey","I","base58key","keyBuffer","keyView","isPriv","json","fromExtendedKey","xpriv","child","exec","deriveChild","childTweak","added","wipePrivateData","xpub","ModuleAccount","protobufPackage","minimal_1","baseBaseAccount","UZERO","writer","Writer","uint32","fork","ldelim","isZero","uint64","reader","Reader","skipType","fromJSON","object","baseModuleAccount","permissions","baseParams","maxMemoCharacters","txSigLimit","txSizeCostPerByte","sigVerifyCostEd25519","sigVerifyCostSecp256k1","util","configure","SearchTxsResult","TxMsgData","MsgData","SimulationResponse","Result","GasInfo","Attribute","StringEvent","TxResponse","baseTxResponse","int64","baseABCIMessageLog","baseStringEvent","baseAttribute","baseGasInfo","baseResult","Event","bytesFromBase64","base64FromBytes","baseSimulationResponse","gasInfo","baseMsgData","msgType","baseTxMsgData","baseSearchTxsResult","totalCount","pageNumber","pageTotal","globalThis","atob","bin","btoa","PageResponse","PageRequest","basePageRequest","countTotal","Boolean","basePageResponse","nextKey","DecProto","IntProto","DecCoin","baseCoin","baseDecCoin","baseIntProto","baseDecProto","baseMultiSignature","baseCompactBitArray","MsgClientImpl","MsgFundCommunityPoolResponse","MsgWithdrawValidatorCommissionResponse","MsgWithdrawDelegatorRewardResponse","MsgSetWithdrawAddressResponse","baseMsgSetWithdrawAddress","baseMsgSetWithdrawAddressResponse","baseMsgWithdrawDelegatorReward","baseMsgWithdrawDelegatorRewardResponse","baseMsgWithdrawValidatorCommission","baseMsgWithdrawValidatorCommissionResponse","baseMsgFundCommunityPool","baseMsgFundCommunityPoolResponse","rpc","SetWithdrawAddress","WithdrawDelegatorReward","WithdrawValidatorCommission","FundCommunityPool","request","TallyParams","VotingParams","DepositParams","voteOptionToJSON","voteOptionFromJSON","duration_1","timestamp_1","VOTE_OPTION_UNSPECIFIED","VOTE_OPTION_YES","VOTE_OPTION_ABSTAIN","VOTE_OPTION_NO","VOTE_OPTION_NO_WITH_VETO","UNRECOGNIZED","PROPOSAL_STATUS_UNSPECIFIED","PROPOSAL_STATUS_PASSED","PROPOSAL_STATUS_REJECTED","PROPOSAL_STATUS_FAILED","baseWeightedVoteOption","int32","baseTextProposal","baseDeposit","baseProposal","Timestamp","toTimestamp","fromTimestamp","fromJsonTimestamp","baseTallyResult","baseVote","baseDepositParams","minDeposit","maxDepositPeriod","Duration","baseVotingParams","votingPeriod","baseTallyParams","vetoThreshold","date","getTime","nanos","millis","baseParameterChangeProposal","baseParamChange","SignatureDescriptor_Data_Multi","SignatureDescriptor_Data_Single","SignatureDescriptor_Data","SignatureDescriptor","SignatureDescriptors","SIGN_MODE_UNSPECIFIED","SIGN_MODE_TEXTUAL","baseSignatureDescriptors","baseSignatureDescriptor","baseSignatureDescriptor_Data","baseSignatureDescriptor_Data_Single","baseSignatureDescriptor_Data_Multi","ServiceClientImpl","GetTxResponse","GetTxRequest","SimulateRequest","BroadcastTxResponse","BroadcastTxRequest","GetTxsEventResponse","GetTxsEventRequest","broadcastModeToJSON","broadcastModeFromJSON","BroadcastMode","orderByToJSON","orderByFromJSON","pagination_1","ORDER_BY_UNSPECIFIED","ORDER_BY_ASC","ORDER_BY_DESC","BROADCAST_MODE_UNSPECIFIED","BROADCAST_MODE_BLOCK","BROADCAST_MODE_SYNC","BROADCAST_MODE_ASYNC","baseGetTxsEventRequest","orderBy","baseGetTxsEventResponse","txResponses","baseBroadcastTxRequest","baseBroadcastTxResponse","baseSimulateRequest","baseSimulateResponse","baseGetTxRequest","baseGetTxResponse","Simulate","GetTx","BroadcastTx","GetTxsEvent","TxRaw","baseTx","baseTxRaw","baseSignDoc","baseTxBody","extensionOptions","nonCriticalExtensionOptions","baseAuthInfo","baseSignerInfo","baseModeInfo","baseModeInfo_Single","baseModeInfo_Multi","baseFee","ModuleVersion","basePlan","baseSoftwareUpgradeProposal","baseCancelSoftwareUpgradeProposal","baseModuleVersion","baseBaseVestingAccount","baseAny","baseDuration","baseTimestamp","baseFungibleTokenPacketData","baseDenomTrace","sendEnabled","receiveEnabled","ABCIApplicationClientImpl","Snapshot","Evidence","VoteInfo","ValidatorUpdate","TxResult","EventAttribute","LastCommitInfo","BlockParams","ConsensusParams","ResponseApplySnapshotChunk","ResponseLoadSnapshotChunk","ResponseOfferSnapshot","ResponseListSnapshots","ResponseCommit","ResponseEndBlock","ResponseDeliverTx","ResponseCheckTx","ResponseBeginBlock","ResponseQuery","ResponseInitChain","ResponseSetOption","ResponseInfo","ResponseFlush","ResponseEcho","ResponseException","Response","RequestApplySnapshotChunk","RequestLoadSnapshotChunk","RequestOfferSnapshot","RequestListSnapshots","RequestCommit","RequestEndBlock","RequestDeliverTx","RequestCheckTx","RequestBeginBlock","RequestQuery","RequestInitChain","RequestSetOption","RequestInfo","RequestFlush","RequestEcho","Request","responseApplySnapshotChunk_ResultToJSON","responseApplySnapshotChunk_ResultFromJSON","ResponseApplySnapshotChunk_Result","responseOfferSnapshot_ResultToJSON","responseOfferSnapshot_ResultFromJSON","ResponseOfferSnapshot_Result","evidenceTypeToJSON","evidenceTypeFromJSON","EvidenceType","checkTxTypeToJSON","checkTxTypeFromJSON","CheckTxType","NEW","RECHECK","UNKNOWN","DUPLICATE_VOTE","LIGHT_CLIENT_ATTACK","ACCEPT","ABORT","REJECT","REJECT_FORMAT","REJECT_SENDER","RETRY","RETRY_SNAPSHOT","REJECT_SNAPSHOT","baseRequest","echo","flush","setOption","initChain","beginBlock","checkTx","deliverTx","endBlock","listSnapshots","offerSnapshot","loadSnapshotChunk","applySnapshotChunk","baseRequestEcho","baseRequestFlush","baseRequestInfo","blockVersion","p2pVersion","baseRequestSetOption","baseRequestInitChain","initialHeight","consensusParams","appStateBytes","baseRequestQuery","prove","baseRequestBeginBlock","lastCommitInfo","byzantineValidators","baseRequestCheckTx","baseRequestDeliverTx","baseRequestEndBlock","baseRequestCommit","baseRequestListSnapshots","baseRequestOfferSnapshot","snapshot","baseRequestLoadSnapshotChunk","format","baseRequestApplySnapshotChunk","baseResponse","exception","baseResponseException","baseResponseEcho","baseResponseFlush","baseResponseInfo","appVersion","lastBlockHeight","lastBlockAppHash","baseResponseSetOption","baseResponseInitChain","baseResponseQuery","proofOps","ProofOps","baseResponseBeginBlock","baseResponseCheckTx","baseResponseDeliverTx","baseResponseEndBlock","validatorUpdates","consensusParamUpdates","baseResponseCommit","retainHeight","baseResponseListSnapshots","snapshots","baseResponseOfferSnapshot","baseResponseLoadSnapshotChunk","baseResponseApplySnapshotChunk","refetchChunks","rejectSenders","end2","baseConsensusParams","evidence","EvidenceParams","ValidatorParams","VersionParams","baseBlockParams","maxBytes","maxGas","baseLastCommitInfo","baseEvent","baseEventAttribute","baseTxResult","baseValidator","baseValidatorUpdate","baseVoteInfo","signedLastBlock","baseEvidence","baseSnapshot","chunks","metadata","Echo","Flush","Info","SetOption","DeliverTx","CheckTx","Query","InitChain","BeginBlock","EndBlock","ListSnapshots","OfferSnapshot","LoadSnapshotChunk","ApplySnapshotChunk","basePublicKey","ProofOp","DominoOp","ValueOp","baseProof","baseValueOp","baseDominoOp","baseProofOp","baseProofOps","HashedParams","timeIotaMs","baseEvidenceParams","maxAgeNumBlocks","maxAgeDuration","baseValidatorParams","pubKeyTypes","baseVersionParams","baseHashedParams","blockMaxBytes","blockMaxGas","TxProof","BlockMeta","LightBlock","Data","Part","signedMsgTypeToJSON","signedMsgTypeFromJSON","SignedMsgType","BlockIDFlag","BLOCK_ID_FLAG_UNKNOWN","BLOCK_ID_FLAG_ABSENT","BLOCK_ID_FLAG_COMMIT","BLOCK_ID_FLAG_NIL","SIGNED_MSG_TYPE_UNKNOWN","SIGNED_MSG_TYPE_PREVOTE","SIGNED_MSG_TYPE_PRECOMMIT","SIGNED_MSG_TYPE_PROPOSAL","basePartSetHeader","basePart","baseBlockID","baseHeader","baseData","validatorIndex","baseCommit","baseCommitSig","polRound","baseSignedHeader","baseLightBlock","baseBlockMeta","blockSize","numTxs","baseTxProof","rootHash","SimpleValidator","baseValidatorSet","baseSimpleValidator","baseApp","baseConsensus","MsgSwapSendResponse","MsgSwapResponse","baseMsgSwap","baseMsgSwapResponse","swapCoin","swapFee","baseMsgSwapSend","baseMsgSwapSendResponse","Swap","SwapSend","Denom","votePeriod","voteThreshold","rewardBand","rewardDistributionWindow","slashFraction","slashWindow","minValidPerWindow","tobinTax","baseAggregateExchangeRatePrevote","baseAggregateExchangeRateVote","baseExchangeRateTuple","MsgDelegateFeedConsentResponse","MsgAggregateExchangeRateVoteResponse","MsgAggregateExchangeRatePrevoteResponse","baseMsgAggregateExchangeRatePrevote","baseMsgAggregateExchangeRatePrevoteResponse","baseMsgAggregateExchangeRateVote","baseMsgAggregateExchangeRateVoteResponse","baseMsgDelegateFeedConsent","baseMsgDelegateFeedConsentResponse","DelegateFeedConsent","EpochInitialIssuance","EpochTaxProceeds","seigniorageBurdenTarget","miningIncrement","windowShort","windowLong","windowProbation","taxPolicy","rewardPolicy","basePolicyConstraints","baseEpochTaxProceeds","baseEpochInitialIssuance","issuance","baseLazyGradedVestingAccount","baseSchedule","baseVestingSchedule","MsgClearContractAdminResponse","MsgUpdateContractAdminResponse","MsgMigrateContractResponse","MsgExecuteContractResponse","MsgInstantiateContractResponse","MsgMigrateCodeResponse","MsgStoreCodeResponse","baseMsgStoreCode","baseMsgStoreCodeResponse","baseMsgMigrateCode","baseMsgMigrateCodeResponse","baseMsgInstantiateContract","baseMsgInstantiateContractResponse","baseMsgExecuteContract","baseMsgExecuteContractResponse","baseMsgMigrateContract","baseMsgMigrateContractResponse","baseMsgUpdateContractAdmin","baseMsgUpdateContractAdminResponse","baseMsgClearContractAdmin","baseMsgClearContractAdminResponse","StoreCode","MigrateCode","InstantiateContract","ExecuteContract","MigrateContract","UpdateContractAdmin","ClearContractAdmin","checkInt","checkInts","arrayish","coerceArray","copy","ArrayBuffer","isView","createArray","copyArray","sourceArray","targetArray","targetStart","sourceStart","sourceEnd","Hex","convertUtf8","text","encodeURI","substr","fromBytes","convertHex","numberOfRounds","rcon","S","Si","T3","T4","T5","T6","T7","T8","U3","U4","convertToInt32","AES","_prepare","rounds","_Ke","_Kd","roundKeyCount","KC","tk","tt","rconpointer","encrypt","plaintext","decrypt","ciphertext","ModeOfOperationECB","_aes","ModeOfOperationCBC","iv","_lastCipherblock","ModeOfOperationCFB","segmentSize","_shiftRegister","xorSegment","encrypted","ModeOfOperationOFB","_lastPrecipher","_lastPrecipherIndex","Counter","initialValue","_counter","setValue","setBytes","increment","ModeOfOperationCTR","_remainingCounter","_remainingCounterIndex","aesjs","ModeOfOperation","ecb","cbc","cfb","ofb","ctr","pkcs7","padder","strip","_arrayTest","asn1","bignum","constants","decoders","encoders","inherits","Entity","_createNamed","Base","Generated","entity","_initNamed","_getDecoder","enc","_getEncoder","reporter","Reporter","DecoderBuffer","isBuffer","EncoderBuffer","isEncoderBuffer","isDecoderBuffer","save","restore","isEmpty","skip","fail","_reporterState","Node","tags","methods","parent","_baseState","children","reverseArgs","choice","optional","any","use","useDecoder","explicit","implicit","contains","_wrap","stateProps","cstate","method","_init","equal","_useArgs","def","newKey","_decode","wrapResult","prevObj","present","prevKey","enterKey","_peekTag","isError","_decodeGeneric","_decodeChoice","enterObject","_decodeTag","track","_getUse","leaveObject","exitKey","leaveKey","_decodeList","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeBool","_decodeInt","_use","some","_createEncoderBuffer","_encode","_encodeValue","_skipDefault","primitive","_encodeChoice","_encodePrimitive","cls","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool","_isNumstr","_isPrintstr","errors","ReporterError","rethrow","pathLen","prev","inherited","stack","partial","captureStackTrace","tagClass","tagClassByName","tagByName","_reverse","DERDecoder","tree","DERNode","derDecodeTag","oct","tagStr","derDecodeLen","decodedTag","_skipUntilEnd","decoder","possibleEnd","unused","readUInt16BE","numstr","printstr","relative","identifiers","ident","subident","first","second","year","mon","day","hour","sec","UTC","pem","PEMDecoder","lines","re","DEREncoder","two","encodedTag","encodeTag","lenOctets","writeUInt16BE","objid","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","numArray","unshift","dataBuffer","defaultBuffer","PEMEncoder","ctor","superCtor","super_","TempCtor","BN","endian","isBN","negative","red","wordSize","parseHex4Bits","parseHexByte","lowerBound","parseBase","right","cmp","_initNumber","_initArray","_parseHex","_parseBase","w","limbLen","limbPow","imuln","_iaddn","dest","_expand","_normSign","inspect","zeros","groupSizes","groupBases","smallMulTo","ncarry","rword","maxJ","groupSize","groupBase","modn","idivn","ret","toBuffer","ArrayType","reqLength","littleEndian","andln","iushrn","clz32","_countBits","_zeroBits","bitLength","zeroBits","toTwos","width","inotn","iaddn","fromTwos","testn","notn","ineg","isNeg","neg","iuor","ior","or","uor","iuand","iand","and","uand","iuxor","ixor","xor","uxor","bytesNeeded","bitsLeft","setn","bit","wbit","iadd","isub","comb10MulTo","mid","a0","al0","ah0","al1","ah1","al2","ah2","a3","al3","ah3","a4","al4","ah4","a5","al5","ah5","a6","al6","ah6","a7","al7","ah7","a8","al8","ah8","a9","al9","ah9","b0","bl0","bh0","bl1","bh1","bl2","bh2","bl3","bh3","b4","bl4","bh4","b5","bl5","bh5","bl6","bh6","b7","bl7","bh7","b8","bl8","bh8","bl9","bh9","w0","imul","w1","w2","w3","w4","w5","w6","w7","w8","w9","w10","w11","w12","w13","w14","w15","w16","w17","w18","jumboMulTo","FFTM","mulp","mulTo","hncarry","bigMulTo","makeRBT","N","revBin","rb","permute","rbt","rws","iws","rtws","itws","transform","rtwdf","cos","PI","itwdf","sin","rtwdf_","itwdf_","ie","ro","io","guessLen13b","odd","conjugate","normalize13b","ws","convert13b","stub","ph","rwst","iwst","nrws","nrwst","niwst","rmws","mulf","muln","sqr","isqr","toBitArray","iushln","carryMask","newCarry","ishln","hint","extended","maskedWords","ishrn","shln","ushln","shrn","ushrn","imaskn","maskn","isubn","addn","subn","iabs","_ishlnsubmul","_wordDiv","bhi","qj","divmod","positive","divn","umod","divRound","dm","half","r2","egcd","isEven","yp","xp","im","isOdd","jm","_invmp","x1","cmpn","invm","bincn","ucmp","gtn","gten","gte","ltn","lten","lte","eqn","eq","Red","toRed","convertTo","_forceRed","fromRed","convertFrom","forceRed","redAdd","redIAdd","redSub","redISub","redShl","shl","redMul","_verify2","redIMul","redSqr","_verify1","redISqr","redSqrt","sqrt","redInvm","redNeg","redPow","primes","k256","p224","p192","p25519","MPrime","_tmp","K256","P224","P192","P25519","prime","_prime","Mont","imod","minv","ireduce","rlen","imulK","_strip","outLen","mod3","one","nOne","lpow","inv","wnd","current","currentLen","mont","settle","cookies","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","transitionalDefaults","AxiosError","CanceledError","parseProtocol","onCanceled","requestData","requestHeaders","responseType","cancelToken","unsubscribe","signal","removeEventListener","isFormData","isStandardBrowserEnv","XMLHttpRequest","unescape","encodeURIComponent","fullPath","onloadend","responseHeaders","getAllResponseHeaders","response","responseText","statusText","open","paramsSerializer","onreadystatechange","readyState","responseURL","onabort","ECONNABORTED","onerror","ERR_NETWORK","ontimeout","timeoutErrorMessage","transitional","clarifyTimeoutError","ETIMEDOUT","xsrfValue","withCredentials","xsrfCookieName","xsrfHeaderName","setRequestHeader","isUndefined","onDownloadProgress","addEventListener","onUploadProgress","upload","cancel","abort","subscribe","aborted","ERR_BAD_REQUEST","Axios","mergeConfig","createInstance","defaultConfig","context","extend","instanceConfig","CancelToken","isCancel","VERSION","toFormData","Cancel","promises","spread","isAxiosError","executor","resolvePromise","promise","onfulfilled","_resolve","reason","throwIfRequested","listener","source","ERR_CANCELED","__CANCEL__","InterceptorManager","dispatchRequest","interceptors","configOrUrl","assertOptions","silentJSONParsing","boolean","forcedJSONParsing","requestInterceptorChain","synchronousRequestInterceptors","interceptor","runWhen","synchronous","responseInterceptorChain","newConfig","onFulfilled","onRejected","getUri","generateHTTPMethod","isForm","fileName","lineNumber","columnNumber","descriptors","customProps","axiosError","toFlatObject","handlers","eject","isAbsoluteURL","combineURLs","requestedURL","transformData","throwIfCancellationRequested","transformRequest","merge","common","adapter","transformResponse","config1","config2","getMergedValue","target","isPlainObject","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","configValue","validateStatus","ERR_BAD_RESPONSE","fns","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","isArrayBuffer","isStream","isFile","isBlob","isArrayBufferView","isURLSearchParams","isFileList","isObjectPayload","isObject","contentType","_FormData","env","rawValue","parser","encoder","isString","trim","stringifySafely","strictJSONParsing","maxContentLength","maxBodyLength","serializedParams","isDate","hashmarkIndex","relativeURL","expires","domain","secure","cookie","isNumber","toGMTString","document","RegExp","decodeURIComponent","remove","originURL","msie","navigator","userAgent","urlParsingNode","createElement","resolveURL","href","setAttribute","host","hostname","location","requestURL","parsed","normalizedName","ignoreDuplicateOf","line","callback","convertValue","isTypedArray","Blob","build","parentKey","fullKey","thing","deprecatedWarnings","formatMessage","ERR_DEPRECATED","warn","schema","allowUnknown","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","cache","kindOf","kindOfTest","isFunction","TypedArray","pattern","pipe","product","assignValue","stripBOM","superConstructor","props","sourceObj","destObj","merged","getOwnPropertyNames","searchString","position","lastIndex","lens","getLens","validLen","placeHoldersLen","toByteArray","Arr","_byteLength","curByte","revLookup","fromByteArray","uint8","extraBytes","maxChunkLength","len2","encodeChunk","lookup","getLibraryFromEncoding","wordlists","_default","czech","chinese_simplified","chinese_traditional","korean","french","italian","spanish","japanese","JA","portuguese","english","EN","pbkdf2_1","_wordlists_1","DEFAULT_WORDLIST","INVALID_MNEMONIC","INVALID_ENTROPY","WORDLIST_REQUIRED","lpad","padString","binaryToByte","bytesToBinary","deriveChecksumBits","entropyBuffer","CS","mnemonicToEntropy","wordlist","dividerIndex","entropyBits","checksumBits","entropyBytes","entropy","binary","mnemonicBuffer","saltBuffer","pbkdf2Sync","saltMixin","iterations","keylen","pbkdf2","derivedKey","pbkdf2Promise","strength","rng","validateMnemonic","setDefaultWordlist","language","getDefaultWordlist","lang","_wordlists_2","move","src","_move","for","modrn","allocUnsafe","allocate","_toArrayLikeLE","_toArrayLikeBE","isNegNum","Rand","_rand","getBytes","getByte","msCrypto","asUInt32Array","readUInt32BE","scrubVec","cryptBlock","M","keySchedule","SUB_MIX","SBOX","nRounds","t0","t3","SUB_MIX0","SUB_MIX1","SUB_MIX2","SUB_MIX3","s2","s3","ksRow","RCON","INV_SBOX","INV_SUB_MIX","xi","sx","x4","x8","_reset","keySize","keyWords","ksRows","invKeySchedule","ik","ksR","_nRounds","_keySchedule","_invKeySchedule","encryptBlockRaw","encryptBlock","writeUInt32BE","decryptBlock","m1","scrub","aes","Transform","GHASH","incr32","StreamCipher","_cipher","ck","_ghash","_finID","ghash","toPad","ivBits","tail","writeUIntBE","calcIv","_prev","_cache","_secCache","_decrypt","_alen","_len","_mode","_authTag","_called","_update","rump","_final","final","xorTest","getAuthTag","setAuthTag","setAAD","ciphers","deciphers","modes","createCipher","Cipher","createCipheriv","Cipheriv","createDecipher","Decipher","createDecipheriv","Decipheriv","listCiphers","getCiphers","AuthCipher","MODES","ebtk","Splitter","_last","_autopadding","suite","last","padded","unpad","setAutoPadding","setTo","autoPadding","PADDING","padBuff","writeUInt8","ZEROES","fromArray","_multiply","lsbVi","Vi","Zi","abl","encryptStart","encryptByte","byteParam","shiftIn","getBlock","chunkNum","modeModules","ECB","CBC","CFB","CFB8","CFB1","OFB","CTR","GCM","DES","aesModes","desModes","keyLen","ivLen","CipherBase","des","instantiate","EDE","modeName","_des","des3","getr","modulus","prime1","prime2","crt","blinds","blinder","publicExponent","unblinder","blind","blinded","qinv","coefficient","exponent1","m2","exponent2","stream","algorithms","Sign","algorithm","Writable","_hashType","_hash","_tag","_signType","Verify","createSign","createVerify","_write","EC","parseKeys","curves","getKey","algo","hlen","hbits","obits","makeKey","kv","makeR","hashType","signType","curve","curveId","ecSign","priv_key","dsaSign","checkValue","pub","subjectPrivateKey","ecVerify","unpacked","montp","dsaVerify","padNum","ieee754","customInspectSymbol","SlowBuffer","INSPECT_MAX_BYTES","K_MAX_LENGTH","createBuffer","RangeError","encodingOrOffset","isEncoding","actual","arrayView","isInstance","fromArrayBuffer","fromArrayLike","fromArrayView","SharedArrayBuffer","valueOf","numberIsNaN","fromObject","toPrimitive","assertSize","mustMatch","loweredCase","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","dir","arrayIndexOf","indexSize","arrLength","valLength","foundIndex","found","hexWrite","remaining","strLen","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","base64Write","ucs2Write","units","utf16leToBytes","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","codePoints","MAX_ARGUMENTS_LENGTH","decodeCodePointsArray","kMaxLength","TYPED_ARRAY_SUPPORT","foo","typedArraySupport","poolSize","allocUnsafeSlow","_isBuffer","compare","list","swap16","swap32","swap64","toLocaleString","thisStart","thisEnd","thisCopy","targetCopy","isFinite","_arr","hexSliceLookupTable","checkOffset","ext","wrtBigUInt64LE","checkIntBI","wrtBigUInt64BE","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","readUIntLE","readUIntBE","readUint8","readUint16LE","readUInt16LE","readUint16BE","readUint32LE","readUInt32LE","readUint32BE","readBigUInt64LE","defineBigIntMethod","validateNumber","boundsError","readBigUInt64BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readBigInt64LE","readBigInt64BE","writeUIntLE","writeUint8","writeUint16LE","writeUInt16LE","writeUint16BE","writeUint32LE","writeUInt32LE","writeUint32BE","writeBigUInt64LE","writeBigUInt64BE","writeIntLE","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeBigInt64LE","writeBigInt64BE","copyWithin","sym","getMessage","addNumericalSeparator","range","ERR_OUT_OF_RANGE","checkBounds","ERR_INVALID_ARG_TYPE","ERR_BUFFER_OUT_OF_BOUNDS","received","INVALID_BASE64_RE","leadSurrogate","base64clean","dst","table","i16","BufferBigIntNotDefined","StringDecoder","hashMode","_finalOrDigest","__final","_decoder","_encoding","inputEnc","outputEnc","outData","_toString","_transform","_flush","fin","ECDH","aliases","secp224r1","prime256v1","prime192v1","secp384r1","secp521r1","curveType","formatReturnValue","bn","p256","secp256r1","secp192r1","p384","p521","generateKeys","genKeyPair","computeSecret","inenc","getX","getPrivateKey","setPublicKey","_importPublic","setPrivateKey","_priv","_importPrivate","MD5","sha","alg","Legacy","md5","ZEROS","Hmac","blocksize","_alg","ipad","_ipad","opad","_opad","pseudoRandomBytes","prng","algos","algoKeys","hashes","getHashes","dh","DiffieHellmanGroup","createDiffieHellmanGroup","getDiffieHellman","createDiffieHellman","DiffieHellman","createECDH","publicEncrypt","privateEncrypt","publicDecrypt","privateDecrypt","rf","randomFill","randomFillSync","createCredentials","globalScope","Decimal","inexact","quadrant","EXP_LIMIT","MAX_DIGITS","NUMERALS","LN10","DEFAULTS","precision","rounding","toExpNeg","toExpPos","minE","maxE","external","decimalError","invalidArgument","precisionLimitExceeded","cryptoUnavailable","mathfloor","mathpow","isBinary","isHex","isOctal","isDecimal","LN10_PRECISION","PI_PRECISION","toStringTag","digitsToString","indexOfLastWord","getZeroString","checkInt32","checkRoundingDigits","rm","repeating","di","rd","convertBase","baseIn","baseOut","arrL","strL","absoluteValue","finalise","clampedTo","Ctor","comparedTo","xdL","ydL","xd","yd","xs","ys","cosine","sd","tinyPow","taylorSeries","cos2x","toLessThanHalfPi","cubeRoot","cbrt","rep","t3plusx","toExponential","divide","decimalPlaces","dp","dividedBy","dividedToIntegerBy","greaterThan","greaterThanOrEqualTo","hyperbolicCosine","cosh","cosh2_x","d8","hyperbolicSine","sinh","sinh2_x","d5","d16","d20","hyperbolicTangent","tanh","inverseCosine","acos","halfPi","getPi","asin","inverseHyperbolicCosine","acosh","ln","inverseHyperbolicSine","asinh","inverseHyperbolicTangent","atanh","wpr","xsd","inverseSine","atan","inverseTangent","isInt","isNegative","isPositive","isPos","lessThan","logarithm","isBase10","denominator","inf","naturalLogarithm","getLn10","xe","xLTy","getBase10Exponent","naturalExponential","exp","negated","getPrecision","sine","sin2_x","squareRoot","tangent","tan","rL","toBinary","toStringBinary","toDecimalPlaces","toDP","finiteToString","toFraction","maxD","d0","d1","d2","n0","n1","toHexadecimal","toNearest","toOctal","toPower","yn","intPow","toPrecision","toSignificantDigits","toSD","truncated","trunc","multiplyInteger","temp","aL","bL","logBase","more","prod","prodL","qd","rem","remL","rem0","xL","yd0","yL","yz","isTruncated","roundUp","xdi","isExp","nonFiniteToString","zs","truncate","maxOrMin","ltgt","guard","c0","numerator","parseDecimal","parseOther","divisor","isFloat","isHyperbolic","pi","atan2","useDefaults","ps","hypot","isDecimalInstance","log2","log10","random","ROUND_UP","ROUND_DOWN","ROUND_CEIL","ROUND_FLOOR","ROUND_HALF_UP","ROUND_HALF_DOWN","ROUND_HALF_EVEN","ROUND_HALF_CEIL","ROUND_HALF_FLOOR","EUCLID","CBCState","_cbcInit","_cbcState","inp","inOff","outOff","superProto","bufferOff","_updateDecrypt","_updateEncrypt","_buffer","_flushBuffer","inputOff","outputOff","_finalEncrypt","_finalDecrypt","_pad","_unpad","DESState","_desState","deriveKeys","shiftTable","kL","kR","pc1","r28shl","pc2","ip","_encrypt","lStart","rStart","keyL","keyR","expand","substitute","rip","EDEState","k3","_edeState","inL","inR","outL","outR","pc2table","sTable","permuteTable","padSplit","generatePrime","DH","ENCODINGS","gen","genc","millerRabin","TWENTYFOUR","ELEVEN","TEN","THREE","SEVEN","_pub","primeCache","malleable","setGenerator","__prime","_primeLen","_primeCode","simpleSieve","fermatTest","checkPrime","__gen","_gen","secret","getPrime","front","getGenerator","findPrime","ONE","TWO","FIVE","FOUR","_getPrimes","n2","eddsa","getNAF","getJSF","BaseCurve","conf","zero","pointFromJSON","gRed","_wnafT1","_wnafT2","_wnafT3","_wnafT4","_bitLength","adjustCount","redN","_maxwellTrick","BasePoint","precomputed","_fixedNafMul","doubles","_getDoubles","naf","nafW","repr","jpoint","mixedAdd","toP","_wnafMul","nafPoints","_getNAFPoints","dblp","_wnafMulAdd","defW","coeffs","jacobianResult","wndWidth","comb","toJ","jsf","ja","jb","decodePoint","pointFromX","encodeCompressed","compact","getY","_getBeta","_hasDoubles","dbl","EdwardsCurve","twisted","mOneA","dd","oneC","zOne","_mulA","_mulC","rhs","lhs","y2","pointFromY","isInfinity","_extDbl","nx","ny","nt","nz","_projDbl","_extAdd","_projAdd","mulAdd","jmulAdd","zi","eqXToP","xc","short","edwards","MontCurve","i4","a24","aa","bb","diffAdd","da","jumlAdd","ShortCurve","tinv","zeroA","threeA","endo","_getEndomorphism","_endoWnafT1","_endoWnafT2","isRed","JPoint","lambda","betas","_getEndoRoots","lambdas","basis","vec","_getEndoBasis","ntinv","prevR","aprxSqrt","y1","len1","_endoSplit","v1","v2","p1","p2","q1","q2","_endoWnafMulAdd","npoints","ncoeffs","endoMul","obj2point","ys1","dyinv","_precompute","zinv","zinv2","pz2","jx","jy","jz","jz4","jyd","jx2","jyd2","jyd4","dny","_zeroDbl","_threeDbl","_dbl","xx","yy","yyyy","yyyy8","c8","gamma","alpha","beta4","beta8","ggamma8","jy2","jxd4","jyd8","trpl","zz","mm","ee","yyu4","kbase","z3","pz3","PresetCurve","defineCurve","HmacDRBG","KeyPair","nh","keyPair","fromPrivate","fromPublic","pers","persEnc","hmacStrength","entropyEnc","ns2","_truncateToN","truncOnly","bkey","ns1","iter","kp","kpX","recoverPubKey","isSecondKey","rInv","getKeyRecoveryParam","Qprime","privEnc","pubEnc","_importDER","Position","place","getLength","initial","octetLen","rmPadding","constructLength","octets","slen","backHalf","parseBytes","EDDSA","pointClass","encodingLength","keyFromSecret","hashInt","messagePrefix","Rencoded","encodePoint","s_","pubBytes","makeSignature","SG","intFromLE","fromSecret","lastIx","normed","xIsOdd","encodeInt","decodeInt","isPoint","cachedProperty","_secret","_pubBytes","privBytes","getSecret","_R","_S","_Rencoded","_Sencoded","Sencoded","minAssert","minUtils","zero2","m8","m14","m24","computer","_permanentCensorErrors","_censorErrors","LogLevels","debug","warning","_logLevel","_globalLogger","_normalizeError","missing","form","_checkNormalize","LogLevel","ErrorCode","HEX","Logger","_log","logLevel","level","throwArgumentError","levels","DEBUG","INFO","WARNING","makeError","UNKNOWN_ERROR","messageDetails","NUMERIC_FAULT","fault","CALL_EXCEPTION","INSUFFICIENT_FUNDS","MISSING_NEW","NONCE_EXPIRED","REPLACEMENT_UNDERPRICED","TRANSACTION_REPLACED","UNPREDICTABLE_GAS_LIMIT","throwError","INVALID_ARGUMENT","argument","condition","assertArgument","checkNormalize","UNSUPPORTED_OPERATION","checkSafeUint53","checkArgumentCount","expectedCount","MISSING_ARGUMENT","UNEXPECTED_ARGUMENT","checkNew","kind","checkAbstract","censorship","permanent","globalLogger","logger","isHexable","addSlice","isBytesLike","isBytes","arrayify","allowMissingPrefix","toHexString","hexPad","items","objects","accum","stripZeros","zeroPad","HexCharacters","hexlify","hexDataLength","hexDataSlice","endOffset","hexConcat","hexValue","trimmed","hexStripZeros","hexZeroPad","splitSignature","_vs","yParityAndS","recId","joinSignature","_constructorGuard","MAX_SAFE","_warnedToStringRadix","BigNumber","constructorGuard","_hex","_isBigNumber","toBigNumber","toBN","throwFault","shr","toBigInt","anyValue","defineReadOnly","getStatic","resolveProperties","checkProperties","properties","shallowCopy","opaque","bigint","_isFrozen","isFrozen","_deepCopy","deepCopy","checkResultErrors","checkErrors","childPath","Coder","localName","dynamic","_throwError","_dataLength","_padding","_writeData","appendWriter","writeBytes","paddingOffset","_getValue","BUFFER_OVERRUN","writeValue","writeUpdatableValue","coerceFunc","allowLoose","_offset","consumed","coerce","_coerceFunc","_peekBytes","loose","alignedLength","subReader","readBytes","readValue","keccak256","arrayifyInteger","unarrayifyInteger","_decodeChildren","childOffset","decoded","lengthLength","getChecksumAddress","chars","expanded","ibanLookup","safeDigits","ibanChecksum","isAddress","getIcapAddress","base36","getContractAddress","transaction","getCreate2Address","initCodeHash","UnicodeNormalizationForm","Utf8ErrorReason","ignoreFunc","badCodepoint","BAD_PREFIX","UNEXPECTED_CONTINUE","OVERRUN","Utf8ErrorFuncs","ignore","OVERLONG","getUtf8CodePoints","onError","extraLength","overlongMask","nextChar","MISSING_CONTINUE","OUT_OF_RANGE","UTF16_SURROGATE","toUtf8Bytes","pair","escapeChar","_toEscapedUtf8String","_toUtf8String","toUtf8String","toUtf8CodePoints","AddressCoder","defaultValue","AnonymousCoder","coder","coders","arrayValues","unique","staticWriter","dynamicWriter","updateFuncs","dynamicOffset","updateFunc","baseOffset","func","unpack","baseReader","offsetReader","baseType","uniqueNames","ArrayCoder","defaultChild","BooleanCoder","DynamicBytesCoder","BytesCoder","FixedBytesCoder","NullCoder","NegativeOne","Zero","One","Two","WeiPerEther","MaxUint256","MinInt256","MaxInt256","NumberCoder","signed","maxUintValue","bounds","StringCoder","TupleCoder","types","ModifiersBytes","calldata","memory","storage","ModifiersNest","checkModifier","populate","FormatTypes","sighash","minimal","full","paramTypeArray","ParamType","arrayLength","arrayChildren","components","_isParamType","indexed","comp","allowIndexed","isParamType","verifyType","param","originalParam","newNode","allowType","allowParams","allowName","allowArray","sibling","readArray","parseParamType","parseParams","allowIndex","splitNesting","Fragment","_isFragment","isFragment","FunctionFragment","EventFragment","ConstructorFragment","ErrorFragment","anonymous","isEventFragment","verifyIdentifier","regexParen","modifier","parseGas","comps","parseModifiers","constant","payable","stateMutability","verifyState","isConstructorFragment","parens","isFunctionFragment","returns","checkForbidden","fragment","isErrorFragment","regexIdentifier","paramTypeBytes","paramTypeNumber","AbiCoder","_getCoder","component","_getWordSize","_getReader","_getWriter","getDefaultValue","defaultAbiCoder","LogDescription","TransactionDescription","ErrorDescription","Indexed","_isIndexed","BuiltinErrors","wrapAccessError","property","Interface","fragments","abi","bucket","deploy","functions","eventFragment","getFunction","nameOrSignatureOrSighash","getSighash","matching","getEvent","nameOrSignatureOrTopic","topichash","getEventTopic","getError","_decodeParams","_abiCoder","_encodeParams","encodeDeploy","decodeErrorResult","encodeErrorResult","decodeFunctionData","functionFragment","encodeFunctionData","decodeFunctionResult","errorArgs","errorName","errorSignature","selector","builtin","encodeFunctionResult","encodeFilterTopics","topics","encodeTopic","encodeEventLog","dataTypes","dataValues","decodeEventLog","topicHash","expected","nonIndexed","resultIndexed","resultNonIndexed","nonIndexedIndex","indexedIndex","parseTransaction","parseLog","topic","parseError","hexData","errorFragment","_isInterface","ForkEvent","_isForkEvent","Provider","getFeeData","gasPrice","getGasPrice","maxFeePerGas","maxPriorityFeePerGas","baseFeePerGas","addListener","eventName","removeListener","_isProvider","allowedTransactionKeys","forwardErrors","Signer","blockTag","_checkProvider","provider","getTransactionCount","checkTransaction","populateTransaction","signedTx","signTransaction","getChainId","getNetwork","resolveName","hasEip1559","feeData","results","_isSigner","VoidSigner","_fail","_signTypedData","connect","createCommonjsModule","basedir","require","commonjsRequire","minimalisticAssert","utils_1$1","assert$1","inherits_browser","assert$2","short_1","curve_1","curves_1","crash","predResist","outSize","minEntropy","_reseed","reseedInterval","K","nonceEnc","hmacDrbg","_hmac","kmac","addEnc","assert$3","assert$4","assert$5","signature$1","EC$1","_curve","getCurve","SigningKey","_addPoint","p0","signDigest","digestBytes","computeSharedSecret","otherKey","otherKeyPair","computePublicKey","_isSigningKey","rs","compressed","signingKey","TransactionTypes","handleAddress","handleNumber","transactionFields","maxLength","numeric","computeAddress","recoverAddress","formatNumber","accessSetify","addr","storageKeys","storageKey","accessListify","formatAccessList","_serializeEip1559","fields","accessList","_serializeEip2930","fieldInfo","_serialize","transactionType","_parseEipSignature","rawTransaction","_parse","_parseEip2930","_parseEip1559","customData","ccipReadEnabled","resolver","nameOrPromise","resolveAddresses","paramType","overrides","override","check","resolved","resolvedAddress","interface","intrinsic","roValue","leftovers","addContractWait","wait","confirmations","receipt","event","eventSignature","blockHash","getTransaction","transactionHash","getTransactionReceipt","buildCall","collapseSimple","signerOrProvider","deployTransaction","_deployed","buildDefault","txRequest","buildSend","getEventTag","RunningEvent","once","removeAllListeners","listenerCount","run","argsCopy","prepareEvent","getEmit","ErrorRunningEvent","FragmentRunningEvent","contractInterface","decodeError","WildcardRunningEvent","BaseContract","addressOrName","isSigner","isProvider","uniqueFilters","filters","uniqueSignatures","callStatic","buildPopulate","buildEstimate","isInterface","deployed","_deployedPromise","getCode","fallback","attach","isIndexed","_normalizeRunningEvent","runningEvent","_runningEvents","_getRunningEvent","_checkRunningEvents","_wrappedEmits","_wrapEvent","_addEventListener","wrappedEmit","queryFilter","fromBlockOrBlockhash","toBlock","fromBlock","getLogs","Contract","ContractFactory","bytecode","bytecodeHex","getDeployTransaction","unsignedTx","getContract","compilerOutput","evm","getInterface","getMultiplier","decimals","formatFixed","multiplier","fraction","whole","parseFixed","wholeValue","fractionValue","wei","FixedFormat","_multiplier","FixedNumber","_isFixedNumber","_checkFormat","addUnsafe","fromValue","subUnsafe","mulUnsafe","divUnsafe","hasFraction","toFormat","ceiling","factor","bump","BUMP","toUnsafeFloat","parseFloat","isBigNumber","isBigNumberish","fixedFormat","decimal","hashMessage","hexTrue","hexFalse","domainFieldTypes","verifyingContract","domainFieldNames","checkString","domainChecks","getBaseEncoder","boundsUpper","boundsLower","hexPadRight","encodeType","TypedDataEncoder","links","parents","subtypes","field","primaryTypes","checkCircular","subtype","primaryType","st","_types","getEncoder","_encoderCache","subEncoder","encodedType","encodeData","hashStruct","_visit","visit","domainFields","EIP712Domain","hashDomain","ensCache","domainValues","domainTypes","typesWithDomain","BaseX","_alphabetMap","_leader","Base58","SupportedAlgorithm","computeHmac","hashAlgorithm","hLen","DK","block1","T","U","destPos","Wordlist","locale","getWord","getWordIndex","loadWords","langEn","register","en","MasterSecret","HardenedBit","getUpperMask","bytes32","getWordlist","defaultPath","HDNode","mnemonicOrPath","compressedPublicKey","extendedKey","neuter","_derive","IL","IR","ki","Ki","srcMnemonic","phrase","seedArray","_fromSeed","NFKD","checksumMask","indices","remainingBits","isValidMnemonic","getAccountPath","anyGlobal","getGlobal","looseArrayify","hexString","zpad","getPassword","NFKC","searchPath","currentChild","matchingChild","uuidV4","hasMnemonic","KeystoreAccount","isKeystoreAccount","_isKeystoreAccount","_getAccount","mnemonicKey","mnemonicCiphertext","mnemonicIv","mnemonicCounter","mnemonicAesCtr","fromMnemonic","passwordBytes","dkLen","prfFunc","_computeKdfKey","pbkdf2Func","scryptFunc","progressCallback","kdf","prf","CrowdsaleAccount","isCrowdsaleAccount","_isCrowdsaleAccount","ethaddr","encseed","encryptedSeed","aesCbc","seedHex","isCrowdsaleWallet","isKeystoreWallet","getJsonWalletAddress","decryptJsonWallet","scrypt","isSigningKey","_mnemonic","_signingKey","populated","client","uuidRandom","uuid","macPrefix","mac","Crypto","cipher","cipherparams","kdfparams","dklen","gethFilename","decryptJsonWalletSync","verifyMessage","verifyTypedData","AddressZero","HashZero","EtherSymbol","ethDefaultProvider","network","providerList","InfuraProvider","infura","EtherscanProvider","etherscan","AlchemyProvider","alchemy","PocketProvider","pocket","CloudflareProvider","cloudflare","AnkrProvider","ankr","FallbackProvider","renetwork","etcDefaultProvider","JsonRpcProvider","homestead","ensAddress","_defaultProvider","ropsten","classicMordor","networks","unspecified","mainnet","morden","testnet","rinkeby","kovan","goerli","kintsugi","classic","classicMorden","classicTestnet","classicKotti","xdai","matic","maticmum","optimism","arbitrum","bnb","bnbt","standard","defaultProvider","textData","createTable","createRangeTable","matchMap","ranges","Table_A_1_ranges","Table_B_1_flags","Table_B_2_ranges","Table_B_2_lut_abs","Table_B_2_lut_rel","Table_B_2_complex","Table_C_ranges","nameprep","codes","codesTableB2","codepoint","_nameprepTableB2","Zeros","Partition","isValidName","namehash","partition","dnsEncode","getUrl","skipFetchSetup","credentials","redirect","referrer","fetch","arrayBuffer","statusCode","statusMessage","staller","duration","bodyify","_fetchData","processFunc","attemptLimit","throttleLimit","throttleCallback","throttleSlotInterval","errorPassThrough","allow304","allowGzip","user","allowInsecureAuthentication","reData","dataMatch","SERVER_ERROR","requestBody","requestMethod","flatHeaders","runningTimeout","timer","TIMEOUT","clearTimeout","runningFetch","attempt","tryAgain","stall","retryAfter","serverError","throttleRetry","race","fetchJson","poll","interval","retryLimit","oncePoll","onceBlock","Formatter","formats","getDefaultFormats","bigNumber","allowNull","blockNumber","transactionIndex","uint256","creates","transactionRequest","receiptLog","arrayOf","logIndex","logsBloom","cumulativeGasUsed","effectiveGasPrice","parentHash","difficulty","miner","extraData","transactions","blockWithTransactions","transactionResponse","filterLog","removed","allowFalsish","callAddress","_block","_difficulty","networkId","byzantium","checkKey","nullValue","replaceValue","isCommunityResourcable","isCommunityResource","throttleMessage","showThrottleMessage","checkTopic","serializeTopics","isForkEvent","PollableEvents","_lastBlockNumber","_inflight","pollable","coinInfos","symbol","p2pkh","p2sh","ilk","bytes32ify","base58Encode","matcherIpfs","matchers","_parseString","_parseBytes","getIpfsLink","link","numPad","bytesPad","encodeBytes","datas","byteCount","Resolver","formatter","supportsWildcard","_supportsEip2544","_fetch","_fetchBytes","_getAddress","hexBytes","coinInfo","getAvatar","linkage","avatar","getText","scheme","owner","_resolvedAddress","tokenId","tokenOwner","metadataUrl","imageUrl","getContentHash","ipfs","ipns","swarm","skynet","urlSafe","keyBytes","defaultFormatter","nextPollId","BaseProvider","_events","_emitted","disableCcipRead","getFormatter","anyNetwork","detectNetwork","_networkPromise","_ready","knownNetwork","_maxInternalBlockNumber","_maxFilterBlockRange","_pollingInterval","_fastQueryDate","_network","ready","NETWORK_ERROR","ccipReadFetch","urls","errorMessages","errorMessage","_getInternalBlockNumber","maxAge","_internalBlockNumber","internalBlockNumber","respTime","reqTime","checkInternalBlockNumber","perform","networkError","_setFastBlockNumber","pollId","runners","pollingInterval","previousBlockNumber","eventBlockNumber","runner","resetEventsBlock","polling","currentNetwork","_fastBlockNumber","_fastBlockNumberPromise","detectedNetwork","_poller","setInterval","_bootstrapPoll","clearInterval","_getFastBlockNumber","getBlockNumber","waitForTransaction","_waitForTransaction","replaceable","cancelFuncs","alreadyDone","minedHandler","lastBlockNumber","startBlock","scannedBlock","replaceHandler","mined","getBlockWithTransactions","ti","cancelled","replacement","_wrapTransaction","unref","_getBlockTag","getStorageAt","expectedHash","returnedHash","confirms","signedTransaction","hexTx","_getTransactionRequest","_getFilter","_call","redirects","txSender","urlsOffset","urlsLength","urlsData","callbackSelector","ccipResult","_getBlock","blockHashOrBlockTag","includeTransactions","blockWithTxs","getEtherPrice","getResolver","currentName","_getResolver","addrData","lookupAddress","resolverAddr","nameOrAddress","resolverAddress","NOT_IMPLEMENTED","_startEvent","_stopEvent","stopped","eventTag","errorGas","spelunk","requireData","checkError","getResult","getLowerCase","JsonRpcSigner","addressOrIndex","connectUnchecked","UncheckedJsonRpcSigner","_address","_index","accounts","sendUncheckedTransaction","estimate","hexlifyTransaction","_legacySignMessage","unlock","networkOrReady","_nextId","_eventLoopCache","_uncachedDetectNetwork","getSigner","getUncheckedSigner","listAccounts","jsonrpc","action","prepareRequest","_startPending","_pendingFilter","pendingFilter","filterId","seq","allowExtra","allowed","WS","WebSocket","NextId","WebSocketProvider","_wsReady","websocket","onopen","_requests","onmessage","messageEvent","_subs","subscription","fauxPoll","_websocket","_detectNetwork","rid","_subscribe","subIdPromise","_subIds","subId","emitReceipt","close","StaticJsonRpcProvider","UrlJsonRpcProvider","apiKey","defaultApiKey","AlchemyWebSocketProvider","getHost","projectSecret","getTransactionPostData","maxFeePerGs","getJsonResult","checkLogTag","getBaseUrl","baseUrl","getPostUrl","getPostData","apikey","procFunc","payloadStr","postData","topic0","blocks","ethusd","getHistory","startblock","endblock","timeStamp","shuffled","checkNetworks","median","maxDelta","middle","nextRid","getPromise","ForwardErrors","ForwardProperties","exposeDebugConfig","waitForSync","getRunner","currentBlockNumber","providerConfigs","configOrProvider","stallTimeout","priority","_highestBlockNumber","configs","normalizedTally","getProcessFunc","inflightWeight","backend","waiting","errorCode","IpcProvider","defaultProjectId","InfuraWebSocketProvider","projectId","apiKeyObj","JsonRpcBatchProvider","_pendingBatch","inflightRequest","_pendingBatchAggregator","batch","inflight","NodesmithProvider","defaultApplicationIds","applicationId","loadBalancer","applicationSecretKey","buildWeb3LegacyFetcher","sendFunc","fetcher","Web3Provider","jsonRpcFetchFunc","subprovider","isMetaMask","buildEip1193Fetcher","sendAsync","getDefaultProvider","regexBytes","regexNumber","regexArray","_pack","tight","formatBytes32String","parseBytes32String","names","commify","suffix","formatted","formatUnits","unitName","parseUnits","formatEther","parseEther","ether","_ethers","ReflectOwnKeys","Reflect","ReflectApply","Function","ownKeys","getOwnPropertySymbols","NumberIsNaN","init","emitter","errorListener","eventTargetAgnosticAddListener","handler","flags","addErrorHandlerIfEventEmitter","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","_getMaxListeners","that","_addListener","prepend","existing","newListener","warned","onceWrapper","fired","wrapFn","_onceWrap","wrapped","unwrap","evlistener","unwrapListeners","arrayClone","wrapListener","setMaxListeners","getMaxListeners","doError","prependListener","prependOnceListener","originalListener","spliceOne","rawListeners","eventNames","keyBits","used","keyStart","ivStart","HashBase","_blockSize","_blockOffset","_length","_finalized","throwIfNotStringOrBuffer","_digest","ripemd","sha1","sha224","BlockHash","pendingTotal","padLength","_delta8","_delta32","join32","inner","outer","rotl32","sum32","sum32_3","sum32_4","Kh","rh","sh","toHex32","split32","shaCommon","sum32_5","ft_1","sha1_K","SHA1","SHA224","ch32","maj32","s0_256","s1_256","g0_256","g1_256","sha256_K","rotr64_hi","rotr64_lo","shr64_hi","shr64_lo","sum64","sum64_hi","sum64_lo","sum64_4_hi","sum64_4_lo","sum64_5_hi","sum64_5_lo","sha512_K","ch64_hi","xh","xl","yh","yl","zh","ch64_lo","zl","maj64_hi","maj64_lo","s0_512_hi","s0_512_lo","s1_512_lo","g0_512_hi","g0_512_lo","g1_512_lo","_prepareBlock","c0_hi","c0_lo","c1_hi","c1_lo","c2_hi","c2_lo","c3_hi","c3_lo","ah","bh","eh","fh","fl","gh","gl","hh","hl","c4_hi","c4_lo","T1_hi","T1_lo","T2_hi","T2_lo","rotr32","p32","isSurrogatePair","htonl","zero8","mLen","nBytes","eLen","eMax","eBias","nBits","rt","INPUT_ERROR","WINDOW","JS_SHA3_NO_WINDOW","WEB_WORKER","JS_SHA3_NO_NODE_JS","COMMON_JS","JS_SHA3_NO_COMMON_JS","AMD","ARRAY_BUFFER","JS_SHA3_NO_ARRAY_BUFFER","HEX_CHARS","CSHAKE_PADDING","SHIFT","RC","BITS","SHAKE_BITS","OUTPUT_TYPES","CSHAKE_BYTEPAD","JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW","createOutputMethod","outputType","Keccak","createShakeOutputMethod","outputBits","createCshakeOutputMethod","createKmacOutputMethod","createOutputMethods","createMethod","bytepad","Kmac","methodNames","methodName","newMethodName","reset","finalized","blockCount","outputBlocks","notString","lastByteIndex","encodeString","strs","paddingBytes","finalize","c3","c4","c5","c6","c7","c9","b10","b12","b13","b14","b15","b16","b17","b18","b19","b20","b21","b23","b24","b25","b26","b27","b28","b29","b30","b31","b32","b33","b34","b35","b36","b37","b38","b39","b40","b41","b42","b43","b45","b46","b47","b48","b49","nSigBytes","Int8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","O","escape","createEncryptor","transformMode","ENC_TRANSFORM_MODE","createDecryptor","DEC_TRANSFORM_MODE","CBCMAC","L","X","Z","ivSize","DES3","J","Y","$","nn","GMAC","tn","rn","HmacMD5","HmacSHA1","HmacSHA224","HmacSHA256","HmacSHA384","HmacSHA512","un","cn","sn","an","RC4","generateKeyStreamWord","RC4Drop","drop","Rabbit","hn","vn","wn","nextState","SHA3","dn","outputLength","high","pn","On","jn","_n","mn","An","gn","En","to32","processBlock","cipherText","Algorithm","KDF","kdfHasher","kdfIterations","kdfModule","execute","kdfSalt","Hasher","Sn","Mn","kn","compute","Hn","Cn","xorBlock","Encryptor","Decryptor","I4","z6","ur","EvpKDF","Latin1","OpenSSLKDF","PBKDF2","Utf16","Utf16BE","Utf16LE","Utf8","Word64","Word64Array","Bn","Nn","In","getB0","formatAssociatedDataAndPayload","genCtr","combineCipherTextAndAuthTag","splitCipherTextAndAuthTag","authTag","zn","Dn","Un","getJ0","inc32","GCTR","CipherParams","PasswordBasedCipher","SerializableCipher","generateKeyStreamAndEncrypt","Fn","xn","CCM","AnsiX923","ISO10126","ISO97971","Pkcs7","NoPadding","OpenSSLFormatter","WebAssembly","Instance","Module","unsigned","isLong","__isLong__","INT_CACHE","UINT_CACHE","fromInt","cachedObj","TWO_PWR_64_DBL","MAX_UNSIGNED_VALUE","TWO_PWR_63_DBL","MIN_VALUE","MAX_VALUE","TWO_PWR_32_DBL","lowBits","highBits","pow_dbl","radixToPower","TWO_PWR_16_DBL","TWO_PWR_24","UONE","NEG_ONE","LongPrototype","radixLong","rem1","remDiv","getHighBits","getHighBitsUnsigned","getLowBits","getLowBitsUnsigned","getNumBitsAbs","eqz","notEquals","neq","ne","lessThanOrEqual","greaterThanOrEqual","ge","thisNeg","otherNeg","not","addend","a48","a32","a16","a00","c48","c32","c16","c00","subtrahend","get_high","b00","approx","div_u","div_s","toUnsigned","shru","approxRes","approxRem","rem_u","rem_s","shiftLeft","numBits","shiftRight","shiftRightUnsigned","shr_u","toSigned","toBytesLE","toBytesBE","fromBytesLE","fromBytesBE","ARRAY16","fnF","fnG","fnH","fnI","brorand","MillerRabin","_randbelow","min_bytes","_randrange","stop","rone","rn1","getDivisor","certificate","RSAPrivateKey","RSAPublicKey","AlgorithmIdentifier","bitstr","null_","PrivateKeyInfo","octstr","PrivateKey","EncryptedPrivateKeyInfo","EncryptedPrivateKey","DSAPrivateKey","DSAparam","ECPrivateKey","ECParameters","namedCurve","asn","Time","utcTime","utctime","generalTime","gentime","AttributeTypeValue","SubjectPublicKeyInfo","RelativeDistinguishedName","setof","RDNSequence","seqof","Name","rdnSequence","Validity","Extension","TBSCertificate","X509Certificate","findProc","startRegex","fullRegex","evp","okey","decrypted","cipherKey","match2","aesid","fixProc","compat","passphrase","ndata","stripped","tbsCertificate","subjectPublicKeyInfo","subjectPublicKey","kde","kdeparams","ZERO_BUF","checkParameters","defaultEncoding","sync","toBrowser","checks","getNextTick","queueMicrotask","setImmediate","browserPbkdf2","deriveBits","browser","prom","checkNative","resp","MAX_ALLOC","sizes","rmd160","saltLen","getDigest","ipad1","ipad2","protobuf","_configure","BufferWriter","BufferReader","roots","LongBits","indexOutOfRange","writeLength","create_array","readLongVarint","readFixed32_end","readFixed64","_slice","sint32","fixed32","sfixed32","float","wireType","BufferReader_","sint64","zzDecode","fixed64","sfixed64","Service","rpcImpl","requestDelimited","responseDelimited","rpcCall","requestCtor","responseCtor","asPromise","endedByRPC","zzEncode","zeroHash","toLong","fromHash","toHash","part0","part1","part2","ifNotSet","newError","CustomError","isNode","global","emptyArray","emptyObject","isset","isSet","_Buffer_from","_Buffer_allocUnsafe","newBuffer","sizeOrArray","dcodeIO","key2Re","key32Re","key64Re","longToHash","longFromHash","lcFirst","ProtocolError","oneOfGetter","fieldNames","fieldMap","oneOfSetter","toJSONOptions","longs","enums","Op","noop","head","states","writeByte","VarintOp","writeVarint64","writeFixed32","_push","BufferWriter_","writeStringBuffer","writeBytesBuffer","i2ops","mgf","withPublic","zBuffer","maskedSeed","maskedDb","db","dif","oaep","pkcs1","paddedMsg","hLen2","dblen","cur","nonZero","MAX_BYTES","generated","oldBrowser","safeBuffer","randombytes","kBufferMaxLength","kMaxUint32","assertOffset","actualFill","ourBuf","createErrorType","NodeError","_Base","subClass","superClass","arg1","arg2","arg3","oneOf","determiner","this_len","objectKeys","Duplex","Readable","allowHalfOpen","readable","onend","_writableState","ended","onEndNT","highWaterMark","getBuffer","_readableState","PassThrough","ReadableState","EElistenerCount","Stream","OurUint8Array","debugUtil","debuglog","createReadableStreamAsyncIterator","BufferList","destroyImpl","getHighWaterMark","_require$codes","ERR_STREAM_PUSH_AFTER_EOF","ERR_METHOD_NOT_IMPLEMENTED","ERR_STREAM_UNSHIFT_AFTER_END_EVENT","errorOrDestroy","kProxyEvents","isDuplex","objectMode","readableObjectMode","pipes","pipesCount","flowing","endEmitted","reading","needReadable","emittedReadable","readableListening","resumeScheduled","paused","emitClose","autoDestroy","awaitDrain","readingMore","_read","_destroy","readableAddChunk","addToFront","skipChunkCheck","emitReadable","emitReadable_","onEofChunk","chunkInvalid","_uint8ArrayToBuffer","addChunk","maybeReadMore","_undestroy","undestroy","isPaused","setEncoding","clear","MAX_HWM","howMuchToRead","computeNewHighWaterMark","flow","maybeReadMore_","updateReadableListening","resume","nReadingNextTick","resume_","fromList","consume","endReadable","endReadableNT","wState","nOrig","doRead","pipeOpts","endFn","stdout","stderr","unpipe","onunpipe","unpipeInfo","hasUnpiped","onclose","onfinish","ondrain","ondata","cleanedUp","needDrain","pipeOnDrain","pause","dests","asyncIterator","_fromList","iterable","ERR_MULTIPLE_CALLBACK","ERR_TRANSFORM_ALREADY_TRANSFORMING","ERR_TRANSFORM_WITH_LENGTH_0","afterTransform","_transformState","transforming","writecb","writechunk","needTransform","writeencoding","prefinish","err2","CorkedRequest","corkReq","pendingcb","onCorkedFinish","corkedRequestsFree","WritableState","realHasInstance","internalUtil","deprecate","ERR_STREAM_CANNOT_PIPE","ERR_STREAM_DESTROYED","ERR_STREAM_NULL_VALUES","ERR_STREAM_WRITE_AFTER_END","ERR_UNKNOWN_ENCODING","nop","writableObjectMode","finalCalled","ending","noDecode","decodeStrings","writing","corked","bufferProcessing","onwrite","writelen","onwriteStateUpdate","finishMaybe","errorEmitted","onwriteError","needFinish","bufferedRequest","clearBuffer","afterWrite","lastBufferedRequest","prefinished","bufferedRequestCount","writev","_writev","doWrite","onwriteDrain","holder","allBuffers","isBuf","callFinal","need","rState","hasInstance","writeAfterEnd","validChunk","newChunk","decodeChunk","writeOrBuffer","cork","uncork","setDefaultEncoding","endWritable","_Object$setPrototypeO","_defineProperty","kLastResolve","kLastReject","kError","kEnded","kLastPromise","kHandlePromise","kStream","createIterResult","readAndResolve","onReadable","AsyncIteratorPrototype","ReadableStreamAsyncIteratorPrototype","lastPromise","wrapForNext","_this2","_Object$create","enumerableOnly","symbols","_defineProperties","descriptor","custom","Constructor","_classCallCheck","protoProps","hasStrings","_getString","_getBuffer","nb","getOwnPropertyDescriptors","_objectSpread","customInspect","emitErrorAndCloseNT","emitErrorNT","emitCloseNT","readableDestroyed","writableDestroyed","ERR_STREAM_PREMATURE_CLOSE","eos","called","onlegacyfinish","writableEnded","readableEnded","onrequest","req","setHeader","isRequest","ERR_MISSING_ARGS","destroyer","closed","popCallback","streams","destroys","ERR_INVALID_OPT_VALUE","duplexKey","hwm","highWaterMarkFrom","pipeline","zr","hr","fn1","fn2","fn3","fn4","fn5","copyProps","SafeBuffer","safer","Safer","kStringMaxLength","binding","MAX_LENGTH","MAX_STRING_LENGTH","h5","h6","h7","bytesLeft","bitLenHi","bitLenLo","numZeros","PBKDF2_HMAC_SHA256_OneIter","innerLen","outerKey","dk","incrementCounter","blockmix_salsa8","BY","Yi","_X","arraycopy","blockxor","salsa20_8","srcPos","checkBufferish","ensureInteger","_scrypt","XY","totalOps","i1","Bi","currentOp","lastPercent10","i0","incrementalSMix","steps","percent10","lib","lastProgress","progress","syncScrypt","finalSize","_finalSize","assigned","remainder","Sha","_w","rotl30","ft","Sha1","rotl5","Sha256","Sha224","maj","sigma0","sigma1","gamma0","Sha384","_ah","_bh","_ch","_dh","_eh","_fh","_gh","_hh","_al","_bl","_cl","_dl","_el","_fl","_gl","_hl","writeInt64BE","Sha512","Gamma0","Gamma0l","Gamma1","Gamma1l","getCarry","gamma0l","gamma1","gamma1l","Wi7h","Wi7l","Wi16h","Wi16l","Wil","Wih","majh","majl","Kih","Kil","chh","chl","t1l","t1h","t2l","t2h","EE","_isStdio","didOnEnd","cleanup","nenc","retried","_normalizeEncoding","normalizeEncoding","utf16Text","utf16End","fillLast","utf8FillLast","base64Text","base64End","simpleWrite","simpleEnd","lastNeed","lastTotal","lastChar","utf8CheckByte","utf8CheckExtraBytes","utf8CheckIncomplete","localStorage","splitValues","headersMap","Headers","getHeaderKeys","getHeaderValues","splitHeaderValue","Map","appendFromString","normalizeName","normalizeValue","has","toHeaders","BrowserHeaders","iterateHeaders","iterateHeadersKeys","getAll","ChunkParser","ChunkType","encodeASCII","decodeASCII","getUint8","MESSAGE","TRAILERS","chunkType","trailers","Metadata","httpStatusToCode","Code","OK","Canceled","Unknown","InvalidArgument","DeadlineExceeded","NotFound","AlreadyExists","PermissionDenied","ResourceExhausted","FailedPrecondition","Aborted","OutOfRange","Unimplemented","Internal","Unavailable","DataLoss","Unauthenticated","started","sentFirstMessage","completed","finishedSending","onHeadersCallbacks","onMessageCallbacks","onEndCallbacks","methodDefinition","createTransport","service","serviceName","onHeaders","onTransportHeaders","onChunk","onTransportChunk","onEnd","onTransportEnd","transport","makeDefaultTransport","rawOnHeaders","decodeGRPCStatus","rawOnError","deserializeBinary","rawOnMessage","responseTrailers","rawOnEnd","toObject","onMessage","requestStream","frameRequest","sendMessage","finishSend","grpc","setDefaultTransport","setDefaultTransportFactory","CrossBrowserHttpTransport","FetchReadableStreamTransport","XhrTransport","WebsocketTransport","invoke","unary","detectFetchSupport","controller","AbortController","pump","getReader","stringToArrayBuffer","MozChunkedArrayBufferXHR","XHR","detectMozXHRSupport","detectXHROverrideMimeTypeSupport","onProgressEvent","xhr","onLoadEvent","onStateChange","HEADERS_RECEIVED","configureXhr","overrideMimeType","codePointAt","xhrSupportsResponseType","FINISH_SEND","CONNECTING","binaryType","responseStream","serializeBinary","CompressedNonExistenceProof","CompressedExistenceProof","CompressedBatchEntry","CompressedBatchProof","BatchEntry","BatchProof","InnerSpec","ProofSpec","InnerOp","LeafOp","CommitmentProof","NonExistenceProof","ExistenceProof","lengthOpToJSON","lengthOpFromJSON","LengthOp","hashOpToJSON","hashOpFromJSON","HashOp","NO_HASH","KECCAK","BITCOIN","NO_PREFIX","VAR_PROTO","VAR_RLP","FIXED32_BIG","FIXED32_LITTLE","FIXED64_BIG","FIXED64_LITTLE","REQUIRE_32_BYTES","REQUIRE_64_BYTES","baseExistenceProof","leaf","baseNonExistenceProof","baseCommitmentProof","exist","nonexist","baseLeafOp","prehashKey","prehashValue","baseInnerOp","baseProofSpec","maxDepth","minDepth","leafSpec","innerSpec","baseInnerSpec","childOrder","childSize","minPrefixLength","maxPrefixLength","emptyChild","baseBatchProof","baseBatchEntry","baseCompressedBatchProof","lookupInners","baseCompressedBatchEntry","baseCompressedExistenceProof","baseCompressedNonExistenceProof","GrantAuthorization","baseGenericAuthorization","baseGrant","baseGrantAuthorization","GrpcWebImpl","MsgRevokeDesc","MsgExecDesc","MsgGrantDesc","MsgDesc","MsgRevokeResponse","MsgGrantResponse","MsgExecResponse","grpc_web_1","browser_headers_1","baseMsgGrant","baseMsgExecResponse","baseMsgExec","baseMsgGrantResponse","baseMsgRevoke","baseMsgRevokeResponse","Exec","Revoke","requestType","methodDesc","_request","maybeCombinedMetadata","baseSendAuthorization","DenomUnit","Supply","SendEnabled","defaultSendEnabled","baseSendEnabled","enabled","baseInput","baseOutput","baseSupply","baseDenomUnit","baseMetadata","display","denomUnits","MsgMultiSendDesc","MsgSendDesc","MsgMultiSendResponse","MsgSendResponse","baseMsgSend","baseMsgSendResponse","baseMsgMultiSend","baseMsgMultiSendResponse","Send","MultiSend","MsgVerifyInvariantDesc","MsgVerifyInvariantResponse","baseMsgVerifyInvariant","baseMsgVerifyInvariantResponse","VerifyInvariant","PrivKey","basePubKey","basePrivKey","baseLegacyAminoPubKey","CommunityPoolSpendProposalWithDeposit","DelegationDelegatorReward","DelegatorStartingInfo","FeePool","ValidatorSlashEvents","ValidatorSlashEvent","ValidatorOutstandingRewards","ValidatorAccumulatedCommission","ValidatorCurrentRewards","ValidatorHistoricalRewards","communityTax","baseProposerReward","bonusProposerReward","withdrawAddrEnabled","baseValidatorHistoricalRewards","referenceCount","cumulativeRewardRatio","baseValidatorCurrentRewards","baseValidatorAccumulatedCommission","baseValidatorOutstandingRewards","baseValidatorSlashEvent","validatorPeriod","baseValidatorSlashEvents","validatorSlashEvents","baseFeePool","baseCommunityPoolSpendProposal","baseDelegatorStartingInfo","previousPeriod","stake","baseDelegationDelegatorReward","baseCommunityPoolSpendProposalWithDeposit","MsgFundCommunityPoolDesc","MsgWithdrawValidatorCommissionDesc","MsgWithdrawDelegatorRewardDesc","MsgSetWithdrawAddressDesc","baseBasicAllowance","basePeriodicAllowance","baseAllowedMsgAllowance","MsgRevokeAllowanceDesc","MsgGrantAllowanceDesc","MsgRevokeAllowanceResponse","MsgGrantAllowanceResponse","baseMsgGrantAllowance","baseMsgGrantAllowanceResponse","baseMsgRevokeAllowance","baseMsgRevokeAllowanceResponse","GrantAllowance","RevokeAllowance","MsgDepositDesc","MsgVoteWeightedDesc","MsgVoteDesc","MsgSubmitProposalDesc","MsgDepositResponse","MsgVoteWeightedResponse","MsgVoteResponse","MsgSubmitProposalResponse","baseMsgSubmitProposal","baseMsgSubmitProposalResponse","baseMsgVote","baseMsgVoteResponse","baseMsgVoteWeighted","baseMsgVoteWeightedResponse","baseMsgDeposit","baseMsgDepositResponse","SubmitProposal","VoteWeighted","MsgUnjailDesc","MsgUnjailResponse","baseMsgUnjail","baseMsgUnjailResponse","Unjail","AUTHORIZATION_TYPE_UNSPECIFIED","AUTHORIZATION_TYPE_DELEGATE","AUTHORIZATION_TYPE_UNDELEGATE","AUTHORIZATION_TYPE_REDELEGATE","baseStakeAuthorization","baseStakeAuthorization_Validators","Pool","DVVTriplets","DVVTriplet","DVPairs","DVPair","ValAddresses","HistoricalInfo","bondStatusToJSON","bondStatusFromJSON","BOND_STATUS_UNSPECIFIED","BOND_STATUS_UNBONDED","BOND_STATUS_UNBONDING","BOND_STATUS_BONDED","baseHistoricalInfo","valset","baseCommissionRates","baseCommission","baseDescription","baseValAddresses","addresses","baseDVPair","baseDVPairs","pairs","baseDVVTriplet","baseDVVTriplets","triplets","baseDelegation","baseUnbondingDelegation","baseUnbondingDelegationEntry","baseRedelegationEntry","baseRedelegation","maxValidators","maxEntries","historicalEntries","bondDenom","baseDelegationResponse","baseRedelegationEntryResponse","baseRedelegationResponse","basePool","notBondedTokens","bondedTokens","MsgUndelegateDesc","MsgBeginRedelegateDesc","MsgDelegateDesc","MsgEditValidatorDesc","MsgCreateValidatorDesc","MsgUndelegateResponse","MsgBeginRedelegateResponse","MsgDelegateResponse","MsgEditValidatorResponse","MsgCreateValidatorResponse","baseMsgCreateValidator","baseMsgCreateValidatorResponse","baseMsgEditValidator","baseMsgEditValidatorResponse","baseMsgDelegate","baseMsgDelegateResponse","baseMsgBeginRedelegate","baseMsgBeginRedelegateResponse","baseMsgUndelegate","baseMsgUndelegateResponse","CreateValidator","EditValidator","Delegate","BeginRedelegate","Undelegate","SIGN_MODE_EIP_191","MsgDonateAllVestingTokensDesc","MsgCreatePeriodicVestingAccountDesc","MsgCreateVestingAccountDesc","MsgDonateAllVestingTokensResponse","MsgCreatePeriodicVestingAccountResponse","MsgCreateVestingAccountResponse","baseMsgCreateVestingAccount","baseMsgCreateVestingAccountResponse","baseMsgCreatePeriodicVestingAccount","baseMsgCreatePeriodicVestingAccountResponse","baseMsgDonateAllVestingTokens","baseMsgDonateAllVestingTokensResponse","CreateVestingAccount","CreatePeriodicVestingAccount","DonateAllVestingTokens","PermanentLockedAccount","baseContinuousVestingAccount","baseDelayedVestingAccount","basePeriod","basePeriodicVestingAccount","basePermanentLockedAccount","baseStoreCodeProposal","baseInstantiateContractProposal","baseMigrateContractProposal","baseSudoContractProposal","baseExecuteContractProposal","baseUpdateAdminProposal","baseClearAdminProposal","basePinCodesProposal","baseUnpinCodesProposal","baseAccessConfigUpdate","baseUpdateInstantiateConfigProposal","MsgClearAdminDesc","MsgUpdateAdminDesc","MsgMigrateContractDesc","MsgExecuteContractDesc","MsgInstantiateContractDesc","MsgStoreCodeDesc","MsgClearAdminResponse","MsgUpdateAdminResponse","baseMsgUpdateAdmin","baseMsgUpdateAdminResponse","baseMsgClearAdmin","baseMsgClearAdminResponse","UpdateAdmin","ClearAdmin","Model","ContractInfo","CodeInfo","ContractCodeHistoryOperationType","ACCESS_TYPE_UNSPECIFIED","ACCESS_TYPE_NOBODY","ACCESS_TYPE_ONLY_ADDRESS","ACCESS_TYPE_EVERYBODY","CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED","CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT","CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE","CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS","baseAccessTypeParam","baseAccessConfig","instantiateDefaultPermission","codeUploadAccess","baseCodeInfo","codeHash","instantiateConfig","baseContractInfo","ibcPortId","extension","baseContractCodeHistoryEntry","baseAbsoluteTxPosition","baseModel","MsgTransferDesc","MsgTransferResponse","baseMsgTransfer","baseMsgTransferResponse","Transfer","Acknowledgement","PacketState","IdentifiedChannel","orderToJSON","orderFromJSON","Order","STATE_UNINITIALIZED_UNSPECIFIED","STATE_INIT","STATE_TRYOPEN","STATE_OPEN","STATE_CLOSED","ORDER_NONE_UNSPECIFIED","ORDER_UNORDERED","ORDER_ORDERED","baseChannel","baseIdentifiedChannel","baseCounterparty","basePacket","basePacketState","basePacketId","baseAcknowledgement","MsgAcknowledgementDesc","MsgTimeoutOnCloseDesc","MsgTimeoutDesc","MsgRecvPacketDesc","MsgChannelCloseConfirmDesc","MsgChannelCloseInitDesc","MsgChannelOpenConfirmDesc","MsgChannelOpenAckDesc","MsgChannelOpenTryDesc","MsgChannelOpenInitDesc","MsgAcknowledgementResponse","MsgTimeoutOnCloseResponse","MsgTimeoutResponse","MsgRecvPacketResponse","MsgChannelCloseConfirmResponse","MsgChannelCloseInitResponse","MsgChannelOpenConfirmResponse","MsgChannelOpenAckResponse","MsgChannelOpenTryResponse","MsgChannelOpenInitResponse","responseResultTypeToJSON","responseResultTypeFromJSON","ResponseResultType","RESPONSE_RESULT_TYPE_UNSPECIFIED","RESPONSE_RESULT_TYPE_NOOP","RESPONSE_RESULT_TYPE_SUCCESS","baseMsgChannelOpenInit","baseMsgChannelOpenInitResponse","baseMsgChannelOpenTry","baseMsgChannelOpenTryResponse","baseMsgChannelOpenAck","baseMsgChannelOpenAckResponse","baseMsgChannelOpenConfirm","baseMsgChannelOpenConfirmResponse","baseMsgChannelCloseInit","baseMsgChannelCloseInitResponse","baseMsgChannelCloseConfirm","baseMsgChannelCloseConfirmResponse","baseMsgRecvPacket","baseMsgRecvPacketResponse","baseMsgTimeout","baseMsgTimeoutResponse","baseMsgTimeoutOnClose","baseMsgTimeoutOnCloseResponse","baseMsgAcknowledgement","baseMsgAcknowledgementResponse","ChannelOpenInit","ChannelOpenTry","ChannelOpenAck","ChannelOpenConfirm","ChannelCloseInit","ChannelCloseConfirm","RecvPacket","Timeout","TimeoutOnClose","UpgradeProposal","ClientConsensusStates","ConsensusStateWithHeight","baseIdentifiedClientState","baseConsensusStateWithHeight","baseClientConsensusStates","baseClientUpdateProposal","baseUpgradeProposal","baseHeight","allowedClients","MsgSubmitMisbehaviourDesc","MsgUpgradeClientDesc","MsgUpdateClientDesc","MsgCreateClientDesc","MsgSubmitMisbehaviourResponse","MsgUpgradeClientResponse","MsgUpdateClientResponse","MsgCreateClientResponse","baseMsgCreateClient","baseMsgCreateClientResponse","baseMsgUpdateClient","baseMsgUpdateClientResponse","baseMsgUpgradeClient","baseMsgUpgradeClientResponse","baseMsgSubmitMisbehaviour","baseMsgSubmitMisbehaviourResponse","CreateClient","UpdateClient","UpgradeClient","SubmitMisbehaviour","MerkleProof","MerklePath","MerkleRoot","proofs_1","baseMerkleRoot","baseMerklePrefix","baseMerklePath","keyPath","baseMerkleProof","proofs","ConnectionPaths","ClientPaths","ConnectionEnd","baseConnectionEnd","baseIdentifiedConnection","baseClientPaths","paths","baseConnectionPaths","baseVersion","maxExpectedTimePerBlock","MsgConnectionOpenConfirmDesc","MsgConnectionOpenAckDesc","MsgConnectionOpenTryDesc","MsgConnectionOpenInitDesc","MsgConnectionOpenConfirmResponse","MsgConnectionOpenAckResponse","MsgConnectionOpenTryResponse","MsgConnectionOpenInitResponse","baseMsgConnectionOpenInit","baseMsgConnectionOpenInitResponse","baseMsgConnectionOpenTry","baseMsgConnectionOpenTryResponse","baseMsgConnectionOpenAck","baseMsgConnectionOpenAckResponse","baseMsgConnectionOpenConfirm","baseMsgConnectionOpenConfirmResponse","ConnectionOpenInit","ConnectionOpenTry","ConnectionOpenAck","ConnectionOpenConfirm","Fraction","Misbehaviour","ConsensusState","ClientState","baseClientState","upgradePath","allowUpdateAfterExpiry","allowUpdateAfterMisbehaviour","trustLevel","trustingPeriod","unbondingPeriod","maxClockDrift","frozenHeight","latestHeight","proofSpecs","baseConsensusState","baseMisbehaviour","header1","header2","baseFraction","ABCIApplicationApplySnapshotChunkDesc","ABCIApplicationLoadSnapshotChunkDesc","ABCIApplicationOfferSnapshotDesc","ABCIApplicationListSnapshotsDesc","ABCIApplicationEndBlockDesc","ABCIApplicationBeginBlockDesc","ABCIApplicationInitChainDesc","ABCIApplicationCommitDesc","ABCIApplicationQueryDesc","ABCIApplicationCheckTxDesc","ABCIApplicationDeliverTxDesc","ABCIApplicationSetOptionDesc","ABCIApplicationInfoDesc","ABCIApplicationFlushDesc","ABCIApplicationEchoDesc","ABCIApplicationDesc","modules","installedModules","moduleId","getter","normalizedKey","arrayValue","normalized_1","keyArray","normalizedValue","headers_1","BrowserHeaders_1","__webpack_require__","iterateHeaders_1","headersAsNative","getValue","asMap","commaSpaceValue","commaValue","__webpack_module_cache__","cachedModule","loaded","__webpack_modules__","amdO","definition","nmd","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file diff --git a/src/Client/providers/LCDClient/lcd/LCDClient.ts b/src/Client/providers/LCDClient/lcd/LCDClient.ts index c358d23..addcece 100644 --- a/src/Client/providers/LCDClient/lcd/LCDClient.ts +++ b/src/Client/providers/LCDClient/lcd/LCDClient.ts @@ -59,20 +59,16 @@ const DEFAULT_LCD_OPTIONS: Partial = { // forked network : false const DEFAULT_NETWORK_TYPE_BY_CHAIN_ID: { [key: string]: boolean } = { default: false, - 'jmes-888': true, 'jmes-testnet-1': true }; const DEFAULT_GAS_PRICES_BY_CHAIN_ID: { [key: string]: Coins.Input } = { default: { - ujmes: 0.15, - }, - 'jmes-888': { - ujmes: 0.15, + ujmes: 0.35, }, 'jmes-testnet-1': { - ujmes: 0.15, + ujmes: 0.35, }, }; diff --git a/src/primitives/Account/Account.ts b/src/primitives/Account/Account.ts index e8ca382..ccf21e8 100644 --- a/src/primitives/Account/Account.ts +++ b/src/primitives/Account/Account.ts @@ -58,7 +58,7 @@ export class Account { console.log({URL}); if(!this.lcdc){ const lcdc = new LCDClient({ - chainID: 'jmes-888', + chainID: 'jmes-testet-1', // chainID: 'testing', URL, isClassic: true @@ -96,7 +96,7 @@ export class Account { const URL = lcdcUrl ?? 'http://64.92.191.45:1317'; const lcdc = new LCDClient({ - chainID: chainId ?? 'jmes-testnet-1', + chainID: 'jmes-testnet-1', // chainID: 'testing', URL, isClassic: true, From b475dd3adffa58771abd825f7c46d608212b9138 Mon Sep 17 00:00:00 2001 From: mayoreee Date: Sun, 7 May 2023 08:11:46 +0200 Subject: [PATCH 4/6] remove log --- build/primitives/Account/Account.js | 1 - src/primitives/Account/Account.ts | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/build/primitives/Account/Account.js b/build/primitives/Account/Account.js index b30ce18..8d9932c 100644 --- a/build/primitives/Account/Account.js +++ b/build/primitives/Account/Account.js @@ -183,7 +183,6 @@ var Account = /** @class */ (function () { }) //@ts-ignore .then(function (result) { - console.log("TX hash: ".concat(result.txhash)); return result; }).catch(function (e) { console.log(e); diff --git a/src/primitives/Account/Account.ts b/src/primitives/Account/Account.ts index ccf21e8..8c44776 100644 --- a/src/primitives/Account/Account.ts +++ b/src/primitives/Account/Account.ts @@ -114,7 +114,7 @@ export class Account { lcdc.tx.broadcast(tx)}) //@ts-ignore .then(result => { - console.log(`TX hash: ${result.txhash}`); + // console.log(`TX hash: ${result.txhash}`); return result }).catch((e: any)=>{ console.log(e); From cd3777c542bfbf7d8ee445aadba87bf81bab6c97 Mon Sep 17 00:00:00 2001 From: mayoreee Date: Sun, 7 May 2023 08:20:00 +0200 Subject: [PATCH 5/6] fix --- build/primitives/Account/Account.js | 6 ++---- build/primitives/Account/Account.js.map | 2 +- src/primitives/Account/Account.ts | 4 +--- 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/build/primitives/Account/Account.js b/build/primitives/Account/Account.js index 8d9932c..598365b 100644 --- a/build/primitives/Account/Account.js +++ b/build/primitives/Account/Account.js @@ -177,12 +177,10 @@ var Account = /** @class */ (function () { //@ts-ignore .createAndSignTx(txOpts) //@ts-ignore - .then(function (tx) { - console.log("tx to be broadcasted: ", tx); - lcdc.tx.broadcast(tx); - }) + .then(function (tx) { return lcdc.tx.broadcast(tx); }) //@ts-ignore .then(function (result) { + // console.log(`TX hash: ${result.txhash}`); return result; }).catch(function (e) { console.log(e); diff --git a/build/primitives/Account/Account.js.map b/build/primitives/Account/Account.js.map index 8db0eb7..c73ef4e 100644 --- a/build/primitives/Account/Account.js.map +++ b/build/primitives/Account/Account.js.map @@ -1 +1 @@ -{"version":3,"file":"Account.js","sourceRoot":"","sources":["../../../src/primitives/Account/Account.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Account.js","sourceRoot":"","sources":["../../../src/primitives/Account/Account.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/primitives/Account/Account.ts b/src/primitives/Account/Account.ts index 8c44776..6c06044 100644 --- a/src/primitives/Account/Account.ts +++ b/src/primitives/Account/Account.ts @@ -109,9 +109,7 @@ export class Account { //@ts-ignore .createAndSignTx(txOpts) //@ts-ignore - .then(tx => { - console.log("tx to be broadcasted: ", tx); - lcdc.tx.broadcast(tx)}) + .then(tx => lcdc.tx.broadcast(tx)) //@ts-ignore .then(result => { // console.log(`TX hash: ${result.txhash}`); From 800713e435e829820819c7ea64d446efb38bdc50 Mon Sep 17 00:00:00 2001 From: mayoreee Date: Thu, 25 May 2023 00:32:12 +0200 Subject: [PATCH 6/6] fix: chain id --- build/primitives/Account/Account.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/primitives/Account/Account.js b/build/primitives/Account/Account.js index 598365b..ba29d6e 100644 --- a/build/primitives/Account/Account.js +++ b/build/primitives/Account/Account.js @@ -165,7 +165,7 @@ var Account = /** @class */ (function () { } URL = lcdcUrl !== null && lcdcUrl !== void 0 ? lcdcUrl : 'http://64.92.191.45:1317'; lcdc = new LCDClient_1.LCDClient({ - chainID: 'jmes-testnet-1', + chainID: chainId, // chainID: 'testing', URL: URL, isClassic: true,